###--------------------------------------------------------------------------
### Miscellaneous useful definitions.
-## Some convenient abbreviations for file suffixes.
-e = $(EXEEXT)
-o = $(OBJEXT)
-t = t$e
-
## Installation directories.
archincludedir = $(pkglibdir)/include
TESTS =
BUILT_SOURCES =
+EXTRA_PROGRAMS =
noinst_PROGRAMS =
+check_PROGRAMS =
pkginclude_HEADERS =
nodist_pkginclude_HEADERS =
archinclude_HEADERS =
nodist_archinclude_HEADERS =
+###--------------------------------------------------------------------------
+### Machinery for precomputations.
+
+## Location of precomputed tables.
+precomp = $(top_srcdir)/precomp
+
+## Precomputed source code files.
+PRECOMPS =
+EXTRA_DIST += $(PRECOMPS)
+BUILT_SOURCES += $(PRECOMPS)
+MAINTAINERCLEANFILES += $(PRECOMPS)
+
+## Programs which make the tables. These should be made by an explicit
+## recursive `make' call in the relevant rule, so that we don't try to
+## reconstruct them unnecessarily.
+PRECOMP_PROGS =
+EXTRA_PROGRAMS += $(PRECOMP_PROGS)
+CLEANFILES += $(PRECOMP_PROGS)
+
###--------------------------------------------------------------------------
### Standard configuration substitutions.
CATACOMB_INCLUDES = \
-I$(top_srcdir) \
+ -I$(precomp)/math \
+ -I$(precomp)/misc \
+ -I$(precomp)/symm \
-I$(top_srcdir)/base \
-I$(top_srcdir)/key \
-I$(top_srcdir)/math \
###--------------------------------------------------------------------------
### Testing.
-SUFFIXES += .c .$t .to
+TEST_EXTENSIONS = .t
+SUFFIXES += .c .t$(EXEEXT) .to
+
+## This unpleasant duplication of rules makes the build system basically work
+## for non-GNU make(1) variants, while GNU Make will associate useful
+## additional dependencies with the test programs. GNU Make seems not to
+## mind the duplicate rules, and uses the second (better) set; non-GNU Make
+## will think the second set refer to bizarrely-named targets which nobody is
+## apparently interested in.
.c.to:
$(AM_V_CC)$(COMPILE) -c -DTEST_RIG -DSRCDIR=\"$(srcdir)\" $< -o $@
-.to.$t: libcatacomb.la
- $(AM_V_CCLD)$(LINK) $< \
- $(TEST_LIBS) $(top_builddir)/libcatacomb.la \
+.to.t$(EXEEXT):
+ $(AM_V_CCLD)$(LINK) $< $(TEST_LIBS) $(top_builddir)/libcatacomb.la \
$(mLib_LIBS) $(CATACOMB_LIBS) $(LIBS)
-.PRECIOUS: %.to
-CLEANFILES += *.to *.$t
+%.to: %.c %.lo
+ $(AM_V_CC)$(COMPILE) -c -DTEST_RIG -DSRCDIR=\"$(srcdir)\" $< -o $@
+%.t$(EXEEXT): %.to $(TEST_LIBS) $(top_builddir)/libcatacomb.la
+ $(AM_V_CCLD)$(LINK) $+ $(mLib_LIBS) $(CATACOMB_LIBS) $(LIBS)
+
+.PRECIOUS: %.to %.t$(EXEEXT)
+CLEANFILES += *.to *.t$(EXEEXT)
###----- That's all, folks --------------------------------------------------