LIB = xaal DEMOS = dumper \ dummyLamp lampCommander \ thermoPC thermoWatch \ tattler \ schemory schemaDumper \ metadatadb metadatadbTester pushtag \ cache \ automalua azerty \ dummyDimmer dummyShutter INSTALL_DIR = /usr/local CFLAGS = -Wall -I. -g LDFLAGS = LOADLIBES = -ljson-c -luuid -lsodium -L. -l$(LIB) INSTALL= install -c all: lib$(LIB).a lib$(LIB).so $(DEMOS) lib$(LIB).a: lib$(LIB).o cencode.o cdecode.o $(AR) rc $@ $^ lib$(LIB).so: lib$(LIB).c cencode.c cdecode.c $(CC) $(CFLAGS) $(LDFLAGS) -fPIC -shared -o $@ $^ $(DEMOS): lib$(LIB).so thermoPC: thermoPC.c $(LINK.c) $^ $(LOADLIBES) -lsensors $(LDLIBS) -o $@ tattler: tattler.c $(LINK.c) $^ $(LOADLIBES) -lmnl $(LDLIBS) -o $@ schemory: schemory.c $(LINK.c) $^ $(LOADLIBES) -lcurl $(LDLIBS) -o $@ metadatadb: metadatadb.c $(LINK.c) $^ $(LOADLIBES) -lsqlite3 $(LDLIBS) -o $@ automalua: automalua.c $(LINK.c) $^ $(LOADLIBES) -l lua5.2 $(LDLIBS) -o $@ clean: -rm -f *.o *~ proper: clean -rm -f lib$(LIB).a lib$(LIB).so $(DEMOS) install: lib$(LIB).a lib$(LIB).so $(LIB).h $(INSTALL) -d $(INSTALL_DIR) $(INSTALL) -m 0755 -s lib$(LIB).so $(INSTALL_DIR)/lib/ $(INSTALL) -m 0644 -s lib$(LIB).a $(INSTALL_DIR)/lib/ $(INSTALL) -m 0644 $(LIB).h $(INSTALL_DIR)/include/ ldconfig $(INSTALL_DIR)/lib/ SHELL = /bin/bash test: all @echo " " You can test $(DEMOS) @echo " " First, do: export LD_LIBRARY_PATH+=:. @echo " " Then, eg.: @/bin/echo -e "" $(foreach i,$(DEMOS)," ./$(i) -a 224.0.29.200 -p 1234 -s my_secret\n") DEMO2 = thermoPC schemory metadatadb dummyLamp dumper dummyDimmer dummyShutter test2: lib$(LIB).so $(DEMO2) xfce4-terminal -e true $(foreach i,$(DEMO2),--tab -e "$(SHELL) -c \"LD_LIBRARY_PATH+=:. ./$(i) -a 224.0.29.200 -p 1234\"" -T $(i)) Makefile.dep: lib$(LIB).c $(DEMOS:=.c) $(CC) $(CFLAGS) -MM $^ > $@ include Makefile.dep .PHONY: all clean proper install test .SUFFIXES: .a .svnignore: echo lib$(LIB).a lib$(LIB).so lib$(LIB).o $(DEMOS) $(DEMOS:=.o) | tr ' ' '\012' > $@ svnignore: .svnignore svn propset svn:ignore -F $< .