chiark / gitweb /
codec/{base32,hex}.h: Include `codec.h'.
[mLib] / Makefile.am
index 7f6182828d9c81ee98b4b398f0a0c9f977008e36..5b393f71ce07c518d2e52d0a43ef7e671fb44a71 100644 (file)
@@ -1,8 +1,8 @@
-### -*-Makefile-*-
+### -*-makefile-*-
 ###
-### Building the distribution
+### Top-level build for mLib
 ###
-### (c) 1998 Straylight/Edgeware
+### (c) 2009 Straylight/Edgeware
 ###
 
 ###----- Licensing notice ---------------------------------------------------
 ### Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
 ### MA 02111-1307, USA.
 
-pkglibexecdir           = $(libexecdir)/$(PACKAGE)
+include $(top_srcdir)/vars.am
 
 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.
+### Top-level library.
 
-lib_LTLIBRARIES                += libmLib.la
+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
-       $(confsubst) $(srcdir)/mLib.pc.in >$@.new $(SUBSTITUTIONS) && \
+       $(AM_V_GEN)$(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
+### Subdirectories.
+###
+### Note: There are implicit dependencies between the subdirectories.  Be
+### careful about reordering them.
 
-###--------------------------------------------------------------------------
-### Memory allocation.
+## Utilities.
+SUBDIRS                        += utils
+libmLib_la_LIBADD      += utils/libutils.la
 
 ## 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.in >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 <da.in >$@.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.in >sym.out
-       cmp sym.out sym.ref
-       @echo "sym OK"
+SUBDIRS                        += mem
+libmLib_la_LIBADD      += mem/libmem.la
 
-check_PROGRAMS         += sym.t
-sym_t_SOURCES           = sym-test.c
-sym_t_CPPFLAGS          = $(TEST_CPPFLAGS)
-sym_t_LDFLAGS           = -static
+## User interface.
+SUBDIRS                        += ui
+libmLib_la_LIBADD      += ui/libui.la
 
-EXTRA_DIST             += sym-gtest
-CLEANFILES             += sym.in
-sym.in: sym-gtest
-       perl $(srcdir)/sym-gtest 10000 >$@.new && mv $@.new $@
+## Hashing.
+SUBDIRS                        += hash
+libmLib_la_LIBADD      += hash/libhash.la
 
-EXTRA_DIST             += sym-ref
-CLEANFILES             += sym.ref
-sym.ref: sym-ref sym.in
-       perl $(srcdir)/sym-ref <sym.in >$@.new && mv $@.new $@
+## Data structures.
+SUBDIRS                        += struct
+libmLib_la_LIBADD      += struct/libstruct.la
 
-## Atoms.
-pkginclude_HEADERS     += atom.h
-libmLib_la_SOURCES     += atom.c
-LIBMANS                        += atom.3
+## Encoding and decoding.
+SUBDIRS                        += codec
+libmLib_la_LIBADD      += codec/libcodec.la
 
-## Association tables.
-pkginclude_HEADERS     += assoc.h
-libmLib_la_SOURCES     += assoc.c
-LIBMANS                        += assoc.3
+## System utilities.
+SUBDIRS                        += sys
+libmLib_la_LIBADD      += sys/libsys.la
 
-CLEANFILES             += assoc.out
-tests:: assoc.t sym.in sym.ref
-       ./assoc.t <sym.in >assoc.out
-       cmp assoc.out sym.ref
-       @echo "sym OK"
+## Buffering.
+SUBDIRS                        += buf
+libmLib_la_LIBADD      += buf/libbuf.la
 
-check_PROGRAMS         += assoc.t
-assoc_t_SOURCES                 = assoc-test.c
-assoc_t_CPPFLAGS        = $(TEST_CPPFLAGS)
-assoc_t_LDFLAGS                 = -static
+## Event-driven networking.
+SUBDIRS                        += sel
+libmLib_la_LIBADD      += sel/libsel.la
 
-###--------------------------------------------------------------------------
-### 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
-
-## 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.
+## Testing.
+SUBDIRS                        += test
+libmLib_la_LIBADD      += test/libtest.la
 
 ## 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
+SUBDIRS                        += trace
+libmLib_la_LIBADD      += trace/libtrace.la
 
 ###--------------------------------------------------------------------------
-### Manual.
-
-EXTRA_DIST             += $(LIBMANS) $(PROGMANS)
-
-install-data-local: install-man
-install-man: $(LIBMANS) $(PROGMANS)
-       @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(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
+### Testing.
 
-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
+SUBDIRS                        += t
 
 ###--------------------------------------------------------------------------
 ### Distribution.
@@ -533,4 +127,4 @@ EXTRA_DIST          += debian/mlib2-adns.install
 EXTRA_DIST             += debian/mlib-dev.install
 EXTRA_DIST             += debian/mlib-bin.install
 
-##----- That's all, folks ---------------------------------------------------
+###----- That's all, folks --------------------------------------------------