author | Tero Marttila <terom@fixme.fi> |
Thu, 12 Mar 2009 22:50:08 +0200 | |
changeset 45 | 71e65564afd2 |
parent 40 | 51678c7eae03 |
child 48 | 4841f4398fd2 |
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 |
||
25
56367df4ce5b
add irc_net module, and fix Makefile CFLAGS, add -Wextra
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
16 |
FIXED_CFLAGS = -Wall -Wextra -std=gnu99 |
0 | 17 |
|
2
a834f0559939
working SSL using gnutls - a bit of a painful process
Tero Marttila <terom@fixme.fi>
parents:
1
diff
changeset
|
18 |
# libevent |
9
4c4c906cc649
add sock_stream_callbacks and ev_base
Tero Marttila <terom@fixme.fi>
parents:
8
diff
changeset
|
19 |
LIBEVENT_CFLAGS = -I/home/terom/opt/include |
4c4c906cc649
add sock_stream_callbacks and ev_base
Tero Marttila <terom@fixme.fi>
parents:
8
diff
changeset
|
20 |
LIBEVENT_LDFLAGS = -L/home/terom/opt/lib -levent_core |
2
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 |
|
23
542c73d07d3c
add a simple irc_log module (with evsql code) that joins a channel and log_info's PRIVMSGs
Tero Marttila <terom@fixme.fi>
parents:
21
diff
changeset
|
27 |
# evsql stuff |
542c73d07d3c
add a simple irc_log module (with evsql code) that joins a channel and log_info's PRIVMSGs
Tero Marttila <terom@fixme.fi>
parents:
21
diff
changeset
|
28 |
EVSQL_CFLAGS = |
542c73d07d3c
add a simple irc_log module (with evsql code) that joins a channel and log_info's PRIVMSGs
Tero Marttila <terom@fixme.fi>
parents:
21
diff
changeset
|
29 |
EVSQL_LDFLAGS = -levsql -lpq |
542c73d07d3c
add a simple irc_log module (with evsql code) that joins a channel and log_info's PRIVMSGs
Tero Marttila <terom@fixme.fi>
parents:
21
diff
changeset
|
30 |
|
40
51678c7eae03
add sock_test module and some basic initial tests
Tero Marttila <terom@fixme.fi>
parents:
37
diff
changeset
|
31 |
BIN_NAMES = nexus test |
0 | 32 |
BIN_PATHS = $(addprefix bin/,$(BIN_NAMES)) |
33 |
||
34 |
# modules |
|
35 |
module_objs = $(patsubst src/%.c,obj/%.o,$(wildcard src/$(1)/*.c)) |
|
36 |
||
37
4fe4a3c4496e
change irc_chan.state into bool fields, move irc_cmd implementation from irc_conn.c into irc_cmd.c, remove irc_conn arg from irc_cmd_handler, add irc_conn.nickname tracking, and handle irc_chan JOINs
Tero Marttila <terom@fixme.fi>
parents:
26
diff
changeset
|
37 |
CORE_OBJS = obj/error.o obj/log.o obj/chain.o |
1
cf0e1bb6bcab
a fancy socket abstraction layer, with TCP, next, SSL. Also, .hgignore
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
38 |
SOCK_OBJS = obj/sock.o obj/sock_tcp.o |
40
51678c7eae03
add sock_test module and some basic initial tests
Tero Marttila <terom@fixme.fi>
parents:
37
diff
changeset
|
39 |
SOCK_TEST_OBJS = obj/sock_test.o |
2
a834f0559939
working SSL using gnutls - a bit of a painful process
Tero Marttila <terom@fixme.fi>
parents:
1
diff
changeset
|
40 |
SOCK_GNUTLS_OBJS = obj/sock_gnutls.o |
8
be88e543c8ff
split off line_proto, and make sock_stream_error return a const error_info
Tero Marttila <terom@fixme.fi>
parents:
6
diff
changeset
|
41 |
LINEPROTO_OBJS = obj/line_proto.o |
45
71e65564afd2
remove irc_chan.state, modify irc_chan_callbacks.on_msg to take a irc_nm, improve error handling a bit further (up to irc_net now)
Tero Marttila <terom@fixme.fi>
parents:
40
diff
changeset
|
42 |
IRC_OBJS = obj/irc_line.o obj/irc_conn.o obj/irc_net.o obj/irc_chan.o obj/irc_cmd.o obj/irc_proto.o |
23
542c73d07d3c
add a simple irc_log module (with evsql code) that joins a channel and log_info's PRIVMSGs
Tero Marttila <terom@fixme.fi>
parents:
21
diff
changeset
|
43 |
IRC_LOG_OBJS = obj/irc_log.o |
1
cf0e1bb6bcab
a fancy socket abstraction layer, with TCP, next, SSL. Also, .hgignore
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
44 |
|
0 | 45 |
# XXX: not yet there |
46 |
#CORE_OBJS = obj/lib/log.o obj/lib/signals.o |
|
47 |
||
48 |
# first target |
|
49 |
all: ${BIN_PATHS} |
|
50 |
||
51 |
# binaries |
|
23
542c73d07d3c
add a simple irc_log module (with evsql code) that joins a channel and log_info's PRIVMSGs
Tero Marttila <terom@fixme.fi>
parents:
21
diff
changeset
|
52 |
bin/nexus: ${CORE_OBJS} ${SOCK_OBJS} ${SOCK_GNUTLS_OBJS} ${LINEPROTO_OBJS} ${IRC_OBJS} ${IRC_LOG_OBJS} |
0 | 53 |
|
40
51678c7eae03
add sock_test module and some basic initial tests
Tero Marttila <terom@fixme.fi>
parents:
37
diff
changeset
|
54 |
bin/test: ${CORE_OBJS} ${SOCK_OBJS} ${SOCK_GNUTLS_OBJS} ${SOCK_TEST_OBJS} ${LINEPROTO_OBJS} ${IRC_OBJS} |
51678c7eae03
add sock_test module and some basic initial tests
Tero Marttila <terom@fixme.fi>
parents:
37
diff
changeset
|
55 |
|
0 | 56 |
# computed |
23
542c73d07d3c
add a simple irc_log module (with evsql code) that joins a channel and log_info's PRIVMSGs
Tero Marttila <terom@fixme.fi>
parents:
21
diff
changeset
|
57 |
CFLAGS = ${MODE_CFLAGS} ${FIXED_CFLAGS} ${LIBEVENT_CFLAGS} ${GNUTLS_CFLAGS} ${EVSQL_CFLAGS} |
542c73d07d3c
add a simple irc_log module (with evsql code) that joins a channel and log_info's PRIVMSGs
Tero Marttila <terom@fixme.fi>
parents:
21
diff
changeset
|
58 |
LDFLAGS = ${LIBEVENT_LDFLAGS} ${GNUTLS_LDFLAGS} ${EVSQL_LDFLAGS} |
0 | 59 |
|
2
a834f0559939
working SSL using gnutls - a bit of a painful process
Tero Marttila <terom@fixme.fi>
parents:
1
diff
changeset
|
60 |
# XXX: is this valid? |
a834f0559939
working SSL using gnutls - a bit of a painful process
Tero Marttila <terom@fixme.fi>
parents:
1
diff
changeset
|
61 |
CPPFLAGS = ${CFLAGS} |
a834f0559939
working SSL using gnutls - a bit of a painful process
Tero Marttila <terom@fixme.fi>
parents:
1
diff
changeset
|
62 |
|
a834f0559939
working SSL using gnutls - a bit of a painful process
Tero Marttila <terom@fixme.fi>
parents:
1
diff
changeset
|
63 |
# names for src/ |
0 | 64 |
SRC_PATHS = $(wildcard src/*.c) $(wildcard src/*/*.c) |
65 |
SRC_NAMES = $(patsubst src/%,%,$(SRC_PATHS)) |
|
66 |
SRC_DIRS = $(dir $(SRC_NAMES)) |
|
67 |
||
68 |
# other targets |
|
69 |
clean : |
|
70 |
-rm obj/*.o obj/*/*.o |
|
71 |
-rm bin/* |
|
72 |
-rm build/deps/*.d build/deps/*/*.d |
|
73 |
||
74 |
clean-deps: |
|
75 |
-rm build/deps/*/*.d |
|
76 |
-rm build/deps/*.d |
|
77 |
||
78 |
#obj-dirs: |
|
79 |
# python build/make_obj_dirs.py $(BIN_PATHS) |
|
80 |
||
81 |
build/deps/%.d : src/%.c |
|
82 |
@set -e; rm -f $@; \ |
|
83 |
$(CC) -MM -MT __ $(CPPFLAGS) $< > $@.$$$$; \ |
|
84 |
sed 's,__[ :]*,obj/$*.o $@ : ,g' < $@.$$$$ > $@; \ |
|
85 |
rm -f $@.$$$$ |
|
86 |
||
87 |
include $(SRC_NAMES:%.c=build/deps/%.d) |
|
88 |
||
25
56367df4ce5b
add irc_net module, and fix Makefile CFLAGS, add -Wextra
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
89 |
|
56367df4ce5b
add irc_net module, and fix Makefile CFLAGS, add -Wextra
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
90 |
# XXX: removed $(CPPFLAGS) |
0 | 91 |
obj/%.o : src/%.c |
25
56367df4ce5b
add irc_net module, and fix Makefile CFLAGS, add -Wextra
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
92 |
$(CC) -c $(CFLAGS) $< -o $@ |
0 | 93 |
|
94 |
bin/% : obj/%.o |
|
95 |
$(CC) $(LDFLAGS) $+ $(LOADLIBES) $(LDLIBS) -o $@ |
|
96 |
||
97 |
# documentation |
|
98 |
DOXYGEN_PATH = /usr/bin/doxygen |
|
99 |
DOXYGEN_CONF_PATH = doc/doxygen.conf |
|
100 |
DOXYGEN_OUTPUT_FILE = doc/html/index.html |
|
101 |
||
102 |
docs : |
|
103 |
${DOXYGEN_PATH} ${DOXYGEN_CONF_PATH} |
|
104 |