man6 := $(filter man/%.6, $(src))
builtins := $(filter src/lib/global/%.config, $(src))
-# Info subjects (automatically generated)
--include subjects.mk
+# Info subjects
+include $(srcdir)/info/subjects.mk
# Abbreviations
topics := $(patsubst %.t,%,$(notdir $(tsrc)))
info := $(topics) $(subjects) all TOP
-subjects.html := $(addprefix info.html/, $(addsuffix .html, $(subjects)))
-topics.html := $(addprefix info.html/, $(addsuffix .html, $(topics)))
scripts := $(srcdir)/src/scripts
depcomp := $(SHELL) $(srcdir)/depcomp
tarball := $(SHELL) -e $(scripts)/tarball
# Generated files
# See `Cleanliness' below
-mk := subjects.mk
+mk :=
ifeq ($(revctrl),git)
mk += $(srcdir)/sources.mk
endif
# Formatted info:
info.nr := $(addprefix info.nr/, $(info))
info.html := $(addprefix info.html/, $(addsuffix .html, $(info)))
-info.all := $(info.nr) $(info.html) info.ps
+info.all := $(info.nr) $(info.html) info.ps info/stamp-subj
# Tests
# sandbox
# Pipes in make are a pain. The "test -s" catches obvious errors.
info.html/%.html: info/%.t
- perl $(filter %.pl, $^) $< >$@
+ $(call quiet-command,perl $(srcdir)/info/emp2html.pl $(info) <$< >$@,GEN $@)
### Explicit rules
# Info formatting
-# FIXME Remaking subjects doesn't work correctly when info sources get
-# removed or subjects get dropped.
-
-subjects.mk: info/findsubj.pl $(tsrc)
- perl $(srcdir)/info/findsubj.pl $(filter %.t, $^)
-
-$(tsubj): info/mksubj.pl
- perl $(srcdir)/info/mksubj.pl $@ $(filter %.t, $^)
+# mksubj.pl reads $(tsrc) and writes $(tsubj). The naive rule
+# $(ttop) $(tsubj): $(tsrc)
+# COMMAND
+# runs COMMAND once for each target. That's because multiple targets
+# in an explicit rule is just a shorthand for one rule per target,
+# each with the same prerequisites and commands. Use a stamp file.
+$(tsubj): info/stamp-subj ;
+info/stamp-subj: info/mksubj.pl $(tsrc)
+ $(call quiet-command,perl $(srcdir)/info/mksubj.pl $(subjects) $(filter %.t, $^),GEN '$$(subjects)')
+ >$@
-$(ttop): info/mktop.pl
+$(ttop): info/mktop.pl info/subjects.mk
$(call quiet-command,perl $(srcdir)/info/mktop.pl $@ $(subjects),GEN $@)
info.nr/all: $(filter-out info.nr/all, $(info.nr))
$(info.nr): info/CRT.MAC info/INFO.MAC info/Blank.awk
-$(subjects.html) info.html/TOP.html: info/subj2html.pl
-$(topics.html): info/emp2html.pl
+$(info.html): info/emp2html.pl
info.ps: info/TROFF.MAC info/INFO.MAC $(ttop) $(tsubj) $(tsrc)
groff $^ >$@
-C $(srcdir)/src/lib/global version.c \
-C $(srcdir)/src/lib $(addprefix w32/, $(client/w32)) \
-C $(srcdir)/man empire.6 \
- -C $(srcdir) COPYING INSTALL install-sh
+ -C $(srcdir)/build-aux install-sh \
+ -C $(srcdir) COPYING INSTALL
.PHONY: dist-info
dist-info: info html
cd $(dir $@) && autoheader
touch $@
-$(srcdir)/src/client/aclocal.m4: m4/lib_socket_nsl.m4 m4/my_terminfo.m4 m4/my_windows_api.m4
+$(srcdir)/src/client/aclocal.m4: m4/ax_lib_socket_nsl.m4 m4/my_terminfo.m4 m4/my_windows_api.m4
cat $^ >$@