summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorsb <sb@openoffice.org>2011-02-11 11:00:41 +0100
committersb <sb@openoffice.org>2011-02-11 11:00:41 +0100
commit54a05a00d7e4cb38390a23267207ef65e01044ad (patch)
treefce62839e8b178091ddd19a9092c8f149c11d34a /solenv
parent9770f801119ebf03ba8e01ee19edf6a00182ea28 (diff)
parent6952c9ac8a10baaedd0ca4cad6b91ae94c941f43 (diff)
sb138: merged in re/DEV300_next towards DEV300_m100
Diffstat (limited to 'solenv')
-rw-r--r--solenv/bin/macosx-change-install-names.pl12
-rwxr-xr-xsolenv/bin/packmodule7
-rwxr-xr-xsolenv/bin/subsequenttests15
-rw-r--r--solenv/bin/transform_description.pl6
-rw-r--r--solenv/config/sdev300.ini1
-rw-r--r--solenv/config/ssolar.cmn2
-rw-r--r--solenv/gbuild/AllLangResTarget.mk30
-rw-r--r--solenv/gbuild/ComponentTarget.mk18
-rw-r--r--solenv/gbuild/CppunitTest.mk96
-rw-r--r--solenv/gbuild/CustomTarget.mk96
-rw-r--r--solenv/gbuild/Deliver.mk21
-rw-r--r--solenv/gbuild/Executable.mk11
-rw-r--r--solenv/gbuild/Helper.mk11
-rw-r--r--solenv/gbuild/JavaClassSet.mk81
-rw-r--r--solenv/gbuild/JunitTest.mk97
-rw-r--r--solenv/gbuild/Library.mk38
-rw-r--r--solenv/gbuild/LinkTarget.mk142
-rw-r--r--solenv/gbuild/Module.mk124
-rw-r--r--solenv/gbuild/Package.mk27
-rw-r--r--solenv/gbuild/PrecompiledHeaders.mk2
-rw-r--r--solenv/gbuild/SdiTarget.mk4
-rw-r--r--solenv/gbuild/StaticLibrary.mk18
-rw-r--r--solenv/gbuild/TargetLocations.mk31
-rw-r--r--solenv/gbuild/Tempfile.mk18
-rw-r--r--solenv/gbuild/extensions/post_PackModule.mk (renamed from solenv/gbuild/extensions/PackModule.mk)8
-rw-r--r--solenv/gbuild/extensions/post_SetupLocal.mk (renamed from solenv/gbuild/extensions/SetupLocal.mk)0
-rw-r--r--solenv/gbuild/extensions/pre_SharedLangList.mk38
-rw-r--r--solenv/gbuild/gbuild.mk50
-rwxr-xr-xsolenv/gbuild/platform/linux.mk179
-rwxr-xr-xsolenv/gbuild/platform/macosx.mk261
-rwxr-xr-xsolenv/gbuild/platform/solaris.mk171
-rwxr-xr-xsolenv/gbuild/platform/windows.mk233
-rw-r--r--solenv/gbuild/platform/winmingw.mk182
-rw-r--r--solenv/gbuild/processdelivered.awk5
-rw-r--r--solenv/gbuild/processdeps.awk8
-rw-r--r--solenv/gbuild/templates/AllLangResTarget.mk49
-rw-r--r--solenv/gbuild/templates/CppunitTest.mk41
-rw-r--r--solenv/gbuild/templates/Executable.mk45
-rw-r--r--solenv/gbuild/templates/JunitTest.mk49
-rw-r--r--solenv/gbuild/templates/Library.mk86
-rw-r--r--solenv/gbuild/templates/Makefile38
-rw-r--r--solenv/gbuild/templates/Module.mk45
-rw-r--r--solenv/gbuild/templates/Package.mk42
-rw-r--r--solenv/gbuild/templates/StaticLibrary.mk35
-rw-r--r--solenv/gbuild/templates/makefile.mk40
-rwxr-xr-x[-rw-r--r--]solenv/inc/_tg_rslb.mk60
-rw-r--r--solenv/inc/_tg_shl.mk50
-rw-r--r--solenv/inc/installationtest.mk21
-rw-r--r--solenv/inc/langlist.mk163
-rw-r--r--solenv/inc/libs.mk5
-rw-r--r--solenv/inc/minor.mk6
-rw-r--r--solenv/inc/postmac.h6
-rw-r--r--solenv/inc/postset.mk136
-rw-r--r--solenv/inc/premac.h6
-rw-r--r--solenv/inc/settings.mk3
-rw-r--r--solenv/inc/tg_jar.mk14
-rw-r--r--solenv/inc/tg_java.mk11
-rw-r--r--solenv/inc/tg_rslb.mk6
-rw-r--r--solenv/inc/tg_shl.mk5
-rwxr-xr-x[-rw-r--r--]solenv/inc/wntmsci11.mk3
60 files changed, 2285 insertions, 723 deletions
diff --git a/solenv/bin/macosx-change-install-names.pl b/solenv/bin/macosx-change-install-names.pl
index 05fa12f06070..d678f05052e7 100644
--- a/solenv/bin/macosx-change-install-names.pl
+++ b/solenv/bin/macosx-change-install-names.pl
@@ -59,6 +59,18 @@ sub action($$$)
'Usage: app|shl|extshl UREBIN|URELIB|OOO|SDK|BRAND|OXT|BOXT|NONE <filepath>*';
$type = shift @ARGV;
$loc = shift @ARGV;
+if ($type eq "SharedLibrary")
+{
+ $type = "shl";
+}
+if ($type eq "Executable")
+{
+ $type = "app"
+}
+if ($type eq "Library")
+{
+ $type = "shl"
+}
if ($type eq "extshl")
{
$type = "shl";
diff --git a/solenv/bin/packmodule b/solenv/bin/packmodule
index dd1ac0439308..d3ae30d48dcd 100755
--- a/solenv/bin/packmodule
+++ b/solenv/bin/packmodule
@@ -29,7 +29,12 @@ import os, os.path, sys, zipfile
def paths_to_pack(loglines):
"""Returns a generator iterating the outdir fields (with platform) of gb_deliver.log lines."""
- return (line.split()[2] for line in loglines)
+ lines=[]
+ for line in loglines:
+ fields = line.split()
+ if len(fields) >= 3:
+ lines.append(fields[2])
+ return lines
def stripped_paths_to_pack(loglines):
"""returns a generator iterating the outdir fields (stripped of the platform) of gb_deliver.log lines."""
diff --git a/solenv/bin/subsequenttests b/solenv/bin/subsequenttests
index 8b52f45a6b12..ae9b61922bd8 100755
--- a/solenv/bin/subsequenttests
+++ b/solenv/bin/subsequenttests
@@ -69,6 +69,7 @@ while (@ARGV) {
my @testpaths = ();
my $sc = SourceConfig->new($ENV{'SOLARSRC'});
my $module;
+my $gbuildpath = "$ENV{'SOLARSRC'}/GNUmakefile";
foreach $module ($sc->get_active_modules()) {
my $buildlst = $sc->get_module_build_list($module);
next unless defined($buildlst);
@@ -106,9 +107,22 @@ if ($dry_run) {
foreach $path (@testpaths) {
print "$path\n";
}
+ print "$gbuildpath\n";
exit(0);
}
+my @failedpaths = ();
+my @gbuildargs = ("-j$max_running", "-s");
+if ($keep_going) {
+ push(@gbuildargs,"-k");
+}
+push(@gbuildargs, "--file=$gbuildpath");
+push(@gbuildargs, "subsequentcheck");
+if (system($ENV{'GNUMAKE'}, @gbuildargs) != 0) {
+ push(@failedpaths,$gbuildpath);
+ @testpaths = () unless $keep_going;
+}
+
my $cmd = 'dmake';
foreach (@ARGV) {
s/'/'\''/g;
@@ -117,7 +131,6 @@ foreach (@ARGV) {
$cmd .= ' 2>&1 |';
my %pids = ();
-my @failedpaths = ();
my $running = 0;
my $counter = 0;
while (@testpaths || $running > 0) {
diff --git a/solenv/bin/transform_description.pl b/solenv/bin/transform_description.pl
index 87dcb21deb53..b1adb03626dd 100644
--- a/solenv/bin/transform_description.pl
+++ b/solenv/bin/transform_description.pl
@@ -1,9 +1,9 @@
#!/usr/bin/perl
#*************************************************************************
-#*
+#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
-# Copyright 2009 by Sun Microsystems, Inc.
+# Copyright 2000, 2011 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
#
@@ -24,7 +24,7 @@
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
-#************************************************************************/
+#*************************************************************************
parse_args();
execute_args();
diff --git a/solenv/config/sdev300.ini b/solenv/config/sdev300.ini
index ce459e176b77..50900cad0d7f 100644
--- a/solenv/config/sdev300.ini
+++ b/solenv/config/sdev300.ini
@@ -25,7 +25,6 @@ common
ENABLE_RANDR TRUE
ENABLE_REPORTBUILDER YES
ENABLE_SVCTAGS YES
- ENABLE_VBA YES
ISERVER iserver.germany.sun.com
LU_HGFLAG ""
LU_NOSOURCE ""
diff --git a/solenv/config/ssolar.cmn b/solenv/config/ssolar.cmn
index ac84aee99684..f30fb227fea6 100644
--- a/solenv/config/ssolar.cmn
+++ b/solenv/config/ssolar.cmn
@@ -98,7 +98,6 @@ common
ENABLE_REPORTBUILDER
ENABLE_REPORTDESIGN
ENABLE_SVCTAGS
- ENABLE_VBA
FORCE2ARCHIVE
PA_VER
ENABLE_NAS
@@ -291,7 +290,6 @@ common
URE_BOOTSTRAP
USE_FT_EMBOLDEN
USE_XINERAMA
- VBA_EXTENSION
XINERAMA_LINK
}
restore
diff --git a/solenv/gbuild/AllLangResTarget.mk b/solenv/gbuild/AllLangResTarget.mk
index b937ac7a35b5..3bf50bd4e988 100644
--- a/solenv/gbuild/AllLangResTarget.mk
+++ b/solenv/gbuild/AllLangResTarget.mk
@@ -2,7 +2,7 @@
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
-# Copyright 2009 by Sun Microsystems, Inc.
+# Copyright 2000, 2011 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
#
@@ -14,12 +14,12 @@
#
# 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
+# 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).
#
# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
+# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
@@ -43,14 +43,14 @@ $(call gb_Helper_abbreviate_dirs_native,\
-p $(firstword $(subst /, ,$(2))) \
-i $(3) \
-o $(1) \
- -m $(4) \
+ -m $(SDF) \
-l all)
endef
define gb_SrsPartMergeTarget__rules
$$(call gb_SrsPartMergeTarget_get_target,%) : $(1)/% $$(gb_Helper_MISCDUMMY) | $$(gb_SrsPartMergeTarget_TRANSEXTARGET) $$(gb_SrsPartMergeTarget_TRANSEXAUXDEPS)
- $$(call gb_SrsPartMergeTarget__command,$$@,$$*,$$<,$$(SDF))
+ $$(if $$(SDF),$$(call gb_SrsPartMergeTarget__command,$$@,$$*,$$<),mkdir -p $$(dir $$@) && cp $$< $$@)
endef
@@ -67,13 +67,13 @@ gb_SrsPartTarget_REPOS := $(gb_REPOS)
define gb_SrsPartTarget__command
$(call gb_Helper_abbreviate_dirs_native,\
mkdir -p $(dir $(1)) && \
- RESPONSEFILE=`$(gb_MKTEMP) $(gb_Helper_MISC)` && \
+ RESPONSEFILE=`$(gb_MKTEMP)` && \
echo "-s \
- $(4) \
+ $(INCLUDE) \
-I$(dir $(3)) \
- $(5) \
+ $(DEFS) \
-fp=$(1) \
- $(6)" > $${RESPONSEFILE} && \
+ $(if $<,$<,$(MERGEDFILE))" > $${RESPONSEFILE} && \
$(gb_SrsPartTarget_RSCCOMMAND) -presponse @$${RESPONSEFILE} && \
rm -rf $${RESPONSEFILE})
@@ -81,8 +81,8 @@ endef
define gb_SrsPartTarget__rules
$$(call gb_SrsPartTarget_get_target,%) : $(1)/% $$(gb_Helper_MISCDUMMY) | $$(gb_SrsPartTarget_RSCTARGET)
- $$(call gb_SrsPartTarget__command_dep,$$*,$$<,$$(INCLUDE),$$(DEFS))
- $$(call gb_SrsPartTarget__command,$$@,$$*,$$<,$$(INCLUDE),$$(DEFS),$$(lastword $$< $$(MERGEDFILE)))
+ $$(call gb_SrsPartTarget__command_dep,$$*,$$<)
+ $$(call gb_SrsPartTarget__command,$$@,$$*,$$<)
ifeq ($(gb_FULLDEPS),$(true))
$$(call gb_SrsPartTarget_get_dep_target,%) : $(1)/% $$(gb_Helper_MISCDUMMY)
@@ -102,12 +102,12 @@ endif
define gb_SrsPartTarget_SrsPartTarget
-ifeq ($(strip $(WITH_LANG)),)
+ifeq ($(strip $(gb_WITH_LANG)),)
$(call gb_SrsPartTarget_get_target,$(1)) : MERGEDFILE :=
else
$(call gb_SrsPartTarget_get_target,$(1)) : MERGEDFILE := $(call gb_SrsPartMergeTarget_get_target,$(1))
$(call gb_SrsPartTarget_get_target,$(1)) : $(call gb_SrsPartMergeTarget_get_target,$(1))
-$(call gb_SrsPartMergeTarget_get_target,$(1)) : SDF := $(gb_SrsPartMergeTarget_SDFLOCATION)$(dir $(1))localize.sdf
+$(call gb_SrsPartMergeTarget_get_target,$(1)) : SDF := $(realpath $(gb_SrsPartMergeTarget_SDFLOCATION)$(dir $(1))localize.sdf)
endif
endef
@@ -212,7 +212,7 @@ $(call gb_ResTarget_get_target,%) : $(gb_Helper_MISCDUMMY) | $(gb_ResTarget_RSCT
$(call gb_Helper_abbreviate_dirs_native,\
mkdir -p $(dir $@) $(OUTDIR)/bin \
$(dir $(call gb_ResTarget_get_imagelist_target,$*)) && \
- RESPONSEFILE=`$(gb_MKTEMP) $(gb_Helper_MISC)` && \
+ RESPONSEFILE=`$(gb_MKTEMP)` && \
echo "-r -p \
-lg$(LANGUAGE) \
-fs=$@ \
@@ -282,7 +282,7 @@ endef
# AllLangResTarget
-gb_AllLangResTarget_LANGS := en-US $(WITH_LANG)
+gb_AllLangResTarget_LANGS := en-US $(filter-out en-US,$(gb_WITH_LANG))
define gb_AllLangResTarget_set_langs
gb_AllLangResTarget_LANGS := $(1)
diff --git a/solenv/gbuild/ComponentTarget.mk b/solenv/gbuild/ComponentTarget.mk
index 15d162ee29c3..5fc15baf744c 100644
--- a/solenv/gbuild/ComponentTarget.mk
+++ b/solenv/gbuild/ComponentTarget.mk
@@ -27,30 +27,21 @@
gb_ComponentTarget_REPOS := $(gb_REPOS)
-ifeq ($(SYSTEM_LIBXSLT),YES)
-gb_ComponentTarget_XSLTPROCTARGET :=
-gb_ComponentTarget_XSLTPROCCOMMAND := xsltproc
-else
-gb_ComponentTarget_XSLTPROCTARGET := $(call gb_Executable_get_target,xsltproc)
-gb_ComponentTarget_XSLTPROCCOMMAND := $(gb_ComponentTarget_XSLTPROCPRECOMMAND) $(gb_ComponentTarget_XSLTPROCTARGET)
-endif
gb_ComponentTarget_XSLTCOMMANDFILE := $(SOLARENV)/bin/createcomponent.xslt
gb_ComponentTarget_get_source = $(1)/$(2).component
-# gb_ComponentTarget_PREFIXBASISNATIVE is set by the platform
-
define gb_ComponentTarget__command
$(call gb_Output_announce,$(3),$(true),CMP,1)
$(call gb_Helper_abbreviate_dirs_native,\
mkdir -p $(dir $(1)) && \
- $(gb_ComponentTarget_XSLTPROCCOMMAND) --nonet --stringparam uri \
- '$(gb_ComponentTarget_PREFIXBASISNATIVE)$(LIBFILENAME)' -o $(1) \
+ $(gb_XSLTPROC) --nonet --stringparam uri \
+ '$(subst \d,$$,$(COMPONENTPREFIX))$(LIBFILENAME)' -o $(1) \
$(gb_ComponentTarget_XSLTCOMMANDFILE) $(2))
endef
define gb_ComponentTarget__rules
-$$(call gb_ComponentTarget_get_target,%) : $$(call gb_ComponentTarget_get_source,$(1),%) | $(gb_ComponentTarget_XSLTPROCTARGET)
+$$(call gb_ComponentTarget_get_target,%) : $$(call gb_ComponentTarget_get_source,$(1),%) | $(gb_XSLTPROCTARGET)
$$(call gb_ComponentTarget__command,$$@,$$<,$$*)
$$(call gb_ComponentTarget_get_clean_target,%) :
@@ -68,7 +59,8 @@ $(call gb_ComponentTarget_get_external_target,%) :
$(call gb_Deliver_deliver,$<,$@)
define gb_ComponentTarget_ComponentTarget
-$(call gb_ComponentTarget_get_target,$(1)) : LIBFILENAME := $(or $(3),$(2))
+$(call gb_ComponentTarget_get_target,$(1)) : LIBFILENAME := $(3)
+$(call gb_ComponentTarget_get_target,$(1)) : COMPONENTPREFIX := $(2)
$(call gb_ComponentTarget_get_outdir_target,$(1)) : $(call gb_ComponentTarget_get_target,$(1))
$(call gb_Deliver_add_deliverable,$(call gb_ComponentTarget_get_outdir_target,$(1)),$(call gb_ComponentTarget_get_target,$(1)))
diff --git a/solenv/gbuild/CppunitTest.mk b/solenv/gbuild/CppunitTest.mk
new file mode 100644
index 000000000000..a3b18a4a0bbd
--- /dev/null
+++ b/solenv/gbuild/CppunitTest.mk
@@ -0,0 +1,96 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# 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.
+#
+# 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).
+#
+# 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.
+#
+#*************************************************************************
+
+
+# CppunitTest class
+
+# defined by platform
+# gb_CppunitTest_TARGETTYPE
+# gb_CppunitTest_get_filename
+gb_CppunitTest_CPPTESTTARGET := $(call gb_Executable_get_target,cppunittester)
+gb_CppunitTest_CPPTESTCOMMAND := $(gb_CppunitTest_CPPTESTPRECOMMAND) $(gb_CppunitTest_CPPTESTTARGET)
+gb_CppunitTest__get_linktargetname = CppunitTest/$(call gb_CppunitTest_get_filename,$(1))
+
+.PHONY : $(call gb_CppunitTest_get_clean_target,%)
+$(call gb_CppunitTest_get_clean_target,%) :
+ $(call gb_Helper_abbreviate_dirs,\
+ rm -f $(call gb_CppunitTest_get_target,$*) $(call gb_CppunitTest_get_target,$*).log)
+
+.PHONY : $(call gb_CppunitTest_get_target,%)
+$(call gb_CppunitTest_get_target,%) : $(gb_CppunitTest_CPPTESTTARGET)
+ $(call gb_Output_announce,$*,$(true),CUT,2)
+ $(call gb_Helper_abbreviate_dirs_native,\
+ mkdir -p $(dir $@) && \
+ $(gb_CppunitTest_CPPTESTCOMMAND) $(call gb_LinkTarget_get_target,CppunitTest/$(call gb_CppunitTest_get_libfilename,$*)) > $@.log 2>&1 || (cat $@.log && false))
+
+define gb_CppunitTest_CppunitTest
+$(call gb_CppunitTest__CppunitTest_impl,$(1),$(call gb_CppunitTest__get_linktargetname,$(1)))
+
+endef
+
+define gb_CppunitTest__CppunitTest_impl
+$(call gb_LinkTarget_LinkTarget,$(2))
+$(call gb_LinkTarget_set_targettype,$(2),CppunitTest)
+$(call gb_LinkTarget_add_linked_libs,$(2),cppunit)
+$(call gb_CppunitTest_get_target,$(1)) : $(call gb_LinkTarget_get_target,$(2))
+$(call gb_CppunitTest_get_clean_target,$(1)) : $(call gb_LinkTarget_get_clean_target,$(2))
+$(call gb_CppunitTest_CppunitTest_platform,$(1),$(2),$(gb_CppunitTest_DLLDIR)/$(call gb_CppunitTest_get_libfilename,$(1)))
+$$(eval $$(call gb_Module_register_target,$(call gb_CppunitTest_get_target,$(1)),$(call gb_CppunitTest_get_clean_target,$(1))))
+
+endef
+
+define gb_CppunitTest__forward_to_Linktarget
+gb_CppunitTest_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_CppunitTest__get_linktargetname,$$(1)),$$(2),$$(3))
+
+endef
+
+$(eval $(foreach method,\
+ add_cobject \
+ add_cobjects \
+ add_cxxobject \
+ add_cxxobjects \
+ add_objcxxobject \
+ add_objcxxobjects \
+ add_exception_objects \
+ add_noexception_objects \
+ set_cflags \
+ set_cxxflags \
+ set_objcxxflags \
+ set_defs \
+ set_include \
+ set_ldflags \
+ set_library_path_flags \
+ add_linked_libs \
+ add_linked_static_libs \
+ add_package_headers \
+ add_sdi_headers \
+ add_precompiled_header \
+,\
+ $(call gb_CppunitTest__forward_to_Linktarget,$(method))\
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/CustomTarget.mk b/solenv/gbuild/CustomTarget.mk
new file mode 100644
index 000000000000..082943504594
--- /dev/null
+++ b/solenv/gbuild/CustomTarget.mk
@@ -0,0 +1,96 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# 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.
+#
+# 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).
+#
+# 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.
+#
+#*************************************************************************
+
+gb_CustomTarget_REPOSITORYNAMES := $(gb_Helper_REPOSITORYNAMES)
+
+# N.B.: putting the "+" there at the start activates the GNU make job server
+define gb_CustomTarget__command
++$(call gb_Helper_abbreviate_dirs,\
+ mkdir -p $(call gb_CustomTarget_get_workdir,$(2)) && \
+ $(MAKE) -C $(call gb_CustomTarget_get_workdir,$(2)) -f $< && \
+ touch $(1))
+
+endef
+
+define gb_CustomTarget__rules
+$$(call gb_CustomTarget_get_repo_target,$(1),%) :
+ $$(call gb_Output_announce,$$*,$$(true),MAK,3)
+ $$(call gb_CustomTarget__command,$$@,$$*)
+
+$$(call gb_CustomTarget_get_target,%) : $$(call gb_CustomTarget_get_repo_target,$(1),%)
+ $$(call gb_Helper_abbreviate_dirs,\
+ touch $$@)
+
+endef
+
+.PHONY: $(call gb_CustomTarget_get_clean_target,%)
+$(call gb_CustomTarget_get_clean_target,%) :
+ $(call gb_Output_announce,$*,$(false),MAK,3)
+ $(call gb_Helper_abbreviate_dirs,\
+ rm -rf $(call gb_CustomTarget_get_workdir,$*) && \
+ rm -f $(call gb_CustomTarget_get_target,$*) \
+ $(foreach reponame,$(gb_CustomTarget_REPOSITORYNAMES),$(call gb_CustomTarget_get_repo_target,$(reponame),$*)))
+
+
+$(foreach reponame,$(gb_CustomTarget_REPOSITORYNAMES),$(eval $(call gb_CustomTarget__rules,$(reponame))))
+
+define gb_CustomTarget__get_makefile
+$(1)/$(2)/Makefile
+endef
+
+define gb_CustomTarget_CustomTarget
+$(foreach reponame,$(gb_CustomTarget_REPOSITORYNAMES),\
+ $(eval $(call gb_CustomTarget_get_repo_target,$(reponame),$(1)) : $(call gb_CustomTarget__get_makefile,$($(reponame)),$(1))))
+
+$(call gb_CustomTarget_get_workdir,$(1))/% : $(call gb_CustomTarget_get_target,$(1))
+
+endef
+
+
+define gb_CustomTarget_add_dependency
+$(foreach reponame,$(gb_CustomTarget_REPOSITORYNAMES),\
+ $(eval $(call gb_CustomTarget_get_repo_target,$(reponame),$(1)) : $($(reponame))/$(2)))
+
+endef
+
+define gb_CustomTarget_add_dependencies
+$(foreach dependency,$(2),$(call gb_CustomTarget_add_dependency,$(1),$(dependency)))
+
+endef
+
+define gb_CustomTarget_add_outdir_dependency
+$(foreach reponame,$(gb_CustomTarget_REPOSITORYNAMES),\
+ $(eval $(call gb_CustomTarget_get_repo_target,$(reponame),$(1)) : $(2)))
+
+endef
+
+define gb_CustomTarget_add_outdir_dependencies
+$(foreach dependency,$(2),$(call gb_CustomTarget_add_outdir_dependency,$(1),$(dependency)))
+
+endef
+
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/Deliver.mk b/solenv/gbuild/Deliver.mk
index 315c9df621f1..60772894f87c 100644
--- a/solenv/gbuild/Deliver.mk
+++ b/solenv/gbuild/Deliver.mk
@@ -62,8 +62,12 @@ endif
define gb_Deliver_setdeliverlogcommand
ifeq ($$(words $(gb_Module_ALLMODULES)),1)
$$(eval $$(call gb_Output_announce,$$(strip $$(gb_Module_ALLMODULES)),$$(true),LOG,1))
-deliverlog : COMMAND := mkdir -p $$(OUTDIR)/inc/$$(strip $$(gb_Module_ALLMODULES)) &&
-deliverlog : COMMAND += echo "$$(sort $$(gb_Deliver_DELIVERABLES)) " | $(gb_AWK) -f $$(GBUILDDIR)/processdelivered.awk > $$(OUTDIR)/inc/$$(strip $(gb_Module_ALLMODULES))/gb_deliver.log
+deliverlog : COMMAND := \
+ mkdir -p $$(OUTDIR)/inc/$$(strip $$(gb_Module_ALLMODULES)) \
+ && RESPONSEFILE=$$(call var2file,$(shell $(gb_MKTEMP)),100,$$(sort $$(gb_Deliver_DELIVERABLES))) \
+ && $(gb_AWK) -f $$(GBUILDDIR)/processdelivered.awk < $$$${RESPONSEFILE} \
+ > $$(OUTDIR)/inc/$$(strip $(gb_Module_ALLMODULES))/gb_deliver.log \
+ && rm -f $$$${RESPONSEFILE}
else
$$(eval $$(call gb_Output_announce,more than one module - creating no deliver.log,$$(true),LOG,1))
deliverlog : COMMAND := true
@@ -72,11 +76,20 @@ endef
# FIXME: this does not really work for real multi repository builds, but the
# deliver.log format is broken in that case anyway
-.PHONY : deliverlog
+.PHONY : deliverlog showdeliverables
deliverlog:
$(eval $(call gb_Deliver_setdeliverlogcommand))
$(call gb_Helper_abbreviate_dirs, $(COMMAND))
-all : deliverlog
+# all : deliverlog
+define gb_Deliver_print_deliverable
+$(info $(1) $(patsubst $(OUTDIR)/%,%,$(2)))
+endef
+
+showdeliverables :
+ $(eval MAKEFLAGS := s)
+ $(foreach deliverable,$(sort $(gb_Deliver_DELIVERABLES)),\
+ $(call gb_Deliver_print_deliverable,$(REPODIR)/$(firstword $(subst :, ,$(deliverable))),$(REPODIR)/$(lastword $(subst :, ,$(deliverable)))))
+ true
# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/Executable.mk b/solenv/gbuild/Executable.mk
index 341f7c7b66fd..a1cf1c34856b 100644
--- a/solenv/gbuild/Executable.mk
+++ b/solenv/gbuild/Executable.mk
@@ -2,7 +2,7 @@
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
-# Copyright 2009 by Sun Microsystems, Inc.
+# Copyright 2000, 2011 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
#
@@ -14,22 +14,20 @@
#
# 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
+# 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).
#
# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
+# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
#*************************************************************************
-
# Executable class
# defined by platform
-# gb_Executable_TARGETTYPEFLAGS
# gb_Executable_Executable_platform
.PHONY : $(call gb_Executable_get_clean_target,%)
@@ -50,7 +48,7 @@ endef
define gb_Executable__Executable_impl
$(call gb_LinkTarget_LinkTarget,$(2))
-$(call gb_LinkTarget_set_targettype_flags,$(2),$(gb_Executable_TARGETTYPEFLAGS) $(call gb_Executable_get_rpath,$(1)))
+$(call gb_LinkTarget_set_targettype,$(2),Executable)
$(call gb_Executable_get_target,$(1)) : $(call gb_LinkTarget_get_target,$(2))
$(call gb_Executable_get_clean_target,$(1)) : $(call gb_LinkTarget_get_clean_target,$(2))
$(call gb_Executable_Executable_platform,$(1),$(2))
@@ -73,6 +71,7 @@ $(eval $(foreach method,\
add_objcxxobjects \
add_exception_objects \
add_noexception_objects \
+ add_generated_exception_objects \
set_cflags \
set_cxxflags \
set_objcxxflags \
diff --git a/solenv/gbuild/Helper.mk b/solenv/gbuild/Helper.mk
index c5fe87bbc343..c62825dcb2e2 100644
--- a/solenv/gbuild/Helper.mk
+++ b/solenv/gbuild/Helper.mk
@@ -29,12 +29,22 @@ gb_Helper_NULLFILE := /dev/null
gb_Helper_MISC := $(WORKDIR)/Misc
+ifeq ($(JAVACOMPILER),)
+JAVACOMPILER := javac
+endif
+
+ifeq ($(JAVAINTERPRETER),)
+JAVAINTERPRETER := java
+endif
+
# general propose phony target
gb_Helper_PHONY := $(gb_Helper_MISC)/PHONY
# general propose empty dummy target
gb_Helper_MISCDUMMY := $(gb_Helper_MISC)/DUMMY
+gb_Helper_REPOSITORYNAMES :=
+
.PHONY : $(WORKDIR)/Misc/PHONY
$(gb_Helper_MISCDUMMY) :
@mkdir -p $(dir $@) && touch $@
@@ -85,6 +95,7 @@ endef
define gb_Helper_register_repository
gb_Helper_CURRENTREPOSITORY := $(1)
+gb_Helper_REPOSITORYNAMES += $(1)
endef
diff --git a/solenv/gbuild/JavaClassSet.mk b/solenv/gbuild/JavaClassSet.mk
new file mode 100644
index 000000000000..655aedbd17d9
--- /dev/null
+++ b/solenv/gbuild/JavaClassSet.mk
@@ -0,0 +1,81 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# 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.
+#
+# 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).
+#
+# 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.
+#
+#*************************************************************************
+
+gb_JavaClassSet_REPOSITORYNAMES := $(gb_Helper_REPOSITORYNAMES)
+gb_JavaClassSet_JAVACCOMMAND := $(JAVACOMPILER)
+
+define gb_JavaClassSet__command
+$(call gb_Helper_abbreviate_dirs_native,\
+ mkdir -p $(dir $(1)) && \
+ $(gb_JavaClassSet_JAVACCOMMAND) -cp "$(CLASSPATH)" -d $(call gb_JavaClassSet_get_classdir,$(2)) $(3) && \
+ touch $(1))
+
+endef
+
+define gb_JavaClassSet__rules
+$$(call gb_JavaClassSet_get_repo_target,$(1),%) :
+ $$(call gb_JavaClassSet__command,$$@,$$*,$$?)
+
+$$(call gb_JavaClassSet_get_target,%) : $$(call gb_JavaClassSet_get_repo_target,$(1),%)
+ $$(call gb_Output_announce,$$*,$$(true),JCS,3)
+ $$(call gb_Helper_abbreviate_dirs,\
+ touch $$@)
+
+endef
+
+$(call gb_JavaClassSet_get_clean_target,%) :
+ $(call gb_Output_announce,$*,$(false),JCS,3)
+ $(call gb_Helper_abbreviate_dirs,\
+ rm -rf $(dir $(call gb_JavaClassSet_get_target,$*)))
+
+
+$(foreach reponame,$(gb_JavaClassSet_REPOSITORYNAMES),$(eval $(call gb_JavaClassSet__rules,$(reponame))))
+
+define gb_JavaClassSet_JavaClassSet
+endef
+
+define gb_JavaClassSet__get_sourcefile
+$(1)/$(2).java
+endef
+
+define gb_JavaClassSet_add_sourcefile
+$(foreach reponame,$(gb_JavaClassSet_REPOSITORYNAMES),\
+ $(eval $(call gb_JavaClassSet_get_repo_target,$(reponame),$(1)) : $(call gb_JavaClassSet__get_sourcefile,$($(reponame)),$(2))))
+
+endef
+
+define gb_JavaClassSet_add_sourcefiles
+$(foreach sourcefile,$(2),$(call gb_JavaClassSet_add_sourcefile,$(1),$(sourcefile)))
+
+endef
+
+define gb_JavaClassSet_set_classpath
+$(call gb_JavaClassSet_get_target,$(1)) : CLASSPATH := $(2)
+
+endef
+
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/JunitTest.mk b/solenv/gbuild/JunitTest.mk
new file mode 100644
index 000000000000..afc9486fd5a4
--- /dev/null
+++ b/solenv/gbuild/JunitTest.mk
@@ -0,0 +1,97 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# 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.
+#
+# 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).
+#
+# 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.
+#
+#*************************************************************************
+
+
+# JunitTest class
+
+gb_JunitTest_JAVACOMMAND := $(JAVAINTERPRETER) $(JAVAIFLAGS)
+
+.PHONY : $(call gb_JunitTest_get_clean_target,%)
+$(call gb_JunitTest_get_clean_target,%) : $(call gb_JavaClassSet_get_clean_target,$(call gb_JunitTest_get_classsetname,%))
+ $(call gb_Helper_abbreviate_dirs,\
+ rm -f $@ $@.log)
+
+.PHONY : $(call gb_JunitTest_get_target,$(1))
+$(call gb_JunitTest_get_target,%) :
+ $(call gb_Output_announce,$*,$(true),JUT,2)
+ $(call gb_Helper_abbreviate_dirs_native,\
+ mkdir -p $(call gb_JunitTest_get_userdir,$*) && \
+ $(gb_JunitTest_JAVACOMMAND) -cp "$(CLASSPATH)" $(DEFS) org.junit.runner.JUnitCore $(CLASSES) 2>&1 > $@.log || (cat $@.log && false))
+ $(CLEAN_CMD)
+
+define gb_JunitTest_JunitTest
+$(call gb_JunitTest_get_target,$(1)) : CLASSPATH := $(value XCLASSPATH)$(gb_CLASSPATHSEP)$(call gb_JavaClassSet_get_classdir,$(call gb_JunitTest_get_classsetname,$(1)))$(gb_CLASSPATHSEP)$(OOO_JUNIT_JAR)$(gb_CLASSPATHSEP)$(OUTDIR)/lib
+$(call gb_JunitTest_get_target,$(1)) : CLASSES :=
+$(call gb_JunitTest_JunitTest_platform,$(1))
+
+$(call gb_JavaClassSet_JavaClassSet,$(call gb_JunitTest_get_classsetname,$(1)))
+$(call gb_JunitTest_get_target,$(1)) : $(call gb_JavaClassSet_get_target,$(call gb_JunitTest_get_classsetname,$(1)))
+$(eval $(call gb_Module_register_target,$(call gb_JunitTest_get_target,$(1)),$(call gb_JunitTest_get_clean_target,$(1))))
+endef
+
+define gb_JunitTest_set_defs
+$(call gb_JunitTest_get_target,$(1)) : DEFS := $(2)
+
+endef
+
+define gb_JunitTest_add_classes
+$(call gb_JunitTest_get_target,$(1)) : CLASSES += $(2)
+
+endef
+
+define gb_JunitTest_add_class
+$(call gb_JunitTest_add_classes,$(1),$(2))
+
+endef
+
+
+define gb_JunitTest_add_sourcefile
+$(call gb_JavaClassSet_add_sourcefile,$(call gb_JunitTest_get_classsetname,$(1)),$(2))
+
+endef
+
+define gb_JunitTest_add_sourcefiles
+$(foreach sourcefile,$(2),$(call gb_JunitTest_add_sourcefile,$(1),$(sourcefile)))
+
+endef
+
+define gb_JunitTest_set_classpath
+$(call gb_JunitTest_get_target,$(1)) : CLASSPATH := $(2)
+
+endef
+
+define gb_JunitTest_add_jar
+$(call gb_JunitTest_get_target,$(1)) : CLASSPATH := $$(CLASSPATH)$(gb_CLASSPATHSEP)$(2)
+$(call gb_JunitTest_get_target,$(1)) : $(2)
+
+endef
+
+define gb_JunitTest_add_jars
+$(foreach jar,$(2),$(call gb_JunitTest_add_jar,$(1),$(jar)))
+
+endef
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk
index 9a0c0aadf9bf..d697b1a777ca 100644
--- a/solenv/gbuild/Library.mk
+++ b/solenv/gbuild/Library.mk
@@ -2,7 +2,7 @@
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
-# Copyright 2009 by Sun Microsystems, Inc.
+# Copyright 2000, 2011 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
#
@@ -14,12 +14,12 @@
#
# 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
+# 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).
#
# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
+# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
@@ -28,21 +28,22 @@
# Library class
-# defined globally in gbuild.mk
+# defined globally in TargetLocations.mk
# gb_Library_OUTDIRLOCATION := $(OUTDIR)/lib
# gb_Library_DLLDIR := $(WORKDIR)/LinkTarget/Library
# defined by platform
+# gb_Library_COMPONENTPREFIXES
# gb_Library_DEFS
# gb_Library_DLLFILENAMES
# gb_Library_FILENAMES
-# gb_Library_TARGETS
-# gb_Library_TARGETTYPEFLAGS
# gb_Library_Library_platform
+# gb_Library_TARGETS
+gb_Library__get_linktargetname = Library/$(call gb_Library_get_filename,$(1))
# EVIL: gb_StaticLibrary and gb_Library need the same deliver rule because they are indistinguishable on windows
.PHONY : $(WORKDIR)/Clean/OutDir/lib/%$(gb_Library_PLAINEXT)
-$(WORKDIR)/Clean/OutDir/lib/%$(gb_Library_PLAINEXT) : $(call gb_LinkTarget_get_clean_target,$(call gb_Library_get_linktargetname,%$(gb_Library_PLAINEXT)))
+$(WORKDIR)/Clean/OutDir/lib/%$(gb_Library_PLAINEXT) :
$(call gb_Helper_abbreviate_dirs,\
rm -f $(OUTDIR)/lib/$*$(gb_Library_PLAINEXT) \
$(AUXTARGETS))
@@ -59,18 +60,19 @@ $$(eval $$(call gb_Output_info,Currently known libraries are: $(sort $(gb_Librar
$$(eval $$(call gb_Output_error,Library $(1) must be registered in Repository.mk))
endif
$(call gb_Library_get_target,$(1)) : AUXTARGETS :=
-$(call gb_Library__Library_impl,$(1),$(call gb_Library_get_linktargetname,$(call gb_Library_get_filename,$(1))))
+$(call gb_Library__Library_impl,$(1),$(call gb_Library__get_linktargetname,$(1)))
endef
define gb_Library__Library_impl
$(call gb_LinkTarget_LinkTarget,$(2))
-$(call gb_LinkTarget_set_targettype_flags,$(2),$(gb_Library_TARGETTYPEFLAGS) $(call gb_Library_get_rpath,$(1)))
+$(call gb_LinkTarget_set_targettype,$(2),Library)
$(call gb_LinkTarget_set_defs,$(2),\
$$(DEFS) \
$(gb_Library_DEFS) \
)
$(call gb_Library_get_target,$(1)) : $(call gb_LinkTarget_get_target,$(2))
+$(call gb_Library_get_clean_target,$(1)) : $(call gb_LinkTarget_get_clean_target,$(2))
$(call gb_Library_Library_platform,$(1),$(2),$(gb_Library_DLLDIR)/$(call gb_Library_get_dllname,$(1)))
$$(eval $$(call gb_Module_register_target,$(call gb_Library_get_target,$(1)),$(call gb_Library_get_clean_target,$(1))))
$(call gb_Deliver_add_deliverable,$(call gb_Library_get_target,$(1)),$(call gb_LinkTarget_get_target,$(2)))
@@ -78,17 +80,30 @@ $(call gb_Deliver_add_deliverable,$(call gb_Library_get_target,$(1)),$(call gb_L
endef
define gb_Library_set_componentfile
-$(call gb_ComponentTarget_ComponentTarget,$(2),$(call gb_Library_get_filename,$(1)),$(call gb_Library_get_dllname,$(1)))
+$(call gb_ComponentTarget_ComponentTarget,$(2),$(call gb_Library__get_componentprefix,$(1)),$(call gb_Library_get_runtime_filename,$(1)))
$(call gb_Library_get_target,$(1)) : $(call gb_ComponentTarget_get_outdir_target,$(2))
$(call gb_Library_get_clean_target,$(1)) : $(call gb_ComponentTarget_get_clean_target,$(2))
endef
+gb_Library__get_componentprefix = \
+ $(call gb_Library__get_layer_componentprefix,$(call \
+ gb_Library_get_layer,$(1)))
+
+gb_Library__get_layer_componentprefix = \
+ $(patsubst $(1):%,%,$(or \
+ $(filter $(1):%,$(gb_Library_COMPONENTPREFIXES)), \
+ $(call gb_Output_error,no ComponentTarget native prefix for layer '$(1)')))
+
+
define gb_Library__forward_to_Linktarget
-gb_Library_$(1) = $$(call gb_LinkTarget_$(1),$(call gb_Library_get_linktargetname,$$(call gb_Library_get_filename,$$(1))),$$(2),$$(3))
+gb_Library_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_Library__get_linktargetname,$$(1)),$$(2),$$(3))
endef
+gb_Library_get_runtime_filename = \
+ $(or $(call gb_Library_get_dllname,$(1)),$(call gb_Library_get_filename,$(1)))
+
$(eval $(foreach method,\
add_cobject \
add_cobjects \
@@ -98,6 +113,7 @@ $(eval $(foreach method,\
add_objcxxobjects \
add_exception_objects \
add_noexception_objects \
+ add_generated_exception_objects \
set_cflags \
set_cxxflags \
set_objcxxflags \
diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
index da16f6763002..612b85bf3e20 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -2,7 +2,7 @@
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
-# Copyright 2009 by Sun Microsystems, Inc.
+# Copyright 2000, 2011 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
#
@@ -14,12 +14,12 @@
#
# 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
+# 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).
#
# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
+# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
@@ -117,12 +117,12 @@ endef
define gb_CxxObject__rules
$$(call gb_CxxObject_get_target,%) : $$(call gb_CxxObject_get_source,$(1),%)
$$(eval $$(gb_CxxObject__set_pchflags))
- $$(call gb_CxxObject__command,$$@,$$*,$$<,$$(DEFS),$$(CXXFLAGS) $$(PCHFLAGS),$$(INCLUDE_STL) $$(INCLUDE))
+ $$(call gb_CxxObject__command,$$@,$$*,$$<)
ifeq ($(gb_FULLDEPS),$(true))
$$(call gb_CxxObject_get_dep_target,%) : $$(call gb_CxxObject_get_source,$(1),%)
$$(eval $$(gb_CxxObject__set_pchflags))
- $$(call gb_CxxObject__command_dep,$$@,$$*,$$<,$$(DEFS),$$(CXXFLAGS) $$(PCHFLAGS),$$(INCLUDE_STL) $$(INCLUDE))
+ $$(call gb_CxxObject__command_dep,$$@,$$*,$$<)
endif
endef
@@ -138,6 +138,38 @@ endif
gb_CxxObject_CxxObject =
+# GenCxxObject class
+
+gb_GenCxxObject_get_source = $(WORKDIR)/$(1).cxx
+# defined by platform
+# gb_CxxObject__command
+
+# This rule generates an "always rebuild" dep file, to have something to
+# include. The dep file will be overridden on the fly, when the object is
+# compiled.
+ifeq ($(gb_FULLDEPS),$(true))
+define gb_GenCxxObject__command_dep
+mkdir -p $(dir $(1)) && \
+ echo '$(call gb_GenCxxObject_get_target,$(2)) : $$(gb_Helper_PHONY)' > $(1)
+endef
+else
+gb_GenCxxObject__command_dep =
+endif
+
+$(call gb_GenCxxObject_get_target,%) : $(call gb_GenCxxObject_get_source,%)
+ $(call gb_CxxObject__command,$@,$*,$<)
+
+ifeq ($(gb_FULLDEPS),$(true))
+$(call gb_GenCxxObject_get_dep_target,%) : $(call gb_GenCxxObject_get_source,%)
+ $(call gb_GenCxxObject__command_dep,$@,$*,$<)
+
+$(call gb_GenCxxObject_get_dep_target,%) :
+ $(eval $(call gb_Output_error,Unable to find generated C++ file $(call gb_GenCxxObject_get_source,$*) in WORKDIR.))
+endif
+
+gb_GenCxxObject_GenCxxObject =
+
+
# ObjCxxObject class
#
gb_ObjCxxObject_REPOS := $(gb_REPOS)
@@ -192,39 +224,48 @@ gb_LinkTarget_DEFAULTDEFS := $(gb_GLOBALDEFS)
.PHONY : $(call gb_LinkTarget_get_clean_target,%)
$(call gb_LinkTarget_get_clean_target,%) :
$(call gb_Output_announce,$*,$(false),LNK,4)
- -$(call gb_Helper_abbreviate_dirs,\
- rm -f \
- $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
- $(foreach object,$(COBJECTS),$(call gb_CObject_get_dep_target,$(object))) \
- $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
- $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_dep_target,$(object))) \
- $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \
- $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_dep_target,$(object))) \
- $(call gb_LinkTarget_get_target,$*) \
- $(call gb_LinkTarget_get_dep_target,$*) \
- $(call gb_LinkTarget_get_headers_target,$*) \
- $(call gb_LinkTarget_get_external_headers_target,$*) \
- $(DLLTARGET) \
- $(AUXTARGETS))
+ RESPONSEFILE=$(call var2file,$(shell $(gb_MKTEMP)),200,\
+ $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
+ $(foreach object,$(COBJECTS),$(call gb_CObject_get_dep_target,$(object))) \
+ $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
+ $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_dep_target,$(object))) \
+ $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \
+ $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_dep_target,$(object))) \
+ $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
+ $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_dep_target,$(object))) \
+ $(call gb_LinkTarget_get_target,$*) \
+ $(call gb_LinkTarget_get_dep_target,$*) \
+ $(call gb_LinkTarget_get_headers_target,$*) \
+ $(call gb_LinkTarget_get_external_headers_target,$*) \
+ $(DLLTARGET) \
+ $(AUXTARGETS)) && \
+ cat $${RESPONSEFILE} |xargs -n 200 rm -f && \
+ rm -f $${RESPONSEFILE}
+
# cat the deps of all objects in one file, then we need only open that one file
define gb_LinkTarget__command_dep
$(call gb_Output_announce,LNK:$(2),$(true),DEP,1)
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
- cat $(gb_Helper_NULLFILE)\
+ RESPONSEFILE=$(call var2file,$(shell $(gb_MKTEMP)),200,\
$(foreach object,$(3),$(call gb_CObject_get_dep_target,$(object))) \
$(foreach object,$(4),$(call gb_CxxObject_get_dep_target,$(object))) \
- $(foreach object,$(5),$(call gb_ObjCxxObject_get_dep_target,$(object))) > $(1))
+ $(foreach object,$(5),$(call gb_ObjCxxObject_get_dep_target,$(object)))\
+ $(foreach object,$(6),$(call gb_GenCxxObject_get_dep_target,$(object)))\
+ ) && \
+ cat $${RESPONSEFILE} |xargs -n 200 cat > $(1)) && \
+ rm -f $${RESPONSEFILE}
+
endef
$(call gb_LinkTarget_get_target,%) : $(call gb_LinkTarget_get_headers_target,%) $(gb_Helper_MISCDUMMY)
- $(call gb_LinkTarget__command,$@,$*,$(TARGETTYPE_FLAGS) $(LDFLAGS),$(LINKED_LIBS),$(LINKED_STATIC_LIBS),$(COBJECTS),$(CXXOBJECTS),$(OBJCXXOBJECTS))
+ $(call gb_LinkTarget__command,$@,$*)
ifeq ($(gb_FULLDEPS),$(true))
$(call gb_LinkTarget_get_target,%) : $(call gb_LinkTarget_get_dep_target,%)
$(call gb_LinkTarget_get_dep_target,%) : | $(call gb_LinkTarget_get_headers_target,%)
- $(call gb_LinkTarget__command_dep,$@,$*,$(COBJECTS),$(CXXOBJECTS),$(OBJCXXOBJECTS))
+ $(call gb_LinkTarget__command_dep,$@,$*,$(COBJECTS),$(CXXOBJECTS),$(OBJCXXOBJECTS),$(GENCXXOBJECTS))
endif
# Ok, this is some dark voodoo: When declaring a linktarget with
@@ -241,7 +282,7 @@ define gb_LinkTarget__get_external_headers_check
ifneq ($$(SELF),$$*)
$$(eval $$(call gb_Output_info,LinkTarget $$* not defined: Assuming headers to be there!,ALL))
endif
-$$@ : COMMAND := $$(call gb_Helper_abbreviate_dirs, mkdir -p $$(dir $$@) && touch $$@)
+$$@ : COMMAND := $$(call gb_Helper_abbreviate_dirs, mkdir -p $$(dir $$@) && touch $$@ && mkdir -p $(call gb_LinkTarget_get_target,)pdb/$$(dir $$*))
endef
@@ -277,8 +318,8 @@ $(call gb_LinkTarget_get_headers_target,%) : $(call gb_LinkTarget_get_external_h
# - PCH_CXXFLAGS and PCH_DEFS are the flags that the precompiled headers will
# be compiled with. They should never be overridden in a single object
# files.
-# - TARGETTYPEFLAGS are the flags that are needed for a specific kind of target
-# (shl,exe...) They are mostly used by the platforms.
+# - TARGETTYPE is the type of linktarget as some platforms need very different
+# command to link different targettypes.
#
# Since most variables are set on the linktarget and not on the object, the
# object learns about these setting via GNU makes scoping of target variables.
@@ -295,12 +336,14 @@ $(call gb_LinkTarget_get_clean_target,$(1)) \
$(call gb_LinkTarget_get_target,$(1)) : CXXOBJECTS :=
$(call gb_LinkTarget_get_clean_target,$(1)) \
$(call gb_LinkTarget_get_target,$(1)) : OBJCXXOBJECTS :=
+$(call gb_LinkTarget_get_clean_target,$(1)) \
+$(call gb_LinkTarget_get_target,$(1)) : GENCXXOBJECTS :=
$(call gb_LinkTarget_get_headers_target,$(1)) \
$(call gb_LinkTarget_get_target,$(1)) : CFLAGS := $$(gb_LinkTarget_CFLAGS)
$(call gb_LinkTarget_get_headers_target,$(1)) \
$(call gb_LinkTarget_get_target,$(1)) : CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS)
$(call gb_LinkTarget_get_headers_target,$(1)) \
-$(call gb_LinkTarget_get_target,$(1)) : PCH_CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS)
+$(call gb_LinkTarget_get_target,$(1)) : PCH_CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS) $(gb_COMPILEROPTFLAGS)
$(call gb_LinkTarget_get_target,$(1)) : OBJCXXFLAGS := $$(gb_LinkTarget_OBJCXXFLAGS)
$(call gb_LinkTarget_get_headers_target,$(1)) \
$(call gb_LinkTarget_get_target,$(1)) : DEFS := $$(gb_LinkTarget_DEFAULTDEFS)
@@ -313,9 +356,12 @@ $(call gb_LinkTarget_get_target,$(1)) : INCLUDE_STL := $$(gb_LinkTarget_INCLUDE_
$(call gb_LinkTarget_get_target,$(1)) : LDFLAGS := $$(gb_LinkTarget_LDFLAGS)
$(call gb_LinkTarget_get_target,$(1)) : LINKED_LIBS :=
$(call gb_LinkTarget_get_target,$(1)) : LINKED_STATIC_LIBS :=
-$(call gb_LinkTarget_get_target,$(1)) : TARGETTYPE_FLAGS :=
+$(call gb_LinkTarget_get_target,$(1)) : TARGETTYPE :=
$(call gb_LinkTarget_get_headers_target,$(1)) \
$(call gb_LinkTarget_get_target,$(1)) : PCH_NAME :=
+$(call gb_LinkTarget_get_target,$(1)) : PCHOBJS :=
+$(call gb_LinkTarget_get_headers_target,$(1)) \
+$(call gb_LinkTarget_get_target,$(1)) : PDBFILE :=
ifeq ($(gb_FULLDEPS),$(true))
ifneq ($(wildcard $(call gb_LinkTarget_get_dep_target,$(1))),)
@@ -326,15 +372,16 @@ endif
$(call gb_LinkTarget_get_dep_target,$(1)) : COBJECTS :=
$(call gb_LinkTarget_get_dep_target,$(1)) : CXXOBJECTS :=
$(call gb_LinkTarget_get_dep_target,$(1)) : OBJCXXOBJECTS :=
+$(call gb_LinkTarget_get_dep_target,$(1)) : GENCXXOBJECTS :=
$(call gb_LinkTarget_get_dep_target,$(1)) : CFLAGS := $$(gb_LinkTarget_CFLAGS)
$(call gb_LinkTarget_get_dep_target,$(1)) : CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS)
-$(call gb_LinkTarget_get_dep_target,$(1)) : PCH_CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS)
+$(call gb_LinkTarget_get_dep_target,$(1)) : PCH_CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS) $(gb_COMPILEROPTFLAGS)
$(call gb_LinkTarget_get_dep_target,$(1)) : OBJCXXFLAGS := $$(gb_LinkTarget_OBJCXXFLAGS)
$(call gb_LinkTarget_get_dep_target,$(1)) : DEFS := $$(gb_LinkTarget_DEFAULTDEFS)
$(call gb_LinkTarget_get_dep_target,$(1)) : PCH_DEFS := $$(gb_LinkTarget_DEFAULTDEFS)
$(call gb_LinkTarget_get_dep_target,$(1)) : INCLUDE := $$(gb_LinkTarget_INCLUDE)
$(call gb_LinkTarget_get_dep_target,$(1)) : INCLUDE_STL := $$(gb_LinkTarget_INCLUDE_STL)
-$(call gb_LinkTarget_get_dep_target,$(1)) : TARGETTYPE_FLAGS :=
+$(call gb_LinkTarget_get_dep_target,$(1)) : TARGETTYPE :=
$(call gb_LinkTarget_get_dep_target,$(1)) : PCH_NAME :=
endif
@@ -476,12 +523,27 @@ endif
endef
+define gb_LinkTarget_add_generated_cxx_object
+$(call gb_LinkTarget_get_target,$(1)) : GENCXXOBJECTS += $(2)
+$(call gb_LinkTarget_get_clean_target,$(1)) : GENCXXOBJECTS += $(2)
+
+$(call gb_LinkTarget_get_target,$(1)) : $(call gb_GenCxxObject_get_target,$(2))
+$(call gb_GenCxxObject_get_source,$(2)) : | $(call gb_LinkTarget_get_headers_target,$(1))
+$(call gb_GenCxxObject_get_target,$(2)) : CXXFLAGS += $(3) $(gb_COMPILEROPTFLAGS)
+
+ifeq ($(gb_FULLDEPS),$(true))
+$(call gb_LinkTarget_get_dep_target,$(1)) : GENCXXOBJECTS += $(2)
+$(call gb_LinkTarget_get_dep_target,$(1)) : $(call gb_GenCxxObject_get_dep_target,$(2))
+endif
+
+endef
+
define gb_LinkTarget_add_noexception_object
-$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_NOEXCEPTIONFLAGS))
+$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_NOEXCEPTIONFLAGS) $(gb_COMPILEROPTFLAGS))
endef
define gb_LinkTarget_add_exception_object
-$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_EXCEPTIONFLAGS))
+$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_EXCEPTIONFLAGS) $(gb_COMPILEROPTFLAGS))
endef
define gb_LinkTarget_add_cobjects
@@ -504,9 +566,17 @@ define gb_LinkTarget_add_exception_objects
$(foreach obj,$(2),$(call gb_LinkTarget_add_exception_object,$(1),$(obj)))
endef
-define gb_LinkTarget_set_targettype_flags
+define gb_LinkTarget_add_generated_exception_object
+$(call gb_LinkTarget_add_generated_cxx_object,$(1),$(2),$(gb_LinkTarget_EXCEPTIONFLAGS))
+endef
+
+define gb_LinkTarget_add_generated_exception_objects
+$(foreach obj,$(2),$(call gb_LinkTarget_add_generated_exception_object,$(1),$(obj)))
+endef
+
+define gb_LinkTarget_set_targettype
$(call gb_LinkTarget_get_target,$(1)) \
-$(call gb_LinkTarget_get_dep_target,$(1)) : TARGETTYPE_FLAGS := $(2)
+$(call gb_LinkTarget_get_dep_target,$(1)) : TARGETTYPE := $(2)
endef
define gb_LinkTarget_set_dlltarget
@@ -525,7 +595,7 @@ $(2) :| $(call gb_LinkTarget_get_external_headers_target,$(1))
endef
define gb_LinkTarget_add_package_headers
-$(call gb_LinkTarget__add_internal_headers,$(1),$(foreach package,$(2),$(call gb_Package_get_target,$(package))))
+$(foreach package,$(2),$(call gb_LinkTarget__add_internal_headers,$(1),$(call gb_Package_get_target,$(package))))
$(call gb_LinkTarget_get_clean_target,$(1)) : $(foreach package,$(2),$(call gb_Package_get_clean_target,$(package)))
endef
@@ -545,6 +615,8 @@ $(call gb_LinkTarget_get_clean_target,$(1)) : $(call gb_NoexPrecompiledHeader_ge
$(call gb_NoexPrecompiledHeader_get_target,$(3)) : $(2).cxx
$(call gb_LinkTarget_get_target,$(1)) : PCH_NAME := $(3)
+$(call gb_LinkTarget_get_target,$(1)) : PCHOBJS = $(call gb_PrecompiledHeader_get_target,$(3)).obj $(call gb_NoexPrecompiledHeader_get_target,$(3)).obj
+
$(call gb_LinkTarget_get_headers_target,$(1)) \
$(call gb_LinkTarget_get_target,$(1)) : DEFS := $$(DEFS) -DPRECOMPILED_HEADERS
$(call gb_LinkTarget_get_headers_target,$(1)) \
diff --git a/solenv/gbuild/Module.mk b/solenv/gbuild/Module.mk
index afc40a835cfe..b909b46e27a0 100644
--- a/solenv/gbuild/Module.mk
+++ b/solenv/gbuild/Module.mk
@@ -2,7 +2,7 @@
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
-# Copyright 2009 by Sun Microsystems, Inc.
+# Copyright 2000, 2011 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
#
@@ -14,12 +14,12 @@
#
# 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
+# 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).
#
# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
+# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
@@ -31,6 +31,8 @@
gb_Module_ALLMODULES :=
gb_Module_MODULELOCATIONS :=
gb_Module_TARGETSTACK :=
+gb_Module_CHECKTARGETSTACK :=
+gb_Module_SUBSEQUENTCHECKTARGETSTACK :=
gb_Module_CLEANTARGETSTACK :=
.PHONY : $(call gb_Module_get_clean_target,%)
@@ -38,7 +40,21 @@ $(call gb_Module_get_clean_target,%) :
$(call gb_Output_announce,$*,$(false),MOD,5)
$(call gb_Output_announce_title,module $* cleared.)
-$(call gb_Helper_abbreviate_dirs,\
- rm -f $(call gb_Module_get_target,$*))
+ rm -f $(call gb_Module_get_target,$*) $(call gb_Module_get_check_target,$*) $(call gb_Module_get_subsequentcheck_target,$*))
+
+$(call gb_Module_get_check_target,%) :
+ $(call gb_Output_announce,$*,$(true),CHK,5)
+ $(call gb_Output_announce_title,module $* checks done.)
+ -$(call gb_Helper_abbreviate_dirs,\
+ mkdir -p $(dir $@) && \
+ touch $@)
+
+$(call gb_Module_get_subsequentcheck_target,%) :
+ $(call gb_Output_announce,$*,$(true),SCK,5)
+ $(call gb_Output_announce_title,module $* subsequentchecks done.)
+ -$(call gb_Helper_abbreviate_dirs,\
+ mkdir -p $(dir $@) && \
+ touch $@)
$(call gb_Module_get_target,%) :
$(call gb_Output_announce,$*,$(true),MOD,5)
@@ -47,8 +63,15 @@ $(call gb_Module_get_target,%) :
mkdir -p $(dir $@) && \
touch $@)
-.PHONY : all clean
-.DEFAULT_GOAL := all
+.PHONY : all allandcheck clean check subsequentcheck
+.DEFAULT_GOAL := allandcheck
+
+allandcheck : all check
+
+# compatibility with the old build system
+ifneq ($(strip $(OOO_SUBSEQUENT_TESTS)),)
+.DEFAULT_GOAL := subsequentcheck
+endif
all :
$(call gb_Output_announce,top level modules: $(foreach module,$(filter-out deliverlog,$^),$(notdir $(module))),$(true),ALL,6)
@@ -56,6 +79,16 @@ all :
$(call gb_Output_announce_title,all done.)
$(call gb_Output_announce_bell)
+check :
+ $(call gb_Output_announce,loaded modules: $(sort $(gb_Module_ALLMODULES)),$(true),CHK,6)
+ $(call gb_Output_announce_title,all tests checked.)
+ $(call gb_Output_announce_bell)
+
+subsequentcheck : all
+ $(call gb_Output_announce,loaded modules: $(sort $(gb_Module_ALLMODULES)),$(true),SCK,6)
+ $(call gb_Output_announce_title,all subsequent tests checked.)
+ $(call gb_Output_announce_bell)
+
clean :
$(call gb_Output_announce,top level modules: $(foreach module,$^,$(notdir $(module))),$(false),ALL,6)
$(call gb_Output_announce,loaded modules: $(sort $(gb_Module_ALLMODULES)),$(false),ALL,6)
@@ -65,7 +98,10 @@ clean :
define gb_Module_Module
gb_Module_ALLMODULES += $(1)
gb_Module_MODULELOCATIONS += $(1):$(dir $(realpath $(lastword $(MAKEFILE_LIST))))
-$$(eval $$(call gb_Module_register_target,$(call gb_Module_get_target,$(1)),$(call gb_Module_get_clean_target,$(1))))
+gb_Module_TARGETSTACK := $(call gb_Module_get_target,$(1)) $(gb_Module_TARGETSTACK)
+gb_Module_CHECKTARGETSTACK := $(call gb_Module_get_check_target,$(1)) $(gb_Module_CHECKTARGETSTACK)
+gb_Module_SUBSEQUENTCHECKTARGETSTACK := $(call gb_Module_get_subsequentcheck_target,$(1)) $(gb_Module_SUBSEQUENTCHECKTARGETSTACK)
+gb_Module_CLEANTARGETSTACK := $(call gb_Module_get_clean_target,$(1)) $(gb_Module_CLEANTARGETSTACK)
endef
@@ -74,28 +110,72 @@ endef
# should never be inlined ($(call )) as the calls defining it might be sourced
# before gb_Module.
define gb_Module_register_target
-gb_Module_TARGETSTACK := $(1) $(gb_Module_TARGETSTACK)
-gb_Module_CLEANTARGETSTACK := $(2) $(gb_Module_CLEANTARGETSTACK)
+gb_Module_CURRENTTARGET := $(1)
+gb_Module_CURRENTCLEANTARGET := $(2)
+
+endef
+
+# Here we include the file (in it there will be a call to gb_Module_register_target)
+define gb_Module__read_targetfile
+gb_Module_CURRENTTARGET :=
+gb_Module_CURRENTCLEANTARGET :=
+include $(patsubst $(1):%,%,$(filter $(1):%,$(gb_Module_MODULELOCATIONS)))$(2).mk
+ifneq ($$(words $$(gb_Module_CURRENTTARGET)) $$(words $$(gb_Module_CURRENTCLEANTARGET)),1 1)
+$$(eval $$(call gb_Output_error,No $(3) registered while reading $(patsubst $(1):%,%,$(filter $(1):%,$(gb_Module_MODULELOCATIONS)))$(2).mk!))
+endif
endef
-# Here we include the file (in it there will be a call to
-# gb_Module_register_target) and pop one target from each stack afterwards.
define gb_Module_add_target
-include $(patsubst $(1):%,%,$(filter $(1):%,$(gb_Module_MODULELOCATIONS)))/$(2).mk
+$(call gb_Module__read_targetfile,$(1),$(2),target)
+
+$(call gb_Module_get_target,$(1)) : $$(gb_Module_CURRENTTARGET)
+$(call gb_Module_get_clean_target,$(1)) : $$(gb_Module_CURRENTCLEANTARGET)
+
+endef
+
+define gb_Module_add_check_target
+$(call gb_Module__read_targetfile,$(1),$(2),check target)
+
+$(call gb_Module_get_check_target,$(1)) : $$(gb_Module_CURRENTTARGET)
+$(call gb_Module_get_clean_target,$(1)) : $$(gb_Module_CURRENTCLEANTARGET)
+
+endef
+
+define gb_Module_add_subsequentcheck_target
+$(call gb_Module__read_targetfile,$(1),$(2),subsequentcheck target)
+
+$(call gb_Module_get_subsequentcheck_target,$(1)) : $$(gb_Module_CURRENTTARGET)
+$(call gb_Module_get_clean_target,$(1)) : $$(gb_Module_CURRENTCLEANTARGET)
+
+endef
+
+define gb_Module_add_moduledir
+include $(patsubst $(1):%,%,$(filter $(1):%,$(gb_Module_MODULELOCATIONS)))/$(2)/Module_$(2).mk
$(call gb_Module_get_target,$(1)) : $$(firstword $$(gb_Module_TARGETSTACK))
+$(call gb_Module_get_check_target,$(1)) : $$(firstword $$(gb_Module_CHECKTARGETSTACK))
+$(call gb_Module_get_subsequentcheck_target,$(1)) : $$(firstword $$(gb_Module_SUBSEQUENTCHECKTARGETSTACK))
$(call gb_Module_get_clean_target,$(1)) : $$(firstword $$(gb_Module_CLEANTARGETSTACK))
gb_Module_TARGETSTACK := $$(wordlist 2,$$(words $$(gb_Module_TARGETSTACK)),$$(gb_Module_TARGETSTACK))
+gb_Module_CHECKTARGETSTACK := $$(wordlist 2,$$(words $$(gb_Module_CHECKTARGETSTACK)),$$(gb_Module_CHECKTARGETSTACK))
+gb_Module_SUBSEQUENTCHECKTARGETSTACK := $$(wordlist 2,$$(words $$(gb_Module_SUBSEQUENTCHECKTARGETSTACK)),$$(gb_Module_SUBSEQUENTCHECKTARGETSTACK))
gb_Module_CLEANTARGETSTACK := $$(wordlist 2,$$(words $$(gb_Module_CLEANTARGETSTACK)),$$(gb_Module_CLEANTARGETSTACK))
endef
-define gb_Module_add_moduledir
-$(call gb_Module_add_target,$(1),$(2)/Module_$(2))
-endef
-
define gb_Module_add_targets
$(foreach target,$(2),$(call gb_Module_add_target,$(1),$(target)))
+
+endef
+
+define gb_Module_add_check_targets
+$(foreach target,$(2),$(call gb_Module_add_check_target,$(1),$(target)))
+
+endef
+
+define gb_Module_add_subsequentcheck_targets
+$(foreach target,$(2),$(call gb_Module_add_subsequentcheck_target,$(1),$(target)))
+
endef
define gb_Module_add_moduledirs
@@ -104,23 +184,27 @@ endef
define gb_Module_make_global_targets
ifneq ($$(gb_Module_TARGETSTACK),)
-$$(eval $$(call gb_Output_error,Corrupted module target stack!))
+$$(eval $$(call gb_Output_error,Corrupted module target stack!1))
endif
include $(1)
all : $$(firstword $$(gb_Module_TARGETSTACK))
+check : $$(firstword $$(gb_Module_CHECKTARGETSTACK))
+subsequentcheck : $$(firstword $$(gb_Module_SUBSEQUENTCHECKTARGETSTACK))
clean : $$(firstword $$(gb_Module_CLEANTARGETSTACK))
ifneq ($$(words $$(gb_Module_TARGETSTACK)),1)
-$$(eval $$(call gb_Output_error,Corrupted module target stack!))
+$$(eval $$(call gb_Output_error,Corrupted module target stack! $(gb_Module_TARGETSTACK)))
endif
gb_Module_TARGETSTACK := $$(wordlist 2,$$(words $$(gb_Module_TARGETSTACK)),$$(gb_Module_TARGETSTACK))
+gb_Module_CHECKTARGETSTACK := $$(wordlist 2,$$(words $$(gb_Module_CHECKTARGETSTACK)),$$(gb_Module_CHECKTARGETSTACK))
+gb_Module_SUBSEQUENTCHECKTARGETSTACK := $$(wordlist 2,$$(words $$(gb_Module_SUBSEQUENTCHECKTARGETSTACK)),$$(gb_Module_SUBSEQUENTCHECKTARGETSTACK))
gb_Module_CLEANTARGETSTACK := $$(wordlist 2,$$(words $$(gb_Module_CLEANTARGETSTACK)),$$(gb_Module_CLEANTARGETSTACK))
-ifneq ($$(gb_Module_TARGETSTACK),)
-$$(eval $$(call gb_Output_error,Corrupted module target stack!))
+ifneq ($$(and $$(gb_Module_TARGETSTACK),$$(gb_Module_CHECKTARGETSTACK),$$(gb_Module_SUBSEQUENTCHECKTARGETSTACK)),)
+$$(eval $$(call gb_Output_error,Corrupted module target stack!3))
endif
endef
diff --git a/solenv/gbuild/Package.mk b/solenv/gbuild/Package.mk
index 7ed91db48a06..6e16b21d9b05 100644
--- a/solenv/gbuild/Package.mk
+++ b/solenv/gbuild/Package.mk
@@ -2,7 +2,7 @@
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
-# Copyright 2009 by Sun Microsystems, Inc.
+# Copyright 2000, 2011 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
#
@@ -14,12 +14,12 @@
#
# 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
+# 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).
#
# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
+# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
@@ -32,7 +32,8 @@ $(foreach destination,$(call gb_PackagePart_get_destinations), $(destination)/%)
$(call gb_Deliver_deliver,$<,$@)
define gb_PackagePart_PackagePart
-$(OUTDIR)/$(1) : $(2)
+$(OUTDIR)/$(1) : $(2)
+$(2) :| $(3)
$(call gb_Deliver_add_deliverable,$(OUTDIR)/$(1),$(2))
endef
@@ -46,22 +47,34 @@ $(call gb_Package_get_clean_target,%) :
-$(call gb_Helper_abbreviate_dirs,\
rm -f $(FILES))
+$(call gb_Package_get_preparation_target,%) :
+ mkdir -p $(dir $@) && touch $@
+
$(call gb_Package_get_target,%) :
$(call gb_Output_announce,$*,$(true),PKG,2)
mkdir -p $(dir $@) && touch $@
+
define gb_Package_Package
gb_Package_SOURCEDIR_$(1) := $(2)
-$(call gb_Package_get_clean_target,$(1)) : FILES := $(call gb_Package_get_target,$(1))
+$(call gb_Package_get_clean_target,$(1)) : FILES := $(call gb_Package_get_target,$(1)) $(call gb_Package_get_preparation_target,$(1))
$$(eval $$(call gb_Module_register_target,$(call gb_Package_get_target,$(1)),$(call gb_Package_get_clean_target,$(1))))
+$(call gb_Package_get_target,$(1)) : $(call gb_Package_get_preparation_target,$(1))
endef
define gb_Package_add_file
$(call gb_Package_get_target,$(1)) : $(OUTDIR)/$(2)
$(call gb_Package_get_clean_target,$(1)) : FILES += $(OUTDIR)/$(2)
-$(call gb_PackagePart_PackagePart,$(2),$$(gb_Package_SOURCEDIR_$(1))/$(3))
-$(OUTDIR)/$(2) : $$(gb_Package_SOURCEDIR_$(1))/$(3)
+$(call gb_PackagePart_PackagePart,$(2),$$(gb_Package_SOURCEDIR_$(1))/$(3),$(call gb_Package_get_preparation_target,$(1)))
+
+endef
+
+define gb_Package_add_customtarget
+$(call gb_Package_get_preparation_target,$(1)) : $(call gb_CustomTarget_get_target,$(2))
+$(call gb_Package_get_clean_target,$(1)) : $(call gb_CustomTarget_get_clean_target,$(2))
+$(call gb_CustomTarget_CustomTarget,$(2))
+
endef
# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/PrecompiledHeaders.mk b/solenv/gbuild/PrecompiledHeaders.mk
index 23e075f2adb3..2c7ececf4a0a 100644
--- a/solenv/gbuild/PrecompiledHeaders.mk
+++ b/solenv/gbuild/PrecompiledHeaders.mk
@@ -60,6 +60,7 @@ $(call gb_PrecompiledHeader_get_clean_target,%) :
$(call gb_Output_announce,$*,$(false),PCH,1)
-$(call gb_Helper_abbreviate_dirs,\
rm -f $(call gb_PrecompiledHeader_get_target,$*) \
+ $(call gb_PrecompiledHeader_get_target,$*).obj \
$(call gb_PrecompiledHeader_get_target,$*).pdb \
$(call gb_PrecompiledHeader_get_dep_target,$*))
@@ -68,6 +69,7 @@ $(call gb_NoexPrecompiledHeader_get_clean_target,%) :
$(call gb_Output_announce,$*,$(false),PCH,1)
-$(call gb_Helper_abbreviate_dirs,\
rm -f $(call gb_NoexPrecompiledHeader_get_target,$*) \
+ $(call gb_NoexPrecompiledHeader_get_target,$*).obj \
$(call gb_NoexPrecompiledHeader_get_target,$*).pdb \
$(call gb_NoexPrecompiledHeader_get_dep_target,$*))
endif
diff --git a/solenv/gbuild/SdiTarget.mk b/solenv/gbuild/SdiTarget.mk
index 0281337fc85f..49bf290e096c 100644
--- a/solenv/gbuild/SdiTarget.mk
+++ b/solenv/gbuild/SdiTarget.mk
@@ -38,7 +38,7 @@ gb_SdiTarget_SVIDLCOMMAND := $(gb_SdiTarget_SVIDLPRECOMMAND) $(gb_SdiTarget_SVID
$(call gb_SdiTarget_get_target,%) : $(SRCDIR)/%.sdi | $(gb_SdiTarget_SVIDLTARGET) $(gb_SdiTarget_SVIDLAUXDEPS)
$(call gb_Output_announce,$*,$(true),SDI,1)
$(call gb_Helper_abbreviate_dirs,\
- mkdir -p $(dir $(WORKDIR)/inc/$*) $(dir $@))
+ mkdir -p $(dir $@))
$(call gb_Helper_abbreviate_dirs_native,\
cd $(dir $<) && \
$(gb_SdiTarget_SVIDLCOMMAND) -quiet \
@@ -60,7 +60,7 @@ $(call gb_SdiTarget_get_clean_target,%) :
$(call gb_SdiTarget_get_target,$*))
define gb_SdiTarget_SdiTarget
-$(call gb_SdiTarget_get_target,$(1)) : INCLUDE := -I$(WORKDIR)/inc/ $$(subst -I. ,-I$$(dir $(SRCDIR)/$(1)) ,$$(SOLARINC))
+$(call gb_SdiTarget_get_target,$(1)) : INCLUDE := $$(subst -I. ,-I$$(dir $(SRCDIR)/$(1)) ,$$(SOLARINC))
$(call gb_SdiTarget_get_target,$(1)) : EXPORTS := $(SRCDIR)/$(2).sdi
endef
diff --git a/solenv/gbuild/StaticLibrary.mk b/solenv/gbuild/StaticLibrary.mk
index 6d1f07b068f1..a2521bc4d242 100644
--- a/solenv/gbuild/StaticLibrary.mk
+++ b/solenv/gbuild/StaticLibrary.mk
@@ -2,7 +2,7 @@
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
-# Copyright 2009 by Sun Microsystems, Inc.
+# Copyright 2000, 2011 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
#
@@ -14,12 +14,12 @@
#
# 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
+# 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).
#
# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
+# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
@@ -34,12 +34,12 @@
# gb_StaticLibrary_DEFS
# gb_StaticLibrary_FILENAMES
# gb_StaticLibrary_TARGETS
-# gb_StaticLibrary_TARGETTYPEFLAGS
+gb_StaticLibrary__get_linktargetname = StaticLibrary/$(call gb_StaticLibrary_get_filename,$(1))
# EVIL: gb_StaticLibrary and gb_Library need the same deliver rule because they are indistinguishable on windows
.PHONY : $(WORKDIR)/Clean/OutDir/lib/%$(gb_StaticLibrary_PLAINEXT)
-$(WORKDIR)/Clean/OutDir/lib/%$(gb_StaticLibrary_PLAINEXT) : $(call gb_LinkTarget_get_clean_target,$(call gb_StaticLibrary_get_linktargetname,%$(gb_StaticLibrary_PLAINEXT)))
+$(WORKDIR)/Clean/OutDir/lib/%$(gb_StaticLibrary_PLAINEXT) :
$(call gb_Helper_abbreviate_dirs,\
rm -f $(OUTDIR)/lib/$*$(gb_StaticLibrary_PLAINEXT) \
$(AUXTARGETS))
@@ -56,18 +56,19 @@ $$(eval $$(call gb_Output_info,Currently known static libraries are: $(sort $(gb
$$(eval $$(call gb_Output_error,Static library $(1) must be registered in Repository.mk))
endif
$(call gb_StaticLibrary_get_target,$(1)) : AUXTARGETS :=
-$(call gb_StaticLibrary__StaticLibrary_impl,$(1),$(call gb_StaticLibrary_get_linktargetname,$(call gb_StaticLibrary_get_filename,$(1))))
+$(call gb_StaticLibrary__StaticLibrary_impl,$(1),$(call gb_StaticLibrary__get_linktargetname,$(1)))
endef
define gb_StaticLibrary__StaticLibrary_impl
$(call gb_LinkTarget_LinkTarget,$(2))
-$(call gb_LinkTarget_set_targettype_flags,$(2),$(gb_StaticLibrary_TARGETTYPEFLAGS))
+$(call gb_LinkTarget_set_targettype,$(2),StaticLibrary)
$(call gb_LinkTarget_set_defs,$(2),\
$$(DEFS) \
$(gb_StaticLibrary_DEFS) \
)
$(call gb_StaticLibrary_get_target,$(1)) : $(call gb_LinkTarget_get_target,$(2))
+$(call gb_StaticLibrary_get_clean_target,$(1)) : $(call gb_LinkTarget_get_clean_target,$(2))
$(call gb_StaticLibrary_StaticLibrary_platform,$(1),$(2))
$$(eval $$(call gb_Module_register_target,$(call gb_StaticLibrary_get_target,$(1)),$(call gb_StaticLibrary_get_clean_target,$(1))))
$(call gb_Deliver_add_deliverable,$(call gb_StaticLibrary_get_target,$(1)),$(call gb_LinkTarget_get_target,$(2)))
@@ -75,7 +76,7 @@ $(call gb_Deliver_add_deliverable,$(call gb_StaticLibrary_get_target,$(1)),$(cal
endef
define gb_StaticLibrary_forward_to_Linktarget
-gb_StaticLibrary_$(1) = $$(call gb_LinkTarget_$(1),$(call gb_StaticLibrary_get_linktargetname,$$(call gb_StaticLibrary_get_filename,$$(1))),$$(2),$$(3))
+gb_StaticLibrary_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_StaticLibrary__get_linktargetname,$$(1)),$$(2),$$(3))
endef
@@ -88,6 +89,7 @@ $(eval $(foreach method,\
add_objcxxobjects \
add_exception_objects \
add_noexception_objects \
+ add_generated_exception_objects \
set_cflags \
set_cxxflags \
set_objcxxflags \
diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk
index 933fc48c09d4..aba209c29136 100644
--- a/solenv/gbuild/TargetLocations.mk
+++ b/solenv/gbuild/TargetLocations.mk
@@ -2,7 +2,7 @@
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
-# Copyright 2009 by Sun Microsystems, Inc.
+# Copyright 2000, 2011 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
#
@@ -14,12 +14,12 @@
#
# 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
+# 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).
#
# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
+# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
@@ -48,16 +48,30 @@ endef
gb_AllLangResTarget_get_target = $(WORKDIR)/AllLangRes/$(1)
gb_CObject_get_target = $(WORKDIR)/CObject/$(1).o
gb_ComponentTarget_get_target = $(WORKDIR)/ComponentTarget/$(1).component
+gb_CppunitTest_get_target = $(WORKDIR)/CppunitTest/$(1).test
+gb_CustomTarget_get_repo_target = $(WORKDIR)/CustomTarget/$(2)_$(1).done
+gb_CustomTarget_get_target = $(WORKDIR)/CustomTarget/$(1).done
+gb_CustomTarget_get_workdir = $(WORKDIR)/CustomTarget/$(1)
gb_CxxObject_get_target = $(WORKDIR)/CxxObject/$(1).o
+gb_GenCxxObject_get_target = $(WORKDIR)/GenCxxObject/$(1).o
gb_Executable_get_external_headers_target = $(WORKDIR)/ExternalHeaders/Executable/$(1)
gb_Executable_get_headers_target = $(WORKDIR)/Headers/Executable/$(1)
+gb_JavaClassSet_get_classdir = $(WORKDIR)/JavaClassSet/$(1)
+gb_JavaClassSet_get_repo_target = $(WORKDIR)/JavaClassSet/$(2)/$(1).done
+gb_JavaClassSet_get_target = $(WORKDIR)/JavaClassSet/$(1)/done
+gb_JunitTest_get_classsetname = JunitTest/$(1)
+gb_JunitTest_get_target = $(WORKDIR)/JunitTest/$(1)/done
+gb_JunitTest_get_userdir = $(WORKDIR)/JunitTest/$(1)/user
gb_LinkTarget_get_external_headers_target = $(WORKDIR)/ExternalHeaders/$(1)
gb_LinkTarget_get_headers_target = $(WORKDIR)/Headers/$(1)
gb_LinkTarget_get_target = $(WORKDIR)/LinkTarget/$(1)
+gb_Module_get_check_target = $(WORKDIR)/Module/check/$(1)
+gb_Module_get_subsequentcheck_target = $(WORKDIR)/Module/subsequentcheck/$(1)
gb_Module_get_target = $(WORKDIR)/Module/$(1)
gb_NoexPrecompiledHeader_get_dep_target = $(WORKDIR)/Dep/NoexPrecompiledHeader/$(gb_NoexPrecompiledHeader_DEBUGDIR)/$(1).hxx.pch.d
gb_NoexPrecompiledHeader_get_target = $(WORKDIR)/NoexPrecompiledHeader/$(gb_NoexPrecompiledHeader_DEBUGDIR)/$(1).hxx.pch
gb_ObjCxxObject_get_target = $(WORKDIR)/ObjCxxObject/$(1).o
+gb_Package_get_preparation_target = $(WORKDIR)/Package/prepared/$(1)
gb_Package_get_target = $(WORKDIR)/Package/$(1)
gb_PrecompiledHeader_get_dep_target = $(WORKDIR)/Dep/PrecompiledHeader/$(gb_PrecompiledHeader_DEBUGDIR)/$(1).hxx.pch.d
gb_PrecompiledHeader_get_target = $(WORKDIR)/PrecompiledHeader/$(gb_PrecompiledHeader_DEBUGDIR)/$(1).hxx.pch
@@ -87,6 +101,8 @@ endef
$(eval $(call gb_Helper_make_clean_targets,\
AllLangResTarget \
ComponentTarget \
+ JavaClassSet \
+ JunitTest \
LinkTarget \
Module \
NoexPrecompiledHeader \
@@ -95,6 +111,8 @@ $(eval $(call gb_Helper_make_clean_targets,\
ResTarget \
SdiTarget \
SrsTarget \
+ CppunitTest \
+ CustomTarget \
))
$(eval $(call gb_Helper_make_outdir_clean_targets,\
@@ -112,13 +130,11 @@ $(eval $(call gb_Helper_make_dep_targets,\
SrsPartTarget \
SrsTarget \
))
-
+# needs to use same dep target because we use gb_CxxObject__command
+gb_GenCxxObject_get_dep_target = $(gb_CxxObject_get_dep_target)
# other getters
-gb_Library_get_linktargetname = Library/$(1)
-gb_StaticLibrary_get_linktargetname = StaticLibrary/$(1)
-
define gb_Library_get_layer
$(patsubst $(1):%,%,$(filter $(1):%,$(gb_Library_LAYER)))
endef
@@ -140,6 +156,7 @@ endef
gb_Library_OUTDIRLOCATION = $(OUTDIR)/lib
gb_Library_DLLDIR = $(WORKDIR)/LinkTarget/Library
+gb_CppunitTest_DLLDIR = $(WORKDIR)/LinkTarget/CppunitTest
gb_StaticLibrary_OUTDIRLOCATION = $(OUTDIR)/lib
# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/Tempfile.mk b/solenv/gbuild/Tempfile.mk
new file mode 100644
index 000000000000..5b80452056e0
--- /dev/null
+++ b/solenv/gbuild/Tempfile.mk
@@ -0,0 +1,18 @@
+# Write string to temporary file by chopping into pieces that
+# fit the commandline
+# parameters: filename, maxitems (for one write), string
+# returns: filename
+define var2file
+$(strip $(1)
+$(eval gb_var2file_helpervar := $$(shell printf "%s" "" > $(1) ))\
+$(foreach item,$(3),$(eval gb_var2file_curblock += $(item)
+ ifeq ($$(words $$(gb_var2file_curblock)),$(2))
+ gb_var2file_helpervar := $$(shell printf "%s" "$$(gb_var2file_curblock)" >> $(1) )
+ gb_var2file_curblock :=
+ endif
+ ))\
+ $(eval gb_var2file_helpervar := $(shell echo " "$(gb_var2file_curblock) >> $(1) )
+ gb_var2file_curblock :=
+ ))
+endef
+
diff --git a/solenv/gbuild/extensions/PackModule.mk b/solenv/gbuild/extensions/post_PackModule.mk
index 237ffcf72670..3a573cbc5d7e 100644
--- a/solenv/gbuild/extensions/PackModule.mk
+++ b/solenv/gbuild/extensions/post_PackModule.mk
@@ -2,7 +2,7 @@
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
-# Copyright 2009 by Sun Microsystems, Inc.
+# Copyright 2000, 2011 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
#
@@ -14,12 +14,12 @@
#
# 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
+# 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).
#
# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
+# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
@@ -41,7 +41,7 @@ packmodule : COMMAND := true
endif
endef
-packmodule : all
+packmodule : all deliverlog
$(eval $(call gb_PackModule_setpackmodulecommand))
$(COMMAND)
diff --git a/solenv/gbuild/extensions/SetupLocal.mk b/solenv/gbuild/extensions/post_SetupLocal.mk
index 483b8a163056..483b8a163056 100644
--- a/solenv/gbuild/extensions/SetupLocal.mk
+++ b/solenv/gbuild/extensions/post_SetupLocal.mk
diff --git a/solenv/gbuild/extensions/pre_SharedLangList.mk b/solenv/gbuild/extensions/pre_SharedLangList.mk
new file mode 100644
index 000000000000..47669daa0a13
--- /dev/null
+++ b/solenv/gbuild/extensions/pre_SharedLangList.mk
@@ -0,0 +1,38 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# 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.
+#
+# 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).
+#
+# 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.
+#
+#*************************************************************************
+
+# share language list with dmake build system
+include $(SOLARENV)/inc/langlist.mk
+
+ifneq ($(WITH_LANG),ALL)
+gb_WITH_LANG=$(WITH_LANG)
+else
+# expand ALL based on language list)
+gb_WITH_LANG=$(completelangiso)
+endif
+
+# vim: set noet ts=4 sw=4:
diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk
index 9eee851cefac..3c7010a32158 100644
--- a/solenv/gbuild/gbuild.mk
+++ b/solenv/gbuild/gbuild.mk
@@ -2,7 +2,7 @@
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
-# Copyright 2009 by Sun Microsystems, Inc.
+# Copyright 2000, 2011 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
#
@@ -14,12 +14,12 @@
#
# 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
+# 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).
#
# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
+# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
@@ -62,6 +62,11 @@ endef
COMMA :=,
+# optional extensions that should never be essential
+ifneq ($(wildcard $(GBUILDDIR)/extensions/pre_*.mk),)
+include $(wildcard $(GBUILDDIR)/extensions/pre_*.mk)
+endif
+
include $(GBUILDDIR)/Output.mk
# BuildDirs uses the Output functions already
@@ -95,7 +100,7 @@ gb_ENABLE_PCH := $(false)
endif
# for clean, setuplocal and removelocal goals we switch off dependencies
-ifneq ($(filter clean setuplocal removelocal,$(MAKECMDGOALS)),)
+ifneq ($(filter clean setuplocal removelocal showdeliverables,$(MAKECMDGOALS)),)
gb_FULLDEPS := $(false)
else
gb_FULLDEPS := $(true)
@@ -130,6 +135,8 @@ endif
endif
endif
+include $(GBUILDDIR)/Tempfile.mk
+
include $(foreach repo,$(gb_REPOS),$(repo)/RepositoryFixes.mk)
$(eval $(call gb_Helper_collect_knownlibs))
@@ -172,6 +179,22 @@ gb_GLOBALDEFS += \
endif
+ifneq ($(strip $(ENABLE_GTK)),)
+gb_GLOBALDEFS += -DENABLE_GTK
+endif
+
+ifneq ($(strip $(ENABLE_KDE)),)
+gb_GLOBALDEFS += -DENABLE_KDE
+endif
+
+ifneq ($(strip $(ENABLE_KDE4)),)
+gb_GLOBALDEFS += -DENABLE_KDE4
+endif
+
+ifeq ($(strip $(ENABLE_GRAPHITE)),TRUE)
+gb_GLOBALDEFS += -DENABLE_GRAPHITE
+endif
+
gb_GLOBALDEFS := $(sort $(gb_GLOBALDEFS))
include $(GBUILDDIR)/Deliver.mk
@@ -204,13 +227,28 @@ include $(foreach class, \
Executable \
SdiTarget \
Package \
+ CustomTarget \
PrecompiledHeaders \
+ CppunitTest \
+ JavaClassSet \
+ JunitTest \
Module \
,$(GBUILDDIR)/$(class).mk)
# optional extensions that should never be essential
-ifneq ($(wildcard $(GBUILDDIR)/extensions/*.mk),)
-include $(wildcard $(GBUILDDIR)/extensions/*.mk)
+ifneq ($(wildcard $(GBUILDDIR)/extensions/post_*.mk),)
+include $(wildcard $(GBUILDDIR)/extensions/post_*.mk)
endif
+ifeq ($(SYSTEM_LIBXSLT),YES)
+gb_XSLTPROCTARGET :=
+gb_XSLTPROC := xsltproc
+else
+gb_XSLTPROCTARGET := $(call gb_Executable_get_target,xsltproc)
+gb_XSLTPROC := $(gb_XSLTPROCPRECOMMAND) $(gb_XSLTPROCTARGET)
+endif
+
+export gb_AWK
+export gb_XSLTPROC
+
# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/platform/linux.mk b/solenv/gbuild/platform/linux.mk
index e991fe62e840..2cbeca889001 100755
--- a/solenv/gbuild/platform/linux.mk
+++ b/solenv/gbuild/platform/linux.mk
@@ -2,7 +2,7 @@
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
-# Copyright 2009 by Sun Microsystems, Inc.
+# Copyright 2000, 2011 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
#
@@ -14,12 +14,12 @@
#
# 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
+# 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).
#
# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
+# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
@@ -28,12 +28,14 @@
GUI := UNX
COM := GCC
-gb_MKTEMP := mktemp -p
+gb_MKTEMP := mktemp -t gbuild.XXXXXX
-gb_CC := gcc
+gb_CC := cc
gb_CXX := g++
gb_GCCP := gcc
+gb_AR := ar
gb_AWK := awk
+gb_CLASSPATHSEP := :
# normalize setsolar and configure env.
ifeq ($(CPU),X)
@@ -50,7 +52,7 @@ gb_CXX := $(CXX)
endif
gb_OSDEFS := \
- -DLINUX \
+ -D$(OS) \
-D_PTHREADS \
-DUNIX \
-DUNX \
@@ -61,13 +63,10 @@ GXX_INCLUDE_PATH=$(COMPATH)/include/c++/$(shell gcc -dumpversion)
endif
gb_COMPILERDEFS := \
- -DGCC \
- -D$(CVER) \
- -DCVER=$(CVER) \
- -DGLIBC=2 \
- -DGXX_INCLUDE_PATH=$(GXX_INCLUDE_PATH) \
+ -D$(COM) \
-DHAVE_GCC_VISIBILITY_FEATURE \
-DCPPU_ENV=gcc3 \
+ -DGXX_INCLUDE_PATH=$(GXX_INCLUDE_PATH) \
ifeq ($(CPUNAME),X86_64)
gb_CPUDEFS := -D$(CPUNAME)
@@ -79,9 +78,11 @@ gb_CFLAGS := \
-Wall \
-Wendif-labels \
-Wextra \
+ -Wshadow \
+ -fPIC \
-fmessage-length=0 \
+ -fno-common \
-fno-strict-aliasing \
- -fpic \
-fvisibility=hidden \
-pipe \
@@ -91,18 +92,22 @@ gb_CXXFLAGS := \
-Wextra \
-Wno-ctor-dtor-privacy \
-Wno-non-virtual-dtor \
- -Wreturn-type \
-Wshadow \
- -Wuninitialized \
+ -fPIC \
-fmessage-length=0 \
+ -fno-common \
-fno-strict-aliasing \
-fno-use-cxa-atexit \
- -fpic \
- -fvisibility=hidden \
-fvisibility-inlines-hidden \
+ -fvisibility=hidden \
-pipe \
-ifneq ($(SYSBASE),)
+ifneq ($(EXTERNAL_WARNINGS_NOT_ERRORS),TRUE)
+gb_CFLAGS_WERROR := -Werror
+gb_CXXFLAGS_WERROR := -Werror
+endif
+
+ifneq ($(strip $(SYSBASE)),)
gb_CXXFLAGS += --sysroot=$(SYSBASE)
gb_CFLAGS += --sysroot=$(SYSBASE)
endif
@@ -114,15 +119,20 @@ gb_LinkTarget_EXCEPTIONFLAGS := \
gb_LinkTarget_NOEXCEPTIONFLAGS := \
-DEXCEPTIONS_OFF \
-fno-exceptions \
-
+
gb_LinkTarget_LDFLAGS := \
-Wl,--sysroot=$(SYSBASE) \
-Wl,-rpath-link,$(SYSBASE)/lib:$(SYSBASE)/usr/lib \
- -Wl,--hash-style=both \
-Wl,-z,combreloc \
-Wl,-z,defs \
$(subst -L../lib , ,$(SOLARLIB)) \
+ifeq ($(HAVE_LD_HASH_STYLE),TRUE)
+gb_LinkTarget_LDFLAGS += \
+ -Wl,--hash-style=both \
+
+endif
+
ifneq ($(HAVE_LD_BSYMBOLIC_FUNCTIONS),)
gb_LinkTarget_LDFLAGS += \
-Wl,--dynamic-list-cpp-new \
@@ -137,11 +147,13 @@ else
gb_COMPILEROPTFLAGS := -Os
endif
+gb_COMPILERNOOPTFLAGS := -O0
# Helper class
gb_Helper_abbreviate_dirs_native = $(gb_Helper_abbreviate_dirs)
+
# CObject class
define gb_CObject__command
@@ -150,13 +162,13 @@ $(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
mkdir -p $(dir $(call gb_CObject_get_dep_target,$(2))) && \
$(gb_CC) \
+ $(DEFS) $(CFLAGS) \
-c $(3) \
-o $(1) \
-MMD -MT $(call gb_CObject_get_target,$(2)) \
-MF $(call gb_CObject_get_dep_target,$(2)) \
- $(4) $(5) \
-I$(dir $(3)) \
- $(6))
+ $(INCLUDE))
endef
@@ -168,13 +180,13 @@ $(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
mkdir -p $(dir $(call gb_CxxObject_get_dep_target,$(2))) && \
$(gb_CXX) \
+ $(DEFS) $(CXXFLAGS) \
-c $(3) \
-o $(1) \
-MMD -MT $(call gb_CxxObject_get_target,$(2)) \
-MF $(call gb_CxxObject_get_dep_target,$(2)) \
- $(4) $(5) \
-I$(dir $(3)) \
- $(6))
+ $(INCLUDE_STL) $(INCLUDE))
endef
@@ -185,15 +197,15 @@ $(patsubst $(1):%,%,$(filter $(1):%,$(gb_LinkTarget__RPATHS)))
endef
gb_LinkTarget__RPATHS := \
- URELIB:'$$$$ORIGIN' \
- UREBIN:'$$$$ORIGIN/../lib:$$$$ORIGIN' \
- OOOLIB:'$$$$ORIGIN:$$$$ORIGIN/../ure-link/lib' \
- BRAND:'$$$$ORIGIN:$$$$ORIGIN/../basis-link/program:$$$$ORIGIN/../basis-link/ure-link/lib' \
- SDKBIN:'$$$$ORIGIN/../../ure-link/lib' \
- NONEBIN:'$$$$ORIGIN/../lib:$$$$ORIGIN' \
+ URELIB:\dORIGIN \
+ UREBIN:\dORIGIN/../lib:\dORIGIN \
+ OOO:\dORIGIN:\dORIGIN/../ure-link/lib \
+ BRAND:\dORIGIN:\dORIGIN/../basis-link/program:\dORIGIN/../basis-link/ure-link/lib \
+ SDKBIN:\dORIGIN/../../ure-link/lib \
+ NONEBIN:\dORIGIN/../lib:\dORIGIN \
-gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_COMPILEROPTFLAGS)
-gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_COMPILEROPTFLAGS)
+gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) $(gb_COMPILEROPTFLAGS)
+gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR)
ifeq ($(gb_DEBUGLEVEL),2)
gb_LinkTarget_CXXFLAGS += -ggdb3 -finline-limit=0 -fno-inline -fno-default-inline
@@ -204,23 +216,40 @@ endif
gb_LinkTarget_INCLUDE := $(filter-out %/stl, $(subst -I. , ,$(SOLARINC)))
gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC)))
-define gb_LinkTarget__command
-$(call gb_Output_announce,$(2),$(true),LNK,4)
+define gb_LinkTarget__command_dynamiclink
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
$(gb_CXX) \
- $(3) \
- $(patsubst lib%.so,-l%,$(foreach lib,$(4),$(call gb_Library_get_filename,$(lib)))) \
- $(foreach object,$(6),$(call gb_CObject_get_target,$(object))) \
- $(foreach object,$(7),$(call gb_CxxObject_get_target,$(object))) \
- -Wl$(COMMA)--start-group $(foreach lib,$(5),$(call gb_StaticLibrary_get_target,$(lib))) -Wl$(COMMA)--end-group \
+ $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
+ $(subst \d,$$,$(RPATH)) $(LDFLAGS) \
+ $(patsubst lib%.so,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib)))) \
+ $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
+ $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
+ $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
+ -Wl$(COMMA)--start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) -Wl$(COMMA)--end-group \
-o $(1))
endef
+define gb_LinkTarget__command_staticlink
+$(call gb_Helper_abbreviate_dirs,\
+ mkdir -p $(dir $(1)) && \
+ $(gb_AR) -rsu $(1) \
+ $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
+ $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
+ $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
+ 2> /dev/null)
+endef
+
+define gb_LinkTarget__command
+$(call gb_Output_announce,$(2),$(true),LNK,4)
+$(if $(filter Library CppunitTest Executable,$(TARGETTYPE)),$(call gb_LinkTarget__command_dynamiclink,$(1)))
+$(if $(filter StaticLibrary,$(TARGETTYPE)),$(call gb_LinkTarget__command_staticlink,$(1)))
+endef
+
# Library class
-gb_Library_DEFS := -D_DLL_
+gb_Library_DEFS :=
gb_Library_TARGETTYPEFLAGS := -shared -Wl,-z,noexecstack
gb_Library_SYSPRE := lib
gb_Library_UNOVERPRE := $(gb_Library_SYSPRE)uno_
@@ -261,29 +290,31 @@ gb_Library_FILENAMES := \
$(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(gb_Library_UNOVERPRE)$(lib)$(gb_Library_PLAINEXT)) \
-gb_Library_Library_platform =
-
-define gb_Library_get_rpath
--Wl,-rpath,$(call gb_LinkTarget__get_rpath_for_layer,$(call gb_Library_get_layer,$(1))) \
--Wl,-rpath-link,$(gb_Library_OUTDIRLOCATION)
-endef
-
gb_Library_LAYER := \
- $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOOLIB) \
+ $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \
$(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):URELIB) \
- $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOOLIB) \
- $(foreach lib,$(gb_Library_RTLIBS),$(lib):OOOLIB) \
+ $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_RTLIBS),$(lib):OOO) \
$(foreach lib,$(gb_Library_RTVERLIBS),$(lib):URELIB) \
$(foreach lib,$(gb_Library_STLLIBS),$(lib):URELIB) \
$(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):URELIB) \
- $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOOLIB) \
+ $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOO) \
$(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):URELIB) \
+define gb_Library_get_rpath
+'-Wl,-rpath,$(call gb_LinkTarget__get_rpath_for_layer,$(call gb_Library_get_layer,$(1)))' \
+'-Wl,-rpath-link,$(gb_Library_OUTDIRLOCATION)'
+endef
+
+define gb_Library_Library_platform
+$(call gb_LinkTarget_get_target,$(2)) : RPATH := $(call gb_Library_get_rpath,$(1))
+
+endef
+
# StaticLibrary class
gb_StaticLibrary_DEFS :=
-gb_StaticLibrary_TARGETTYPEFLAGS := -Wl,-z,noexecstack -static -nostdlib
gb_StaticLibrary_SYSPRE := lib
gb_StaticLibrary_PLAINEXT := .a
gb_StaticLibrary_JPEGEXT := lib$(gb_StaticLibrary_PLAINEXT)
@@ -294,25 +325,53 @@ gb_StaticLibrary_FILENAMES := \
gb_StaticLibrary_StaticLibrary_platform =
+
# Executable class
gb_Executable_EXT :=
-gb_Executable_TARGETTYPEFLAGS :=
-gb_Executable_Executable_platform =
gb_Executable_LAYER := \
$(foreach exe,$(gb_Executable_UREBIN),$(exe):UREBIN) \
$(foreach exe,$(gb_Executable_SDK),$(exe):SDKBIN) \
- $(foreach exe,$(gb_Executable_OOO),$(exe):OOOLIB) \
+ $(foreach exe,$(gb_Executable_OOO),$(exe):OOO) \
$(foreach exe,$(gb_Executable_BRAND),$(exe):BRAND) \
$(foreach exe,$(gb_Executable_NONE),$(exe):NONEBIN) \
define gb_Executable_get_rpath
--Wl,-rpath,$(call gb_LinkTarget__get_rpath_for_layer,$(call gb_Executable_get_layer,$(1))) \
+'-Wl,-rpath,$(call gb_LinkTarget__get_rpath_for_layer,$(call gb_Executable_get_layer,$(1)))' \
-Wl,-rpath-link,$(gb_Library_OUTDIRLOCATION)
endef
+define gb_Executable_Executable_platform
+$(call gb_LinkTarget_get_target,$(2)) : RPATH := $(call gb_Executable_get_rpath,$(1))
+
+endef
+
+
+# CppunitTest class
+
+gb_CppunitTest_CPPTESTPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib
+gb_CppunitTest_SYSPRE := libtest_
+gb_CppunitTest_EXT := .so
+gb_CppunitTest_get_filename = $(gb_CppunitTest_SYSPRE)$(1)$(gb_CppunitTest_EXT)
+gb_CppunitTest_get_libfilename = $(gb_CppunitTest_get_filename)
+
+define gb_CppunitTest_CppunitTest_platform
+$(call gb_LinkTarget_get_target,$(2)) : RPATH :=
+
+endef
+
+# JunitTest class
+
+define gb_JunitTest_JunitTest_platform
+$(call gb_JunitTest_get_target,$(1)) : DEFS := \
+ -Dorg.openoffice.test.arg.soffice="$$$${OOO_TEST_SOFFICE:-path:$(OUTDIR)/installation/opt/openoffice.org3/program/soffice}" \
+ -Dorg.openoffice.test.arg.env=LD_LIBRARY_PATH \
+ -Dorg.openoffice.test.arg.user=file://$(call gb_JunitTest_get_userdir,$(1)) \
+
+endef
+
# SdiTarget class
gb_SdiTarget_SVIDLPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib
@@ -330,8 +389,8 @@ define gb_SrsPartTarget__command_dep
$(call gb_Helper_abbreviate_dirs,\
$(gb_GCCP) \
-MM -MT $(call gb_SrsPartTarget_get_target,$(1)) \
- $(3) \
- $(4) \
+ $(INCLUDE) \
+ $(DEFS) \
-c -x c++-header $(2) \
-o $(call gb_SrsPartTarget_get_dep_target,$(1)))
endef
@@ -339,8 +398,10 @@ endef
# ComponentTarget
-gb_ComponentTarget_XSLTPROCPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib
-gb_ComponentTarget_PREFIXBASISNATIVE := vnd.sun.star.expand:$$OOO_BASE_DIR/program/
+gb_XSLTPROCPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib
+gb_Library_COMPONENTPREFIXES := \
+ OOO:vnd.sun.star.expand:\dOOO_BASE_DIR/program/ \
+ URELIB:vnd.sun.star.expand:\dURE_INTERNAL_LIB_DIR/ \
# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk
index c7c3558583a3..d6b84dc43e6d 100755
--- a/solenv/gbuild/platform/macosx.mk
+++ b/solenv/gbuild/platform/macosx.mk
@@ -1,8 +1,8 @@
#*************************************************************************
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2009 by Sun Microsystems, Inc.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
#
@@ -14,12 +14,12 @@
#
# 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
+# 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).
#
# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
+# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
@@ -28,39 +28,45 @@
GUI := UNX
COM := GCC
-gb_MKTEMP := TMPDIR= /usr/bin/mktemp -t
+# Darwin mktemp -t expects a prefix, not a pattern
+gb_MKTEMP := /usr/bin/mktemp -t gbuild.
-gb_CC := $(CC)
-gb_CXX := $(CXX)
-gb_GCCP := $(CC)
+gb_CC := cc
+gb_CXX := g++
+gb_GCCP := gcc
+gb_AR := ar
gb_AWK := awk
+gb_CLASSPATHSEP := :
+# use CC/CXX if they are nondefaults
+ifneq ($(origin CC),default)
+gb_CC := $(CC)
+gb_GCCP := $(CC)
+endif
+ifneq ($(origin CXX),default)
+gb_CXX := $(CXX)
+endif
gb_OSDEFS := \
-D$(OS) \
- -D$(GUI) \
- -DUNIX \
-D_PTHREADS \
+ -DUNIX \
+ -DUNX \
-D_REENTRANT \
-DNO_PTHREAD_PRIORITY \
-DQUARTZ \
$(EXTRA_CDEFS) \
-# $(PTHREAD_CFLAGS) \
gb_COMPILERDEFS := \
-D$(COM) \
- -DGLIBC=2 \
- -D_USE_NAMESPACE=1 \
-DHAVE_GCC_VISIBILITY_FEATURE \
-DCPPU_ENV=gcc3 \
-DGXX_INCLUDE_PATH=$(GXX_INCLUDE_PATH) \
-# -D$(CVER) \
-# -DCVER=$(CVER) \
-ifeq ($(CPUNAME),INTEL)
-gb_CPUDEFS := -DX86
-else # ifeq ($(CPUNAME),POWERPC)
+ifeq ($(CPUNAME),POWERPC)
gb_CPUDEFS := -DPOWERPC -DPPC
+else
+gb_CPUDEFS := -DX86
endif
ifeq ($(strip $(SYSBASE)),)
@@ -72,43 +78,43 @@ endif
gb_CFLAGS := \
-isysroot $(gb_SDKDIR) \
- -fsigned-char \
- -fmessage-length=0 \
- -malign-natural \
-Wall \
-Wendif-labels \
- -fno-strict-aliasing \
+ -Wextra \
+ -Wshadow \
-fPIC \
+ -fmessage-length=0 \
-fno-common \
+ -fno-strict-aliasing \
-pipe \
-# -fvisibility=hidden \
gb_CXXFLAGS := \
-isysroot $(gb_SDKDIR) \
- -fsigned-char \
- -fmessage-length=0 \
- -malign-natural \
-Wall \
-Wendif-labels \
- -Wno-long-double \
+ -Wextra \
-Wno-ctor-dtor-privacy \
+ -Wno-long-double \
-Wno-non-virtual-dtor \
- -fno-strict-aliasing \
-fPIC \
+ -fmessage-length=0 \
-fno-common \
+ -fno-strict-aliasing \
+ -fsigned-char \
+ -malign-natural \
-pipe \
-# -fvisibility=hidden \
-# -fvisibility-inlines-hidden \
+ #-Wshadow \ break in compiler headers already
+ #-fsigned-char \ might be removed?
+ #-malign-natural \ might be removed?
# these are to get g++ to switch to Objective-C++ mode
# (see toolkit module for a case where it is necessary to do it this way)
gb_OBJCXXFLAGS := -x objective-c++ -fobjc-exceptions
-gb_CFLAGS_WERROR := \
- -Werror \
-
-gb_CXXFLAGS_WERROR := \
- -Werror \
+ifneq ($(EXTERNAL_WARNINGS_NOT_ERRORS),TRUE)
+gb_CFLAGS_WERROR := -Werror
+gb_CXXFLAGS_WERROR := -Werror
+endif
gb_LinkTarget_EXCEPTIONFLAGS := \
-DEXCEPTIONS_ON \
@@ -130,6 +136,7 @@ else
gb_COMPILEROPTFLAGS := -O2
endif
+gb_COMPILERNOOPTFLAGS := -O0
# Helper class
@@ -144,32 +151,32 @@ $(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
mkdir -p $(dir $(call gb_CObject_get_dep_target,$(2))) && \
$(gb_CC) \
- $(4) $(5) \
+ $(DEFS) $(CFLAGS) \
-c $(3) \
-o $(1) \
-MMD -MT $(call gb_CObject_get_target,$(2)) \
-MF $(call gb_CObject_get_dep_target,$(2)) \
-I$(dir $(3)) \
- $(6))
+ $(INCLUDE))
endef
# CxxObject class
-# N.B: $(4) or $(5) may contain -x objective-c++, which must come before -c
+# N.B: $(CXXFLAGS) may contain -x objective-c++, which must come before -c
define gb_CxxObject__command
$(call gb_Output_announce,$(2),$(true),CXX,3)
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
mkdir -p $(dir $(call gb_CxxObject_get_dep_target,$(2))) && \
$(gb_CXX) \
- $(4) $(5) \
+ $(DEFS) $(CXXFLAGS) \
-c $(3) \
-o $(1) \
-MMD -MT $(call gb_CxxObject_get_target,$(2)) \
-MF $(call gb_CxxObject_get_dep_target,$(2)) \
-I$(dir $(3)) \
- $(6))
+ $(INCLUDE_STL) $(INCLUDE))
endef
@@ -181,26 +188,26 @@ $(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
mkdir -p $(dir $(call gb_ObjCxxObject_get_dep_target,$(2))) && \
$(gb_CXX) \
- $(4) $(5) \
+ $(DEFS) $(OBJCXXFLAGS) \
-c $(3) \
-o $(1) \
-MMD -MT $(call gb_ObjCxxObject_get_target,$(2)) \
-MF $(call gb_ObjCxxObject_get_dep_target,$(2)) \
-I$(dir $(3)) \
- $(6))
+ $(INCLUDE_STL) $(INCLUDE))
endef
# LinkTarget class
define gb_LinkTarget__get_rpath_for_layer
-$(patsubst $(1):%,%,$(filter $(1):%,$(gb_LinkTarget_RPATHS)))
+$(patsubst $(1):%,%,$(filter $(1):%,$(gb_LinkTarget__RPATHS)))
endef
-gb_LinkTarget_RPATHS := \
+gb_LinkTarget__RPATHS := \
URELIB:@__________________________________________________URELIB/ \
UREBIN: \
- OOOLIB:@__________________________________________________OOO/ \
+ OOO:@__________________________________________________OOO/ \
BRAND: \
SDKBIN: \
NONEBIN: \
@@ -209,8 +216,8 @@ define gb_LinkTarget__get_installname
$(if $(2),-install_name '$(2)$(1)',)
endef
-gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_COMPILEROPTFLAGS)
-gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_COMPILEROPTFLAGS)
+gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) $(gb_COMPILEROPTFLAGS)
+gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR)
gb_LinkTarget_OBJCXXFLAGS := $(gb_CXXFLAGS) $(gb_OBJCXXFLAGS) $(gb_COMPILEROPTFLAGS)
ifeq ($(gb_DEBUGLEVEL),2)
@@ -222,30 +229,65 @@ endif
gb_LinkTarget_INCLUDE := $(filter-out %/stl, $(subst -I. , ,$(SOLARINC)))
gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC)))
+# FIXME framework handling very hackish
+define gb_LinkTarget__get_liblinkflags
+$(patsubst lib%.dylib,-l%,$(foreach lib,$(filter-out $(gb_Library__FRAMEWORKS),$(1)),$(call gb_Library_get_filename,$(lib)))) \
+$(addprefix -framework ,$(filter $(gb_Library__FRAMEWORKS),$(1)))
+endef
+
+define gb_LinkTarget__get_layer
+$(if $(filter Executable,$(1)),\
+ $$(call gb_Executable_get_layer,$(2)),\
+ $$(call gb_Library_get_layer,$(2)))
+endef
+
# FIXME the DYLIB_FILE mess is only necessary because
# solver layout is different from installation layout
-# FIXME framework handling very hackish
-define gb_LinkTarget__command
-$(call gb_Output_announce,$(2),$(true),LNK,4)
+define gb_LinkTarget__command_dynamiclink
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
- DYLIB_FILE=`$(gb_MKTEMP) $(dir $(1))` && \
- $(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl $(3) $(patsubst lib%.dylib,-l%,$(foreach lib,$(4),$(call gb_Library_get_filename,$(lib)))) > $${DYLIB_FILE} && \
+ DYLIB_FILE=`$(gb_MKTEMP)` && \
+ $(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \
+ $(if $(filter Executable,$(TARGETTYPE)),$(gb_Executable_TARGETTYPEFLAGS)) \
+ $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
+ $(subst \d,$$,$(RPATH)) $(LDFLAGS) \
+ $(patsubst lib%.dylib,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib)))) > $${DYLIB_FILE} && \
$(gb_CXX) \
- $(3) \
- $(patsubst lib%.dylib,-l%,$(foreach lib,$(filter-out $(gb_Library__FRAMEWORKS),$(4)),$(call gb_Library_get_filename,$(lib)))) \
- $(addprefix -framework ,$(filter $(gb_Library__FRAMEWORKS),$(4))) \
- $(foreach object,$(6),$(call gb_CObject_get_target,$(object))) \
- $(foreach object,$(7),$(call gb_CxxObject_get_target,$(object))) \
- $(foreach object,$(8),$(call gb_ObjCxxObject_get_target,$(object))) \
- $(foreach lib,$(5),$(call gb_StaticLibrary_get_target,$(lib))) \
+ $(if $(filter Executable,$(TARGETTYPE)),$(gb_Executable_TARGETTYPEFLAGS)) \
+ $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
+ $(subst \d,$$,$(RPATH)) $(LDFLAGS) \
+ $(call gb_LinkTarget__get_liblinkflags,$(LINKED_LIBS)) \
+ $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
+ $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
+ $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \
+ $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
+ $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) \
-o $(1) \
`cat $${DYLIB_FILE}` && \
- $(if $(filter shl exe,$(TARGETTYPE)),$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl $(TARGETTYPE) $(LAYER) $(1) &&,) \
- $(if $(filter shl,$(TARGETTYPE)),macosx-create-bundle $(1) &&,) \
+ $(if $(filter Library CppunitTest,$(TARGETTYPE)),\
+ $(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl Library $(LAYER) $(1) && \
+ ln -sf $(1) $(patsubst %.dylib,%.jnilib,$(1)) &&) \
rm -f $${DYLIB_FILE})
endef
+# parameters: 1-linktarget 2-cobjects 3-cxxobjects
+define gb_LinkTarget__command_staticlink
+$(call gb_Helper_abbreviate_dirs,\
+ mkdir -p $(dir $(1)) && \
+ $(gb_AR) -rsu $(1) \
+ $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
+ $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
+ $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \
+ $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
+ 2> /dev/null)
+endef
+
+define gb_LinkTarget__command
+$(call gb_Output_announce,$(2),$(true),LNK,4)
+$(if $(filter Library CppunitTest Executable,$(TARGETTYPE)),$(call gb_LinkTarget__command_dynamiclink,$(1),$(2)))
+$(if $(filter StaticLibrary,$(TARGETTYPE)),$(call gb_LinkTarget__command_staticlink,$(1)))
+endef
+
# Library class
@@ -269,7 +311,7 @@ gb_Library_OOOEXT := mxp$(gb_Library_PLAINEXT)
gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT)
endif
-gb_Library__FRAMEWORKS += \
+gb_Library__FRAMEWORKS := \
Cocoa \
gb_Library_PLAINLIBS_NONE += \
@@ -293,34 +335,31 @@ gb_Library_FILENAMES := \
$(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(gb_Library_UNOVERPRE)$(lib)$(gb_Library_PLAINEXT)) \
-# HACK
-# SUBSTITING OOOLIB with OOO to make the perl script happy
-define gb_Library_Library_platform
-$(call gb_LinkTarget_get_target,$(2)) : TARGETTYPE := shl
-$(call gb_LinkTarget_get_target,$(2)) : LAYER :=$(subst OOOLIB,OOO,$(call gb_Library_get_layer,$(1)))
-
-endef
-
-define gb_Library_get_rpath
-$(call gb_LinkTarget__get_installname,$(call gb_Library_get_filename,$(1)),$(call gb_LinkTarget__get_rpath_for_layer,$(call gb_Library_get_layer,$(1))))
-endef
-
gb_Library_LAYER := \
- $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOOLIB) \
+ $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \
$(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):URELIB) \
- $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOOLIB) \
- $(foreach lib,$(gb_Library_RTLIBS),$(lib):OOOLIB) \
+ $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_RTLIBS),$(lib):OOO) \
$(foreach lib,$(gb_Library_RTVERLIBS),$(lib):URELIB) \
$(foreach lib,$(gb_Library_STLLIBS),$(lib):URELIB) \
$(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):URELIB) \
- $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOOLIB) \
+ $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOO) \
$(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):URELIB) \
+define gb_Library_get_rpath
+$(call gb_LinkTarget__get_installname,$(call gb_Library_get_filename,$(1)),$(call gb_LinkTarget__get_rpath_for_layer,$(call gb_Library_get_layer,$(1))))
+endef
+
+define gb_Library_Library_platform
+$(call gb_LinkTarget_get_target,$(2)) : RPATH := $(call gb_Library_get_rpath,$(1))
+$(call gb_LinkTarget_get_target,$(2)) : LAYER := $(call gb_Library_get_layer,$(1))
+
+endef
+
# StaticLibrary class
gb_StaticLibrary_DEFS :=
-gb_StaticLibrary_TARGETTYPEFLAGS := -static -nostdlib
gb_StaticLibrary_SYSPRE := lib
gb_StaticLibrary_PLAINEXT := .a
gb_StaticLibrary_JPEGEXT := lib$(gb_StaticLibrary_PLAINEXT)
@@ -329,37 +368,57 @@ gb_StaticLibrary_FILENAMES := \
$(foreach lib,$(gb_StaticLibrary_JPEGLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_JPEGEXT)) \
$(foreach lib,$(gb_StaticLibrary_PLAINLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_PLAINEXT)) \
-define gb_StaticLibrary_StaticLibrary_platform
-$(call gb_LinkTarget_get_target,$(2)) : TARGETTYPE := staticlib
-$(call gb_LinkTarget_get_target,$(2)) : LAYER :=
+gb_StaticLibrary_StaticLibrary_platform =
-endef
# Executable class
gb_Executable_EXT :=
gb_Executable_TARGETTYPEFLAGS := -bind_at_load
-# HACK
-# SUBSTITING OOOLIB with OOO to make the perl script happy
-define gb_Executable_Library_platform
-$(call gb_LinkTarget_get_target,$(2)) : TARGETTYPE := exe
-$(call gb_LinkTarget_get_target,$(2)) : LAYER :=$(subst OOOLIB,OOO,$(call gb_Executable_get_layer,$(1)))
+gb_Executable_LAYER := \
+ $(foreach exe,$(gb_Executable_UREBIN),$(exe):UREBIN) \
+ $(foreach exe,$(gb_Executable_SDK),$(exe):SDKBIN) \
+ $(foreach exe,$(gb_Executable_OOO),$(exe):OOO) \
+ $(foreach exe,$(gb_Executable_BRAND),$(exe):BRAND) \
+ $(foreach exe,$(gb_Executable_NONE),$(exe):NONEBIN) \
-endef
define gb_Executable_get_rpath
$(call gb_LinkTarget__get_installname,$(1),$(call gb_LinkTarget__get_rpath_for_layer,$(call gb_Executable_get_layer,$(1))))
endef
-gb_Executable_LAYER := \
- $(foreach exe,$(gb_Executable_UREBIN),$(exe):UREBIN) \
- $(foreach exe,$(gb_Executable_SDK),$(exe):SDKBIN) \
- $(foreach exe,$(gb_Executable_OOO),$(exe):OOOLIB) \
- $(foreach exe,$(gb_Executable_BRAND),$(exe):BRAND) \
- $(foreach exe,$(gb_Executable_NONE),$(exe):NONEBIN) \
+define gb_Executable_Executable_platform
+$(call gb_LinkTarget_get_target,$(2)) : RPATH := $(call gb_Executable_get_rpath,$(1))
+$(call gb_LinkTarget_get_target,$(2)) : LAYER := $(call gb_Executable_get_layer,$(1))
+
+endef
+# CppunitTest class
+
+gb_CppunitTest_CPPTESTPRECOMMAND := DYLD_LIBRARY_PATH=$(OUTDIR)/lib
+gb_CppunitTest_SYSPRE := libtest_
+gb_CppunitTest_EXT := .dylib
+gb_CppunitTest_get_filename = $(gb_CppunitTest_SYSPRE)$(1)$(gb_CppunitTest_EXT)
+gb_CppunitTest_get_libfilename = $(gb_CppunitTest_get_filename)
+
+define gb_CppunitTest_CppunitTest_platform
+$(call gb_LinkTarget_get_target,$(2)) : RPATH :=
+$(call gb_LinkTarget_get_target,$(2)) : LAYER := NONE
+
+endef
+
+# JunitTest class
+
+define gb_JunitTest_JunitTest_platform
+$(call gb_JunitTest_get_target,$(1)) : DEFS := \
+ -Dorg.openoffice.test.arg.soffice="$$$${OOO_TEST_SOFFICE:-path:$(OUTDIR)/installation/opt/OpenOffice.org.app/Contents/MacOS/soffice}" \
+ -Dorg.openoffice.test.arg.env=DYLD_LIBRARY_PATH \
+ -Dorg.openoffice.test.arg.user=file://$(call gb_JunitTest_get_userdir,$(1)) \
+
+endef
+
# SdiTarget class
gb_SdiTarget_SVIDLPRECOMMAND := DYLD_LIBRARY_PATH=$(OUTDIR)/lib
@@ -377,15 +436,19 @@ define gb_SrsPartTarget__command_dep
$(call gb_Helper_abbreviate_dirs,\
$(gb_GCCP) \
-MM -MT $(call gb_SrsPartTarget_get_target,$(1)) \
- $(3) \
- $(4) \
+ $(INCLUDE) \
+ $(DEFS) \
-c -x c++-header $(2) \
-o $(call gb_SrsPartTarget_get_dep_target,$(1)))
endef
+
# ComponentTarget
-gb_ComponentTarget_XSLTPROCPRECOMMAND := DYLD_LIBRARY_PATH=$(OUTDIR)/lib
-gb_ComponentTarget_PREFIXBASISNATIVE := vnd.sun.star.expand:$$OOO_BASE_DIR/program/
+gb_XSLTPROCPRECOMMAND := DYLD_LIBRARY_PATH=$(OUTDIR)/lib
+gb_Library_COMPONENTPREFIXES := \
+ OOO:vnd.sun.star.expand:\dOOO_BASE_DIR/program/ \
+ URELIB:vnd.sun.star.expand:\dURE_INTERNAL_LIB_DIR/ \
+
# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/platform/solaris.mk b/solenv/gbuild/platform/solaris.mk
index b2e4ab3b8b44..22c264dbe4e7 100755
--- a/solenv/gbuild/platform/solaris.mk
+++ b/solenv/gbuild/platform/solaris.mk
@@ -1,8 +1,8 @@
#*************************************************************************
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2009 by Sun Microsystems, Inc.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
#
@@ -14,12 +14,12 @@
#
# 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
+# 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).
#
# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
+# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
@@ -28,12 +28,23 @@
GUI := UNX
COM := C52
-gb_MKTEMP := mktemp -p
-gb_AWK := nawk
+gb_MKTEMP := mktemp -t gbuild.XXXXXX
gb_CC := cc
gb_CXX := CC
gb_GCCP := cc
+gb_AR := ar
+gb_AWK := nawk
+gb_CLASSPATHSEP := :
+
+# use CC/CXX if they are nondefaults
+ifneq ($(origin CC),default)
+gb_CC := $(CC)
+gb_GCCP := $(CC)
+endif
+ifneq ($(origin CXX),default)
+gb_CXX := $(CXX)
+endif
gb_OSDEFS := \
-D$(OS) \
@@ -45,13 +56,10 @@ gb_OSDEFS := \
-D_POSIX_PTHREAD_SEMANTICS \
-D_PTHREADS \
-DUNIX \
-# $(PTHREAD_CFLAGS) \
gb_COMPILERDEFS := \
-D$(COM) \
-DCPPU_ENV=sunpro5 \
-# -D$(CVER) \
-# -DCVER=$(CVER) \
gb_CPUDEFS := -D$(CPUNAME)
ifeq ($(CPUNAME),SPARC)
@@ -76,11 +84,10 @@ gb_CXXFLAGS := \
+w2 \
-erroff=doubunder,identexpected,inllargeuse,inllargeint,notemsource,reftotemp,truncwarn,wnoretvalue,anonnotype \
-gb_CFLAGS_WERROR := \
- -errwarn=%all \
-
-gb_CXXFLAGS_WERROR := \
- -xwe \
+ifneq ($(EXTERNAL_WARNINGS_NOT_ERRORS),TRUE)
+gb_CFLAGS_WERROR := -errwarn=%all
+gb_CXXFLAGS_WERROR := -xwe
+endif
gb_LinkTarget_EXCEPTIONFLAGS := \
-DEXCEPTIONS_ON \
@@ -113,11 +120,13 @@ gb_COMPILEROPTFLAGS := -m32 -xarch=sparc -xO3 -xspace -xprefetch=yes
endif
endif
+gb_COMPILERNOOPTFLAGS :=
# Helper class
gb_Helper_abbreviate_dirs_native = $(gb_Helper_abbreviate_dirs)
+
# CObject class
define gb_CObject__command
@@ -131,9 +140,9 @@ $(call gb_Helper_abbreviate_dirs,\
-o $(1) \
-xMMD \
-xMF $(call gb_CObject_get_dep_target,$(2)) \
- $(4) $(5) \
+ $(DEFS) $(CFLAGS) \
-I$(dir $(3)) \
- $(6))
+ $(INCLUDE))
endef
@@ -145,13 +154,13 @@ $(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
mkdir -p $(dir $(call gb_CxxObject_get_dep_target,$(2))) && \
$(gb_CXX) \
+ $(DEFS) $(CXXFLAGS) \
-c $(3) \
-o $(1) \
-xMMD \
-xMF $(call gb_CxxObject_get_dep_target,$(2)) \
- $(4) $(5) \
-I$(dir $(3)) \
- $(6))
+ $(INCLUDE_STL) $(INCLUDE))
endef
@@ -162,15 +171,15 @@ $(patsubst $(1):%,%,$(filter $(1):%,$(gb_LinkTarget__RPATHS)))
endef
gb_LinkTarget__RPATHS := \
- URELIB:$$$$ORIGIN \
- UREBIN:$$$$ORIGIN/../lib:$$$$ORIGIN \
- OOOLIB:$$$$ORIGIN:$$$$ORIGIN/../ure-link/lib \
- BRAND:$$$$ORIGIN:$$$$ORIGIN/../basis-link/program:$$$$ORIGIN/../basis-link/ure-link/lib \
- SDKBIN:$$$$ORIGIN/../../ure-link/lib \
- NONEBIN:$$$$ORIGIN/../lib:$$$$ORIGIN \
+ URELIB:\dORIGIN \
+ UREBIN:\dORIGIN/../lib:\dORIGIN \
+ OOO:\dORIGIN:\dORIGIN/../ure-link/lib \
+ BRAND:\dORIGIN:\dORIGIN/../basis-link/program:\dORIGIN/../basis-link/ure-link/lib \
+ SDKBIN:\dORIGIN/../../ure-link/lib \
+ NONEBIN:\dORIGIN/../lib:\dORIGIN \
-gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_COMPILEROPTFLAGS)
-gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_COMPILEROPTFLAGS)
+gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) $(gb_COMPILEROPTFLAGS)
+gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR)
ifeq ($(gb_DEBUGLEVEL),2)
gb_LinkTarget_CXXFLAGS += -g
@@ -180,19 +189,35 @@ endif
gb_LinkTarget_INCLUDE := $(filter-out %/stl, $(subst -I. , ,$(SOLARINC)))
gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC)))
-define gb_LinkTarget__command
-$(call gb_Output_announce,$(2),$(true),LNK,4)
+define gb_LinkTarget__command_dynamiclink
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
$(gb_CXX) \
- $(3) \
- $(patsubst lib%.so,-l%,$(foreach lib,$(4),$(call gb_Library_get_filename,$(lib)))) \
- $(foreach object,$(6),$(call gb_CObject_get_target,$(object))) \
- $(foreach object,$(7),$(call gb_CxxObject_get_target,$(object))) \
- $(foreach lib,$(5),$(call gb_StaticLibrary_get_target,$(lib))) \
+ $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
+ $(subst \d,$$,$(RPATH)) $(LDFLAGS) \
+ $(patsubst lib%.so,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib)))) \
+ $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
+ $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
+ $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
+ $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) \
-o $(1))
endef
+define gb_LinkTarget__command_staticlink
+$(call gb_Helper_abbreviate_dirs,\
+ mkdir -p $(dir $(1)) && \
+ $(gb_AR) -rsu $(1) \
+ $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
+ $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
+ $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
+ 2> /dev/null)
+endef
+
+define gb_LinkTarget__command
+$(call gb_Output_announce,$(2),$(true),LNK,4)
+$(if $(filter Library CppunitTest Executable,$(TARGETTYPE)),$(call gb_LinkTarget__command_dynamiclink,$(1)))
+$(if $(filter StaticLibrary,$(TARGETTYPE)),$(call gb_LinkTarget__command_staticlink,$(1)))
+endef
# Library class
@@ -237,31 +262,30 @@ gb_Library_FILENAMES := \
$(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(gb_Library_UNOVERPRE)$(lib)$(gb_Library_PLAINEXT)) \
-gb_Library__Library_platform =
-
-define gb_Library_get_rpath
-'-R$(call gb_LinkTarget__get_rpath_for_layer,$(call gb_Library_get_layer,$(1)))'
-endef
-
gb_Library_LAYER := \
- $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOOLIB) \
+ $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \
$(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):URELIB) \
- $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOOLIB) \
- $(foreach lib,$(gb_Library_RTLIBS),$(lib):OOOLIB) \
+ $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_RTLIBS),$(lib):OOO) \
$(foreach lib,$(gb_Library_RTVERLIBS),$(lib):URELIB) \
$(foreach lib,$(gb_Library_STLLIBS),$(lib):URELIB) \
$(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):URELIB) \
- $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOOLIB) \
+ $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOO) \
$(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):URELIB) \
+define gb_Library_get_rpath
+'-R$(call gb_LinkTarget__get_rpath_for_layer,$(call gb_Library_get_layer,$(1)))'
+endef
+
+define gb_Library_Library_platform
+$(call gb_LinkTarget_get_target,$(2)) : RPATH := $(call gb_Library_get_rpath,$(1))
+
+endef
+
# StaticLibrary class
gb_StaticLibrary_DEFS :=
-gb_StaticLibrary_TARGETTYPEFLAGS := \
- -Bstatic \
- -xar \
-
gb_StaticLibrary_SYSPRE := lib
gb_StaticLibrary_PLAINEXT := .a
gb_StaticLibrary_JPEGEXT := lib$(gb_StaticLibrary_PLAINEXT)
@@ -272,24 +296,52 @@ gb_StaticLibrary_FILENAMES := \
gb_StaticLibrary_StaticLibrary_platform =
+
# Executable class
gb_Executable_EXT :=
-gb_Executable_TARGETTYPEFLAGS :=
-gb_Executable__Executable_platform =
-
-define gb_Executable_get_rpath
-'-R$(call gb_LinkTarget__get_rpath_for_layer,$(call gb_Executable_get_layer,$(1)))'
-endef
gb_Executable_LAYER := \
$(foreach exe,$(gb_Executable_UREBIN),$(exe):UREBIN) \
$(foreach exe,$(gb_Executable_SDK),$(exe):SDKBIN) \
- $(foreach exe,$(gb_Executable_OOO),$(exe):OOOLIB) \
+ $(foreach exe,$(gb_Executable_OOO),$(exe):OOO) \
$(foreach exe,$(gb_Executable_BRAND),$(exe):BRAND) \
$(foreach exe,$(gb_Executable_NONE),$(exe):NONEBIN) \
+define gb_Executable_get_rpath
+'-R$(call gb_LinkTarget__get_rpath_for_layer,$(call gb_Executable_get_layer,$(1)))'
+endef
+
+define gb_Executable_Executable_platform
+$(call gb_LinkTarget_get_target,$(2)) : RPATH := $(call gb_Executable_get_rpath,$(1))
+
+endef
+
+
+# CppunitTest class
+
+gb_CppunitTest_CPPTESTPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib
+gb_CppunitTest_SYSPRE := libtest_
+gb_CppunitTest_EXT := .so
+gb_CppunitTest_get_filename = $(gb_CppunitTest_SYSPRE)$(1)$(gb_CppunitTest_EXT)
+gb_CppunitTest_get_libfilename = $(gb_CppunitTest_get_filename)
+
+define gb_CppunitTest_CppunitTest_platform
+$(call gb_LinkTarget_get_target,$(2)) : RPATH :=
+
+endef
+
+# JunitTest class
+
+define gb_JunitTest_JunitTest_platform
+$(call gb_JunitTest_get_target,$(1)) : DEFS := \
+ -Dorg.openoffice.test.arg.soffice="$$$${OOO_TEST_SOFFICE:-path:$(OUTDIR)/installation/opt/openoffice.org3/program/soffice}" \
+ -Dorg.openoffice.test.arg.env=LD_LIBRARY_PATH \
+ -Dorg.openoffice.test.arg.user=file://$(call gb_JunitTest_get_userdir,$(1)) \
+
+endef
+
# SdiTarget class
gb_SdiTarget_SVIDLPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib
@@ -308,7 +360,8 @@ gb_SrsPartTarget_RSCCOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib SOLARBINDIR=$(OUTDI
define gb_SrsPartTarget__command_dep
$(call gb_Helper_abbreviate_dirs_native,\
$(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \
- $(3) $(4) \
+ $(INCLUDE) \
+ $(DEFS) \
$(2) \
-f - \
| $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \
@@ -323,8 +376,10 @@ endef
# ComponentTarget
-gb_ComponentTarget_XSLTPROCPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib
-gb_ComponentTarget_PREFIXBASISNATIVE := vnd.sun.star.expand:$$OOO_BASE_DIR/program/
+gb_XSLTPROCPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib
+gb_Library_COMPONENTPREFIXES := \
+ OOO:vnd.sun.star.expand:\dOOO_BASE_DIR/program/ \
+ URELIB:vnd.sun.star.expand:\dURE_INTERNAL_LIB_DIR/ \
-# vim: set noet sw=4 ts=4:
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/platform/windows.mk b/solenv/gbuild/platform/windows.mk
index a25d21ff5e79..ed9820630099 100755
--- a/solenv/gbuild/platform/windows.mk
+++ b/solenv/gbuild/platform/windows.mk
@@ -2,7 +2,7 @@
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
-# Copyright 2009 by Sun Microsystems, Inc.
+# Copyright 2000, 2011 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
#
@@ -14,12 +14,12 @@
#
# 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
+# 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).
#
# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
+# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
@@ -28,12 +28,24 @@
GUI := WNT
COM := MSC
-gb_MKTEMP := mktemp -p
+# set tmpdir to some mixed case path, suitable for native tools
+gb_TMPDIR:=$(if $(TMPDIR),$(shell cygpath -m $(TMPDIR)),$(shell cygpath -m /tmp))
+gb_MKTEMP := mktemp --tmpdir=$(gb_TMPDIR) -t gbuild.XXXXXX
gb_CC := cl
gb_CXX := cl
gb_LINK := link
gb_AWK := awk
+gb_CLASSPATHSEP := ;
+
+# use CC/CXX if they are nondefaults
+ifneq ($(origin CC),default)
+gb_CC := $(CC)
+gb_GCCP := $(CC)
+endif
+ifneq ($(origin CXX),default)
+gb_CXX := $(CXX)
+endif
gb_OSDEFS := \
-DWINVER=0x0500 \
@@ -99,7 +111,6 @@ gb_CFLAGS := \
-wd4800 \
-wd4820 \
-wd4826 \
- -WX \
-Zc:forScope,wchar_t- \
-Zm500 \
@@ -146,10 +157,20 @@ gb_CXXFLAGS := \
-wd4800 \
-wd4820 \
-wd4826 \
- -WX \
-Zc:forScope,wchar_t- \
-Zm500 \
+gb_STDLIBS := \
+ uwinapi \
+ kernel32 \
+ msvcrt \
+ oldnames \
+
+ifneq ($(EXTERNAL_WARNINGS_NOT_ERRORS),TRUE)
+gb_CFLAGS_WERROR := -WX
+gb_CXXFLAGS_WERROR := -WX
+endif
+
gb_LinkTarget_EXCEPTIONFLAGS := \
-DEXCEPTIONS_ON \
-EHa \
@@ -187,21 +208,21 @@ else
gb_COMPILEROPTFLAGS := -Ob1 -Oxs -Oy-
endif
+gb_COMPILERNOOPTFLAGS := -Od
-# Helper class
-gb_Helper_SRCDIR_NATIVE := $(shell cygpath -m $(SRCDIR))
-gb_Helper_WORKDIR_NATIVE := $(shell cygpath -m $(WORKDIR))
-gb_Helper_OUTDIR_NATIVE := $(shell cygpath -m $(OUTDIR))
-gb_Helper_REPODIR_NATIVE := $(shell cygpath -m $(REPODIR))
+# Helper class
+gb_Helper_SRCDIR_NATIVE := $(shell cygpath -m $(SRCDIR) | $(gb_AWK) -- '{ print tolower(substr($$0,1,1)) substr($$0,2) }')
+gb_Helper_WORKDIR_NATIVE := $(shell cygpath -m $(WORKDIR) | $(gb_AWK) -- '{ print tolower(substr($$0,1,1)) substr($$0,2) }')
+gb_Helper_OUTDIR_NATIVE := $(shell cygpath -m $(OUTDIR) | $(gb_AWK) -- '{ print tolower(substr($$0,1,1)) substr($$0,2) }')
+gb_Helper_REPODIR_NATIVE := $(shell cygpath -m $(REPODIR) | $(gb_AWK) -- '{ print tolower(substr($$0,1,1)) substr($$0,2) }')
define gb_Helper_abbreviate_dirs_native
-R=$(gb_Helper_REPODIR_NATIVE) && \
-$(subst $(gb_Helper_REPODIR_NATIVE)/,$$R/,S=$(gb_Helper_SRCDIR_NATIVE) && \
-$(subst $(gb_Helper_SRCDIR_NATIVE)/,$$S/,O=$(gb_Helper_OUTDIR_NATIVE)) && \
-$(subst $(gb_Helper_SRCDIR_NATIVE)/,$$S/,$(subst $(REPODIR)/,$$R/,$(subst $(SRCDIR)/,$$S/,$(subst $(gb_Helper_OUTDIR_NATIVE)/,$$O/,$(subst $(OUTDIR)/,$$O/,W=$(gb_Helper_WORKDIR_NATIVE) && $(subst $(gb_Helper_WORKDIR_NATIVE)/,$$W/,$(subst $(WORKDIR)/,$$W/,$(1)))))))))
+R=$(gb_Helper_REPODIR_NATIVE) && $(subst $(REPODIR)/,$$R/,$(subst $(gb_Helper_REPODIR_NATIVE)/,$$R/,O=$(gb_Helper_OUTDIR_NATIVE) && W=$(gb_Helper_WORKDIR_NATIVE) && S=$(gb_Helper_SRCDIR_NATIVE))) && \
+$(subst $(REPODIR)/,$$R/,$(subst $(SRCDIR)/,$$S/,$(subst $(OUTDIR)/,$$O/,$(subst $(WORKDIR)/,$$W/,$(subst $(gb_Helper_REPODIR_NATIVE)/,$$R/,$(subst $(gb_Helper_SRCDIR_NATIVE)/,$$S/,$(subst $(gb_Helper_OUTDIR_NATIVE)/,$$O/,$(subst $(gb_Helper_WORKDIR_NATIVE)/,$$W/,$(1)))))))))
endef
+
# CObject class
ifeq ($(gb_FULLDEPS),$(true))
@@ -231,16 +252,16 @@ $(call gb_Helper_abbreviate_dirs_native,\
mkdir -p $(dir $(1)) && \
unset INCLUDE && \
$(gb_CC) \
- $(4) $(5) \
+ $(DEFS) $(CFLAGS) -Fd$(PDBFILE) \
+ $(PCHFLAGS) \
-I$(dir $(3)) \
- $(6) \
+ $(INCLUDE) \
-c $(3) \
-Fo$(1))
-$(call gb_CObject__command_deponcompile,$(1),$(2),$(3),$(4),$(5),$(6))
+$(call gb_CObject__command_deponcompile,$(1),$(2),$(3),$(DEFS),$(CFLAGS),$(INCLUDE))
endef
-
# CxxObject class
ifeq ($(gb_FULLDEPS),$(true))
@@ -253,13 +274,13 @@ $(call gb_Helper_abbreviate_dirs_native,\
$(3) \
-f - \
| $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \
- -v OBJECTFILE=$(1) \
- -v OUTDIR=$(OUTDIR)/ \
+ -v OBJECTFILE=$(1) \
+ -v OUTDIR=$(OUTDIR)/ \
-v WORKDIR=$(WORKDIR)/ \
-v SRCDIR=$(SRCDIR)/ \
- -v REPODIR=$(REPODIR)/ \
+ -v REPODIR=$(REPODIR)/ \
> $(call gb_CxxObject_get_dep_target,$(2)))
-endef
+ endef
else
gb_CxxObject__command_deponcompile =
endif
@@ -270,21 +291,20 @@ $(call gb_Helper_abbreviate_dirs_native,\
mkdir -p $(dir $(1)) && \
unset INCLUDE && \
$(gb_CXX) \
- $(4) $(5) \
+ $(DEFS) $(CXXFLAGS) -Fd$(PDBFILE)\
+ $(PCHFLAGS) \
-I$(dir $(3)) \
- $(6) \
+ $(INCLUDE_STL) $(INCLUDE) \
-c $(3) \
-Fo$(1))
-$(call gb_CxxObject__command_deponcompile,$(1),$(2),$(3),$(4),$(5),$(6))
-
+$(call gb_CxxObject__command_deponcompile,$(1),$(2),$(3),$(DEFS),$(CFLAGS),$(INCLUDE))
endef
# PrecompiledHeader class
gb_PrecompiledHeader_get_enableflags = -Yu$(1).hxx \
- -Fp$(call gb_PrecompiledHeader_get_target,$(1)) \
- -Fd$(call gb_PrecompiledHeader_get_target,$(1)).pdb
+ -Fp$(call gb_PrecompiledHeader_get_target,$(1))
ifeq ($(gb_FULLDEPS),$(true))
define gb_PrecompiledHeader__command_deponcompile
@@ -307,27 +327,25 @@ else
gb_PrecompiledHeader__command_deponcompile =
endif
+
define gb_PrecompiledHeader__command
$(call gb_Output_announce,$(2),$(true),PCH,1)
$(call gb_Helper_abbreviate_dirs_native,\
mkdir -p $(dir $(1)) $(dir $(call gb_PrecompiledHeader_get_dep_target,$(2))) && \
unset INCLUDE && \
$(gb_CXX) \
- $(4) $(5) \
+ $(4) $(5) -Fd$(PDBFILE) \
-I$(dir $(3)) \
$(6) \
-c $(3) \
- -Yc$(notdir $(patsubst %.cxx,%.hxx,$(3))) -Fp$(1) -Fd$(1).pdb -Fo$(1).obj)
-rm $(1).obj
+ -Yc$(notdir $(patsubst %.cxx,%.hxx,$(3))) -Fp$(1) -Fo$(1).obj)
$(call gb_PrecompiledHeader__command_deponcompile,$(1),$(2),$(3),$(4),$(5),$(6))
-
endef
# NoexPrecompiledHeader class
gb_NoexPrecompiledHeader_get_enableflags = -Yu$(1).hxx \
- -Fp$(call gb_NoexPrecompiledHeader_get_target,$(1)) \
- -Fd$(call gb_NoexPrecompiledHeader_get_target,$(1)).pdb
+ -Fp$(call gb_NoexPrecompiledHeader_get_target,$(1))
ifeq ($(gb_FULLDEPS),$(true))
define gb_NoexPrecompiledHeader__command_deponcompile
@@ -350,27 +368,26 @@ else
gb_NoexPrecompiledHeader__command_deponcompile =
endif
+
define gb_NoexPrecompiledHeader__command
$(call gb_Output_announce,$(2),$(true),PCH,1)
$(call gb_Helper_abbreviate_dirs_native,\
mkdir -p $(dir $(1)) $(dir $(call gb_NoexPrecompiledHeader_get_dep_target,$(2))) && \
unset INCLUDE && \
$(gb_CXX) \
- $(4) $(5) \
+ $(4) $(5) -Fd$(PDBFILE) \
-I$(dir $(3)) \
$(6) \
-c $(3) \
- -Yc$(notdir $(patsubst %.cxx,%.hxx,$(3))) -Fp$(1) -Fd$(1).pdb -Fo$(1).obj)
-rm $(1).obj
+ -Yc$(notdir $(patsubst %.cxx,%.hxx,$(3))) -Fp$(1) -Fo$(1).obj)
$(call gb_NoexPrecompiledHeader__command_deponcompile,$(1),$(2),$(3),$(4),$(5),$(6))
-
endef
# LinkTarget class
-gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_COMPILEROPTFLAGS)
-gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_COMPILEROPTFLAGS)
+gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) $(gb_COMPILEROPTFLAGS)
+gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR)
gb_LinkTarget_INCLUDE :=\
$(filter-out %/stl, $(subst -I. , ,$(SOLARINC))) \
@@ -378,25 +395,34 @@ gb_LinkTarget_INCLUDE :=\
gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC)))
+gb_LinkTarget_get_pdbfile = $(call gb_LinkTarget_get_target,)pdb/$(1).pdb
+
define gb_LinkTarget__command
$(call gb_Output_announce,$(2),$(true),LNK,4)
$(call gb_Helper_abbreviate_dirs_native,\
mkdir -p $(dir $(1)) && \
- RESPONSEFILE=$$(mktemp --tmpdir=$(gb_Helper_MISC)) && \
- echo "$(foreach object,$(7),$(call gb_CxxObject_get_target,$(object))) \
- $(foreach object,$(6),$(call gb_CObject_get_target,$(object)))" > $${RESPONSEFILE} && \
+ rm -f $(1) && \
+ RESPONSEFILE=`$(gb_MKTEMP)` && \
+ echo "$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
+ $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
+ $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
+ $(PCHOBJS)" > $${RESPONSEFILE} && \
$(gb_LINK) \
- $(3) \
+ $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
+ $(if $(filter StaticLibrary,$(TARGETTYPE)),$(gb_StaticLibrary_TARGETTYPEFLAGS)) \
+ $(if $(filter Executable,$(TARGETTYPE)),$(gb_Executable_TARGETTYPEFLAGS)) \
+ $(LDFLAGS) \
@$${RESPONSEFILE} \
- $(foreach lib,$(4),$(call gb_Library_get_filename,$(lib))) \
- $(foreach lib,$(5),$(call gb_StaticLibrary_get_filename,$(lib))) \
- $(subst -out: -implib:$(1),-out:$(1),-out:$(DLLTARGET) -implib:$(1)) && rm $${RESPONSEFILE})
+ $(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib))) \
+ $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_filename,$(lib))) \
+ $(if $(DLLTARGET),-out:$(DLLTARGET) -implib:$(1),-out:$(1)); RC=$$?; rm $${RESPONSEFILE} \
+ $(if $(DLLTARGET),; if [ ! -f $(DLLTARGET) ]; then rm -f $(1) && false; fi) ; exit $$RC)
endef
# Library class
-gb_Library_DEFS := -D_DLL_ -D_DLL
+gb_Library_DEFS := -D_DLL
gb_Library_TARGETTYPEFLAGS := -DLL
gb_Library_get_rpath :=
@@ -420,17 +446,17 @@ gb_Library_PLAINLIBS_NONE += \
uwinapi \
z \
-gb_LinkTarget_LAYER := \
- $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOOLIB) \
- $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):OOOLIB) \
- $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):OOOLIB) \
- $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOOLIB) \
- $(foreach lib,$(gb_Library_RTLIBS),$(lib):OOOLIB) \
- $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):OOOLIB) \
- $(foreach lib,$(gb_Library_STLLIBS),$(lib):OOOLIB) \
- $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):OOOLIB) \
- $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOOLIB) \
- $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):OOOLIB) \
+gb_Library_LAYER := \
+ $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_RTLIBS),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_STLLIBS),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):OOO) \
gb_Library_FILENAMES :=\
$(foreach lib,$(gb_Library_TARGETS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \
@@ -460,13 +486,13 @@ gb_Library_DLLFILENAMES :=\
$(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):$(lib)$(gb_Library_UNOEXT)) \
$(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(lib)$(gb_Library_UNOVEREXT)) \
-
define gb_Library_Library_platform
$(call gb_LinkTarget_set_dlltarget,$(2),$(3))
$(call gb_LinkTarget_set_auxtargets,$(2),\
$(patsubst %.lib,%.exp,$(call gb_LinkTarget_get_target,$(2))) \
$(3).manifest \
+ $(call gb_LinkTarget_get_pdbfile,$(2)) \
$(patsubst %.dll,%.pdb,$(3)) \
$(patsubst %.dll,%.ilk,$(3)) \
)
@@ -484,6 +510,9 @@ endif
$(call gb_Deliver_add_deliverable,$(OUTDIR)/bin/$(notdir $(3)),$(3))
+$(call gb_LinkTarget_get_target,$(2)) \
+$(call gb_LinkTarget_get_headers_target,$(2)) : PDBFILE = $(call gb_LinkTarget_get_pdbfile,$(2))
+
endef
define gb_Library_get_dllname
@@ -505,7 +534,15 @@ gb_StaticLibrary_FILENAMES := \
gb_StaticLibrary_FILENAMES := $(patsubst salcpprt:salcpprt%,salcpprt:cpprtl%,$(gb_StaticLibrary_FILENAMES))
-gb_StaticLibrary_StaticLibrary_platform =
+define gb_StaticLibrary_StaticLibrary_platform
+$(call gb_LinkTarget_get_target,$(2)) \
+$(call gb_LinkTarget_get_headers_target,$(2)) : PDBFILE = $(call gb_LinkTarget_get_pdbfile,$(2))
+
+$(call gb_LinkTarget_set_auxtargets,$(2),\
+ $(call gb_LinkTarget_get_pdbfile,$(2)) \
+)
+
+endef
# Executable class
@@ -516,6 +553,7 @@ gb_Executable_get_rpath :=
define gb_Executable_Executable_platform
$(call gb_LinkTarget_set_auxtargets,$(2),\
$(patsubst %.exe,%.pdb,$(call gb_LinkTarget_get_target,$(2))) \
+ $(call gb_LinkTarget_get_pdbfile,$(2)) \
$(call gb_LinkTarget_get_target,$(2)).manifest \
)
@@ -523,8 +561,70 @@ $(call gb_Executable_get_target,$(1)) \
$(call gb_Executable_get_clean_target,$(1)) : AUXTARGETS := $(call gb_Executable_get_target,$(1)).manifest
$(call gb_Deliver_add_deliverable,$(call gb_Executable_get_target,$(1)).manifest,$(call gb_LinkTarget_get_target,$(2)).manifest)
+$(call gb_LinkTarget_get_target,$(2)) \
+$(call gb_LinkTarget_get_headers_target,$(2)) : PDBFILE = $(call gb_LinkTarget_get_pdbfile,$(2))
+
+endef
+
+# CppunitTest class
+
+gb_CppunitTest_CPPTESTPRECOMMAND :=
+gb_CppunitTest_SYSPRE := itest_
+gb_CppunitTest_EXT := .lib
+gb_CppunitTest_get_filename = $(gb_CppunitTest_SYSPRE)$(1)$(gb_CppunitTest_EXT)
+gb_CppunitTest_get_libfilename = test_$(1).dll
+
+define gb_CppunitTest_CppunitTest_platform
+$(call gb_LinkTarget_set_dlltarget,$(2),$(3))
+
+$(call gb_LinkTarget_set_auxtargets,$(2),\
+ $(patsubst %.lib,%.exp,$(call gb_LinkTarget_get_target,$(2))) \
+ $(3).manifest \
+ $(patsubst %.dll,%.pdb,$(3)) \
+ $(call gb_LinkTarget_get_pdbfile,$(2)) \
+ $(patsubst %.dll,%.ilk,$(3)) \
+)
+
+$(call gb_LinkTarget_get_target,$(2)) \
+$(call gb_LinkTarget_get_headers_target,$(2)) : PDBFILE = $(call gb_LinkTarget_get_pdbfile,$(2))
+
+endef
+
+# JunitTest class
+
+gb_defaultlangiso := en-US
+gb_smoketest_instset := $(SRCDIR)/instsetoo_native/$(INPATH)/OpenOffice/archive/install/$(gb_defaultlangiso)/OOo_*_install-arc_$(gb_defaultlangiso).zip
+
+define gb_JunitTest_JunitTest_platform
+
+ifeq ($(OOO_TEST_SOFFICE),)
+
+# Work around Windows problems with long pathnames (see issue 50885) by
+# installing into the temp directory instead of the module output tree (in which
+# case $(target).instpath contains the path to the temp installation,
+# which is removed after smoketest); can be removed once issue 50885 is fixed;
+# on other platforms, a single installation to solver is created in
+# smoketestoo_native.
+
+$(call gb_JunitTest_get_target,$(1)) : $(call gb_JunitTest_get_target,$(1)).instpath
+$(call gb_JunitTest_get_target,$(1)) : CLEAN_CMD = $(call gb_Helper_abbreviate_dirs,rm -rf `cat $$@.instpath` $$@.instpath)
+$(call gb_JunitTest_get_target,$(1)).instpath : $(shell ls $(gb_smoketest_instset))
+ INST_DIR=$$$$(cygpath -m `mktemp -d -t testinst.XXXXXX`) \
+ && unzip -d "$$$${INST_DIR}" "$$<" \
+ && mv "$$$${INST_DIR}"/OOo_*_install-arc_$$(gb_defaultlangiso) "$$$${INST_DIR}"/opt\
+ && mkdir -p $$(dir $$@) \
+ && echo "$$$${INST_DIR}" > $$@
+
+endif # OOO_TEST_SOFFICE
+
+$(call gb_JunitTest_get_target,$(1)) : DEFS := \
+ -Dorg.openoffice.test.arg.soffice="$$$${OOO_TEST_SOFFICE:-path:`cat $(call gb_JunitTest_get_target,$(1)).instpath`/opt/OpenOffice.org 3/program/soffice.exe}" \
+ -Dorg.openoffice.test.arg.env=PATH \
+ -Dorg.openoffice.test.arg.user=file:///$(call gb_JunitTest_get_userdir,$(1)) \
+
endef
+
# SdiTarget class
gb_SdiTarget_SVIDLPRECOMMAND := PATH="$${PATH}:$(OUTDIR)/bin"
@@ -542,7 +642,8 @@ ifeq ($(gb_FULLDEPS),$(true))
define gb_SrsPartTarget__command_dep
$(call gb_Helper_abbreviate_dirs_native,\
$(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \
- $(3) $(4) \
+ $(INCLUDE) \
+ $(DEFS) \
$(2) \
-f - \
| $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \
@@ -560,7 +661,9 @@ endif
# ComponentTarget
-gb_ComponentTarget_XSLTPROCPRECOMMAND := PATH="$${PATH}:$(OUTDIR)/bin"
-gb_ComponentTarget_PREFIXBASISNATIVE := vnd.sun.star.expand:$$BRAND_BASE_DIR/program/
+gb_XSLTPROCPRECOMMAND := PATH="$${PATH}:$(OUTDIR)/bin"
+gb_Library_COMPONENTPREFIXES := \
+ OOO:vnd.sun.star.expand:\dBRAND_BASE_DIR/program/ \
+ URELIB:vnd.sun.star.expand:\dURE_INTERNAL_LIB_DIR/ \
# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/platform/winmingw.mk b/solenv/gbuild/platform/winmingw.mk
index 430a4edb3f05..b9eec5eaf417 100644
--- a/solenv/gbuild/platform/winmingw.mk
+++ b/solenv/gbuild/platform/winmingw.mk
@@ -28,7 +28,7 @@
GUI := WNT
COM := GCC
-gb_MKTEMP := mktemp -p
+gb_MKTEMP := mktemp -t gbuild.XXXXXX
gb_CC := $(CC)
gb_CXX := $(CXX)
@@ -120,6 +120,11 @@ gb_CXXFLAGS := \
-pipe \
-nostdinc \
+ifneq ($(EXTERNAL_WARNINGS_NOT_ERRORS),TRUE)
+gb_CFLAGS_WERROR := -Werror
+gb_CXXFLAGS_WERROR := -Werror
+endif
+
ifneq ($(SYSBASE),)
gb_CXXFLAGS += --sysroot=$(SYSBASE)
gb_CFLAGS += --sysroot=$(SYSBASE)
@@ -158,19 +163,30 @@ else
gb_COMPILEROPTFLAGS := -Os
endif
+gb_COMPILERNOOPTFLAGS := -O0
+
+gb_STDLIBS := \
+ mingwthrd \
+ $(gb_MINGW_LIBSTDCPP) \
+ mingw32 \
+ $(gb_MINGW_LIBGCC) \
+ uwinapi \
+ moldname \
+ mingwex \
+ kernel32 \
+ msvcrt \
+
# Helper class
-gb_Helper_SRCDIR_NATIVE := $(shell cygpath -m $(SRCDIR))
-gb_Helper_WORKDIR_NATIVE := $(shell cygpath -m $(WORKDIR))
-gb_Helper_OUTDIR_NATIVE := $(shell cygpath -m $(OUTDIR))
-gb_Helper_REPODIR_NATIVE := $(shell cygpath -m $(REPODIR))
+gb_Helper_SRCDIR_NATIVE := $(shell cygpath -m $(SRCDIR) | $(gb_AWK) -- '{ print tolower(substr($$0,1,1)) substr($$0,2) }')
+gb_Helper_WORKDIR_NATIVE := $(shell cygpath -m $(WORKDIR) | $(gb_AWK) -- '{ print tolower(substr($$0,1,1)) substr($$0,2) }')
+gb_Helper_OUTDIR_NATIVE := $(shell cygpath -m $(OUTDIR) | $(gb_AWK) -- '{ print tolower(substr($$0,1,1)) substr($$0,2) }')
+gb_Helper_REPODIR_NATIVE := $(shell cygpath -m $(REPODIR) | $(gb_AWK) -- '{ print tolower(substr($$0,1,1)) substr($$0,2) }')
define gb_Helper_abbreviate_dirs_native
-R=$(gb_Helper_REPODIR_NATIVE) && \
-$(subst $(gb_Helper_REPODIR_NATIVE)/,$$R/,S=$(gb_Helper_SRCDIR_NATIVE) && \
-$(subst $(gb_Helper_SRCDIR_NATIVE)/,$$S/,O=$(gb_Helper_OUTDIR_NATIVE)) && \
-$(subst $(gb_Helper_SRCDIR_NATIVE)/,$$S/,$(subst $(REPODIR)/,$$R/,$(subst $(SRCDIR)/,$$S/,$(subst $(gb_Helper_OUTDIR_NATIVE)/,$$O/,$(subst $(OUTDIR)/,$$O/,W=$(gb_Helper_WORKDIR_NATIVE) && $(subst $(gb_Helper_WORKDIR_NATIVE)/,$$W/,$(subst $(WORKDIR)/,$$W/,$(1)))))))))
+R=$(gb_Helper_REPODIR_NATIVE) && $(subst $(REPODIR)/,$$R/,$(subst $(gb_Helper_REPODIR_NATIVE)/,$$R/,O=$(gb_Helper_OUTDIR_NATIVE) && W=$(gb_Helper_WORKDIR_NATIVE) && S=$(gb_Helper_SRCDIR_NATIVE))) && \
+$(subst $(REPODIR)/,$$R/,$(subst $(SRCDIR)/,$$S/,$(subst $(OUTDIR)/,$$O/,$(subst $(WORKDIR)/,$$W/,$(subst $(gb_Helper_REPODIR_NATIVE)/,$$R/,$(subst $(gb_Helper_SRCDIR_NATIVE)/,$$S/,$(subst $(gb_Helper_OUTDIR_NATIVE)/,$$O/,$(subst $(gb_Helper_WORKDIR_NATIVE)/,$$W/,$(1)))))))))
endef
# CObject class
@@ -200,14 +216,13 @@ define gb_CObject__command
$(call gb_Output_announce,$(2),$(true),C ,3)
$(call gb_Helper_abbreviate_dirs_native,\
mkdir -p $(dir $(1)) && \
- unset INCLUDE && \
$(gb_CC) \
+ $(DEFS) $(CFLAGS) \
-c $(3) \
-o $(1) \
- $(4) $(5) \
-I$(dir $(3)) \
- $(6))
-$(call gb_CObject__command_deponcompile,$(1),$(2),$(3),$(4),$(5),$(6))
+ $(INCLUDE))
+$(call gb_CObject__command_deponcompile,$(1),$(2),$(3),$(DEFS),$(CFLAGS),$(INCLUDE))
endef
@@ -239,15 +254,13 @@ define gb_CxxObject__command
$(call gb_Output_announce,$(2),$(true),CXX,3)
$(call gb_Helper_abbreviate_dirs_native,\
mkdir -p $(dir $(1)) && \
- unset INCLUDE && \
$(gb_CXX) \
+ $(DEFS) $(CXXFLAGS) \
-c $(3) \
-o $(1) \
- $(4) $(5) \
-I$(dir $(3)) \
- $(6))
-$(call gb_CxxObject__command_deponcompile,$(1),$(2),$(3),$(4),$(5),$(6))
-
+ $(INCLUDE_STL) $(INCLUDE))
+$(call gb_CxxObject__command_deponcompile,$(1),$(2),$(3),$(DEFS),$(CXXFLAGS),$(INCLUDE_STL) $(INCLUDE))
endef
@@ -284,7 +297,6 @@ define gb_PrecompiledHeader__command
$(call gb_Output_announce,$(2),$(true),PCH,1)
$(call gb_Helper_abbreviate_dirs_native,\
mkdir -p $(dir $(1)) $(dir $(call gb_PrecompiledHeader_get_dep_target,$(2))) && \
- unset INCLUDE && \
$(gb_CXX) \
-x c++-header \
$(4) $(5) \
@@ -328,7 +340,6 @@ define gb_NoexPrecompiledHeader__command
$(call gb_Output_announce,$(2),$(true),PCH,1)
$(call gb_Helper_abbreviate_dirs_native,\
mkdir -p $(dir $(1)) $(dir $(call gb_NoexPrecompiledHeader_get_dep_target,$(2))) && \
- unset INCLUDE && \
$(gb_CXX) \
-x c++-header \
$(4) $(5) \
@@ -343,8 +354,8 @@ endef
# LinkTarget class
-gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_COMPILEROPTFLAGS)
-gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_COMPILEROPTFLAGS)
+gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) $(gb_COMPILEROPTFLAGS)
+gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR)
ifeq ($(gb_DEBUGLEVEL),2)
gb_LinkTarget_CXXFLAGS += -ggdb3 -finline-limit=0 -fno-inline -fno-default-inline
@@ -358,66 +369,73 @@ gb_LinkTarget_INCLUDE :=\
gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC)))
-define gb_LinkTarget__command
-$(if $(subst -static $(LDFLAGS),,$(TARGETTYPE_FLAGS) $(LDFLAGS)),$(if $(DLLTARGET),$(call gb_SharedLinkTarget__command,$(1),$(2),$(3),$(4),$(5),$(6),$(7)),$(call gb_ExecutableLinkTarget__command,$(1),$(2),$(3),$(4),$(5),$(6),$(7))),$(call gb_StaticLinkTarget__command,$(1),$(2),$(6),$(7)))
-endef
-
-define gb_SharedLinkTarget__command
+define gb_LinkTarget__command_dynamiclinkexecutable
$(call gb_Output_announce,$(2),$(true),LNK,4)
$(call gb_Helper_abbreviate_dirs_native,\
mkdir -p $(dir $(1)) && \
- RESPONSEFILE=$$(mktemp --tmpdir=$(gb_Helper_MISC)) && \
- echo "$(foreach object,$(7),$(call gb_CxxObject_get_target,$(object))) \
- $(foreach object,$(6),$(call gb_CObject_get_target,$(object)))" > $${RESPONSEFILE} && \
+ RESPONSEFILE=`$(gb_MKTEMP)` && \
+ echo "$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
+ $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
+ $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) " > $${RESPONSEFILE} && \
$(gb_LINK) \
- $(3) \
- --enable-auto-image-base \
- -e _DllMainCRTStartup@12 \
- $(gb_MINGWLIBDIR)/dllcrt2.o \
+ $(gb_Executable_TARGETTYPEFLAGS) \
+ $(LDFLAGS) \
+ $(gb_MINGWLIBDIR)/crt2.o \
$(MINGW_CLIB_DIR)/crtbegin.o \
@$${RESPONSEFILE} \
- --start-group $(foreach lib,$(5),$(call gb_StaticLibrary_get_target,$(lib))) --end-group \
- --start-group $(patsubst %.dll,-l%,$(foreach lib,$(4),$(call gb_Library_get_dllname,$(lib)))) --end-group \
+ --start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) --end-group \
+ --start-group $(patsubst %.dll,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_dllname,$(lib)))) --end-group \
$(MINGW_CLIB_DIR)/crtend.o \
- -Map $(basename $(DLLTARGET)).map \
- -o $(DLLTARGET) && touch $(1))
+ -Map $(basename $(1)).map \
+ -o $(1))
endef
-define gb_ExecutableLinkTarget__command
-$(call gb_Output_announce,$(2),$(true),LNK,4)
+define gb_LinkTarget__command_dynamiclinklibrary
$(call gb_Helper_abbreviate_dirs_native,\
mkdir -p $(dir $(1)) && \
- RESPONSEFILE=$$(mktemp --tmpdir=$(gb_Helper_MISC)) && \
- echo "$(foreach object,$(7),$(call gb_CxxObject_get_target,$(object))) \
- $(foreach object,$(6),$(call gb_CObject_get_target,$(object)))" > $${RESPONSEFILE} && \
+ rm -f $(1) && \
+ RESPONSEFILE=`$(gb_MKTEMP)` && \
+ echo "$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
+ $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
+ $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) " > $${RESPONSEFILE} && \
$(gb_LINK) \
- $(3) \
- $(gb_MINGWLIBDIR)/crt2.o \
+ $(gb_Library_TARGETTYPEFLAGS) \
+ $(LDFLAGS) \
+ --enable-auto-image-base \
+ -e _DllMainCRTStartup@12 \
+ $(gb_MINGWLIBDIR)/dllcrt2.o \
$(MINGW_CLIB_DIR)/crtbegin.o \
@$${RESPONSEFILE} \
- --start-group $(foreach lib,$(5),$(call gb_StaticLibrary_get_target,$(lib))) --end-group \
- --start-group $(patsubst %.dll,-l%,$(foreach lib,$(4),$(call gb_Library_get_dllname,$(lib)))) --end-group \
+ --start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) --end-group \
+ --start-group $(patsubst %.dll,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_dllname,$(lib)))) --end-group \
$(MINGW_CLIB_DIR)/crtend.o \
- -Map $(basename $(1)).map \
- -o $(1))
+ -Map $(basename $(DLLTARGET)).map \
+ -o $(DLLTARGET) && touch $(1))
endef
-define gb_StaticLinkTarget__command
-$(call gb_Output_announce,$(2),$(true),LNK,4)
+define gb_LinkTarget__command_staticlinklibrary
$(call gb_Helper_abbreviate_dirs_native,\
mkdir -p $(dir $(1)) && \
- RESPONSEFILE=$$(mktemp --tmpdir=$(gb_Helper_MISC)) && \
- echo "$(foreach object,$(7),$(call gb_CxxObject_get_target,$(object))) \
- $(foreach object,$(6),$(call gb_CObject_get_target,$(object)))" > $${RESPONSEFILE} && \
+ RESPONSEFILE=`$(gb_MKTEMP)` && \
+ echo "$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
+ $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
+ $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) " > $${RESPONSEFILE} && \
$(gb_AR) -rsu\
$(1) \
@$${RESPONSEFILE})
endef
+define gb_LinkTarget__command
+$(call gb_Output_announce,$(2),$(true),LNK,4)
+$(if $(filter Executable,$(TARGETTYPE)),$(call gb_LinkTarget__command_dynamiclinkexecutable,$(1),$(2)))
+$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(call gb_LinkTarget__command_dynamiclinklibrary,$(1),$(2)))
+$(if $(filter StaticLibrary,$(TARGETTYPE)),$(call gb_LinkTarget__command_staticlinklibrary,$(1)))
+endef
+
# Library class
-gb_Library_DEFS := -D_DLL_ -D_DLL
+gb_Library_DEFS := -D_DLL
gb_Library_TARGETTYPEFLAGS := -shared
gb_Library_get_rpath :=
@@ -445,16 +463,17 @@ gb_Library_PLAINLIBS_NONE += \
uwinapi \
z \
-gb_LinkTarget_LAYER := \
- $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOOLIB) \
- $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):OOOLIB) \
- $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):OOOLIB) \
- $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOOLIB) \
- $(foreach lib,$(gb_Library_RTLIBS),$(lib):OOOLIB) \
- $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):OOOLIB) \
- $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):OOOLIB) \
- $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOOLIB) \
- $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):OOOLIB) \
+gb_Library_LAYER := \
+ $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_RTLIBS),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_STLLIBS),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):OOO) \
gb_Library_FILENAMES :=\
$(foreach lib,$(gb_Library_TARGETS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \
@@ -510,7 +529,6 @@ endef
# StaticLibrary class
gb_StaticLibrary_DEFS :=
-gb_StaticLibrary_TARGETTYPEFLAGS := -static
gb_StaticLibrary_SYSPRE := lib
gb_StaticLibrary_PLAINEXT := .a
gb_StaticLibrary_JPEGEXT := lib$(gb_StaticLibrary_PLAINEXT)
@@ -521,11 +539,7 @@ gb_StaticLibrary_FILENAMES := \
gb_StaticLibrary_FILENAMES := $(patsubst salcpprt:salcpprt%,salcpprt:cpprtl%,$(gb_StaticLibrary_FILENAMES))
-define gb_StaticLibrary_StaticLibrary_platform
-$(call gb_LinkTarget_get_target,$(2)) : TARGETTYPE := staticlib
-$(call gb_LinkTarget_get_target,$(2)) : LAYER :=
-
-endef
+gb_StaticLibrary_StaticLibrary_platform =
# Executable class
@@ -535,6 +549,23 @@ gb_Executable_get_rpath :=
gb_Executable_Executable_platform =
+# CppunitTest class
+
+gb_CppunitTest_CPPTESTPRECOMMAND :=
+gb_CppunitTest_SYSPRE := itest_
+gb_CppunitTest_EXT := .lib
+gb_CppunitTest_get_filename = $(gb_CppunitTest_SYSPRE)$(1)$(gb_CppunitTest_EXT)
+gb_CppunitTest_get_libfilename = test_$(1).dll
+
+define gb_CppunitTest_CppunitTest_platform
+$(call gb_LinkTarget_set_dlltarget,$(2),$(3))
+
+$(call gb_LinkTarget_set_auxtargets,$(2),\
+ $(patsubst %.dll,%.map,$(3)) \
+)
+
+endef
+
# SdiTarget class
gb_SdiTarget_SVIDLPRECOMMAND := PATH="$${PATH}:$(OUTDIR)/bin"
@@ -552,7 +583,8 @@ ifeq ($(gb_FULLDEPS),$(true))
define gb_SrsPartTarget__command_dep
$(call gb_Helper_abbreviate_dirs_native,\
$(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \
- $(3) $(4) \
+ $(INCLUDE) \
+ $(DEFS) \
$(2) \
-f - \
| $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \
@@ -569,7 +601,9 @@ endif
# ComponentTarget
-gb_ComponentTarget_XSLTPROCPRECOMMAND := PATH="$${PATH}:$(OUTDIR)/bin"
-gb_ComponentTarget_PREFIXBASISNATIVE := vnd.sun.star.expand:$$BRAND_BASE_DIR/program/
+gb_XSLTPROCPRECOMMAND := PATH="$${PATH}:$(OUTDIR)/bin"
+gb_Library_COMPONENTPREFIXES := \
+ OOO:vnd.sun.star.expand:\dBRAND_BASE_DIR/program/ \
+ URELIB:vnd.sun.star.expand:\dURE_INTERNAL_LIB_DIR/ \
# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/processdelivered.awk b/solenv/gbuild/processdelivered.awk
index 7bf574c45524..9fdb2ec30c74 100644
--- a/solenv/gbuild/processdelivered.awk
+++ b/solenv/gbuild/processdelivered.awk
@@ -30,6 +30,7 @@ BEGIN {
FS=":"
}
-length($1) > 0 && length($2) > 0 {
- print "COPY " $1 " " $2;
+{
+ if( NF == 2 )
+ print "COPY " $1 " " $2;
}
diff --git a/solenv/gbuild/processdeps.awk b/solenv/gbuild/processdeps.awk
index c5efb1e0ad3d..9014427fa461 100644
--- a/solenv/gbuild/processdeps.awk
+++ b/solenv/gbuild/processdeps.awk
@@ -47,7 +47,7 @@
function mangle_path(path) {
gsub("\\\\", "/", path);
if( path ~ /^[a-zA-Z]:/ )
- path = toupper(substr(path,0,1)) substr(path,2);
+ path = tolower(substr(path,0,1)) substr(path,2);
gsub(WORKDIR, "$(WORKDIR)/", path);
gsub(OUTDIR, "$(OUTDIR)/", path);
gsub(SRCDIR, "$(SRCDIR)/", path);
@@ -58,11 +58,15 @@ function mangle_path(path) {
}
BEGIN {
+ WORKDIR = tolower(substr(WORKDIR,0,1)) substr(WORKDIR,2);
+ OUTDIR = tolower(substr(OUTDIR,0,1)) substr(OUTDIR,2);
+ SRCDIR = tolower(substr(SRCDIR,0,1)) substr(SRCDIR,2);
+ REPODIR = tolower(substr(REPODIR,0,1)) substr(REPODIR,2);
# print "# WORKDIR=" WORKDIR;
# print "# OUTDIR=" OUTDIR;
# print "# SRCDIR=" SRCDIR;
# print "# REPODIR=" REPODIR;
- print mangle_path(OBJECTFILE) ": \\";
+ print mangle_path(OBJECTFILE) ": \\";
}
/^[^#]/ {
diff --git a/solenv/gbuild/templates/AllLangResTarget.mk b/solenv/gbuild/templates/AllLangResTarget.mk
new file mode 100644
index 000000000000..c38b8ea42fc2
--- /dev/null
+++ b/solenv/gbuild/templates/AllLangResTarget.mk
@@ -0,0 +1,49 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# 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.
+#
+# 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).
+#
+# 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.
+#
+#*************************************************************************
+
+# RES is the name of the resource; its file name will be RES-LOCALE.res
+# MODULE is the name of the code module the makefile is located in
+
+$(eval $(call gb_AllLangResTarget_AllLangResTarget,RES))
+
+# declaration of images folder (e.g. default_images/MODULE/res)
+$(eval $(call gb_AllLangResTarget_set_reslocation,RES,MODULE))
+
+# declaration of a resource intermediate file (srs)
+$(eval $(call gb_AllLangResTarget_add_srs,RES, RES/res))
+$(eval $(call gb_SrsTarget_SrsTarget,RES/res))
+
+# add any additional include paths here
+$(eval $(call gb_SrsTarget_set_include,RES/res,\
+ $$(INCLUDE) \
+))
+
+# add src files here (complete path relative to repository root)
+$(eval $(call gb_SrsTarget_add_files,RES/res,\
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/templates/CppunitTest.mk b/solenv/gbuild/templates/CppunitTest.mk
new file mode 100644
index 000000000000..56f3452ede14
--- /dev/null
+++ b/solenv/gbuild/templates/CppunitTest.mk
@@ -0,0 +1,41 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# 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.
+#
+# 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).
+#
+# 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.
+#
+#*************************************************************************
+
+$(eval $(call gb_CppunitTest_CppunitTest,MODULE_NAME))
+
+$(eval $(call gb_CppunitTest_add_exception_objects,MODULE_NAME, \
+))
+
+$(eval $(call gb_CppunitTest_add_linked_libs,MODULE_NAME, \
+ $(gb_STDLIBS) \
+))
+
+$(eval $(call gb_CppunitTest_set_include,MODULE_NAME,\
+ $$(INCLUDE) \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/templates/Executable.mk b/solenv/gbuild/templates/Executable.mk
new file mode 100644
index 000000000000..691e53012d58
--- /dev/null
+++ b/solenv/gbuild/templates/Executable.mk
@@ -0,0 +1,45 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# 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.
+#
+# 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).
+#
+# 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.
+#
+#*************************************************************************
+
+$(eval $(call gb_Executable_Executable,EXEC))
+
+$(eval $(call gb_Executable_set_include,EXEC,\
+ $$(INCLUDE) \
+))
+
+$(eval $(call gb_Executable_set_cxxflags,EXEC,\
+ $$(CXXFLAGS) \
+))
+
+$(eval $(call gb_Executable_add_linked_libs,EXEC,\
+ $(gb_STDLIBS) \
+))
+
+$(eval $(call gb_Executable_add_exception_objects,EXEC,\
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/templates/JunitTest.mk b/solenv/gbuild/templates/JunitTest.mk
new file mode 100644
index 000000000000..4492d9ef45f3
--- /dev/null
+++ b/solenv/gbuild/templates/JunitTest.mk
@@ -0,0 +1,49 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# 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.
+#
+# 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).
+#
+# 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.
+#
+#*************************************************************************
+
+$(eval $(call gb_JunitTest_JunitTest,MODULE_TYPE))
+
+$(eval $(call gb_JunitTest_set_defs,MODULE_TYPE,\
+ $$(DEFS) \
+ -Dorg.openoffice.test.arg.tdoc=$(SRCDIR)/MODULE/DOCUMENTPATH \
+))
+
+$(eval $(call gb_JunitTest_add_jars,MODULE_TYPE,\
+ $(OUTDIR)/bin/OOoRunner.jar \
+ $(OUTDIR)/bin/ridl.jar \
+ $(OUTDIR)/bin/test.jar \
+ $(OUTDIR)/bin/unoil.jar \
+ $(OUTDIR)/bin/jurt.jar \
+))
+
+$(eval $(call gb_JunitTest_add_sourcefiles,MODULE_TYPE,\
+))
+
+$(eval $(call gb_JunitTest_add_classes,MODULE_COMPLEX,\
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/templates/Library.mk b/solenv/gbuild/templates/Library.mk
new file mode 100644
index 000000000000..2e62cfe9a64b
--- /dev/null
+++ b/solenv/gbuild/templates/Library.mk
@@ -0,0 +1,86 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# 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.
+#
+# 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).
+#
+# 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.
+#
+#*************************************************************************
+
+# MODULE is the name of the module the makefile is located in
+
+# declare a library
+# LIB is the name of the library as it is found in Repository.mk
+$(eval $(call gb_Library_Library,LIB))
+
+# declare packages that will be delivered before compilation of LIB
+# learn more about TYPE in the Package.mk template
+$(eval $(call gb_Library_add_package_headers,LIB,MODULE_TYPE))
+
+# for platforms supporting PCH: declare the location of the pch file
+# this is the name of the cxx file (without extension)
+$(eval $(call gb_Library_add_precompiled_header,LIB,$(SRCDIR)/MODULE/PCH_FILE))
+
+# in case UNO services are exported: declare location of component file
+$(eval $(call gb_Library_set_componentfile,LIB,MODULE/COMPONENT_FILE))
+
+# add any additional include paths for this library here
+$(eval $(call gb_Library_set_include,LIB,\
+ $$(INCLUDE) \
+))
+
+# add any additional definitions to be set for compilation here
+# (e.g. -DLIB_DLLIMPLEMENTATION)
+$(eval $(call gb_Library_set_defs,LIB,\
+ $$(DEFS) \
+))
+
+# add libraries to be linked to LIB; again these names need to be given as
+# specified in Repository.mk
+$(eval $(call gb_Library_add_linked_libs,LIB,\
+ $(gb_STDLIBS) \
+))
+
+# add all source files that shall be compiled with exceptions enabled
+# the name is relative to $(SRCROOT) and must not contain an extension
+$(eval $(call gb_Library_add_exception_objects,LIB,\
+))
+
+# in case sdi files need to be processed: declare "root" (main) sdi target and sdi header target
+# "ROOT_SDI_FILE" is the file that is handed over to svidl (all other sdi files are included in the root file)
+$(eval $(call gb_Library_add_sdi_headers,LIB,MODULE/sdi/ROOT_SDI_FILE))
+$(eval $(call gb_SdiTarget_SdiTarget,MODULE/sdi/ROOT_SDI_FILE,MODULE/sdi/LIB))
+
+# add any additional include paths for sdi processing here
+$(eval $(call gb_SdiTarget_set_include,MODULE/sdi/ROOT_SDI_FILE,\
+ $$(INCLUDE) \
+))
+
+# this is an example how files can be added that require special compiler settings, e.g. building without optimizing
+ifeq ($(OS),WNT)
+$(eval $(call gb_Library_add_cxxobjects,LIB,\
+ MODULE/source/foo/bar \
+ , $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
+))
+
+endif
+
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/templates/Makefile b/solenv/gbuild/templates/Makefile
new file mode 100644
index 000000000000..90947b2e5f48
--- /dev/null
+++ b/solenv/gbuild/templates/Makefile
@@ -0,0 +1,38 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# 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.
+#
+# 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).
+#
+# 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.
+#
+#*************************************************************************
+
+ifeq ($(strip $(SOLARENV)),)
+$(error No environment set!)
+endif
+
+gb_PARTIALBUILD := T
+GBUILDDIR := $(SOLARENV)/gbuild
+include $(GBUILDDIR)/gbuild.mk
+
+$(eval $(call gb_Module_make_global_targets,$(shell ls $(dir $(realpath $(firstword $(MAKEFILE_LIST))))/Module*.mk)))
+
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/templates/Module.mk b/solenv/gbuild/templates/Module.mk
new file mode 100644
index 000000000000..6adb9bfab4a2
--- /dev/null
+++ b/solenv/gbuild/templates/Module.mk
@@ -0,0 +1,45 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# 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.
+#
+# 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).
+#
+# 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.
+#
+#*************************************************************************
+
+# replace MODULE by the name of the module you are creating
+
+$(eval $(call gb_Module_Module,MODULE))
+
+# the targets to be inserted are their file names without .mk extension
+$(eval $(call gb_Module_add_targets,MODULE,\
+))
+
+# add any runtime tests (unit tests) here
+# remove if no tests
+$(eval $(call gb_Module_add_check_targets,MODULE,\
+))
+
+# add any subsequent checks (e.g. complex tests) here
+$(eval $(call gb_Module_add_subsequentcheck_targets,MODULE,\
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/templates/Package.mk b/solenv/gbuild/templates/Package.mk
new file mode 100644
index 000000000000..1b9ae0315990
--- /dev/null
+++ b/solenv/gbuild/templates/Package.mk
@@ -0,0 +1,42 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# 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.
+#
+# 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).
+#
+# 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.
+#
+#*************************************************************************
+
+# MODULE is the name of the module the makefile is located in
+
+# TYPE is an arbitrary name that should denote what is inside this package
+# typical names are "inc", "uiconfig", "xml" etc.
+# "MODULE_TYPE" is the package name
+# the file name of the corresponding makefile should be Package_TYPE.mk
+# SOURCE is the name of the root folder of the package that shall be delivered
+$(eval $(call gb_Package_Package,MODULE_TYPE,$(SRCDIR)/MODULE/SOURCE))
+
+# add files to the package
+# SOURCE_RELPATH/file.ext is the name of the source file (relative to the root give above)
+# DESTINATION_RELPATH/file.ext is the destination file (relative to $(OUTDIR))
+$(eval $(call gb_Package_add_file,MODULE_TYPE,DESTINATION_RELPATH/file.ext,SOURCE_RELPATH/file.ext))
+
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/templates/StaticLibrary.mk b/solenv/gbuild/templates/StaticLibrary.mk
new file mode 100644
index 000000000000..5b0176b8b41c
--- /dev/null
+++ b/solenv/gbuild/templates/StaticLibrary.mk
@@ -0,0 +1,35 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# 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.
+#
+# 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).
+#
+# 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.
+#
+#*************************************************************************
+
+$(eval $(call gb_StaticLibrary_StaticLibrary,LIB))
+
+$(eval $(call gb_StaticLibrary_add_package_headers,LIB,MODULE_inc))
+
+$(eval $(call gb_StaticLibrary_add_exception_objects,LIB,\
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/templates/makefile.mk b/solenv/gbuild/templates/makefile.mk
new file mode 100644
index 000000000000..e312a7ccab65
--- /dev/null
+++ b/solenv/gbuild/templates/makefile.mk
@@ -0,0 +1,40 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# 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.
+#
+# 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).
+#
+# 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.
+#
+#*************************************************************************
+
+PRJ=..
+TARGET=prj
+
+.INCLUDE : settings.mk
+
+.IF "$(VERBOSE)"!=""
+VERBOSEFLAG :=
+.ELSE
+VERBOSEFLAG := -s
+.ENDIF
+
+all:
+ cd $(PRJ) && $(GNUMAKE) $(VERBOSEFLAG) -r -j$(MAXPROCESS) $(gb_MAKETARGET) && $(GNUMAKE) $(VERBOSEFLAG) -r deliverlog
diff --git a/solenv/inc/_tg_rslb.mk b/solenv/inc/_tg_rslb.mk
index 4c67a1d58c97..561b4224e649 100644..100755
--- a/solenv/inc/_tg_rslb.mk
+++ b/solenv/inc/_tg_rslb.mk
@@ -15,7 +15,8 @@ $(RSC_MULTI1) : \
-fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB1NAME)$i.res} \
$(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB1IMAGES)) -lip={$j}/$i \
-lip={$j} ) \
- -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res ) \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \
-subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \
-subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \
-oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \
@@ -30,7 +31,8 @@ $(RSC_MULTI1) : \
-fs={$(BIN)/$(RESLIB1NAME)$i.res} \
$(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB1IMAGES)) -lip={$j}/$i \
-lip={$j} ) \
- -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res ) \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \
-subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \
-subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \
-oil=$(BIN) \
@@ -76,7 +78,8 @@ $(RSC_MULTI2) : \
-fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB2NAME)$i.res} \
$(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB2IMAGES)) -lip={$j}/$i \
-lip={$j} ) \
- -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res ) \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \
-subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \
-subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \
-oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \
@@ -91,7 +94,8 @@ $(RSC_MULTI2) : \
-fs={$(BIN)/$(RESLIB2NAME)$i.res} \
$(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB2IMAGES)) -lip={$j}/$i \
-lip={$j} ) \
- -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res ) \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \
-subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \
-subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \
-oil=$(BIN) \
@@ -137,7 +141,8 @@ $(RSC_MULTI3) : \
-fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB3NAME)$i.res} \
$(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB3IMAGES)) -lip={$j}/$i \
-lip={$j} ) \
- -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res ) \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \
-subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \
-subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \
-oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \
@@ -152,7 +157,8 @@ $(RSC_MULTI3) : \
-fs={$(BIN)/$(RESLIB3NAME)$i.res} \
$(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB3IMAGES)) -lip={$j}/$i \
-lip={$j} ) \
- -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res ) \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \
-subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \
-subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \
-oil=$(BIN) \
@@ -198,7 +204,8 @@ $(RSC_MULTI4) : \
-fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB4NAME)$i.res} \
$(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB4IMAGES)) -lip={$j}/$i \
-lip={$j} ) \
- -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res ) \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \
-subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \
-subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \
-oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \
@@ -213,7 +220,8 @@ $(RSC_MULTI4) : \
-fs={$(BIN)/$(RESLIB4NAME)$i.res} \
$(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB4IMAGES)) -lip={$j}/$i \
-lip={$j} ) \
- -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res ) \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \
-subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \
-subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \
-oil=$(BIN) \
@@ -259,7 +267,8 @@ $(RSC_MULTI5) : \
-fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB5NAME)$i.res} \
$(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB5IMAGES)) -lip={$j}/$i \
-lip={$j} ) \
- -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res ) \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \
-subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \
-subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \
-oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \
@@ -274,7 +283,8 @@ $(RSC_MULTI5) : \
-fs={$(BIN)/$(RESLIB5NAME)$i.res} \
$(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB5IMAGES)) -lip={$j}/$i \
-lip={$j} ) \
- -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res ) \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \
-subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \
-subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \
-oil=$(BIN) \
@@ -320,7 +330,8 @@ $(RSC_MULTI6) : \
-fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB6NAME)$i.res} \
$(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB6IMAGES)) -lip={$j}/$i \
-lip={$j} ) \
- -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res ) \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \
-subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \
-subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \
-oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \
@@ -335,7 +346,8 @@ $(RSC_MULTI6) : \
-fs={$(BIN)/$(RESLIB6NAME)$i.res} \
$(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB6IMAGES)) -lip={$j}/$i \
-lip={$j} ) \
- -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res ) \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \
-subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \
-subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \
-oil=$(BIN) \
@@ -381,7 +393,8 @@ $(RSC_MULTI7) : \
-fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB7NAME)$i.res} \
$(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB7IMAGES)) -lip={$j}/$i \
-lip={$j} ) \
- -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res ) \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \
-subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \
-subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \
-oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \
@@ -396,7 +409,8 @@ $(RSC_MULTI7) : \
-fs={$(BIN)/$(RESLIB7NAME)$i.res} \
$(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB7IMAGES)) -lip={$j}/$i \
-lip={$j} ) \
- -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res ) \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \
-subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \
-subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \
-oil=$(BIN) \
@@ -442,7 +456,8 @@ $(RSC_MULTI8) : \
-fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB8NAME)$i.res} \
$(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB8IMAGES)) -lip={$j}/$i \
-lip={$j} ) \
- -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res ) \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \
-subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \
-subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \
-oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \
@@ -457,7 +472,8 @@ $(RSC_MULTI8) : \
-fs={$(BIN)/$(RESLIB8NAME)$i.res} \
$(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB8IMAGES)) -lip={$j}/$i \
-lip={$j} ) \
- -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res ) \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \
-subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \
-subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \
-oil=$(BIN) \
@@ -503,7 +519,8 @@ $(RSC_MULTI9) : \
-fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB9NAME)$i.res} \
$(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB9IMAGES)) -lip={$j}/$i \
-lip={$j} ) \
- -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res ) \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \
-subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \
-subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \
-oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \
@@ -518,7 +535,8 @@ $(RSC_MULTI9) : \
-fs={$(BIN)/$(RESLIB9NAME)$i.res} \
$(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB9IMAGES)) -lip={$j}/$i \
-lip={$j} ) \
- -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res ) \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \
-subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \
-subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \
-oil=$(BIN) \
@@ -564,7 +582,8 @@ $(RSC_MULTI10) : \
-fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB10NAME)$i.res} \
$(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB10IMAGES)) -lip={$j}/$i \
-lip={$j} ) \
- -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res ) \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \
-subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \
-subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \
-oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \
@@ -579,7 +598,8 @@ $(RSC_MULTI10) : \
-fs={$(BIN)/$(RESLIB10NAME)$i.res} \
$(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB10IMAGES)) -lip={$j}/$i \
-lip={$j} ) \
- -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res ) \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \
-subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \
-subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \
-oil=$(BIN) \
diff --git a/solenv/inc/_tg_shl.mk b/solenv/inc/_tg_shl.mk
index 41d48c839949..ac930bdd8a08 100644
--- a/solenv/inc/_tg_shl.mk
+++ b/solenv/inc/_tg_shl.mk
@@ -333,7 +333,7 @@ $(SHL1TARGETN) : \
$(SHL1STDLIBS) \
$(SHL1STDSHL) $(STDSHL1) \
$(SHL1LINKRES) \
- ) $(LINKOUTPUTFILTER)
+ )
# double check if target was really written... still making sense?
@@$(LS) $@
@echo linking $@.manifest ...
@@ -357,7 +357,7 @@ $(SHL1TARGETN) : \
$(SHL1STDLIBS) \
$(SHL1STDSHL) $(STDSHL1) \
$(SHL1LINKRES) \
- ) $(LINKOUTPUTFILTER)
+ )
# double check if target was really written... still making sense?
@@$(LS) $@
@echo linking $@.manifest ...
@@ -529,7 +529,6 @@ $(SHL1TARGETN) : \
$(SHL1STDLIBS:^"-l") \
$(SHL1LINKRES) \
$(SHL1STDSHL:^"-l") $(STDSHL1:^"-l") \
- $(LINKOUTPUTFILTER)
@$(LS) $@ >& $(NULLDEV)
.ENDIF # "$(USE_DEFFILE)"!=""
@@ -877,7 +876,7 @@ $(SHL2TARGETN) : \
$(SHL2STDLIBS) \
$(SHL2STDSHL) $(STDSHL2) \
$(SHL2LINKRES) \
- ) $(LINKOUTPUTFILTER)
+ )
# double check if target was really written... still making sense?
@@$(LS) $@
@echo linking $@.manifest ...
@@ -901,7 +900,7 @@ $(SHL2TARGETN) : \
$(SHL2STDLIBS) \
$(SHL2STDSHL) $(STDSHL2) \
$(SHL2LINKRES) \
- ) $(LINKOUTPUTFILTER)
+ )
# double check if target was really written... still making sense?
@@$(LS) $@
@echo linking $@.manifest ...
@@ -1073,7 +1072,6 @@ $(SHL2TARGETN) : \
$(SHL2STDLIBS:^"-l") \
$(SHL2LINKRES) \
$(SHL2STDSHL:^"-l") $(STDSHL2:^"-l") \
- $(LINKOUTPUTFILTER)
@$(LS) $@ >& $(NULLDEV)
.ENDIF # "$(USE_DEFFILE)"!=""
@@ -1421,7 +1419,7 @@ $(SHL3TARGETN) : \
$(SHL3STDLIBS) \
$(SHL3STDSHL) $(STDSHL3) \
$(SHL3LINKRES) \
- ) $(LINKOUTPUTFILTER)
+ )
# double check if target was really written... still making sense?
@@$(LS) $@
@echo linking $@.manifest ...
@@ -1445,7 +1443,7 @@ $(SHL3TARGETN) : \
$(SHL3STDLIBS) \
$(SHL3STDSHL) $(STDSHL3) \
$(SHL3LINKRES) \
- ) $(LINKOUTPUTFILTER)
+ )
# double check if target was really written... still making sense?
@@$(LS) $@
@echo linking $@.manifest ...
@@ -1617,7 +1615,6 @@ $(SHL3TARGETN) : \
$(SHL3STDLIBS:^"-l") \
$(SHL3LINKRES) \
$(SHL3STDSHL:^"-l") $(STDSHL3:^"-l") \
- $(LINKOUTPUTFILTER)
@$(LS) $@ >& $(NULLDEV)
.ENDIF # "$(USE_DEFFILE)"!=""
@@ -1965,7 +1962,7 @@ $(SHL4TARGETN) : \
$(SHL4STDLIBS) \
$(SHL4STDSHL) $(STDSHL4) \
$(SHL4LINKRES) \
- ) $(LINKOUTPUTFILTER)
+ )
# double check if target was really written... still making sense?
@@$(LS) $@
@echo linking $@.manifest ...
@@ -1989,7 +1986,7 @@ $(SHL4TARGETN) : \
$(SHL4STDLIBS) \
$(SHL4STDSHL) $(STDSHL4) \
$(SHL4LINKRES) \
- ) $(LINKOUTPUTFILTER)
+ )
# double check if target was really written... still making sense?
@@$(LS) $@
@echo linking $@.manifest ...
@@ -2161,7 +2158,6 @@ $(SHL4TARGETN) : \
$(SHL4STDLIBS:^"-l") \
$(SHL4LINKRES) \
$(SHL4STDSHL:^"-l") $(STDSHL4:^"-l") \
- $(LINKOUTPUTFILTER)
@$(LS) $@ >& $(NULLDEV)
.ENDIF # "$(USE_DEFFILE)"!=""
@@ -2509,7 +2505,7 @@ $(SHL5TARGETN) : \
$(SHL5STDLIBS) \
$(SHL5STDSHL) $(STDSHL5) \
$(SHL5LINKRES) \
- ) $(LINKOUTPUTFILTER)
+ )
# double check if target was really written... still making sense?
@@$(LS) $@
@echo linking $@.manifest ...
@@ -2533,7 +2529,7 @@ $(SHL5TARGETN) : \
$(SHL5STDLIBS) \
$(SHL5STDSHL) $(STDSHL5) \
$(SHL5LINKRES) \
- ) $(LINKOUTPUTFILTER)
+ )
# double check if target was really written... still making sense?
@@$(LS) $@
@echo linking $@.manifest ...
@@ -2705,7 +2701,6 @@ $(SHL5TARGETN) : \
$(SHL5STDLIBS:^"-l") \
$(SHL5LINKRES) \
$(SHL5STDSHL:^"-l") $(STDSHL5:^"-l") \
- $(LINKOUTPUTFILTER)
@$(LS) $@ >& $(NULLDEV)
.ENDIF # "$(USE_DEFFILE)"!=""
@@ -3053,7 +3048,7 @@ $(SHL6TARGETN) : \
$(SHL6STDLIBS) \
$(SHL6STDSHL) $(STDSHL6) \
$(SHL6LINKRES) \
- ) $(LINKOUTPUTFILTER)
+ )
# double check if target was really written... still making sense?
@@$(LS) $@
@echo linking $@.manifest ...
@@ -3077,7 +3072,7 @@ $(SHL6TARGETN) : \
$(SHL6STDLIBS) \
$(SHL6STDSHL) $(STDSHL6) \
$(SHL6LINKRES) \
- ) $(LINKOUTPUTFILTER)
+ )
# double check if target was really written... still making sense?
@@$(LS) $@
@echo linking $@.manifest ...
@@ -3249,7 +3244,6 @@ $(SHL6TARGETN) : \
$(SHL6STDLIBS:^"-l") \
$(SHL6LINKRES) \
$(SHL6STDSHL:^"-l") $(STDSHL6:^"-l") \
- $(LINKOUTPUTFILTER)
@$(LS) $@ >& $(NULLDEV)
.ENDIF # "$(USE_DEFFILE)"!=""
@@ -3597,7 +3591,7 @@ $(SHL7TARGETN) : \
$(SHL7STDLIBS) \
$(SHL7STDSHL) $(STDSHL7) \
$(SHL7LINKRES) \
- ) $(LINKOUTPUTFILTER)
+ )
# double check if target was really written... still making sense?
@@$(LS) $@
@echo linking $@.manifest ...
@@ -3621,7 +3615,7 @@ $(SHL7TARGETN) : \
$(SHL7STDLIBS) \
$(SHL7STDSHL) $(STDSHL7) \
$(SHL7LINKRES) \
- ) $(LINKOUTPUTFILTER)
+ )
# double check if target was really written... still making sense?
@@$(LS) $@
@echo linking $@.manifest ...
@@ -3793,7 +3787,6 @@ $(SHL7TARGETN) : \
$(SHL7STDLIBS:^"-l") \
$(SHL7LINKRES) \
$(SHL7STDSHL:^"-l") $(STDSHL7:^"-l") \
- $(LINKOUTPUTFILTER)
@$(LS) $@ >& $(NULLDEV)
.ENDIF # "$(USE_DEFFILE)"!=""
@@ -4141,7 +4134,7 @@ $(SHL8TARGETN) : \
$(SHL8STDLIBS) \
$(SHL8STDSHL) $(STDSHL8) \
$(SHL8LINKRES) \
- ) $(LINKOUTPUTFILTER)
+ )
# double check if target was really written... still making sense?
@@$(LS) $@
@echo linking $@.manifest ...
@@ -4165,7 +4158,7 @@ $(SHL8TARGETN) : \
$(SHL8STDLIBS) \
$(SHL8STDSHL) $(STDSHL8) \
$(SHL8LINKRES) \
- ) $(LINKOUTPUTFILTER)
+ )
# double check if target was really written... still making sense?
@@$(LS) $@
@echo linking $@.manifest ...
@@ -4337,7 +4330,6 @@ $(SHL8TARGETN) : \
$(SHL8STDLIBS:^"-l") \
$(SHL8LINKRES) \
$(SHL8STDSHL:^"-l") $(STDSHL8:^"-l") \
- $(LINKOUTPUTFILTER)
@$(LS) $@ >& $(NULLDEV)
.ENDIF # "$(USE_DEFFILE)"!=""
@@ -4685,7 +4677,7 @@ $(SHL9TARGETN) : \
$(SHL9STDLIBS) \
$(SHL9STDSHL) $(STDSHL9) \
$(SHL9LINKRES) \
- ) $(LINKOUTPUTFILTER)
+ )
# double check if target was really written... still making sense?
@@$(LS) $@
@echo linking $@.manifest ...
@@ -4709,7 +4701,7 @@ $(SHL9TARGETN) : \
$(SHL9STDLIBS) \
$(SHL9STDSHL) $(STDSHL9) \
$(SHL9LINKRES) \
- ) $(LINKOUTPUTFILTER)
+ )
# double check if target was really written... still making sense?
@@$(LS) $@
@echo linking $@.manifest ...
@@ -4881,7 +4873,6 @@ $(SHL9TARGETN) : \
$(SHL9STDLIBS:^"-l") \
$(SHL9LINKRES) \
$(SHL9STDSHL:^"-l") $(STDSHL9:^"-l") \
- $(LINKOUTPUTFILTER)
@$(LS) $@ >& $(NULLDEV)
.ENDIF # "$(USE_DEFFILE)"!=""
@@ -5229,7 +5220,7 @@ $(SHL10TARGETN) : \
$(SHL10STDLIBS) \
$(SHL10STDSHL) $(STDSHL10) \
$(SHL10LINKRES) \
- ) $(LINKOUTPUTFILTER)
+ )
# double check if target was really written... still making sense?
@@$(LS) $@
@echo linking $@.manifest ...
@@ -5253,7 +5244,7 @@ $(SHL10TARGETN) : \
$(SHL10STDLIBS) \
$(SHL10STDSHL) $(STDSHL10) \
$(SHL10LINKRES) \
- ) $(LINKOUTPUTFILTER)
+ )
# double check if target was really written... still making sense?
@@$(LS) $@
@echo linking $@.manifest ...
@@ -5425,7 +5416,6 @@ $(SHL10TARGETN) : \
$(SHL10STDLIBS:^"-l") \
$(SHL10LINKRES) \
$(SHL10STDSHL:^"-l") $(STDSHL10:^"-l") \
- $(LINKOUTPUTFILTER)
@$(LS) $@ >& $(NULLDEV)
.ENDIF # "$(USE_DEFFILE)"!=""
diff --git a/solenv/inc/installationtest.mk b/solenv/inc/installationtest.mk
index 5d99bdeb0e2a..b7b49c4aec3b 100644
--- a/solenv/inc/installationtest.mk
+++ b/solenv/inc/installationtest.mk
@@ -105,10 +105,25 @@ cpptest : $(MISC)/$(TARGET)/installation.flag
.END
.IF "$(SOLAR_JAVA)" == "TRUE" && "$(OOO_JUNIT_JAR)" != ""
-javatest .PHONY : $(JAVATARGET)
+javatest_% .PHONY : $(JAVATARGET)
+ $(COMMAND_ECHO)$(RM) -r $(MISC)/$(TARGET)/user
+ $(COMMAND_ECHO)$(MKDIRHIER) $(MISC)/$(TARGET)/user
+ $(COMMAND_ECHO)$(JAVAI) $(JAVAIFLAGS) $(JAVACPS) \
+ '$(OOO_JUNIT_JAR)$(PATH_SEPERATOR)$(CLASSPATH)' \
+ -Dorg.openoffice.test.arg.soffice=$(my_soffice) \
+ -Dorg.openoffice.test.arg.user=$(my_file)$(PWD)/$(MISC)/$(TARGET)/user \
+ $(my_javaenv) $(TEST_ARGUMENTS:^"-Dorg.openoffice.test.arg.testarg.") \
+ org.junit.runner.JUnitCore \
+ $(subst,/,. $(PACKAGE)).$(@:s/javatest_//)
$(RM) -r $(MISC)/$(TARGET)/user
- $(MKDIRHIER) $(MISC)/$(TARGET)/user
- $(JAVAI) $(JAVAIFLAGS) $(JAVACPS) \
+.IF "$(OS)" == "WNT" && "$(OOO_TEST_SOFFICE)" == ""
+ $(RM) -r $(installationtest_instpath) $(MISC)/$(TARGET)/installation.flag
+javatest : $(MISC)/$(TARGET)/installation.flag
+.END
+javatest .PHONY : $(JAVATARGET)
+ $(COMMAND_ECHO)$(RM) -r $(MISC)/$(TARGET)/user
+ $(COMMAND_ECHO)$(MKDIRHIER) $(MISC)/$(TARGET)/user
+ $(COMMAND_ECHO)$(JAVAI) $(JAVAIFLAGS) $(JAVACPS) \
'$(OOO_JUNIT_JAR)$(PATH_SEPERATOR)$(CLASSPATH)' \
-Dorg.openoffice.test.arg.soffice=$(my_soffice) \
-Dorg.openoffice.test.arg.user=$(my_file)$(PWD)/$(MISC)/$(TARGET)/user \
diff --git a/solenv/inc/langlist.mk b/solenv/inc/langlist.mk
new file mode 100644
index 000000000000..32045cbf6262
--- /dev/null
+++ b/solenv/inc/langlist.mk
@@ -0,0 +1,163 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# 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.
+#
+# 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).
+#
+# 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.
+#
+#*************************************************************************
+
+
+completelangiso=af \
+ar \
+as \
+as-IN \
+ast \
+be-BY \
+bo \
+bg \
+br \
+brx \
+bn \
+bn-BD \
+bn-IN \
+bs \
+by \
+ca \
+ca-XV \
+cs \
+cy \
+da \
+de \
+dgo \
+dz \
+el \
+en-GB \
+en-US \
+en-ZA \
+eo \
+es \
+et \
+eu \
+fa \
+fi \
+fr \
+ga \
+gd \
+gl \
+gu \
+gu-IN \
+he \
+hi \
+hi-IN \
+hr \
+hu \
+is \
+it \
+ja \
+kid \
+ky \
+ka \
+kab \
+kk \
+km \
+kn \
+ko \
+kok \
+ks \
+ku \
+lo \
+lt \
+lv \
+mai \
+mk \
+mn \
+mni \
+ms \
+ml \
+ml-IN \
+mr \
+mr-IN \
+my \
+ne \
+nb \
+nl \
+nn \
+nr \
+ns \
+nso \
+om \
+oms \
+oc \
+or \
+or-IN \
+pap \
+pa \
+pa-IN \
+pl \
+ps \
+pt \
+pt-BR \
+gug \
+pyg \
+ro \
+ru \
+rw \
+sat \
+sa \
+sa-IN \
+si \
+sc \
+sd \
+sq \
+sk \
+sl \
+sh \
+son \
+sr \
+ss \
+st \
+sv \
+sw \
+sw-TZ \
+te \
+te-IN \
+ti \
+ti-ER \
+ta \
+ta-IN \
+tlh \
+th \
+tn \
+tr \
+ts \
+tg \
+ug \
+ur \
+ur-IN \
+uk \
+uz \
+ve \
+vi \
+xh \
+zh-CN \
+zh-TW \
+zu
diff --git a/solenv/inc/libs.mk b/solenv/inc/libs.mk
index 4f7ffbf40851..7ee473cb116f 100644
--- a/solenv/inc/libs.mk
+++ b/solenv/inc/libs.mk
@@ -59,8 +59,7 @@ SALHELPERLIB=-lsalhelper$(UDK_MAJOR)$(COMID)
SALHELPERLIB=-luno_salhelper$(COMID)
.ENDIF # "$(GUI)$(COM)"=="WNTGCC"
XMLSCRIPTLIB =-lxcr$(DLLPOSTFIX)
-.INCLUDE .IGNORE : comphelper/version.mk
-COMPHELPERLIB=-lcomphelp$(COMPHLP_MAJOR)$(COMID)
+COMPHELPERLIB=-lcomphelp$(COMID)
CONNECTIVITYLIB=-lconnectivity
LDAPBERLIB=-lldapber
TOOLSLIBST=-latools
@@ -182,9 +181,7 @@ SAXLIB=-lsax$(DLLPOSTFIX)
MAILLIB=-lmail
DOCMGRLIB=-ldmg$(DLLPOSTFIX)
BASICLIB=-lsb$(DLLPOSTFIX)
-.IF "$(ENABLE_VBA)"=="YES"
VBAHELPERLIB=-lvbahelper$(DLLPOSTFIX)
-.ENDIF
DBTOOLSLIB=-ldbtools$(DLLPOSTFIX)
HM2LIBSH=-lhmwrpdll
HM2LIBST=-lhmwrap
diff --git a/solenv/inc/minor.mk b/solenv/inc/minor.mk
index 7e9c2e2bf834..cda7b46e158c 100644
--- a/solenv/inc/minor.mk
+++ b/solenv/inc/minor.mk
@@ -1,5 +1,5 @@
RSCVERSION=300
-RSCREVISION=300m98(Build:9568)
-BUILD=9568
-LAST_MINOR=m98
+RSCREVISION=300m99(Build:9570)
+BUILD=9570
+LAST_MINOR=m99
SOURCEVERSION=DEV300
diff --git a/solenv/inc/postmac.h b/solenv/inc/postmac.h
index 68f85b6c0f65..8a36af4c4389 100644
--- a/solenv/inc/postmac.h
+++ b/solenv/inc/postmac.h
@@ -25,8 +25,8 @@
*
************************************************************************/
-#undef Boolean
-#undef BOOL
+//#undef Boolean
+//#undef BOOL
#undef Button
#undef Byte
#undef Control
@@ -46,7 +46,7 @@
//#undef ShowWindow
#undef StringPtr
#undef DirInfo
-#undef ULONG
+//#undef ULONG
#undef Line
#undef TimeValue
#undef Pattern
diff --git a/solenv/inc/postset.mk b/solenv/inc/postset.mk
index 888098fde3df..59d37a95405e 100644
--- a/solenv/inc/postset.mk
+++ b/solenv/inc/postset.mk
@@ -30,140 +30,6 @@
defaultlangiso=en-US
# Complete list of all supported ISO codes
-completelangiso=af \
-ar \
-as \
-as-IN \
-ast \
-be-BY \
-bo \
-bg \
-br \
-brx \
-bn \
-bn-BD \
-bn-IN \
-bs \
-by \
-ca \
-ca-XV \
-cs \
-cy \
-da \
-de \
-dgo \
-dz \
-el \
-en-GB \
-en-US \
-en-ZA \
-eo \
-es \
-et \
-eu \
-fa \
-fi \
-fr \
-ga \
-gd \
-gl \
-gu \
-gu-IN \
-he \
-hi \
-hi-IN \
-hr \
-hu \
-is \
-it \
-ja \
-kid \
-ky \
-ka \
-kab \
-kk \
-km \
-kn \
-ko \
-kok \
-ks \
-ku \
-lo \
-lt \
-lv \
-mai \
-mk \
-mn \
-mni \
-ms \
-ml \
-ml-IN \
-mr \
-mr-IN \
-my \
-ne \
-nb \
-nl \
-nn \
-nr \
-ns \
-nso \
-om \
-oms \
-oc \
-or \
-or-IN \
-pap \
-pa \
-pa-IN \
-pl \
-ps \
-pt \
-pt-BR \
-gug \
-pyg \
-ro \
-ru \
-rw \
-sat \
-sa \
-sa-IN \
-si \
-sc \
-sd \
-sq \
-sk \
-sl \
-sh \
-son \
-sr \
-ss \
-st \
-sv \
-sw \
-sw-TZ \
-te \
-te-IN \
-ti \
-ti-ER \
-ta \
-ta-IN \
-tlh \
-th \
-tn \
-tr \
-ts \
-tg \
-ug \
-ur \
-ur-IN \
-uk \
-uz \
-ve \
-vi \
-xh \
-zh-CN \
-zh-TW \
-zu
+.INCLUDE : langlist.mk
alllangiso=$(strip $(defaultlangiso) $(subst,$(defaultlangiso), $(uniq $(subst,ALL,$(completelangiso) $(WITH_LANG)))))
diff --git a/solenv/inc/premac.h b/solenv/inc/premac.h
index 451a33b8ab00..1c453c8f51a7 100644
--- a/solenv/inc/premac.h
+++ b/solenv/inc/premac.h
@@ -26,8 +26,8 @@
************************************************************************/
-#define Boolean MacOSBoolean
-#define BOOL MacOSBOOL
+//#define Boolean MacOSBoolean
+//#define BOOL MacOSBOOL
#define Button MacOSButton
#define Byte MacOSByte
#define Control MacOSControl
@@ -46,7 +46,7 @@
//#define ShowWindow MacOSShowWindow
#define StringPtr MacOSStringPtr
#define DirInfo MacOSDirInfo
-#define ULONG MacOSULONG
+//#define ULONG MacOSULONG
#define Line MacOSLine
#define TimeValue MacOSTimeValue
#define Pattern MacOSPattern
diff --git a/solenv/inc/settings.mk b/solenv/inc/settings.mk
index a4b02a9ed164..a095b7762fbe 100644
--- a/solenv/inc/settings.mk
+++ b/solenv/inc/settings.mk
@@ -607,6 +607,8 @@ LOCAL_COMMON_OUT:=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(OUT))
# --- generate output tree -----------------------------------------
+# disable for makefiles wrapping a gnumake module
+.IF "$(TARGET)"!="prj"
# As this is not part of the initial startup makefile we define an infered
# target instead of using $(OUT)/inc/myworld.mk as target name.
# (See iz62795)
@@ -623,6 +625,7 @@ $(posix_PWD)/$(LOCAL_COMMON_OUT)/inc/%world.mk :
.INCLUDE : $(posix_PWD)/$(LOCAL_COMMON_OUT)/inc/myworld.mk
.ENDIF # "$(common_build)"!=""
+.ENDIF # "$(TARGET)"!="prj"
.INCLUDE .IGNORE : office.mk
diff --git a/solenv/inc/tg_jar.mk b/solenv/inc/tg_jar.mk
index d1109ec4e8f1..fa6ae24110b7 100644
--- a/solenv/inc/tg_jar.mk
+++ b/solenv/inc/tg_jar.mk
@@ -57,7 +57,7 @@ $(JARMANIFEST) .PHONY : $(CUSTOMMANIFESTFILEDEP)
@@-$(RM) $@
$(COMMAND_ECHO)echo Manifest-Version: 1.0 > $@
.IF "$(JARCLASSPATH)" != ""
- echo $(USQ)Class-Path: $(JARCLASSPATH)$(USQ) >> $@
+ $(COMMAND_ECHO)echo $(USQ)Class-Path: $(JARCLASSPATH)$(USQ) >> $@
.ENDIF
# $(RSCREVISION) contains chars that must be quoted (for *NIX shells)
$(COMMAND_ECHO)echo $(USQ)Solar-Version: $(RSCREVISION)$(USQ) >> $@
@@ -67,6 +67,14 @@ $(JARMANIFEST) .PHONY : $(CUSTOMMANIFESTFILEDEP)
.ENDIF # "$(JARMANIFEST)"!=""
.ENDIF # "$(NEW_JAR_PACK)"!=""
+.IF "$(JARCLASSEXCLUDES)" == ""
+ZIPJAR_EXCLUDE=
+.ELSE # "$(JARCLASSEXCLUDES)" == ""
+ZIPJAR_EXCLUDE=$(foreach,i,$(JARCLASSEXCLUDES) -x "$i")
+# format:
+# JARCLASSEXCLUDES=foo/* bar/*
+.ENDIF # "$(JARCLASSEXCLUDES)" == ""
+
#
# build jar
#
@@ -82,8 +90,8 @@ $(JARTARGETN) :
@-find . -type d -user $(USER) ! -perm -5 -print | xargs test "$$1" != "" && chmod +r $$1
.ENDIF
.IF "$(JARMANIFEST)"!=""
- $(COMMAND_ECHO)cd $(CLASSDIR)/$(TARGET) && zip $(ZIP_VERBOSITY) -u -rX ../$(@:f) $(subst,$(CLASSDIR)/$(TARGET)/, $(JARMANIFEST)) $(CHECKZIPRESULT)
+ $(COMMAND_ECHO)cd $(CLASSDIR)/$(TARGET) && zip $(ZIP_VERBOSITY) -u -rX ../$(@:f) $(subst,$(CLASSDIR)/$(TARGET)/, $(JARMANIFEST)) $(ZIPJAR_EXCLUDE) $(CHECKZIPRESULT)
.ENDIF # "$(JARMANIFEST)"!=""
- $(COMMAND_ECHO)cd $(CLASSDIR) && zip $(ZIP_VERBOSITY) -u -rX $(@:f) $(subst,\,/ $(JARCLASSDIRS)) $(CHECKZIPRESULT)
+ $(COMMAND_ECHO)cd $(CLASSDIR) && zip $(ZIP_VERBOSITY) -u -rX $(@:f) $(subst,\,/ $(JARCLASSDIRS)) $(ZIPJAR_EXCLUDE) $(CHECKZIPRESULT)
.ENDIF
diff --git a/solenv/inc/tg_java.mk b/solenv/inc/tg_java.mk
index 5c00f2bbf7f5..c85d2d9bdfd2 100644
--- a/solenv/inc/tg_java.mk
+++ b/solenv/inc/tg_java.mk
@@ -42,13 +42,11 @@ $(MISC)/java/com/sun/star/upd/$(VERSIONINFOFILE)_updversion.java .PHONY:
.IF "$(JAVATARGET)"!=""
.IF "$(PACKAGE)"!=""
-$(CLASSDIR)/$(IDLPACKAGE)/%.class .NOINFER .IGNORE : %.java
-# echo $@
- @@-$(RM) $(JAVATARGET)
+$(CLASSDIR)/$(PACKAGE)/%.class .NOINFER .IGNORE : %.java
+ $(COMMAND_ECHO)-$(RM) $(JAVATARGET)
.ELSE # "$(PACKAGE)"!=""
$(CLASSDIR)/%.class .NOINFER .IGNORE : %.java
-# echo $@
- @@-$(RM) $(JAVATARGET)
+ $(COMMAND_ECHO)-$(RM) $(JAVATARGET)
.ENDIF # "$(PACKAGE)"!=""
$(JAVATARGET) : $(JAVAFILES) $(JAVACLASSFILES)
@@ -78,7 +76,6 @@ $(JAVATARGET) : $(JAVAFILES) $(JAVACLASSFILES)
@@-find $(CLASSDIR) -type d -user $(USER) \! -perm -5 -print | xargs chmod a+r $$1
.ENDIF
.ENDIF
- @echo > $@
+ @$(TOUCH) $@
.ENDIF # "$(JAVATARGET)"!=""
-
diff --git a/solenv/inc/tg_rslb.mk b/solenv/inc/tg_rslb.mk
index 69721a7e2204..1f0aff311903 100644
--- a/solenv/inc/tg_rslb.mk
+++ b/solenv/inc/tg_rslb.mk
@@ -43,7 +43,8 @@ $(RSC_MULTI$(TNR)) : \
-fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB$(TNR)NAME)$i.res} \
$(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB$(TNR)IMAGES)) -lip={$j}/$i \
-lip={$j} ) \
- -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res ) \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \
-subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \
-subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \
-oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \
@@ -58,7 +59,8 @@ $(RSC_MULTI$(TNR)) : \
-fs={$(BIN)/$(RESLIB$(TNR)NAME)$i.res} \
$(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB$(TNR)IMAGES)) -lip={$j}/$i \
-lip={$j} ) \
- -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res ) \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \
+ -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \
-subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \
-subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \
-oil=$(BIN) \
diff --git a/solenv/inc/tg_shl.mk b/solenv/inc/tg_shl.mk
index ab95b1a75c4f..1bcebb8c72e3 100644
--- a/solenv/inc/tg_shl.mk
+++ b/solenv/inc/tg_shl.mk
@@ -362,7 +362,7 @@ $(SHL$(TNR)TARGETN) : \
$(SHL$(TNR)STDLIBS) \
$(SHL$(TNR)STDSHL) $(STDSHL$(TNR)) \
$(SHL$(TNR)LINKRES) \
- ) $(LINKOUTPUTFILTER)
+ )
# double check if target was really written... still making sense?
@@$(LS) $@
@echo linking $@.manifest ...
@@ -386,7 +386,7 @@ $(SHL$(TNR)TARGETN) : \
$(SHL$(TNR)STDLIBS) \
$(SHL$(TNR)STDSHL) $(STDSHL$(TNR)) \
$(SHL$(TNR)LINKRES) \
- ) $(LINKOUTPUTFILTER)
+ )
# double check if target was really written... still making sense?
@@$(LS) $@
@echo linking $@.manifest ...
@@ -558,7 +558,6 @@ $(SHL$(TNR)TARGETN) : \
$(SHL$(TNR)STDLIBS:^"-l") \
$(SHL$(TNR)LINKRES) \
$(SHL$(TNR)STDSHL:^"-l") $(STDSHL$(TNR):^"-l") \
- $(LINKOUTPUTFILTER)
@$(LS) $@ >& $(NULLDEV)
.ENDIF # "$(USE_DEFFILE)"!=""
diff --git a/solenv/inc/wntmsci11.mk b/solenv/inc/wntmsci11.mk
index 972feb0a8fdc..d70fb134f056 100644..100755
--- a/solenv/inc/wntmsci11.mk
+++ b/solenv/inc/wntmsci11.mk
@@ -230,10 +230,9 @@ _VC_MANIFEST_BASENAME=__VC80
_VC_MANIFEST_BASENAME=__VC90
.ENDIF
-LINK=link /MACHINE:IX86
+LINK=link /MACHINE:IX86 /IGNORE:4102 /IGNORE:4197
# do *not* add $(NOLOGO) to LINK or LINKFLAGS. Strangely, the wntmsci12 linker links fine then, but exits with
# a return value 1, which makes dmake think it failed
-LINKOUTPUTFILTER= $(PIPEERROR) $(GREP) -v "LNK4197:"
.IF "$(PRODUCT)"!="full"
.ELSE
LINKFLAGS=/MAP /OPT:NOREF