X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/blobdiff_plain/e5b61a8dec3586f96d25bd3ef454176526ff0f69..318c3c31be343fdba362cb60f33aab3e88798d8a:/vars.am diff --git a/vars.am b/vars.am index a0c3a6e1..223f2bab 100644 --- a/vars.am +++ b/vars.am @@ -27,11 +27,6 @@ ###-------------------------------------------------------------------------- ### 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,14 +108,36 @@ 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: libcatacomb.la - $(AM_V_CCLD)$(LINK) $< \ +.to.t$(EXEEXT): + $(AM_V_CCLD)$(LINK) $(TEST_LDFLAGS) $< \ $(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) $(TEST_LDFLAGS) $+ \ + $(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 --------------------------------------------------