--- /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 --------------------------------------------------