office-gobmx/Makefile.in
Michael Stahl be59288ff4 make dev-install is obsolete
There is no need for developers to run it as part of the daily workflow
because instdir is much easier to use, so just let it print an error
message.  Also remove the "install" symlink.

Provide the previous dev-install functionality as "test-install" target
so that it is possible to quickly create some kind of actual
installation against which the subsequentchecks can run by
setting OOO_TEST_SOFFICE, to e.g. check that scp2 isn't missing files.

Change-Id: I8c0b05a87f55b1db8c1d1e76f64ab64b9cc695eb
2013-10-01 18:03:36 +02:00

404 lines
12 KiB
Makefile

# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
#
# This file is part of the LibreOffice project.
#
# 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 test-install distclean distro-pack-install docs download fetch findunusedcode get-submodules id install install-strip install-tb subsequentcheck tags
ifeq ($(MAKECMDGOALS),)
MAKECMDGOALS:=all
endif
SHELL=/usr/bin/env bash
SRCDIR := @SRC_ROOT@
BUILDDIR := @BUILDDIR@
GIT_BUILD := $(if $(wildcard $(SRCDIR)/.git),T)
# Run autogen.sh if needed and force make to restart itself.
# ... but there are several cases where we do not want to run
# autogen.sh:
# 1. if we are building from tarballs, not git checkout (I do not
# think packagers would ever want that. I certainly do not.)
# 2. if we are making help, clean or distclean, because they do not
# need updated configuration
ifeq (,$(MAKE_RESTARTS)$(if $(GIT_BUILD),,T)$(if $(filter-out help clean distclean,$(MAKECMDGOALS)),,T))
.PHONY : force-restart
Makefile: $(BUILDDIR)/config_host.mk force-restart
@touch $@
# run configure in an environment not polluted by config_host.mk
$(BUILDDIR)/config_host.mk : \
$(SRCDIR)/config_host.mk.in \
$(SRCDIR)/Makefile.in \
$(SRCDIR)/instsetoo_native/util/openoffice.lst.in \
$(SRCDIR)/configure.ac \
$(wildcard $(SRCDIR)/config_host/*.h.in) \
$(if $(wildcard $(BUILDDIR)/autogen.input),$(BUILDDIR)/autogen.input,$(if $(wildcard $(BUILDDIR)/autogen.lastrun),$(BUILDDIR)/autogen.lastrun))
$(SRCDIR)/autogen.sh
# dummy rule in case any of the above prerequisites are removed, so
# that a stale Makefile still triggers autogen.sh, or in case
# autogen.input does not exist, or autogen.lastrun does not yet exist
$(SRCDIR)/config_host.mk.in \
$(SRCDIR)/Makefile.in \
$(SRCDIR)/instsetoo_native/util/openoffice.lst.in \
$(SRCDIR)/configure.ac \
$(BUILDDIR)/autogen.input \
$(BUILDDIR)/autogen.lastrun:
@true
else # MAKE_RESTARTS
all: build
ifeq ($(gb_Side),)
gb_Side := host
endif
include $(BUILDDIR)/config_$(gb_Side).mk
ifeq ($(GMAKE_OPTIONS),)
ifeq ($(verbose)$(VERBOSE),)
export GMAKE_OPTIONS:=-rs$(MAKEFLAGS)
else
export GMAKE_OPTIONS:=-r$(MAKEFLAGS)
endif
endif
#
# Partial Build
#
define gbuild_module_rules
.PHONY: $(1) $(1).all $(1).build $(1).check $(1).clean $(1).showdeliverables $(1).subsequentcheck
$(1): bootstrap fetch
cd $(SRCDIR)/$(1) && $(GNUMAKE) -j $(PARALLELISM) $(GMAKE_OPTIONS)
$(1).build $(1).check $(1).clean $(1).showdeliverables:
cd $(SRCDIR)/$(1) && $(GNUMAKE) -j $(PARALLELISM) $(GMAKE_OPTIONS) $$(patsubst $(1).%,%,$$@)
$(1).subsequentcheck:
cd $(SRCDIR)/$(1) && $(GNUMAKE) -j $(CHECK_PARALLELISM) $(GMAKE_OPTIONS) subsequentcheck
$(1).all: bootstrap fetch
$(GNUMAKE) -j $(PARALLELISM) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $(WORKDIR)/Module/$(1) $(if $(CROSS_COMPILING),,$(WORKDIR)/Module/check/$(1) $(WORKDIR)/Module/slowcheck/$(1))
endef
define gbuild_modules_rules
$(foreach m,$(1),$(call gbuild_module_rules,$(m)))
endef
gbuild_modules := $(filter-out Module%,$(subst /, ,$(subst $(SRCDIR)/,,$(wildcard $(SRCDIR)/*/Module_*.mk))))
$(eval $(call gbuild_modules_rules,$(gbuild_modules)))
gbuild_TARGETS := AllLangHelp \
AllLangPackage \
AllLangResTarget \
AutoInstall \
CliLibrary \
CliNativeLibrary \
CliUnoApiTarget \
Configuration \
CppunitTest \
CustomTarget \
Dictionary \
Executable \
Extension \
ExternalPackage \
ExternalProject \
GeneratedPackage \
InstallModule \
InstallScript \
InternalUnoApi \
Jar \
JunitTest \
Library \
Module \
Package \
PackageSet \
Pagein \
Postprocess \
Pyuno \
PythonTest \
Rdb \
StaticLibrary \
UIConfig \
UnoApi \
UnpackedTarball \
WinResTarget \
Zip \
# build a generic gbuild target
$(foreach target,$(gbuild_TARGETS),$(target)_% $(foreach module,$(gbuild_modules),$(target)_$(module)/%)):
$(GNUMAKE) -j $(PARALLELISM) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $@
#
# Clean
#
clean: clean-host clean-build
clean-host:
rm -fr $(DEVINSTALLDIR)
rm -fr $(INSTDIR)
rm -fr $(OUTDIR)
rm -fr $(WORKDIR)
rm -fr install
clean-build:
ifeq ($(CROSS_COMPILING),YES)
rm -fr $(INSTDIR_FOR_BUILD)
rm -fr $(OUTDIR_FOR_BUILD)
rm -fr $(WORKDIR_FOR_BUILD)
endif
include $(SRCDIR)/compilerplugins/Makefile.mk
#
# Distclean
#
distclean : clean compilerplugins-clean
rm -fr \
$(BUILDDIR)/Makefile \
$(BUILDDIR)/aclocal.m4 \
$(BUILDDIR)/autom4te.cache \
$(BUILDDIR)/config.log \
$(BUILDDIR)/config.status \
$(BUILDDIR)/config_build.mk \
$(BUILDDIR)/config_host.mk \
$(BUILDDIR)/config_host.mk.stamp \
$(BUILDDIR)/config_host/*.h \
$(BUILDDIR)/config_host/*.mk \
$(BUILDDIR)/configure \
$(BUILDDIR)/instsetoo_native/util/openoffice.lst \
$(BUILDDIR)/lo.xcent
find $(SOLARENV)/gdb -name "*.pyc" -exec rm {} \;
#
# custom command
#
cmd:
echo "custom cmd" && ( $(cmd) )
#
# Fetch
#
ifneq ($(DO_FETCH_TARBALLS),NO)
include $(SRCDIR)/Makefile.fetch
fetch: download
fetch: get-submodules
ifneq (,$(wildcard $(SRCDIR)/.git))
get-submodules:
ifneq ($(foreach i,$(GIT_NEEDED_SUBMODULES),$(i)/.git),$(wildcard $(foreach i,$(GIT_NEEDED_SUBMODULES),$(i)/.git)))
cd $(SRCDIR) && ./g -f clone
endif
@cd $(SRCDIR) && ./g -z # make sure the git hooks are in place enen if no submodules are needed
else # these sources are from a tarball, so get the other source tarballs
gb_LO_VER := $(shell . $(SRCDIR)/sources.ver && echo $$lo_sources_ver)
$(if $(gb_LO_VER),,$(error Error while retrieving $$lo_sources_ver from $(SRCDIR)/sources.ver))
get-submodules: | download
ifneq ($(foreach i,$(subst helpcontent2,help,$(GIT_NEEDED_SUBMODULES)),$(SRCDIR)/src/libreoffice-$(i)-$(gb_LO_VER)),$(wildcard $(foreach i,$(subst helpcontent2,help,$(GIT_NEEDED_SUBMODULES)),$(SRCDIR)/src/libreoffice-$(i)-$(gb_LO_VER))))
$(foreach i,$(subst helpcontent2,help,$(GIT_NEEDED_SUBMODULES)),\
$(call fetch_Download_item,http://download.documentfoundation.org/libreoffice/src/$(shell echo $(gb_LO_VER) | sed -e "s/\([0-9]*\.[0-9]*\.[0-9]*\).*/\1/"),libreoffice-$(i)-$(gb_LO_VER).tar.xz,no-check))
$(SRCDIR)/bin/unpack-sources $(SRCDIR) $(foreach i,$(subst helpcontent2,help,$(GIT_NEEDED_SUBMODULES)),\
$(TARFILE_LOCATION)/libreoffice-$(i)-$(gb_LO_VER).tar.xz)
endif
endif
else
fetch:
@echo "Automatic fetching of external tarballs is disabled."
endif
#
# Bootstap
#
bootstrap: compilerplugins
#
# Build
#
build: bootstrap fetch $(if $(filter $(INPATH),$(INPATH_FOR_BUILD)),,cross-toolset)
$(GNUMAKE) -j $(PARALLELISM) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild
ifneq ($(filter-out WNT MACOSX IOS ANDROID,$(OS)),)
install-gdb-printers -a $(INSTDIR)
endif
ifeq ($(OS),IOS)
$(GNUMAKE) -j $(PARALLELISM) $(GMAKE_OPTIONS) ios
endif
build-nocheck: bootstrap fetch $(if $(filter $(INPATH),$(INPATH_FOR_BUILD)),,cross-toolset)
$(GNUMAKE) -j $(PARALLELISM) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild build
cross-toolset: bootstrap fetch
$(GNUMAKE) gb_Side=build -j $(PARALLELISM) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild build-tools
ifneq ($(OS),MACOSX)
#
# 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"
endif # !MACOSX
dev-install:
@echo
@echo "dev-install is obsolete! Just build with \"make check\" and run"
ifeq ($(OS),MACOSX)
@echo " open instdir/*/$(PRODUCTNAME).app"
@echo
@echo "To debug: gdb instdir/*/$(PRODUCTNAME).app/Contents/MacOS/soffice"
else
@echo " instdir/*/program/soffice"
endif
@echo
@echo "(only if you have good reason to test an actual installation: make test-install)"
@echo
@false
test-install: build
@rm -rf $(DEVINSTALLDIR)
@mkdir $(DEVINSTALLDIR)
ifeq ($(OS_FOR_BUILD),WNT)
cd $(SRCDIR)/instsetoo_native && $(GNUMAKE) LIBO_DEV_INSTALL=TRUE $(GMAKE_OPTIONS)
else
@ooinstall $(DEVINSTALLDIR)/opt
ifneq ($(MACOSX_CODESIGNING_IDENTITY),)
@macosx-codesign-app-bundle $(DEVINSTALLDIR)/opt/LibreOffice.app
endif
ifneq ($(OS),MACOSX)
@install-gdb-printers -L
endif
endif
@echo
@echo "If you want to edit the .ui files with glade first execute:"
@echo
@echo "export GLADE_CATALOG_SEARCH_PATH=$(SRCDIR)/install/share/glade"
ifeq ($(OS),LINUX)
@echo
@echo "Test installation finished, you can now execute:"
@echo
@echo "$(DEVINSTALLDIR)/program/soffice"
else ifeq ($(OS),MACOSX)
@echo
@echo "Developer installation finished, you can now run:"
@echo
@echo " open $(DEVINSTALLDIR)/LibreOffice.app"
@echo
@echo "To debug: gdb $(DEVINSTALLDIR)/LibreOffice.app/Contents/MacOS/soffice"
endif
install-tb:
@rm -rf $(DEVINSTALLDIR)
@mkdir $(DEVINSTALLDIR)
ifeq ($(OS_FOR_BUILD),WNT)
cd $(SRCDIR)/instsetoo_native && $(GNUMAKE) LIBO_DEV_INSTALL=TRUE $(GMAKE_OPTIONS)
else
@ooinstall $(DEVINSTALLDIR)/opt
@install-gdb-printers
endif
@rm -f $(BUILDDIR)/install && ln -s $(DEVINSTALLDIR)/opt/ $(BUILDDIR)/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)
@mkdir -p $(SRCDIR)/callcatcher/config_host
@cp config_host/* callcatcher/config_host
@cp config_host.mk* callcatcher
@sed -e s,$$INPATH,callcatcher,g config_host.mk | sed -e s,"export OOO_JUNIT_JAR=.*","export OOO_JUNIT_JAR=",g > $(SRCDIR)/callcatcher/config_host.mk
@sed -i -e s,g++,"callcatcher g++",g $(SRCDIR)/callcatcher/config_host.mk
@sed -i -e s,gcc,"callcatcher gcc",g $(SRCDIR)/callcatcher/config_host.mk
@echo unexport ARCH_FLAGS >> $(SRCDIR)/callcatcher/config_host.mk
@echo unexport CFLAGS >> $(SRCDIR)/callcatcher/config_host.mk
@echo unexport CXXFLAGS >> $(SRCDIR)/callcatcher/config_host.mk
$(GNUMAKE) -f $(SOLARENV)/bin/callcatcher.Makefile findunusedcode
@grep ::.*\( unusedcode.all \
| grep -v ^Atom \
| grep -v ^atom:: \
| grep -v ^boost:: \
| grep -v ^CIcc \
| grep -v ^CLuceneError:: \
| grep -v ^cppu:: \
| grep -v ^CppUnit:: \
| grep -v ^Dde \
| grep -v ^graphite2:: \
| grep -v ^jvmaccess:: \
| grep -v ^libcdr:: \
| grep -v ^libcmis:: \
| grep -v ^libmspub:: \
| grep -v ^libvisio:: \
| grep -v ^libwpg:: \
| grep -v ^libwps_tools_win:: \
| grep -v ^lucene:: \
| grep -v ^Matrix3d:: \
| grep -v ^RelatedMultipart:: \
| grep -v ^salhelper:: \
| grep -v ^VSDInternalStream:: \
| grep -v ^WP1 \
| grep -v ^WP3 \
| grep -v ^WP42 \
| grep -v ^WP6 \
| grep -v ^WPG \
| grep -v ^WPS \
| grep -v WPX \
| grep -v ^WSObject \
> unusedcode.easy
check: build subsequentcheck
dump-deps:
@$(SRCDIR)/bin/module-deps.pl $(GNUMAKE) $(SRCDIR)/Makefile.gbuild
dump-deps-png:
@$(SRCDIR)/bin/module-deps.pl $(GNUMAKE) $(SRCDIR)/Makefile.gbuild | dot -Tpng -o lo.png
subsequentcheck :| $(if $(filter-out subsequentcheck,$(MAKECMDGOALS)),build)
$(GNUMAKE) -j $(CHECK_PARALLELISM) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $@
.PHONY : debugrun help slowcheck translations unitcheck
debugrun help slowcheck translations unitcheck :
$(GNUMAKE) -j $(PARALLELISM) $(GMAKE_OPTIONS) -f $(SRCDIR)/Makefile.gbuild $@
endif # MAKE_RESTARTS
# vim: set noet sw=4 ts=4: