170 lines
4.9 KiB
Makefile
170 lines
4.9 KiB
Makefile
# @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` = 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
|
|
|
|
check : allcheck
|
|
@true
|
|
|
|
%check:
|
|
@. ./Env.Host.sh && $$GNUMAKE -f "$$SRC_ROOT"/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
|