X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=GNUmakefile.in;h=6f0e4f4a7b7cbcd7eb37404bbd0504b544d260ac;hb=c20fff645e325d392d2588721144f4204d0ef9da;hp=2cd9723edc0191ab2f90c469be18b1c1d8148f8f;hpb=25e22b5ae7e6c1c5a8ffa82fd8217909ef3fa124;p=lilypond.git diff --git a/GNUmakefile.in b/GNUmakefile.in index 2cd9723edc..6f0e4f4a7b 100644 --- a/GNUmakefile.in +++ b/GNUmakefile.in @@ -6,7 +6,7 @@ SUBDIRS = python scripts \ flower lily \ mf ly \ tex ps scm \ - po make \ + po \ elisp vim \ input \ stepmake $(documentation-dir) @@ -26,11 +26,9 @@ IN_FILES := $(call src-wildcard,*.in) RELEASE_FILES = ChangeLog RELEASE-COMMIT RELEASE_OUT_FILES = $(RELEASE_FILES:%=$(outdir)/%) OUT_DIST_FILES += $(RELEASE_OUT_FILES) -EXTRA_DIST_FILES = VERSION .gitignore .mailmap \ - $(README_FILES) $(SCRIPTS) $(IN_FILES) INSTALLATION_DIR=$(local_lilypond_datadir) INSTALLATION_FILES=$(config_make) VERSION - +GENERATED_BUILD_FILES=configure aclocal.m4 autogen.sh # bootstrap stepmake: # STEPMAKE_TEMPLATES=toplevel po install @@ -40,7 +38,35 @@ include $(depth)/make/stepmake.make .PHONY: test info website -local-dist: refresh-release-files dist-toplevel-txt-files +dist: local-dist $(GENERATED_BUILD_FILES) top-doc refresh-release-files .gitfilelist + @cd $(top-src-dir) && \ + if [[ `find . -name .git` && (`git diff HEAD` || `git status | grep -i "untracked"`) ]]; \ + then echo "*** dist must been rolled on a clean git tree;"; \ + echo "uncommitted changes or untracked files detected, aborting."; \ + exit 1; fi + rm -rf $(distdir) + $(MAKE) local-dist $(distdir) + chmod -R a+r $(distdir) + chmod a+x `find $(distdir) -type d -print` + $(LN) $(TOPDOC_TXT_FILES) $(distdir) + $(LN) $(GENERATED_BUILD_FILES:%=$(src-dir)/%) .gitfilelist $(distdir) + cd $(top-src-dir) && xargs $(buildscript-dir)/mass-link hard . $(distdir) <$(top-build-dir)/.gitfilelist + if [[ `find $(top-src-dir) -name .git` ]]; then \ + COMMIT_DATE=`git --git-dir=$(top-src-dir)/.git log -1 --format=%cD`; \ + find $(distdir) | xargs touch -d "$$COMMIT_DATE"; fi + (cd ./$(depth)/$(outdir); $(TAR) -cf - --owner=0 --group=0 $(DIST_NAME) | gzip -9 > $(DIST_NAME).tar.gz) + rm -rf $(distdir) + +ifneq ($(shell find $(top-src-dir) -name .git),) +.gitfilelist: $(top-src-dir)/.git/index + cd $(top-src-dir) && git ls-files >$(top-build-dir)/$@ +local-clean-filelist: + rm -f .gitfilelist +else +.gitfilelist: $(src-dir)/.gitfilelist + cp $< $@ +local-clean-filelist: +endif all: $(outdir)/VERSION @@ -60,20 +86,16 @@ refresh-release-files: $(MAKE) $(RELEASE_OUT_FILES) python-modules: + $(MAKE) -C scripts/build $(MAKE) -C python top-doc: python-modules -local-clean: local-clean-ChangeLog +local-clean: local-clean-ChangeLog local-clean-filelist local-clean-ChangeLog: rm -f ChangeLog -dist-toplevel-txt-files: top-doc - -mkdir -p $(distdir) - ln $(TOPDOC_TXT_FILES) $(distdir) - ln $(top-src-dir)/stepmake/aclocal.m4 $(distdir) - info: $(foreach d, $(INFO_DIRECTORIES),$(MAKE) -C $(d) out=www info && ) true @@ -102,7 +124,7 @@ ifeq ($(out),www) # installed in non-recursing target from TOP-SRC-DIR install-WWW: -$(INSTALL) -m 755 -d $(DESTDIR)$(webdir) - rsync -rl --exclude='*.signature' $(outdir)/offline-root $(DESTDIR)$(webdir) + rsync -rl --exclude='*.signature' $(outdir)/offline-root/ $(DESTDIR)$(webdir) $(MAKE) -C Documentation omf-local-install install-info-WWW: @@ -120,26 +142,21 @@ WEB_TARGETS = offline WEB_ROOT_FILES = $(WEB_TARGETS:%=$(outdir)/%-root/index.html) -WEB_EXAMPLE_FILES = $(wildcard input/$(outdir)/*.ly) \ - $(wildcard input/*/$(outdir)/*.ly) \ - $(wildcard input/*/*/$(outdir)/*.ly) - WEB_TRACKED_FILES = $(filter-out $(outdir)/index.html, \ $(shell bash -O nullglob -c "echo $(outdir)/*.{midi,html,pdf,png,jpg,jpeg,txt,ly,ily,signature,css,zip,js,idx,php}")) \ $(shell bash -O nullglob -c "echo input/$(outdir)/*.{midi,html,pdf,png,jpg,jpeg,txt,ly,ily,signature,css,zip,js,idx,php}") \ $(shell bash -O nullglob -c "echo input/*/$(outdir)/*.{midi,html,pdf,png,jpg,jpeg,txt,ly,ily,signature,css,zip,js,idx,php}") \ + $(shell bash -O nullglob -c "echo input/*/*/$(outdir)/*.{midi,html,pdf,png,jpg,jpeg,txt,ly,ily,signature,css,zip,js,idx,php}") \ + $(shell bash -O nullglob -c "echo input/regression/lilypond-book/$(outdir)/*.{info,tex}") \ $(shell bash -O nullglob -c "echo Documentation/$(outdir)/*.{midi,html,pdf,png,jpg,jpeg,txt,ly,ily,signature,css,zip,js,idx,php}") \ $(shell bash -O nullglob -c "echo Documentation/$(outdir)/*/*.{midi,html,pdf,png,jpg,jpeg,txt,ly,ily,signature,css,zip,js,idx,php}") -WWW-post: $(top-build-dir)/.htaccess $(outdir)/examples.html $(WEB_ROOT_FILES) +WWW-post: $(top-build-dir)/.htaccess $(WEB_ROOT_FILES) # need UTF8 setting in case this is hosted on a website. $(top-build-dir)/.htaccess: echo -e 'AddDefaultCharset utf-8\nAddCharset utf-8 .html\nAddCharset utf-8 .en\nAddCharset utf-8 .nl\nAddCharset utf-8 .txt\n' > $(top-build-dir)/.htaccess -$(outdir)/examples.html: $(WEB_EXAMPLE_FILES) - $(buildscript-dir)/mutopia-index -o $(outdir)/examples.html input/ - $(outdir)/offline-root/index.html: $(WEB_TRACKED_FILES) $(buildscript-dir)/www_post $(PACKAGE_NAME) $(TOPLEVEL_VERSION) $(outdir) offline find $(outdir)/offline-root -type l | xargs rm -f @@ -289,9 +306,32 @@ test: $(MAKE) -C input/regression/abc2ly out=test local-test $(MAKE) -C input/regression/lilypond-book out=test local-test -test-baseline: +ifndef BASELINE_COMMIT +BASELINE_COMMIT:=HEAD +endif + +ifdef LILYPOND_BASELINES +BASELINE_ARCHIVE:=$(LILYPOND_BASELINES)/baseline-$(shell git rev-list -1 $(BASELINE_COMMIT)).tar.gz + +test-baseline: $(BASELINE_ARCHIVE) + tar xzf $(BASELINE_ARCHIVE) + $(MAKE) test-snippets-clean + +$(BASELINE_ARCHIVE): + $(MAKE) test-baseline-create + tar czf $(BASELINE_ARCHIVE) input/regression/out-test-baseline \ + input/regression/midi/out-test-baseline \ + input/regression/musicxml/out-test-baseline \ + input/regression/abc2ly/out-test-baseline \ + input/regression/lilypond-book/out-test-baseline +else +test-baseline: test-baseline-create + $(MAKE) test-snippets-clean +endif + +test-baseline-create: @if test -d .git ; then \ - $(if $(shell git diff), echo "commit before base lining" && false,true) ; \ + $(if $(shell git diff $(BASELINE_COMMIT)), echo "commit before base lining" && false,true) ; \ fi $(MAKE) $(MAKE) test @@ -300,13 +340,11 @@ test-baseline: $(MAKE) out=test -C input/regression/musicxml local-test-baseline $(MAKE) out=test -C input/regression/abc2ly local-test-baseline $(MAKE) out=test -C input/regression/lilypond-book local-test-baseline - $(MAKE) test-snippets-clean - local-check: test rm -rf $(RESULT_DIR) mkdir -p $(RESULT_DIR) - $(buildscript-dir)/output-distance --create-images --output-dir $(RESULT_DIR) \ + $(buildscript-dir)/output-distance --local-datadir --create-images --output-dir $(RESULT_DIR) \ input/regression/out-test-baseline input/regression/out-test \ input/regression/midi/out-test-baseline input/regression/midi/out-test @find input ly -name '*.ly' -print |grep -v 'out.*/' | xargs grep '\\version' -L | grep -v "standard input" |sed 's/^/**** Missing version: /g'