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
|
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 $@
|
||||||
|
|
|
||||||
Reference in a new issue