annotate GNUmakefile @ 1045:13e374b9c522

make: add DEBUG option
author David Demelier <markand@malikania.fr>
date Sun, 20 Jun 2021 09:13:37 +0200
parents b7585f0c3934
children 403a87c8d0b4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1037
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 #
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 # GNUmakefile -- GNU make for irccd
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 #
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 # Copyright (c) 2013-2021 David Demelier <markand@malikania.fr>
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 #
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 # Permission to use, copy, modify, and/or distribute this software for any
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 # purpose with or without fee is hereby granted, provided that the above
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 # copyright notice and this permission notice appear in all copies.
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 #
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 #
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 CC= cc
1045
13e374b9c522 make: add DEBUG option
David Demelier <markand@malikania.fr>
parents: 1038
diff changeset
20 CFLAGS= -Wall -Wextra -Wno-cpp
1037
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 PREFIX= /usr/local
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 BINDIR= ${PREFIX}/bin
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 ETCDIR= ${PREFIX}/etc
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 INCDIR= ${PREFIX}/include
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 LIBDIR= ${PREFIX}/lib
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 MANDIR= ${PREFIX}/share/man
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 SHAREDIR= ${PREFIX}/share
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 VARDIR= ${PREFIX}/var
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
30
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 SSL= 1
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 JS= 1
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
33
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 MAJOR= 4
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 MINOR= 0
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 PATCH= 0
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
37
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 LIB_SRCS= lib/irccd/channel.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 lib/irccd/conn.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 lib/irccd/event.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 lib/irccd/hook.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 lib/irccd/irccd.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 lib/irccd/log.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 lib/irccd/plugin.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 lib/irccd/rule.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 lib/irccd/server.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 lib/irccd/subst.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 lib/irccd/util.c
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 LIB_OBJS= ${LIB_SRCS:.c=.o}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 LIB_DEPS= ${LIB_SRCS:.c=.d}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
51
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 IRCCD_SRCS= irccd/conf.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 irccd/dl-plugin.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 irccd/lex.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 irccd/peer.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 irccd/transport.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 irccd/unicode.c
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
58
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 ifeq (${JS},1)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 IRCCD_SRCS+= extern/libduktape/duktape.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 irccd/js-plugin.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 irccd/jsapi-chrono.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 irccd/jsapi-directory.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 irccd/jsapi-file.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 irccd/jsapi-hook.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 irccd/jsapi-irccd.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 irccd/jsapi-logger.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 irccd/jsapi-plugin.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 irccd/jsapi-rule.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 irccd/jsapi-server.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 irccd/jsapi-system.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 irccd/jsapi-timer.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 irccd/jsapi-unicode.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 irccd/jsapi-util.c
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 endif
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
76
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 IRCCD_OBJS= ${IRCCD_SRCS:.c=.o}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 IRCCD_DEPS= ${IRCCD_SRCS:.c=.d}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
79
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 MAN1= man/irccd.1 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 man/irccdctl.1
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
82
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 MAN3= man/irccd-api-chrono.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 man/irccd-api-directory.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 man/irccd-api-file.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 man/irccd-api-hook.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 man/irccd-api-logger.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 man/irccd-api-plugin.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 man/irccd-api-rule.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 man/irccd-api-server.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 man/irccd-api-system.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 man/irccd-api-timer.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 man/irccd-api-unicode.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 man/irccd-api-util.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 man/irccd-api.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 man/libirccd-channel.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 man/libirccd-compat.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
98 man/libirccd-event.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 man/libirccd-hook.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 man/libirccd-log.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 man/libirccd-rule.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
102 man/libirccd-subst.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 man/libirccd-util.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 man/libirccd.3
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
105
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
106 MAN5= man/irccd.conf.5
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
107
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
108 MAN7= man/irccd-ipc.7 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
109 man/irccd-templates.7
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
110
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
111 PLUGINS.js= ask auth hangman history joke logger plugin roulette tictactoe
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
112 PLUGINS.c= links
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
113
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
114 TESTS= tests/test-bot.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
115 tests/test-channel.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
116 tests/test-dl-plugin.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
117 tests/test-event.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
118 tests/test-log.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
119 tests/test-rule.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
120 tests/test-subst.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
121 tests/test-util.c
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
122
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
123 ifeq (${JS},1)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
124 TESTS+= tests/test-jsapi-chrono.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
125 tests/test-jsapi-directory.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
126 tests/test-jsapi-file.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
127 tests/test-jsapi-irccd.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
128 tests/test-jsapi-timer.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
129 tests/test-jsapi-system.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
130 tests/test-jsapi-unicode.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
131 tests/test-jsapi-util.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
132 tests/test-plugin-ask.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
133 tests/test-plugin-auth.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
134 tests/test-plugin-hangman.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
135 tests/test-plugin-history.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
136 tests/test-plugin-joke.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
137 tests/test-plugin-logger.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
138 tests/test-plugin-plugin.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
139 tests/test-plugin-tictactoe.c
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
140 endif
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
141
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
142 TESTS_OBJS= ${TESTS:.c=}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
143
1038
b7585f0c3934 make: add -lm, -ldl and -lpthread
David Demelier <markand@malikania.fr>
parents: 1037
diff changeset
144 # Per system commands.
b7585f0c3934 make: add -lm, -ldl and -lpthread
David Demelier <markand@malikania.fr>
parents: 1037
diff changeset
145 OS:= $(shell uname -s)
b7585f0c3934 make: add -lm, -ldl and -lpthread
David Demelier <markand@malikania.fr>
parents: 1037
diff changeset
146
1037
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
147 # Compile flags.
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
148 DEFS= -D_BSD_SOURCE -DLIBBSD_OVERLAY -DTOP=\"`pwd`\"
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
149
1045
13e374b9c522 make: add DEBUG option
David Demelier <markand@malikania.fr>
parents: 1038
diff changeset
150 ifeq (${DEBUG},1)
13e374b9c522 make: add DEBUG option
David Demelier <markand@malikania.fr>
parents: 1038
diff changeset
151 CFLAGS+= -O0 -g
13e374b9c522 make: add DEBUG option
David Demelier <markand@malikania.fr>
parents: 1038
diff changeset
152 else
13e374b9c522 make: add DEBUG option
David Demelier <markand@malikania.fr>
parents: 1038
diff changeset
153 CFLAGS+= -O0 -g
13e374b9c522 make: add DEBUG option
David Demelier <markand@malikania.fr>
parents: 1038
diff changeset
154 endif
13e374b9c522 make: add DEBUG option
David Demelier <markand@malikania.fr>
parents: 1038
diff changeset
155
1037
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
156 # Include directories.
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
157 INCS= -I lib/
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
158 INCS+= -I ./
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
159 INCS+= -I extern/libgreatest/
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
160 INCS+= -I extern/libketopt/
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
161 INCS+= $(shell pkg-config --cflags libbsd-overlay)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
162
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
163 ifeq (${SSL},1)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
164 INCS+= $(shell pkg-config --cflags openssl)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
165 endif
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
166 ifeq (${JS},1)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
167 INCS+= -I extern/libduktape
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
168 endif
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
169
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
170 # Whole libraries for every binaries.
1038
b7585f0c3934 make: add -lm, -ldl and -lpthread
David Demelier <markand@malikania.fr>
parents: 1037
diff changeset
171 LIBS+= -l pthread
b7585f0c3934 make: add -lm, -ldl and -lpthread
David Demelier <markand@malikania.fr>
parents: 1037
diff changeset
172 LIBS+= -l m
b7585f0c3934 make: add -lm, -ldl and -lpthread
David Demelier <markand@malikania.fr>
parents: 1037
diff changeset
173
b7585f0c3934 make: add -lm, -ldl and -lpthread
David Demelier <markand@malikania.fr>
parents: 1037
diff changeset
174 ifeq (${OS},Linux)
b7585f0c3934 make: add -lm, -ldl and -lpthread
David Demelier <markand@malikania.fr>
parents: 1037
diff changeset
175 LIBS+= -l dl
b7585f0c3934 make: add -lm, -ldl and -lpthread
David Demelier <markand@malikania.fr>
parents: 1037
diff changeset
176 endif
b7585f0c3934 make: add -lm, -ldl and -lpthread
David Demelier <markand@malikania.fr>
parents: 1037
diff changeset
177
1037
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
178 LIBS+= $(shell pkg-config --libs libbsd-overlay)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
179
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
180 ifeq (${SSL},1)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
181 LIBS+= $(shell pkg-config --libs openssl)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
182 endif
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
183
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
184 # For config.h file.
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
185 ifeq (${SSL},1)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
186 SED.ssl= s/@define WITH_SSL@/\#define IRCCD_WITH_SSL/
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
187 else
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
188 SED.ssl= /@define WITH_SSL@/d
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
189
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
190 endif
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
191 ifeq (${JS},1)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
192 SED.js= s/@define WITH_JS@/\#define IRCCD_WITH_JS/
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
193 else
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
194 SED.js= /@define WITH_JS@/d
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
195 endif
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
196
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
197
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
198 ifeq (${OS},Darwin)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
199 SHFLAGS= -undefined dynamic_lookup
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
200 else
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
201 SHFLAGS= -shared
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
202 endif
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
203
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
204 CMD.cc= ${CC} ${DEFS} ${INCS} ${CFLAGS} -MMD -c $< -o $@
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
205 CMD.ccld= ${CC} ${DEFS} ${INCS} ${CFLAGS} -o $@ $^ ${LIBS} ${LDFLAGS}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
206 CMD.cchost= ${CC} -Wl,-E -o $@ ${DEFS} ${INCS} ${CFLAGS} \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
207 -Wl,--whole-archive $^ -Wl,--no-whole-archive ${LIBS} ${LDFLAGS}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
208 CMD.ccplg= ${CC} ${DEFS} ${INCS} ${CFLAGS} ${SHFLAGS} -o $@ $^ ${LIBS} ${LDFLAGS}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
209
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
210 .SUFFIXES:
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
211 .SUFFIXES: .c .o .js
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
212
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
213 # Template for Javascript plugins.
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
214 define js-plugin =
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
215 PLUGINS.all+= plugin-${1}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
216 PLUGINS.inst+= install-plugin-${1}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
217
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
218 .PHONY: plugin-${1}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
219 plugin-${1}:
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
220
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
221 .PHONY: install-plugin-${1}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
222 install-plugin-${1}:
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
223 mkdir -p ${DESTDIR}${LIBDIR}/irccd
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
224 mkdir -p ${DESTDIR}${MANDIR}/man7
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
225 cp plugins/${1}/${1}.js ${DESTDIR}${LIBDIR}/irccd
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
226 cp plugins/${1}/${1}.7 ${DESTDIR}${MANDIR}/man7/irccd-plugin-${1}.7
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
227 endef
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
228
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
229 # Template for C native plugins.
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
230 define c-plugin =
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
231 PLUGINS.all+= plugin-${1}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
232 PLUGINS.objs+= plugins/${1}/${1}.so
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
233 PLUGINS.inst+= install-plugin-${1}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
234
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
235 .PHONY: plugin-${1}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
236 plugin-${1}: plugins/${1}/${1}.so
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
237
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
238 .PHONY: install-plugin-${1}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
239 install-plugin-${1}:
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
240 mkdir -p ${DESTDIR}${LIBDIR}/irccd
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
241 mkdir -p ${DESTDIR}${MANDIR}/man7
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
242 cp plugins/${1}/${1}.so ${DESTDIR}${LIBDIR}/irccd
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
243 cp plugins/${1}/${1}.7 ${DESTDIR}${MANDIR}/man7/irccd-plugin-${1}.7
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
244 endef
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
245
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
246 .c.o:
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
247 ${CMD.cc}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
248
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
249 .c:
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
250 ${CMD.ccld}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
251
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
252 all: irccd/irccd irccdctl/irccdctl
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
253
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
254 -include ${LIB_DEPS} ${IRCCD_DEPS}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
255
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
256 lib/irccd/config.h: lib/irccd/config.h.in
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
257 sed -e "s,@ETCDIR@,${ETCDIR},g" \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
258 -e "s,@LIBDIR@,${LIBDIR},g" \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
259 -e "s,@SHAREDIR@,${SHAREDIR},g" \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
260 -e "s,@VARDIR@,${VARDIR},g" \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
261 -e "s,@MAJOR@,${MAJOR},g" \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
262 -e "s,@MINOR@,${MINOR},g" \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
263 -e "s,@PATCH@,${PATCH},g" \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
264 -e "${SED.ssl}" \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
265 -e "${SED.js}" \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
266 < $< > $@
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
267
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
268 ${LIB_OBJS} ${IRCCD_OBJS} irccd/main.o: lib/irccd/config.h
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
269
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
270 irccd/conf.c: irccd/conf.y
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
271 bison -d -o $@ $<
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
272
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
273 irccd/lex.c: irccd/lex.l
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
274 flex -o $@ $<
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
275
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
276 irccd/irccd: irccd/main.o ${IRCCD_OBJS} ${LIB_OBJS}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
277 ${CMD.cchost}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
278
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
279 irccdctl/irccdctl: ${LIB_OBJS}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
280
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
281 $(foreach p,${PLUGINS.js},$(eval $(call js-plugin,${p})))
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
282 $(foreach p,${PLUGINS.c},$(eval $(call c-plugin,${p})))
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
283
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
284 install:
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
285 mkdir -p ${DESTDIR}${BINDIR}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
286 cp irccd/irccd ${DESTDIR}${BINDIR}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
287 chmod 755 ${DESTDIR}${BINDIR}/irccd
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
288 cp irccdctl/irccdctl ${DESTDIR}${BINDIR}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
289 chmod 755 ${DESTDIR}${BINDIR}/irccdctl
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
290 mkdir -p ${DESTDIR}${MANDIR}/man1
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
291 cp ${MAN1} ${DESTDIR}${MANDIR}/man1
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
292 mkdir -p ${DESTDIR}${MANDIR}/man3
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
293 cp ${MAN3} ${DESTDIR}${MANDIR}/man3
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
294 mkdir -p ${DESTDIR}${MANDIR}/man5
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
295 cp ${MAN5} ${DESTDIR}${MANDIR}/man5
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
296 mkdir -p ${DESTDIR}${MANDIR}/man7
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
297 cp ${MAN7} ${DESTDIR}${MANDIR}/man7
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
298 mkdir -p ${DESTDIR}${ETCDIR}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
299 cp irccd/irccd.conf ${DESTDIR}${ETCDIR}/irccd.conf.sample
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
300 mkdir -p ${DESTDIR}${LIBDIR}/pkgconfig
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
301 sed -e "s,@MAJOR@,${MAJOR}," \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
302 -e "s,@MINOR@,${MINOR}," \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
303 -e "s,@PATCH@,${PATCH}," \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
304 -e "s,@INCDIR@,${INCDIR}," \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
305 -e "s,@SHFLAGS@,${SHFLAGS}," \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
306 < lib/irccd.pc.in > ${DESTDIR}${LIBDIR}/pkgconfig/irccd.pc
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
307
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
308 install-plugins: ${PLUGINS.inst}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
309
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
310 install-systemd:
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
311 mkdir -p ${DESTDIR}${LIBDIR}/systemd/system
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
312 sed -e "s,@PATH@,${BINDIR}/irccd," \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
313 < systemd/irccd.service \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
314 > ${DESTDIR}${LIBDIR}/systemd/system/irccd.service
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
315
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
316 tests/data/example-dl-plugin.so: tests/data/example-dl-plugin.c
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
317 ${CMD.ccplg}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
318
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
319 ${TESTS_OBJS}: ${IRCCD_OBJS} ${LIB_OBJS} | irccd/irccd tests/data/example-dl-plugin.so
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
320
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
321 # Generic plugin build command.
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
322 plugins/%.so: plugins/%.c | ${IRCCD_OBJS}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
323 ${CMD.ccplg}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
324
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
325 # Plugin `links` require libcurl.
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
326 plugins/links/links.so: plugins/links/links.c ${LIB_OBJS}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
327 ${CMD.ccplg} $(shell pkg-config --libs --cflags libcurl)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
328
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
329 plugins: ${PLUGINS.all}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
330
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
331 tests/%: tests/%.c
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
332 ${CMD.cchost}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
333
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
334 tests: ${TESTS_OBJS}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
335 for t in ${TESTS_OBJS}; do ./$$t -v; done
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
336
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
337 clean:
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
338 rm -f lib/irccd/config.h ${LIB_OBJS} ${LIB_DEPS}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
339 rm -f irccd/irccd irccd/main.o irccd/main.d \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
340 irccd/conf.c irccd/conf.h irccd/lex.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
341 ${IRCCD_OBJS} ${IRCCD_DEPS}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
342 rm -f irccdctl/irccdctl
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
343 rm -f ${TESTS_OBJS} tests/data/example-dl-plugin.so
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
344 rm -f ${PLUGINS.objs}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
345
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
346 .PHONY: all clean install install-plugins install-systemd plugins tests