This makes the file tree rather easier to work with.
config/maninst
config/auto-version
config/confsubst
-mdwopt.c
-mdwopt.h
+ui/mdwopt.c
+ui/mdwopt.h
COPYING
COPYING.LIB
-### -*-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
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.
+SUBDIRS += mem
+libmLib_la_LIBADD += mem/libmem.la
-## CRC32.
-pkginclude_HEADERS += crc32.h
-libmLib_la_SOURCES += crc32.c crc32-tab.c
-LIBMANS += crc32.3
+## User interface.
+SUBDIRS += ui
+libmLib_la_LIBADD += ui/libui.la
-bin_PROGRAMS += crc-mktab
-crc_mktab_SOURCES = crc-mktab.c $(UTIL_SOURCES)
-crc_mktab_LDADD = libutils.la
-PROGMANS += crc-mktab.1
+## Hashing.
+SUBDIRS += hash
+libmLib_la_LIBADD += hash/libhash.la
-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 $@
+## Data structures.
+SUBDIRS += struct
+libmLib_la_LIBADD += struct/libstruct.la
-## 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
+## Encoding and decoding.
+SUBDIRS += codec
+libmLib_la_LIBADD += codec/libcodec.la
-bin_PROGRAMS += unihash-mkstatic
-unihash_mkstatic_SOURCES = unihash-mkstatic.c
-unihash_mkstatic_LDADD = libutils.la
-PROGMANS += unihash-mkstatic.1
+## System utilities.
+SUBDIRS += sys
+libmLib_la_LIBADD += sys/libsys.la
-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"
-
-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 <sym.in >$@.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 <sym.in >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.
+## Buffering.
+SUBDIRS += buf
+libmLib_la_LIBADD += buf/libbuf.la
-## 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
+## Event-driven networking.
+SUBDIRS += sel
+libmLib_la_LIBADD += sel/libsel.la
## Testing.
-pkginclude_HEADERS += testrig.h
-libmLib_la_SOURCES += testrig.c
-LIBMANS += testrig.3
-
-###--------------------------------------------------------------------------
-### Manual.
+SUBDIRS += test
+libmLib_la_LIBADD += test/libtest.la
-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
+## Tracing.
+SUBDIRS += trace
+libmLib_la_LIBADD += trace/libtrace.la
###--------------------------------------------------------------------------
### Distribution.
EXTRA_DIST += debian/mlib-dev.install
EXTRA_DIST += debian/mlib-bin.install
-##----- That's all, folks ---------------------------------------------------
+###----- That's all, folks --------------------------------------------------
--- /dev/null
+### -*-makefile-*-
+###
+### Build script for buffering
+###
+### (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
+
+noinst_LTLIBRARIES = libbuf.la
+libbuf_la_SOURCES =
+
+###--------------------------------------------------------------------------
+### Component files.
+
+## Line buffering.
+pkginclude_HEADERS += lbuf.h
+libbuf_la_SOURCES += lbuf.c
+LIBMANS += lbuf.3
+
+## Packet buffering.
+pkginclude_HEADERS += pkbuf.h
+libbuf_la_SOURCES += pkbuf.c
+LIBMANS += pkbuf.3
+
+###----- That's all, folks --------------------------------------------------
--- /dev/null
+### -*-makefile-*-
+###
+### Build script for encoding and decoding
+###
+### (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
+
+noinst_LTLIBRARIES = libcodec.la
+libcodec_la_SOURCES =
+
+###--------------------------------------------------------------------------
+### Component files.
+
+## form-urlencoded
+pkginclude_HEADERS += url.h
+libcodec_la_SOURCES += url.c
+LIBMANS += url.3
+
+## base64
+pkginclude_HEADERS += base64.h
+libcodec_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
+libcodec_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
+libcodec_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
+
+###----- That's all, folks --------------------------------------------------
AC_CONFIG_HEADER([config/config.h])
AC_CONFIG_FILES(
- [Makefile])
+ [Makefile]
+ [buf/Makefile]
+ [codec/Makefile]
+ [hash/Makefile]
+ [mem/Makefile]
+ [sel/Makefile]
+ [struct/Makefile]
+ [sys/Makefile]
+ [test/Makefile]
+ [trace/Makefile]
+ [ui/Makefile]
+ [utils/Makefile])
AC_OUTPUT
dnl ----- That's all, folks -------------------------------------------------
--- /dev/null
+### -*-makefile-*-
+###
+### Build script for hashing
+###
+### (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
+
+noinst_LTLIBRARIES = libhash.la
+libhash_la_SOURCES =
+libhash_la_LIBADD =
+
+###--------------------------------------------------------------------------
+### Component files.
+
+## CRC32.
+pkginclude_HEADERS += crc32.h
+libhash_la_SOURCES += crc32.c
+LIBMANS += crc32.3
+
+bin_PROGRAMS += crc-mktab
+crc_mktab_SOURCES = crc-mktab.c
+crc_mktab_LDADD = $(UTIL_LIBS)
+PROGMANS += crc-mktab.1
+
+libhash_la_SOURCES += crc32-tab.c
+CLEANFILES += crc32-tab.c
+crc32-tab.c:
+ @$(build_util_libs)
+ @$(MAKE) 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
+noinst_LTLIBRARIES += libunihash.la
+libunihash_la_SOURCES = unihash.c
+libhash_la_LIBADD += libunihash.la
+LIBMANS += unihash.3
+
+bin_PROGRAMS += unihash-mkstatic
+unihash_mkstatic_SOURCES = unihash-mkstatic.c
+unihash_mkstatic_LDADD = libunihash.la $(UTIL_LIBS)
+PROGMANS += unihash-mkstatic.1
+
+libhash_la_SOURCES += unihash-global.c
+CLEANFILES += unihash-global.c
+unihash-global.c:
+ @$(build_util_libs)
+ @$(MAKE) 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 $@
+
+
+###----- That's all, folks --------------------------------------------------
--- /dev/null
+### -*-makefile-*-
+###
+### Build script for memory allocation
+###
+### (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
+
+noinst_LTLIBRARIES = libmem.la
+libmem_la_SOURCES =
+
+###--------------------------------------------------------------------------
+### Component files.
+
+## Arena abstraction.
+pkginclude_HEADERS += arena.h
+libmem_la_SOURCES += arena.c
+LIBMANS += arena.3
+
+## Memory allocation with exceptions.
+pkginclude_HEADERS += alloc.h
+libmem_la_SOURCES += alloc.c
+LIBMANS += alloc.3
+
+## Slab allocator.
+pkginclude_HEADERS += sub.h
+libmem_la_SOURCES += sub.c
+LIBMANS += sub.3
+
+## Pool allocator.
+pkginclude_HEADERS += pool.h
+libmem_la_SOURCES += pool.c pool-file.c pool-sub.c
+LIBMANS += pool.3
+
+###----- That's all, folks --------------------------------------------------
--- /dev/null
+### -*-makefile-*-
+###
+### Build script for event-driven networking
+###
+### (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
+
+noinst_LTLIBRARIES = libsel.la
+libsel_la_SOURCES =
+
+###--------------------------------------------------------------------------
+### Component files.
+
+## Core event selection.
+pkginclude_HEADERS += sel.h
+libsel_la_SOURCES += sel.c
+LIBMANS += sel.3
+
+## Waiting for buffers to fill.
+pkginclude_HEADERS += selbuf.h selpk.h
+libsel_la_SOURCES += selbuf.c selpk.c
+LIBMANS += selbuf.3 selpk.3
+
+## RFC931 identification.
+pkginclude_HEADERS += ident.h
+libsel_la_SOURCES += ident.c
+LIBMANS += ident.3
+
+## Nonblocking connections.
+pkginclude_HEADERS += conn.h
+libsel_la_SOURCES += conn.c
+LIBMANS += conn.3
+
+## Signal handling
+pkginclude_HEADERS += sig.h
+libsel_la_SOURCES += sig.c
+LIBMANS += sig.3
+
+## Name resolution.
+pkginclude_HEADERS += bres.h
+LIBMANS += bres.3
+
+if WITH_ADNS
+libsel_la_SOURCES += bres-adns.c
+else
+libsel_la_SOURCES += bres.c
+pkglibexec_PROGRAMS = bres
+bres_SOURCES = bres.c
+bres_CPPFLAGS = -DBRES_STANDALONE $(AM_CPPFLAGS)
+bres_LDADD =
+endif
+
+###----- That's all, folks --------------------------------------------------
--- /dev/null
+### -*-makefile-*-
+###
+### Build script for data structures
+###
+### (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
+
+noinst_LTLIBRARIES = libstruct.la
+libstruct_la_SOURCES =
+
+###--------------------------------------------------------------------------
+### Component files.
+
+## Dynamic strings.
+pkginclude_HEADERS += dstr.h dspool.h
+libstruct_la_SOURCES += dstr.c dstr-putf.c dspool.c
+LIBMANS += dstr.3 dspool.3
+
+## Buffers.
+pkginclude_HEADERS += buf.h
+libstruct_la_SOURCES += buf.c buf-dstr.c
+LIBMANS += buf.3
+
+## Dynamic arrays.
+pkginclude_HEADERS += darray.h
+libstruct_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
+libstruct_la_SOURCES += hash.c
+LIBMANS += hash.3
+
+## Symbol tables.
+pkginclude_HEADERS += sym.h
+libstruct_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"
+
+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 <sym.in >$@.new && mv $@.new $@
+
+## Atoms.
+pkginclude_HEADERS += atom.h
+libstruct_la_SOURCES += atom.c
+LIBMANS += atom.3
+
+## Association tables.
+pkginclude_HEADERS += assoc.h
+libstruct_la_SOURCES += assoc.c
+LIBMANS += assoc.3
+
+CLEANFILES += assoc.out
+tests:: assoc.t sym.in sym.ref
+ ./assoc.t <sym.in >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
+
+###----- That's all, folks --------------------------------------------------
--- /dev/null
+### -*-makefile-*-
+###
+### Build script for system utilities
+###
+### (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
+
+noinst_LTLIBRARIES = libsys.la
+libsys_la_SOURCES =
+
+###--------------------------------------------------------------------------
+### Component files.
+
+## Daemons.
+pkginclude_HEADERS += daemonize.h
+libsys_la_SOURCES += daemonize.c
+LIBMANS += daemonize.3
+
+## Environment variables.
+pkginclude_HEADERS += env.h
+libsys_la_SOURCES += env.c
+LIBMANS += env.3
+
+## File and descriptor flags.
+pkginclude_HEADERS += fdflags.h
+libsys_la_SOURCES += fdflags.c
+LIBMANS += fdflags.3
+
+## File descriptor passing.
+pkginclude_HEADERS += fdpass.h
+libsys_la_SOURCES += fdpass.c
+LIBMANS += fdpass.3
+
+## Watching files for modification.
+pkginclude_HEADERS += fwatch.h
+libsys_la_SOURCES += fwatch.c
+LIBMANS += fwatch.3
+
+## File locking.
+pkginclude_HEADERS += lock.h
+libsys_la_SOURCES += lock.c
+LIBMANS += lock.3
+
+## File descriptor juggling.
+pkginclude_HEADERS += mdup.h
+libsys_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
+libsys_la_SOURCES += tv.c
+LIBMANS += tv.3
+
+###----- That's all, folks --------------------------------------------------
--- /dev/null
+### -*-makefile-*-
+###
+### Build script for testing
+###
+### (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
+
+noinst_LTLIBRARIES = libtest.la
+libtest_la_SOURCES =
+
+###--------------------------------------------------------------------------
+### Component files.
+
+## Testing.
+pkginclude_HEADERS += testrig.h
+libtest_la_SOURCES += testrig.c
+LIBMANS += testrig.3
+
+###----- That's all, folks --------------------------------------------------
--- /dev/null
+### -*-makefile-*-
+###
+### Build script for tracing
+###
+### (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
+
+noinst_LTLIBRARIES = libtrace.la
+libtrace_la_SOURCES =
+
+###--------------------------------------------------------------------------
+### Component files.
+
+## Tracing.
+pkginclude_HEADERS += trace.h
+libtrace_la_SOURCES += trace.c traceopt.c
+LIBMANS += trace.3
+
+###----- That's all, folks --------------------------------------------------
--- /dev/null
+### -*-makefile-*-
+###
+### Build script for user interface
+###
+### (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
+
+noinst_LTLIBRARIES = libui.la
+libui_la_SOURCES =
+libui_la_LIBADD =
+
+###--------------------------------------------------------------------------
+### Component files.
+
+## Option parsing.
+noinst_LTLIBRARIES += libmdwopt.la
+pkginclude_HEADERS += mdwopt.h
+libmdwopt_la_SOURCES = mdwopt.c
+libmdwopt_la_CPPFLAGS = $(AM_CPPFLAGS) -DBUILDING_MLIB
+libui_la_LIBADD += libmdwopt.la
+LIBMANS += mdwopt.3
+
+## Program naming.
+pkginclude_HEADERS += quis.h
+libui_la_SOURCES += quis.c pquis.c
+LIBMANS += quis.3
+
+## Error reporting.
+pkginclude_HEADERS += report.h
+libui_la_SOURCES += report.c
+LIBMANS += report.3
+
+###----- That's all, folks --------------------------------------------------
--- /dev/null
+### -*-makefile-*-
+###
+### Build script for utilities
+###
+### (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
+
+noinst_LTLIBRARIES = libutils.la
+libutils_la_SOURCES =
+
+###--------------------------------------------------------------------------
+### Component files.
+
+## 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
+libutils_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
+libutils_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
+
+###----- That's all, folks --------------------------------------------------
--- /dev/null
+### -*-Makefile-*-
+###
+### Common build-system definition
+###
+### (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.
+
+###--------------------------------------------------------------------------
+### Installation directories.
+
+pkglibexecdir = $(libexecdir)/$(PACKAGE)
+
+###--------------------------------------------------------------------------
+### Initial values for common variables.
+
+bin_PROGRAMS =
+check_PROGRAMS =
+pkginclude_HEADERS =
+PROGMANS =
+LIBMANS =
+EXTRA_DIST = $(LIBMANS) $(PROGMANS)
+CLEANFILES =
+MAINTAINERCLEANFILES =
+
+###--------------------------------------------------------------------------
+### Include path.
+
+MLIB_INCLUDES = \
+ -I$(top_srcdir)/buf \
+ -I$(top_srcdir)/codec \
+ -I$(top_srcdir)/hash \
+ -I$(top_srcdir)/mem \
+ -I$(top_srcdir)/net \
+ -I$(top_srcdir)/struct \
+ -I$(top_srcdir)/sys \
+ -I$(top_srcdir)/test \
+ -I$(top_srcdir)/trace \
+ -I$(top_srcdir)/ui \
+ -I$(top_srcdir)/utils
+
+CPPFLAGS += $(MLIB_INCLUDES)
+
+###--------------------------------------------------------------------------
+### Miscellaneous useful definitions.
+
+## Substitute tags in files.
+confsubst = $(top_srcdir)/config/confsubst
+
+SUBSTITUTIONS = \
+ prefix=$(prefix) exec_prefix=$(exec_prefix) \
+ libdir=$(libdir) includedir=$(includedir) \
+ bindir=$(bindir) sbindir=$(sbindir) \
+ PACKAGE=$(PACKAGE) VERSION=$(VERSION)
+
+###--------------------------------------------------------------------------
+### Building utilities.
+
+## Which libraries we need.
+UTIL_LIBS = \
+ $(top_builddir)/ui/libui.la \
+ $(top_builddir)/utils/libutils.la
+
+## Making sure they're built properly. Without this, `make dist' on a bare
+## source tree fails hopelessly.
+build_util_libs = \
+ for i in ui utils; do \
+ (cd $(top_builddir)/$$i && $(MAKE) lib$$i.la) || exit 1; \
+ done
+
+###--------------------------------------------------------------------------
+### Testing.
+
+TEST_CPPFLAGS = -DTEST_RIG -DSRCDIR="\"$(srcdir)\"" $(AM_CPPFLAGS)
+LDADD = $(top_builddir)/libmLib.la
+
+check: tests
+.PHONY: check tests
+
+###--------------------------------------------------------------------------
+### 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
+
+###----- That's all, folks --------------------------------------------------