[Libreoffice-commits] .: Makefile Makefile.top

Michael Stahl mst at kemper.freedesktop.org
Tue May 15 05:57:21 PDT 2012


 Makefile     |  528 ++---------------------------------------------------------
 Makefile.top |  504 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 524 insertions(+), 508 deletions(-)

New commits:
commit b0b92d1e5f2097652b12252a32cea40a5868e20c
Author: Michael Stahl <mstahl at redhat.com>
Date:   Tue May 15 14:47:37 2012 +0200

    split up top-level Makefile:
    
    The top-level Makefile invokes autogen.sh (and thereby configure) in an
    environment which is polluted by config_host.mk; this causes at least
    the problem that following a "make clean", the bootstrap script will not
    copy dmake to its destination because BUILD_DMAKE=NO is set from
    config_host.mk, which is apparently due to the PATH being polluted from
    config_host.mk, so configure finds the dmake in the build tree.
    
    So split up top-level Makefile into Makefile, which invokes autogen.sh,
    and Makefile.top, which does everything else.

diff --git a/Makefile b/Makefile
index 88dad31..8edbef1 100644
--- a/Makefile
+++ b/Makefile
@@ -1,525 +1,37 @@
 # -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# Copyright 2012 LibreOffice contributors.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
 
-.PHONY : all bootstrap build check clean clean-build clean-host dev-install distclean distro-pack-install docs fetch findunusedcode id install install-strip subsequentcheck tags
-
+# must not be empty so we can have a target for it
 ifeq ($(MAKECMDGOALS),)
 MAKECMDGOALS:=all
 endif
 
-all: build
-
 SHELL=/usr/bin/env bash
 SRCDIR:=$(patsubst %/,%,$(dir $(realpath $(firstword $(MAKEFILE_LIST)))))
 
-ifeq ($(gb_Side),)
-gb_Side:=host
-endif
-
-include $(SRCDIR)/config_$(gb_Side).mk
-
-ifeq ($(GMAKE_OPTIONS),)
-ifeq ($(verbose),)
-export GMAKE_OPTIONS:=-rs
-else
-export GMAKE_OPTIONS:=-r
-endif
-endif
-
-gbuild_modules:= \
-MathMLDTD\
-Mesa\
-UnoControls\
-accessibility\
-animations\
-apple_remote\
-avmedia\
-basctl\
-basebmp\
-basegfx\
-basic\
-bean\
-binaryurp\
-canvas\
-chart2\
-clucene\
-codemaker\
-comphelper\
-configmgr\
-cppcanvas\
-cppu\
-cppuhelper\
-cpputools\
-cui\
-dbaccess\
-desktop\
-drawinglayer\
-dtrans\
-editeng\
-embeddedobj\
-embedserv\
-eventattacher\
-extensions\
-fileaccess\
-filter\
-forms\
-formula\
-fpicker\
-framework\
-hwpfilter\
-i18npool\
-i18nutil\
-idl\
-idlc\
-io\
-javaunohelper\
-jurt\
-jvmaccess\
-jvmfwk\
-l10ntools\
-lingucomponent\
-linguistic\
-lotuswordpro\
-nlpsolver\
-np_sdk\
-o3tl\
-offapi\
-officecfg\
-oovbaapi\
-oox\
-package\
-packimages\
-padmin\
-psprint_config\
-qadevOOo\
-regexp\
-registry\
-reportdesign\
-rdbmaker\
-ridljar\
-rsc\
-sal\
-salhelper\
-sane\
-sax\
-sc\
-scaddins\
-sccomp\
-scripting\
-sd\
-sdext\
-sfx2\
-slideshow\
-smoketest\
-sot\
-starmath\
-stoc\
-store\
-svl\
-svtools\
-svx\
-sw\
-swext\
-tail_build\
-test\
-toolkit\
-tools\
-translations\
-twain\
-ucb\
-ucbhelper\
-udkapi\
-unixODBC\
-unodevtools\
-unoil\
-unotest\
-unotools\
-unoxml\
-ure\
-uui\
-vbahelper\
-vcl\
-wizards\
-writerfilter\
-writerperfect\
-xmerge\
-xml2cmp\
-xmlhelp\
-xmloff\
-xmlreader\
-xmlscript\
-xmlsecurity\
-
-dmake_modules:=\
-afms\
-apache-commons\
-autodoc\
-beanshell\
-berkeleydb\
-binfilter \
-boost\
-bridges\
-cairo\
-cli_ure\
-connectivity\
-cosv\
-cppunit\
-crashrep\
-ct2n\
-curl\
-dictionaries \
-epm\
-expat\
-external\
-extras\
-fontconfig\
-freetype\
-gdk-pixbuf\
-gettext\
-glib\
-graphite\
-helpcontent2 \
-hsqldb\
-hunspell\
-hyphen\
-icc\
-icu\
-instsetoo_native\
-jfreereport\
-jpeg\
-languagetool\
-libcdr\
-libcmis\
-libcroco\
-libexttextcat\
-libgsf\
-libpng\
-librsvg\
-libvisio\
-libwpd\
-libwpg\
-libwps\
-libxml2\
-libxmlsec\
-libxslt\
-lcms2\
-lpsolve\
-lucene\
-mdds\
-migrationanalysis\
-more_fonts\
-moz\
-mysqlc\
-mysqlcppconn\
-mythes\
-neon\
-nss\
-odk\
-openssl\
-pango\
-postgresql\
-postprocess\
-python\
-pyuno\
-readlicense_oo\
-redland\
-remotebridges\
-reportbuilder\
-rhino\
-saxon\
-scp2\
-setup_native\
-shell\
-solenv\
-soltools\
-stax\
-stlport\
-sysui\
-testtools\
-tomcat\
-udm\
-vigra\
-x11_extensions\
-xpdf\
-xsltml\
-zlib\
-
-gb_TAILBUILDMODULES := $(shell make -f $(SRCDIR)/tail_build/Makefile showmodules)
-export gb_TAILBUILDTARGET=all slowcheck
-
-define gbuild_module_rules
-.PHONY: $(1) $(1).all $(1).clean $(1).deliver
-
-$(1): bootstrap fetch
-	cd $(1) && $(GNUMAKE) -j $(GMAKE_PARALLELISM) $(GMAKE_OPTIONS) gb_PARTIALBUILD=T
-
-ifeq ($(filter $(1),$(gb_TAILBUILDMODULES)),)
-$(1).all: bootstrap fetch
-	cd $(1) && unset MAKEFLAGS && \
-        $(SOLARENV)/bin/build.pl -P$(BUILD_NCPUS) --all -- -P$(GMAKE_PARALLELISM)
-else 
-$(1).all: bootstrap fetch
-	cd tail_build && unset MAKEFLAGS && \
-	export gb_TAILBUILDTARGET="$(WORKDIR)/Module/$(1) $(WORKDIR)/Module/check/$(1) $(WORKDIR)/Module/slowcheck/$(1)" && \
-        $(SOLARENV)/bin/build.pl -P$(BUILD_NCPUS) --all -- -P$(GMAKE_PARALLELISM)
-endif
-
-$(1).clean:
-	cd $(1) && $(GNUMAKE) -j $(GMAKE_PARALLELISM) $(GMAKE_OPTIONS) clean gb_PARTIALBUILD=T
-
-$(1).subsequentcheck:
-	cd $(1) && $(GNUMAKE) -j $(GMAKE_PARALLELISM) $(GMAKE_OPTIONS) subsequentcheck gb_PARTIALBUILD=T
-
-$(1).deliver:
-	@true
-
-endef
-
-define gbuild_modules_rules
-$(foreach m,$(1),$(call gbuild_module_rules,$(m)))
-endef
-
-define dmake_module_rules
-.PHONY: $(1) $(1).all $(1).deliver $(1).clean
-
-$(1): bootstrap fetch
-	cd $(1) && unset MAKEFLAGS && \
-        $(SOLARENV)/bin/build.pl -P$(BUILD_NCPUS) -- -P$(GMAKE_PARALLELISM)
-
-$(1).all: bootstrap fetch
-	cd $(1) && unset MAKEFLAGS && \
-        $(SOLARENV)/bin/build.pl -P$(BUILD_NCPUS) --all -- -P$(GMAKE_PARALLELISM)
-
-$(1).deliver: $(1)
-	cd $(1) && $(SOLARENV)/bin/deliver.pl
-
-$(1).clean:
-	cd $(1) && $(SOLARENV)/bin/deliver.pl -delete
-	rm -fr $(1)/$(INPATH)
-
-endef
-
-define dmake_modules_rules
-$(foreach m,$(1),$(call dmake_module_rules,$(m)))
-endef
-
-#
-# Partial Build
-#
-$(eval $(call gbuild_modules_rules,$(gbuild_modules)))
-
-$(eval $(call dmake_modules_rules,$(dmake_modules)))
-
-#
-# Clean
-#
-clean: clean-host clean-build
-
-clean-host:
-	rm -fr $(DEVINSTALLDIR)
-	rm -fr $(SOLARVER)/$(INPATH) # not necessarily below SRCDIR
-	rm -fr $(SRCDIR)/*/$(INPATH)
-	rm -fr install
-
-clean-build:
-ifeq ($(CROSS_COMPILING),YES)
-	rm -rf $(SOLARVER)/$(INPATH_FOR_BUILD) # not necessarily below SRCDIR
-	rm -rf $(SRCDIR)/*/$(INPATH_FOR_BUILD)
-endif
-
-#
-# Distclean
-#
-distclean : clean
-ifeq ($(BUILD_DMAKE),YES)
-	(if [ -f dmake/Makefile ] ; then $(GNUMAKE) -j $(GMAKE_PARALLELISM) -C dmake distclean; fi) && \
-	rm -f solenv/*/bin/dmake*
-endif
-	rm -fr config_host.mk config_build.mk aclocal.m4 autom4te.cache \
-    bin/repo-list config.log config.status configure \
-	ooo.lst post_download post_download.log \
-	config_host.mk.last set_soenv.stamp src.downloaded warn
-	find $(SOLARENV)/gdb -name "*.pyc" -exec rm {} \;
-
-#
-# custom command
-#
-ifneq ( $(MAKECMDGOALS),cmd)
-cmd:
-	echo "custom cmd" && ( $(cmd) )
-
-endif
-
-ifneq ($(filter-out clean distclean,$(MAKECMDGOALS)),)
-#
-# Makefile
-#
-
-# I don't like to touch stuff that are supposed to be
-# in the source tree, hence read-only
-# but I couldn't find a way to get make to
-# restart after an autogen. and we _have_ to
-# restart since autogen can have changed
-# config_host.mk which is included in this
-# Makefile
+.PHONY : $(filter-out $(SRCDIR)/config_host.mk,$(MAKECMDGOALS))
 
-Makefile: $(SRCDIR)/config_host.mk
-	touch $@
+# recursively invoke Makefile.top, which includes config_host.mk
+$(firstword $(MAKECMDGOALS)) : $(SRCDIR)/config_host.mk
+	$(MAKE) -r -f $(SRCDIR)/Makefile.top $(MAKECMDGOALS)
 
-$(SRCDIR)/config_host.mk: config_host.mk.in bin/repo-list.in ooo.lst.in configure.in autogen.lastrun
+# run configure in an environment not polluted by config_host.mk
+$(SRCDIR)/config_host.mk : \
+		$(SRCDIR)/config_host.mk.in \
+		$(SRCDIR)/bin/repo-list.in \
+		$(SRCDIR)/ooo.lst.in \
+		$(SRCDIR)/configure.in \
+		$(SRCDIR)/autogen.lastrun
 	./autogen.sh
 
+# dummy rule in case autogen.lastrun does not exist
 autogen.lastrun:
 	@true
 
-#
-# Fetch
-#
-fetch: src.downloaded
-
-src.downloaded : Makefile ooo.lst download
-ifeq ($(DO_FETCH_TARBALLS),YES)
-	@./download $(SRCDIR)/ooo.lst && touch $@
-else
-	@echo "Automatic fetching of external tarballs is disabled."
-endif
-
-#
-# Bootstap
-#
-bootstrap: $(WORKDIR)/bootstrap
-
-$(WORKDIR)/bootstrap:
-	@cd $(SRCDIR) && ./bootstrap
-	@mkdir -p $(dir $@) && touch $@
-
-#
-# Build
-#
-build-packimages: bootstrap fetch $(if $(filter $(INPATH),$(INPATH_FOR_BUILD)),,cross-toolset)
-ifeq ($(DISABLE_SCRIPTING),TRUE)
-# We must get the headers from vbahelper "delivered" because
-# as we don't link to any libs from there they won't otherwise be, or
-# something. And we still do include those headers always even if the
-# libs aren't built in the --disable-scripting case. (Ifdefs for
-# DISABLE_SCRIPTING will be added to the code later as necessary.)
-	$(GNUMAKE) vbahelper
-endif
-ifeq ($(DISABLE_DBCONNECTIVITY),TRUE)
-# Ditto for dbconnectivity in the --disable-database-connectivity case
-	cd connectivity && sed -e 's/^\(export [A-Z0-9_]*=\)\(.*\)$$/\1"\2"/' <../config_host.mk >conftmp.sh && . conftmp.sh && rm conftmp.sh && $(SOLARENV)/bin/deliver.pl
-endif
-	cd packimages && unset MAKEFLAGS && \
-		$(SOLARENV)/bin/build.pl -P$(BUILD_NCPUS) --all -- -P$(GMAKE_PARALLELISM) && \
-		make
-
-build: build-packimages
-ifeq ($(OS_FOR_BUILD),WNT)
-	cd instsetoo_native && unset MAKEFLAGS && $(SOLARENV)/bin/build.pl
-else
-	cd instsetoo_native && unset MAKEFLAGS && \
-        $(SOLARENV)/bin/build.pl -P$(BUILD_NCPUS) -- -P$(GMAKE_PARALLELISM)
-endif
-
-cross-toolset: bootstrap fetch
-	cd cross_toolset && $(GNUMAKE) -j $(GMAKE_PARALLELISM) $(GMAKE_OPTIONS)
-
-
-#
-# Install
-#
-
-install:
-	echo "Installing in $(INSTALLDIR)..." && \
-	ooinstall "$(INSTALLDIR)" && \
-	echo "" && \
-	echo "Installation finished, you can now execute:" && \
-	echo "$(INSTALLDIR)/program/soffice"
-
-install-strip:
-	echo "Installing and stripping binaries in $(INSTALLDIR)..." && \
-	ooinstall --strip "$(INSTALLDIR)" && \
-	echo "" && \
-	echo "Installation finished, you can now execute:" && \
-	echo "$(INSTALLDIR)/program/soffice"
-
-dev-install: build
-	@rm -rf $(DEVINSTALLDIR)
-	@mkdir $(DEVINSTALLDIR)
-ifeq ($(DISABLE_LINKOO),TRUE)
-	@ooinstall $(DEVINSTALLDIR)/opt
-	@install-gdb-printers -L
-else
-	@ooinstall -l $(DEVINSTALLDIR)/opt
-endif
-	@rm -f $(SRCDIR)/install && ln -s $(DEVINSTALLDIR)/opt/ $(SRCDIR)/install
-
-distro-pack-install: install
-	$(SRCDIR)/bin/distro-install-clean-up
-	$(SRCDIR)/bin/distro-install-desktop-integration
-	$(SRCDIR)/bin/distro-install-sdk
-	$(SRCDIR)/bin/distro-install-file-lists
-
-id:
-	@create-ids
-
-tags:
-	@create-tags
-
-docs:
-	@mkdocs.sh $(SRCDIR)/docs $(SOLARENV)/inc/doxygen.cfg
-
-findunusedcode:
-	@which callcatcher > /dev/null 2>&1 || \
-	    (echo "callcatcher not installed" && false)
-	@sed -e s,$$INPATH,callcatcher,g $(SRCDIR)/config_host.mk | sed -e s,"export OOO_JUNIT_JAR=.*","export OOO_JUNIT_JAR=",g > $(SRCDIR)/config_host_callcatcher.mk
-	@mkdir -p $(SRCDIR)/solenv/callcatcher/bin && \
-	    ln -sf $(SRCDIR)/solenv/$(INPATH)/bin/dmake \
-		$(SRCDIR)/solenv/callcatcher/bin/dmake
-	@$(GNUMAKE) -f $(SOLARENV)/bin/callcatcher.Makefile findunusedcode
-	@grep ::.*\( unusedcode.all \
-              | grep -v ^Atom \
-              | grep -v ^boost:: \
-              | grep -v ^CIcc \
-              | grep -v ^CLuceneError:: \
-              | grep -v ^cppu:: \
-              | grep -v ^Dde \
-              | grep -v ^graphite2:: \
-              | grep -v ^jvmaccess:: \
-              | grep -v ^libcdr:: \
-              | grep -v ^libcmis:: \
-              | grep -v ^libvisio:: \
-              | grep -v ^libwpg:: \
-              | grep -v ^libwps_tools_win:: \
-              | grep -v ^lucene:: \
-              | grep -v ^Matrix3d:: \
-              | grep -v ^salhelper:: \
-              | grep -v ^WP1 \
-              | grep -v ^WP3 \
-              | grep -v ^WP42 \
-              | grep -v ^WP6 \
-              | grep -v ^WPG \
-              | grep -v ^WPS \
-              | grep -v WPX \
-              > unusedcode.easy
-
-check: dev-install subsequentcheck
-
-subsequentcheck :| $(if $(filter-out subsequentcheck,$(MAKECMDGOALS)),dev-install)
-	$(GNUMAKE) -j $(GMAKE_PARALLELISM) $(GMAKE_OPTIONS) -f Makefile.post $@
-
-debugrun:
-	$(GNUMAKE) -j $(GMAKE_PARALLELISM) $(GMAKE_OPTIONS) -f Makefile.post $@
-
-endif # not clean or distclean
-
-
-#########################
-# help
-#
-.PHONY: help
-help:
-	@cat $(SRCDIR)/solenv/gbuild/gbuild.help.txt
-	@true
-
-
 # vim: set noet sw=4 ts=4:
diff --git a/Makefile.top b/Makefile.top
new file mode 100644
index 0000000..6c473ec
--- /dev/null
+++ b/Makefile.top
@@ -0,0 +1,504 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+
+.PHONY : all bootstrap build check clean clean-build clean-host dev-install distclean distro-pack-install docs fetch findunusedcode id install install-strip subsequentcheck tags
+
+ifeq ($(MAKECMDGOALS),)
+MAKECMDGOALS:=all
+endif
+
+all: build
+
+SHELL=/usr/bin/env bash
+SRCDIR:=$(patsubst %/,%,$(dir $(realpath $(firstword $(MAKEFILE_LIST)))))
+
+ifeq ($(gb_Side),)
+gb_Side:=host
+endif
+
+include $(SRCDIR)/config_$(gb_Side).mk
+
+ifeq ($(GMAKE_OPTIONS),)
+ifeq ($(verbose),)
+export GMAKE_OPTIONS:=-rs
+else
+export GMAKE_OPTIONS:=-r
+endif
+endif
+
+gbuild_modules:= \
+MathMLDTD\
+Mesa\
+UnoControls\
+accessibility\
+animations\
+apple_remote\
+avmedia\
+basctl\
+basebmp\
+basegfx\
+basic\
+bean\
+binaryurp\
+canvas\
+chart2\
+clucene\
+codemaker\
+comphelper\
+configmgr\
+cppcanvas\
+cppu\
+cppuhelper\
+cpputools\
+cui\
+dbaccess\
+desktop\
+drawinglayer\
+dtrans\
+editeng\
+embeddedobj\
+embedserv\
+eventattacher\
+extensions\
+fileaccess\
+filter\
+forms\
+formula\
+fpicker\
+framework\
+hwpfilter\
+i18npool\
+i18nutil\
+idl\
+idlc\
+io\
+javaunohelper\
+jurt\
+jvmaccess\
+jvmfwk\
+l10ntools\
+lingucomponent\
+linguistic\
+lotuswordpro\
+nlpsolver\
+np_sdk\
+o3tl\
+offapi\
+officecfg\
+oovbaapi\
+oox\
+package\
+packimages\
+padmin\
+psprint_config\
+qadevOOo\
+regexp\
+registry\
+reportdesign\
+rdbmaker\
+ridljar\
+rsc\
+sal\
+salhelper\
+sane\
+sax\
+sc\
+scaddins\
+sccomp\
+scripting\
+sd\
+sdext\
+sfx2\
+slideshow\
+smoketest\
+sot\
+starmath\
+stoc\
+store\
+svl\
+svtools\
+svx\
+sw\
+swext\
+tail_build\
+test\
+toolkit\
+tools\
+translations\
+twain\
+ucb\
+ucbhelper\
+udkapi\
+unixODBC\
+unodevtools\
+unoil\
+unotest\
+unotools\
+unoxml\
+ure\
+uui\
+vbahelper\
+vcl\
+wizards\
+writerfilter\
+writerperfect\
+xmerge\
+xml2cmp\
+xmlhelp\
+xmloff\
+xmlreader\
+xmlscript\
+xmlsecurity\
+
+dmake_modules:=\
+afms\
+apache-commons\
+autodoc\
+beanshell\
+berkeleydb\
+binfilter \
+boost\
+bridges\
+cairo\
+cli_ure\
+connectivity\
+cosv\
+cppunit\
+crashrep\
+ct2n\
+curl\
+dictionaries \
+epm\
+expat\
+external\
+extras\
+fontconfig\
+freetype\
+gdk-pixbuf\
+gettext\
+glib\
+graphite\
+helpcontent2 \
+hsqldb\
+hunspell\
+hyphen\
+icc\
+icu\
+instsetoo_native\
+jfreereport\
+jpeg\
+languagetool\
+libcdr\
+libcmis\
+libcroco\
+libexttextcat\
+libgsf\
+libpng\
+librsvg\
+libvisio\
+libwpd\
+libwpg\
+libwps\
+libxml2\
+libxmlsec\
+libxslt\
+lcms2\
+lpsolve\
+lucene\
+mdds\
+migrationanalysis\
+more_fonts\
+moz\
+mysqlc\
+mysqlcppconn\
+mythes\
+neon\
+nss\
+odk\
+openssl\
+pango\
+postgresql\
+postprocess\
+python\
+pyuno\
+readlicense_oo\
+redland\
+remotebridges\
+reportbuilder\
+rhino\
+saxon\
+scp2\
+setup_native\
+shell\
+solenv\
+soltools\
+stax\
+stlport\
+sysui\
+testtools\
+tomcat\
+udm\
+vigra\
+x11_extensions\
+xpdf\
+xsltml\
+zlib\
+
+gb_TAILBUILDMODULES := $(shell make -f $(SRCDIR)/tail_build/Makefile showmodules)
+export gb_TAILBUILDTARGET=all slowcheck
+
+define gbuild_module_rules
+.PHONY: $(1) $(1).all $(1).clean $(1).deliver
+
+$(1): bootstrap fetch
+	cd $(1) && $(GNUMAKE) -j $(GMAKE_PARALLELISM) $(GMAKE_OPTIONS) gb_PARTIALBUILD=T
+
+ifeq ($(filter $(1),$(gb_TAILBUILDMODULES)),)
+$(1).all: bootstrap fetch
+	cd $(1) && unset MAKEFLAGS && \
+        $(SOLARENV)/bin/build.pl -P$(BUILD_NCPUS) --all -- -P$(GMAKE_PARALLELISM)
+else
+$(1).all: bootstrap fetch
+	cd tail_build && unset MAKEFLAGS && \
+	export gb_TAILBUILDTARGET="$(WORKDIR)/Module/$(1) $(WORKDIR)/Module/check/$(1) $(WORKDIR)/Module/slowcheck/$(1)" && \
+        $(SOLARENV)/bin/build.pl -P$(BUILD_NCPUS) --all -- -P$(GMAKE_PARALLELISM)
+endif
+
+$(1).clean:
+	cd $(1) && $(GNUMAKE) -j $(GMAKE_PARALLELISM) $(GMAKE_OPTIONS) clean gb_PARTIALBUILD=T
+
+$(1).subsequentcheck:
+	cd $(1) && $(GNUMAKE) -j $(GMAKE_PARALLELISM) $(GMAKE_OPTIONS) subsequentcheck gb_PARTIALBUILD=T
+
+$(1).deliver:
+	@true
+
+endef
+
+define gbuild_modules_rules
+$(foreach m,$(1),$(call gbuild_module_rules,$(m)))
+endef
+
+define dmake_module_rules
+.PHONY: $(1) $(1).all $(1).deliver $(1).clean
+
+$(1): bootstrap fetch
+	cd $(1) && unset MAKEFLAGS && \
+        $(SOLARENV)/bin/build.pl -P$(BUILD_NCPUS) -- -P$(GMAKE_PARALLELISM)
+
+$(1).all: bootstrap fetch
+	cd $(1) && unset MAKEFLAGS && \
+        $(SOLARENV)/bin/build.pl -P$(BUILD_NCPUS) --all -- -P$(GMAKE_PARALLELISM)
+
+$(1).deliver: $(1)
+	cd $(1) && $(SOLARENV)/bin/deliver.pl
+
+$(1).clean:
+	cd $(1) && $(SOLARENV)/bin/deliver.pl -delete
+	rm -fr $(1)/$(INPATH)
+
+endef
+
+define dmake_modules_rules
+$(foreach m,$(1),$(call dmake_module_rules,$(m)))
+endef
+
+#
+# Partial Build
+#
+$(eval $(call gbuild_modules_rules,$(gbuild_modules)))
+
+$(eval $(call dmake_modules_rules,$(dmake_modules)))
+
+#
+# Clean
+#
+clean: clean-host clean-build
+
+clean-host:
+	rm -fr $(DEVINSTALLDIR)
+	rm -fr $(SOLARVER)/$(INPATH) # not necessarily below SRCDIR
+	rm -fr $(SRCDIR)/*/$(INPATH)
+	rm -fr install
+
+clean-build:
+ifeq ($(CROSS_COMPILING),YES)
+	rm -rf $(SOLARVER)/$(INPATH_FOR_BUILD) # not necessarily below SRCDIR
+	rm -rf $(SRCDIR)/*/$(INPATH_FOR_BUILD)
+endif
+
+#
+# Distclean
+#
+distclean : clean
+ifeq ($(BUILD_DMAKE),YES)
+	(if [ -f dmake/Makefile ] ; then $(GNUMAKE) -j $(GMAKE_PARALLELISM) -C dmake distclean; fi) && \
+	rm -f solenv/*/bin/dmake*
+endif
+	rm -fr config_host.mk config_build.mk aclocal.m4 autom4te.cache \
+    bin/repo-list config.log config.status configure \
+	ooo.lst post_download post_download.log \
+	config_host.mk.last set_soenv.stamp src.downloaded warn
+	find $(SOLARENV)/gdb -name "*.pyc" -exec rm {} \;
+
+#
+# custom command
+#
+ifneq ( $(MAKECMDGOALS),cmd)
+cmd:
+	echo "custom cmd" && ( $(cmd) )
+
+endif
+
+ifneq ($(filter-out clean distclean,$(MAKECMDGOALS)),)
+#
+# Fetch
+#
+fetch: src.downloaded
+
+src.downloaded : Makefile.top ooo.lst download
+ifeq ($(DO_FETCH_TARBALLS),YES)
+	@./download $(SRCDIR)/ooo.lst && touch $@
+else
+	@echo "Automatic fetching of external tarballs is disabled."
+endif
+
+#
+# Bootstap
+#
+bootstrap: $(WORKDIR)/bootstrap
+
+$(WORKDIR)/bootstrap:
+	@cd $(SRCDIR) && ./bootstrap
+	@mkdir -p $(dir $@) && touch $@
+
+#
+# Build
+#
+build-packimages: bootstrap fetch $(if $(filter $(INPATH),$(INPATH_FOR_BUILD)),,cross-toolset)
+ifeq ($(DISABLE_SCRIPTING),TRUE)
+# We must get the headers from vbahelper "delivered" because
+# as we don't link to any libs from there they won't otherwise be, or
+# something. And we still do include those headers always even if the
+# libs aren't built in the --disable-scripting case. (Ifdefs for
+# DISABLE_SCRIPTING will be added to the code later as necessary.)
+	$(GNUMAKE) vbahelper
+endif
+ifeq ($(DISABLE_DBCONNECTIVITY),TRUE)
+# Ditto for dbconnectivity in the --disable-database-connectivity case
+	cd connectivity && sed -e 's/^\(export [A-Z0-9_]*=\)\(.*\)$$/\1"\2"/' <../config_host.mk >conftmp.sh && . conftmp.sh && rm conftmp.sh && $(SOLARENV)/bin/deliver.pl
+endif
+	cd packimages && unset MAKEFLAGS && \
+		$(SOLARENV)/bin/build.pl -P$(BUILD_NCPUS) --all -- -P$(GMAKE_PARALLELISM) && \
+		make
+
+build: build-packimages
+ifeq ($(OS_FOR_BUILD),WNT)
+	cd instsetoo_native && unset MAKEFLAGS && $(SOLARENV)/bin/build.pl
+else
+	cd instsetoo_native && unset MAKEFLAGS && \
+        $(SOLARENV)/bin/build.pl -P$(BUILD_NCPUS) -- -P$(GMAKE_PARALLELISM)
+endif
+
+cross-toolset: bootstrap fetch
+	cd cross_toolset && $(GNUMAKE) -j $(GMAKE_PARALLELISM) $(GMAKE_OPTIONS)
+
+
+#
+# Install
+#
+
+install:
+	echo "Installing in $(INSTALLDIR)..." && \
+	ooinstall "$(INSTALLDIR)" && \
+	echo "" && \
+	echo "Installation finished, you can now execute:" && \
+	echo "$(INSTALLDIR)/program/soffice"
+
+install-strip:
+	echo "Installing and stripping binaries in $(INSTALLDIR)..." && \
+	ooinstall --strip "$(INSTALLDIR)" && \
+	echo "" && \
+	echo "Installation finished, you can now execute:" && \
+	echo "$(INSTALLDIR)/program/soffice"
+
+dev-install: build
+	@rm -rf $(DEVINSTALLDIR)
+	@mkdir $(DEVINSTALLDIR)
+ifeq ($(DISABLE_LINKOO),TRUE)
+	@ooinstall $(DEVINSTALLDIR)/opt
+	@install-gdb-printers -L
+else
+	@ooinstall -l $(DEVINSTALLDIR)/opt
+endif
+	@rm -f $(SRCDIR)/install && ln -s $(DEVINSTALLDIR)/opt/ $(SRCDIR)/install
+
+distro-pack-install: install
+	$(SRCDIR)/bin/distro-install-clean-up
+	$(SRCDIR)/bin/distro-install-desktop-integration
+	$(SRCDIR)/bin/distro-install-sdk
+	$(SRCDIR)/bin/distro-install-file-lists
+
+id:
+	@create-ids
+
+tags:
+	@create-tags
+
+docs:
+	@mkdocs.sh $(SRCDIR)/docs $(SOLARENV)/inc/doxygen.cfg
+
+findunusedcode:
+	@which callcatcher > /dev/null 2>&1 || \
+	    (echo "callcatcher not installed" && false)
+	@sed -e s,$$INPATH,callcatcher,g $(SRCDIR)/config_host.mk | sed -e s,"export OOO_JUNIT_JAR=.*","export OOO_JUNIT_JAR=",g > $(SRCDIR)/config_host_callcatcher.mk
+	@mkdir -p $(SRCDIR)/solenv/callcatcher/bin && \
+	    ln -sf $(SRCDIR)/solenv/$(INPATH)/bin/dmake \
+		$(SRCDIR)/solenv/callcatcher/bin/dmake
+	@$(GNUMAKE) -f $(SOLARENV)/bin/callcatcher.Makefile findunusedcode
+	@grep ::.*\( unusedcode.all \
+              | grep -v ^Atom \
+              | grep -v ^boost:: \
+              | grep -v ^CIcc \
+              | grep -v ^CLuceneError:: \
+              | grep -v ^cppu:: \
+              | grep -v ^Dde \
+              | grep -v ^graphite2:: \
+              | grep -v ^jvmaccess:: \
+              | grep -v ^libcdr:: \
+              | grep -v ^libcmis:: \
+              | grep -v ^libvisio:: \
+              | grep -v ^libwpg:: \
+              | grep -v ^libwps_tools_win:: \
+              | grep -v ^lucene:: \
+              | grep -v ^Matrix3d:: \
+              | grep -v ^salhelper:: \
+              | grep -v ^WP1 \
+              | grep -v ^WP3 \
+              | grep -v ^WP42 \
+              | grep -v ^WP6 \
+              | grep -v ^WPG \
+              | grep -v ^WPS \
+              | grep -v WPX \
+              > unusedcode.easy
+
+check: dev-install subsequentcheck
+
+subsequentcheck :| $(if $(filter-out subsequentcheck,$(MAKECMDGOALS)),dev-install)
+	$(GNUMAKE) -j $(GMAKE_PARALLELISM) $(GMAKE_OPTIONS) -f Makefile.post $@
+
+debugrun:
+	$(GNUMAKE) -j $(GMAKE_PARALLELISM) $(GMAKE_OPTIONS) -f Makefile.post $@
+
+endif # not clean or distclean
+
+
+#########################
+# help
+#
+.PHONY: help
+help:
+	@cat $(SRCDIR)/solenv/gbuild/gbuild.help.txt
+	@true
+
+
+# vim: set noet sw=4 ts=4:


More information about the Libreoffice-commits mailing list