1 LIBEVENT_PATH = ../libs/libevent-dev |
1 LIBEVENT_PATH = ../libs/libevent-dev |
2 LIBFUSE_PATH = ../libs/libfuse-2.7.4 |
2 LIBFUSE_PATH = ../libs/libfuse-2.7.4 |
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 |
6 LDLIBS = -levent -lfuse -lpq |
7 |
7 |
8 # XXX: ugh... use `pkg-config fuse` |
8 # XXX: ugh... use `pkg-config fuse` |
9 DEFINES = -D_FILE_OFFSET_BITS=64 |
9 DEFINES = -D_FILE_OFFSET_BITS=64 |
10 MY_CFLAGS = -Wall -g -std=gnu99 |
10 MY_CFLAGS = -Wall -g -std=gnu99 |
11 |
11 |
12 BIN_NAMES = hello helloworld |
12 BIN_NAMES = hello helloworld |
13 |
13 |
|
14 # first target |
|
15 all: ${BIN_PATHS} |
|
16 |
|
17 # binaries |
14 bin/helloworld: |
18 bin/helloworld: |
15 bin/hello: obj/evfuse.o obj/dirbuf.o obj/lib/log.o obj/lib/signals.o |
19 bin/hello: obj/evfuse.o obj/dirbuf.o obj/lib/log.o obj/lib/signals.o |
16 bin/simple_hello: obj/evfuse.o obj/dirbuf.o obj/lib/log.o obj/lib/signals.o obj/simple.o |
20 bin/simple_hello: obj/evfuse.o obj/dirbuf.o obj/lib/log.o obj/lib/signals.o obj/simple.o |
|
21 bin/evpq_test: obj/evpq.o obj/lib/log.o |
17 |
22 |
18 # computed |
23 # computed |
19 LDFLAGS = ${LIBRARY_PATHS} ${LIBRARY_LIST} |
24 LDFLAGS = ${LIBRARY_PATHS} ${LIBRARY_LIST} |
20 CFLAGS = ${INCLUDE_PATHS} ${DEFINES} ${MY_CFLAGS} |
25 CFLAGSX = ${DEFINES} ${MY_CFLAGS} |
|
26 CFLAGS = ${INCLUDE_PATHS} ${CFLAGSX} |
21 |
27 |
22 SRC_PATHS = $(wildcard src/*.c) |
28 SRC_PATHS = $(wildcard src/*.c) |
23 SRC_NAMES = $(patsubst src/%,%,$(SRC_PATHS)) |
29 SRC_NAMES = $(patsubst src/%,%,$(SRC_PATHS)) |
24 SRC_DIRS = $(dir $(SRC_NAMES)) |
30 SRC_DIRS = $(dir $(SRC_NAMES)) |
25 |
31 |
26 BIN_PATHS = $(addprefix bin/,$(BIN_NAMES)) |
32 BIN_PATHS = $(addprefix bin/,$(BIN_NAMES)) |
27 |
33 |
28 # targets |
34 # other targets |
29 all: depend ${BIN_PATHS} |
|
30 |
|
31 clean : |
35 clean : |
32 -rm obj/* bin/* |
36 -rm obj/* bin/* |
33 |
37 |
34 depend: |
38 #obj-dirs: |
35 cd src |
39 # python build/make_obj_dirs.py $(BIN_PATHS) |
36 makedepend -p../obj/ -Y -- $(CFLAGS) -- $(SRC_NAMES) 2> /dev/null |
|
37 cd .. |
|
38 |
40 |
39 obj-dirs: |
41 build/deps/%.d : src/%.c |
40 python build/make_obj_dirs.py $(BIN_PATHS) |
42 @set -e; rm -f $@; \ |
|
43 $(CC) -MM $(CPPFLAGS) $< > $@.$$$$; \ |
|
44 sed 's,\($*\)\.o[ :]*,obj/\1.o $@ : ,g' < $@.$$$$ > $@; \ |
|
45 rm -f $@.$$$$ |
|
46 |
|
47 include $(SRC_NAMES:%.c=build/deps/%.d) |
41 |
48 |
42 obj/%.o : src/%.c |
49 obj/%.o : src/%.c |
43 $(CC) -c $(CPPFLAGS) $(CFLAGS) $^ -o $@ |
50 $(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@ |
44 |
51 |
45 bin/% : obj/%.o |
52 bin/% : obj/%.o |
46 $(CC) $(LDFLAGS) $+ $(LOADLIBES) $(LDLIBS) -o $@ |
53 $(CC) $(LDFLAGS) $+ $(LOADLIBES) $(LDLIBS) -o $@ |
47 |
54 |
48 # DO NOT DELETE THIS LINE -- make depend depends on it. |
|