]> 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 8407cb69e0ae6662b43f0f9572c003d9f9e436ad..45e9e8bfc711bee41702542ffd16242eabb842d9 100644 (file)
@@ -1,23 +1,39 @@
-.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\
+        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)
+       $(LOOP)
+else
+bin-clean:
+endif
+
+local-bin-clean: local-clean
+
 ifneq ($(strip $(depth)),.)
 dist:
        $(MAKE) -C $(depth) dist
 endif
 
 distclean: clean
-       $(LOOP)
        $(MAKE) local-distclean
 
 cvs-clean:
@@ -32,55 +48,47 @@ maintainerclean:
        $(MAKE) local-distclean
 
 
-# configure:
-#
+# This doesn't allow command-line options, is it really useful? -jm
 config:
        ./$(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"
+       @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 "\
-  all         update everything\n\
-  clean       remove all generated stuff in $(outdir)\n\
-  check       run self tests\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\
-  web-clean   clean \`out-www' directory\n\
-  TAGS        generate tagfiles\n\
-\n\
-\`make' may be invoked from any subdirectory.\n\
-Note that all commands recurse into subdirectories;\n\
-prepend \`local-' to restrict operation to the current directory.\n\
-Example: \`local-clean'.\n"
-
-# "
-local-help:
+       @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-dist: $(DIST_FILES) $(OUT_DIST_FILES) $(NON_ESSENTIAL_DIST_FILES)
-       mkdir -p $(distdir)/$(localdir)
-       $(LN) $(DIST_FILES:%=$(src-dir)/%) $(distdir)/$(localdir)
+local-help:
 
-       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
 
@@ -141,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
@@ -163,33 +170,36 @@ $(config_make): $(top-src-dir)/configure
        touch $@                # do something for multiple simultaneous configs.
 
 
-deb:
-       $(MAKE) -C $(depth)/debian
-       cd $(depth) && debuild
-
-diff:
-       $(PYTHON) $(step-bindir)/package-diff.py  --outdir=$(top-src-dir)/$(outdir) --package=$(top-src-dir) $(makeflags)
-       -ln -f $(depth)/$(outdir)/$(distname).diff.gz $(patch-dir)
-
-release:
-       $(PYTHON) $(step-bindir)/release.py --outdir=$(top-src-dir)/$(outdir) --package=$(top-src-dir)
-
+#### Documentation (website and tarball)
 
-################ website.
+# 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 $(depth)/scripts/build out=
+       $(MAKE) out=www WWW-1
+
+doc-clean:
        $(MAKE) out=www clean