summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorNorbert Thiebaud <nthiebaud@gmail.com>2012-01-24 15:48:30 -0600
committerNorbert Thiebaud <nthiebaud@gmail.com>2012-02-05 19:34:05 -0600
commitc857dff7fc4b180c1d405ea5584e06c0581427ae (patch)
treee2f20f13825aa2c0ba078ae77f2723452d9a957f /Makefile
parent909cd34b7b0982078a50b9ed46cf57811d9571df (diff)
switch to include-based build rather than sourced-based build
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile399
1 files changed, 373 insertions, 26 deletions
diff --git a/Makefile b/Makefile
index ed8e30e6a8a6..29093cd2ca79 100644
--- a/Makefile
+++ b/Makefile
@@ -1,48 +1,395 @@
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#*************************************************************************
+
+.PHONY : all bootstrap fetch build clean clean-build clean-host
+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
+
+ifneq ($(verbose),)
+GMAKE_OPTIONS:=-rs
+else
+GMAKE_OPTIONS:=-r
+endif
+
+gbuild_modules:= \
+MathMLDTD\
+Mesa\
+UnoControls\
+accessibility\
+animations\
+avmedia\
+basctl\
+basebmp\
+basegfx\
+basic\
+bean\
+binaryurp\
+canvas\
+chart2\
+comphelper\
+configmgr\
+cppcanvas\
+cppu\
+cppuhelper\
+cui\
+dbaccess\
+desktop\
+drawinglayer\
+dtrans\
+editeng\
+eventattacher\
+extensions\
+fileaccess\
+filter\
+forms\
+formula\
+fpicker\
+framework\
+hwpfilter\
+i18npool\
+i18nutil\
+idl\
+lingucomponent\
+linguistic\
+lotuswordpro\
+nlpsolver\
+np_sdk\
+o3tl\
+offapi\
+officecfg\
+oovbaapi\
+oox\
+package\
+padmin\
+psprint_config\
+qadevOOo\
+regexp\
+reportdesign\
+rsc\
+sal\
+salhelper\
+sane\
+sax\
+sc\
+scaddins\
+sccomp\
+scripting\
+sd\
+sfx2\
+slideshow\
+sot\
+starmath\
+svl\
+svtools\
+svx\
+sw\
+swext\
+tail_build\
+test\
+toolkit\
+tools\
+twain\
+ucb\
+ucbhelper\
+udkapi\
+unixODBC\
+unotools\
+unoxml\
+ure\
+uui\
+vbahelper\
+vcl\
+wizards\
+writerfilter\
+writerperfect\
+xmerge\
+xml2cmp\
+xmloff\
+xmlreader\
+xmlscript\
+xmlsecurity\
+
+dmake_modules:=\
+afms\
+apache-commons\
+apple_remote\
+autodoc\
+beanshell\
+berkeleydb\
+binfilter \
+boost\
+bridges\
+cairo\
+cli_ure\
+codemaker\
+connectivity\
+cosv\
+cppunit\
+cpputools\
+crashrep\
+ct2n\
+curl\
+dictionaries \
+embeddedobj\
+embedserv\
+epm\
+expat\
+external\
+extras\
+fontconfig\
+freetype\
+gdk-pixbuf\
+gettext\
+glib\
+graphite\
+helpconten2 \
+hsqldb\
+hunspell\
+hyphen\
+icc\
+icu\
+idlc\
+instsetoo_native\
+io\
+javaunohelper\
+jfreereport\
+jpeg\
+jurt\
+jvmaccess\
+jvmfwk\
+l10ntools\
+languagetool\
+libcdr\
+libcmis\
+libcroco\
+libexttextcat\
+libgsf\
+libpng\
+librsvg\
+libvisio\
+libwpd\
+libwpg\
+libwps\
+libxml2\
+libxmlsec\
+libxslt\
+lpsolve\
+lucene\
+mdds\
+migrationanalysis\
+more_fonts\
+moz\
+mysqlc\
+mysqlcppconn\
+mythes\
+neon\
+nss\
+odk\
+openssl\
+packimages\
+pango\
+postgresql\
+postprocess\
+python\
+pyuno\
+rdbmaker\
+readlicense_oo\
+redland\
+registry\
+remotebridges\
+reportbuilder\
+rhino\
+ridljar\
+saxon\
+scp2\
+sdext\
+setup_native\
+shell\
+smoketest\
+solenv\
+soltools\
+stax\
+stlport\
+stoc\
+store\
+sysui\
+tomcat\
+udm\
+unodevtools\
+unoil\
+unotest\
+vigra\
+x11_extensions\
+xmlhelp\
+xpdf\
+xsltml\
+zlib\
+
+define gbuild_module_rules
+.PHONY: $(1) $(1).clean
+
+$(1): bootstrap fetch
+ cd $(1) && $(GNUMAKE) -j $(GMAKE_PARALLELISM) $(GMAKE_OPTIONS)
+
+$(1).clean:
+ cd $(1) && $(GNUMAKE) -j $(GMAKE_PARALLELISM) $(GMAKE_OPTIONS) clean
+
+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) && $(SOLARENV)/bin/build.pl -P$(BUILD_NCPUS) -- -P$(GMAKE_PARALLELISM)
+
+$(1).all: bootstrap fetch
+ cd $(1) && $(SOLARENV)/bin/build.pl -P$(BUILD_NCPUS) --all -- -P$(GMAKE_PARALLELISM)
+
+$(1).deliver: bootstrap fetch
+ cd $(1) && $(SOLARENV)/bin/deliver.pl
+
+$(1).clean:
+ rm -fr $(1)/$(INPATH)
+
+endef
+
+define dmake_modules_rules
+$(foreach m,$(1),$(call dmake_module_rules,$(m)))
+endef
+
#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2009 by Sun Microsystems, Inc.
+# Build
+#
+build: bootstrap fetch $(if $(filter $(INPATH),$(INPATH_FOR_BUILD)),,cross-toolset)
+ cd instsetoo_native && \
+ $(SOLARENV)/bin/build.pl -P$(BUILD_NCPUS) --all -- -P$(GMAKE_PARALLELISM)
+
+cross-toolset:
+ cd cross_toolset && $(GNUMAKE) -j $(GMAKE_PARALLELISM) $(GMAKE_OPTIONS)
+
#
-# OpenOffice.org - a multi-platform office productivity suite
+# Partial Build
#
-# This file is part of OpenOffice.org.
+$(eval $(call gbuild_modules_rules,$(gbuild_modules)))
+
+$(eval $(call dmake_modules_rules,$(dmake_modules)))
+
#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
+# Clean
#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
+clean: clean-host clean-build
+
+clean-host:
+ rm -fr $(SRCDIR)/*/$(INPATH)
+ rm -fr $(SRCDIR)/workdir/*
+ rm -fr $(SRCDIR)/solver/$(INPATH)
+ rm -fr install
+
+clean-build:
+ifeq ($(CROSS_COMPILING),YES)
+ rm -rf */$(INPATH_FOR_BUILD)
+endif
+
#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
+# 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 \
+ desktop/scripts/soffice.sh ooo.lst post_download post_download.log \
+ config_host.mk.last set_soenv.stamp src.downloaded warn
# The real targets are in solenv/gbuild/Module.mk, resp.
# solenv/gbuild/extensions/post_BuildplTargets.mk, this file only forwards
# the calls - please look there if you want to edit what this toplevel
# Makefile does.
-SRCDIR:=$(patsubst %/,%,$(dir $(realpath $(firstword $(MAKEFILE_LIST)))))
-ifeq ($(strip $(gb_SourceEnvAndRecurse_STAGE)),)
-include $(SRCDIR)/solenv/gbuild/source_and_rerun.mk
-endif
+#
+# Bootstap
+#
+$(WORKDIR)/bootstrap:
+ @cd $(SRCDIR) && ./bootstrap
+ @mkdir -p $(dir $@) && touch $@
+
+bootstrap: $(WORKDIR)/bootstrap
+
+#
+# Fetch
+#
+fetch: src.downloaded
-ifeq ($(gb_SourceEnvAndRecurse_STAGE),reconfigure)
-SOLARENV:=$(SRCDIR)/solenv
+src.downloaded : ooo.lst download
+ifeq (@DO_FETCH_TARBALLS@,YES)
+ ./download $(SRCDIR)/ooo.lst && touch $@
+else
+ @echo "Automatic fetching of external tarballs is disabled."
endif
-ifneq ($(filter reconfigure gbuild buildpl,$(gb_SourceEnvAndRecurse_STAGE)),)
+#
+# Install
+#
+
+install:
+ echo "Installing in $(INSTALLDIR)..." && \
+ ooinstall "$(INSTALLDIR)" && \
+ echo "" && \
+ echo "Installation finished, you can now execute:" && \
+ echo "$(INSTALLDIR)/program/soffice"
+
+#dev-install: $(WORKDIR)/bootstrap \
+# $(ROOT_SRC)/src.downloaded \
+# $(if $(filter $(INPATH),$(INPATH_FOR_BUILD)),,cross_toolset) \
+# | $(filter build,$(MAKECMDGOALS)) \
+# $(if $(filter check,$(MAKECMDGOALS)),build)
+# @rm -f $(SRCDIR)/install && ln -s $(OUTDIR)/installation/opt/ $(SRCDIR)/install
+# cd smoketestoo_native && \
+# $(SOLARENV)/bin/build.pl -P$(BUILD_NCPUS) --all -- -P$(GMAKE_PARALLELISM)
+
+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 > $(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
+ @grep ::.*\( unusedcode.all | grep -v ^cppu:: > unusedcode.easy
+
+ifneq ( $(filter-out check debugrun dev-install subsequentcheck unitcheck,$(MAKECMDGOALS)),$(MAKECMDGOALS))
+gb_SourceEnvAndRecurse_STAGE=buildpl
include $(SOLARENV)/gbuild/gbuild.mk
$(eval $(call gb_Module_make_global_targets,$(wildcard $(SRCDIR)/RepositoryModule_*.mk)))
endif
+
# vim: set noet sw=4 ts=4: