diff --git a/Makefile b/Makefile index 61acd29..dba452a 100644 --- a/Makefile +++ b/Makefile @@ -1,57 +1,66 @@ # -# Archive Makefile +# Archived Makefile # -# uncomment and edit this to match your system -#DB_HOST := localhost -#DB_USER := dbusr -#DB_PASS := dbpass -#DB_NAME := dbname -#DB_TBL := dbtable - -CC := gcc -CFLAGS := -Werror `mysql_config --cflags` -LDFLAGS := -L/usr/lib/mysql -lmysqlclient +CC = gcc +CFLAGS = -O2 -Werror +LDFLAGS = ifdef DEBUG -CFLAGS += -g -D__DEBUG__ + CFLAGS += -g -D__DEBUG__ endif -SOURCES := \ - src/arch.c \ - src/output/mysql.c \ - src/ini/iniparser.c \ - src/ini/dictionary.c \ - src/indexer.c \ - src/common/strbuf.c \ - src/common/path.c \ - src/common/rbtree.c \ - src/common/xalloc.c \ - src/common/die.c \ - src/notify/inotify.c \ - src/notify/event.c \ - src/notify/tree.c +ifndef V + QUIET_CC = @echo ' ' CC $@; + QUIET_LD = @echo ' ' LD $@; +endif + +FINDOBJ = find . -name "*.o" -type f -printf "%P\n" BUILD := ./build +PROGRAM := $(BUILD)/arch -all : - @mkdir -p $(BUILD) -ifdef DB_HOST - make wrapper + +ifeq ($(output), mysql) + CFLAGS += `mysql_config --cflags` + LDFLAGS += -L/usr/lib/mysql -lmysqlclient else - @echo "Tip: edit this Makefile DB_* macros to enable generation of a wrapper shellscript" + output = stdout endif - $(CC) $(CFLAGS) $(LDFLAGS) $(SOURCES) -o $(BUILD)/arch - -wrapper : - @echo "#!/bin/sh" > $(BUILD)/wrapper - @echo "if [ \$$# -lt 1 ]; then" >> $(BUILD)/wrapper - @echo " echo \"usage: \$$0 \"" >> $(BUILD)/wrapper - @echo " exit" >> $(BUILD)/wrapper - @echo "fi" >> $(BUILD)/wrapper - @echo "./arch \"\$$1\" \"$(DB_HOST)\" \"$(DB_USER)\" \"$(DB_PASS)\" \"$(DB_NAME)\" \"$(DB_TBL)\"" >> $(BUILD)/wrapper - @chmod 755 $(BUILD)/wrapper - @echo "generated $(BUILD)/wrapper" + +obj = + +obj += src/ini/iniparser.o +obj += src/ini/dictionary.o + +obj += src/common/rbtree.o +obj += src/common/path.o +obj += src/common/strbuf.o +obj += src/common/xalloc.o +obj += src/common/die.o + +obj += src/output/$(output).o + +obj += src/notify/inotify.o +obj += src/notify/event.o +obj += src/notify/tree.o + +obj += src/indexer.o +obj += src/arch.o + +all : $(PROGRAM) + +$(PROGRAM) : $(obj) + @mkdir -p $(BUILD) + $(QUIET_LD)$(CC) $(LDFLAGS) $^ -o $@ clean : - rm -fr $(BUILD) + @for obj in `$(FINDOBJ)`; do \ + echo $(RM) $$obj;$(RM) $$obj; \ + done + +cleaner : clean + $(RM) -r $(BUILD) + +%.o : %.c + $(QUIET_CC)$(CC) $(CFLAGS) -c $< -o $@