Makefile
changeset 41 6abda2fa4579
parent 40 03017f5f0087
child 44 9e76ee9729b6
equal deleted inserted replaced
40:03017f5f0087 41:6abda2fa4579
     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