### -*-makefile-*-
###
-### Building the distribution
+### Build script for Catacomb
###
-### (c) 1997 Mark Wooding
+### (c) 2013 Straylight/Edgeware
###
###----- Licensing notice ---------------------------------------------------
###
-### This file is part of the Common Files Distribution (`common')
+### This file is part of Catacomb.
###
-### `Common' is free software; you can redistribute it and/or modify
-### it under the terms of the GNU General Public License as published by
-### the Free Software Foundation; either version 2 of the License, or
-### (at your option) any later version.
+### Catacomb 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.
###
-### `Common' is distributed in the hope that it will be useful,
+### Catacomb 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 General Public License for more details.
+### GNU Library General Public License for more details.
###
-### You should have received a copy of the GNU General Public License
-### along with `common'; if not, write to the Free Software Foundation,
-### Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+### You should have received a copy of the GNU Library General Public
+### License along with Catacomb; if not, write to the Free
+### Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+### MA 02111-1307, USA.
-bin_SCRIPTS =
-pkgdata_SCRIPTS =
-dist_pkgdata_SCRIPTS =
-pkgdata_DATA =
-dist_pkgdata_DATA =
+include $(top_srcdir)/vars.am
+ACLOCAL_AMFLAGS = -Im4
-EXTRA_DIST =
-CLEANFILES =
+SUBDIRS =
###--------------------------------------------------------------------------
-### Handy variables.
+### Top-level library.
-confsubst = $(srcdir)/confsubst.in
-mkdir_p = $(srcdir)/config/install-sh -d
-
-V_SUBST = $(V_SUBST_@AM_V@)
-V_SUBST_ = $(V_SUBST_@AM_DEFAULT_V@)
-V_SUBST_0 = @echo " SUBST $@";
-SUBST = $(V_SUBST)$(confsubst)
+lib_LTLIBRARIES = libcatacomb.la
+libcatacomb_la_LDFLAGS = -version-info $(LIBTOOL_VERSION_INFO) \
+ -no-undefined
+libcatacomb_la_SOURCES =
+libcatacomb_la_LIBADD = $(MATHLIBS) $(PIXIE_LIBS) $(CATACOMB_LIBS) \
+ $(mLib_LIBS)
###--------------------------------------------------------------------------
-### Main scripts.
-
-## mklinks
-bin_SCRIPTS += mklinks
-CLEANFILES += mklinks
-EXTRA_DIST += mklinks.in
-
-mklinks: mklinks.in Makefile
- $(SUBST) $(srcdir)/mklinks.in >$@.new \
- pkgdatadir=$(pkgdatadir) VERSION=$(VERSION)
- $(AM_V_at)chmod +x $@.new
- $(AM_V_at)mv $@.new $@
-
-## findlinks
-bin_SCRIPTS += findlinks
-CLEANFILES += findlinks
-EXTRA_DIST += findlinks.in
-
-findlinks: findlinks.in Makefile
- $(SUBST) $(srcdir)/findlinks.in >$@.new \
- pkgdatadir=$(pkgdatadir) VERSION=$(VERSION)
- $(AM_V_at)chmod +x $@.new
- $(AM_V_at)mv $@.new $@
-
-## mdw-setup
-bin_SCRIPTS += mdw-setup
-EXTRA_DIST += mdw-setup
+### Package-configuration file.
-###--------------------------------------------------------------------------
-### Files to install.
-
-## Licences.
-dist_pkgdata_DATA += GPL-1 GPL-2 GPL-3
-dist_pkgdata_DATA += LGPL-2 LGPL-2.1 LGPL-3
-dist_pkgdata_DATA += AGPL-3
-dist_pkgdata_DATA += gpl-2.0.tex gpl-2.0.texi
-dist_pkgdata_DATA += lgpl-2.0.tex lgpl-2.0.texi
-dist_pkgdata_DATA += lgpl-2.1.tex lgpl-2.1.texi
-dist_pkgdata_DATA += gpl-3.0.tex gpl-3.0.texi
-dist_pkgdata_DATA += lgpl-3.0.tex lgpl-3.0.texi
-dist_pkgdata_DATA += agpl-3.0.tex agpl-3.0.texi
-
-install-data-hook::
- cd $(DESTDIR)$(pkgdatadir) && $(LN_S) -f GPL-2 COPYING
- cd $(DESTDIR)$(pkgdatadir) && $(LN_S) -f LGPL-2 COPYING.LIB
- cd $(DESTDIR)$(pkgdatadir) && $(LN_S) -f gpl-2.0.tex gpl.tex
- cd $(DESTDIR)$(pkgdatadir) && $(LN_S) -f lgpl-2.0.tex lgpl.tex
- cd $(DESTDIR)$(pkgdatadir) && $(LN_S) -f gpl-2.0.texi gpl.texi
- cd $(DESTDIR)$(pkgdatadir) && $(LN_S) -f lgpl-2.0.texi lgpl.texi
-
-uninstall-hook::
- cd $(DESTDIR)$(pkgdatadir) && rm -f COPYING COPYING.LIB
- cd $(DESTDIR)$(pkgdatadir) && \
- rm -f gpl.tex gpl.texi lgpl.tex lgpl.texi
-
-## Documentation.
-dist_pkgdata_DATA += INSTALL
-dist_pkgdata_DATA += texinice.tex
-
-## Useful code.
-dist_pkgdata_DATA += mdwopt.c mdwopt.h
-dist_pkgdata_DATA += getdate.y getdate.h
-
-## Scripts.
-dist_pkgdata_SCRIPTS += install-ac
-dist_pkgdata_SCRIPTS += maninst
-
-## Python support stuff.
-dist_pkgdata_DATA += mdwsetup.py
-dist_pkgdata_DATA += pysetup.mk
-
-## confsubst
-pkgdata_SCRIPTS += confsubst
-CLEANFILES += confsubst
-EXTRA_DIST += confsubst.in
-
-confsubst: confsubst.in Makefile
- $(SUBST) $(srcdir)/confsubst.in >$@.new VERSION=$(VERSION)
- $(AM_V_at)chmod +x $@.new
- $(AM_V_at)mv $@.new $@
-
-## auto-version
-pkgdata_SCRIPTS += auto-version
-CLEANFILES += auto-version
-EXTRA_DIST += auto-version.in
-
-auto-version: auto-version.in Makefile
- $(SUBST) $(srcdir)/auto-version.in >$@.new VERSION=$(VERSION)
- $(AM_V_at)chmod +x $@.new
- $(AM_V_at)mv $@.new $@
-
-## Testsuites.
-dist_pkgdata_DATA += autotest.am
-dist_pkgdata_DATA += testsuite.at
-
-## Autoconf snippets.
-EXTRA_DIST += aclocal.glob
-
-install-data-hook::
- $(mkdir_p) $(DESTDIR)$(aclocaldir)
- $(srcdir)/install-ac install \
- $(srcdir)/aclocal.glob $(DESTDIR)$(aclocaldir)
-
-uninstall-hook::
- $(srcdir)/install-ac rm \
- $(srcdir)/aclocal.glob $(DESTDIR)$(aclocaldir)
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = catacomb.pc
+EXTRA_DIST += catacomb.pc.in
+CLEANFILES += catacomb.pc
+
+catacomb.pc: catacomb.pc.in Makefile
+ $(SUBST) $(srcdir)/catacomb.pc.in >$@.new $(SUBSTITUTIONS) && \
+ mv $@.new $@
###--------------------------------------------------------------------------
-### Documentation.
+### Subdirectories.
+###
+### Note: There are implicit dependencies between the subdirectories. Be
+### careful about reordering them.
+
+## Basic utilities.
+SUBDIRS += base
+libcatacomb_la_LIBADD += base/libbase.la
+
+## Mathematical infrastructure.
+SUBDIRS += math
+libcatacomb_la_LIBADD += math/libmath.la
+
+## Symmetric cryptography.
+SUBDIRS += symm
+libcatacomb_la_LIBADD += symm/libsymm.la
-info_TEXINFOS = common.texi
+## Key management.
+SUBDIRS += key
+libcatacomb_la_LIBADD += key/libkey.la
+
+## Miscellaneous cryptography.
+SUBDIRS += misc
+libcatacomb_la_LIBADD += misc/libmisc.la
+
+## Public-key cryptography.
+SUBDIRS += pub
+libcatacomb_la_LIBADD += pub/libpub.la
+
+## Random number generators and related functionality.
+SUBDIRS += rand
+libcatacomb_la_LIBADD += rand/librand.la
+
+## At this point, we should construct the library.
+SUBDIRS += .
###--------------------------------------------------------------------------
-### Other special tweaks.
+### Ancillary programs.
+
+SUBDIRS += progs
-## Make `make distcheck' work.
-DISTCHECK_CONFIGURE_FLAGS = \
- --with-aclocaldir='$${prefix}/share/aclocal'
+###--------------------------------------------------------------------------
+### Distribution.
-## Distribute the release number.
+## Release number.
dist-hook::
echo $(VERSION) >$(distdir)/RELEASE
+## Additional build tools.
+EXTRA_DIST += build-setup
+EXTRA_DIST += config/auto-version
+EXTRA_DIST += config/confsubst
+
+## Documentation files.
+EXTRA_DIST += README.cipher
+EXTRA_DIST += README.hash
+EXTRA_DIST += README.mp
+EXTRA_DIST += README.random
+
###--------------------------------------------------------------------------
### Debian.
-EXTRA_DIST += debian/compat
-EXTRA_DIST += debian/control
-EXTRA_DIST += debian/copyright
+## General stuff.
EXTRA_DIST += debian/rules
+EXTRA_DIST += debian/control
EXTRA_DIST += debian/changelog
+EXTRA_DIST += debian/copyright
+EXTRA_DIST += debian/compat
EXTRA_DIST += debian/source/format
+## catacomb2
+EXTRA_DIST += debian/catacomb2.install
+EXTRA_DIST += debian/catacomb2.symbols
+
+## catacomb-bin
+EXTRA_DIST += debian/catacomb-bin.install
+EXTRA_DIST += debian/catacomb-bin.prerm
+EXTRA_DIST += debian/catacomb-bin.postinst
+EXTRA_DIST += debian/catacomb-bin.config
+EXTRA_DIST += debian/catacomb-bin.templates
+
+## catacomb-data
+EXTRA_DIST += debian/catacomb-data.install
+
+## catacomb-dev
+EXTRA_DIST += debian/catacomb-dev.install
+
###----- That's all, folks --------------------------------------------------