X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=stepmake%2Fstepmake%2Fgeneric-targets.make;h=a36faaeb2360a079498748fac63dcfe9c0f031cf;hb=cfc4cbf34569db6a6c8968694f86e36b206a9d05;hp=73715910e64c5ea862e0ce83ce024967b05f5475;hpb=e6f4d6e723924157b105f10afac9a0678798684c;p=lilypond.git diff --git a/stepmake/stepmake/generic-targets.make b/stepmake/stepmake/generic-targets.make index 73715910e6..a36faaeb23 100644 --- a/stepmake/stepmake/generic-targets.make +++ b/stepmake/stepmake/generic-targets.make @@ -1,5 +1,5 @@ -.PHONY : all clean config default diff dist doc exe help html lib TAGS\ - po +.PHONY : all clean bin-clean config default dist exe help html lib TAGS\ + po doc doc-stage-1 WWW-1 WWW-2 WWW-post local-WWW-1 local-WWW-2 all: default $(LOOP) @@ -7,81 +7,88 @@ all: default man: $(LOOP) -# be careful about deletion. clean: local-clean - -rm -f $(outdir)/* + -rm -rf "./$(outdir)" $(LOOP) +ifeq (,$(findstring metafont,$(STEPMAKE_TEMPLATES))) +bin-clean: local-bin-clean + -rm -rf "./$(outdir)" + $(LOOP) +else +bin-clean: +endif + +local-bin-clean: local-clean + ifneq ($(strip $(depth)),.) dist: - make -C $(depth) dist + $(MAKE) -C $(depth) dist endif -distclean: clean +distclean: clean $(LOOP) $(MAKE) local-distclean -maintainerclean: +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 -# configure: -# +# This doesn't allow command-line options, is it really useful? -jm config: - ./$(depth)/configure -# + ./$(src-depth)/configure -# target help: -# generic-help: @echo -e "\ Makefile for $(PACKAGE_NAME) $(TOPLEVEL_VERSION)\n\ Usage: make ["VARIABLE=value"]... [TARGET]\n\ \n\ -Targets:\n" +Targets specific to current directory:\n" -# urg -webdir = $(local_package_docdir) help: generic-help local-help - @echo -e "\ - all update everything\n\ - clean remove all generated stuff in $(outdir)\n\ - check run self tests\n\ + @echo -e "Generic targets:\n\ + all * update everything except documentation with images\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\ + doc * update documentation with images in directory \`out-www'\n\ + doc-stage-1 * update only PDF and Info documentation in directory \`out-www'\n\ + doc-clean * clean \`out-www' directory\n\ exe update all executables\n\ help this help\n\ - install install programs and data (prefix=$(prefix))\n\ + install * install programs and data (prefix=$(prefix))\n\ lib update all libraries\n\ - web update website in directory \`out-www'\n\ - web-install install website documentation in (webdir=$(webdir))\n\ - web-clean clean \`out-www' directory\n\ + uninstall* uninstall programs and data\n\ TAGS generate tagfiles\n\ \n\ \`make' may be invoked from any subdirectory.\n\ -Note that all commands recurse into subdirectories;\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'.\n" +Example: \`local-clean'." local-help: local-dist: $(DIST_FILES) $(OUT_DIST_FILES) $(NON_ESSENTIAL_DIST_FILES) mkdir -p $(distdir)/$(localdir) - $(LN) $(DIST_FILES) $(distdir)/$(localdir) + $(LN) $(DIST_FILES:%=$(src-dir)/%) $(distdir)/$(localdir) case "$(NON_ESSENTIAL_DIST_FILES)x" in x) ;; *) \ - $(LN) $(NON_ESSENTIAL_DIST_FILES) $(distdir)/$(localdir);; \ + $(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);; \ esac -# $(foreach i, $(SUBDIRS), $(MAKE) distdir=../$(distdir) localdir=$(localdir)/$(i) -C $(i) local-dist &&) true -# absolute for installed stepmake - $(foreach i, $(SUBDIRS), $(MAKE) topdir=$(topdir) distdir=$(distdir) localdir=$(localdir)/$(notdir $(i)) -C $(i) local-dist &&) true + $(foreach i, $(SUBDIRS), $(MAKE) top-src-dir=$(top-src-dir) distdir=$(distdir) localdir=$(localdir)/$(notdir $(i)) -C $(i) local-dist &&) true @@ -100,14 +107,14 @@ local-tags: $(ERROR_LOG) ; \ fi -$(outdir)/version.hh: $(depth)/VERSION $(config_make) +$(outdir)/version.hh: $(depth)/VERSION $(config_make) $(step-bindir)/make-version.py $(PYTHON) $(step-bindir)/make-version.py $< > $@ -$(outdir)/config.h: $(config_h) +$(outdir)/config.hh: $(config_h) cp -p $< $@ configure: configure.in aclocal.m4 - NOCONFIGURE=yes $(srcdir)/autogen.sh + NOCONFIGURE=yes $(src-depth)/autogen.sh chmod +x configure local-clean: @@ -117,9 +124,11 @@ local-distclean: local-maintainerclean: install-strip: - $(MAKE) INSTALL="$(INSTALL) -s" install + $(MAKE) INSTALLPY="$(INSTALLPY) -s" install -ifneq ($(strip $(depth)),.) +ifeq ($(strip $(depth)),.) +final-install: +else final-install: $(LOOP) @@ -135,17 +144,15 @@ uninstall: local-uninstall local-uninstall: installextradoc: - -$(INSTALL) -d $(prefix)/doc/$(package) - $(foreach i, $(EXTRA_DOC_FILES),\ - cp -r $(i) $(prefix)/doc/$(package) &&) true - + -$(INSTALLPY) -d $(DESTDIR)$(prefix)/doc/$(package) + cp -r $(EXTRA_DOC_FILES) $(prefix)/doc/$(package) -include $(outdir)/dummy.dep $(wildcard $(outdir)/*.dep) # expect a warning here +-include $(outdir)/dummy.dep $(wildcard $(outdir)/*.dep) $(outdir)/dummy.dep: - @echo please ignore innocent warning about dummy.dep -mkdir -p $(outdir) touch $(outdir)/dummy.dep + echo '*' > $(outdir)/.gitignore check: local-check $(LOOP) @@ -153,38 +160,39 @@ check: local-check local-check: # ugh. ugh ugh ugh -$(config_make): $(topdir)/configure +$(config_make): $(top-src-dir)/configure @echo "************************************************************" @echo "configure changed! You should probably reconfigure manually." @echo "************************************************************" - (cd $(builddir); ./config.status) + (cd $(top-build-dir); ./config.status) touch $@ # do something for multiple simultaneous configs. -deb: - $(MAKE) -C $(depth)/debian - cd $(depth) && debuild - -diff: - $(PYTHON) $(step-bindir)/package-diff.py --outdir=$(topdir)/$(outdir) --package=$(topdir) $(makeflags) - -ln -f $(depth)/$(outdir)/$(distname).diff.gz $(patch-dir) - -release: - $(PYTHON) $(step-bindir)/release.py --outdir=$(topdir)/$(outdir) --package=$(topdir) +#### Documentation (website and tarball) +# documentation is built in two stages, +# plus WWW-post (only at toplevel) +# see INSTALL for more information. -################ website. +ifeq ($(out),www) +local-WWW-1: +local-WWW-2: +WWW-post: -local-WWW: -local-WWW-post: -web-install: - -WWW: local-WWW +WWW-1: local-WWW-1 $(LOOP) -WWW-post: local-WWW-post +WWW-2: local-WWW-2 $(LOOP) +endif -web: - $(MAKE) out=www WWW +doc: doc-stage-1 + $(MAKE) out=www WWW-2 $(MAKE) out=www WWW-post + +doc-stage-1: + $(MAKE) -C $(depth)/scripts/build out= + $(MAKE) out=www WWW-1 + +doc-clean: + $(MAKE) out=www clean