Archived
1
0
Fork 0

Makefile: new buildprocess (kbuild like)

This commit is contained in:
Henrik Hautakoski 2010-09-24 10:46:52 +02:00
parent e8c73df6b5
commit 26b1f73f8f

View file

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