diff options
author | sb <sb@openoffice.org> | 2011-02-11 11:00:41 +0100 |
---|---|---|
committer | sb <sb@openoffice.org> | 2011-02-11 11:00:41 +0100 |
commit | 54a05a00d7e4cb38390a23267207ef65e01044ad (patch) | |
tree | fce62839e8b178091ddd19a9092c8f149c11d34a /solenv | |
parent | 9770f801119ebf03ba8e01ee19edf6a00182ea28 (diff) | |
parent | 6952c9ac8a10baaedd0ca4cad6b91ae94c941f43 (diff) |
sb138: merged in re/DEV300_next towards DEV300_m100
Diffstat (limited to 'solenv')
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 |