Commit | Line | Data |
---|---|---|
a0150d8d MW |
1 | ### -*-Makefile-*- |
2 | ### | |
3 | ### Building the distribution | |
4 | ### | |
5 | ### (c) 1998 Straylight/Edgeware | |
6 | ### | |
7 | ||
8 | ###----- Licensing notice --------------------------------------------------- | |
9 | ### | |
10 | ### This file is part of the mLib utilities library. | |
11 | ### | |
12 | ### mLib is free software; you can redistribute it and/or modify | |
13 | ### it under the terms of the GNU Library General Public License as | |
14 | ### published by the Free Software Foundation; either version 2 of the | |
15 | ### License, or (at your option) any later version. | |
16 | ### | |
17 | ### mLib is distributed in the hope that it will be useful, | |
18 | ### but WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 | ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
20 | ### GNU Library General Public License for more details. | |
21 | ### | |
22 | ### You should have received a copy of the GNU Library General Public | |
23 | ### License along with mLib; if not, write to the Free | |
24 | ### Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, | |
25 | ### MA 02111-1307, USA. | |
26 | ||
27 | pkglibexecdir = $(libexecdir)/$(PACKAGE) | |
28 | ||
29 | SUBDIRS = | |
30 | BUILT_SOURCES = | |
31 | bin_PROGRAMS = | |
32 | noinst_PROGRAMS = | |
33 | lib_LTLIBRARIES = | |
34 | noinst_LTLIBRARIES = | |
35 | pkglibexec_PROGRAMS = | |
36 | pkginclude_HEADERS = | |
37 | EXTRA_DIST = | |
38 | CLEANFILES = | |
39 | DISTCLEANFILES = | |
40 | ||
41 | confsubst = $(top_srcdir)/config/confsubst | |
42 | ||
43 | SUBSTITUTIONS = \ | |
44 | prefix=$(prefix) exec_prefix=$(exec_prefix) \ | |
45 | libdir=$(libdir) includedir=$(includedir) \ | |
46 | bindir=$(bindir) sbindir=$(sbindir) \ | |
47 | PACKAGE=$(PACKAGE) VERSION=$(VERSION) | |
48 | ||
49 | ###-------------------------------------------------------------------------- | |
50 | ### Library. | |
51 | ||
52 | lib_LTLIBRARIES += libmLib.la | |
53 | libmLib_la_LDFLAGS = -version-info $(LIBTOOL_VERSION_INFO) | |
54 | libmLib_la_SOURCES = | |
55 | libmLib_la_LIBADD = | |
56 | ||
57 | pkgconfigdir = $(libdir)/pkgconfig | |
58 | pkgconfig_DATA = mLib.pc | |
59 | EXTRA_DIST += mLib.pc.in | |
60 | CLEANFILES += mLib.pc | |
61 | ||
62 | mLib.pc: mLib.pc.in Makefile | |
63 | $(confsubst) $(srcdir)/mLib.pc.in >$@.new $(SUBSTITUTIONS) && \ | |
64 | mv $@.new $@ | |
65 | ||
66 | ###-------------------------------------------------------------------------- | |
67 | ### Testing. | |
68 | ||
69 | check: tests | |
70 | .PHONY: check tests | |
71 | ||
72 | TEST_CPPFLAGS = -DTEST_RIG -DSRCDIR="\"(srcdir)\"" $(AM_CPPFLAGS) | |
73 | ||
74 | LDADD = libmLib.la | |
75 | ||
76 | ###-------------------------------------------------------------------------- | |
77 | ### Utilities. | |
78 | ||
79 | noinst_LTLIBRARIES += libutils.la | |
80 | libutils_la_SOURCES = | |
81 | libutils_la_LIBADD = | |
82 | libmLib_la_LIBADD += libutils.la | |
83 | ||
84 | ## Utility macros. | |
85 | pkginclude_HEADERS += macros.h | |
86 | ||
87 | ## Alignment. | |
88 | pkginclude_HEADERS += align.h | |
89 | ||
90 | ## Bit manipulation. | |
91 | pkginclude_HEADERS += bits.h | |
92 | ||
93 | EXTRA_DIST += bits.in bits-testgen.c | |
94 | tests:: bits.t bits.in | |
95 | ./bits.t -f $(srcdir)/bits.in | |
b7580524 | 96 | |
a0150d8d MW |
97 | noinst_PROGRAMS += bits.t |
98 | bits_t_SOURCES = bits.c | |
99 | bits_t_CPPFLAGS = $(TEST_CPPFLAGS) | |
100 | bits_t_LDFLAGS = -static | |
101 | ||
102 | ## Exceptions. | |
103 | pkginclude_HEADERS += exc.h | |
104 | libmLib_la_SOURCES += exc.c | |
105 | ||
106 | ## String handling. | |
107 | pkginclude_HEADERS += str.h | |
108 | libutils_la_SOURCES += str.c | |
109 | ||
110 | ## Version comparison. | |
111 | pkginclude_HEADERS += versioncmp.h | |
112 | libmLib_la_SOURCES += versioncmp.c | |
113 | ||
114 | EXTRA_DIST += versioncmp.in | |
115 | tests:: versioncmp.t versioncmp.in | |
116 | ./versioncmp.t -f $(srcdir)/versioncmp.in | |
117 | ||
118 | noinst_PROGRAMS += versioncmp.t | |
119 | versioncmp_t_SOURCES = versioncmp-test.c | |
120 | versioncmp_t_CPPFLAGS = $(TEST_CPPFLAGS) | |
121 | versioncmp_t_LDFLAGS = -static | |
122 | ||
123 | ###-------------------------------------------------------------------------- | |
124 | ### Memory allocation. | |
125 | ||
126 | ## Memory allocation. | |
127 | pkginclude_HEADERS += alloc.h arena.h sub.h | |
128 | libmLib_la_SOURCES += alloc.c arena.c sub.c | |
129 | ||
130 | ## Pool allocator. | |
131 | pkginclude_HEADERS += pool.h | |
132 | libmLib_la_SOURCES += pool.c pool-file.c pool-sub.c | |
b7580524 | 133 | |
a0150d8d MW |
134 | ###-------------------------------------------------------------------------- |
135 | ### Hashing. | |
136 | ||
137 | ## CRC32. | |
138 | pkginclude_HEADERS += crc32.h | |
139 | libmLib_la_SOURCES += crc32.c crc32-tab.c | |
140 | ||
141 | bin_PROGRAMS += crc-mktab | |
142 | crc_mktab_SOURCES = crc-mktab.c $(UTIL_SOURCES) | |
143 | crc_mktab_LDADD = libutils.la | |
144 | ||
145 | BUILT_SOURCES += crc32-tab.c | |
146 | CLEANFILES += crc32-tab.c | |
147 | crc32-tab.c: crc-mktab$(EXEEXT) | |
148 | ./crc-mktab -o $@.new \ | |
149 | -p0x04c11db7 -b32 -B8 -r -c \ | |
150 | -scrc32_table -icrc32.h -tuint32 && \ | |
151 | mv $@.new $@ | |
152 | ||
153 | ## Universal hashing. | |
154 | pkginclude_HEADERS += unihash.h | |
155 | libutils_la_SOURCES += unihash.c | |
156 | libmLib_la_SOURCES += unihash-global.c | |
157 | BUILT_SOURCES += unihash-global.c | |
158 | ||
159 | bin_PROGRAMS += unihash-mkstatic | |
160 | unihash_mkstatic_SOURCES = unihash-mkstatic.c | |
161 | unihash_mkstatic_LDADD = libutils.la | |
162 | ||
163 | BUILT_SOURCES += unihash-global.c | |
164 | CLEANFILES += unihash-global.c | |
1a6043f9 | 165 | unihash-global.c: unihash-mkstatic$(EXEEXT) |
a0150d8d MW |
166 | ./unihash-mkstatic -c -sunihash_global -iunihash.h -o$@.new && \ |
167 | mv $@.new $@ | |
168 | ||
169 | noinst_PROGRAMS += unihash.t | |
170 | unihash_t_SOURCES = unihash.c | |
171 | unihash_t_CPPFLAGS = $(TEST_CPPFLAGS) | |
172 | unihash_t_LDFLAGS = -static | |
173 | ||
174 | tests:: unihash.t unihash.in | |
175 | ./unihash.t -f unihash.in | |
176 | ||
177 | EXTRA_DIST += unihash-check.pl | |
178 | CLEANFILES += unihash.in | |
179 | unihash.in: unihash-check.pl | |
180 | perl $(srcdir)/unihash-check.pl >$@.new && mv $@.new $@ | |
181 | ||
182 | ###-------------------------------------------------------------------------- | |
183 | ### Data structures. | |
184 | ||
185 | ## Dynamic strings. | |
186 | pkginclude_HEADERS += dstr.h dspool.h | |
187 | libmLib_la_SOURCES += dstr.c dputf.c dspool.c | |
188 | ||
189 | ## Buffers. | |
190 | pkginclude_HEADERS += buf.h | |
191 | libmLib_la_SOURCES += buf.c buf-dstr.c | |
192 | ||
193 | ## Dynamic arrays. | |
194 | pkginclude_HEADERS += darray.h | |
195 | libmLib_la_SOURCES += darray.c | |
196 | ||
197 | CLEANFILES += da.out | |
198 | tests:: darray.t da.in da.ref | |
199 | ./darray.t <da.in >da.out | |
d5679ed0 | 200 | cmp da.out da.ref |
a0150d8d MW |
201 | @echo "darray OK" |
202 | ||
203 | noinst_PROGRAMS += darray.t | |
204 | darray_t_SOURCES = da-test.c | |
205 | darray_t_CPPFLAGS = $(TEST_CPPFLAGS) | |
206 | darray_t_LDFLAGS = -static | |
207 | ||
208 | EXTRA_DIST += da-gtest | |
209 | CLEANFILES += da.in | |
210 | da.in: da-gtest | |
211 | perl $(srcdir)/da-gtest 10000 >$@.new && mv $@.new $@ | |
212 | ||
213 | EXTRA_DIST += da-ref | |
214 | CLEANFILES += da.ref | |
215 | da.ref: da-ref da.in | |
216 | perl $(srcdir)/da-ref <da.in >$@.new && mv $@.new $@ | |
217 | ||
218 | ## Hash tables. | |
219 | pkginclude_HEADERS += hash.h | |
220 | libmLib_la_SOURCES += hash.c | |
221 | ||
222 | ## Symbol tables. | |
223 | pkginclude_HEADERS += sym.h | |
224 | libmLib_la_SOURCES += sym.c | |
225 | ||
226 | CLEANFILES += sym.out | |
227 | tests:: sym.t sym.in sym.ref | |
d5679ed0 | 228 | ./sym.t <sym.in >sym.out |
229 | cmp sym.out sym.ref | |
a0150d8d MW |
230 | @echo "sym OK" |
231 | ||
232 | noinst_PROGRAMS += sym.t | |
233 | sym_t_SOURCES = sym-test.c | |
234 | sym_t_CPPFLAGS = $(TEST_CPPFLAGS) | |
235 | sym_t_LDFLAGS = -static | |
21c22b5c | 236 | |
a0150d8d MW |
237 | EXTRA_DIST += sym-gtest |
238 | CLEANFILES += sym.in | |
239 | sym.in: sym-gtest | |
240 | perl $(srcdir)/sym-gtest 10000 >$@.new && mv $@.new $@ | |
241 | ||
242 | EXTRA_DIST += sym-ref | |
243 | CLEANFILES += sym.ref | |
244 | sym.ref: sym-ref sym.in | |
245 | perl $(srcdir)/sym-ref <sym.in >$@.new && mv $@.new $@ | |
246 | ||
247 | ## Atoms. | |
248 | pkginclude_HEADERS += atom.h | |
249 | libmLib_la_SOURCES += atom.c | |
250 | ||
251 | ## Association tables. | |
252 | pkginclude_HEADERS += assoc.h | |
253 | libmLib_la_SOURCES += assoc.c | |
254 | ||
255 | CLEANFILES += assoc.out | |
256 | tests:: assoc.t sym.in sym.ref | |
d5679ed0 | 257 | ./assoc.t <sym.in >assoc.out |
258 | cmp assoc.out sym.ref | |
a0150d8d | 259 | @echo "sym OK" |
d5679ed0 | 260 | |
a0150d8d MW |
261 | noinst_PROGRAMS += assoc.t |
262 | assoc_t_SOURCES = assoc-test.c | |
263 | assoc_t_CPPFLAGS = $(TEST_CPPFLAGS) | |
264 | assoc_t_LDFLAGS = -static | |
265 | ||
266 | ###-------------------------------------------------------------------------- | |
267 | ### User interface. | |
268 | ||
269 | ## Option parsing. | |
270 | noinst_LTLIBRARIES += libmdwopt.la | |
271 | pkginclude_HEADERS += mdwopt.h | |
272 | libmdwopt_la_SOURCES = mdwopt.c | |
273 | libmdwopt_la_CPPFLAGS = $(AM_CPPFLAGS) -DBUILDING_MLIB | |
274 | libutils_la_LIBADD += libmdwopt.la | |
275 | ||
276 | ## Program naming. | |
277 | pkginclude_HEADERS += quis.h | |
278 | libutils_la_SOURCES += quis.c pquis.c | |
279 | ||
280 | ## Error reporting. | |
281 | pkginclude_HEADERS += report.h | |
282 | libutils_la_SOURCES += report.c | |
3048fcf9 | 283 | |
a0150d8d MW |
284 | ###-------------------------------------------------------------------------- |
285 | ### Encoding and decoding. | |
286 | ||
287 | ## form-urlencoded | |
288 | pkginclude_HEADERS += url.h | |
289 | libmLib_la_SOURCES += url.c | |
290 | ||
291 | ## base64 | |
292 | pkginclude_HEADERS += base64.h | |
293 | libmLib_la_SOURCES += base64.c | |
294 | ||
295 | EXTRA_DIST += base64.in base64.ref | |
296 | CLEANFILES += base64.out | |
297 | tests:: base64.t base64.in base64.ref | |
d5679ed0 | 298 | ./base64.t <$(srcdir)/base64.in >base64.out |
299 | cmp base64.out $(srcdir)/base64.ref | |
300 | ./base64.t -d <$(srcdir)/base64.ref >base64.out | |
301 | cmp base64.out $(srcdir)/base64.in | |
a0150d8d MW |
302 | @echo "base64 OK" |
303 | ||
304 | noinst_PROGRAMS += base64.t | |
305 | base64_t_SOURCES = base64.c | |
306 | base64_t_CPPFLAGS = $(TEST_CPPFLAGS) | |
307 | base64_t_LDFLAGS = -static | |
308 | ||
309 | ## base32 | |
310 | pkginclude_HEADERS += base32.h | |
311 | libmLib_la_SOURCES += base32.c | |
312 | ||
313 | EXTRA_DIST += base32.in base32.ref | |
314 | CLEANFILES += base32.out | |
315 | tests:: base32.t base32.in base32.ref | |
1c4fa429 | 316 | ./base32.t <$(srcdir)/base32.in >base32.out |
317 | cmp base32.out $(srcdir)/base32.ref | |
318 | ./base32.t -d <$(srcdir)/base32.ref >base32.out | |
319 | cmp base32.out $(srcdir)/base32.in | |
a0150d8d MW |
320 | @echo "base32 OK" |
321 | ||
322 | noinst_PROGRAMS += base32.t | |
323 | base32_t_SOURCES = base32.c | |
324 | base32_t_CPPFLAGS = $(TEST_CPPFLAGS) | |
325 | base32_t_LDFLAGS = -static | |
326 | ||
327 | ## hex | |
328 | pkginclude_HEADERS += hex.h | |
329 | libmLib_la_SOURCES += hex.c | |
330 | ||
331 | EXTRA_DIST += hex.in hex.ref | |
332 | CLEANFILES += hex.out | |
333 | tests:: hex.t hex.in hex.ref | |
d5679ed0 | 334 | ./hex.t <$(srcdir)/hex.in >hex.out |
335 | cmp hex.out $(srcdir)/hex.ref | |
336 | ./hex.t -d <$(srcdir)/hex.ref >hex.out | |
337 | cmp hex.out $(srcdir)/hex.in | |
a0150d8d MW |
338 | @echo "hex OK" |
339 | ||
340 | noinst_PROGRAMS += hex.t | |
341 | hex_t_SOURCES = hex.c | |
342 | hex_t_CPPFLAGS = $(TEST_CPPFLAGS) | |
343 | hex_t_LDFLAGS = -static | |
344 | ||
345 | ###-------------------------------------------------------------------------- | |
346 | ### System utilities. | |
347 | ||
348 | ## Daemons. | |
349 | pkginclude_HEADERS += daemonize.h | |
350 | libmLib_la_SOURCES += daemonize.c | |
351 | ||
352 | ## Environment variables. | |
353 | pkginclude_HEADERS += env.h | |
354 | libmLib_la_SOURCES += env.c | |
355 | ||
356 | ## File and descriptor flags. | |
357 | pkginclude_HEADERS += fdflags.h | |
358 | libmLib_la_SOURCES += fdflags.c | |
359 | ||
360 | ## File descriptor passing. | |
361 | pkginclude_HEADERS += fdpass.h | |
362 | libmLib_la_SOURCES += fdpass.c | |
363 | ||
364 | ## Watching files for modification. | |
365 | pkginclude_HEADERS += fwatch.h | |
366 | libmLib_la_SOURCES += fwatch.c | |
367 | ||
368 | ## File locking. | |
369 | pkginclude_HEADERS += lock.h | |
370 | libmLib_la_SOURCES += lock.c | |
371 | ||
372 | ## Time arithmetic. | |
373 | pkginclude_HEADERS += tv.h | |
374 | libmLib_la_SOURCES += tv.c | |
375 | ||
376 | ###-------------------------------------------------------------------------- | |
377 | ### Buffering. | |
378 | ||
379 | ## Line buffering. | |
380 | pkginclude_HEADERS += lbuf.h | |
381 | libmLib_la_SOURCES += lbuf.c | |
382 | ||
383 | ## Packet buffering. | |
384 | pkginclude_HEADERS += pkbuf.h | |
385 | libmLib_la_SOURCES += pkbuf.c | |
386 | ||
387 | ###-------------------------------------------------------------------------- | |
388 | ### Network utilities. | |
389 | ||
390 | ## Core event selection. | |
391 | pkginclude_HEADERS += sel.h | |
392 | libmLib_la_SOURCES += sel.c | |
393 | ||
394 | ## Waiting for buffers to fill. | |
395 | pkginclude_HEADERS += selbuf.h selpk.h | |
396 | libmLib_la_SOURCES += selbuf.c selpk.c | |
397 | ||
398 | ## RFC931 identification. | |
399 | pkginclude_HEADERS += ident.h | |
400 | libmLib_la_SOURCES += ident.c | |
401 | ||
402 | ## Nonblocking connections. | |
403 | pkginclude_HEADERS += conn.h | |
404 | libmLib_la_SOURCES += conn.c | |
405 | ||
406 | ## Signal handling | |
407 | pkginclude_HEADERS += sig.h | |
408 | libmLib_la_SOURCES += sig.c | |
409 | ||
410 | ## Name resolution. | |
411 | pkginclude_HEADERS += bres.h | |
412 | ||
413 | if WITH_ADNS | |
414 | libmLib_la_SOURCES += bres-adns.c | |
415 | else | |
416 | libmLib_la_SOURCES += bres.c | |
417 | pkglibexec_PROGRAMS += bres | |
418 | bres_SOURCES = bres.c | |
419 | bres_CPPFLAGS = -DBRES_STANDALONE $(AM_CPPFLAGS) | |
420 | bres_LDADD = | |
421 | endif | |
422 | ||
423 | ###-------------------------------------------------------------------------- | |
424 | ### Testing and debugging. | |
425 | ||
426 | ## Tracing. | |
427 | pkginclude_HEADERS += trace.h | |
428 | libmLib_la_SOURCES += trace.c traceopt.c | |
429 | ||
430 | ## Memory tracking. | |
431 | pkginclude_HEADERS += track.h | |
432 | libmLib_la_SOURCES += track.c | |
433 | ||
434 | ## Testing. | |
435 | pkginclude_HEADERS += testrig.h | |
436 | libmLib_la_SOURCES += testrig.c | |
437 | ||
438 | ###-------------------------------------------------------------------------- | |
439 | ### Manual. | |
440 | ||
441 | SUBDIRS += man | |
c255a2ee | 442 | |
443 | install-man: | |
a9f61b5f | 444 | (cd man && $(MAKE) install-man) |
c3b137c8 | 445 | uninstall-man: |
446 | (cd man && $(MAKE) uninstall-man) | |
a0150d8d MW |
447 | .PHONY: install-man uninstall-man |
448 | ||
449 | ||
450 | ###-------------------------------------------------------------------------- | |
451 | ### Distribution. | |
452 | ||
453 | ## Release number. | |
454 | dist-hook:: | |
455 | echo $(VERSION) >$(distdir)/RELEASE | |
456 | ||
457 | ## Additional build tools. | |
458 | EXTRA_DIST += config/confsubst | |
459 | EXTRA_DIST += config/auto-version | |
460 | EXTRA_DIST += config/maninst | |
461 | ||
462 | ###-------------------------------------------------------------------------- | |
463 | ### Debian. | |
c255a2ee | 464 | |
a0150d8d MW |
465 | ## General stuff. |
466 | EXTRA_DIST += debian/rules debian/copyright | |
467 | EXTRA_DIST += debian/control debian/changelog | |
468 | EXTRA_DIST += debian/mlib2.install | |
469 | EXTRA_DIST += debian/mlib2-adns.install | |
470 | EXTRA_DIST += debian/mlib-dev.install | |
471 | EXTRA_DIST += debian/mlib-bin.install | |
21c22b5c | 472 | |
8f207948 | 473 | ##----- That's all, folks --------------------------------------------------- |