Makefile: new buildprocess (kbuild like)
This commit is contained in:
parent
e8c73df6b5
commit
26b1f73f8f
1 changed files with 52 additions and 43 deletions
95
Makefile
95
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 <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 $@
|
||||
|
|
|
|||
Reference in a new issue