Mercurial > gub
view lilypond.make @ 3503:8673321a0a06
change platform order
author | Han-Wen Nienhuys <hanwen@lilypond.org> |
---|---|
date | Thu, 24 May 2007 23:14:22 -0300 |
parents | 5b3bd5e06c63 |
children | 8c09f7134032 |
line wrap: on
line source
# -*-Makefile-*- .PHONY: all default distclean download TAGS .PHONY: cygwin debian debian-arm .PHONY: darwin-ppc darwin-x86 freebsd4-x86 freebsd6-x86 linux-x86 mingw .PHONY: bootstrap-download bootstrap .PHONY: unlocked-update-versions update-versions download print-success .PHONY: cygwin-libtool cygwin-libtool-installer cygwin-fontconfig .PHONY: cygwin-fontconfig-installer cygwin-guile cygwin-guile-installer .PHONY: cygwin-lilypond cygwin-lilypond-installer upload-setup-ini darwin-ppc .PHONY: debian linux-ppc mingw mipsel clean realclean clean-distccd .PHONY: local-distcc cross-compilers cross-distccd native-distccd .PHONY: bootstrap-git download-local local local-cross-tools doc-clean .PHONY: unlocked-doc-clean unlocked-doc-build unlocked-info-man-build .PHONY: unlocked-doc-export doc-export unlocked-dist-check dist-check default: all PACKAGE = lilypond ALL_PLATFORMS=debian debian-arm freebsd-x86 linux-x86 linux-64 mingw debian-mipsel linux-ppc PLATFORMS=linux-x86 darwin-ppc linux-64 linux-ppc freebsd-x86 mingw darwin-x86 ifneq ($(BUILD_PLATFORM),linux-64) # odcctools do not build on linux-64 ALL_PLATFORMS+=darwin-ppc darwin-x86 # nsis does not build on linux-64, but we can build everything except for # the installer... #ALL_PLATFORMS+=mingw ALL_PLATFORMS+=darwin-ppc darwin-x86 endif ## want cygwin to be the last, because it is not a core lilypond platform. ALL_PLATFORMS += cygwin PLATFORMS += cygwin LILYPOND_CVS_REPODIR=downloads/lilypond.cvs LILYPOND_GITDIR=downloads/lilypond.git LILYPOND_REPODIR=downloads/lilypond # for GIT LILYPOND_BRANCH=master # LILYPOND_BRANCH=stable/2.10 MAKE += -f lilypond.make LILYPOND_BRANCH_FILEIFIED=$(subst /,--,$(LILYPOND_BRANCH)) LILYPOND_LOCAL_BRANCH=$(LILYPOND_BRANCH_FILEIFIED)-git.sv.gnu.org-lilypond.git GUILE_LOCAL_BRANCH=branch_release-1-8-lilypond.org-vc-guile.git GUB_OPTIONS =\ --branch lilypond=$(LILYPOND_BRANCH):$(LILYPOND_LOCAL_BRANCH) GPKG_OPTIONS =\ --branch guile=$(GUILE_LOCAL_BRANCH) \ --branch lilypond=$(LILYPOND_LOCAL_BRANCH) INSTALLER_BUILDER_OPTIONS =\ --branch guile=$(GUILE_LOCAL_BRANCH) \ --branch lilypond=$(LILYPOND_LOCAL_BRANCH) include gub.make NATIVE_TARGET_DIR=$(CWD)/target/$(BUILD_PLATFORM) SET_LOCAL_PATH=PATH=$(CWD)/target/local/usr/bin:$(PATH) LILYPOND_VERSIONS = uploads/lilypond.versions DOC_LIMITS=ulimit -m 256000 && ulimit -d 256000 && ulimit -v 384000 include compilers.make ################ unlocked-update-versions: python gub/versiondb.py --dbfile $(LILYPOND_VERSIONS) --download --platforms="$(PLATFORMS)" python gub/versiondb.py --dbfile uploads/fontconfig.versions --download --platforms="$(PLATFORMS)" python gub/versiondb.py --dbfile uploads/guile.versions --download --platforms="$(PLATFORMS)" python gub/versiondb.py --dbfile uploads/libtool.versions --download --platforms="$(PLATFORMS)" update-versions: $(PYTHON) gub/with-lock.py --skip $(LILYPOND_VERSIONS).lock $(MAKE) unlocked-update-versions download: $(foreach p, $(PLATFORMS), $(call INVOKE_GUB,$(p)) --online --stage=download lilypond && ) true $(MAKE) downloads/genini rm -f target/*/status/lilypond* rm -f log/lilypond-$(LILYPOND_VERSION)*.*.test.pdf ## should be last, to incorporate changed VERSION file. $(MAKE) update-versions all: native dist-check doc-build doc-export $(OTHER_PLATFORMS) print-success platforms: $(PLATFORMS) print-success: python test-lily/upload.py --branch $(LILYPOND_LOCAL_BRANCH) @echo "" @echo "To upload, run " @echo @echo " python test-lily/upload.py --branch $(LILYPOND_LOCAL_BRANCH) --execute" @echo native: local $(BUILD_PLATFORM) debian-arm: $(call BUILD,$@,lilypond) docball = uploads/lilypond-$(DIST_VERSION)-$(DOC_BUILDNUMBER).documentation.tar.bz2 $(docball): $(MAKE) doc # Regular cygwin stuff cygwin: cygwin-libtool cygwin-libtool-installer doc cygwin-lilypond cygwin-lilypond-installer cygwin-all: cygwin-libtool cygwin-libtool-installer cygwin-guile cygwin-guile-installer $(docball) cygwin-lilypond cygwin-lilypond-installer cygwin-fontconfig cygwin-fontconfig-installer cygwin-libtool: rm -f uploads/cygwin/setup.ini $(call INVOKE_GUB,cygwin) --build-source libtool cygwin-libtool-installer: $(CYGWIN_PACKAGER) libtool cygwin-fontconfig: rm -f uploads/cygwin/setup.ini rm -rf target/cygwin/ $(call INVOKE_GUP, cygwin) install gcc $(call INVOKE_GUB,cygwin) --build-source fontconfig cygwin-fontconfig-installer: $(CYGWIN_PACKAGER) fontconfig cygwin-guile: $(call INVOKE_GUB,cygwin) --build-source libtool guile cygwin-guile-installer: $(CYGWIN_PACKAGER) guile cygwin-lilypond: $(call INVOKE_GUB,cygwin) --build-source libtool guile fontconfig lilypond cygwin-lilypond-installer: $(CYGWIN_PACKAGER) --branch lilypond=$(LILYPOND_LOCAL_BRANCH) lilypond upload-setup-ini: cd uploads/cygwin && ../../downloads/genini $$(find release -mindepth 1 -maxdepth 2 -type d) > setup.ini downloads/genini: wget --output-document $@ 'http://cygwin.com/cgi-bin/cvsweb.cgi/~checkout~/genini/genini?rev=1.2&content-type=text/plain&cvsroot=cygwin-apps&only_with_tag=HEAD' chmod +x $@ darwin-ppc: $(call BUILD,$@,lilypond) darwin-x86: $(call BUILD,$@,lilypond) debian: $(call BUILD,$@,lilypond) freebsd4-x86: $(call BUILD,$@,lilypond) freebsd6-x86: $(call BUILD,$@,lilypond) freebsd-x86: $(call BUILD,$@,lilypond) linux-x86: $(call BUILD,$@,lilypond) linux-ppc: $(call BUILD,$@,lilypond) linux-64: $(call BUILD,$@,lilypond) mingw: $(call BUILD,$@,lilypond) mipsel: $(call BUILD,$@,lilypond) clean: rm -rf $(foreach p, $(PLATFORMS), target/*$(p)* ) realclean: rm -rf $(foreach p, $(PLATFORMS), uploads/$(p)/* uploads/$(p)-cross/* target/*$(p)* ) ################################################################ # compilers and tools locals =\ automake\ distcc\ expat\ flex\ fontforge\ freetype\ gettext\ git\ guile\ icoutils\ mftrace\ netpbm\ pkg-config\ potrace\ python\ texinfo ### # document why this is in the bootstrap # -guile: bootstrap guile # -gettext: AM_GNU_GETTEXT # -mftrace, fontforge, potrace: lilypond # -texinfo: need 4.8 for lily # -automake: prevent version confusion # -pkg-config: nonstandard (eg. MacOS) # -icoutils: lilypond mingw icons # -distcc: nonstandard (eg. MacOS) # -freetype: for bootstrapping fontconfig # -imagemagick: for lilypond web site # -netpbm: website download-local: $(GUB) $(LOCAL_GUB_OPTIONS) \ -p local --stage=download \ $(locals) nsis local: cd librestrict && make -f GNUmakefile $(GUB) $(LOCAL_GUB_OPTIONS) -p local \ $(locals) $(MAKE) local-cross-tools ################################################################ # docs NATIVE_ROOT=$(NATIVE_TARGET_DIR)/gubfiles/installer-lilypond-$(LILYPOND_LOCAL_BRANCH) DOC_LOCK=$(NATIVE_ROOT).lock NATIVE_LILY_BUILD=$(NATIVE_TARGET_DIR)/gubfiles/build/lilypond-$(LILYPOND_LOCAL_BRANCH) NATIVE_LILY_SRC=$(NATIVE_TARGET_DIR)/gubfiles/src/lilypond-$(LILYPOND_LOCAL_BRANCH) NATIVE_BUILD_COMMITTISH=$(shell cat downloads/lilypond.git/refs/heads/$(LILYPOND_LOCAL_BRANCH)) DIST_VERSION=$(shell cat $(NATIVE_LILY_BUILD)/out/VERSION) DOC_BUILDNUMBER=$(shell $(PYTHON) gub/versiondb.py --build-for $(DIST_VERSION)) DOC_RELOCATION = \ LILYPOND_EXTERNAL_BINARY="$(NATIVE_ROOT)/usr/bin/lilypond" \ PATH=$(CWD)/target/local/usr/bin:$(NATIVE_ROOT)/usr/bin:$$PATH \ GS_LIB=$(wildcard $(NATIVE_ROOT)/usr/share/ghostscript/*/lib) \ MALLOC_CHECK_=2 \ LD_LIBRARY_PATH=$(NATIVE_ROOT)/usr/lib SIGNATURE_FUNCTION=uploads/signatures/$(1).$(NATIVE_BUILD_COMMITTISH) doc: native doc-build doc-clean: $(PYTHON) gub/with-lock.py --skip $(DOC_LOCK) $(MAKE) unlocked-doc-clean doc-build: $(PYTHON) gub/with-lock.py --skip $(DOC_LOCK) $(MAKE) cached-doc-build unlocked-doc-clean: make -C $(NATIVE_TARGET_DIR)/gubfiles/build/lilypond-$(LILYPOND_LOCAL_BRANCH) \ DOCUMENTATION=yes web-clean rm -f $(call SIGNATURE_FUNCTION,cached-doc-build) rm -f $(call SIGNATURE_FUNCTION,cached-doc-export) cached-doc-build cached-dist-check cached-doc-export: -mkdir uploads/signatures/ if test ! -f $(call SIGNATURE_FUNCTION,$@) ; then \ $(MAKE) $(subst cached,unlocked,$@) \ && touch $(call SIGNATURE_FUNCTION,$@) ; fi unlocked-doc-build: $(GPKG) -p $(BUILD_PLATFORM) remove lilypond ## force update of srcdir. $(GUB) --branch lilypond=$(LILYPOND_BRANCH):$(LILYPOND_LOCAL_BRANCH) \ -p $(BUILD_PLATFORM) --stage untar lilypond unset LILYPONDPREFIX LILYPOND_DATADIR \ && $(DOC_RELOCATION) \ make -C $(NATIVE_LILY_BUILD) \ DOCUMENTATION=yes do-top-doc unset LILYPONDPREFIX LILYPOND_DATADIR \ && $(DOC_LIMITS) \ && $(DOC_RELOCATION) \ make -C $(NATIVE_LILY_BUILD) \ DOCUMENTATION=yes \ WEB_TARGETS="offline online" \ CPU_COUNT=$(LILYPOND_WEB_CPU_COUNT) web $(if $(DOC_BUILDNUMBER),true,false) ## check if we have a build number $(if $(DIST_VERSION),true,false) ## check if we have a version number tar --exclude '*.signature' -C $(NATIVE_LILY_BUILD)/out-www/offline-root \ -cjf $(CWD)/uploads/lilypond-$(DIST_VERSION)-$(DOC_BUILDNUMBER).documentation.tar.bz2 . tar --exclude '*.signature' -C $(NATIVE_LILY_BUILD)/out-www/online-root \ -cjf $(CWD)/uploads/lilypond-$(DIST_VERSION)-$(DOC_BUILDNUMBER).webdoc.tar.bz2 . unlocked-info-man-build: unset LILYPONDPREFIX LILYPOND_DATADIR \ && ulimit -m 256000 \ && $(DOC_RELOCATION) \ make -C $(NATIVE_LILY_BUILD)/Documentation/user \ DOCUMENTATION=yes out=www info $(DOC_RELOCATION) make DESTDIR=$(NATIVE_LILY_BUILD)/out-info-man \ -C $(NATIVE_LILY_BUILD)/Documentation/user out=www install-info ## On darwin, all our libraries have the wrong names; ## overriding with DYLD_LIBRARY_PATH doesn't work, ## as the libs in system/ are stubs. ifneq ($(BUILD_PLATFORM),darwin-ppc) ## FIXME: #! guile script is barfing. -mkdir $(NATIVE_LILY_BUILD)/out-info-man touch $(NATIVE_LILY_BUILD)/scripts/out/lilypond-invoke-editor.1 $(if $(DOC_BUILDNUMBER),true,false) ## check if we have a build number $(DOC_RELOCATION) make DESTDIR=$(NATIVE_LILY_BUILD)/out-info-man \ -C $(NATIVE_LILY_BUILD)/ DOCUMENTATION=yes CROSS=no \ install-help2man endif tar -C $(NATIVE_LILY_BUILD)/out-info-man/ \ -cjf $(CWD)/uploads/lilypond-$(DIST_VERSION)-$(DOC_BUILDNUMBER).info-man.tar.bz2 . unlocked-doc-export: PYTHONPATH=$(NATIVE_LILY_BUILD)/python/out \ $(PYTHON) test-lily/rsync-lily-doc.py --recreate \ --version-file $(NATIVE_LILY_BUILD)/out/VERSION \ --output-distance \ $(NATIVE_LILY_SRC)/buildscripts/output-distance.py $(NATIVE_LILY_BUILD)/out-www/online-root doc-export: $(PYTHON) gub/with-lock.py --skip $(DOC_LOCK) $(MAKE) cached-doc-export unlocked-dist-check: $(SET_LOCAL_PATH) \ $(PYTHON) test-lily/dist-check.py --branch $(LILYPOND_LOCAL_BRANCH) --repository $(LILYPOND_REPODIR) $(NATIVE_LILY_BUILD) cp $(NATIVE_LILY_BUILD)/out/lilypond-$(DIST_VERSION).tar.gz uploads/ dist-check: $(PYTHON) gub/with-lock.py --skip $(NATIVE_LILY_BUILD).lock \ $(MAKE) cached-dist-check