annotate Makefile @ 939:a62c56c8b5ca

irccd: add partially the javascript API
author David Demelier <markand@malikania.fr>
date Wed, 13 Jan 2021 17:18:35 +0100
parents 7b74df7e8913
children 94cae3129870
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
934
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 #
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 # Makefile -- POSIX makefile for irccd
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 #
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 # Copyright (c) 2013-2021 David Demelier <markand@malikania.fr>
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 #
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 # Permission to use, copy, modify, and/or distribute this software for any
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 # purpose with or without fee is hereby granted, provided that the above
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 # copyright notice and this permission notice appear in all copies.
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 #
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 #
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 .SUFFIXES:
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 .SUFFIXES: .o .c
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 include config.mk
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
23
938
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
24 IRCCD= irccd/irccd
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
25 IRCCD_SRCS= irccd/main.c
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
26 IRCCD_OBJS= ${IRCCD_SRCS:.c=.o}
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
27 IRCCD_DEPS= ${IRCCD_SRCS:.c=.d}
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
28
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
29 LIBCOMPAT= extern/libcompat/libirccd-compat.a
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
30
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
31 ifeq (${WITH_JS},yes)
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
32 LIBDUKTAPE= extern/libduktape/libirccd-duktape.a
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
33 endif
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
34
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
35 LIBIRCCD= lib/libirccd.a
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
36 LIBIRCCD_SRCS= lib/irccd/dl-plugin.c
939
a62c56c8b5ca irccd: add partially the javascript API
David Demelier <markand@malikania.fr>
parents: 938
diff changeset
37 LIBIRCCD_SRCS+= lib/irccd/irccd.c
938
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
38 LIBIRCCD_SRCS+= lib/irccd/log.c
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
39 LIBIRCCD_SRCS+= lib/irccd/plugin.c
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
40 LIBIRCCD_SRCS+= lib/irccd/server.c
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
41 LIBIRCCD_SRCS+= lib/irccd/subst.c
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
42 LIBIRCCD_SRCS+= lib/irccd/util.c
939
a62c56c8b5ca irccd: add partially the javascript API
David Demelier <markand@malikania.fr>
parents: 938
diff changeset
43
a62c56c8b5ca irccd: add partially the javascript API
David Demelier <markand@malikania.fr>
parents: 938
diff changeset
44 ifeq (${WITH_JS},yes)
a62c56c8b5ca irccd: add partially the javascript API
David Demelier <markand@malikania.fr>
parents: 938
diff changeset
45 LIBIRCCD_SRCS+= lib/irccd/js-plugin.c
a62c56c8b5ca irccd: add partially the javascript API
David Demelier <markand@malikania.fr>
parents: 938
diff changeset
46 LIBIRCCD_SRCS+= lib/irccd/jsapi-chrono.c
a62c56c8b5ca irccd: add partially the javascript API
David Demelier <markand@malikania.fr>
parents: 938
diff changeset
47 LIBIRCCD_SRCS+= lib/irccd/jsapi-file.c
a62c56c8b5ca irccd: add partially the javascript API
David Demelier <markand@malikania.fr>
parents: 938
diff changeset
48 LIBIRCCD_SRCS+= lib/irccd/jsapi-irccd.c
a62c56c8b5ca irccd: add partially the javascript API
David Demelier <markand@malikania.fr>
parents: 938
diff changeset
49 LIBIRCCD_SRCS+= lib/irccd/jsapi-logger.c
a62c56c8b5ca irccd: add partially the javascript API
David Demelier <markand@malikania.fr>
parents: 938
diff changeset
50 LIBIRCCD_SRCS+= lib/irccd/jsapi-plugin.c
a62c56c8b5ca irccd: add partially the javascript API
David Demelier <markand@malikania.fr>
parents: 938
diff changeset
51 LIBIRCCD_SRCS+= lib/irccd/jsapi-server.c
a62c56c8b5ca irccd: add partially the javascript API
David Demelier <markand@malikania.fr>
parents: 938
diff changeset
52 LIBIRCCD_SRCS+= lib/irccd/jsapi-system.c
a62c56c8b5ca irccd: add partially the javascript API
David Demelier <markand@malikania.fr>
parents: 938
diff changeset
53 LIBIRCCD_SRCS+= lib/irccd/jsapi-timer.c
a62c56c8b5ca irccd: add partially the javascript API
David Demelier <markand@malikania.fr>
parents: 938
diff changeset
54 LIBIRCCD_SRCS+= lib/irccd/jsapi-unicode.c
a62c56c8b5ca irccd: add partially the javascript API
David Demelier <markand@malikania.fr>
parents: 938
diff changeset
55 LIBIRCCD_SRCS+= lib/irccd/unicode.c
a62c56c8b5ca irccd: add partially the javascript API
David Demelier <markand@malikania.fr>
parents: 938
diff changeset
56 endif
a62c56c8b5ca irccd: add partially the javascript API
David Demelier <markand@malikania.fr>
parents: 938
diff changeset
57
938
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
58 LIBIRCCD_OBJS= ${LIBIRCCD_SRCS:.c=.o}
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
59 LIBIRCCD_DEPS= ${LIBIRCCD_SRCS:.c=.d}
934
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
60
938
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
61 TESTS= tests/test-dl-plugin.c
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
62 TESTS+= tests/test-log.c
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
63 TESTS+= tests/test-util.c
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
64 TESTS+= tests/test-subst.c
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
65 TESTS_OBJS= ${TESTS:.c=}
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
66
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
67 DEFINES= -D_BSD_SOURCE
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
68 DEFINES+= -DSOURCEDIR=\"`pwd`\"
934
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
69
938
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
70 INCS= -I extern/libcompat/include
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
71 ifeq (${WITH_JS},yes)
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
72 INCS+= -I extern/libduktape
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
73 endif
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
74 INCS+= -I extern/libgreatest
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
75 INCS+= -I lib
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
76
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
77 LIBS= -L extern/libcompat
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
78 ifeq (${WITH_JS},yes)
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
79 LIBS+= -L extern/libduktape
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
80 endif
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
81 LIBS+= -L lib
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
82
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
83 LIBS+= -l irccd-compat
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
84 ifeq (${WITH_JS},yes)
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
85 LIBS+= -l irccd-duktape
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
86 endif
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
87 LIBS+= -l irccd
934
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
88
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 all: ${IRCCD}
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
90
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 .c.o:
938
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
92 ${CMD.cc}
934
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
93
938
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
94 -include ${LIBIRCCD_DEPS}
934
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 -include ${IRCCD_DEPS}
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
96
938
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
97 ${LIBCOMPAT}:
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
98 ${MAKE} CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" -C extern/libcompat
934
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
99
938
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
100 ifeq (${WITH_JS},yes)
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
101 ${LIBDUKTAPE}:
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
102 ${MAKE} CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" -C extern/libduktape
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
103 endif
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
104
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
105 ${LIBIRCCD_OBJS}: ${LIBCOMPAT}
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
106
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
107 ${LIBIRCCD}: ${LIBIRCCD_OBJS}
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
108 ${CMD.ar}
934
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
109
938
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
110 ${IRCCD}: ${IRCCD_OBJS} ${LIBCOMPAT} ${LIBDUKTAPE} ${LIBIRCCD}
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
111 ${CMD.ccld}
934
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
112
938
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
113 # Unit tests.
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
114 tests/test-%.o: tests/test-%.c
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
115 ${CMD.cc}
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
116 tests/test-%: tests/test-%.o ${LIBCOMPAT} ${IRCCD_OBJS}
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
117 ${CMD.ccld}
934
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
118
938
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
119 ${TESTS_OBJS}: ${LIBIRCCD}
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
120
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
121 # Sample plugin for test-dl-plugin.
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
122 tests/example-dl-plugin${EXT.shared}: tests/example-dl-plugin.o
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
123 ${CMD.ld-shared}
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
124
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
125 tests/test-dl-plugin: tests/example-dl-plugin${EXT.shared}
934
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
126
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
127 tests: ${TESTS_OBJS}
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
128 for t in ${TESTS_OBJS}; do ./$$t; done
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
129
938
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
130 clean:
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
131 ${MAKE} -C extern/libcompat clean
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
132 ${MAKE} -C extern/libduktape clean
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
133 rm -f ${LIBIRCCD} ${LIBIRCCD_OBJS} ${LIBIRCCD_DEPS}
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
134 rm -f ${IRCCD} ${IRCCD_OBJS} ${IRCCD_DEPS}
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
135 rm -f tests/example-dl-plugin${EXT.shared} tests/example-dl-plugin.o tests/example-dl-plugin.d
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
136 rm -f ${TESTS_OBJS}
7b74df7e8913 irccd: native plugin support
David Demelier <markand@malikania.fr>
parents: 937
diff changeset
137
934
243f9f51b0ff irccd: import libcompat and utilities
David Demelier <markand@malikania.fr>
parents:
diff changeset
138 .PHONY: all clean tests