X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/mLib/blobdiff_plain/e7d93da8951557085bf18daac69e7b226203988e..537952908990c74f913a68535487b3bd7dd25a03:/Makefile.am diff --git a/Makefile.am b/Makefile.am index 36ae2a3..101d533 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,287 +1,136 @@ -## -*-Makefile-*- -## -## $Id: Makefile.am,v 1.38 2003/10/12 14:54:18 mdw Exp $ -## -## Building the distribution -## -## (c) 1998 Straylight/Edgeware -## +### -*-makefile-*- +### +### Top-level build for mLib +### +### (c) 2009 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. + +include $(top_srcdir)/vars.am + +SUBDIRS = + +###-------------------------------------------------------------------------- +### Top-level library. + +lib_LTLIBRARIES = libmLib.la +libmLib_la_LDFLAGS = -version-info $(LIBTOOL_VERSION_INFO) +libmLib_la_SOURCES = +libmLib_la_LIBADD = + +###-------------------------------------------------------------------------- +### Package-configuration file. + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = mLib.pc +EXTRA_DIST += mLib.pc.in +CLEANFILES += mLib.pc + +mLib.pc: mLib.pc.in Makefile + $(AM_V_GEN)$(confsubst) $(srcdir)/mLib.pc.in >$@.new \ + $(SUBSTITUTIONS) && \ + mv $@.new $@ + +###-------------------------------------------------------------------------- +### Subdirectories. +### +### Note: There are implicit dependencies between the subdirectories. Be +### careful about reordering them. + +## Utilities. +SUBDIRS += utils +libmLib_la_LIBADD += utils/libutils.la + +## Memory allocation. +SUBDIRS += mem +libmLib_la_LIBADD += mem/libmem.la + +## User interface. +SUBDIRS += ui +libmLib_la_LIBADD += ui/libui.la + +## Hashing. +SUBDIRS += hash +libmLib_la_LIBADD += hash/libhash.la + +## Data structures. +SUBDIRS += struct +libmLib_la_LIBADD += struct/libstruct.la + +## Encoding and decoding. +SUBDIRS += codec +libmLib_la_LIBADD += codec/libcodec.la + +## System utilities. +SUBDIRS += sys +libmLib_la_LIBADD += sys/libsys.la + +## Buffering. +SUBDIRS += buf +libmLib_la_LIBADD += buf/libbuf.la + +## Event-driven networking. +SUBDIRS += sel +libmLib_la_LIBADD += sel/libsel.la + +## Testing. +SUBDIRS += test +libmLib_la_LIBADD += test/libtest.la + +## Tracing. +SUBDIRS += trace +libmLib_la_LIBADD += trace/libtrace.la + +###-------------------------------------------------------------------------- +### Testing. + +SUBDIRS += t + +###-------------------------------------------------------------------------- +### Distribution. + +## Make sure the precomputed tables are available. Hang this off of any +## distributed file. +mLib.pc.in: ensure-precomp-libs +ensure-precomp-libs: + for d in ui utils; do (cd $$d && $(MAKE) all) || exit 1; done + +## Release number. +dist-hook:: + echo $(VERSION) >$(distdir)/RELEASE + +## Additional build tools. +EXTRA_DIST += config/confsubst +EXTRA_DIST += config/auto-version +EXTRA_DIST += config/maninst -##----- 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. +###-------------------------------------------------------------------------- +### Debian. -##----- Revision history ---------------------------------------------------- -## -## $Log: Makefile.am,v $ -## Revision 1.38 2003/10/12 14:54:18 mdw -## Version bump. -## -## Revision 1.37 2003/10/12 14:44:46 mdw -## Various fixes. -## -## Revision 1.36 2003/05/18 15:17:04 mdw -## Version bump. -## -## Revision 1.35 2003/05/16 00:22:57 mdw -## Test base64 and hex encoding. -## -## Revision 1.34 2003/04/23 12:51:03 mdw -## New manpage installer. -## -## Revision 1.33 2002/01/13 13:26:59 mdw -## New hex encoding stuff. Rename test programs. -## -## Revision 1.32 2001/03/03 12:20:23 mdw -## New macros @DA_FIRST@ and @DA_LAST@ for stack/queue peeking. -## -## Revision 1.31 2001/02/03 18:43:56 mdw -## New feature: watch a file for changes. -## -## Revision 1.30 2001/01/25 21:11:41 mdw -## Use `$(MAKE)' in the `install-man' rule, so that the jobserver doesn't -## whinge. -## -## Revision 1.29 2001/01/21 19:05:21 mdw -## Add test driver for associations. -## -## Revision 1.28 2001/01/20 12:07:04 mdw -## Put `bres' in a different place. -## -## Revision 1.27 2001/01/20 11:46:49 mdw -## Add new files. -## -## Revision 1.26 2000/10/14 16:46:44 mdw -## Make sure that the bits testcase gets its test vector from the source -## directory. -## -## Revision 1.25 2000/10/08 11:20:57 mdw -## Clean some more files. -## -## Revision 1.24 2000/10/08 11:08:25 mdw -## (crc-mktab): now requires str.c. -## -## Revision 1.23 2000/07/29 10:06:10 mdw -## Support `make -j' building. -## -## Revision 1.22 2000/07/21 19:01:33 mdw -## Generate the CRC table rather than hardcoding it. -## -## Revision 1.21 2000/07/16 18:57:52 mdw -## New files. Test cases for `bits.h'. -## -## Revision 1.20 2000/06/17 10:39:43 mdw -## Various new source files. -## -## Revision 1.17 1999/11/11 18:47:33 mdw -## Use `libtool' to generate a shared library. -## -## Revision 1.16 1999/11/11 17:48:28 mdw -## New configuration system for library clients. -## -## Revision 1.15 1999/10/22 22:40:49 mdw -## New source files. New testing system for sym and dynarray. -## -## Revision 1.11 1999/07/06 19:36:05 mdw -## Various minor bugfixes. -## -## Revision 1.10 1999/07/06 19:18:47 mdw -## Handle new manual page directory. -## -## Revision 1.8 1999/05/21 22:16:08 mdw -## Reorder the source files again, in an attempt to make them slightly -## logical. It hasn't really succeeded, although it is an improvement. -## -## Revision 1.6 1999/05/15 10:33:53 mdw -## Add simplified locking code. -## -## Revision 1.5 1999/05/14 21:01:28 mdw -## Integrated `select' handling bits from the background resolver project. -## -## Revision 1.2 1998/11/25 23:30:30 mdw -## Add `tv.c'and `tv.h' to the list. -## -## Revision 1.1.1.1 1998/06/17 23:44:42 mdw -## Initial version of mLib -## -## Revision 1.5 1997/08/13 17:55:43 mdw -## Add big GPL header. General tidying up. -## - -## --- Options --- - -AUTOMAKE_OPTIONS = foreign - -## --- What to build --- - -SUBDIRS = man - -bin_SCRIPTS = mLib-config -bin_PROGRAMS = crc-mktab - -lib_LTLIBRARIES = libmLib.la -pkglibexecdir = $(libexecdir)/$(PACKAGE) -pkglibexec_PROGRAMS = bres - -pkginclude_HEADERS = \ - align.h alloc.h arena.h bits.h exc.h quis.h report.h sub.h \ - trace.h track.h unihash.h \ - pool.h \ - atom.h assoc.h darray.h dstr.h dspool.h hash.h sym.h crc32.h \ - env.h fdflags.h fwatch.h lock.h \ - bres.h conn.h lbuf.h ident.h pkbuf.h sel.h selbuf.h selpk.h sig.h \ - tv.h \ - base64.h hex.h mdwopt.h str.h testrig.h url.h - -## --- Things to put in the library --- - -libmLib_la_LDFLAGS = -version-info 2:2:0 -## Middle number is the patchlevel. Final number is the minor version. The -## difference between the first and last numbers is major version. - -libmLib_la_SOURCES = \ - alloc.c arena.c exc.c quis.c pquis.c report.c sub.c trace.c \ - traceopt.c track.c unihash.c \ - pool.c pool-file.c pool-sub.c \ - atom.c assoc.c darray.c dstr.c dputf.c dspool.c hash.c sym.c \ - crc32.c crc32-tab.c \ - env.c fdflags.c fwatch.c lock.c \ - bres.c conn.c lbuf.c ident.c pkbuf.c sel.c selbuf.c selpk.c sig.c \ - tv.c \ - base64.c hex.c mdwopt.c str.c testrig.c url.c - -BUILT_SOURCES = crc32-tab.c - -crc32-tab.c: crc-mktab - ./crc-mktab \ - -p0x04c11db7 -b32 -B8 -r \ - -c -scrc32_table -icrc32.h -tuint32 -ocrc32-tab.c - -crc_mktab_SOURCES = crc-mktab.c mdwopt.c quis.c pquis.c report.c str.c - -## --- Test code --- - -noinst_PROGRAMS = da.t sym.t assoc.t bits.t - -check: \ - da.test sym.test assoc.test bits.test base64.test hex.test - -da_t_SOURCES = da-test.c -da_t_LDADD = libmLib.la -da_t_LDFLAGS = -static -da.in: $(srcdir)/da-gtest - perl $(srcdir)/da-gtest 10000 >da.in.new - mv da.in.new da.in -da.ref: da.in $(srcdir)/da-ref - perl $(srcdir)/da-ref da.ref.new - mv da.ref.new da.ref -da.test: da.t da.in da.ref - ./da.t da.out - cmp da.out da.ref - @echo "darray tested OK." - -sym_t_SOURCES = sym-test.c -sym_t_LDADD = libmLib.la -sym_t_LDFLAGS = -static -sym.in: $(srcdir)/sym-gtest - perl $(srcdir)/sym-gtest 10000 >sym.in.new - mv sym.in.new sym.in -sym.ref: sym.in $(srcdir)/sym-ref - perl $(srcdir)/sym-ref sym.ref.new - mv sym.ref.new sym.ref -sym.test: sym.t sym.in sym.ref - ./sym.t sym.out - cmp sym.out sym.ref - @echo "sym tested OK." - -assoc_t_SOURCES = assoc-test.c -assoc_t_LDADD = libmLib.la -assoc_t_LDFLAGS = -static -assoc.test: assoc.t sym.in sym.ref - ./assoc.t assoc.out - cmp assoc.out sym.ref - @echo "assoc tested OK." - -bits_t_SOURCES = bits.c -bits_t_LDADD = libmLib.la -bits_t_LDFLAGS = -static -bits.o: bits.c - $(COMPILE) -c -DSRCDIR="\"$(srcdir)\"" $(srcdir)/bits.c -o bits.o -bits.test: bits.t - ./bits.t -f $(srcdir)/bits.in - -base64.to: base64.c - $(COMPILE) -c -DTEST_RIG -DSRCDIR=\"$(srcdir)\" $(srcdir)/base64.c -o base64.to -base64.t: base64.to base64.o libmLib.la - $(CC) $(CFLAGS) $(LDFLAGS) base64.to .libs/libmLib.a $(LIBS) -o base64.t -base64.test: 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 tested OK." - -hex.to: hex.c - $(COMPILE) -c -DTEST_RIG -DSRCDIR=\"$(srcdir)\" $(srcdir)/hex.c -o hex.to -hex.t: hex.to hex.o libmLib.la - $(CC) $(CFLAGS) $(LDFLAGS) hex.to .libs/libmLib.a $(LIBS) -o hex.t -hex.test: 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 tested OK." - -TEST_CLEAN = \ - *.t \ - da.in da.ref da.out \ - sym.in sym.ref sym.out \ - base64.out hex.out - -TEST_DIST = \ - da-gtest da-ref \ - sym-gtest sym-ref \ - bits.in bits-testgen.c \ - base64.in base64.ref hex.in hex.ref - -## --- Background resolver --- -## -## I must (a) build the standalone version, and (b) inform the client library -## where the standalone version is. - -bres: bres-stnd.o - $(LINK) -o bres bres-stnd.o $(LIBS) - -bres-stnd.o: $(srcdir)/bres.c - $(COMPILE) -c -DBRES_STANDALONE -o bres-stnd.o $(srcdir)/bres.c - -bres.lo: $(srcdir)/bres.c - $(LTCOMPILE) -c -DBRES_SERVER="\"$(libexecdir)/$(PACKAGE)/`echo bres|sed '$(transform)'`\"" $(srcdir)/bres.c - -## --- Other useful rules --- - -install-man: - (cd man && $(MAKE) install-man) -uninstall-man: - (cd man && $(MAKE) uninstall-man) - -CLEANFILES = $(TEST_CLEAN) crc32-tab.c -DISTCLEANFILES = libtool -EXTRA_DIST = $(TEST_DIST) maninst - -##----- That's all, folks --------------------------------------------------- +## 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 --------------------------------------------------