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
#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 <rootdir>\"" >> $(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 $@