## --------------------------------------- ## -- Standard boilerplate dependencies -- ## --------------------------------------- # Recursive rules, usually automatically generated by Automake. # Since we do not use (yet) Automake, we mimic the behaviour as # close as possible. # Recursive wall of sub-directories is based on the variable # SUBDIRS. That variable usually contains the of sub-directories # to be made in depth-first postfix. However, that order can # be changed to depth-first prefix by explicitly including "." # in SUBDIRS. Rules ending with '-ax' are those specific to the # the current directory. Notice that the '-ax' rules are similar # to Automake generated '-am'. .PHONY: $(RECURSIVE_TARGETS) $(RECURSIVE_TARGETS): failcmd='exit 1'; \ for f in $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*) ;; \ *k*) failcmd='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; list='$(SUBDIRS)'; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-ax"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $$local_target) || eval $$failcmd; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) "$$target-ax" || exit 1; \ fi; test -z "$$fail" # Recursive cleanup is done in reverse, postfix order of ordinary build. .PHONY: mostlyclean-recursive .PHONY: clean-recursive .PHONY: distclean-recursive .PHONY: maintainer-clean-recursive mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcmd='exit 1'; \ for f in $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*) ;; \ *k*) failcmd='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; \ for subdir in $$list; do \ if test "$$subdir" != "."; then \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-ax"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $$local_target) || eval $$failcmd; \ done && test -z "$$fail" ## Rules to make DVI files from pamphlets .PRECIOUS: %.tex .PRECIOUS: %.dvi DVI_FILES = $(addprefix $(oa_target_docdir)/$(subdir), \ $(pamphlets:.pamphlet=.dvi)) pamphlets_SOURCES = $(addprefix $(srcdir)/, $(pamphlets)) .PHONY: dvi dvi-ax dvi: dvi-recursive dvi-ax: $(oa_build_texdir)/axiom.sty $(DVI_FILES) $(oa_target_docdir)/$(subdir)%.dvi: $(builddir)/%.dvi $(mkinstalldirs) $(oa_target_docdir)/$(subdir) $(INSTALL_DATA) $< $@ %.dvi: %.tex $(oa_build_texdir)/axiom.sty TEXINPUTS=".:$(oa_build_texdir):$${TEXINPUTS}"; \ export TEXINPUTS; \ BIBINPUTS=".:$(oa_build_texdir):$${TEXINPUTS}"; \ export BIBINPUTS; \ $(oa_hammer) --latex $< %.tex: $(srcdir)/%.pamphlet $(oa_hammer) --weave --output=$@ $< .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_srcdir)/config/var-def.mk \ $(top_srcdir)/config/setup-dep.mk \ $(abs_top_builddir)/config.status cd $(abs_top_builddir) && $(SHELL) ./config.status $(subdir)$@ $(top_builddir)/src/lisp/core.lisp: \ $(top_srcdir)/src/lisp/core.lisp.in \ $(top_builddir)/config.status cd $(top_builddir) && \ $(SHELL) ./config.status src/lisp/core.lisp ## Cleanup. ## Each Makefile is responsible of defining targets named ## mostlyclean-local, clean-local, and distclean-local. .PHONY: mostlyclean-generic mostlyclean-local mostlyclean mostlyclean-ax mostlyclean-generic: @-rm -f *~ @-rm -f *.log *.aux *.toc mostlyclean: mostlyclean-recursive mostlyclean-ax: mostlyclean-generic mostlyclean-local .PHONY: clean-generic clean-local clean clean-ax clean-generic: mostlyclean-generic @-rm -f *.tex *.dvi clean: clean-recursive clean-ax: clean-generic clean-local .PHONY: distclean-generic distclean-local distclean distclean-ax distclean-generic: clean-generic @-rm -rf $(oa_target_docdir)/$(subdir) distclean: distclean-recursive distclean-ax: distclean-generic distclean-local