# @configure_input@ SHELL=/usr/bin/env bash ifeq (@CROSS_COMPILING@,YES) CROSS_TOOLSET_RULE:=cross-build-toolset else CROSS_TOOLSET_RULE:= endif ifeq ($(filter all check unitcheck,$(MAKECMDGOALS)),) gb_MAKETARGET=build else # fail early gb_MAKETARGET=all endif .PHONY : build dev-install all cross-build-toolset install distro-pack-install clean clean-host clean-build distclean findunusedcode all: build unitcheck @echo @echo "LibreOffice build succesfully finished :-)" @echo ifeq (@CROSS_COMPILING@,YES) @echo "Please consult README.cross how to install it." else @echo "To install, issue: @GNUMAKE@ install" @echo "Developers might prefer this way: @GNUMAKE@ dev-install -o build" @echo "To run smoketest, issue: @GNUMAKE@ check" endif @echo build: Makefile dmake/dmake@EXEEXT_FOR_BUILD@ src.downloaded $(CROSS_TOOLSET_RULE) @. ./Env.Host.sh && \ cd instsetoo_native && \ gb_MAKETARGET=$(gb_MAKETARGET) build.pl -P@BUILD_NCPUS@ --all -- -P@BUILD_MAX_JOBS@ dev-install: build @. ./Env.Host.sh && \ cd smoketestoo_native && \ build.pl -P@BUILD_NCPUS@ -- -P@BUILD_MAX_JOBS@ && \ rm -f "@abs_builddir@"/install && \ ln -s "$$SOLARVER/$$INPATH"/installation/opt/ \ "@abs_builddir@"/install && \ printf '\n' && \ printf \ '\nDeveloper installation finished, you can now execute:\n\n' \ && \ if test `uname -s` = Linux; then \ printf 'make debugrun\n'; \ elif test `uname -s` = Darwin; then \ printf 'open %s/install/LibreOffice.app\n' "@abs_builddir@"; \ else \ printf 'cd %s/install/program\n. ./ooenv\n./soffice.bin\n' \ "@abs_builddir@"; \ fi debugrun: @ @GNUMAKE@ -f $(dir $(realpath $(firstword $(MAKEFILE_LIST))))/GNUmakefile.mk debugrun check : allcheck @true %check: @ @GNUMAKE@ -f $(dir $(realpath $(firstword $(MAKEFILE_LIST))))/GNUmakefile.mk -r \ $(if @VERBOSE@,,-s) --jobs="$(if \ $(CHECK_PARALLELISM),$(CHECK_PARALLELISM),@GMAKE_PARALLELISM@)" \ $(patsubst allcheck,check,$@) cross-build-toolset: @. ./Env.Build.sh && \ cd cross_toolset && \ build.pl -P@BUILD_NCPUS@ --all -- -P@BUILD_MAX_JOBS@ install: build @. ./Env.Host.sh && \ echo "Installing in @INSTALLDIR@..." && \ ooinstall "@INSTALLDIR@" && \ echo "" && \ echo "Installation finished, you can now execute:" && \ echo "@INSTALLDIR@/program/soffice" distro-pack-install: install ./bin/distro-install-clean-up ./bin/distro-install-desktop-integration ./bin/distro-install-sdk ./bin/distro-install-file-lists distclean: clean ifeq (@BUILD_DMAKE@,YES) -test -f dmake/Makefile && $(MAKE) -C dmake distclean endif rm -rf Env.Host.sh Makefile aclocal.m4 autogen.lastrun autom4te.cache \ bin/repo-list build_env config.log config.status configure \ desktop/scripts/soffice.sh ooo.lst post_download post_download.log \ set_soenv set_soenv.last set_soenv.stamp src.downloaded warn clean: clean-host clean-build clean-host: . ./Env.Host.sh && \ rm -rf */$$INPATH && \ rm -rf install clean-build: ifeq (@BUILD_DMAKE@,YES) . ./Env.Host.sh && \ (if [ -f dmake/Makefile ] ; then $$GNUMAKE -C dmake clean; fi) && \ rm -f solenv/*/bin/dmake* endif ifeq (@CROSS_COMPILING@,YES) . ./Env.Host.sh && \ rm -rf */$$INPATH_FOR_BUILD endif dmake/dmake@EXEEXT_FOR_BUILD@: ./bootstrap src.downloaded: ooo.lst download ifeq (@DO_FETCH_TARBALLS@,YES) @. ./Env.Host.sh && \ $$SRC_ROOT/download $$SRC_ROOT/ooo.lst && touch $@ else @echo "Automatic fetching of external tarballs is disabled." endif fetch: src.downloaded ifneq ($(MAKECMDGOALS),clean) ifneq ($(MAKECMDGOALS),distclean) Makefile: autogen.lastrun configure.in ooo.lst.in set_soenv.in Makefile.in ./autogen.sh endif endif id: @. ./Env.Host.sh && \ create-ids tags: @. ./Env.Host.sh && \ create-tags docs: @. ./Env.Host.sh && \ mkdocs.sh $$SRC_ROOT/docs $$SOLARENV/inc/doxygen.cfg findunusedcode: # experimental callcatcher target # http://www.skynet.ie/~caolan/Packages/callcatcher.html @which callcatcher > /dev/null 2>&1 || \ (echo "callcatcher not installed" && false) @. ./Env.Host.sh && \ mkdir -p $$SRC_ROOT/solenv/callcatcher/bin && \ ln -sf $$SRC_ROOT/solenv/$$INPATH/bin/dmake \ $$SRC_ROOT/solenv/callcatcher/bin/dmake && \ source <(sed -e s,$$INPATH,callcatcher,g ./Env.Host.sh) && \ . ./solenv/bin/callcatchEnv.Set.sh && \ cd instsetoo_native && \ build.pl -P@BUILD_NCPUS@ --all -- -P@BUILD_MAX_JOBS@ @. ./Env.Host.sh && \ source <(sed -e s,$$INPATH,callcatcher,g ./Env.Host.sh) && \ callanalyse \ $$WORKDIR/LinkTarget/*/* \ */$$OUTPATH/bin/* \ */$$OUTPATH/lib/* > unusedcode.all #because non-c++ symbols could be dlsymed lets make a list of class level #unused methods which don't require much effort to determine if they need #to be just removed, or put behind appropiate platform or debug level ifdefs @grep ::.*\( unusedcode.all | grep -v ^cppu:: > unusedcode.easy #as long as we are not completely gbuildified we need to explicitly depend on the build/install unitcheck: build subsequentcheck: dev-install allcheck : dev-install #debugrun : dev-install # disabled for now, this dep seems to poison the debugrun !?