]> git.donarmstrong.com Git - lilypond.git/blobdiff - stepmake/stepmake/generic-targets.make
Make distributed tarball from Git file list
[lilypond.git] / stepmake / stepmake / generic-targets.make
index 03074040805a8427b0abb87470e9708c37bb80ce..45e9e8bfc711bee41702542ffd16242eabb842d9 100644 (file)
@@ -1,19 +1,26 @@
-.PHONY : all clean bin-clean config default 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\
+        log-clean
 
 all:    default
        $(LOOP)
 
+bin:
+       $(MAKE) PACKAGE=$(PACKAGE) package=$(package) -C lily
+
 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:
@@ -27,7 +34,6 @@ dist:
 endif
 
 distclean: clean
-       $(LOOP)
        $(MAKE) local-distclean
 
 cvs-clean:
@@ -48,45 +54,41 @@ config:
 
 
 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\
-  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
+       @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 "  bin          check the lily directory and rebuild lilypond.exe if needed"
+       @echo "  exe          update all executables"
+       @echo "  help         this help"
+       @echo "  lib          update all libraries"
+       @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
 
@@ -147,10 +149,9 @@ installextradoc:
        -$(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
@@ -169,22 +170,36 @@ $(config_make): $(top-src-dir)/configure
        touch $@                # do something for multiple simultaneous configs.
 
 
-################ website.
+#### Documentation (website and tarball)
 
-local-WWW:
-local-WWW-post:
-web-install:
+# documentation is built in two stages,
+# plus WWW-post (only at toplevel)
+# see INSTALL for more information.
 
-WWW: local-WWW
+ifeq ($(out),www)
+local-WWW-1:
+local-WWW-2:
+WWW-post:
+
+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
 
-web-clean:
-       find -name out-www | xargs rm -rf
+local-doc:
+       $(MAKE) out=www local-WWW-1
+       $(MAKE) out=www local-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