summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-05-15 14:47:37 +0200
committerMichael Stahl <mstahl@redhat.com>2012-05-15 14:51:46 +0200
commitb0b92d1e5f2097652b12252a32cea40a5868e20c (patch)
tree11f3d720843c4872e4b68ba9f2d2764756450220 /Makefile
parentfix property type for printoptions fdo#45592 (diff)
downloadcore-b0b92d1e5f2097652b12252a32cea40a5868e20c.tar.gz
core-b0b92d1e5f2097652b12252a32cea40a5868e20c.zip
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.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile528
1 files changed, 20 insertions, 508 deletions
diff --git a/Makefile b/Makefile
index 88dad317b7af..8edbef1ea699 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: