diff -r 000000000000 -r 317e5bc59627 Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Makefile Sun Feb 22 02:00:34 2009 +0200 @@ -0,0 +1,81 @@ +#LIBEVENT_PATH = ~/opt +#LIBRARY_PATHS = -L${LIBEVENT_PATH}/lib +#INCLUDE_PATHS = -I${LIBEVENT_PATH}/include +LDLIBS = -levent + +# default is test +ifndef MODE +MODE = test +endif + +ifeq ($(MODE), debug) +MODE_CFLAGS = -g -DDEBUG_ENABLED +else ifeq ($(MODE), dev) +MODE_CFLAGS = -g +else ifeq ($(MODE), test) +MODE_CFLAGS = -g -DINFO_DISABLED +else ifeq ($(MODE), release) +MODE_CFLAGS = -DINFO_DISABLED -O2 +endif + +FIXED_CFLAGS = -Wall -std=gnu99 + +BIN_NAMES = nexus +BIN_PATHS = $(addprefix bin/,$(BIN_NAMES)) + +# modules +module_objs = $(patsubst src/%.c,obj/%.o,$(wildcard src/$(1)/*.c)) + +# XXX: not yet there +#CORE_OBJS = obj/lib/log.o obj/lib/signals.o + +# first target +all: ${BIN_PATHS} + +# binaries +bin/nexus: + +# computed +LDFLAGS = ${LIBRARY_PATHS} +CPPFLAGS = ${INCLUDE_PATHS} ${DEFINES} +CFLAGS = ${MODE_CFLAGS} ${FIXED_CFLAGS} + +SRC_PATHS = $(wildcard src/*.c) $(wildcard src/*/*.c) +SRC_NAMES = $(patsubst src/%,%,$(SRC_PATHS)) +SRC_DIRS = $(dir $(SRC_NAMES)) + +# other targets +clean : + -rm obj/*.o obj/*/*.o + -rm bin/* + -rm build/deps/*.d build/deps/*/*.d + +clean-deps: + -rm build/deps/*/*.d + -rm build/deps/*.d + +#obj-dirs: +# python build/make_obj_dirs.py $(BIN_PATHS) + +build/deps/%.d : src/%.c + @set -e; rm -f $@; \ + $(CC) -MM -MT __ $(CPPFLAGS) $< > $@.$$$$; \ + sed 's,__[ :]*,obj/$*.o $@ : ,g' < $@.$$$$ > $@; \ + rm -f $@.$$$$ + +include $(SRC_NAMES:%.c=build/deps/%.d) + +obj/%.o : src/%.c + $(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@ + +bin/% : obj/%.o + $(CC) $(LDFLAGS) $+ $(LOADLIBES) $(LDLIBS) -o $@ + +# documentation +DOXYGEN_PATH = /usr/bin/doxygen +DOXYGEN_CONF_PATH = doc/doxygen.conf +DOXYGEN_OUTPUT_FILE = doc/html/index.html + +docs : + ${DOXYGEN_PATH} ${DOXYGEN_CONF_PATH} +