3 |
3 |
4 LIBRARY_PATHS = -L${LIBEVENT_PATH}/lib -L${LIBFUSE_PATH}/lib |
4 LIBRARY_PATHS = -L${LIBEVENT_PATH}/lib -L${LIBFUSE_PATH}/lib |
5 INCLUDE_PATHS = -I${LIBEVENT_PATH}/include -I${LIBFUSE_PATH}/include |
5 INCLUDE_PATHS = -I${LIBEVENT_PATH}/include -I${LIBFUSE_PATH}/include |
6 LDLIBS = -levent -lfuse -lpq |
6 LDLIBS = -levent -lfuse -lpq |
7 |
7 |
8 # default is TEST |
8 # default is test |
9 ifndef MODE |
9 ifndef MODE |
10 MODE = TEST |
10 MODE = test |
11 endif |
11 endif |
12 |
12 |
13 ifeq ($(MODE), DEBUG) |
13 ifeq ($(MODE), debug) |
14 MODE_CFLAGS = -g -DDEBUG_ENABLED |
14 MODE_CFLAGS = -g -DDEBUG_ENABLED |
15 else ifeq ($(MODE), DEV) |
15 else ifeq ($(MODE), dev) |
16 MODE_CFLAGS = -g |
16 MODE_CFLAGS = -g |
17 else ifeq ($(MODE), TEST) |
17 else ifeq ($(MODE), test) |
18 MODE_CFLAGS = -g -DINFO_DISABLED |
18 MODE_CFLAGS = -g -DINFO_DISABLED |
19 else ifeq ($(MODE), RELEASE) |
19 else ifeq ($(MODE), release) |
20 MODE_CFLAGS = -DINFO_DISABLED -O2 |
20 MODE_CFLAGS = -DINFO_DISABLED -O2 |
21 endif |
21 endif |
22 |
22 |
23 # XXX: ugh... use `pkg-config fuse` |
23 # XXX: ugh... use `pkg-config fuse` |
24 DEFINES = -D_FILE_OFFSET_BITS=64 |
24 DEFINES = -D_FILE_OFFSET_BITS=64 |
25 MY_CFLAGS = -Wall -std=gnu99 $(MODE_CFLAGS) |
25 FIXED_CFLAGS = -Wall -std=gnu99 |
26 |
26 |
27 BIN_NAMES = helloworld hello simple_hello evpq_test url_test dbfs |
27 BIN_NAMES = helloworld hello simple_hello evpq_test url_test dbfs |
28 BIN_PATHS = $(addprefix bin/,$(BIN_NAMES)) |
28 BIN_PATHS = $(addprefix bin/,$(BIN_NAMES)) |
29 |
29 |
|
30 # modules |
|
31 module_objs = $(patsubst src/%.c,obj/%.o,$(wildcard src/$(1)/*.c)) |
|
32 |
30 # complex modules |
33 # complex modules |
31 EVSQL_OBJS = obj/evsql/evsql.o obj/evsql/util.o obj/evpq.o |
34 EVSQL_OBJS = $(call module_objs,evsql) obj/evpq.o |
32 DBFS_OBJS = obj/dbfs/dbfs.o obj/dbfs/common.o obj/dbfs/op_base.o obj/dbfs/trans.o obj/dbfs/dirop.o obj/dirbuf.o obj/dbfs/fileop.o obj/dbfs/attr.o obj/dbfs/link.o obj/dbfs/tree.o obj/dbfs/mk.o |
35 DBFS_OBJS = $(call module_objs,dbfs) obj/dirbuf.o |
33 |
36 |
34 # first target |
37 # first target |
35 all: ${BIN_PATHS} |
38 all: ${BIN_PATHS} |
36 |
39 |
37 # binaries |
40 # binaries |
41 bin/evpq_test: obj/evpq.o obj/lib/log.o |
44 bin/evpq_test: obj/evpq.o obj/lib/log.o |
42 bin/url_test: obj/lib/url.o obj/lib/lex.o obj/lib/log.o |
45 bin/url_test: obj/lib/url.o obj/lib/lex.o obj/lib/log.o |
43 bin/dbfs: ${DBFS_OBJS} ${EVSQL_OBJS} obj/evfuse.o obj/lib/log.o obj/lib/signals.o |
46 bin/dbfs: ${DBFS_OBJS} ${EVSQL_OBJS} obj/evfuse.o obj/lib/log.o obj/lib/signals.o |
44 |
47 |
45 # computed |
48 # computed |
46 LDFLAGS = ${LIBRARY_PATHS} ${LIBRARY_LIST} |
49 LDFLAGS = ${LIBRARY_PATHS} |
47 CFLAGSX = ${DEFINES} ${MY_CFLAGS} |
50 |
48 CFLAGS = ${INCLUDE_PATHS} ${CFLAGSX} |
51 CPPFLAGS = ${INCLUDE_PATHS} ${DEFINES} |
|
52 CFLAGS = ${MODE_CFLAGS} ${FIXED_CFLAGS} |
49 |
53 |
50 SRC_PATHS = $(wildcard src/*.c) $(wildcard src/*/*.c) |
54 SRC_PATHS = $(wildcard src/*.c) $(wildcard src/*/*.c) |
51 SRC_NAMES = $(patsubst src/%,%,$(SRC_PATHS)) |
55 SRC_NAMES = $(patsubst src/%,%,$(SRC_PATHS)) |
52 SRC_DIRS = $(dir $(SRC_NAMES)) |
56 SRC_DIRS = $(dir $(SRC_NAMES)) |
53 |
57 |