annotate GNUmakefile @ 1058:c42b2540f849

man: libirccd-compat.3 is no longer needed
author David Demelier <markand@malikania.fr>
date Mon, 21 Jun 2021 10:11:55 +0200
parents 049b8fe77535
children 8aca32f4af1d
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
1051
403a87c8d0b4 misc: add User/Group options in irccd.service
David Demelier <markand@malikania.fr>
parents: 1045
diff changeset
30 USER= nobody
403a87c8d0b4 misc: add User/Group options in irccd.service
David Demelier <markand@malikania.fr>
parents: 1045
diff changeset
31 GROUP= nobody
1037
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
32
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 SSL= 1
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 JS= 1
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
35
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 MAJOR= 4
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 MINOR= 0
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 PATCH= 0
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
39
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 LIB_SRCS= lib/irccd/channel.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 lib/irccd/conn.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 lib/irccd/event.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 lib/irccd/hook.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 lib/irccd/irccd.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 lib/irccd/log.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 lib/irccd/plugin.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 lib/irccd/rule.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 lib/irccd/server.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 lib/irccd/subst.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 lib/irccd/util.c
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 LIB_OBJS= ${LIB_SRCS:.c=.o}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 LIB_DEPS= ${LIB_SRCS:.c=.d}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
53
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 IRCCD_SRCS= irccd/conf.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 irccd/dl-plugin.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 irccd/lex.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 irccd/peer.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 irccd/transport.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 irccd/unicode.c
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
60
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 ifeq (${JS},1)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 IRCCD_SRCS+= extern/libduktape/duktape.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 irccd/js-plugin.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 irccd/jsapi-chrono.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 irccd/jsapi-directory.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 irccd/jsapi-file.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 irccd/jsapi-hook.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 irccd/jsapi-irccd.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 irccd/jsapi-logger.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 irccd/jsapi-plugin.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 irccd/jsapi-rule.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 irccd/jsapi-server.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 irccd/jsapi-system.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 irccd/jsapi-timer.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 irccd/jsapi-unicode.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 irccd/jsapi-util.c
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 endif
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
78
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 IRCCD_OBJS= ${IRCCD_SRCS:.c=.o}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 IRCCD_DEPS= ${IRCCD_SRCS:.c=.d}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
81
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 MAN1= man/irccd.1 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 man/irccdctl.1
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
84
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 MAN3= man/irccd-api-chrono.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 man/irccd-api-directory.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 man/irccd-api-file.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 man/irccd-api-hook.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 man/irccd-api-logger.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 man/irccd-api-plugin.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 man/irccd-api-rule.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 man/irccd-api-server.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 man/irccd-api-system.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 man/irccd-api-timer.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 man/irccd-api-unicode.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 man/irccd-api-util.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 man/irccd-api.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
98 man/libirccd-channel.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 man/libirccd-event.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 man/libirccd-hook.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 man/libirccd-log.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
102 man/libirccd-rule.3 \
1057
049b8fe77535 man: add libirccd-server.3
David Demelier <markand@malikania.fr>
parents: 1053
diff changeset
103 man/libirccd-server.3 \
1037
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 man/libirccd-subst.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
105 man/libirccd-util.3 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
106 man/libirccd.3
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 MAN5= man/irccd.conf.5
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
109
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
110 MAN7= man/irccd-ipc.7 \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
111 man/irccd-templates.7
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
112
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
113 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
114 PLUGINS.c= links
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
115
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
116 TESTS= tests/test-bot.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
117 tests/test-channel.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
118 tests/test-dl-plugin.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
119 tests/test-event.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
120 tests/test-log.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
121 tests/test-rule.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 tests/test-subst.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
123 tests/test-util.c
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
124
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
125 ifeq (${JS},1)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
126 TESTS+= tests/test-jsapi-chrono.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
127 tests/test-jsapi-directory.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
128 tests/test-jsapi-file.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
129 tests/test-jsapi-irccd.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
130 tests/test-jsapi-timer.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
131 tests/test-jsapi-system.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
132 tests/test-jsapi-unicode.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
133 tests/test-jsapi-util.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
134 tests/test-plugin-ask.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
135 tests/test-plugin-auth.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
136 tests/test-plugin-hangman.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
137 tests/test-plugin-history.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
138 tests/test-plugin-joke.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
139 tests/test-plugin-logger.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
140 tests/test-plugin-plugin.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
141 tests/test-plugin-tictactoe.c
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
142 endif
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
143
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
144 TESTS_OBJS= ${TESTS:.c=}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
145
1038
b7585f0c3934 make: add -lm, -ldl and -lpthread
David Demelier <markand@malikania.fr>
parents: 1037
diff changeset
146 # Per system commands.
b7585f0c3934 make: add -lm, -ldl and -lpthread
David Demelier <markand@malikania.fr>
parents: 1037
diff changeset
147 OS:= $(shell uname -s)
b7585f0c3934 make: add -lm, -ldl and -lpthread
David Demelier <markand@malikania.fr>
parents: 1037
diff changeset
148
1037
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
149 # Compile flags.
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
150 DEFS= -D_BSD_SOURCE -DLIBBSD_OVERLAY -DTOP=\"`pwd`\"
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
151
1045
13e374b9c522 make: add DEBUG option
David Demelier <markand@malikania.fr>
parents: 1038
diff changeset
152 ifeq (${DEBUG},1)
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 else
1053
8d6651c3e36c make: fix debug/release builds
David Demelier <markand@malikania.fr>
parents: 1051
diff changeset
155 CFLAGS+= -DNDEBUG -O3
1045
13e374b9c522 make: add DEBUG option
David Demelier <markand@malikania.fr>
parents: 1038
diff changeset
156 endif
13e374b9c522 make: add DEBUG option
David Demelier <markand@malikania.fr>
parents: 1038
diff changeset
157
1037
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
158 # Include directories.
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
159 INCS= -I lib/
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
160 INCS+= -I ./
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
161 INCS+= -I extern/libgreatest/
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
162 INCS+= -I extern/libketopt/
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
163 INCS+= $(shell pkg-config --cflags libbsd-overlay)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
164
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
165 ifeq (${SSL},1)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
166 INCS+= $(shell pkg-config --cflags openssl)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
167 endif
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
168 ifeq (${JS},1)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
169 INCS+= -I extern/libduktape
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
170 endif
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
171
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
172 # Whole libraries for every binaries.
1038
b7585f0c3934 make: add -lm, -ldl and -lpthread
David Demelier <markand@malikania.fr>
parents: 1037
diff changeset
173 LIBS+= -l pthread
b7585f0c3934 make: add -lm, -ldl and -lpthread
David Demelier <markand@malikania.fr>
parents: 1037
diff changeset
174 LIBS+= -l m
b7585f0c3934 make: add -lm, -ldl and -lpthread
David Demelier <markand@malikania.fr>
parents: 1037
diff changeset
175
b7585f0c3934 make: add -lm, -ldl and -lpthread
David Demelier <markand@malikania.fr>
parents: 1037
diff changeset
176 ifeq (${OS},Linux)
b7585f0c3934 make: add -lm, -ldl and -lpthread
David Demelier <markand@malikania.fr>
parents: 1037
diff changeset
177 LIBS+= -l dl
1051
403a87c8d0b4 misc: add User/Group options in irccd.service
David Demelier <markand@malikania.fr>
parents: 1045
diff changeset
178 CFLAGS+= -fPIC
1038
b7585f0c3934 make: add -lm, -ldl and -lpthread
David Demelier <markand@malikania.fr>
parents: 1037
diff changeset
179 endif
b7585f0c3934 make: add -lm, -ldl and -lpthread
David Demelier <markand@malikania.fr>
parents: 1037
diff changeset
180
1037
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
181 LIBS+= $(shell pkg-config --libs libbsd-overlay)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
182
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
183 ifeq (${SSL},1)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
184 LIBS+= $(shell pkg-config --libs openssl)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
185 endif
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
186
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
187 # For config.h file.
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
188 ifeq (${SSL},1)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
189 SED.ssl= s/@define WITH_SSL@/\#define IRCCD_WITH_SSL/
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
190 else
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
191 SED.ssl= /@define WITH_SSL@/d
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
192
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
193 endif
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
194 ifeq (${JS},1)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
195 SED.js= s/@define WITH_JS@/\#define IRCCD_WITH_JS/
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
196 else
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
197 SED.js= /@define WITH_JS@/d
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
198 endif
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
199
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
200 ifeq (${OS},Darwin)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
201 SHFLAGS= -undefined dynamic_lookup
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
202 else
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
203 SHFLAGS= -shared
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
204 endif
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
205
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
206 CMD.cc= ${CC} ${DEFS} ${INCS} ${CFLAGS} -MMD -c $< -o $@
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
207 CMD.ccld= ${CC} ${DEFS} ${INCS} ${CFLAGS} -o $@ $^ ${LIBS} ${LDFLAGS}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
208 CMD.cchost= ${CC} -Wl,-E -o $@ ${DEFS} ${INCS} ${CFLAGS} \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
209 -Wl,--whole-archive $^ -Wl,--no-whole-archive ${LIBS} ${LDFLAGS}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
210 CMD.ccplg= ${CC} ${DEFS} ${INCS} ${CFLAGS} ${SHFLAGS} -o $@ $^ ${LIBS} ${LDFLAGS}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
211
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
212 .SUFFIXES:
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
213 .SUFFIXES: .c .o .js
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
214
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
215 # Template for Javascript plugins.
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
216 define js-plugin =
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
217 PLUGINS.all+= plugin-${1}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
218 PLUGINS.inst+= install-plugin-${1}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
219
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
220 .PHONY: plugin-${1}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
221 plugin-${1}:
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
222
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
223 .PHONY: install-plugin-${1}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
224 install-plugin-${1}:
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
225 mkdir -p ${DESTDIR}${LIBDIR}/irccd
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
226 mkdir -p ${DESTDIR}${MANDIR}/man7
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
227 cp plugins/${1}/${1}.js ${DESTDIR}${LIBDIR}/irccd
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
228 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
229 endef
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
230
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
231 # Template for C native plugins.
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
232 define c-plugin =
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
233 PLUGINS.all+= plugin-${1}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
234 PLUGINS.objs+= plugins/${1}/${1}.so
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
235 PLUGINS.inst+= install-plugin-${1}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
236
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
237 .PHONY: plugin-${1}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
238 plugin-${1}: plugins/${1}/${1}.so
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
239
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
240 .PHONY: install-plugin-${1}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
241 install-plugin-${1}:
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
242 mkdir -p ${DESTDIR}${LIBDIR}/irccd
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
243 mkdir -p ${DESTDIR}${MANDIR}/man7
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
244 cp plugins/${1}/${1}.so ${DESTDIR}${LIBDIR}/irccd
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
245 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
246 endef
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
247
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
248 .c.o:
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
249 ${CMD.cc}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
250
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
251 .c:
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
252 ${CMD.ccld}
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 all: irccd/irccd irccdctl/irccdctl
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 -include ${LIB_DEPS} ${IRCCD_DEPS}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
257
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
258 lib/irccd/config.h: lib/irccd/config.h.in
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
259 sed -e "s,@ETCDIR@,${ETCDIR},g" \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
260 -e "s,@LIBDIR@,${LIBDIR},g" \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
261 -e "s,@SHAREDIR@,${SHAREDIR},g" \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
262 -e "s,@VARDIR@,${VARDIR},g" \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
263 -e "s,@MAJOR@,${MAJOR},g" \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
264 -e "s,@MINOR@,${MINOR},g" \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
265 -e "s,@PATCH@,${PATCH},g" \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
266 -e "${SED.ssl}" \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
267 -e "${SED.js}" \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
268 < $< > $@
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 ${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
271
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
272 irccd/conf.c: irccd/conf.y
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
273 bison -d -o $@ $<
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
274
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
275 irccd/lex.c: irccd/lex.l
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
276 flex -o $@ $<
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
277
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
278 irccd/irccd: irccd/main.o ${IRCCD_OBJS} ${LIB_OBJS}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
279 ${CMD.cchost}
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 irccdctl/irccdctl: ${LIB_OBJS}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
282
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
283 $(foreach p,${PLUGINS.js},$(eval $(call js-plugin,${p})))
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
284 $(foreach p,${PLUGINS.c},$(eval $(call c-plugin,${p})))
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
285
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
286 install:
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
287 mkdir -p ${DESTDIR}${BINDIR}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
288 cp irccd/irccd ${DESTDIR}${BINDIR}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
289 chmod 755 ${DESTDIR}${BINDIR}/irccd
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
290 cp irccdctl/irccdctl ${DESTDIR}${BINDIR}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
291 chmod 755 ${DESTDIR}${BINDIR}/irccdctl
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
292 mkdir -p ${DESTDIR}${MANDIR}/man1
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
293 cp ${MAN1} ${DESTDIR}${MANDIR}/man1
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
294 mkdir -p ${DESTDIR}${MANDIR}/man3
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
295 cp ${MAN3} ${DESTDIR}${MANDIR}/man3
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
296 mkdir -p ${DESTDIR}${MANDIR}/man5
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
297 cp ${MAN5} ${DESTDIR}${MANDIR}/man5
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
298 mkdir -p ${DESTDIR}${MANDIR}/man7
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
299 cp ${MAN7} ${DESTDIR}${MANDIR}/man7
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
300 mkdir -p ${DESTDIR}${ETCDIR}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
301 cp irccd/irccd.conf ${DESTDIR}${ETCDIR}/irccd.conf.sample
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
302 mkdir -p ${DESTDIR}${LIBDIR}/pkgconfig
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
303 sed -e "s,@MAJOR@,${MAJOR}," \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
304 -e "s,@MINOR@,${MINOR}," \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
305 -e "s,@PATCH@,${PATCH}," \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
306 -e "s,@INCDIR@,${INCDIR}," \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
307 -e "s,@SHFLAGS@,${SHFLAGS}," \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
308 < lib/irccd.pc.in > ${DESTDIR}${LIBDIR}/pkgconfig/irccd.pc
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-plugins: ${PLUGINS.inst}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
311
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
312 install-systemd:
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
313 mkdir -p ${DESTDIR}${LIBDIR}/systemd/system
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
314 sed -e "s,@PATH@,${BINDIR}/irccd," \
1051
403a87c8d0b4 misc: add User/Group options in irccd.service
David Demelier <markand@malikania.fr>
parents: 1045
diff changeset
315 -e "s,@USER@,${USER}," \
403a87c8d0b4 misc: add User/Group options in irccd.service
David Demelier <markand@malikania.fr>
parents: 1045
diff changeset
316 -e "s,@GROUP@,${GROUP}," \
1037
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
317 < systemd/irccd.service \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
318 > ${DESTDIR}${LIBDIR}/systemd/system/irccd.service
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
319
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
320 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
321 ${CMD.ccplg}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
322
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
323 ${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
324
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
325 # Generic plugin build command.
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
326 plugins/%.so: plugins/%.c | ${IRCCD_OBJS}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
327 ${CMD.ccplg}
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 # Plugin `links` require libcurl.
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
330 plugins/links/links.so: plugins/links/links.c ${LIB_OBJS}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
331 ${CMD.ccplg} $(shell pkg-config --libs --cflags libcurl)
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
332
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
333 plugins: ${PLUGINS.all}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
334
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
335 tests/%: tests/%.c
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
336 ${CMD.cchost}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
337
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
338 tests: ${TESTS_OBJS}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
339 for t in ${TESTS_OBJS}; do ./$$t -v; done
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
340
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
341 clean:
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
342 rm -f lib/irccd/config.h ${LIB_OBJS} ${LIB_DEPS}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
343 rm -f irccd/irccd irccd/main.o irccd/main.d \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
344 irccd/conf.c irccd/conf.h irccd/lex.c \
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
345 ${IRCCD_OBJS} ${IRCCD_DEPS}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
346 rm -f irccdctl/irccdctl
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
347 rm -f ${TESTS_OBJS} tests/data/example-dl-plugin.so
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
348 rm -f ${PLUGINS.objs}
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
349
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents:
diff changeset
350 .PHONY: all clean install install-plugins install-systemd plugins tests