chiark / gitweb /
Release 2.4.4.
[catacomb] / vars.am
diff --git a/vars.am b/vars.am
index b0cd53ce5384e3be19701fd1ec51171adf9e85a0..b99cfcfe9e243ecacdc62ea300ed7ffa7d195af6 100644 (file)
--- a/vars.am
+++ b/vars.am
 ###--------------------------------------------------------------------------
 ### Miscellaneous useful definitions.
 
-## Some convenient abbreviations for file suffixes.
-e                       = $(EXEEXT)
-o                       = $(OBJEXT)
-t                       = t$e
-
 ## Installation directories.
 archincludedir          = $(pkglibdir)/include
 
@@ -77,25 +72,27 @@ CLEANFILES          += $(PRECOMP_PROGS)
 ### Standard configuration substitutions.
 
 ## Substitute tags in files.
-confsubst = $(top_srcdir)/config/confsubst
+confsubst               = $(top_srcdir)/config/confsubst
 
 SUBSTITUTIONS = \
-               prefix=$(prefix) exec_prefix=$(exec_prefix) \
-               libdir=$(libdir) includedir=$(includedir) \
-               PACKAGE=$(PACKAGE) VERSION=$(VERSION) \
-               CATACOMB_LIBS="$(CATACOMB_LIBS)"
+       prefix=$(prefix) exec_prefix=$(exec_prefix) \
+       libdir=$(libdir) includedir=$(includedir) \
+       PACKAGE=$(PACKAGE) VERSION=$(VERSION) \
+       CATACOMB_LIBS="$(CATACOMB_LIBS)"
 
-V_SUBST = $(V_SUBST_$(V))
-V_SUBST_ = $(V_SUBST_$(AM_DEFAULT_VERBOSITY))
-V_SUBST_0 = @echo "  SUBST  $@";
-SUBST = $(V_SUBST)$(confsubst)
+V_SUBST                         = $(V_SUBST_@AM_V@)
+V_SUBST_                = $(V_SUBST_@AM_DEFAULT_V@)
+V_SUBST_0               = @echo "  SUBST    $@";
+SUBST                   = $(V_SUBST)$(confsubst)
 
 ###--------------------------------------------------------------------------
 ### Include path.
 
-CATACOMB_INCLUDES       = \
+CATACOMB_INCLUDES = \
        -I$(top_srcdir) \
-       -I$(precomp) \
+       -I$(precomp)/math \
+       -I$(precomp)/misc \
+       -I$(precomp)/symm \
        -I$(top_srcdir)/base \
        -I$(top_srcdir)/key \
        -I$(top_srcdir)/math \
@@ -111,13 +108,34 @@ AM_CPPFLAGS                = $(CATACOMB_INCLUDES)
 ###--------------------------------------------------------------------------
 ### 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:
+.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)
+
+###--------------------------------------------------------------------------
+### Experimental flymake hack.
+
+check-syntax:
+       $(COMPILE) -S -o/dev/null \
+               -DTEST_RIG -DSRCDIR=\"$(SRCDIR)\" \
+               $(CHK_SOURCES)
 
 ###----- That's all, folks --------------------------------------------------