author | Tero Marttila <terom@fixme.fi> |
Sun, 22 Feb 2009 05:27:29 +0200 | |
changeset 2 | a834f0559939 |
parent 1 | cf0e1bb6bcab |
child 6 | 240ae8482d64 |
permissions | -rw-r--r-- |
0 | 1 |
# default is test |
2 |
ifndef MODE |
|
3 |
MODE = test |
|
4 |
endif |
|
5 |
||
6 |
ifeq ($(MODE), debug) |
|
7 |
MODE_CFLAGS = -g -DDEBUG_ENABLED |
|
8 |
else ifeq ($(MODE), dev) |
|
9 |
MODE_CFLAGS = -g |
|
10 |
else ifeq ($(MODE), test) |
|
11 |
MODE_CFLAGS = -g -DINFO_DISABLED |
|
12 |
else ifeq ($(MODE), release) |
|
13 |
MODE_CFLAGS = -DINFO_DISABLED -O2 |
|
14 |
endif |
|
15 |
||
16 |
FIXED_CFLAGS = -Wall -std=gnu99 |
|
17 |
||
2
a834f0559939
working SSL using gnutls - a bit of a painful process
Tero Marttila <terom@fixme.fi>
parents:
1
diff
changeset
|
18 |
# libevent |
a834f0559939
working SSL using gnutls - a bit of a painful process
Tero Marttila <terom@fixme.fi>
parents:
1
diff
changeset
|
19 |
LIBEVENT_CFLAGS = |
a834f0559939
working SSL using gnutls - a bit of a painful process
Tero Marttila <terom@fixme.fi>
parents:
1
diff
changeset
|
20 |
LIBEVENT_LDFLAGS = -levent |
a834f0559939
working SSL using gnutls - a bit of a painful process
Tero Marttila <terom@fixme.fi>
parents:
1
diff
changeset
|
21 |
|
a834f0559939
working SSL using gnutls - a bit of a painful process
Tero Marttila <terom@fixme.fi>
parents:
1
diff
changeset
|
22 |
# GnuTLS stuff |
a834f0559939
working SSL using gnutls - a bit of a painful process
Tero Marttila <terom@fixme.fi>
parents:
1
diff
changeset
|
23 |
GNUTLS_NAME = "gnutls" |
a834f0559939
working SSL using gnutls - a bit of a painful process
Tero Marttila <terom@fixme.fi>
parents:
1
diff
changeset
|
24 |
GNUTLS_CFLAGS = $(shell pkg-config ${GNUTLS_NAME} --cflags) |
a834f0559939
working SSL using gnutls - a bit of a painful process
Tero Marttila <terom@fixme.fi>
parents:
1
diff
changeset
|
25 |
GNUTLS_LDFLAGS = $(shell pkg-config ${GNUTLS_NAME} --libs) |
a834f0559939
working SSL using gnutls - a bit of a painful process
Tero Marttila <terom@fixme.fi>
parents:
1
diff
changeset
|
26 |
|
0 | 27 |
BIN_NAMES = nexus |
28 |
BIN_PATHS = $(addprefix bin/,$(BIN_NAMES)) |
|
29 |
||
30 |
# modules |
|
31 |
module_objs = $(patsubst src/%.c,obj/%.o,$(wildcard src/$(1)/*.c)) |
|
32 |
||
1
cf0e1bb6bcab
a fancy socket abstraction layer, with TCP, next, SSL. Also, .hgignore
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
33 |
SOCK_OBJS = obj/sock.o obj/sock_tcp.o |
2
a834f0559939
working SSL using gnutls - a bit of a painful process
Tero Marttila <terom@fixme.fi>
parents:
1
diff
changeset
|
34 |
SOCK_GNUTLS_OBJS = obj/sock_gnutls.o |
1
cf0e1bb6bcab
a fancy socket abstraction layer, with TCP, next, SSL. Also, .hgignore
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
35 |
|
0 | 36 |
# XXX: not yet there |
37 |
#CORE_OBJS = obj/lib/log.o obj/lib/signals.o |
|
38 |
||
39 |
# first target |
|
40 |
all: ${BIN_PATHS} |
|
41 |
||
42 |
# binaries |
|
2
a834f0559939
working SSL using gnutls - a bit of a painful process
Tero Marttila <terom@fixme.fi>
parents:
1
diff
changeset
|
43 |
bin/nexus: ${SOCK_OBJS} ${SOCK_GNUTLS_OBJS} |
0 | 44 |
|
45 |
# computed |
|
2
a834f0559939
working SSL using gnutls - a bit of a painful process
Tero Marttila <terom@fixme.fi>
parents:
1
diff
changeset
|
46 |
CFLAGS = ${MODE_CFLAGS} ${FIXED_CFLAGS} ${LIBEVENT_CFLAGS} ${GNUTLS_CFLAGS} |
a834f0559939
working SSL using gnutls - a bit of a painful process
Tero Marttila <terom@fixme.fi>
parents:
1
diff
changeset
|
47 |
LDFLAGS = ${LIBEVENT_LDFLAGS} ${GNUTLS_LDFLAGS} |
0 | 48 |
|
2
a834f0559939
working SSL using gnutls - a bit of a painful process
Tero Marttila <terom@fixme.fi>
parents:
1
diff
changeset
|
49 |
# XXX: is this valid? |
a834f0559939
working SSL using gnutls - a bit of a painful process
Tero Marttila <terom@fixme.fi>
parents:
1
diff
changeset
|
50 |
CPPFLAGS = ${CFLAGS} |
a834f0559939
working SSL using gnutls - a bit of a painful process
Tero Marttila <terom@fixme.fi>
parents:
1
diff
changeset
|
51 |
|
a834f0559939
working SSL using gnutls - a bit of a painful process
Tero Marttila <terom@fixme.fi>
parents:
1
diff
changeset
|
52 |
# names for src/ |
0 | 53 |
SRC_PATHS = $(wildcard src/*.c) $(wildcard src/*/*.c) |
54 |
SRC_NAMES = $(patsubst src/%,%,$(SRC_PATHS)) |
|
55 |
SRC_DIRS = $(dir $(SRC_NAMES)) |
|
56 |
||
57 |
# other targets |
|
58 |
clean : |
|
59 |
-rm obj/*.o obj/*/*.o |
|
60 |
-rm bin/* |
|
61 |
-rm build/deps/*.d build/deps/*/*.d |
|
62 |
||
63 |
clean-deps: |
|
64 |
-rm build/deps/*/*.d |
|
65 |
-rm build/deps/*.d |
|
66 |
||
67 |
#obj-dirs: |
|
68 |
# python build/make_obj_dirs.py $(BIN_PATHS) |
|
69 |
||
70 |
build/deps/%.d : src/%.c |
|
71 |
@set -e; rm -f $@; \ |
|
72 |
$(CC) -MM -MT __ $(CPPFLAGS) $< > $@.$$$$; \ |
|
73 |
sed 's,__[ :]*,obj/$*.o $@ : ,g' < $@.$$$$ > $@; \ |
|
74 |
rm -f $@.$$$$ |
|
75 |
||
76 |
include $(SRC_NAMES:%.c=build/deps/%.d) |
|
77 |
||
78 |
obj/%.o : src/%.c |
|
79 |
$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@ |
|
80 |
||
81 |
bin/% : obj/%.o |
|
82 |
$(CC) $(LDFLAGS) $+ $(LOADLIBES) $(LDLIBS) -o $@ |
|
83 |
||
84 |
# documentation |
|
85 |
DOXYGEN_PATH = /usr/bin/doxygen |
|
86 |
DOXYGEN_CONF_PATH = doc/doxygen.conf |
|
87 |
DOXYGEN_OUTPUT_FILE = doc/html/index.html |
|
88 |
||
89 |
docs : |
|
90 |
${DOXYGEN_PATH} ${DOXYGEN_CONF_PATH} |
|
91 |