man pages: Split out the common preamble and insert it at build time.
[sod] / vars.am
diff --git a/vars.am b/vars.am
index e4406ca..1409100 100644 (file)
--- a/vars.am
+++ b/vars.am
@@ -45,7 +45,7 @@ pkginclude_HEADERS     =
 noinst_DATA             =
 TESTS                   =
 
-dist_man_MANS           =
+man_MANS                =
 
 CLEANFILES             += $(BUILT_SOURCES)
 
@@ -92,8 +92,12 @@ V_SOD_h_0             = @echo "  SOD[h]   $@";
 
 ## Build rules.
 SUFFIXES               += .c .h .sod
-.sod.c: $(SOD); $(V_SOD_c)$(SOD) -tc $<
-.sod.h: $(SOD); $(V_SOD_h)$(SOD) -th $<
+.sod.c:; $(V_SOD_c)$(SOD) -M -tc $<
+.sod.h:; $(V_SOD_h)$(SOD) -M -th $<
+%.c: %.sod $(SOD); $(V_SOD_c)$(SOD) -M -tc $<
+%.h: %.sod $(SOD); $(V_SOD_h)$(SOD) -M -th $<
+
+DISTCLEANFILES         += *.c-dep *.h-dep
 
 ###--------------------------------------------------------------------------
 ### Silent rules for Lisp.
@@ -106,4 +110,26 @@ V_TEST                      = $(V_TEST_@AM_V@)
 V_TEST_                         = $(V_TEST_@AM_DEFAULT_V@)
 V_TEST_0                = @echo "  TEST     $@";
 
+###--------------------------------------------------------------------------
+### Manpage substitutions.
+
+SUFFIXES               += .1.in .1
+SUFFIXES               += .3.in .3
+SUFFIXES               += .5.in .5
+
+mandefs                         = $(top_srcdir)/common/defs.man
+
+V_MAN                   = $(V_MAN_@AM_V@)
+V_MAN_                  = $(V_MAN_@AM_DEFAULT_V@)
+V_MAN_0                         = @echo "  MAN      $@";
+
+.1.in.1 .3.in.3 .5.in.5:
+       $(V_MAN)
+       $(AM_V_at)sed '/^\.$$/ d; /^\.\\"/ d' $(mandefs) >$@.defs
+       $(AM_V_at)sed -e '/@@@PRE@@@/ {' -e 'r$@.defs' -e 'd' -e '}' \
+               $< >$@.merge
+       $(AM_V_at)$(confsubst) $@.merge >$@.subst $(SUBSTITUTIONS)
+       $(AM_V_at)rm -f $@.merge && mv $@.subst $@
+
+
 ###----- That's all, folks --------------------------------------------------