### -*-Makefile-*- ### ### Building the distribution ### ### (c) 1998 Straylight/Edgeware ### ###----- Licensing notice --------------------------------------------------- ### ### This file is part of the mLib utilities library. ### ### mLib is free software; you can redistribute it and/or modify ### it under the terms of the GNU Library General Public License as ### published by the Free Software Foundation; either version 2 of the ### License, or (at your option) any later version. ### ### mLib is distributed in the hope that it will be useful, ### but WITHOUT ANY WARRANTY; without even the implied warranty of ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ### GNU Library General Public License for more details. ### ### You should have received a copy of the GNU Library General Public ### License along with mLib; if not, write to the Free ### Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, ### MA 02111-1307, USA. pkglibexecdir = $(libexecdir)/$(PACKAGE) SUBDIRS = BUILT_SOURCES = bin_PROGRAMS = check_PROGRAMS = lib_LTLIBRARIES = noinst_LTLIBRARIES = pkglibexec_PROGRAMS = pkginclude_HEADERS = EXTRA_DIST = CLEANFILES = DISTCLEANFILES = PROGMANS = LIBMANS = confsubst = $(top_srcdir)/config/confsubst SUBSTITUTIONS = \ prefix=$(prefix) exec_prefix=$(exec_prefix) \ libdir=$(libdir) includedir=$(includedir) \ bindir=$(bindir) sbindir=$(sbindir) \ PACKAGE=$(PACKAGE) VERSION=$(VERSION) ###-------------------------------------------------------------------------- ### Library. lib_LTLIBRARIES += libmLib.la libmLib_la_LDFLAGS = -version-info $(LIBTOOL_VERSION_INFO) libmLib_la_SOURCES = libmLib_la_LIBADD = pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = mLib.pc EXTRA_DIST += mLib.pc.in CLEANFILES += mLib.pc mLib.pc: mLib.pc.in Makefile $(confsubst) $(srcdir)/mLib.pc.in >$@.new $(SUBSTITUTIONS) && \ mv $@.new $@ ###-------------------------------------------------------------------------- ### Testing. check: tests .PHONY: check tests TEST_CPPFLAGS = -DTEST_RIG -DSRCDIR="\"(srcdir)\"" $(AM_CPPFLAGS) LDADD = libmLib.la ###-------------------------------------------------------------------------- ### Utilities. noinst_LTLIBRARIES += libutils.la libutils_la_SOURCES = libutils_la_LIBADD = libmLib_la_LIBADD += libutils.la ## Utility macros. pkginclude_HEADERS += macros.h LIBMANS += macros.3 ## Alignment. pkginclude_HEADERS += align.h LIBMANS += align.3 ## Bit manipulation. pkginclude_HEADERS += bits.h LIBMANS += bits.3 EXTRA_DIST += bits.in bits-testgen.c tests:: bits.t bits.in ./bits.t -f $(srcdir)/bits.in check_PROGRAMS += bits.t bits_t_SOURCES = bits.c bits_t_CPPFLAGS = $(TEST_CPPFLAGS) bits_t_LDFLAGS = -static ## Exceptions. pkginclude_HEADERS += exc.h libmLib_la_SOURCES += exc.c LIBMANS += exc.3 ## String handling. pkginclude_HEADERS += str.h libutils_la_SOURCES += str.c LIBMANS += str.3 ## Version comparison. pkginclude_HEADERS += versioncmp.h libmLib_la_SOURCES += versioncmp.c LIBMANS += versioncmp.3 EXTRA_DIST += versioncmp.in tests:: versioncmp.t versioncmp.in ./versioncmp.t -f $(srcdir)/versioncmp.in check_PROGRAMS += versioncmp.t versioncmp_t_SOURCES = versioncmp-test.c versioncmp_t_CPPFLAGS = $(TEST_CPPFLAGS) versioncmp_t_LDFLAGS = -static ###-------------------------------------------------------------------------- ### Memory allocation. ## Memory allocation. pkginclude_HEADERS += alloc.h arena.h sub.h libmLib_la_SOURCES += alloc.c arena.c sub.c LIBMANS += alloc.3 arena.3 sub.3 ## Pool allocator. pkginclude_HEADERS += pool.h libmLib_la_SOURCES += pool.c pool-file.c pool-sub.c LIBMANS += pool.3 ###-------------------------------------------------------------------------- ### Hashing. ## CRC32. pkginclude_HEADERS += crc32.h libmLib_la_SOURCES += crc32.c crc32-tab.c LIBMANS += crc32.3 bin_PROGRAMS += crc-mktab crc_mktab_SOURCES = crc-mktab.c $(UTIL_SOURCES) crc_mktab_LDADD = libutils.la PROGMANS += crc-mktab.1 BUILT_SOURCES += crc32-tab.c CLEANFILES += crc32-tab.c crc32-tab.c: crc-mktab$(EXEEXT) ./crc-mktab -o $@.new \ -p0x04c11db7 -b32 -B8 -r -c \ -scrc32_table -icrc32.h -tuint32 && \ mv $@.new $@ ## Universal hashing. pkginclude_HEADERS += unihash.h libutils_la_SOURCES += unihash.c libmLib_la_SOURCES += unihash-global.c BUILT_SOURCES += unihash-global.c LIBMANS += unihash.3 bin_PROGRAMS += unihash-mkstatic unihash_mkstatic_SOURCES = unihash-mkstatic.c unihash_mkstatic_LDADD = libutils.la PROGMANS += unihash-mkstatic.1 BUILT_SOURCES += unihash-global.c CLEANFILES += unihash-global.c unihash-global.c: unihash-mkstatic$(EXEEXT) ./unihash-mkstatic -c -sunihash_global -iunihash.h -o$@.new && \ mv $@.new $@ check_PROGRAMS += unihash.t unihash_t_SOURCES = unihash.c unihash_t_CPPFLAGS = $(TEST_CPPFLAGS) unihash_t_LDFLAGS = -static tests:: unihash.t unihash.in ./unihash.t -f unihash.in EXTRA_DIST += unihash-check.pl CLEANFILES += unihash.in unihash.in: unihash-check.pl perl $(srcdir)/unihash-check.pl >$@.new && mv $@.new $@ ###-------------------------------------------------------------------------- ### Data structures. ## Dynamic strings. pkginclude_HEADERS += dstr.h dspool.h libmLib_la_SOURCES += dstr.c dputf.c dspool.c LIBMANS += dstr.3 dspool.3 ## Buffers. pkginclude_HEADERS += buf.h libmLib_la_SOURCES += buf.c buf-dstr.c LIBMANS += buf.3 ## Dynamic arrays. pkginclude_HEADERS += darray.h libmLib_la_SOURCES += darray.c LIBMANS += darray.3 CLEANFILES += da.out tests:: darray.t da.in da.ref ./darray.t da.out cmp da.out da.ref @echo "darray OK" check_PROGRAMS += darray.t darray_t_SOURCES = da-test.c darray_t_CPPFLAGS = $(TEST_CPPFLAGS) darray_t_LDFLAGS = -static EXTRA_DIST += da-gtest CLEANFILES += da.in da.in: da-gtest perl $(srcdir)/da-gtest 10000 >$@.new && mv $@.new $@ EXTRA_DIST += da-ref CLEANFILES += da.ref da.ref: da-ref da.in perl $(srcdir)/da-ref $@.new && mv $@.new $@ ## Hash tables. pkginclude_HEADERS += hash.h libmLib_la_SOURCES += hash.c LIBMANS += hash.3 ## Symbol tables. pkginclude_HEADERS += sym.h libmLib_la_SOURCES += sym.c LIBMANS += sym.3 CLEANFILES += sym.out tests:: sym.t sym.in sym.ref ./sym.t sym.out cmp sym.out sym.ref @echo "sym OK" check_PROGRAMS += sym.t sym_t_SOURCES = sym-test.c sym_t_CPPFLAGS = $(TEST_CPPFLAGS) sym_t_LDFLAGS = -static EXTRA_DIST += sym-gtest CLEANFILES += sym.in sym.in: sym-gtest perl $(srcdir)/sym-gtest 10000 >$@.new && mv $@.new $@ EXTRA_DIST += sym-ref CLEANFILES += sym.ref sym.ref: sym-ref sym.in perl $(srcdir)/sym-ref $@.new && mv $@.new $@ ## Atoms. pkginclude_HEADERS += atom.h libmLib_la_SOURCES += atom.c LIBMANS += atom.3 ## Association tables. pkginclude_HEADERS += assoc.h libmLib_la_SOURCES += assoc.c LIBMANS += assoc.3 CLEANFILES += assoc.out tests:: assoc.t sym.in sym.ref ./assoc.t assoc.out cmp assoc.out sym.ref @echo "sym OK" check_PROGRAMS += assoc.t assoc_t_SOURCES = assoc-test.c assoc_t_CPPFLAGS = $(TEST_CPPFLAGS) assoc_t_LDFLAGS = -static ###-------------------------------------------------------------------------- ### User interface. ## Option parsing. noinst_LTLIBRARIES += libmdwopt.la pkginclude_HEADERS += mdwopt.h libmdwopt_la_SOURCES = mdwopt.c libmdwopt_la_CPPFLAGS = $(AM_CPPFLAGS) -DBUILDING_MLIB libutils_la_LIBADD += libmdwopt.la LIBMANS += mdwopt.3 ## Program naming. pkginclude_HEADERS += quis.h libutils_la_SOURCES += quis.c pquis.c LIBMANS += quis.3 ## Error reporting. pkginclude_HEADERS += report.h libutils_la_SOURCES += report.c LIBMANS += report.3 ###-------------------------------------------------------------------------- ### Encoding and decoding. ## form-urlencoded pkginclude_HEADERS += url.h libmLib_la_SOURCES += url.c LIBMANS += url.3 ## base64 pkginclude_HEADERS += base64.h libmLib_la_SOURCES += base64.c LIBMANS += base64.3 EXTRA_DIST += base64.in base64.ref CLEANFILES += base64.out tests:: base64.t base64.in base64.ref ./base64.t <$(srcdir)/base64.in >base64.out cmp base64.out $(srcdir)/base64.ref ./base64.t -d <$(srcdir)/base64.ref >base64.out cmp base64.out $(srcdir)/base64.in @echo "base64 OK" check_PROGRAMS += base64.t base64_t_SOURCES = base64.c base64_t_CPPFLAGS = $(TEST_CPPFLAGS) base64_t_LDFLAGS = -static ## base32 pkginclude_HEADERS += base32.h libmLib_la_SOURCES += base32.c LIBMANS += base32.3 EXTRA_DIST += base32.in base32.ref CLEANFILES += base32.out tests:: base32.t base32.in base32.ref ./base32.t <$(srcdir)/base32.in >base32.out cmp base32.out $(srcdir)/base32.ref ./base32.t -d <$(srcdir)/base32.ref >base32.out cmp base32.out $(srcdir)/base32.in @echo "base32 OK" check_PROGRAMS += base32.t base32_t_SOURCES = base32.c base32_t_CPPFLAGS = $(TEST_CPPFLAGS) base32_t_LDFLAGS = -static ## hex pkginclude_HEADERS += hex.h libmLib_la_SOURCES += hex.c LIBMANS += hex.3 EXTRA_DIST += hex.in hex.ref CLEANFILES += hex.out tests:: hex.t hex.in hex.ref ./hex.t <$(srcdir)/hex.in >hex.out cmp hex.out $(srcdir)/hex.ref ./hex.t -d <$(srcdir)/hex.ref >hex.out cmp hex.out $(srcdir)/hex.in @echo "hex OK" check_PROGRAMS += hex.t hex_t_SOURCES = hex.c hex_t_CPPFLAGS = $(TEST_CPPFLAGS) hex_t_LDFLAGS = -static ###-------------------------------------------------------------------------- ### System utilities. ## Daemons. pkginclude_HEADERS += daemonize.h libmLib_la_SOURCES += daemonize.c LIBMANS += daemonize.3 ## Environment variables. pkginclude_HEADERS += env.h libmLib_la_SOURCES += env.c LIBMANS += env.3 ## File and descriptor flags. pkginclude_HEADERS += fdflags.h libmLib_la_SOURCES += fdflags.c LIBMANS += fdflags.3 ## File descriptor passing. pkginclude_HEADERS += fdpass.h libmLib_la_SOURCES += fdpass.c LIBMANS += fdpass.3 ## Watching files for modification. pkginclude_HEADERS += fwatch.h libmLib_la_SOURCES += fwatch.c LIBMANS += fwatch.3 ## File locking. pkginclude_HEADERS += lock.h libmLib_la_SOURCES += lock.c LIBMANS += lock.3 ## File descriptor juggling. pkginclude_HEADERS += mdup.h libmLib_la_SOURCES += mdup.c LIBMANS += mdup.3 check_PROGRAMS += mdup.t mdup_t_SOURCES = mdup-test.c mdup_t_CPPFLAGS = $(TEST_CPPFLAGS) mdup_t_LDFLAGS = -static EXTRA_DIST += mdup-test.sh CLEANFILES += mdup.[0-9]*.out mdup.[0-9]*.err tests:: mdup.t mdup-test.sh $(srcdir)/mdup-test.sh ## Time arithmetic. pkginclude_HEADERS += tv.h libmLib_la_SOURCES += tv.c LIBMANS += tv.3 ###-------------------------------------------------------------------------- ### Buffering. ## Line buffering. pkginclude_HEADERS += lbuf.h libmLib_la_SOURCES += lbuf.c LIBMANS += lbuf.3 ## Packet buffering. pkginclude_HEADERS += pkbuf.h libmLib_la_SOURCES += pkbuf.c LIBMANS += pkbuf.3 ###-------------------------------------------------------------------------- ### Network utilities. ## Core event selection. pkginclude_HEADERS += sel.h libmLib_la_SOURCES += sel.c LIBMANS += sel.3 ## Waiting for buffers to fill. pkginclude_HEADERS += selbuf.h selpk.h libmLib_la_SOURCES += selbuf.c selpk.c LIBMANS += selbuf.3 selpk.3 ## RFC931 identification. pkginclude_HEADERS += ident.h libmLib_la_SOURCES += ident.c LIBMANS += ident.3 ## Nonblocking connections. pkginclude_HEADERS += conn.h libmLib_la_SOURCES += conn.c LIBMANS += conn.3 ## Signal handling pkginclude_HEADERS += sig.h libmLib_la_SOURCES += sig.c LIBMANS += sig.3 ## Name resolution. pkginclude_HEADERS += bres.h LIBMANS += bres.3 if WITH_ADNS libmLib_la_SOURCES += bres-adns.c else libmLib_la_SOURCES += bres.c pkglibexec_PROGRAMS += bres bres_SOURCES = bres.c bres_CPPFLAGS = -DBRES_STANDALONE $(AM_CPPFLAGS) bres_LDADD = endif ###-------------------------------------------------------------------------- ### Testing and debugging. ## Tracing. pkginclude_HEADERS += trace.h libmLib_la_SOURCES += trace.c traceopt.c LIBMANS += trace.3 ## Memory tracking. pkginclude_HEADERS += track.h libmLib_la_SOURCES += track.c ## Testing. pkginclude_HEADERS += testrig.h libmLib_la_SOURCES += testrig.c LIBMANS += testrig.3 ###-------------------------------------------------------------------------- ### Manual. EXTRA_DIST += $(LIBMANS) $(PROGMANS) install-data-local: install-man install-man: $(LIBMANS) $(PROGMANS) @$(NORMAL_INSTALL) $(mkdir_p) $(DESTDIR)$(mandir) $(top_srcdir)/config/maninst \ -d $(DESTDIR)$(mandir) -s $(srcdir) \ -i "$(INSTALL)" \ install $(PROGMANS) $(top_srcdir)/config/maninst \ -d $(DESTDIR)$(mandir) -s $(srcdir) \ -i "$(INSTALL)" -e $(manext) \ install $(LIBMANS) .PHONY: install-man uninstall-local: uninstall-man uninstall-man: @$(NORMAL_UNINSTALL) $(top_srcdir)/config/maninst \ -d $(DESTDIR)$(mandir) -s $(srcdir) \ uninstall $(PROGMANS) $(top_srcdir)/config/maninst \ -d $(DESTDIR)$(mandir) -s $(srcdir) -e $(manext) \ uninstall $(LIBMANS) .PHONY: uninstall-man ###-------------------------------------------------------------------------- ### Distribution. ## Release number. dist-hook:: echo $(VERSION) >$(distdir)/RELEASE ## Additional build tools. EXTRA_DIST += config/confsubst EXTRA_DIST += config/auto-version EXTRA_DIST += config/maninst ###-------------------------------------------------------------------------- ### Debian. ## General stuff. EXTRA_DIST += debian/rules debian/copyright EXTRA_DIST += debian/control debian/changelog EXTRA_DIST += debian/mlib2.install EXTRA_DIST += debian/mlib2-adns.install EXTRA_DIST += debian/mlib-dev.install EXTRA_DIST += debian/mlib-bin.install ##----- That's all, folks ---------------------------------------------------