X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=stepmake%2Fstepmake%2Fgeneric-targets.make;h=1b998b938dfc3eb6b2c0bbb13dc0aa1c06be10e3;hb=23108a9515e7f76b44fac0b323afb169d708bfa1;hp=2fe267ed44f180de2f311f0b4e7e788f88e212f6;hpb=085d664639efb22f5252d101b151f7cc8f9f86f5;p=lilypond.git diff --git a/stepmake/stepmake/generic-targets.make b/stepmake/stepmake/generic-targets.make index 2fe267ed44..1b998b938d 100644 --- a/stepmake/stepmake/generic-targets.make +++ b/stepmake/stepmake/generic-targets.make @@ -1,5 +1,6 @@ -.PHONY : all clean bin-clean config default dist doc exe help\ - html lib TAGS po +.PHONY : all clean bin-clean default dist exe help html lib TAGS\ + po doc doc-stage-1 WWW-1 WWW-2 WWW-post local-WWW-1 local-WWW-2\ + log-clean all: default $(LOOP) @@ -8,12 +9,15 @@ man: $(LOOP) clean: local-clean - -rm -rf "./$(outdir)" + -rm -rf $(outdir) $(LOOP) +log-clean: + find . -name "*.log" -delete + ifeq (,$(findstring metafont,$(STEPMAKE_TEMPLATES))) bin-clean: local-bin-clean - -rm -rf "./$(outdir)" + -rm -rf $(outdir) $(LOOP) else bin-clean: @@ -26,68 +30,43 @@ dist: $(MAKE) -C $(depth) dist endif -distclean: clean - $(LOOP) - $(MAKE) local-distclean - -cvs-clean: - $(MAKE) local-distclean - rm -rf out - rm -rf out-www - rm -f aclocal.m4 configure - -maintainerclean: - $(LOOP) - $(MAKE) local-maintainerclean - $(MAKE) local-distclean - - -# This doesn't allow command-line options, is it really useful? -jm -config: - ./$(src-depth)/configure - - generic-help: - @echo -e "\ -Makefile for $(PACKAGE_NAME) $(TOPLEVEL_VERSION)\n\ -Usage: make ["VARIABLE=value"]... [TARGET]\n\ -\n\ -Targets specific to current directory:\n" + @echo "Makefile for $(PACKAGE_NAME) $(TOPLEVEL_VERSION)" + @echo "Usage: make ["VARIABLE=value"]... [TARGET]" + @echo + @echo "Targets specific to current directory:" help: generic-help local-help - @echo -e "Generic targets:\n\ - all * update everything except website documentation\n\ - clean * remove all generated stuff in $(outdir)\n\ - bin-clean * same as clean, except that mf/out is preserved\n\ - default same as the empty target\n\ - exe update all executables\n\ - help this help\n\ - install * install programs and data (prefix=$(prefix))\n\ - uninstall* uninstall programs and data\n\ - lib update all libraries\n\ - web * update website in directory \`out-www'\n\ - web-install * install website documentation in (webdir=$(webdir))\n\ - and Info documentation with images\n\ - web-clean * clean \`out-www' directory\n\ - TAGS generate tagfiles\n\ -\n\ -\`make' may be invoked from any subdirectory.\n\ -Note that all commands marked with a star (*) recurse into subdirectories;\n\ -prepend \`local-' to restrict operation to the current directory.\n\ -Example: \`local-clean'." + @echo "Generic targets that recurse into subdirectories*:" + @echo " all update everything except documentation with images" + @echo " clean remove all generated stuff in $(outdir)" + @echo " bin-clean same as clean, except that mf/out is preserved" + @echo " doc update documentation with images in directory \`out-www'" + @echo " doc-stage-1 update only PDF and Info documentation in directory \`out-www'" + @echo " doc-clean clean \`out-www' directory" + @echo " install install programs and data (prefix=$(prefix))" + @echo " uninstall uninstall programs and data" + @echo " test build regression tests for the program and scripts" + @echo + @echo " *Note: Prepend \`local-' (eg. \`local-clean') to restrict" + @echo " any of the above commands to the current directory." + @echo + @echo "Other generic targets:" + @echo " default same as the empty target" + @echo " exe update all executables" + @echo " help this help" + @echo " lib update all libraries" + @echo " log-clean remove .log files" + @echo " TAGS generate tagfiles" + @echo + @echo "\`make' may be invoked from any subdirectory that contains a GNUmakefile." local-help: -local-dist: $(DIST_FILES) $(OUT_DIST_FILES) $(NON_ESSENTIAL_DIST_FILES) - mkdir -p $(distdir)/$(localdir) - $(LN) $(DIST_FILES:%=$(src-dir)/%) $(distdir)/$(localdir) - - case "$(NON_ESSENTIAL_DIST_FILES)x" in x) ;; *) \ - $(LN) $(NON_ESSENTIAL_DIST_FILES:%=$(src-dir)/%) $(distdir)/$(localdir);; \ - esac - case "$(OUT_DIST_FILES)x" in x) ;; *) \ - mkdir -p $(distdir)/$(localdir)/$(outdir); \ - $(LN) $(OUT_DIST_FILES) $(distdir)/$(localdir)/$(outdir);; \ +local-dist: $(OUT_DIST_FILES) + case "$(OUT_DIST_FILES)x" in x) ;; \ + *) mkdir -p $(distdir)/$(localdir)/$(outdir) && \ + $(LN) $(OUT_DIST_FILES) $(distdir)/$(localdir)/$(outdir);; \ esac $(foreach i, $(SUBDIRS), $(MAKE) top-src-dir=$(top-src-dir) distdir=$(distdir) localdir=$(localdir)/$(notdir $(i)) -C $(i) local-dist &&) true @@ -108,13 +87,15 @@ local-tags: $(ERROR_LOG) ; \ fi -$(outdir)/version.hh: $(depth)/VERSION $(config_make) $(step-bindir)/make-version.py - $(PYTHON) $(step-bindir)/make-version.py $< > $@ +# Don't use $(buildscript-dir)/make-version, because it is not known whether +# build process has visited scripts/build +$(outdir)/version.hh: $(depth)/VERSION $(config_make) $(top-src-dir)/scripts/build/make-version.py + $(PYTHON) $(top-src-dir)/scripts/build/make-version.py $< > $@ $(outdir)/config.hh: $(config_h) cp -p $< $@ -configure: configure.in aclocal.m4 +configure: configure.ac aclocal.m4 NOCONFIGURE=yes $(src-depth)/autogen.sh chmod +x configure @@ -122,8 +103,6 @@ local-clean: local-distclean: -local-maintainerclean: - install-strip: $(MAKE) INSTALLPY="$(INSTALLPY) -s" install @@ -169,21 +148,37 @@ $(config_make): $(top-src-dir)/configure touch $@ # do something for multiple simultaneous configs. -################ website. +#### Documentation (website and tarball) + +# documentation is built in two stages, +# plus WWW-post (only at toplevel) +# see INSTALL for more information. -local-WWW: -local-WWW-post: -web-install: +ifeq ($(out),www) +local-WWW-1: +local-WWW-2: +WWW-post: -WWW: local-WWW +WWW-1: local-WWW-1 $(LOOP) -WWW-post: local-WWW-post +WWW-2: local-WWW-2 $(LOOP) +endif + +doc: doc-stage-1 + $(MAKE) out=www WWW-2 + $(MAKE) out=www WWW-post -web: - $(MAKE) out=www WWW +local-doc: + $(MAKE) out=www local-WWW-1 + $(MAKE) out=www local-WWW-2 $(MAKE) out=www WWW-post -web-clean: +doc-stage-1: + $(MAKE) -C $(top-build-dir)/Documentation/po out=www messages + $(MAKE) -C $(depth)/scripts/build out= + $(MAKE) out=www WWW-1 + +doc-clean: $(MAKE) out=www clean