diff options
199 files changed, 16669 insertions, 5294 deletions
diff --git a/.gitignore b/.gitignore index 4621c7b32284..a62a773244cb 100644 --- a/.gitignore +++ b/.gitignore @@ -22,7 +22,6 @@ /*/unxaig?? /*/unxaig??.pro /solver/* -/instsetoo_native/* # autoconf generated stuff /aclocal.m4 @@ -58,201 +57,203 @@ /*/*.exe # links to the other repositories -MathMLDTD -Mesa -UnoControls -agg -accessibility -afms -animations -apache-commons -apple_remote -autodoc -automation -avmedia -basctl -basebmp -basegfx -basic -bean -beanshell -berkeleydb -binfilter -boost -bridges -cairo -canvas -chart2 -cli_ure -codemaker -comphelper -configmgr -connectivity -cosv -cppcanvas -cppu -cppuhelper -cppunit -cpputools -crashrep -cui -curl -dbaccess -default_images -desktop -dictionaries -drawinglayer -dtrans -editeng -embeddedobj -embedserv -epm -eventattacher -expat -extensions -external -external_images -extras -fileaccess -filter -forms -formula -fpicker -framework -graphite -helpcontent2 -hsqldb -hunspell -hwpfilter -hyphen -i18npool -i18nutil -icc -icu -idl -idlc -io -javainstaller2 -javaunohelper -jfreereport -jpeg -jurt -jvmaccess -jvmfwk -l10n -l10ntools -languagetool -libegg -libtextcat -libwpd -libwpg -libwps -libxml2 -libxmlsec -libxslt -lingucomponent -linguistic -lotuswordpro -lpsolve -lucene -mdds -migrationanalysis -more_fonts -moz -mysqlc -mysqlcppconn -mythes -neon -nlpsolver -np_sdk -nss -o3tl -odk -offapi -officecfg -offuh -ooo_custom_images -oovbaapi -oox -openssl -package -packimages -padmin -postprocess -psprint_config -python -pyuno -qadevOOo -rdbmaker -readlicense_oo -redland -regexp -registry -remotebridges -reportbuilder -reportdesign -rhino -ridljar -rsc -sal -salhelper -sane -sax -saxon -sc -scaddins -sccomp -scripting -sd -sdext -setup_native -sfx2 -shell -slideshow -smoketestoo_native -sot -starmath -stax -stoc -store -svl -svtools -svx -sw -swext -sysui -test -testautomation -testgraphical -testtools -tomcat -toolkit -tools -twain -ucb -ucbhelper -udkapi -udm -unixODBC -unodevtools -unoil -unotools -unoxml -ure -uui -vbahelper -vcl -vigra -wizards -writerfilter -writerperfect -x11_extensions -xmerge -xml2cmp -xmlhelp -xmloff -xmlscript -xmlsecurity -xpdf -xsltml -zlib +/MathMLDTD +/Mesa +/UnoControls +/agg +/accessibility +/afms +/animations +/apache-commons +/apple_remote +/autodoc +/automation +/avmedia +/basctl +/basebmp +/basegfx +/basic +/bean +/beanshell +/berkeleydb +/binaryurp +/binfilter +/boost +/bridges +/cairo +/canvas +/chart2 +/cli_ure +/codemaker +/comphelper +/configmgr +/connectivity +/cosv +/cppcanvas +/cppu +/cppuhelper +/cppunit +/cpputools +/crashrep +/cui +/curl +/dbaccess +/default_images +/desktop +/dictionaries +/drawinglayer +/dtrans +/editeng +/embeddedobj +/embedserv +/epm +/eventattacher +/expat +/extensions +/external +/external_images +/extras +/fileaccess +/filter +/forms +/formula +/fpicker +/framework +/graphite +/helpcontent2 +/hsqldb +/hunspell +/hwpfilter +/hyphen +/i18npool +/i18nutil +/icc +/icu +/idl +/idlc +/io +/javainstaller2 +/javaunohelper +/jfreereport +/jpeg +/jurt +/jvmaccess +/jvmfwk +/l10n +/l10ntools +/languagetool +/libegg +/libtextcat +/libwpd +/libwpg +/libwps +/libxml2 +/libxmlsec +/libxslt +/lingucomponent +/linguistic +/lotuswordpro +/lpsolve +/lucene +/mdds +/migrationanalysis +/more_fonts +/moz +/mysqlc +/mysqlcppconn +/mythes +/neon +/nlpsolver +/np_sdk +/nss +/o3tl +/odk +/offapi +/officecfg +/offuh +/ooo_custom_images +/oovbaapi +/oox +/openssl +/package +/packimages +/padmin +/postprocess +/psprint_config +/python +/pyuno +/qadevOOo +/rdbmaker +/readlicense_oo +/redland +/regexp +/registry +/remotebridges +/reportbuilder +/reportdesign +/rhino +/ridljar +/rsc +/sal +/salhelper +/sane +/sax +/saxon +/sc +/scaddins +/sccomp +/scripting +/sd +/sdext +/setup_native +/sfx2 +/shell +/slideshow +/smoketestoo_native +/sot +/starmath +/stax +/stoc +/store +/svl +/svtools +/svx +/sw +/swext +/sysui +/test +/testautomation +/testgraphical +/testtools +/tomcat +/toolkit +/tools +/twain +/ucb +/ucbhelper +/udkapi +/udm +/unixODBC +/unodevtools +/unoil +/unotools +/unoxml +/ure +/uui +/vbahelper +/vcl +/vigra +/wizards +/writerfilter +/writerperfect +/x11_extensions +/xmerge +/xml2cmp +/xmlhelp +/xmloff +/xmlreader +/xmlscript +/xmlsecurity +/xpdf +/xsltml +/zlib diff --git a/GNUmakefile.mk b/GNUmakefile.mk new file mode 100644 index 000000000000..018b21e3f1ac --- /dev/null +++ b/GNUmakefile.mk @@ -0,0 +1,37 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2009 by Sun Microsystems, Inc. +# +# 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 + +GBUILDDIR := $(SOLARENV)/gbuild +include $(GBUILDDIR)/gbuild.mk + +$(foreach repo,$(gb_REPOS),$(eval $(call gb_Module_make_global_targets,$(wildcard $(repo)/Module_*.mk)))) + +# vim: set noet sw=4 ts=4: diff --git a/Makefile.in b/Makefile.in index 14e762ec331b..54e93cfae54b 100644 --- a/Makefile.in +++ b/Makefile.in @@ -2,40 +2,48 @@ SHELL=/usr/bin/env bash +ifeq ($(USE_GMAKE),) +GBUILD_OPT:= +else +GBUILD_OPT:=--gmake +endif + all: Makefile dmake/dmake@EXEEXT@ src.downloaded - . ./*[Ee]nv.[Ss]et.sh && \ + + @. ./*[Ee]nv.[Ss]et.sh && \ cd instsetoo_native && \ - build.pl -P@BUILD_NCPUS@ --all -- -P@BUILD_MAX_JOBS@ + build.pl $(GBUILD_OPT) -P@BUILD_NCPUS@ --all -- -P@BUILD_MAX_JOBS@ install: - @echo "Installing in $${prefix:-/usr/local}..." - . ./*[Ee]nv.[Ss]et.sh && \ - ooinstall "$${prefix:-@prefix@}" - @echo && \ + @. ./*[Ee]nv.[Ss]et.sh && \ + echo "Installing in $${prefix:-@prefix@}..." && \ + ooinstall "$${prefix:-@prefix@}" && \ + echo "" && \ echo "Installation finished, you can now execute:" && \ echo "$${prefix:-@prefix@}/program/soffice" dev-install: - . ./*[Ee]nv.[Ss]et.sh && \ - ooinstall -l @abs_builddir@/install - @echo && \ + @. ./*[Ee]nv.[Ss]et.sh && \ + ooinstall -l @abs_builddir@/install && \ + echo "" && \ echo "Developer installation finished, you can now execute:" && \ echo "@abs_builddir@/install/program/soffice" distclean: dmake/dmake@EXEEXT@ - . ./*[Ee]nv.[Ss]et.sh && \ + @. ./*[Ee]nv.[Ss]et.sh && \ dmake distclean clean: dmake/dmake@EXEEXT@ - . ./*[Ee]nv.[Ss]et.sh && \ - dmake clean + @. ./*[Ee]nv.[Ss]et.sh && \ + dmake clean && \ + if [ -n "$$USE_GMAKE" ] ; then make -f GNUmakefile.mk -sr clean ; fi dmake/dmake@EXEEXT@: - . ./*[Ee]nv.[Ss]et.sh && \ + @. ./*[Ee]nv.[Ss]et.sh && \ ./bootstrap src.downloaded: ooo.lst download - . ./*[Ee]nv.[Ss]et.sh && \ + @. ./*[Ee]nv.[Ss]et.sh && \ $$SRC_ROOT/download $$SRC_ROOT/ooo.lst && touch $@ fetch: src.downloaded @@ -44,19 +52,19 @@ Makefile: configure.in set_soenv.in Makefile.in ./autogen.sh check: Makefile dmake/dmake@EXEEXT@ fetch - . ./*[Ee]nv.[Ss]et.sh && \ + @. ./*[Ee]nv.[Ss]et.sh && \ cd smoketestoo_native && \ export SAL_USE_VCLPLUGIN="svp" && \ - build.pl -P@BUILD_NCPUS@ --all -- -P@BUILD_MAX_JOBS@ + build.pl $(GBUILD_OPT) -P@BUILD_NCPUS@ --all -- -P@BUILD_MAX_JOBS@ id: - . ./*[Ee]nv.[Ss]et.sh && \ + @. ./*[Ee]nv.[Ss]et.sh && \ create-ids tags: - . ./*[Ee]nv.[Ss]et.sh && \ + @. ./*[Ee]nv.[Ss]et.sh && \ create-tags docs: - . ./*[Ee]nv.[Ss]et.sh && \ + @. ./*[Ee]nv.[Ss]et.sh && \ mkdocs.sh $$SRC_ROOT/docs $$SOLARENV/inc/doxygen.cfg diff --git a/Module_ooo.mk b/Module_ooo.mk new file mode 100644 index 000000000000..f364cd80010f --- /dev/null +++ b/Module_ooo.mk @@ -0,0 +1,47 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +$(eval $(call gb_Module_Module,ooo)) + +$(eval $(call gb_Module_add_moduledirs,ooo,\ + comphelper \ + editeng \ + framework \ + padmin \ + sfx2 \ + sot \ + svl \ + svtools \ + svx \ + sw \ + toolkit \ + tools \ + xmloff \ + vbahelper \ +)) + +# vim: set noet ts=4 sw=4: diff --git a/Repository.mk b/Repository.mk new file mode 100644 index 000000000000..123c4184b985 --- /dev/null +++ b/Repository.mk @@ -0,0 +1,131 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2009 by Sun Microsystems, Inc. +# +# 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_Helper_register_repository,SRCDIR)) + + +$(eval $(call gb_Helper_register_executables,NONE, \ + bmp \ + bmpsum \ + g2g \ + mkunroll \ + rscdep \ + so_checksum \ + sspretty \ +)) + +$(eval $(call gb_Helper_register_executables,OOO, \ + spadmin.bin \ +)) + +$(eval $(call gb_Helper_register_libraries,OOOLIBS, \ + avmedia \ + basegfx \ + cui \ + drawinglayer \ + editeng \ + fwe \ + fwi \ + fwk \ + fwl \ + fwm \ + i18npaper \ + lng \ + msfilter \ + msword \ + oox \ + qstart_gtk \ + sax \ + sb \ + sfx \ + sot \ + spa \ + svl \ + svt \ + svx \ + svxcore \ + sw \ + swd \ + swui \ + textconversiondlgs \ + tk \ + tl \ + utl \ + vbahelper \ + vcl \ + xcr \ + xo \ + xof \ +)) + +$(eval $(call gb_Helper_register_libraries,PLAINLIBS_URE, \ + xml2 \ +)) + +$(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \ + icuuc \ + cppunit \ +)) + + +$(eval $(call gb_Helper_register_libraries,RTLIBS, \ + comphelper \ + i18nisolang1 \ + i18nutil \ + ucbhelper \ +)) + +$(eval $(call gb_Helper_register_libraries,RTVERLIBS, \ + cppuhelper \ + salhelper \ +)) + +$(eval $(call gb_Helper_register_libraries,UNOLIBS_OOO, \ + fsstorage \ + hatchwindowfactory \ + passwordcontainer \ + productregistration \ + vbaswobj \ + msforms \ +)) + + +$(eval $(call gb_Helper_register_libraries,UNOVERLIBS, \ + cppu \ + jvmfwk \ + sal \ +)) + +$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \ + jpeglib \ + ooopathutils \ + salcpprt \ + vclmain \ + zlib \ +)) + +# vim: set noet sw=4 ts=4: diff --git a/RepositoryFixes.mk b/RepositoryFixes.mk new file mode 100644 index 000000000000..4d26cccb6bba --- /dev/null +++ b/RepositoryFixes.mk @@ -0,0 +1,159 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +# fixes for all the libraries that are named with too much creativity and do +# not follow any of the established nameschemes + +ifeq ($(OS),LINUX) +gb_Library_FILENAMES := $(patsubst comphelper:libcomphelper%,comphelper:libcomphelp%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst cppuhelper:libcppuhelper%,cppuhelper:libuno_cppuhelper%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst cppuhelper:libcppuhelper%,cppuhelper:libuno_cppuhelper%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst jvmfwk:libuno_jvmfwk%,jvmfwk:libjvmfwk%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst jvmfwk:libuno_jvmfwk%,jvmfwk:libjvmfwk%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst salhelper:libsalhelper%,salhelper:libuno_salhelper%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst salhelper:libsalhelper%,salhelper:libuno_salhelper%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst ucbhelper:libucbhelper%,ucbhelper:libucbhelper4%,$(gb_Library_FILENAMES)) + + +endif + + +ifeq ($(OS),MACOSX) +gb_Library_FILENAMES := $(patsubst comphelper:libcomphelper%,comphelper:libcomphelp%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst cppuhelper:libcppuhelper%,cppuhelper:libuno_cppuhelper%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst jvmfwk:libuno_jvmfwk%,jvmfwk:libjvmfwk%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst salhelper:libsalhelper%,salhelper:libuno_salhelper%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst ucbhelper:libucbhelper%,ucbhelper:libucbhelper4%,$(gb_Library_FILENAMES)) + + +endif + + +ifeq ($(OS),WNT) +ifneq ($(USE_MINGW),) +gb_Library_FILENAMES := $(patsubst comphelper:icomphelper%,comphelper:icomphelp%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst cppunit:icppunit%,cppunit:libcppunit.dll$(gb_Library_IARCEXT),$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst cui:icui%,cui:icuin%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst i18nisolang1:ii18nisolang1%,i18nisolang1:ii18nisolang%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst i18nisolang1:iii18nisolang1%,i18nisolang1:iii18nisolang%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst sb:isb%,sb:basic%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst sfx:isfx%,sfx:sfx%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst svt:isvt%,svt:svtool%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst tl:itl%,tl:itools%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst vbahelper:ivbahelper%,vbahelper:vbahelper%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst xml2:ixml2%,xml2:libxml2$(gb_Library_IARCEXT),$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst z:iz%,z:zlib%,$(gb_Library_FILENAMES)) +gb_Library_NOILIBFILENAMES:=\ + icuuc \ + sot \ + uwinapi \ + +gb_Library_FILENAMES := $(filter-out $(foreach lib,$(gb_Library_NOILIBFILENAMES),$(lib):%),$(gb_Library_FILENAMES)) +gb_Library_FILENAMES += $(foreach lib,$(gb_Library_NOILIBFILENAMES),$(lib):$(lib)$(gb_Library_PLAINEXT)) + +gb_Library_ILIBFILENAMES:=\ + unicows \ + uuid \ + +gb_Library_DLLFILENAMES := $(filter-out $(foreach lib,$(gb_Library_ILIBFILENAMES),$(lib):%),$(gb_Library_DLLFILENAMES)) +gb_Library_DLLFILENAMES += $(foreach lib,$(gb_Library_ILIBFILENAMES),$(lib):$(PSDK_HOME)/lib/$(lib)$(gb_Library_ILIBEXT)) + +gb_Library_DLLFILENAMES := $(patsubst comphelper:comphelper%,comphelper:comphelp%,$(gb_Library_DLLFILENAMES)) +gb_Library_DLLFILENAMES := $(patsubst cppunit:cppunit%,cppunit:cygcppunit-1-12-1%,$(gb_Library_DLLFILENAMES)) +gb_Library_DLLFILENAMES := $(patsubst icuuc:icuuc%,icuuc:icuuc40%,$(gb_Library_DLLFILENAMES)) +gb_Library_DLLFILENAMES := $(patsubst ucbhelper:ucbhelper%,ucbhelper:ucbhelper4%,$(gb_Library_DLLFILENAMES)) +gb_Library_DLLFILENAMES := $(patsubst z:z%,z:zlib%,$(gb_Library_DLLFILENAMES)) + + +else +gb_Library_FILENAMES := $(patsubst comphelper:icomphelper%,comphelper:icomphelp%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst cppunit:icppunit%,cppunit:icppunit_dll%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst cui:icui%,cui:icuin%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst i18nisolang1:ii18nisolang1%,i18nisolang1:ii18nisolang%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst i18nisolang1:iii18nisolang1%,i18nisolang1:iii18nisolang%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst sb:isb%,sb:basic%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst sfx:isfx%,sfx:sfx%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst svt:isvt%,svt:svtool%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst tl:itl%,tl:itools%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst vbahelper:ivbahelper%,vbahelper:vbahelper%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst xml2:ixml2%,xml2:libxml2%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst z:iz%,z:zlib%,$(gb_Library_FILENAMES)) +gb_Library_NOILIBFILENAMES:=\ + advapi32 \ + gdi32 \ + gnu_getopt \ + icuuc \ + kernel32 \ + msvcrt \ + msvcprt \ + mpr \ + oldnames \ + ole32 \ + oleaut32 \ + shell32 \ + sot \ + unicows \ + user32 \ + uuid \ + uwinapi \ + +gb_Library_FILENAMES := $(filter-out $(foreach lib,$(gb_Library_NOILIBFILENAMES),$(lib):%),$(gb_Library_FILENAMES)) +gb_Library_FILENAMES += $(foreach lib,$(gb_Library_NOILIBFILENAMES),$(lib):$(lib)$(gb_Library_PLAINEXT)) +ifneq ($(gb_PRODUCT),$(true)) +gb_Library_FILENAMES := $(patsubst msvcrt:msvcrt%,msvcrt:msvcrtd%,$(gb_Library_FILENAMES)) +endif + +gb_Library_DLLFILENAMES := $(patsubst comphelper:comphelper%,comphelper:comphelp%,$(gb_Library_DLLFILENAMES)) +gb_Library_DLLFILENAMES := $(patsubst icuuc:icuuc%,icuuc:icuuc40%,$(gb_Library_DLLFILENAMES)) +gb_Library_DLLFILENAMES := $(patsubst ucbhelper:ucbhelper%,ucbhelper:ucbhelper4%,$(gb_Library_DLLFILENAMES)) +gb_Library_DLLFILENAMES := $(patsubst z:z%,z:zlib%,$(gb_Library_DLLFILENAMES)) + +endif + +endif + +ifeq ($(OS),SOLARIS) +gb_Library_FILENAMES := $(patsubst comphelper:libcomphelper%,comphelper:libcomphelp%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst cppuhelper:libcppuhelper%,cppuhelper:libuno_cppuhelper%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst ucbhelper:libucbhelper%,ucbhelper:libucbhelper4%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst jvmfwk:libuno_jvmfwk%,jvmfwk:libjvmfwk%,$(gb_Library_FILENAMES)) +gb_Library_FILENAMES := $(patsubst salhelper:libsalhelper%,salhelper:libuno_salhelper%,$(gb_Library_FILENAMES)) +#$(info libnames: $(gb_Library_FILENAMES)) + +endif + +# we do not require a known rule for these, when using system libs + +ifeq ($(SYSTEM_LIBXML),YES) +gb_Library_TARGETS := $(filter-out xml2,$(gb_Library_TARGETS)) +endif + +ifeq ($(SYSTEM_ICU),YES) +gb_Library_TARGETS := $(filter-out icuuc,$(gb_Library_TARGETS)) +endif + +# vim: set noet sw=4 ts=4: diff --git a/buildscript.sh b/buildscript.sh new file mode 100644 index 000000000000..82211c3633ac --- /dev/null +++ b/buildscript.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +cd tools +../solenv/bin/build.pl -P4 -- -P4 +../solenv/bin/deliver.pl +cd - +cd framework +../solenv/bin/build.pl -P4 -- -P4 +../solenv/bin/deliver.pl +cd - +cd toolkit +../solenv/bin/build.pl -P4 -- -P4 +../solenv/bin/deliver.pl +cd - +cd sw +../solenv/bin/build.pl -P4 -- -P4 +../solenv/bin/deliver.pl +cd - diff --git a/configure.in b/configure.in index fade6b07f7e3..2dac76300c94 100755 --- a/configure.in +++ b/configure.in @@ -150,11 +150,6 @@ AC_ARG_ENABLE(pch, [EXPERIMENTAL: Enables precompiled header support for C++.]), ,) -AC_ARG_ENABLE(hids, - AS_HELP_STRING([--disable-hids], - [Disables generation of HelpId lists.]), -,enable_hids=yes) - AC_ARG_ENABLE(mozilla, AS_HELP_STRING([--disable-mozilla], [LibO usually includes a strangely hacked up mozilla binary for your @@ -1401,6 +1396,7 @@ case "$host_os" in build_gstreamer=yes test_kde=yes test_freetype=yes + test_gstreamer=yes _os=SunOS AC_PATH_PROG( GNUTAR, gtar,,$PATH:/usr/sfw/bin) if test -z "$GNUTAR"; then @@ -1916,7 +1912,8 @@ if test \( "$_os" != "WINNT" -o "$WITH_MINGW" = "yes" \) -a "$GCC" = "yes"; then if test "$_os" = "Darwin" -a "$GCCVER" -ge "040100" ; then if test -z "$save_CC" -a -x "$GCC_HOME/bin/gcc-4.0" ; then - CC=$GCC_HOME/bin/gcc-4.0 + export CC=$GCC_HOME/bin/gcc-4.0 + dnl export CC to have it available in set_soenv -> config.guess GCCVER2=`"$CC" -dumpversion | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'` if test "$GCCVER2" -ge "040000" -a "$GCCVER2" -lt "040100" ; then GCCVER=$GCCVER2 @@ -1981,19 +1978,6 @@ fi AC_SUBST(ENABLE_PCH) dnl =================================================================== -dnl Set the NO_HIDS variable. (enable with --enable-hids) -dnl =================================================================== -AC_MSG_CHECKING([whether to enable hid list feature]) -if test -n "$enable_hids" && test "$enable_hids" != "no"; then - NO_HIDS="" - AC_MSG_RESULT([yes]) -else - NO_HIDS="TRUE" - AC_MSG_RESULT([no]) -fi -AC_SUBST(NO_HIDS) - -dnl =================================================================== dnl Search all the common names for GNU make dnl =================================================================== AC_MSG_CHECKING([for GNU make]) @@ -2012,18 +1996,10 @@ fi AC_MSG_CHECKING([the GNU make version]) _make_version=`$GNUMAKE --version | grep GNU | $SED -e 's@^[[^0-9]]*@@' -e 's@ .*@@' -e 's@,.*@@'`; _make_longver=`echo $_make_version | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'` -if test "$_make_longver" -ge "037901" ; then - AC_MSG_RESULT([$GNUMAKE $_make_version]) +if test "$_make_longver" -ge "038100" ; then + AC_MSG_RESULT([$GNUMAKE $_make_version]) else - if test "$_os" = "Darwin"; then - if test "$_make_longver" -ge "037900" ; then - AC_MSG_RESULT([$GNUMAKE $_make_version]) - else - AC_MSG_WARN([failed ($GNUMAKE $_make_version need 3.79.0+)]) - fi - else - AC_MSG_ERROR([failed ($GNUMAKE $_make_version need 3.79.1+)]) - fi + AC_MSG_ERROR([failed ($GNUMAKE version >= 3.81 needed]) fi AC_SUBST(GNUMAKE) @@ -2390,43 +2366,6 @@ AC_SUBST(WORDS_BIGENDIAN) AC_SUBST(LFS_CFLAGS) dnl =================================================================== -dnl Check if we are to enable vba macro interoperability feature -dnl =================================================================== -AC_MSG_CHECKING([whether to disable vba feature]) -if test -n "$enable_vba" && test "$enable_vba" = "no"; then - AC_MSG_RESULT([yes]) - ENABLE_VBA=NO -else - AC_MSG_RESULT([no]) - ENABLE_VBA=YES -fi -AC_SUBST(ENABLE_VBA) - -if test "$ENABLE_VBA" = "YES"; then - AC_MSG_CHECKING([how to package the vba compatibility api]) - if test -n "$with_vba_package_format"; then - if test "$with_vba_package_format" = "extn"; then - VBA_EXTENSION=YES - AC_MSG_RESULT([uno extension]) - AC_MSG_WARN([--with-vba-package-format=extn can cause problems]) - else if test "$with_vba_package_format" = "builtin"; then - VBA_EXTENSION=NO - AC_MSG_RESULT([build into installset]) - else - AC_MSG_ERROR([unknown packaging method]) - fi - fi - - else - VBA_EXTENSION=NO - AC_MSG_RESULT([defaulting to build into installset]) - fi -else - VBA_EXTENSION=NO -fi -AC_SUBST(VBA_EXTENSION) - -dnl =================================================================== dnl Check the whether vba need to be delivered as an uno package or part dnl of the install dnl =================================================================== @@ -2609,14 +2548,23 @@ _ACEOF MINGW_GCCLIB_EH=YES fi AC_MSG_CHECKING([whether to use dynamic libstdc++]) + MINGW_SHARED_LIBSTDCPP= if test -e "$MINGW_CLIB_DIR/libstdc++_s.a" ; then + MINGW_SHARED_LIBSTDCPP=stdc++_s + fi + if test -e "$MINGW_CLIB_DIR/libstdc++.dll.a" ; then + MINGW_SHARED_LIBSTDCPP=stdc++.dll + fi + if test -n "$MINGW_SHARED_LIBSTDCPP" ; then AC_MSG_CHECKING([dynamic libstdc++ name]) - MINGW_GXXDLL_pattern=`nm $MINGW_CLIB_DIR/libstdc++_s.a | $SED -ne 's@.* _libstdc__\(.*\)_dll_iname@libstdc++\1.dll@p' | uniq | $SED -e 's@_@?@g'` + MINGW_GXXDLL_pattern=`nm $MINGW_CLIB_DIR/lib$MINGW_SHARED_LIBSTDCPP.a | sed -ne 's@.* _libstdc__\(.*\)_dll_iname@libstdc++\1.dll@p' | uniq | sed -e 's@_@?@g'` MINGW_GXXDLL=`cd $COMPATH/bin && ls $MINGW_GXXDLL_pattern 2>/dev/null` if test -n "$MINGW_GXXDLL"; then + MINGW_SHARED_LIBSTDCPP=-l$MINGW_SHARED_LIBSTDCPP MINGW_SHARED_GXXLIB=YES AC_MSG_RESULT([use $MINGW_GXXDLL]) else + MINGW_SHARED_LIBSTDCPP= AC_MSG_RESULT([no]) fi else @@ -2627,6 +2575,7 @@ _ACEOF AC_SUBST(MINGW_SHARED_GCCLIB) AC_SUBST(MINGW_GCCLIB_EH) AC_SUBST(MINGW_SHARED_GXXLIB) + AC_SUBST(MINGW_SHARED_LIBSTDCPP) AC_SUBST(MINGW_GCCDLL) AC_SUBST(MINGW_GXXDLL) fi @@ -4007,7 +3956,7 @@ if test -n "$with_system_cppunit" -o -n "$with_system_libs" && \ test "$with_system_cppunit" != "no"; then AC_MSG_RESULT([external]) SYSTEM_CPPUNIT=YES - # might work for earlier, too but go sure + # might work for earlier, too but go sure: PKG_CHECK_MODULES( CPPUNIT, cppunit >= 1.12.0 ) else AC_MSG_RESULT([internal]) @@ -5189,7 +5138,8 @@ if test -n "$with_system_icu" -o -n "$with_system_libs" && \ AC_LANG_PUSH([C++]) AC_MSG_CHECKING([for unicode/rbbi.h]) AC_TRY_CPP(unicode/rbbi.h, AC_MSG_RESULT([checked.]), AC_MSG_ERROR([icu headers not found.])) - AC_PATH_PROG(SYSTEM_GENBRK, genbrk, [], [$PATH:/usr/sbin:/sbin:/usr/local/bin]) + AC_LANG_POP([C++]) + AC_PATH_PROG(SYSTEM_GENBRK, genbrk, [], [$PATH:/usr/sbin:/sbin]) if test -z "$SYSTEM_GENBRK"; then AC_MSG_ERROR([\"genbrk\" not found in \$PATH, install the icu development tool \"genbrk"\]) fi @@ -5215,7 +5165,6 @@ if test -n "$with_system_icu" -o -n "$with_system_libs" && \ AC_MSG_ERROR([not suitable, only >= 4.0 supported currently]) fi - AC_LANG_POP([C++]) else AC_MSG_RESULT([internal]) SYSTEM_ICU=NO @@ -5443,7 +5392,7 @@ AC_MSG_CHECKING([which neon to use]) if test -n "$with_system_neon" -o -n "$with_system_libs" && \ test "$with_system_neon" != "no"; then AC_MSG_RESULT([external]) - PKG_CHECK_MODULES(NEON, neon >= 0.24.0, , AC_MSG_ERROR([you need neon >= 0.24.x for system-neon])) + PKG_CHECK_MODULES(NEON, neon >= 0.26.0, , AC_MSG_ERROR([you need neon >= 0.26.x for system-neon])) NEON_VERSION="`$PKG_CONFIG --modversion neon | $SED 's/\.//g'`" NEON_CFLAGS="$NEON_CFLAGS -DSYSTEM_NEON -DUSE_DAV_LOCKS=1" SYSTEM_NEON=YES @@ -5883,37 +5832,38 @@ if test "$_os" = "SunOS" -o "$_os" = "FreeBSD" -o "$_os" = "Darwin"; then if test -x "$with_gnu_patch"; then GNUPATCH=$with_gnu_patch else - AC_MSG_ERROR([--with-gnu-patch did not point to an executable]) + AC_MSG_ERROR([--with-gnu-patch did not point to an executable]) fi fi AC_MSG_CHECKING([whether $GNUPATCH is GNU patch]) if $GNUPATCH --version | grep "Free Software Foundation" >/dev/null 2>/dev/null; then - AC_MSG_RESULT([yes]) + AC_MSG_RESULT([yes]) else AC_MSG_ERROR([no, GNU patch needed. install or specify with --with-gnu-patch=/path/to/it]) fi +fi dnl We also need to check for --with-gnu-cp - if test -z "$with_gnu_cp"; then - AC_PATH_PROGS(GNUCP, gnucp cp) - if test -z $GNUCP; then +if test -z "$with_gnu_cp"; then + AC_PATH_PROGS(GNUCP, gnucp cp) + if test -z $GNUCP; then AC_MSG_ERROR([Neither gnucp nor cp found. Install GNU cp and/or specify --with-gnu-cp=/path/to/it]) - fi - else - if test -x "$with_gnu_cp"; then + fi +else + if test -x "$with_gnu_cp"; then GNUCP=$with_gnu_cp - else + else AC_MSG_ERROR([--with-gnu-cp did not point to an executable]) - fi - fi + fi +fi - AC_MSG_CHECKING([whether $GNUCP is GNU cp]) - if $GNUCP --version 2>/dev/null | grep "Free Software Foundation" >/dev/null 2>/dev/null; then - AC_MSG_RESULT([yes]) - else - if $GNUCP --version 2>/dev/null | grep "GNU fileutils" >/dev/null 2>/dev/null; then +AC_MSG_CHECKING([whether $GNUCP is GNU cp from coreutils with preserve= support]) +if $GNUCP --version 2>/dev/null | grep "coreutils" >/dev/null 2>/dev/null; then + AC_MSG_RESULT([yes]) +else + if $GNUCP --version 2>/dev/null | grep "GNU fileutils" >/dev/null 2>/dev/null; then AC_MSG_RESULT([yes]) else if test "$_os" = "Darwin"; then @@ -5923,9 +5873,8 @@ dnl We also need to check for --with-gnu-cp AC_MSG_ERROR([no, GNU cp needed. install or specify with --with-gnu-cp=/path/to/it]) fi fi - fi - fi + AC_SUBST(GNUPATCH) AC_SUBST(GNUCP) diff --git a/git-hooks/pre-commit b/git-hooks/pre-commit index 8192e5840c56..6817990eeb98 100755 --- a/git-hooks/pre-commit +++ b/git-hooks/pre-commit @@ -20,8 +20,8 @@ sub fix_whitespace($$) { # usually we have nothing to do ;-) return if ( keys( %{$lines} ) == 0 || - $file eq "" || - !( $file =~ /\.(c|cpp|cxx|h|hrc|hxx|idl|inl|java|map|mk|MK|pl|pm|pmk|py|sdi|sh|src|tab)/ ) ); + $file eq "" || $file eq "GNUmakefile" || + !( $file =~ /\.(c|cpp|cxx|h|hrc|hxx|idl|inl|java|map|MK|pl|pm|pmk|py|sdi|sh|src|tab)/ ) ); open( IN, "$file" ) || die "Cannot open $file for reading"; my ( $out, $tmpfile ) = mkstemp( "/tmp/whitespace-fixing-XXXXXX" ); @@ -157,7 +157,8 @@ my $err_ext = ""; open( FILES, "git diff-index --cached --name-only $against |" ) || die "Cannot run git diff-index."; while ( my $file = <FILES> ) { chomp( $file ); - if ( $file =~ /\.(c|cpp|cxx|h|hrc|hxx|idl|inl|java|map|mk|MK|pmk|pl|pm|sdi|sh|src|tab|xcu|xml)$/) { + if ( $file ne "GNUmakefile" && + $file =~ /\.(c|cpp|cxx|h|hrc|hxx|idl|inl|java|map|MK|pmk|pl|pm|sdi|sh|src|tab|xcu|xml)$/) { open( F, "git diff-index -p --cached $against -- '$file' |" ); while ( my $line = <F> ) { if ( $line =~ /^\+ *\t/ ) { diff --git a/instsetoo_native/inc_openoffice/windows/msi_languages/makefile.mk b/instsetoo_native/inc_openoffice/windows/msi_languages/makefile.mk index df3cd544890e..0a854df4f633 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_languages/makefile.mk +++ b/instsetoo_native/inc_openoffice/windows/msi_languages/makefile.mk @@ -32,6 +32,7 @@ TARGET=win_ulffiles # --- Settings ----------------------------------------------------- +common_build:= .INCLUDE : settings.mk # ------------------------------------------------------------------ @@ -48,8 +49,8 @@ ULFFILES = \ SIS.ulf \ UIText.ulf -MLFFILES = $(foreach,i,$(ULFFILES) $(COMMONMISC)$/$(TARGET)$/$(i:b).mlf) -UULFFILES = $(COMMONMISC)$/$(TARGET)$/Nsis.uulf +MLFFILES = $(foreach,i,$(ULFFILES) $(MISC)$/$(TARGET)$/$(i:b).mlf) +UULFFILES = $(MISC)$/$(TARGET)$/Nsis.uulf # --- Targets ------------------------------------------------------ diff --git a/instsetoo_native/prj/build.lst b/instsetoo_native/prj/build.lst index a810b19afd85..a1d0a15b8cfe 100644 --- a/instsetoo_native/prj/build.lst +++ b/instsetoo_native/prj/build.lst @@ -1,4 +1,4 @@ -oon instsetoo_native :: l10n postprocess packimages testautomation NULL +oon instsetoo_native :: L10N:l10n postprocess packimages testautomation NULL oon instsetoo_native usr1 - all oon_mkout NULL oon instsetoo_native\inc_openoffice\unix nmake - u oon_unix NULL oon instsetoo_native\inc_openoffice\windows\msi_languages nmake - all oon_msilang NULL diff --git a/instsetoo_native/prj/d.lst b/instsetoo_native/prj/d.lst index b417858098cc..4a1f33b51071 100644 --- a/instsetoo_native/prj/d.lst +++ b/instsetoo_native/prj/d.lst @@ -1,4 +1,3 @@ mkdir: %_DEST%\pus%_EXT% -..\%COMMON_OUTDIR%\bin\hid.lst %COMMON_DEST%\bin%_EXT%\hid.lst ..\%COMMON_OUTDIR%\bin\hid\userfeedback_VCL_names.csv %COMMON_DEST%\bin%_EXT%\userfeedback_VCL_names.csv ..\%__SRC%\misc\*.update.xml %_DEST%\pus%_EXT%\*.update.xml diff --git a/instsetoo_native/util/makefile.mk b/instsetoo_native/util/makefile.mk index 5911c3fe241d..3f1c56a4a56d 100644 --- a/instsetoo_native/util/makefile.mk +++ b/instsetoo_native/util/makefile.mk @@ -28,7 +28,6 @@ PRJ=.. PRJNAME=instsetoo_native TARGET=util -GEN_HID2=TRUE .INCLUDE: settings.mk .INCLUDE: $(SOLARINCDIR)$/rtlbootstrap.mk diff --git a/instsetoo_native/util/openoffice.lst b/instsetoo_native/util/openoffice.lst index 2ab17bff20a2..be5a4ece894b 100644 --- a/instsetoo_native/util/openoffice.lst +++ b/instsetoo_native/util/openoffice.lst @@ -4,15 +4,15 @@ Globals { variables { - OOOBASEVERSION 3.3 - OOOPACKAGEVERSION 3.3.0 - UREPACKAGEVERSION 1.7.0 + OOOBASEVERSION 3.4 + OOOPACKAGEVERSION 3.4.0 + UREPACKAGEVERSION 1.8.0 URELAYERVERSION 1 BASISROOTNAME LibreOffice UNIXBASISROOTNAME libreoffice - SERVICETAG_PRODUCTNAME LibreOffice 3.3 - SERVICETAG_PRODUCTVERSION 3.3 - SERVICETAG_PARENTNAME LibreOffice 3.3 + SERVICETAG_PRODUCTNAME LibreOffice 3.4 + SERVICETAG_PRODUCTVERSION 3.4 + SERVICETAG_PARENTNAME LibreOffice 3.4 SERVICETAG_SOURCE {buildsource}{minor}(Build:{buildid}) SERVICETAG_URN urn:uuid:0187debd-e458-11de-82d6-080020a9ed93 HIDELICENSEDIALOG 1 @@ -21,7 +21,7 @@ Globals UREPACKAGEPREFIX libreoffice SOLSUREPACKAGEPREFIX libreoffice USE_FILEVERSION 1 - LIBRARYVERSION 9.3.0 + LIBRARYVERSION 9.4.0 POOLPRODUCT 1 REGISTRATION_HOST https://registration.libreoffice.org/RegistrationWeb REGISTRATIONURL http://survey.libreoffice.org/user/index.php @@ -36,7 +36,7 @@ Globals CREATE_MSP_INSTALLSET 0 UPDATE_DATABASE_LISTNAME finals_instsetoo.txt PACKAGEMAP package_names.txt,package_names_ext.txt - WINDOWSPATCHLEVEL 6 + WINDOWSPATCHLEVEL 8 OOOVENDOR The Document Foundation OOODOWNLOADNAME 1 STARTCENTER_LAYOUT_STYLE 0 @@ -54,16 +54,16 @@ LibreOffice { PRODUCTNAME LibreOffice PRODUCTNAME_BR BrOffice - PRODUCTVERSION 3.3 + PRODUCTVERSION 3.4 PRODUCTEXTENSION LONG_PRODUCTEXTENSION - SHORT_PRODUCTEXTENSION rc4 + SHORT_PRODUCTEXTENSION POSTVERSIONEXTENSION POSTVERSIONEXTENSIONUNIX BRANDPACKAGEVERSION 3 USERDIRPRODUCTVERSION 3 - ABOUTBOXPRODUCTVERSION 3.3.0 - BASEPRODUCTVERSION 3.3 + ABOUTBOXPRODUCTVERSION 3.4.0 + BASEPRODUCTVERSION 3.4 PCPFILENAME openoffice.pcp UPDATEURL http://update.libreoffice.org/ProductUpdateService/check.Update ODFNOTIFYURL http://odfnotify.libreoffice.org/OOo3.0/notification.jsp?version=ODF @@ -74,10 +74,9 @@ LibreOffice FILEFORMATNAME OpenOffice.org FILEFORMATVERSION 1.0 WRITERCOMPATIBILITYVERSIONOOO11 OpenOffice.org 1.1 - PACKAGEVERSION 3.3.0 + PACKAGEVERSION 3.4.0 PACKAGEREVISION {milestone} LICENSENAME LGPL - SERVICESPROJEKT 1 GLOBALFILEGID gid_File_Lib_Vcl GLOBALPATCHFILEGID gid_File_Txt_Patchfiles SPELLCHECKERFILE spellchecker_selection.txt @@ -89,7 +88,7 @@ LibreOffice STUBUPGRADECODE {0E7B27B8-D658-4BF9-98D6-EC361582EB4A} CHANGETARGETDIR 1 USE_FILEVERSION 1 - LIBRARYVERSION 9.3.0 + LIBRARYVERSION 9.4.0 PATCHCODEFILE ooo_patchcodes.txt DOWNLOADBANNER ooobanner.bmp DOWNLOADBITMAP ooobitmap.bmp @@ -111,7 +110,7 @@ LibreOffice downloadname LibO_{productversion}_{os}_install_{languages} langpackdownloadname LibO_{productversion}_languagepack_{os}_install_{languages} helppackdownloadname LibO_{productversion}_helppack_{os}_install_{languages} - include {solarenvpath}/{os}/loader2,.,{localcommonpath}/bin,{localpath}/bin,{solarpath}/bin.{minor}/ooowoure,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor}/desktop-integration/{pkgtype},{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarpath}/pck.{minor}/openoffice,{solarpath}/pck.{minor},{solarpath}/xml.{minor}/office/instance,{solarpath}/xml.{minor},{solarcommonpath}/bin.{minor}/osl,{solarcommonpath}/bin.{minor},{solarcommonpath}/pck.{minor}/openoffice,{solarcommonpath}/pck.{minor},../../external/common,{solarenvpath}/{os}/OOo_external,{solarpath}/pck.{minor}/brand + include {solarenvpath}/{os}/loader2,.,{localpath}/bin,{solarpath}/bin.{minor}/ooowoure,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor}/desktop-integration/{pkgtype},{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarpath}/pck.{minor}/openoffice,{solarpath}/pck.{minor},{solarpath}/xml.{minor}/office/instance,{solarpath}/xml.{minor},../../external/common,{solarenvpath}/{os}/OOo_external } } @@ -123,16 +122,16 @@ LibreOffice_wJRE { PRODUCTNAME LibreOffice PRODUCTNAME_BR BrOffice - PRODUCTVERSION 3.3 + PRODUCTVERSION 3.4 PRODUCTEXTENSION LONG_PRODUCTEXTENSION - SHORT_PRODUCTEXTENSION rc4 + SHORT_PRODUCTEXTENSION POSTVERSIONEXTENSION POSTVERSIONEXTENSIONUNIX BRANDPACKAGEVERSION 3 USERDIRPRODUCTVERSION 3 - ABOUTBOXPRODUCTVERSION 3.3.0 - BASEPRODUCTVERSION 3.3 + ABOUTBOXPRODUCTVERSION 3.4.0 + BASEPRODUCTVERSION 3.4 UPDATEURL http://update.libreoffice.org/ProductUpdateService/check.Update ODFNOTIFYURL http://odfnotify.libreoffice.org/OOo3.0/notification.jsp?version=ODF ADD_INCLUDE_FILES cliureversion.mk,clioootypesversion.mk,javaversion2.dat,userland.txt,version.lst @@ -142,10 +141,9 @@ LibreOffice_wJRE FILEFORMATNAME OpenOffice.org FILEFORMATVERSION 1.0 WRITERCOMPATIBILITYVERSIONOOO11 OpenOffice.org 1.1 - PACKAGEVERSION 3.3.0 + PACKAGEVERSION 3.4.0 PACKAGEREVISION {milestone} LICENSENAME LGPL - SERVICESPROJEKT 1 WITHJREPRODUCT 1 GLOBALFILEGID gid_File_Lib_Vcl GLOBALPATCHFILEGID gid_File_Txt_Patchfiles @@ -158,7 +156,7 @@ LibreOffice_wJRE STUBUPGRADECODE {0E7B27B8-D658-4BF9-98D6-EC361582EB4A} CHANGETARGETDIR 1 USE_FILEVERSION 1 - LIBRARYVERSION 9.3.0 + LIBRARYVERSION 9.4.0 PATCHCODEFILE ooo_patchcodes.txt JAVAPRODUCT 1 DOWNLOADBANNER ooobanner.bmp @@ -177,7 +175,7 @@ LibreOffice_wJRE compression 5 script setup_osljre downloadname LibO_{productversion}_{os}_installwjre_{languages} - include {solarenvpath}/{os}/loader2,.,{localcommonpath}/bin,{localpath}/bin,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor}/desktop-integration/{pkgtype},{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarpath}/pck.{minor}/openoffice,{solarpath}/pck.{minor},{solarpath}/xml.{minor}/office/instance,{solarpath}/xml.{minor},{solarcommonpath}/bin.{minor}/osl,{solarcommonpath}/bin.{minor},{solarcommonpath}/pck.{minor}/openoffice,{solarcommonpath}/pck.{minor},../../external/common,{solarenvpath}/{os}/OOo_external,{solarpath}/pck.{minor}/brand + include {solarenvpath}/{os}/loader2,.,{localpath}/bin,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor}/desktop-integration/{pkgtype},{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarpath}/pck.{minor}/openoffice,{solarpath}/pck.{minor},{solarpath}/xml.{minor}/office/instance,{solarpath}/xml.{minor},../../external/common,{solarenvpath}/{os}/OOo_external } } @@ -188,18 +186,18 @@ LibreOffice_Dev variables { PRODUCTNAME LibO-dev - PRODUCTVERSION 3.3 + PRODUCTVERSION 3.4 PRODUCTEXTENSION LONG_PRODUCTEXTENSION - SHORT_PRODUCTEXTENSION rc4 + SHORT_PRODUCTEXTENSION BASISROOTNAME LibO-dev UNIXBASISROOTNAME lo-dev POSTVERSIONEXTENSION POSTVERSIONEXTENSIONUNIX BRANDPACKAGEVERSION 3 USERDIRPRODUCTVERSION 3 - ABOUTBOXPRODUCTVERSION 3.3.0 - BASEPRODUCTVERSION 3.3 + ABOUTBOXPRODUCTVERSION 3.4.0 + BASEPRODUCTVERSION 3.4 DEVELOPMENTPRODUCT 1 BASISPACKAGEPREFIX libobasis-dev UREPACKAGEPREFIX lodev @@ -213,10 +211,9 @@ LibreOffice_Dev FILEFORMATNAME OpenOffice.org FILEFORMATVERSION 1.0 WRITERCOMPATIBILITYVERSIONOOO11 OpenOffice.org 1.1 - PACKAGEVERSION 3.3.0 + PACKAGEVERSION 3.4.0 PACKAGEREVISION {milestone} LICENSENAME LGPL - SERVICESPROJEKT 1 GLOBALFILEGID gid_File_Lib_Vcl GLOBALPATCHFILEGID gid_File_Txt_Patchfiles SPELLCHECKERFILE spellchecker_selection.txt @@ -229,7 +226,7 @@ LibreOffice_Dev CHANGETARGETDIR 1 USE_FILEVERSION 1 JAVAPRODUCT 1 - LIBRARYVERSION 9.3.0 + LIBRARYVERSION 9.4.0 PATCHCODEFILE ooodev_patchcodes.txt CODEFILENAME codes_ooodev.txt DOWNLOADBANNER ooobanner.bmp @@ -251,7 +248,7 @@ LibreOffice_Dev downloadname LibO-dev_{productversion}_{os}_install_{languages} langpackdownloadname LibO_{productversion}_languagepack_{os}_install_{languages} helppackdownloadname LibO_{productversion}_helppack_{os}_install_{languages} - include {solarenvpath}/{os}/loader2,.,{localpath}/bin/dev,{localcommonpath}/bin,{localpath}/bin,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarpath}/pck.{minor}/openoffice,{solarpath}/pck.{minor},{solarpath}/xml.{minor}/office/instance,{solarpath}/xml.{minor},{solarcommonpath}/bin.{minor}/osl,{solarcommonpath}/bin.{minor},{solarcommonpath}/pck.{minor}/openoffice_dev,{solarcommonpath}/pck.{minor}/openoffice,{solarcommonpath}/pck.{minor},../../external/common,{solarenvpath}/{os}/OOo_external,,{solarpath}/pck.{minor}/brand_dev + include {solarenvpath}/{os}/loader2,.,{localpath}/bin/dev,{localpath}/bin,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarpath}/pck.{minor}/openoffice_dev,{solarpath}/pck.{minor}/openoffice,{solarpath}/pck.{minor},{solarpath}/xml.{minor}/office/instance,{solarpath}/xml.{minor},../../external/common,{solarenvpath}/{os}/OOo_external } } @@ -263,15 +260,14 @@ URE variables { PRODUCTNAME URE - PRODUCTVERSION 1.7 - PACKAGEVERSION 1.7 + PRODUCTVERSION 1.8 + PACKAGEVERSION 1.8 PACKAGEREVISION 1 PRODUCTEXTENSION BRANDPACKAGEVERSION 3 LONG_PRODUCTEXTENSION - SHORT_PRODUCTEXTENSION rc4 + SHORT_PRODUCTEXTENSION LICENSENAME LGPL - SERVICESPROJEKT 1 SETSTATICPATH 1 NOVERSIONINDIRNAME 1 PCPFILENAME ure.pcp @@ -281,7 +277,6 @@ URE DOWNLOADBITMAP urebitmap.bmp DOWNLOADSETUPICO ooosetup.ico DONTUSESTARTMENUFOLDER 1 - SERVICESPROJEKT 1 RELATIVE_PATHES_IN_DDF 1 STARTCENTER_ADDFEATURE_URL http://extensions.libreoffice.org/ STARTCENTER_INFO_URL http://www.libreoffice.org/ @@ -294,7 +289,7 @@ URE active 1 compression 5 script ure - include {solarenvpath}/{os}/loader2,{solarpath}/bin.{minor}/ure,{solarpath}/bin.{minor},{solarpath}/bin.{minor}/osl,{solarpath}/lib.{minor},{solarenvpath}/{os}/MS + include {solarenvpath}/{os}/loader2,{solarpath}/bin.{minor}/ure,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarpath}/xml.{minor},{solarenvpath}/{os}/MS } } @@ -307,14 +302,14 @@ LibreOffice_SDK { PRODUCTNAME LibreOffice PRODUCTNAME_BR BrOffice - PRODUCTVERSION 3.3 + PRODUCTVERSION 3.4 PRODUCTEXTENSION LONG_PRODUCTEXTENSION - SHORT_PRODUCTEXTENSION rc4 + SHORT_PRODUCTEXTENSION POSTVERSIONEXTENSION SDK POSTVERSIONEXTENSIONUNIX sdk BRANDPACKAGEVERSION 3 - PACKAGEVERSION 3.3.0 + PACKAGEVERSION 3.4.0 PACKAGEREVISION {milestone} PACK_INSTALLED 1 POOLPRODUCT 0 @@ -325,6 +320,7 @@ LibreOffice_SDK IGNOREDIRECTORYLAYER 1 NOVERSIONINDIRNAME 0 NOSPACEINDIRECTORYNAME 1 + NOSHORTDIRECTORYNAMES 1 CHANGETARGETDIR 1 DOWNLOADBANNER ooosdkbanner.bmp DOWNLOADBITMAP ooosdkbitmap.bmp @@ -340,7 +336,7 @@ LibreOffice_SDK active 1 compression 5 script sdkoo - include {solarenvpath}/{os}/loader2,{solarpath}/bin.{minor}/sdkoo,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarcommonpath}/bin.{minor},{solarenvpath}/{os}/MS + include {solarenvpath}/{os}/loader2,{solarpath}/bin.{minor}/sdkoo,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarenvpath}/{os}/MS } } @@ -352,16 +348,16 @@ LibreOffice_Dev_SDK variables { PRODUCTNAME LibO-dev - PRODUCTVERSION 3.3 + PRODUCTVERSION 3.4 PRODUCTEXTENSION LONG_PRODUCTEXTENSION - SHORT_PRODUCTEXTENSION rc4 + SHORT_PRODUCTEXTENSION BASISROOTNAME LibO-dev UNIXBASISROOTNAME lo-dev POSTVERSIONEXTENSION SDK POSTVERSIONEXTENSIONUNIX sdk BRANDPACKAGEVERSION 3 - PACKAGEVERSION 3.3.0 + PACKAGEVERSION 3.4.0 PACKAGEREVISION {milestone} BASISPACKAGEPREFIX libobasis-dev UREPACKAGEPREFIX lodev @@ -377,6 +373,7 @@ LibreOffice_Dev_SDK IGNOREDIRECTORYLAYER 1 NOVERSIONINDIRNAME 0 NOSPACEINDIRECTORYNAME 1 + NOSHORTDIRECTORYNAMES 1 CHANGETARGETDIR 1 DOWNLOADBANNER ooosdkbanner.bmp DOWNLOADBITMAP ooosdkbitmap.bmp @@ -392,6 +389,6 @@ LibreOffice_Dev_SDK active 1 compression 5 script sdkoo - include {solarenvpath}/{os}/loader2,{solarpath}/bin.{minor}/sdkoo,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarcommonpath}/bin.{minor},{solarenvpath}/{os}/MS + include {solarenvpath}/{os}/loader2,{solarpath}/bin.{minor}/sdkoo,{solarpath}/bin.{minor}/osl,{solarpath}/bin.{minor},{solarpath}/lib.{minor},{solarenvpath}/{os}/MS } } @@ -1,4 +1,5 @@ http://hg.services.openoffice.org/binaries +48a9f787f43a09c0a9b7b00cd1fddbbf-hyphen-2.7.1.tar.gz 63ddc5116488985e820075e65fbe6aa4-openssl-0.9.8o.tar.gz 09357cc74975b01714e00c5899ea1881-pixman-0.12.0.tar.gz 0b49ede71c21c0599b0cc19b353a6cb3-README_apache-commons.txt @@ -24,31 +25,23 @@ ca4870d899fd7e943ffc310a5421ad4d-liberation-fonts-ttf-1.06.0.20100721.tar.gz 4a660ce8466c9df01f19036435425c3a-glibc-2.1.3-stub.tar.gz 4ea70ea87b47e92d318d4e7f5b940f47-cairo-1.8.0.tar.gz 599dc4cc65a07ee868cf92a667a913d2-xpdf-3.02.tar.gz -5aba06ede2daa9f2c11892fbd7bc3057-libserializer.zip -67b42915c8432abf0a922438f00860a2-libxml.zip 7740a8ec23878a2f50120e1faa2730f2-libxml2-2.7.6.tar.gz 7376930b0d3f3d77a685d94c4a3acda8-STLport-4.5-0119.tar.gz -79600e696a98ff95c2eba976f7a8dfbb-liblayout.zip 798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip ecb2e37e45c9933e2a963cabe03670ab-curl-7.19.7.tar.gz 8294d6c42e3553229af9934c5c0ed997-stax-api-1.0-2-sources.jar -8ea307d71d11140574bfb9fcc2487e33-libbase.zip bd30e9cf5523cdfc019b94f5e1d7fd19-cppunit-1.12.1.tar.gz -a06a496d7a43cbdc35e69dbe678efadb-libloader.zip a169ab152209200a7bad29a275cb0333-seamonkey-1.1.14.source.tar.gz a4d9b30810a434a3ed39fc0003bbd637-LICENSE_stax-api-1.0-2-sources.html a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip af3c3acf618de6108d65fcdc92b492e1-commons-codec-1.3-src.tar.gz -ba1015b59c112d44d7797b62fe7bee51-neon-0.29.3.tar.gz bc702168a2af16869201dbe91e46ae48-LICENSE_Python-2.6.1 c441926f3a552ed3e5b274b62e86af16-STLport-4.0.tar.gz ca66e26082cab8bb817185a116db809b-redland-1.0.8.tar.gz -d0b5af6e408b8d2958f3d83b5244f5e8-hyphen-2.4.tar.gz d1a3205871c3c52e8a50c9f18510ae12-libformula.zip d4c4d91ab3a8e52a2e69d48d34ef4df4-core.zip d70951c80dabecc2892c919ff5d07172-db-4.7.25.NC-custom.tar.gz -dbb3757275dc5cc80820c0b4dd24ed95-librepository.zip dbd5f3b47ed13132f04c685d608a7547-jpeg-6b.tar.gz e0707ff896045731ff99e99799606441-README_db-4.7.25.NC-custom.txt e81c2f0953aa60f8062c05a4673f2be0-Python-2.6.1.tar.bz2 @@ -56,14 +49,23 @@ e61d0364a30146aaa3001296f853b2b9-libxslt-1.1.26.tar.gz ea570af93c284aa9e5621cd563f54f4d-bsh-2.0b1-src.tar.gz ea91f2fb4212a21d708aced277e6e85a-vigra1.4.0.tar.gz ee8b492592568805593f81f8cdf2a04c-expat-2.0.1.tar.gz -f3e2febd267c8e4b13df00dac211dd6d-flute.zip -f7925ba8491fe570e5164d2c72791358-libfonts.zip fb7ba5c2182be4e73748859967455455-README_stax-api-1.0-2-sources.txt fca8706f2c4619e2fa3f8f42f8fc1e9d-rasqal-0.9.16.tar.gz fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz 37282537d0ed1a087b1c8f050dc812d9-dejavu-fonts-ttf-2.32.zip 831126a1ee5af269923cfab6050769fe-mysql-connector-cpp.zip 067201ea8b126597670b5eff72e1f66c-mythes-1.2.0.tar.gz +3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip +3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip +8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip +97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip +ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip +d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip +db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip +eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip +f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip +ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip +ff369e69ef0f0143beb5626164e87ae2-neon-0.29.5.tar.gz http://download.go-oo.org/src 314e582264c36b3735466c522899aa07-icu4c-4_4_2-src.tgz 47e1edaa44269bc537ae8cabebb0f638-JLanguageTool-1.0.0.tar.bz2 diff --git a/scp2/inc/macros.inc b/scp2/inc/macros.inc index 8bf6350d7465..f6101b677464 100644..100755 --- a/scp2/inc/macros.inc +++ b/scp2/inc/macros.inc @@ -300,24 +300,6 @@ Styles = (PACKED,DONT_OVERWRITE,PATCH); \ End -#define UNO_JAR_FILE(id,name) \ - File id \ - TXT_FILE_BODY; \ - Name = STRING(CONCAT2(name,.jar)); \ - RegistryID = gid_Starregistry_Services_Rdb; \ - Dir = gid_Dir_Classes; \ - Styles = (PACKED,DONT_OVERWRITE, UNO_COMPONENT); \ - End - -#define UNO_JAR_FILE_PATCH(id,name) \ - File id \ - TXT_FILE_BODY; \ - Name = STRING(CONCAT2(name,.jar)); \ - RegistryID = gid_Starregistry_Services_Rdb; \ - Dir = gid_Dir_Classes; \ - Styles = (PACKED,DONT_OVERWRITE,UNO_COMPONENT,PATCH); \ - End - #define JARFILENAME(name) STRING(CONCAT2(name,.jar)) #define PACKED_SHELLNEW_FILE_BODY \ @@ -332,52 +314,16 @@ Name = STRING(name) ; \ End -#define PACKED_UNO_LIB_FILE_BODY \ - TXT_FILE_BODY; \ - Styles = (PACKED,UNO_COMPONENT); \ - Dir = SCP2_OOO_BIN_DIR; \ - RegistryID = gid_Starregistry_Services_Rdb - -#define PACKED_UNO_LIB_FILE_BODY_PATCH \ - TXT_FILE_BODY; \ - Styles = (PACKED,UNO_COMPONENT,PATCH); \ - Dir = SCP2_OOO_BIN_DIR; \ - RegistryID = gid_Starregistry_Services_Rdb - -#define STD_UNO_LIB_FILE(id,name) \ - File id \ - Name = LIBNAME(name); \ - PACKED_UNO_LIB_FILE_BODY; \ - End - -#define STD_UNO_LIB_FILE_PATCH(id,name) \ - File id \ - Name = LIBNAME(name); \ - PACKED_UNO_LIB_FILE_BODY_PATCH; \ - End - -#define SPECIAL_UNO_LIB_FILE(id,name) \ - File id \ - Name = SPECIAL_NAME(name); \ - PACKED_UNO_LIB_FILE_BODY; \ - End - -#define SPECIAL_UNO_LIB_FILE_PATCH(id,name) \ - File id \ - Name = SPECIAL_NAME(name); \ - PACKED_UNO_LIB_FILE_BODY_PATCH; \ - End - -#define SPECIAL_UNO_COMPONENT_LIB_FILE(id,name) \ +#define SPECIAL_COMPONENT_LIB_FILE(id,name) \ File id \ Name = SPECIAL_COMPONENT_LIB_NAME(name); \ - PACKED_UNO_LIB_FILE_BODY; \ + PACKED_LIB_FILE_BODY; \ End -#define SPECIAL_UNO_COMPONENT_LIB_FILE_PATCH(id,name) \ +#define SPECIAL_COMPONENT_LIB_FILE_PATCH(id,name) \ File id \ Name = SPECIAL_COMPONENT_LIB_NAME(name); \ - PACKED_UNO_LIB_FILE_BODY_PATCH; \ + PACKED_LIB_FILE_BODY_PATCH; \ End #define WINW4WFILTERFILENAME(name) STRING(CONCAT2(name,f32w.dll)) @@ -406,15 +352,6 @@ Styles = (PACKED, NO_WARNING_IF_NOT_EXISTS); \ End -#define SPECIAL_UNO_NO_WARNING_IF_NOT_EXISTS_FILE(id,name) \ - File id \ - TXT_FILE_BODY; \ - Name = LIBNAME(name); \ - Dir = SCP2_OOO_BIN_DIR; \ - Styles = (PACKED, NO_WARNING_IF_NOT_EXISTS, UNO_COMPONENT); \ - RegistryID = gid_Starregistry_Services_Rdb; \ - End - // --------------------------------------- #define CONDITIONAL_MODULE_ENTRY(name,modid) \ Module gid_Module_Root_Reg_##name \ @@ -434,6 +371,15 @@ End Value = " "; \ End +#define REGISTRY_ENTRY_OPEN_WITH_TMPL(name,cond,doc_type,modid,key) \ + RegistryItem gid_Regitem_OpenOffice_##cond##_OpenWith_##doc_type \ + ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \ + ModuleID = modid; \ + Subkey = STRING(CONCAT3(.,key,\OpenWithProgIDs)); \ + Name = STRING(CONCAT2(OpenOffice.org.,name)); \ + Value = " "; \ + End + #define CONDITIONAL_REGISTRY_ENTRY_EXT(name,cond,key) \ RegistryItem gid_Regitem__##name \ ParentID = PREDEFINED_HKEY_CLASSES_ROOT; \ @@ -511,7 +457,7 @@ End ModuleID = modid; \ Subkey = STRING(Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations); \ Name = STRING(CONCAT2(.,key)); \ - Value = STRING(CONCAT3(soffice.Star,doc_type,Document.6)); \ + Value = STRING(CONCAT2(OpenOffice.org.,name)); \ Styles = (); \ End @@ -521,7 +467,7 @@ End ModuleID = modid; \ Subkey = STRING(Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations); \ Name = STRING(CONCAT2(.,key)); \ - Value = STRING(CONCAT3(soffice.Star,doc_type,Template.6)); \ + Value = STRING(CONCAT2(OpenOffice.org.,name)); \ Styles = (); \ End @@ -540,7 +486,7 @@ End #define CONDITIONAL_REGISTER_DOCTEMPLATE_EXTENSION(name,modid,key,cond,disp_name,icon_id,app,default,doc_type) \ CONDITIONAL_MODULE_ENTRY(name,modid) \ - REGISTRY_ENTRY_OPEN_WITH(name,cond,doc_type,modid,key) \ + REGISTRY_ENTRY_OPEN_WITH_TMPL(name,cond,doc_type,modid,key) \ CONDITIONAL_REGISTRY_ENTRY_EXT(name,cond,key) \ REGISTRY_ENTRY_DOC(name,modid,disp_name) \ REGISTRY_ENTRY_ICON(name,modid,icon_id) \ diff --git a/scp2/prj/build.lst b/scp2/prj/build.lst index 866db7193537..7b5c9efd85a5 100644 --- a/scp2/prj/build.lst +++ b/scp2/prj/build.lst @@ -1,4 +1,4 @@ -cp scp2 : l10n i18npool setup_native l10ntools PYTHON:python ICU:icu REDLAND:redland LIBXSLT:libxslt NULL +cp scp2 : L10N:l10n i18npool setup_native l10ntools PYTHON:python ICU:icu REDLAND:redland LIBXSLT:libxslt NULL cp scp2 usr1 - all cp_mkout NULL cp scp2\macros nmake - all cp_langmacros NULL cp scp2\source\templates nmake - all cp_langtemplates NULL diff --git a/scp2/source/base/file_base.scp b/scp2/source/base/file_base.scp index 7a9fae3997ca..4da10dd79cde 100644 --- a/scp2/source/base/file_base.scp +++ b/scp2/source/base/file_base.scp @@ -48,29 +48,29 @@ File gid_File_Exe_Odbcconfig End #endif -STD_UNO_LIB_FILE( gid_File_Lib_Abp, abp) +STD_LIB_FILE( gid_File_Lib_Abp, abp) STD_RES_FILE( gid_File_Res_Abp, abp) -STD_UNO_LIB_FILE( gid_File_Lib_Dbp, dbp) +STD_LIB_FILE( gid_File_Lib_Dbp, dbp) STD_RES_FILE( gid_File_Res_Dbp, dbp) -STD_UNO_LIB_FILE( gid_File_Lib_Dbu, dbu ) +STD_LIB_FILE( gid_File_Lib_Dbu, dbu ) STD_RES_FILE( gid_File_Res_Dbu, dbu) -STD_UNO_LIB_FILE( gid_File_Lib_Adabasui, adabasui ) +STD_LIB_FILE( gid_File_Lib_Adabasui, adabasui ) STD_RES_FILE( gid_File_Res_Adabasui, adabasui) STD_RES_FILE( gid_File_Res_Cnr, cnr) STD_RES_FILE( gid_File_Res_Sdbcl, sdbcl) STD_RES_FILE( gid_File_Res_Sdberr, sdberr) -STD_UNO_LIB_FILE( gid_File_Lib_Rpt, rpt ) +STD_LIB_FILE( gid_File_Lib_Rpt, rpt ) STD_RES_FILE( gid_File_Res_Rpt, rpt) -STD_UNO_LIB_FILE( gid_File_Lib_Rptui, rptui ) +STD_LIB_FILE( gid_File_Lib_Rptui, rptui ) STD_RES_FILE( gid_File_Res_Rptui, rptui) -STD_UNO_LIB_FILE( gid_File_Lib_Rptxml, rptxml ) +STD_LIB_FILE( gid_File_Lib_Rptxml, rptxml ) File gid_File_Help_Sdatabase_Zip Dir = gid_Dir_Help_Isolanguage; diff --git a/scp2/source/binfilter/file_binfilter.scp b/scp2/source/binfilter/file_binfilter.scp index be66b907a25d..951caadf69fb 100644 --- a/scp2/source/binfilter/file_binfilter.scp +++ b/scp2/source/binfilter/file_binfilter.scp @@ -39,7 +39,7 @@ File gid_Starregistry_Legacy_Binfilters_Rdb TXT_FILE_BODY; Name = "legacy_binfilters.rdb"; Dir = gid_Dir_Program; - Styles = (PACKED, STARREGISTRY); + Styles = (PACKED); End @@ -59,8 +59,8 @@ STD_LIB_FILE( gid_File_Lib_Bf_Sw, bf_sw) STD_LIB_FILE( gid_File_Lib_Bf_Wrapper, bf_wrapper) STD_LIB_FILE( gid_File_Lib_Legacy_Binfilters, legacy_binfilters) -STD_UNO_LIB_FILE( gid_File_Lib_Bf_Migratefilter, bf_migratefilter) -STD_UNO_LIB_FILE( gid_File_Lib_Bindet, bindet) +STD_LIB_FILE( gid_File_Lib_Bf_Migratefilter, bf_migratefilter) +STD_LIB_FILE( gid_File_Lib_Bindet, bindet) STD_RES_FILE( gid_File_Res_Bf_Sch, bf_sch ) STD_RES_FILE( gid_File_Res_Bf_Svx, bf_svx ) diff --git a/scp2/source/calc/file_calc.scp b/scp2/source/calc/file_calc.scp index 7a2f374a8ced..fc55805d08ec 100644 --- a/scp2/source/calc/file_calc.scp +++ b/scp2/source/calc/file_calc.scp @@ -27,7 +27,7 @@ #include "macros.inc" -STD_UNO_LIB_FILE( gid_File_Lib_Solver, solver) +STD_LIB_FILE( gid_File_Lib_Solver, solver) #ifndef SYSTEM_LPSOLVE File gid_File_Lib_Lpsolve @@ -36,7 +36,7 @@ File gid_File_Lib_Lpsolve End #endif -STD_UNO_LIB_FILE( gid_File_Lib_Analysis, analysis) +STD_LIB_FILE( gid_File_Lib_Analysis, analysis) File gid_File_Share_Registry_Calc_Xcd TXT_FILE_BODY; @@ -45,17 +45,17 @@ File gid_File_Share_Registry_Calc_Xcd Name = "calc.xcd"; End -STD_UNO_LIB_FILE( gid_File_Lib_Calc, calc) +STD_LIB_FILE( gid_File_Lib_Calc, calc) -STD_UNO_LIB_FILE( gid_File_Lib_Date, date) +STD_LIB_FILE( gid_File_Lib_Date, date) -STD_UNO_LIB_FILE( gid_File_Lib_Sc, sc) +STD_LIB_FILE( gid_File_Lib_Sc, sc) STD_LIB_FILE( gid_File_Lib_Scui, scui) STD_UNO_LIB_FILE( gid_File_Lib_Scfilt, scfilt) -STD_UNO_LIB_FILE( gid_File_Lib_Scd, scd) +STD_LIB_FILE( gid_File_Lib_Scd, scd) STD_RES_FILE( gid_File_Res_Solver, solver) diff --git a/scp2/source/calc/registryitem_calc.scp b/scp2/source/calc/registryitem_calc.scp index c76ae8b2168d..8220610ec5c3 100644..100755 --- a/scp2/source/calc/registryitem_calc.scp +++ b/scp2/source/calc/registryitem_calc.scp @@ -859,7 +859,7 @@ End RegistryItem gid_Regitem_ots_FullDetails ParentID = PREDEFINED_HKEY_CLASSES_ROOT; ModuleID = gid_Module_Optional_Winexplorerext_PropertyHdl; - Subkey = "opendocument.Calctemplate.1"; + Subkey = "opendocument.CalcTemplate.1"; Name = "FullDetails"; Value = "prop:System.PropGroup.Description;System.Title;System.Author;System.Subject;System.Keywords;System.Comment;System.PropGroup.FileSystem;System.ItemNameDisplay;System.ItemType;System.ItemFolderPathDisplay;System.Size;System.DateCreated;System.DateModified;System.FileAttributes;System.ComputerName"; End @@ -922,7 +922,7 @@ RegistryItem gid_Regitem_OpenOffice_OTS_OpenWith_Calc ParentID = PREDEFINED_HKEY_CLASSES_ROOT; Subkey = ".ots\OpenWithProgIDs"; ModuleID = gid_Module_Prg_Calc_Bin; - Name = "opendocument.CalcDocument.1"; + Name = "opendocument.CalcTemplate.1"; Value = " "; End diff --git a/scp2/source/canvas/cairocanvas.scp b/scp2/source/canvas/cairocanvas.scp index 435cef4304f8..2d7af5321f35 100644 --- a/scp2/source/canvas/cairocanvas.scp +++ b/scp2/source/canvas/cairocanvas.scp @@ -29,8 +29,7 @@ File gid_File_Lib_CairoCanvas TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(cairocanvas.uno,UNXSUFFIX)); diff --git a/scp2/source/canvas/canvascommons.scp b/scp2/source/canvas/canvascommons.scp index 3b58fc69e0c3..cd2dc9c2d6ea 100644 --- a/scp2/source/canvas/canvascommons.scp +++ b/scp2/source/canvas/canvascommons.scp @@ -30,5 +30,5 @@ STD_LIB_FILE(gid_File_Lib_CppCanvas, cppcanvas) STD_LIB_FILE(gid_File_Lib_CanvasTools, canvastools) -SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_CanvasFactory, canvasfactory.uno) -SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_SimpleCanvas, simplecanvas.uno) +SPECIAL_COMPONENT_LIB_FILE(gid_File_CanvasFactory, canvasfactory.uno) +SPECIAL_COMPONENT_LIB_FILE(gid_File_SimpleCanvas, simplecanvas.uno) diff --git a/scp2/source/canvas/directxcanvas.scp b/scp2/source/canvas/directxcanvas.scp index febdb8428c8b..e79f711aaacd 100644 --- a/scp2/source/canvas/directxcanvas.scp +++ b/scp2/source/canvas/directxcanvas.scp @@ -29,8 +29,8 @@ #ifdef WNT # ifdef USE_DIRECTX5 -SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Lib_DirectX5Canvas,directx5canvas.uno) +SPECIAL_COMPONENT_LIB_FILE(gid_File_Lib_DirectX5Canvas,directx5canvas.uno) # endif -SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Lib_DirectX9Canvas, directx9canvas.uno) -SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Lib_GdiPlusCanvas, gdipluscanvas.uno) +SPECIAL_COMPONENT_LIB_FILE(gid_File_Lib_DirectX9Canvas, directx9canvas.uno) +SPECIAL_COMPONENT_LIB_FILE(gid_File_Lib_GdiPlusCanvas, gdipluscanvas.uno) #endif diff --git a/scp2/source/canvas/vclcanvas.scp b/scp2/source/canvas/vclcanvas.scp index 5f69de34fee9..c17301f56d76 100644 --- a/scp2/source/canvas/vclcanvas.scp +++ b/scp2/source/canvas/vclcanvas.scp @@ -27,4 +27,4 @@ #include "macros.inc" -SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Lib_VCLCanvas, vclcanvas.uno) +SPECIAL_COMPONENT_LIB_FILE(gid_File_Lib_VCLCanvas, vclcanvas.uno) diff --git a/scp2/source/draw/registryitem_draw.scp b/scp2/source/draw/registryitem_draw.scp index 5d7e0d99edfc..d722319649cd 100644..100755 --- a/scp2/source/draw/registryitem_draw.scp +++ b/scp2/source/draw/registryitem_draw.scp @@ -920,7 +920,7 @@ RegistryItem gid_Regitem_OpenOffice_OTG_OpenWith_Draw ParentID = PREDEFINED_HKEY_CLASSES_ROOT; Subkey = ".otg\OpenWithProgIDs"; ModuleID = gid_Module_Prg_Draw_Bin; - Name = "opendocument.DrawDocument.1"; + Name = "opendocument.DrawTemplate.1"; Value = " "; End @@ -938,7 +938,7 @@ RegistryItem gid_Regitem_OpenOffice_STD_OpenWith_Draw ParentID = PREDEFINED_HKEY_CLASSES_ROOT; Subkey = ".std\OpenWithProgIDs"; ModuleID = gid_Module_Prg_Draw_Bin; - Name = "soffice.StarDrawDocument.6"; + Name = "soffice.StarDrawTemplate.6"; Value = " "; End @@ -948,7 +948,7 @@ RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabi Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations"; ModuleID = gid_Module_Prg_Draw_Bin; Name = ".otg"; - Value = "opendocument.DrawDocument.1"; + Value = "opendocument.DrawTemplate.1"; Styles = (); End diff --git a/scp2/source/gnome/file_gnome.scp b/scp2/source/gnome/file_gnome.scp index 9d10261843d2..d48915072742 100644 --- a/scp2/source/gnome/file_gnome.scp +++ b/scp2/source/gnome/file_gnome.scp @@ -32,8 +32,6 @@ File gid_File_Lib_GIO Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; Name = STRING(CONCAT2(ucpgio1.uno,UNXSUFFIX)); - RegistryID = gid_Starregistry_Services_Rdb; - Regmergefile = "ucpgio-ucd.txt"; End #endif @@ -43,8 +41,6 @@ File gid_File_Lib_Gnomevfs Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; Name = STRING(CONCAT2(ucpgvfs1.uno,UNXSUFFIX)); - RegistryID = gid_Starregistry_Services_Rdb; - Regmergefile = "ucpgvfs-ucd.txt"; End #endif @@ -63,7 +59,5 @@ File gid_File_Lib_Gconfbe Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; Name = STRING(CONCAT2(gconfbe1.uno,UNXSUFFIX)); - RegistryID = gid_Starregistry_Services_Rdb; - Regmergefile = "gconfbe1-ucd.txt"; End #endif diff --git a/scp2/source/graphicfilter/file_graphicfilter.scp b/scp2/source/graphicfilter/file_graphicfilter.scp index 4ba30a6849a7..ab46b1814710 100644 --- a/scp2/source/graphicfilter/file_graphicfilter.scp +++ b/scp2/source/graphicfilter/file_graphicfilter.scp @@ -34,8 +34,8 @@ File gid_File_Share_Registry_Graphicfilter_Xcd Name = "graphicfilter.xcd"; End -STD_UNO_LIB_FILE( gid_File_Lib_Flash, flash ) +STD_LIB_FILE( gid_File_Lib_Flash, flash ) -STD_UNO_LIB_FILE( gid_File_Lib_Svg, svgfilter ) +STD_LIB_FILE( gid_File_Lib_Svg, svgfilter ) STD_UNO_LIB_FILE_PATCH( gid_File_Lib_WPGImport, wpgimport ) diff --git a/scp2/source/impress/file_impress.scp b/scp2/source/impress/file_impress.scp index cda4495428ee..850593d696a8 100644 --- a/scp2/source/impress/file_impress.scp +++ b/scp2/source/impress/file_impress.scp @@ -29,12 +29,12 @@ File gid_File_Lib_Placeware Name = LIBNAME(placeware); - PACKED_UNO_LIB_FILE_BODY; + PACKED_LIB_FILE_BODY; End File gid_File_Lib_Animcore Name = SPECIAL_NAME(animcore); - PACKED_UNO_LIB_FILE_BODY; + PACKED_LIB_FILE_BODY; End File gid_File_Share_Registry_Impress_Xcd diff --git a/scp2/source/impress/module_ogltrans.scp b/scp2/source/impress/module_ogltrans.scp index e3a767a06966..e204e04417bd 100644 --- a/scp2/source/impress/module_ogltrans.scp +++ b/scp2/source/impress/module_ogltrans.scp @@ -38,8 +38,7 @@ End File gid_File_Lib_OpenGLTransitions TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX #ifdef QUARTZ diff --git a/scp2/source/impress/registryitem_impress.scp b/scp2/source/impress/registryitem_impress.scp index 0885d81d7c31..063bcf91f4eb 100644..100755 --- a/scp2/source/impress/registryitem_impress.scp +++ b/scp2/source/impress/registryitem_impress.scp @@ -949,7 +949,7 @@ RegistryItem gid_Regitem_OpenOffice_OTP_OpenWith_Impress ParentID = PREDEFINED_HKEY_CLASSES_ROOT; Subkey = ".otp\OpenWithProgIDs"; ModuleID = gid_Module_Prg_Impress_Bin; - Name = "opendocument.ImpressDocument.1"; + Name = "opendocument.ImpressTemplate.1"; Value = " "; End @@ -967,7 +967,7 @@ RegistryItem gid_Regitem_OpenOffice_STI_OpenWith_Impress ParentID = PREDEFINED_HKEY_CLASSES_ROOT; Subkey = ".sti\OpenWithProgIDs"; ModuleID = gid_Module_Prg_Impress_Bin; - Name = "soffice.StarImpressDocument.6"; + Name = "soffice.StarImpressTemplate.6"; Value = " "; End @@ -995,7 +995,7 @@ RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabi Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations"; ModuleID = gid_Module_Prg_Impress_Bin; Name = ".otp"; - Value = "opendocument.ImpressDocument.1"; + Value = "opendocument.ImpressTemplate.1"; Styles = (); End @@ -1004,7 +1004,7 @@ RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabi Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations"; ModuleID = gid_Module_Prg_Impress_Bin; Name = ".sti"; - Value = "soffice.StarImpressDocument.6"; + Value = "soffice.StarImpressTemplate.6"; Styles = (); End diff --git a/scp2/source/javafilter/file_javafilter.scp b/scp2/source/javafilter/file_javafilter.scp index d7a902dbf00f..a6d3f3329b25 100644 --- a/scp2/source/javafilter/file_javafilter.scp +++ b/scp2/source/javafilter/file_javafilter.scp @@ -76,6 +76,6 @@ STD_JAR_FILE( gid_File_Jar_Aportisdoc, aportisdoc ) STD_JAR_FILE( gid_File_Jar_Pexcel, pexcel ) STD_JAR_FILE( gid_File_Jar_Pocketword, pocketword ) STD_JAR_FILE( gid_File_Jar_Xmerge, xmerge ) -UNO_JAR_FILE( gid_File_Jar_Xmergebridge, XMergeBridge ) +STD_JAR_FILE( gid_File_Jar_Xmergebridge, XMergeBridge ) #endif diff --git a/scp2/source/javafilter/registryitem_javafilter.scp b/scp2/source/javafilter/registryitem_javafilter.scp index 1340d637e009..3626d914bef4 100644 --- a/scp2/source/javafilter/registryitem_javafilter.scp +++ b/scp2/source/javafilter/registryitem_javafilter.scp @@ -46,7 +46,7 @@ RegistryItem gid_Regitem_Clsid__43887c67_4d5d_4127_Baac_87a288494c7c__Inprocserv ParentID = PREDEFINED_HKEY_CLASSES_ROOT; Subkey = "CLSID\{43887C67-4D5D-4127-BAAC-87A288494C7C}\InProcServer32"; ModuleID = gid_Module_Optional_Javafilter_Pocketpc_Pocket_Excel; - Value = "[INSTALLLOCATION]Basis\program\xmergesync.dll"; + Value = "[INSTALLLOCATION]program\xmergesync.dll"; End RegistryItem gid_Regitem_Clsid__43887c67_4d5d_4127_Baac_87a288494c7c__Inprocserver32_Threadingmodel @@ -106,7 +106,7 @@ RegistryItem gid_Regitem_Clsid__Bdd611c3_7bab_460f_8711_5b9ac9ef6020__Inprocserv ParentID = PREDEFINED_HKEY_CLASSES_ROOT; Subkey = "CLSID\{BDD611C3-7BAB-460F-8711-5B9AC9EF6020}\InProcServer32"; ModuleID = gid_Module_Optional_Javafilter_Pocketpc_Pocket_Word; - Value = "[INSTALLLOCATION]Basis\program\xmergesync.dll"; + Value = "[INSTALLLOCATION]program\xmergesync.dll"; End RegistryItem gid_Regitem_Clsid__Bdd611c3_7bab_460f_8711_5b9ac9ef6020__Inprocserver32_Threadingmodel @@ -166,7 +166,7 @@ RegistryItem gid_Regitem_Clsid__C6ab3e74_9f4f_4370_8120_A8a6fabb7a7c__Inprocserv ParentID = PREDEFINED_HKEY_CLASSES_ROOT; Subkey = "CLSID\{C6AB3E74-9F4F-4370-8120-A8A6FABB7A7C}\InProcServer32"; ModuleID = gid_Module_Optional_Javafilter_Pocketpc_Pocket_Excel; - Value = "[INSTALLLOCATION]Basis\program\xmergesync.dll"; + Value = "[INSTALLLOCATION]program\xmergesync.dll"; End RegistryItem gid_Regitem_Clsid__C6ab3e74_9f4f_4370_8120_A8a6fabb7a7c__Inprocserver32_Threadingmodel @@ -226,7 +226,7 @@ RegistryItem gid_Regitem_Clsid__Cb43f086_838d_4fa4_B5f6_3406b9a57439__Inprocserv ParentID = PREDEFINED_HKEY_CLASSES_ROOT; Subkey = "CLSID\{CB43F086-838D-4FA4-B5F6-3406B9A57439}\InProcServer32"; ModuleID = gid_Module_Optional_Javafilter_Pocketpc_Pocket_Word; - Value = "[INSTALLLOCATION]Basis\program\xmergesync.dll"; + Value = "[INSTALLLOCATION]program\xmergesync.dll"; End RegistryItem gid_Regitem_Clsid__Cb43f086_838d_4fa4_B5f6_3406b9a57439__Inprocserver32_Threadingmodel diff --git a/scp2/source/kde/file_kde.scp b/scp2/source/kde/file_kde.scp index 0e0b3d1b73bb..3d139b797d67 100644 --- a/scp2/source/kde/file_kde.scp +++ b/scp2/source/kde/file_kde.scp @@ -32,8 +32,6 @@ File gid_File_Lib_Kdebe Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; Name = STRING(CONCAT2(kdebe1.uno,UNXSUFFIX)); - RegistryID = gid_Starregistry_Services_Rdb; - Regmergefile = "kdebe1-ucd.txt"; End #endif @@ -43,7 +41,5 @@ File gid_File_Lib_Kde4be Styles = (PACKED); Dir = gid_Dir_Program; Name = STRING(CONCAT2(kde4be1.uno,UNXSUFFIX)); - RegistryID = gid_Starregistry_Services_Rdb; - Regmergefile = "kde4be1-ucd.txt"; End #endif diff --git a/scp2/source/math/file_math.scp b/scp2/source/math/file_math.scp index 63b87b24624b..c554296d4381 100644 --- a/scp2/source/math/file_math.scp +++ b/scp2/source/math/file_math.scp @@ -37,9 +37,9 @@ End #endif -STD_UNO_LIB_FILE( gid_File_Lib_Sm , sm) +STD_LIB_FILE( gid_File_Lib_Sm , sm) -STD_UNO_LIB_FILE( gid_File_Lib_Smd , smd) +STD_LIB_FILE( gid_File_Lib_Smd , smd) STD_RES_FILE( gid_File_Res_Sm, sm ) diff --git a/scp2/source/onlineupdate/file_onlineupdate.scp b/scp2/source/onlineupdate/file_onlineupdate.scp index e33eb6fa35c7..2a7ddd376b6f 100644 --- a/scp2/source/onlineupdate/file_onlineupdate.scp +++ b/scp2/source/onlineupdate/file_onlineupdate.scp @@ -27,7 +27,7 @@ #include "macros.inc" -SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Updchk , updchk.uno ) +SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Updchk , updchk.uno ) File gid_File_Share_Registry_Onlineupdate_Xcd TXT_FILE_BODY; diff --git a/scp2/source/ooo/common_brand.scp b/scp2/source/ooo/common_brand.scp index 20a9826c5758..19d9f850052b 100644 --- a/scp2/source/ooo/common_brand.scp +++ b/scp2/source/ooo/common_brand.scp @@ -86,6 +86,7 @@ Module gid_Module_Root_Brand gid_Brand_File_Msvcm80crt_Manifest, gid_Brand_File_Lib_Npsoplugin, gid_Brand_File_Lib_Subscrib_C05, + gid_Brand_File_ServicesRdb, gid_Brand_File_Share_Registry_Brand_Xcd, gid_Brand_File_Share_Registry_O5oo_Xcd, gid_Brand_File_Script_Unopkg, @@ -1248,6 +1249,14 @@ ProfileItem gid_Brand_Profileitem_Fundamental_Uno_Bundled_Extensions_User Value = "${${OOO_BASE_DIR}/program/" PROFILENAME(fundamentalbasis) ":BUNDLED_EXTENSIONS_USER}"; End +ProfileItem gid_Brand_Profileitem_Fundamental_Uno_Bundled_Extensions_Prereg + ModuleID = gid_Module_Root_Brand; + ProfileID = gid_Brand_Profile_Fundamental_Ini; + Section = "Bootstrap"; + Key = "BUNDLED_EXTENSIONS_PREREG"; + Value = "${${OOO_BASE_DIR}/program/" PROFILENAME(fundamentalbasis) ":BUNDLED_EXTENSIONS_PREREG}"; +End + ProfileItem gid_Brand_Profileitem_Fundamental_Uno_Shared_Packages_Cache ModuleID = gid_Module_Root_Brand; ProfileID = gid_Brand_Profile_Fundamental_Ini; @@ -1293,7 +1302,7 @@ ProfileItem gid_Brand_Profileitem_Fundamental_Ure_More_Services ProfileID = gid_Brand_Profile_Fundamental_Ini; Section = "Bootstrap"; Key = "URE_MORE_SERVICES"; - Value = "${${OOO_BASE_DIR}/program/" PROFILENAME(fundamentalbasis) ":URE_MORE_SERVICES}"; + Value = "${${OOO_BASE_DIR}/program/" PROFILENAME(fundamentalbasis) ":URE_MORE_SERVICES} $ORIGIN/services.rdb"; End ProfileItem gid_Brand_Profileitem_Fundamental_Ure_More_Java_Types diff --git a/scp2/source/ooo/directory_ooo_macosx.scp b/scp2/source/ooo/directory_ooo_macosx.scp index 9cd00117dcbf..ee4ad7522938 100755 --- a/scp2/source/ooo/directory_ooo_macosx.scp +++ b/scp2/source/ooo/directory_ooo_macosx.scp @@ -31,8 +31,8 @@ Directory gid_Dir_Bundle ParentID = PD_PROGDIR; HostName = "%PRODUCTNAME.app"; - LangPackHostName = "%PRODUCTNAME %PRODUCTVERSION Language Pack.app"; - PatchHostName = "%PRODUCTNAME %PRODUCTVERSION Patch.app"; + LangPackHostName = "%PRODUCTNAME Language Pack.app"; + PatchHostName = "%PRODUCTNAME Patch.app"; End #endif diff --git a/scp2/source/ooo/file_improvement.scp b/scp2/source/ooo/file_improvement.scp index 224d26de6a0d..cd6cfe715d64 100644 --- a/scp2/source/ooo/file_improvement.scp +++ b/scp2/source/ooo/file_improvement.scp @@ -37,5 +37,5 @@ End #endif #if defined(BUILD_SPECIAL) -STD_UNO_LIB_FILE( gid_File_Lib_Oooimprovement , oooimprovement) +STD_LIB_FILE( gid_File_Lib_Oooimprovement , oooimprovement) #endif diff --git a/scp2/source/ooo/file_library_ooo.scp b/scp2/source/ooo/file_library_ooo.scp index 54836a8b8d5c..2edf4e67cab3 100644..100755 --- a/scp2/source/ooo/file_library_ooo.scp +++ b/scp2/source/ooo/file_library_ooo.scp @@ -35,19 +35,18 @@ File gid_File_Lib_Accessbridge End #endif #if ((defined(WNT)) || (defined(LINUX)) || ((defined(SOLARIS)) && (defined(SPARC)))|| defined(NETBSD) ) -STD_UNO_LIB_FILE( gid_File_Lib_Adabas, adabas) +STD_LIB_FILE( gid_File_Lib_Adabas, adabas) #endif #if defined(WNT) -STD_UNO_LIB_FILE( gid_File_Lib_Ado, ado) +STD_LIB_FILE( gid_File_Lib_Ado, ado) #endif -STD_UNO_LIB_FILE( gid_File_Lib_Basctl, basctl) +STD_LIB_FILE( gid_File_Lib_Basctl, basctl) File gid_File_Lib_Basprov TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT4(basprov,DLLPOSTFIX,.uno,UNXSUFFIX)); @@ -56,11 +55,9 @@ File gid_File_Lib_Basprov #endif End -#ifdef ENABLE_VBA File gid_File_Lib_Vbaevent TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT4(vbaevents,DLLPOSTFIX,.uno,UNXSUFFIX)); @@ -68,14 +65,12 @@ File gid_File_Lib_Vbaevent Name = STRING(CONCAT4(vbaevents,DLLPOSTFIX,.uno,.dll)); #endif End -#endif // ENABLE_VBA -STD_UNO_LIB_FILE( gid_File_Lib_Bib , bib) +STD_LIB_FILE( gid_File_Lib_Bib , bib) File gid_File_Lib_Cached1 TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(libcached1,UNXSUFFIX)); @@ -84,13 +79,12 @@ File gid_File_Lib_Cached1 #endif End -SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Lib_Configmgr, configmgr.uno) +SPECIAL_COMPONENT_LIB_FILE(gid_File_Lib_Configmgr, configmgr.uno) #ifdef WITH_LDAP File gid_File_Lib_Ldapbe2 TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(ldapbe2.uno,UNXSUFFIX)); @@ -100,10 +94,10 @@ File gid_File_Lib_Ldapbe2 End #endif -STD_UNO_LIB_FILE(gid_File_Lib_Chartcontroller, chartcontroller) -STD_UNO_LIB_FILE(gid_File_Lib_Chartmodel, chartmodel) -STD_UNO_LIB_FILE(gid_File_Lib_Charttools, charttools) -STD_UNO_LIB_FILE(gid_File_Lib_Chartview, chartview) +STD_LIB_FILE(gid_File_Lib_Chartcontroller, chartcontroller) +STD_LIB_FILE(gid_File_Lib_Chartmodel, chartmodel) +STD_LIB_FILE(gid_File_Lib_Charttools, charttools) +STD_LIB_FILE(gid_File_Lib_Chartview, chartview) #if defined WNT && defined _MSC @@ -157,23 +151,22 @@ End #if ! defined WNT // no longer supported on Windows -SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Cmdmail, cmdmail.uno ) +SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Cmdmail, cmdmail.uno ) #endif File gid_File_Lib_Comphelper2 TXT_FILE_BODY; #ifdef UNX - Name = STRING(CONCAT3(libcomphelp4,COMID,UNXSUFFIX)); + Name = STRING(CONCAT3(libcomphelp,COMID,UNXSUFFIX)); #else - Name = STRING(CONCAT3(comphelp4,COMID,.dll)); + Name = STRING(CONCAT3(comphelp,COMID,.dll)); #endif Dir = SCP2_OOO_BIN_DIR; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); End -STD_UNO_LIB_FILE( gid_File_Lib_Ctl , ctl) +STD_LIB_FILE( gid_File_Lib_Ctl , ctl) STD_LIB_FILE( gid_File_Lib_Cui, cui) @@ -228,15 +221,13 @@ End #endif #endif -STD_UNO_LIB_FILE( gid_File_Lib_Dba, dba) - -STD_UNO_LIB_FILE( gid_File_Lib_Sdbt, sdbt) +STD_LIB_FILE( gid_File_Lib_Dba, dba) -STD_UNO_LIB_FILE( gid_File_Lib_Dbmm, dbmm) +STD_LIB_FILE( gid_File_Lib_Sdbt, sdbt) -STD_UNO_LIB_FILE( gid_File_Lib_Dbacfg, dbacfg) +STD_LIB_FILE( gid_File_Lib_Dbmm, dbmm) -STD_UNO_LIB_FILE( gid_File_Lib_Dbase2, dbase ) +STD_LIB_FILE( gid_File_Lib_Dbase2, dbase ) STD_LIB_FILE( gid_File_Lib_Dbfile , file) STD_LIB_FILE( gid_File_Lib_Odbcbase,odbcbase) @@ -244,8 +235,7 @@ STD_LIB_FILE( gid_File_Lib_Odbcbase,odbcbase) File gid_File_Lib_Dbpool TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(libdbpool2,UNXSUFFIX)); @@ -254,9 +244,9 @@ File gid_File_Lib_Dbpool #endif End -STD_UNO_LIB_FILE( gid_File_Lib_Dbt, dbtools ) +STD_LIB_FILE( gid_File_Lib_Dbt, dbtools ) -STD_UNO_LIB_FILE( gid_File_Lib_Dbaxml, dbaxml ) +STD_LIB_FILE( gid_File_Lib_Dbaxml, dbaxml ) File gid_File_Lib_Dict_Ja TXT_FILE_BODY; @@ -315,8 +305,7 @@ End File gid_File_Lib_Dlgprov TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT4(dlgprov,DLLPOSTFIX,.uno,UNXSUFFIX)); @@ -327,8 +316,7 @@ End File gid_File_Lib_Stringresource TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT4(stringresource,DLLPOSTFIX,.uno,UNXSUFFIX)); @@ -337,13 +325,9 @@ File gid_File_Lib_Stringresource #endif End -#if defined ENABLE_VBA -#ifndef VBA_EXTENSION - File gid_File_Lib_Vbaobj TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT4(libvbaobj,DLLPOSTFIX,.uno,UNXSUFFIX)); @@ -354,33 +338,29 @@ End File gid_File_Lib_Vbaswobj TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX - Name = STRING(CONCAT4(libvbaswobj,DLLPOSTFIX,.uno,UNXSUFFIX)); + Name = STRING(CONCAT3(vbaswobj,.uno,UNXSUFFIX)); #else - Name = STRING(CONCAT4(vbaswobj,DLLPOSTFIX,.uno,.dll)); + Name = STRING(CONCAT3(vbaswobj,.uno,.dll)); #endif End File gid_File_Lib_Vbamsforms TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX - Name = STRING(CONCAT4(libmsforms,DLLPOSTFIX,.uno,UNXSUFFIX)); + Name = STRING(CONCAT3(msforms,.uno,UNXSUFFIX)); #else - Name = STRING(CONCAT4(msforms,DLLPOSTFIX,.uno,.dll)); + Name = STRING(CONCAT3(msforms,.uno,.dll)); #endif End -#endif // VBA_EXTENSION File gid_File_Lib_Vbahelper TXT_FILE_BODY; Styles = (PACKED); - RegistryID = gid_Starregistry_Services_Rdb; Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT3(libvbahelper,DLLPOSTFIX,UNXSUFFIX)); @@ -388,15 +368,13 @@ File gid_File_Lib_Vbahelper Name = STRING(CONCAT3(vbahelper,DLLPOSTFIX,.dll)); #endif End -#endif // ENABLE_VBA #ifdef WNT File gid_File_Lib_Dnd TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; Name = "dnd.dll"; End @@ -409,23 +387,22 @@ File gid_File_Lib_Dtrans TXT_FILE_BODY; Name = "dtrans.dll"; Dir = SCP2_OOO_BIN_DIR; - Styles = (PACKED, UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); End #endif STD_LIB_FILE(gid_File_Lib_Drawinglayer,drawinglayer) -SPECIAL_UNO_LIB_FILE(gid_File_Lib_Embobj,embobj) +SPECIAL_LIB_FILE(gid_File_Lib_Embobj,embobj) #ifndef DISABLE_ATL -SPECIAL_UNO_LIB_FILE(gid_File_Lib_Emboleobj,emboleobj) +SPECIAL_LIB_FILE(gid_File_Lib_Emboleobj,emboleobj) #endif #if defined(WNT) && !defined(DISABLE_ATL) -STD_UNO_LIB_FILE( gid_File_Lib_Emser, emser ) +STD_LIB_FILE( gid_File_Lib_Emser, emser ) File gid_File_Lib_Inprocserv TXT_FILE_BODY; @@ -441,8 +418,7 @@ End #ifdef ENABLE_KAB File gid_File_Lib_Kab_1 TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; Name = STRING(CONCAT2(libkab1,UNXSUFFIX)); End @@ -459,8 +435,7 @@ End #ifdef MACOSX File gid_File_Lib_Macab_1 TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; Name = STRING(CONCAT2(libmacab1,UNXSUFFIX)); End @@ -476,7 +451,7 @@ End #ifdef ENABLE_EVOAB2 -STD_UNO_LIB_FILE( gid_File_Lib_Evoab , evoab) +STD_LIB_FILE( gid_File_Lib_Evoab , evoab) #endif // #ifdef ENABLE_EVOAB2 @@ -484,8 +459,7 @@ STD_UNO_LIB_FILE( gid_File_Lib_Evoab , evoab) File gid_File_Lib_Evtatt TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(libevtatt,UNXSUFFIX)); @@ -494,24 +468,22 @@ File gid_File_Lib_Evtatt #endif End -SPECIAL_UNO_LIB_FILE(gid_File_Lib_Fileacc,fileacc) +SPECIAL_LIB_FILE(gid_File_Lib_Fileacc,fileacc) File gid_File_Lib_Filterconfig1 TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; - RegistryID = gid_Starregistry_Services_Rdb; Name = SPECIAL_NAME(filterconfig1); End -STD_UNO_LIB_FILE( gid_File_Lib_Flat, flat) +STD_LIB_FILE( gid_File_Lib_Flat, flat) #ifdef WNT File gid_File_Lib_Fop TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; Name = "fop.dll"; End @@ -522,8 +494,7 @@ End File gid_File_Lib_Fps TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; Name = "fps.dll"; End @@ -537,8 +508,6 @@ File gid_File_Lib_Desktopbe Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; Name = STRING(CONCAT2(desktopbe1.uno,UNXSUFFIX)); - RegistryID = gid_Starregistry_Services_Rdb; - Regmergefile = "desktopbe1-ucd.txt"; End #ifdef ENABLE_GTK @@ -546,10 +515,8 @@ End File gid_File_Lib_Fps_Gnome TXT_FILE_BODY; Styles = (PACKED); - RegistryID = gid_Starregistry_Services_Rdb; Dir = SCP2_OOO_BIN_DIR; Name = SPECIAL_COMPONENT_LIB_NAME(fps_gnome.uno); - Regmergefile = "fps-gnome-ucd.txt"; End #endif #endif @@ -557,11 +524,9 @@ End #ifndef MACOSX File gid_File_Lib_Fps_Kde4 TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = gid_Dir_Program; Name = SPECIAL_COMPONENT_LIB_NAME(fps_kde4.uno); - Regmergefile = "fps-kde4-ucd.txt"; End #endif #endif @@ -569,11 +534,9 @@ End #ifndef MACOSX File gid_File_Lib_Fps_Kde TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = gid_Dir_Program; Name = SPECIAL_COMPONENT_LIB_NAME(fps_kde.uno); - Regmergefile = "fps-kde-ucd.txt"; End File gid_File_Bin_KdeFilePicker BIN_FILE_BODY; @@ -589,35 +552,31 @@ End File gid_File_Lib_Fps_Aqua TXT_FILE_BODY; Styles = (PACKED); - RegistryID = gid_Starregistry_Services_Rdb; Dir = SCP2_OOO_BIN_DIR; Name = SPECIAL_COMPONENT_LIB_NAME(fps_aqua.uno); - Regmergefile = "fps-aqua-ucd.txt"; End File gid_File_Lib_MacOSXSpell TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Name = LIBNAME(MacOSXSpell); Dir = SCP2_OOO_BIN_DIR; End File gid_File_Lib_avmediaQuickTime TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Name = LIBNAME(avmediaQuickTime); Dir = SCP2_OOO_BIN_DIR; End #endif #ifdef WNT -SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Fps_ODMA, fps_odma.uno ) +SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Fps_ODMA, fps_odma.uno ) #endif -SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Fps_Office, fps_office.uno ) -SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Fpicker, fpicker.uno ) +SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Fps_Office, fps_office.uno ) +SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Fpicker, fpicker.uno ) #if (defined(ENABLE_CAIRO) && ! defined (SYSTEM_CAIRO)) @@ -658,16 +617,15 @@ End #endif -STD_UNO_LIB_FILE( gid_File_Lib_Frm , frm) +STD_LIB_FILE( gid_File_Lib_Frm , frm) -SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Fsstorage, fsstorage.uno ) +SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Fsstorage, fsstorage.uno ) #ifdef WNT File gid_File_Lib_Ftransl TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; Name = "ftransl.dll"; End @@ -681,14 +639,13 @@ STD_LIB_FILE( gid_File_Lib_Fwi , fwi) File gid_File_Lib_Fwk Name = LIBNAME(fwk); TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; - RegistryID = gid_Starregistry_Services_Rdb; End -STD_UNO_LIB_FILE( gid_File_Lib_Fwl , fwl) +STD_LIB_FILE( gid_File_Lib_Fwl , fwl) -STD_UNO_LIB_FILE( gid_File_Lib_Fwm , fwm) +STD_LIB_FILE( gid_File_Lib_Fwm , fwm) #ifdef WNT File gid_File_Lib_Gdiplus @@ -699,14 +656,13 @@ File gid_File_Lib_Gdiplus End #endif -SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Hatchwindowfactory, hatchwindowfactory.uno ) +SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Hatchwindowfactory, hatchwindowfactory.uno ) STD_LIB_FILE( gid_File_Lib_Helplinker, helplinker) File gid_File_Lib_I18npool TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(i18npool.uno,UNXSUFFIX)); @@ -728,8 +684,7 @@ End File gid_File_Lib_I18nsearch TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(i18nsearch.uno,UNXSUFFIX)); @@ -810,15 +765,14 @@ End #ifdef SOLAR_JAVA -STD_UNO_LIB_FILE( gid_File_Lib_Jdbc, jdbc) +STD_LIB_FILE( gid_File_Lib_Jdbc, jdbc) #endif #ifdef SOLAR_JAVA File gid_File_Lib_Hsqldb_2 TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(libhsqldb,UNXSUFFIX)); @@ -884,7 +838,7 @@ End #endif -STD_UNO_LIB_FILE( gid_File_Lib_Lng, lng) +STD_LIB_FILE( gid_File_Lib_Lng, lng) File gid_File_Lib_Localedata_En TXT_FILE_BODY; @@ -932,8 +886,7 @@ End File gid_File_Lib_Mcnttype TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(libmcnttype,UNXSUFFIX)); @@ -944,15 +897,14 @@ End #if !defined(SYSTEM_MOZILLA) && !defined(WITHOUT_MOZILLA) && !defined(MACOSX) // #i91209# -STD_UNO_LIB_FILE(gid_File_Lib_Mozab,mozab) +STD_LIB_FILE(gid_File_Lib_Mozab,mozab) STD_LIB_FILE(gid_File_Lib_Mozabdrv,mozabdrv) #else File gid_File_Lib_Mozbootstrap TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(libmozbootstrap,UNXSUFFIX)); @@ -963,15 +915,15 @@ End #endif -STD_UNO_LIB_FILE(gid_File_Lib_Wpft,wpft) +STD_LIB_FILE(gid_File_Lib_Wpft,wpft) -STD_UNO_LIB_FILE(gid_File_Lib_Msworks,msworks) +STD_LIB_FILE(gid_File_Lib_Msworks,msworks) -STD_UNO_LIB_FILE(gid_File_Lib_T602Filter,t602filter) +STD_LIB_FILE(gid_File_Lib_T602Filter,t602filter) -STD_UNO_LIB_FILE(gid_File_Lib_Wlwp,lwpft) +STD_LIB_FILE(gid_File_Lib_Wlwp,lwpft) -STD_UNO_LIB_FILE(gid_File_Lib_Writerfilter,writerfilter) +STD_LIB_FILE(gid_File_Lib_Writerfilter,writerfilter) #ifdef WNT #if defined(_gcc3) @@ -1080,12 +1032,12 @@ End #endif #endif -STD_UNO_LIB_FILE(gid_File_Lib_Mysql,mysql) -STD_UNO_LIB_FILE(gid_File_Lib_Odbc,odbc) +STD_LIB_FILE(gid_File_Lib_Mysql,mysql) +STD_LIB_FILE(gid_File_Lib_Odbc,odbc) // STD_LIB_FILE( gid_File_Lib_Ofa , ofa) -STD_UNO_LIB_FILE( gid_File_Lib_Offacc, offacc) +STD_LIB_FILE( gid_File_Lib_Offacc, offacc) #ifdef SOLAR_JAVA #ifndef MACOSX @@ -1108,23 +1060,22 @@ End File gid_File_Lib_Ole TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; Name = "oleautobridge.uno.dll"; End #endif -SPECIAL_UNO_LIB_FILE(gid_File_Lib_Package2,package2) +SPECIAL_LIB_FILE(gid_File_Lib_Package2,package2) -SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Passwordcontainer, passwordcontainer.uno ) +SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Passwordcontainer, passwordcontainer.uno ) -STD_UNO_LIB_FILE( gid_File_Lib_Pcr, pcr) +STD_LIB_FILE( gid_File_Lib_Pcr, pcr) -STD_UNO_LIB_FILE( gid_File_Lib_Log, log) +STD_LIB_FILE( gid_File_Lib_Log, log) -STD_UNO_LIB_FILE( gid_File_Lib_Pdffilter, pdffilter) +STD_LIB_FILE( gid_File_Lib_Pdffilter, pdffilter) File gid_File_Lib_Deployment #if defined UNX @@ -1132,7 +1083,7 @@ File gid_File_Lib_Deployment #else Name = STRING(CONCAT3(deployment,DLLPOSTFIX,.uno.dll)); #endif - PACKED_UNO_LIB_FILE_BODY; + PACKED_LIB_FILE_BODY; End File gid_File_Lib_DeploymentGui @@ -1141,18 +1092,18 @@ File gid_File_Lib_DeploymentGui #else Name = STRING(CONCAT3(deploymentgui,DLLPOSTFIX,.uno.dll)); #endif - PACKED_UNO_LIB_FILE_BODY; + PACKED_LIB_FILE_BODY; End STD_LIB_FILE(gid_File_Lib_DeploymentMisc, deploymentmisc) #ifndef WITHOUT_MOZILLA -STD_UNO_LIB_FILE( gid_File_Lib_Pl , pl) +STD_LIB_FILE( gid_File_Lib_Pl , pl) #endif -STD_UNO_LIB_FILE( gid_File_Lib_Preload, preload) +STD_LIB_FILE( gid_File_Lib_Preload, preload) -SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Productregistration, productregistration.uno ) +SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Productregistration, productregistration.uno ) #if defined(UNX) && ! defined(QUARTZ) File gid_File_Lib_Desktop_Detector @@ -1270,15 +1221,13 @@ End File gid_File_Lib_Res Name = LIBNAME(res); TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; - RegistryID = gid_Starregistry_Services_Rdb; End File gid_File_Lib_Sax_Uno TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT,DONT_OVERWRITE); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED,DONT_OVERWRITE); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(sax.uno,UNXSUFFIX)); @@ -1289,8 +1238,7 @@ End File gid_File_Lib_Fastsax_Uno TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT,DONT_OVERWRITE); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED,DONT_OVERWRITE); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(fastsax.uno,UNXSUFFIX)); @@ -1301,11 +1249,11 @@ End STD_LIB_FILE( gid_File_Lib_Sax , sax) -STD_UNO_LIB_FILE( gid_File_Lib_Oox , oox) +STD_LIB_FILE( gid_File_Lib_Oox , oox) -STD_UNO_LIB_FILE( gid_File_Lib_Sb , sb) +STD_LIB_FILE( gid_File_Lib_Sb , sb) -STD_UNO_LIB_FILE( gid_File_Lib_Scn, scn) +STD_LIB_FILE( gid_File_Lib_Scn, scn) File gid_File_Lib_Scriptframe TXT_FILE_BODY; @@ -1318,18 +1266,16 @@ File gid_File_Lib_Scriptframe #else Name = "scriptframe.dll"; #endif - RegistryID = gid_Starregistry_Services_Rdb; Dir = SCP2_OOO_BIN_DIR; - Styles = (PACKED,UNO_COMPONENT); + Styles = (PACKED); End -STD_UNO_LIB_FILE( gid_File_Lib_Sd , sd) +STD_LIB_FILE( gid_File_Lib_Sd , sd) STD_LIB_FILE( gid_File_Lib_Sdui, sdui) File gid_File_Lib_Slideshow TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(slideshow.uno,UNXSUFFIX)); @@ -1340,8 +1286,7 @@ End File gid_File_Lib_Sdbc_2 TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(libsdbc2,UNXSUFFIX)); @@ -1350,16 +1295,15 @@ File gid_File_Lib_Sdbc_2 #endif End -STD_UNO_LIB_FILE( gid_File_Lib_Sdd , sdd) +STD_LIB_FILE( gid_File_Lib_Sdd , sdd) -STD_UNO_LIB_FILE( gid_File_Lib_Sf_Prothdlr, protocolhandler ) +STD_LIB_FILE( gid_File_Lib_Sf_Prothdlr, protocolhandler ) File gid_File_Lib_Sfx Name = LIBNAME(sfx); TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; - RegistryID = gid_Starregistry_Services_Rdb; End #ifdef WNT @@ -1377,15 +1321,14 @@ End File gid_File_Lib_Smplmail TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; Name = "smplmail.uno.dll"; End #endif -STD_UNO_LIB_FILE( gid_File_Lib_Sot, sot ) +STD_LIB_FILE( gid_File_Lib_Sot, sot ) #if defined(UNX) && !defined(QUARTZ) @@ -1400,66 +1343,63 @@ End File gid_File_Lib_Spell TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Name = LIBNAME(spell); Dir = SCP2_OOO_BIN_DIR; End -STD_UNO_LIB_FILE( gid_File_Lib_Spl, spl) +STD_LIB_FILE( gid_File_Lib_Spl, spl) #if defined ENABLE_UNIX_QUICKSTARTER -STD_UNO_LIB_FILE( gid_File_Lib_Spl_Unx, spl_unx) +STD_LIB_FILE( gid_File_Lib_Spl_Unx, spl_unx) #endif -SPECIAL_UNO_LIB_FILE(gid_File_Lib_Srtrs1,srtrs1) +SPECIAL_LIB_FILE(gid_File_Lib_Srtrs1,srtrs1) STD_LIB_FILE( gid_File_Lib_Sts , sts) -STD_UNO_LIB_FILE( gid_File_Lib_Svl, svl ) -STD_UNO_LIB_FILE( gid_File_Lib_Svtools, svt ) +STD_LIB_FILE( gid_File_Lib_Svl, svl ) +STD_LIB_FILE( gid_File_Lib_Svtools, svt ) -STD_UNO_LIB_FILE( gid_File_Lib_Svx_Core, svxcore) -STD_UNO_LIB_FILE( gid_File_Lib_Svx, svx) -STD_UNO_LIB_FILE( gid_File_Lib_TextConversionDlgs, textconversiondlgs) +STD_LIB_FILE( gid_File_Lib_Svx_Core, svxcore) +STD_LIB_FILE( gid_File_Lib_Svx, svx) +STD_LIB_FILE( gid_File_Lib_TextConversionDlgs, textconversiondlgs) STD_LIB_FILE( gid_File_Lib_Editeng, editeng) STD_LIB_FILE( gid_File_Lib_Msfilter, msfilter) -STD_UNO_LIB_FILE( gid_File_Lib_Sw , sw) +STD_LIB_FILE( gid_File_Lib_Sw , sw) STD_LIB_FILE( gid_File_Lib_Swui, swui) -STD_UNO_LIB_FILE( gid_File_Lib_Msword, msword ) +STD_LIB_FILE( gid_File_Lib_Msword, msword ) #if ! defined UNX File gid_File_Lib_Sysdtrans TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; Name = "sysdtrans.dll"; End #endif -SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Syssh, syssh.uno ) -SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Localebe, localebe1.uno ) +SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Syssh, syssh.uno ) +SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Localebe, localebe1.uno ) #ifdef WNT -SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Wininetbe, wininetbe1.uno ) +SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Wininetbe, wininetbe1.uno ) #endif #ifdef MACOSX -SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Macbe, macbe1.uno ) +SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Macbe, macbe1.uno ) #endif -STD_UNO_LIB_FILE( gid_File_Lib_Tk, tk ) +STD_LIB_FILE( gid_File_Lib_Tk, tk ) STD_LIB_FILE( gid_File_Lib_Acc, acc ) STD_LIB_FILE( gid_File_Lib_Tools, tl ) File gid_File_Lib_Tvhlp1 TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(libtvhlp1,UNXSUFFIX)); @@ -1470,8 +1410,7 @@ End File gid_File_Lib_Ucb1 TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(libucb1,UNXSUFFIX)); @@ -1499,90 +1438,83 @@ File gid_File_Lib_Ucpchelp1 Name = "ucpchelp1.dll"; #endif Dir = SCP2_OOO_BIN_DIR; - Styles = (PACKED, UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); End #ifndef DISABLE_NEON -SPECIAL_UNO_LIB_FILE(gid_File_Lib_Ucpdav1,ucpdav1) +SPECIAL_LIB_FILE(gid_File_Lib_Ucpdav1,ucpdav1) #ifndef SYSTEM_NEON SPECIAL_LIB_FILE(gid_File_Lib_Neon,neon) #endif #endif -SPECIAL_UNO_LIB_FILE(gid_File_Lib_Ucpfile1,ucpfile1) +SPECIAL_LIB_FILE(gid_File_Lib_Ucpfile1,ucpfile1) -SPECIAL_UNO_LIB_FILE(gid_File_Lib_Ucpftp1,ucpftp1) +SPECIAL_LIB_FILE(gid_File_Lib_Ucpftp1,ucpftp1) -SPECIAL_UNO_LIB_FILE(gid_File_Lib_Ucphier1,ucphier1) +SPECIAL_LIB_FILE(gid_File_Lib_Ucphier1,ucphier1) -SPECIAL_UNO_LIB_FILE(gid_File_Lib_Ucppkg1,ucppkg1) +SPECIAL_LIB_FILE(gid_File_Lib_Ucppkg1,ucppkg1) -SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Ucptdoc1, ucptdoc1.uno) +SPECIAL_COMPONENT_LIB_FILE(gid_File_Ucptdoc1, ucptdoc1.uno) -SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Ucpext, ucpext.uno) +SPECIAL_COMPONENT_LIB_FILE(gid_File_Ucpext, ucpext.uno) -SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Ucpexpand1, ucpexpand1.uno) +SPECIAL_COMPONENT_LIB_FILE(gid_File_Ucpexpand1, ucpexpand1.uno) #ifdef WNT -SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Ucpodma1, ucpodma1) +SPECIAL_COMPONENT_LIB_FILE(gid_File_Ucpodma1, ucpodma1) #endif File gid_File_Lib_Lnth TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Name = LIBNAME(lnth); Dir = SCP2_OOO_BIN_DIR; End File gid_File_Lib_Hyph TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Name = LIBNAME(hyphen); Dir = SCP2_OOO_BIN_DIR; End -STD_UNO_LIB_FILE( gid_File_Lib_Utl , utl) +STD_LIB_FILE( gid_File_Lib_Utl , utl) -STD_UNO_LIB_FILE( gid_File_Lib_Uui, uui ) +STD_LIB_FILE( gid_File_Lib_Uui, uui ) STD_LIB_FILE( gid_File_Lib_BaseGfx, basegfx ) File gid_File_Lib_Vcl Name = LIBNAME(vcl); TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; - RegistryID = gid_Starregistry_Services_Rdb; End -// STD_UNO_LIB_FILE( gid_File_Lib_Wrp, wrp) - -STD_UNO_LIB_FILE( gid_File_Lib_Xcr, xcr) -STD_UNO_LIB_FILE( gid_File_Lib_Xmx , xmx) -STD_UNO_LIB_FILE( gid_File_Lib_Xof , xof) +STD_LIB_FILE( gid_File_Lib_Xcr, xcr) +STD_LIB_FILE( gid_File_Lib_Xmx , xmx) +STD_LIB_FILE( gid_File_Lib_Xof , xof) File gid_File_Lib_Xo Name = LIBNAME(xo); TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; - RegistryID = gid_Starregistry_Services_Rdb; End -SPECIAL_UNO_LIB_FILE(gid_File_Lib_Xstor,xstor) +SPECIAL_LIB_FILE(gid_File_Lib_Xstor,xstor) -STD_UNO_LIB_FILE( gid_File_Lib_Xsltdlg, xsltdlg ) -STD_UNO_LIB_FILE( gid_File_Lib_Xsltfilter, xsltfilter ) -STD_UNO_LIB_FILE( gid_File_Lib_Xmlfa, xmlfa ) -STD_UNO_LIB_FILE( gid_File_Lib_Xmlfd, xmlfd ) -STD_UNO_LIB_FILE( gid_File_Lib_Odfflatxml, odfflatxml ) +STD_LIB_FILE( gid_File_Lib_Xsltdlg, xsltdlg ) +STD_LIB_FILE( gid_File_Lib_Xsltfilter, xsltfilter ) +STD_LIB_FILE( gid_File_Lib_Xmlfa, xmlfa ) +STD_LIB_FILE( gid_File_Lib_Xmlfd, xmlfd ) +STD_LIB_FILE( gid_File_Lib_Odfflatxml, odfflatxml ) #ifdef SOLAR_JAVA -UNO_JAR_FILE( gid_File_Jar_Xsltfilter, XSLTFilter ) -UNO_JAR_FILE( gid_File_Jar_Xsltvalidate, XSLTValidate ) +STD_JAR_FILE( gid_File_Jar_Xsltfilter, XSLTFilter ) +STD_JAR_FILE( gid_File_Jar_Xsltvalidate, XSLTValidate ) #endif #ifndef SYSTEM_LIBXSLT @@ -1607,21 +1539,21 @@ End #endif -STD_UNO_LIB_FILE( gid_File_Lib_Unoxml, unoxml ) +STD_LIB_FILE( gid_File_Lib_Unoxml, unoxml ) // AVMedia -STD_UNO_LIB_FILE( gid_File_Lib_AVMedia, avmedia ) +STD_LIB_FILE( gid_File_Lib_AVMedia, avmedia ) #ifdef GSTREAMER -SPECIAL_UNO_LIB_FILE_PATCH( gid_File_Lib_AVMediaGStreamer, avmediagst ) +SPECIAL_LIB_FILE_PATCH( gid_File_Lib_AVMediaGStreamer, avmediagst ) #else #if defined UNX #ifdef SOLAR_JAVA -UNO_JAR_FILE( gid_File_Jar_AVmedia, avmedia ) +STD_JAR_FILE( gid_File_Jar_AVmedia, avmedia ) #endif #elif defined WNT #ifdef ENABLE_DIRECTX -SPECIAL_UNO_LIB_FILE( gid_File_Lib_AVMediaWin, avmediawin ) +SPECIAL_LIB_FILE( gid_File_Lib_AVMediaWin, avmediawin ) #endif #endif #endif @@ -1635,8 +1567,7 @@ File gid_File_Lib_XSec_Framework Name = "xsec_fw.dll"; #endif Dir = SCP2_OOO_BIN_DIR; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); End File gid_File_Lib_XSec_XmlSec @@ -1647,8 +1578,7 @@ File gid_File_Lib_XSec_XmlSec Name = "xsec_xmlsec.dll"; #endif Dir = SCP2_OOO_BIN_DIR; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); End File gid_File_Lib_XSec_XMLSecurity @@ -1659,8 +1589,7 @@ File gid_File_Lib_XSec_XMLSecurity Name = "xmlsecurity.dll"; #endif Dir = SCP2_OOO_BIN_DIR; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); End #ifdef WNT @@ -1692,8 +1621,7 @@ End File gid_File_Lib_Migrationoo2 TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(migrationoo2.uno,UNXSUFFIX)); @@ -1704,8 +1632,7 @@ End File gid_File_Lib_Migrationoo3 TXT_FILE_BODY; - Styles = (PACKED,UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; + Styles = (PACKED); Dir = SCP2_OOO_BIN_DIR; #ifdef UNX Name = STRING(CONCAT2(migrationoo3.uno,UNXSUFFIX)); @@ -1727,11 +1654,11 @@ File gid_File_Lib_Libtextcat End #endif -STD_UNO_LIB_FILE( gid_File_Lib_Guesslang, guesslang ) +STD_LIB_FILE( gid_File_Lib_Guesslang, guesslang ) -STD_UNO_LIB_FILE( gid_File_Lib_Updchkui , updchk ) +STD_LIB_FILE( gid_File_Lib_Updchkui , updchk ) -SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Updatefeed , updatefeed.uno ) +SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Updatefeed , updatefeed.uno ) #ifdef WNT File gid_File_Lib_Onlinecheck @@ -1779,7 +1706,7 @@ File gid_File_Lib_Unopkgapp Styles = (PACKED); End -STD_UNO_LIB_FILE( gid_File_Lib_Oooimprovecore , oooimprovecore) +STD_LIB_FILE( gid_File_Lib_Oooimprovecore , oooimprovecore) #if defined WNT && !defined _gcc3 && !defined SYSTEM_MOZILLA && !defined WITHOUT_MOZILLA && \ !(defined M1400 && defined PROF_EDITION && !defined _DEBUG_RUNTIME) @@ -1864,9 +1791,9 @@ File gid_File_Lib_Rdf End #endif // SYSTEM_REDLAND -STD_UNO_LIB_FILE(gid_File_Lib_Unordf, unordf) +STD_LIB_FILE(gid_File_Lib_Unordf, unordf) -STD_UNO_LIB_FILE( gid_File_Lib_For, for) +STD_LIB_FILE( gid_File_Lib_For, for) STD_LIB_FILE( gid_File_Lib_Forui, forui) diff --git a/scp2/source/ooo/file_ooo.scp b/scp2/source/ooo/file_ooo.scp index 9719cb2a8603..0c3392e4dc9e 100644 --- a/scp2/source/ooo/file_ooo.scp +++ b/scp2/source/ooo/file_ooo.scp @@ -135,35 +135,6 @@ End #endif #endif -File gid_File_Bin_Gengal - BIN_FILE_BODY; - Dir = gid_Dir_Program; - Styles = (PACKED); - #ifdef UNX - Name = "gengal.bin"; - #else - Name = "gengal.exe"; - #endif -End - -#ifdef UNX - -File gid_File_Script_Gengal - BIN_FILE_BODY; - Dir = gid_Dir_Program; - Styles = (PACKED); - Name = "gengal"; -End - -#endif - -File gid_File_Profile_Gengal - BIN_FILE_BODY; - Dir = gid_Dir_Program; - Styles = (PACKED); - Name = PROFILENAME(gengal); -End - #if !defined(WITHOUT_MOZILLA) && defined(UNX) && !defined(QUARTZ) File gid_File_Bin_Pluginapp @@ -391,12 +362,6 @@ STD_FILTER_FILE( gid_File_Filter_Iti, iti) STD_RES_FILE( gid_File_Res_Eps, eps ) -STD_RES_FILE( gid_File_Res_Egi, egi ) - -STD_RES_FILE( gid_File_Res_Ept, ept ) - -STD_RES_FILE( gid_File_Res_Eme, eme ) - File gid_File_Help_Common_Zip Dir = gid_Dir_Help_Isolanguage; ARCHIVE_TXT_FILE_BODY_HELPPACK; @@ -423,14 +388,13 @@ File gid_File_Help_Schart_Zip EXTRA_ALL_GOOD_HELP_LOCALIZATIONS_LANG(schart); End -#if defined SOLAR_JAVA && defined INCLUDE_JAVA_ACCESSBRIDGE && defined WNT +#if defined WNT File gid_File_Jar_Accessbridge TXT_FILE_BODY; Name = "java_uno_accessbridge.jar"; - RegistryID = gid_Starregistry_Services_Rdb; Dir = gid_Dir_Classes; - Styles = (PACKED,DONT_OVERWRITE,UNO_COMPONENT); + Styles = (PACKED,DONT_OVERWRITE); End #endif @@ -449,7 +413,7 @@ STD_JAR_FILE( gid_File_Jar_Lucene_Analyzers, lucene-analyzers-2.3 ) #endif #ifdef SOLAR_JAVA -UNO_JAR_FILE( gid_File_Jar_Lucenehelpwrapper, LuceneHelpWrapper ) +STD_JAR_FILE( gid_File_Jar_Lucenehelpwrapper, LuceneHelpWrapper ) #endif #ifdef SOLAR_JAVA @@ -469,14 +433,14 @@ End #ifdef SOLAR_JAVA -UNO_JAR_FILE( gid_File_Jar_Report, report ) -UNO_JAR_FILE( gid_File_Jar_Table, table ) -UNO_JAR_FILE( gid_File_Jar_Letter, letter ) -UNO_JAR_FILE( gid_File_Jar_Form, form ) -UNO_JAR_FILE( gid_File_Jar_Fax, fax ) -UNO_JAR_FILE( gid_File_Jar_Agenda, agenda ) -UNO_JAR_FILE( gid_File_Jar_Query, query ) -UNO_JAR_FILE( gid_File_Jar_Web, web ) +STD_JAR_FILE( gid_File_Jar_Report, report ) +STD_JAR_FILE( gid_File_Jar_Table, table ) +STD_JAR_FILE( gid_File_Jar_Letter, letter ) +STD_JAR_FILE( gid_File_Jar_Form, form ) +STD_JAR_FILE( gid_File_Jar_Fax, fax ) +STD_JAR_FILE( gid_File_Jar_Agenda, agenda ) +STD_JAR_FILE( gid_File_Jar_Query, query ) +STD_JAR_FILE( gid_File_Jar_Web, web ) #endif #ifdef SOLAR_JAVA @@ -496,8 +460,8 @@ End #endif #ifdef SOLAR_JAVA -UNO_JAR_FILE( gid_File_Jar_Scriptframework, ScriptFramework ) -UNO_JAR_FILE( gid_File_Jar_Scriptproviderforjava, ScriptProviderForJava ) +STD_JAR_FILE( gid_File_Jar_Scriptframework, ScriptFramework ) +STD_JAR_FILE( gid_File_Jar_Scriptproviderforjava, ScriptProviderForJava ) #endif #ifdef SOLAR_JAVA @@ -927,9 +891,16 @@ File gid_File_Lm_Scots_Gaelic Styles = (PACKED); End -File gid_File_Lm_Serbian_Ascii +File gid_File_Lm_Serbian TXT_FILE_BODY; - Name = "serbian_ascii.lm"; + Name = "serbian.lm"; + Dir = gid_Dir_Share_Fingerprint; + Styles = (PACKED); +End + +File gid_File_Lm_Serbian_Latin + TXT_FILE_BODY; + Name = "serbian-latin.lm"; Dir = gid_Dir_Share_Fingerprint; Styles = (PACKED); End @@ -1183,23 +1154,12 @@ File gid_File_Rdb_Offapi Name = "offapi.rdb"; End -#if defined ENABLE_VBA -#ifndef VBA_EXTENSION File gid_File_Rdb_TypesVba TXT_FILE_BODY; Dir = gid_Dir_Program; Styles = (PACKED, OVERWRITE); Name = "oovbaapi.rdb"; End -#else -File gid_File_ExtnVba - TXT_FILE_BODY; - Dir = gid_Dir_Program; - Styles = (PACKED, OVERWRITE); - Name = "vbaapi.oxt"; -End -#endif -#endif File gid_File_Registry_Lang Dir = gid_Dir_Share_Registry_Res; @@ -1711,13 +1671,7 @@ File gid_Starregistry_Services_Rdb TXT_FILE_BODY; Name = "services.rdb"; Dir = gid_Dir_Program; - Styles = (PACKED, STARREGISTRY); -#if defined WNT - NativeServicesURLPrefix = "vnd.sun.star.expand:$BRAND_BASE_DIR/program/"; -#else - NativeServicesURLPrefix = "vnd.sun.star.expand:$OOO_BASE_DIR/program/"; -#endif - JavaServicesURLPrefix = "vnd.sun.star.expand:$OOO_BASE_DIR/program/classes/"; + Styles = (PACKED); End #ifdef LINUX @@ -1830,9 +1784,8 @@ End File gid_File_Jar_Productregistration TXT_FILE_BODY; Name = "productregistration.jar"; - RegistryID = gid_Starregistry_Services_Rdb; Dir = gid_Dir_Classes; - Styles = (PACKED,UNO_COMPONENT); + Styles = (PACKED); End #endif diff --git a/scp2/source/ooo/file_resource_ooo.scp b/scp2/source/ooo/file_resource_ooo.scp index 5e4a2b0ff089..cbd8ff609721 100644 --- a/scp2/source/ooo/file_resource_ooo.scp +++ b/scp2/source/ooo/file_resource_ooo.scp @@ -45,12 +45,6 @@ STD_RES_FILE( gid_File_Res_Dbw, dbw ) STD_RES_FILE( gid_File_Res_Dkt, dkt) -STD_RES_FILE( gid_File_Res_Epb, epb ) - -STD_RES_FILE( gid_File_Res_Epg, epg ) - -STD_RES_FILE( gid_File_Res_Epp, epp ) - STD_RES_FILE( gid_File_Res_Eur, eur ) STD_RES_FILE( gid_File_Res_Frm, frm) @@ -95,10 +89,9 @@ STD_RES_FILE( gid_File_Res_Spa, spa ) STD_RES_FILE( gid_File_Res_Stt, stt ) STD_RES_FILE( gid_File_Res_Sb, sb ) -STD_RES_FILE( gid_File_Res_Svs, svs ) +STD_RES_FILE( gid_File_Res_Svl, svl ) STD_RES_FILE( gid_File_Res_Svt, svt ) -STD_RES_FILE_ONLY( gid_File_Res_Svp, svp ) STD_RES_FILE( gid_File_Res_Svx, svx ) STD_RES_FILE( gid_File_Res_Editeng, editeng ) diff --git a/scp2/source/ooo/makefile.mk b/scp2/source/ooo/makefile.mk index fc3034c8b2ab..329cf375d570 100644 --- a/scp2/source/ooo/makefile.mk +++ b/scp2/source/ooo/makefile.mk @@ -52,9 +52,6 @@ SCPDEFS+=-DBUILD_X64 .IF "$(ENABLE_OPENGL)"=="TRUE" SCPDEFS+=-DENABLE_OPENGL .ENDIF - -SCPDEFS+=-DINCLUDE_JAVA_ACCESSBRIDGE - .IF "$(PROF_EDITION)"!="" SCPDEFS+=-DPROF_EDITION .ENDIF @@ -221,13 +218,6 @@ SCPDEFS+=-DSYSTEM_NEON SCPDEFS+=-DOPENSSL .ENDIF -.IF "$(ENABLE_VBA)" == "YES" - .IF "$(VBA_EXTENSION)" == "YES" - SCPDEFS+=-DVBA_EXTENSION - .ENDIF -SCPDEFS+=-DENABLE_VBA -.ENDIF - .IF "$(DISABLE_ATL)"!="" SCPDEFS+=-DDISABLE_ATL .ENDIF diff --git a/scp2/source/ooo/module_hidden_ooo.scp b/scp2/source/ooo/module_hidden_ooo.scp index b73a5b5be620..faa50a3d71c5 100644 --- a/scp2/source/ooo/module_hidden_ooo.scp +++ b/scp2/source/ooo/module_hidden_ooo.scp @@ -211,7 +211,6 @@ Module gid_Module_Root_Files_4 gid_File_Lib_Sdbt, gid_File_Lib_Dbmm, gid_File_Lib_Dba, - gid_File_Lib_Dbacfg, gid_File_Lib_Dbase2, gid_File_Lib_Dbaxml, gid_File_Lib_Dbt, @@ -649,7 +648,8 @@ Module gid_Module_Root_Files_6 gid_File_Lm_Sanskrit, gid_File_Lm_Scots, gid_File_Lm_Scots_Gaelic, - gid_File_Lm_Serbian_Ascii, + gid_File_Lm_Serbian, + gid_File_Lm_Serbian_Latin, gid_File_Lm_Slovak_Ascii, gid_File_Lm_Slovenian, gid_File_Lm_Spanish, diff --git a/scp2/source/ooo/module_lang_template.scp b/scp2/source/ooo/module_lang_template.scp index 8cfc353729d5..bfe1162976fd 100755 --- a/scp2/source/ooo/module_lang_template.scp +++ b/scp2/source/ooo/module_lang_template.scp @@ -64,9 +64,6 @@ Module gid_Module_Langpack_Resource_Template gid_File_Res_Dbw, gid_File_Res_Dkt, gid_File_Res_Editeng, - gid_File_Res_Epb, - gid_File_Res_Epg, - gid_File_Res_Epp, gid_File_Res_Eur, gid_File_Res_For, gid_File_Res_Forui, @@ -87,9 +84,8 @@ Module gid_Module_Langpack_Resource_Template gid_File_Res_Sd, gid_File_Res_Sfx, gid_File_Res_Spa, - gid_File_Res_Svs, + gid_File_Res_Svl, gid_File_Res_Svt, - gid_File_Res_Svp, gid_File_Res_Svx, gid_File_Res_Cui, gid_File_Res_TextConversionDlgs, @@ -108,9 +104,6 @@ Module gid_Module_Langpack_Resource_Template gid_File_Res_Stt, gid_File_Res_Tfu, gid_File_Res_Eps, - gid_File_Res_Egi, - gid_File_Res_Ept, - gid_File_Res_Eme, gid_File_Res_UpdChk, gid_File_Res_Upd); End diff --git a/scp2/source/ooo/module_langpack.ulf b/scp2/source/ooo/module_langpack.ulf index f2771c2332be..4878a790b040 100644 --- a/scp2/source/ooo/module_langpack.ulf +++ b/scp2/source/ooo/module_langpack.ulf @@ -697,11 +697,11 @@ en-US = "Mongolian" [STR_DESC_MODULE_LANGPACK_MN] en-US = "Installs Mongolian support in %PRODUCTNAME %PRODUCTVERSION" -[STR_NAME_MODULE_LANGPACK_MY] -en-US = "Burmese" +[STR_NAME_MODULE_LANGPACK_OC] +en-US = "Occitan" -[STR_DESC_MODULE_LANGPACK_MY] -en-US = "Installs Burmese (Myanmar) support in %PRODUCTNAME %PRODUCTVERSION" +[STR_DESC_MODULE_LANGPACK_OC] +en-US = "Installs Occitan support in %PRODUCTNAME %PRODUCTVERSION" [STR_NAME_MODULE_LANGPACK_BO] en-US = "Tibetan" diff --git a/scp2/source/ooo/ooo_brand.scp b/scp2/source/ooo/ooo_brand.scp index 74a9dc33a8f7..dcdf99b1718d 100644 --- a/scp2/source/ooo/ooo_brand.scp +++ b/scp2/source/ooo/ooo_brand.scp @@ -39,6 +39,13 @@ Directory gid_Dir_Brand_Root End #endif +File gid_Brand_File_ServicesRdb + TXT_FILE_BODY; + Dir = gid_Brand_Dir_Program; + Name = "/ooo/services.rdb"; + Styles = (PACKED); +End + ProfileItem gid_Brand_Profileitem_Bootstrap_Errorreport_Server ProfileID = gid_Brand_Profile_Bootstrap_Ini; ModuleID = gid_Module_Root_Brand; @@ -52,4 +59,3 @@ ProfileItem gid_Brand_Profileitem_Bootstrap_Errorreport_Server #endif End -BRAND_RES_FILE( gid_Brand_File_Res_Ooo, ooo ) diff --git a/scp2/source/ooo/profileitem_ooo.scp b/scp2/source/ooo/profileitem_ooo.scp index 724316ba6f5e..3c6dfefc1286 100644 --- a/scp2/source/ooo/profileitem_ooo.scp +++ b/scp2/source/ooo/profileitem_ooo.scp @@ -191,6 +191,16 @@ ProfileItem gid_Profileitem_Uno_Uno_Bundled_Extensions_User Value = "${$BRAND_BASE_DIR/program/" PROFILENAME(bootstrap) ":UserInstallation}/user/extensions/bundled"; End +ProfileItem gid_Profileitem_Uno_Uno_Bundled_Extensions_Prereg + ProfileID = gid_Profile_Uno_Ini; + ModuleID = gid_Module_Root; + Section = "Bootstrap"; + Order = 1; + Key = "BUNDLED_EXTENSIONS_PREREG"; + Value = "$BRAND_BASE_DIR/share/prereg/bundled"; +End + + ProfileItem gid_Profileitem_Uno_Uno_Shared_Packages ProfileID = gid_Profile_Uno_Ini; ModuleID = gid_Module_Root; @@ -287,6 +297,14 @@ ProfileItem gid_Profileitem_Fundamentalbasis_Uno_Bundled_Extensions_User Value = "${$ORIGIN/" PROFILENAME(uno) ":BUNDLED_EXTENSIONS_USER}"; End +ProfileItem gid_Profileitem_Fundamentalbasis_Uno_Bundled_Extensions_Prereg + ModuleID = gid_Module_Root; + ProfileID = gid_Profile_Fundamentalbasis_Ini; + Section = "Bootstrap"; + Key = "BUNDLED_EXTENSIONS_PREREG"; + Value = "${$ORIGIN/" PROFILENAME(uno) ":BUNDLED_EXTENSIONS_PREREG}"; +End + ProfileItem gid_Profileitem_Fundamentalbasis_Uno_Shared_Packages_Cache ModuleID = gid_Module_Root; ProfileID = gid_Profile_Fundamentalbasis_Ini; @@ -324,11 +342,7 @@ ProfileItem gid_Profileitem_Fundamentalbasis_Ure_More_Types ProfileID = gid_Profile_Fundamentalbasis_Ini; Section = "Bootstrap"; Key = "URE_MORE_TYPES"; -#if defined ENABLE_VBA && !defined VBA_EXTENSION Value = "$ORIGIN/offapi.rdb $ORIGIN/oovbaapi.rdb ${${$ORIGIN/" PROFILENAME(uno) ":PKG_UserUnoFile}:UNO_TYPES} ${${$ORIGIN/" PROFILENAME(uno) ":PKG_SharedUnoFile}:UNO_TYPES} ${${$ORIGIN/" PROFILENAME(uno) ":PKG_BundledUnoFile}:UNO_TYPES}"; -#else - Value = "$ORIGIN/offapi.rdb ${${$ORIGIN/" PROFILENAME(uno) ":PKG_UserUnoFile}:UNO_TYPES} ${${$ORIGIN/" PROFILENAME(uno) ":PKG_SharedUnoFile}:UNO_TYPES} ${${$ORIGIN/" PROFILENAME(uno) ":PKG_BundledUnoFile}:UNO_TYPES}"; -#endif End ProfileItem gid_Profileitem_Fundamentalbasis_Ure_More_Services diff --git a/scp2/source/ooo/ure.scp b/scp2/source/ooo/ure.scp index 0053abaaec9e..4e3e096eb592 100644 --- a/scp2/source/ooo/ure.scp +++ b/scp2/source/ooo/ure.scp @@ -356,23 +356,6 @@ Unixlink gid_Unixlink_File_Dl_Reg End #endif -File gid_File_Dl_Rmcxt - TXT_FILE_BODY; - Dir = SCP2_URE_DL_DIR; - Name = SCP2_URE_DL_VER("rmcxt", "3"); - Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); - // CompID = "E0C091E3-7C18-4C32-B9CF-4D95AC243801"; -End - -#ifdef AIX -Unixlink gid_Unixlink_File_Dl_Rmcxt - BIN_FILE_BODY; - Dir = SCP2_URE_DL_DIR; - Name = SCP2_URE_DL_NORMAL("rmcxt"); - Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); - Target = SCP2_URE_DL_VER("rmcxt", "3"); -End -#endif File gid_File_Dl_Store @@ -383,6 +366,16 @@ File gid_File_Dl_Store // CompID = "A5477BD7-89A3-44AF-8B42-9E28D55C8066"; End + +File gid_File_Dl_Xmlreader + TXT_FILE_BODY; + Dir = SCP2_URE_DL_DIR; + Name = SCP2_URE_DL_NORMAL("xmlreader"); + Styles = (PACKED); +End + + + #ifdef AIX Unixlink gid_Unixlink_File_Dl_Store BIN_FILE_BODY; @@ -484,14 +477,6 @@ Shortcut gid_Shortcut_Dl_JavaUno End #endif -File gid_File_Dl_UrpUno - TXT_FILE_BODY; - Dir = SCP2_URE_DL_DIR; - Name = SCP2_URE_DL_NORMAL("urp_uno"); - Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); - // CompID = "D9F647ED-8E6F-4F80-8D2B-A45372B6AB60"; -End - File gid_File_Dl_UnsafeUnoUno TXT_FILE_BODY; Dir = SCP2_URE_DL_DIR; @@ -768,35 +753,30 @@ File gid_File_Dl_Acceptor TXT_FILE_BODY; Dir = SCP2_URE_DL_DIR; Name = SCP2_URE_DL_BARE("acceptor.uno"); - Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID); - RegistryID = gid_Starregistry_Services_Rdb_Ure; + Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); // CompID = "31183C51-C9A4-4D7A-A2F4-103252E1FEB0"; End -File gid_File_Dl_Bootstrap +File gid_File_Dl_Binaryurp TXT_FILE_BODY; Dir = SCP2_URE_DL_DIR; - Name = SCP2_URE_DL_BARE("bootstrap.uno"); - Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID); - RegistryID = gid_Starregistry_Services_Rdb_Ure; - // CompID = "2620B307-25DB-498F-B2B8-46D928165331"; + Name = SCP2_URE_DL_BARE("binaryurp.uno"); + Styles = (PACKED); End -File gid_File_Dl_Bridgefac +File gid_File_Dl_Bootstrap TXT_FILE_BODY; Dir = SCP2_URE_DL_DIR; - Name = SCP2_URE_DL_BARE("bridgefac.uno"); - Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID); - RegistryID = gid_Starregistry_Services_Rdb_Ure; - // CompID = "E025163F-FE1E-4E8C-B0E5-49C08924A646"; + Name = SCP2_URE_DL_BARE("bootstrap.uno"); + Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); + // CompID = "2620B307-25DB-498F-B2B8-46D928165331"; End File gid_File_Dl_Connector TXT_FILE_BODY; Dir = SCP2_URE_DL_DIR; Name = SCP2_URE_DL_BARE("connector.uno"); - Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID); - RegistryID = gid_Starregistry_Services_Rdb_Ure; + Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); // CompID = "EBCE77E7-E244-40F6-96E2-5319D6571C5D"; End @@ -804,8 +784,7 @@ File gid_File_Dl_Introspection TXT_FILE_BODY; Dir = SCP2_URE_DL_DIR; Name = SCP2_URE_DL_BARE("introspection.uno"); - Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID); - RegistryID = gid_Starregistry_Services_Rdb_Ure; + Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); // CompID = "E99960CF-FE59-4332-A2AC-47418C3A17C1"; End @@ -813,8 +792,7 @@ File gid_File_Dl_Invocadapt TXT_FILE_BODY; Dir = SCP2_URE_DL_DIR; Name = SCP2_URE_DL_BARE("invocadapt.uno"); - Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID); - RegistryID = gid_Starregistry_Services_Rdb_Ure; + Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); // CompID = "77DDC112-1994-49D5-A086-FB16D4328AB9"; End @@ -822,8 +800,7 @@ File gid_File_Dl_Invocation TXT_FILE_BODY; Dir = SCP2_URE_DL_DIR; Name = SCP2_URE_DL_BARE("invocation.uno"); - Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID); - RegistryID = gid_Starregistry_Services_Rdb_Ure; + Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); // CompID = "A79ACB80-DA65-47CA-81BA-7CD9E191C84C"; End @@ -833,8 +810,7 @@ File gid_File_Dl_Javaloader TXT_FILE_BODY; Dir = SCP2_URE_DL_DIR; Name = SCP2_URE_DL_BARE("javaloader.uno"); - Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID); - RegistryID = gid_Starregistry_Services_Rdb_Ure; + Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); // CompID = "19A20968-E654-4E2C-9F58-7B66F07CA346"; End #endif @@ -844,8 +820,7 @@ File gid_File_Dl_Javavm TXT_FILE_BODY; Dir = SCP2_URE_DL_DIR; Name = SCP2_URE_DL_BARE("javavm.uno"); - Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID); - RegistryID = gid_Starregistry_Services_Rdb_Ure; + Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); // CompID = "F1266B2B-80AD-4248-A921-9161759FA4DA"; End #endif @@ -854,8 +829,7 @@ File gid_File_Dl_Namingservice TXT_FILE_BODY; Dir = SCP2_URE_DL_DIR; Name = SCP2_URE_DL_BARE("namingservice.uno"); - Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID); - RegistryID = gid_Starregistry_Services_Rdb_Ure; + Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); // CompID = "DD22BE3A-AD21-447D-B3A3-89B0FCDB0B31"; End @@ -863,8 +837,7 @@ File gid_File_Dl_Stocservices TXT_FILE_BODY; Dir = SCP2_URE_DL_DIR; Name = SCP2_URE_DL_BARE("stocservices.uno"); - Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID); - RegistryID = gid_Starregistry_Services_Rdb_Ure; + Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); // CompID = "EBF6BBDE-EC50-4FB8-A0D4-BEC58F1C8C07"; End @@ -872,8 +845,7 @@ File gid_File_Dl_Proxyfac TXT_FILE_BODY; Dir = SCP2_URE_DL_DIR; Name = SCP2_URE_DL_BARE("proxyfac.uno"); - Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID); - RegistryID = gid_Starregistry_Services_Rdb_Ure; + Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); // CompID = "A2CDDEC3-B9C7-48C9-AB35-65008777BC2F"; End @@ -881,26 +853,15 @@ File gid_File_Dl_Reflection TXT_FILE_BODY; Dir = SCP2_URE_DL_DIR; Name = SCP2_URE_DL_BARE("reflection.uno"); - Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID); - RegistryID = gid_Starregistry_Services_Rdb_Ure; + Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); // CompID = "601C7946-CFEB-4F56-9429-6D5963188DF3"; End -File gid_File_Dl_Remotebridge - TXT_FILE_BODY; - Dir = SCP2_URE_DL_DIR; - Name = SCP2_URE_DL_BARE("remotebridge.uno"); - Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID); - RegistryID = gid_Starregistry_Services_Rdb_Ure; - // CompID = "B440B28E-B7AD-40C7-89E1-1508CA798347"; -End - File gid_File_Dl_Streams TXT_FILE_BODY; Dir = SCP2_URE_DL_DIR; Name = SCP2_URE_DL_BARE("streams.uno"); - Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID); - RegistryID = gid_Starregistry_Services_Rdb_Ure; + Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); // CompID = "6028CF43-A9B7-40A8-8216-509CAB256A2B"; End @@ -908,8 +869,7 @@ File gid_File_Dl_Textinstream TXT_FILE_BODY; Dir = SCP2_URE_DL_DIR; Name = SCP2_URE_DL_BARE("textinstream.uno"); - Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID); - RegistryID = gid_Starregistry_Services_Rdb_Ure; + Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); // CompID = "DAA39D01-D9C5-40C4-94EC-9E4B2F94EABA"; End @@ -917,8 +877,7 @@ File gid_File_Dl_Textoutstream TXT_FILE_BODY; Dir = SCP2_URE_DL_DIR; Name = SCP2_URE_DL_BARE("textoutstream.uno"); - Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID); - RegistryID = gid_Starregistry_Services_Rdb_Ure; + Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); // CompID = "DD01EB0C-A119-43AE-9100-F7A595D099E4"; End @@ -926,8 +885,7 @@ File gid_File_Dl_Uuresolver TXT_FILE_BODY; Dir = SCP2_URE_DL_DIR; Name = SCP2_URE_DL_BARE("uuresolver.uno"); - Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID); - RegistryID = gid_Starregistry_Services_Rdb_Ure; + Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); // CompID = "377090E1-5008-424F-B0F6-A9EFC9F11206"; End @@ -1092,8 +1050,7 @@ File gid_File_Java_JuhJar TXT_FILE_BODY; Dir = gid_Dir_Ure_Java; Name = "juh.jar"; - Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID); - RegistryID = gid_Starregistry_Services_Rdb_Ure; + Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID); // CompID = "E77CC8B5-0345-4B7F-ABED-5EB9DC94E492"; End #endif @@ -1140,6 +1097,13 @@ File gid_File_Misc_TypesRdb // CompID = "E5086F6A-855B-4CAE-AD3A-A85A21C5AE44"; End +File gid_File_Misc_ServicesRdb + TXT_FILE_BODY; + Dir = gid_Dir_Ure_Misc; + Name = "/ure/services.rdb"; + Styles = (PACKED); +End + // Private Miscellaneous Files: #if defined SOLAR_JAVA @@ -1152,18 +1116,6 @@ File gid_File_Misc_JavavendorsXml End #endif -// StarRegistry File - -File gid_Starregistry_Services_Rdb_Ure - TXT_FILE_BODY; - Name = "services.rdb"; - Dir = gid_Dir_Ure_Misc; - Styles = (PACKED, STARREGISTRY, VERSION_INDEPENDENT_COMP_ID); - NativeServicesURLPrefix = "vnd.sun.star.expand:$URE_INTERNAL_LIB_DIR/"; - JavaServicesURLPrefix = "vnd.sun.star.expand:$URE_INTERNAL_JAVA_DIR/"; - // CompID = "F4BD7B0A-5A20-4167-9D10-18597C5F85AF"; -End - #if defined MACOSX Unixlink gid_Unixlink_Ure_Bin_Urelibs Dir = gid_Dir_Ure_Bin; @@ -1228,10 +1180,10 @@ Module gid_Module_Root_Ure_Hidden gid_File_Dl_Profile_Uno, gid_File_Dl_Reg, gid_Unixlink_File_Dl_Reg, - gid_File_Dl_Rmcxt, gid_Unixlink_File_Dl_Rmcxt, gid_File_Dl_Store, gid_Unixlink_File_Dl_Store, + gid_File_Dl_Xmlreader, gid_File_Dl_Jvmaccess, gid_Unixlink_File_Dl_Jvmaccess, gid_File_Dl_Jvmfwk, @@ -1241,7 +1193,6 @@ Module gid_Module_Root_Ure_Hidden gid_File_Dl_Profile_Jvmfwk3rc, gid_File_Dl_ComnameUno, gid_File_Dl_JavaUno, - gid_File_Dl_UrpUno, gid_File_Dl_UnsafeUnoUno, gid_File_Dl_AffineUnoUno, gid_File_Dl_LogUnoUno, @@ -1250,8 +1201,8 @@ Module gid_Module_Root_Ure_Hidden gid_File_Dl_Juh, gid_File_Dl_Juhx, gid_File_Dl_Acceptor, + gid_File_Dl_Binaryurp, gid_File_Dl_Bootstrap, - gid_File_Dl_Bridgefac, gid_File_Dl_Connector, gid_File_Dl_Introspection, gid_File_Dl_Invocadapt, @@ -1261,7 +1212,6 @@ Module gid_Module_Root_Ure_Hidden gid_File_Dl_Namingservice, gid_File_Dl_Proxyfac, gid_File_Dl_Reflection, - gid_File_Dl_Remotebridge, gid_File_Dl_Stocservices, gid_File_Dl_Streams, gid_File_Dl_Textinstream, @@ -1286,8 +1236,8 @@ Module gid_Module_Root_Ure_Hidden gid_File_Java_RidlJar, gid_File_Java_JavaUnoJar, gid_File_Misc_TypesRdb, - gid_File_Misc_JavavendorsXml, - gid_Starregistry_Services_Rdb_Ure); + gid_File_Misc_ServicesRdb, + gid_File_Misc_JavavendorsXml); Unixlinks = (gid_Unixlink_Ure_Bin_Urelibs, gid_Unixlink_File_Dl_Sal, gid_Unixlink_File_Dl_Salhelper, diff --git a/scp2/source/python/file_python.scp b/scp2/source/python/file_python.scp index ee2186bf5fc1..3a3a807ce62b 100644 --- a/scp2/source/python/file_python.scp +++ b/scp2/source/python/file_python.scp @@ -48,9 +48,7 @@ File gid_File_Lib_Pythonloader #else Name = "pythonloader.uno.dll"; #endif - RegistryID = gid_Starregistry_Services_Rdb; - NativeServicesURLPrefix = "vnd.sun.star.expand:$OOO_BASE_DIR/program/"; - Styles = (PACKED,UNO_COMPONENT); + Styles = (PACKED); End File gid_File_Py_Unohelper diff --git a/scp2/source/python/module_python_mailmerge.scp b/scp2/source/python/module_python_mailmerge.scp index b14162c2dc78..ee92ef12d523 100644 --- a/scp2/source/python/module_python_mailmerge.scp +++ b/scp2/source/python/module_python_mailmerge.scp @@ -33,8 +33,7 @@ File gid_File_Pymailmerge TXT_FILE_BODY; Dir = gid_Dir_Program; Name = "mailmerge.py"; - RegistryID = gid_Starregistry_Services_Rdb; - Styles = (PACKED,UNO_COMPONENT); + Styles = (PACKED); End #endif #endif diff --git a/scp2/source/testtool/file_testtool.scp b/scp2/source/testtool/file_testtool.scp index 86faf16faefc..3b30c157fa36 100644 --- a/scp2/source/testtool/file_testtool.scp +++ b/scp2/source/testtool/file_testtool.scp @@ -46,13 +46,6 @@ File gid_File_Bin_Testtool Name = "testtool.bin"; End -File gid_File_Hid_Testtool - BIN_FILE_BODY; - Dir = gid_Dir_Program; - Styles = (PACKED); - Name = "hid.lst"; -End - File gid_File_Config_Testtool BIN_FILE_BODY; Dir = gid_Dir_Program; diff --git a/scp2/source/writer/file_writer.scp b/scp2/source/writer/file_writer.scp index 8d49c94eaa57..32b151633f67 100644 --- a/scp2/source/writer/file_writer.scp +++ b/scp2/source/writer/file_writer.scp @@ -27,19 +27,9 @@ #include "macros.inc" -STD_UNO_LIB_FILE( gid_File_Lib_Swd , swd) +STD_LIB_FILE( gid_File_Lib_Swd , swd) -File gid_File_Lib_Hwpreader - TXT_FILE_BODY; - #ifdef UNX - Name = STRING(CONCAT2(libhwp,UNXSUFFIX)); - #else - Name = "hwp.dll"; - #endif - Dir = SCP2_OOO_BIN_DIR; - Styles = (PACKED, UNO_COMPONENT); - RegistryID = gid_Starregistry_Services_Rdb; -End +SPECIAL_LIB_FILE(gid_File_Lib_Hwpreader, hwp) File gid_File_Exe_Swriter BIN_FILE_BODY; diff --git a/scp2/source/writer/registryitem_writer.scp b/scp2/source/writer/registryitem_writer.scp index 6810cf8ff8e6..6e3d9741430b 100644..100755 --- a/scp2/source/writer/registryitem_writer.scp +++ b/scp2/source/writer/registryitem_writer.scp @@ -1314,7 +1314,7 @@ RegistryItem gid_Regitem_OpenOffice_OTT_OpenWith_Writer ParentID = PREDEFINED_HKEY_CLASSES_ROOT; Subkey = ".ott\OpenWithProgIDs"; ModuleID = gid_Module_Prg_Wrt_Bin; - Name = "opendocument.WriterDocument.1"; + Name = "opendocument.WriterTemplate.1"; Value = " "; End @@ -1323,7 +1323,7 @@ RegistryItem gid_Regitem_OpenOffice_OTH_OpenWith_Writer ParentID = PREDEFINED_HKEY_CLASSES_ROOT; Subkey = ".oth\OpenWithProgIDs"; ModuleID = gid_Module_Prg_Wrt_Bin; - Name = "opendocument.WriterDocument.1"; + Name = "opendocument.WriterWebTemplate.1"; Value = " "; End @@ -1332,7 +1332,7 @@ RegistryItem gid_Regitem_OpenOffice_ODM_OpenWith_Writer ParentID = PREDEFINED_HKEY_CLASSES_ROOT; Subkey = ".odm\OpenWithProgIDs"; ModuleID = gid_Module_Prg_Wrt_Bin; - Name = "opendocument.WriterDocument.1"; + Name = "opendocument.WriterGlobalDocument.1"; Value = " "; End @@ -1432,7 +1432,7 @@ RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabi Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations"; ModuleID = gid_Module_Prg_Wrt_Bin; Name = ".ott"; - Value = "opendocument.WriterDocument.1"; + Value = "opendocument.WriterTemplate.1"; Styles = (); End @@ -1441,7 +1441,7 @@ RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabi Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations"; ModuleID = gid_Module_Prg_Wrt_Bin; Name = ".stw"; - Value = "soffice.StarWriterDocument.6"; + Value = "soffice.StarWriterTemplate.6"; Styles = (); End @@ -1513,7 +1513,7 @@ RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabi Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations"; ModuleID = gid_Module_Prg_Wrt_Bin; Name = ".oth"; - Value = "opendocument.WriterDocument.1"; + Value = "opendocument.WriterWebTemplate.1"; Styles = (); End @@ -1522,7 +1522,7 @@ RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Capabi Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\Capabilities\FileAssociations"; ModuleID = gid_Module_Prg_Wrt_Bin; Name = ".odm"; - Value = "opendocument.WriterDocument.1"; + Value = "opendocument.WriterGlobalDocument.1"; Styles = (); End diff --git a/set_soenv.in b/set_soenv.in index d103a064b498..1e278c3d2c40 100755 --- a/set_soenv.in +++ b/set_soenv.in @@ -74,15 +74,15 @@ my ( $USR, $ETC, $BIN, $LIB, $LIB64, $INC, $INCLUDE, $DEV, $OPT, $LOCAL, $SOLENV # Environment variables. my ( $oldPATH, $SRC_ROOT, $SO_HOME, $JAVA_HOME, $JDK, $JAVAFLAGS, $OOO_SHELL, - $UPD, $WORK_STAMP, - $SOLARSRC, $DEVROOT, $SOLARVER, $SOLARVERSION, $SOLARENV, $SOLARDEFIMG, + $UPD, $WORK_STAMP, $gb_REPOS, $BUILD_TYPE, + $SOLARSRC, $DEVROOT, $SOLARVER, $SOLARVERSION, $WORKDIR, $OUTDIR, $SOLARENV, $SOLARDEFIMG, $STAR_INIROOT, $STAR_INIROOTOLD, $STAR_STANDLST, $STAR_SSCOMMON, $STAR_SSOLARINI, $DMAKEROOT, $CLASSPATH, $XCLASSPATH, $COMPATH, $MSPDB_PATH, $MIDL_PATH, $CSC_PATH, $PATH, $SOLAREXTRAINC, $SOLAREXTRALIB, $SOLARLIB, $SOLARINC, $LOCALINI, $FRAMEWORKSHOME, $COMEX, $PERL, $COMP_ENV, $ILIB, $JAVAHOME, $PSDK_HOME, $DIRECTXSDK_LIB, $USE_NEW_SDK, $FRAME_HOME, - $USE_DIRECTX5, $ATL_LIB, $ATL_INCLUDE, $MFC_LIB, $MFC_INCLUDE, $NO_HIDS, $TMPDIR, + $USE_DIRECTX5, $ATL_LIB, $ATL_INCLUDE, $MFC_LIB, $MFC_INCLUDE, $TMPDIR, $COMMON_BUILD_TOOLS, $WIN_GREP, $WIN_FIND, $WIN_LS, $WIN_GNUCOPY, $WIN_TOUCH, $MOZILLA_VERSION, $MOZILLA_TOOLKIT, $PREBUILD_MOZAB, $MOZILLABUILD, $PROEXT, $TARFILE_LOCATION, @@ -1036,9 +1036,13 @@ else #Location of Solar version. $SOLARVERSION = '$SOLARVER'; +#Location of gnu make directories. +$WORKDIR = '$SOLARVER/$INPATH/workdir'; +$OUTDIR = '$SOLARVER/$INPATH'; #Some directories that are symlinks under rawbuild, have to use realpath on Cygwin $SOLARDEFIMG = PathFormat($SRC_ROOT.$DEFIMGS); + $SOLARENVINC = '$SOLARENV'.$INC; # Location of $LOCALINI = '$SOLARENV'.$CONFIG; @@ -1511,6 +1515,16 @@ else { AddWarning( "set_soenv", "$platform not configured for system dependant include dir" ); } +$gb_REPOS = $SRC_ROOT; + +if ('@WITH_LANG@' ne "") +{ + $BUILD_TYPE = "@BUILD_TYPE@ L10N"; +} +else +{ + $BUILD_TYPE = "@BUILD_TYPE@"; +} # # F. Setting the different aliases. @@ -1596,8 +1610,6 @@ ToFile( "DEFAULT_MOZILLA_TOOLKIT", $MOZILLA_TOOLKIT, "e" ); ToFile( "ENABLE_NSS_MODULE", "@ENABLE_NSS_MODULE@", "e" ); ToFile( "MOZILLABUILD", "@MOZILLABUILD@", "e" ); ToFile( "BUILD_VER_STRING", "@BUILD_VER_STRING@", "e" ); -ToFile( "ENABLE_VBA", "@ENABLE_VBA@", "e" ); -ToFile( "VBA_EXTENSION", "@VBA_EXTENSION@", "e" ); if ($platform =~ m/linux/ && $platform =~ m/powerpc/) { ToFile( "JITC_PROCESSOR_TYPE","6", "e" ); } @@ -1696,6 +1708,16 @@ ToFile( "DYNAMIC_CRT", $DYNAMIC_CRT, "e" ); ToFile( "SET_EXCEPTIONS", $SET_EXCEPTIONS, "e" ); ToFile( "use_shl_versions", $use_shl_versions, "e" ); ToFile( "FLIPCMD", $FLIPCMD, "e" ); +if ( $platform =~ m/darwin/ ) +{ +# MAXOSX_DEPLOYMENT_TARGET : The minimum version required to run the build, +# build can assume functions/libraries of that version to be available +# unless you want to do runtime checks for 10.5 api, you also want to use the 10.4 sdk +# (safer/easier than dealing with the MAC_OS_X_VERSION_MAX_ALLOWED macro) +# http://developer.apple.com/technotes/tn2002/tn2064.html + ToFile( "MACOSX_DEPLOYMENT_TARGET", "10.4", "e" ); +} + # # Writing the variables to file. # (c = comment, e = environment variable, a = alias, n = newline ) @@ -1740,6 +1762,8 @@ ToFile( "UPD", $UPD, "e" ); ToFile( "WORK_STAMP", $WORK_STAMP, "e" ); ToFile( "SOLARVER", $SOLARVER, "e" ); ToFile( "SOLARVERSION", $SOLARVERSION, "e" ); +ToFile( "WORKDIR", $WORKDIR, "e" ); +ToFile( "OUTDIR", $OUTDIR, "e" ); ToFile( "SOLARENV", $SOLARENV, "e" ); ToFile( "SOLARDEFIMG", $SOLARDEFIMG, "e" ); ToFile( "SOLARENVINC", $SOLARENVINC, "e" ); @@ -1806,7 +1830,6 @@ ToFile( "ENABLE_FONTCONFIG", "@ENABLE_FONTCONFIG@", "e" ); ToFile( "ENABLE_DIRECTX", "@ENABLE_DIRECTX@", "e" ); ToFile( "ENABLE_LAYOUT", "@ENABLE_LAYOUT@", "e" ); ToFile( "ENABLE_PCH", "@ENABLE_PCH@", "e" ); -ToFile( "NO_HIDS", "@NO_HIDS@", "e" ); ToFile( "ENABLE_GRAPHITE", "@ENABLE_GRAPHITE@", "e"); ToFile( "SYSTEM_GRAPHITE", "@SYSTEM_GRAPHITE@", "e"); ToFile( "GRAPHITE_LIBS", "@GRAPHITE_LIBS@", "e"); @@ -1836,7 +1859,7 @@ ToFile( "WITH_FONTS", "@WITH_FONTS@", "e" ); ToFile( "WITHOUT_AFMS", "@WITHOUT_AFMS@", "e" ); ToFile( "WITHOUT_PPDS", "@WITHOUT_PPDS@", "e" ); ToFile( "WITH_BINFILTER", "@WITH_BINFILTER@", "e" ); -ToFile( "BUILD_TYPE", "@BUILD_TYPE@", "e" ); +ToFile( "BUILD_TYPE", "$BUILD_TYPE", "e" ); ToFile( "VERBOSE", "@VERBOSE@", "e" ); ToFile( "ENABLE_ZENITY", "@ENABLE_ZENITY@", "e" ); ToFile( "ENABLE_EVOAB2", "@ENABLE_EVOAB2@", "e" ); @@ -1876,6 +1899,8 @@ ToFile( "FREETYPE_LIBS", "@FREETYPE_LIBS@", "e" ); ToFile( "SYSTEM_POPPLER", "@SYSTEM_POPPLER@", "e" ); ToFile( "POPPLER_CFLAGS", "@POPPLER_CFLAGS@", "e" ); ToFile( "POPPLER_LIBS", "@POPPLER_LIBS@", "e" ); +ToFile( "GSTREAMER_CFLAGS", "@GSTREAMER_CFLAGS@", "e" ); +ToFile( "GSTREAMER_LIBS", "@GSTREAMER_LIBS@", "e" ); ToFile( "SYSTEM_CAIRO", "@SYSTEM_CAIRO@", "e" ); ToFile( "BUILD_PIXMAN", "@BUILD_PIXMAN@", "e" ); ToFile( "CAIRO_CFLAGS", "@CAIRO_CFLAGS@", "e" ); @@ -1981,6 +2006,8 @@ if ($platform !~ m/cygwin|os2/) { } } ToFile( "SOLARSRC", $SOLARSRC, "e" ); +ToFile( "gb_REPOS", $gb_REPOS, "e" ); + if ( $platform =~ m/cygwin/ ) { ToFile( "ILIB", $ILIB, "e" ); @@ -1993,6 +2020,7 @@ if ( $platform =~ m/cygwin/ ) ToFile( "MINGW_SHARED_GCCLIB", "@MINGW_SHARED_GCCLIB@", "e" ); ToFile( "MINGW_GCCLIB_EH", "@MINGW_GCCLIB_EH@", "e" ); ToFile( "MINGW_SHARED_GXXLIB", "@MINGW_SHARED_GXXLIB@", "e" ); + ToFile( "MINGW_SHARED_LIBSTDCPP", "@MINGW_SHARED_LIBSTDCPP@", "e" ); ToFile( "MINGW_GCCDLL", "@MINGW_GCCDLL@", "e" ); ToFile( "MINGW_GXXDLL", "@MINGW_GXXDLL@", "e" ); } @@ -2057,8 +2085,8 @@ if ( $platform =~ m/cygwin/ ) { if ($platform =~ m/solaris|darwin|freebsd/) { ToFile( "GNUPATCH", "@GNUPATCH@", "e"); - ToFile( "GNUCOPY", "@GNUCP@", "e"); } +ToFile( "GNUCOPY", "@GNUCP@", "e"); # OS/2 define .pl as executable for 4os2 # use - as switch char for dmake (os2/switchar.c) if ($platform =~ m/os2/) diff --git a/soldep/bootstrp/command.cxx b/soldep/bootstrp/command.cxx new file mode 100644 index 000000000000..39a10093c12b --- /dev/null +++ b/soldep/bootstrp/command.cxx @@ -0,0 +1,683 @@ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifdef SCO +#define _IOSTREAM_H +#endif + +#include <tools/fsys.hxx> +#include <tools/stream.hxx> +#include "soldep/command.hxx" +#include <tools/debug.hxx> +#include <soldep/appdef.hxx> + +#ifdef _MSC_VER +#pragma warning (push,1) +#endif + +#include <iostream> +#include <string.h> +#include <stdlib.h> +#include <stdio.h> +#include <ctype.h> +#include <errno.h> + +#ifdef _MSC_VER +#pragma warning (pop) +#endif + +//#define MH_TEST2 1 // fuers direkte Testen + +#if defined(WNT) || defined(OS2) +#ifdef _MSC_VER +#pragma warning (push,1) +#endif +#include <process.h> // for _SPAWN +#ifdef _MSC_VER +#pragma warning (pop) +#endif +#endif +#ifdef UNX +#include <sys/types.h> +#include <unistd.h> +#if ( defined NETBSD ) || defined (FREEBSD) || defined (AIX) \ + || defined (HPUX) || defined (MACOSX) +#include <sys/wait.h> +#else +#include <wait.h> +#endif +#define P_WAIT 1 // erstmal einen dummz +#endif + +#if defined WNT +#include <tools/svwin.h> +#endif + +#if defined(WNT) || defined(OS2) +#define cPathSeperator ';' +#endif +#ifdef UNX +#define cPathSeperator ':' +#endif + +/*****************************************************************************/ +CommandLine::CommandLine(sal_Bool bWrite) +/*****************************************************************************/ + : bTmpWrite(bWrite) +{ + CommandBuffer = new char [1]; + if (CommandBuffer == NULL) { + //cout << "Error: nospace" << endl; + exit(0); + } + CommandBuffer[0] = '\0'; + nArgc = 0; + ppArgv = new char * [1]; + ppArgv[0] = NULL; + + ComShell = new char [128]; + char* pTemp = getenv("COMMAND_SHELL"); + if(!pTemp) + strcpy(ComShell,COMMAND_SHELL); + else + strcpy(ComShell,pTemp); + + strcpy(&ComShell[strlen(ComShell)]," -C "); +} + +/*****************************************************************************/ +CommandLine::CommandLine(const char *CommandString, sal_Bool bWrite) +/*****************************************************************************/ + : bTmpWrite(bWrite) +{ + CommandBuffer = new char [1]; + if (CommandBuffer == NULL) { + //cout << "Error: nospace" << endl; + exit(0); + } + nArgc = 0; + ppArgv = new char * [1]; + ppArgv[0] = NULL; + + ComShell = new char [128]; + char* pTemp = getenv("COMMAND_SHELL"); + if(!pTemp) + strcpy(ComShell,COMMAND_SHELL); + else + strcpy(ComShell,pTemp); + + strcpy(&ComShell[strlen(ComShell)]," -C "); + + BuildCommand(CommandString); +} + +/*****************************************************************************/ +CommandLine::CommandLine(const CommandLine& CCommandLine, sal_Bool bWrite) +/*****************************************************************************/ + : bTmpWrite(bWrite) +{ + CommandBuffer = new char [1]; + if (CommandBuffer == NULL) { + //cout << "Error: nospace" << endl; + exit(0); + } + nArgc = 0; + ppArgv = new char * [1]; + ppArgv[0] = NULL; + + ComShell = new char [128]; + char* pTemp = getenv("COMMAND_SHELL"); + if(!pTemp) + strcpy(ComShell,COMMAND_SHELL); + else + strcpy(ComShell,pTemp); + + strcpy(&ComShell[strlen(ComShell)]," -C "); + + BuildCommand(CCommandLine.CommandBuffer); +} + +/*****************************************************************************/ +CommandLine::~CommandLine() +/*****************************************************************************/ +{ + delete [] CommandBuffer; + delete [] ComShell; + //for (int i = 0; ppArgv[i] != '\0'; i++) { + for (int i = 0; ppArgv[i] != 0; i++) { + delete [] ppArgv[i]; + } + delete [] ppArgv; + +} + +/*****************************************************************************/ +CommandLine& CommandLine::operator=(const CommandLine& CCommandLine) +/*****************************************************************************/ +{ + strcpy (CommandBuffer, CCommandLine.CommandBuffer); + for (int i = 0; i != nArgc; i++) { + delete [] ppArgv[i]; + } + delete [] ppArgv; + ppArgv = new char * [1]; + ppArgv[0] = NULL; + BuildCommand(CommandBuffer); + return *this; +} + +/*****************************************************************************/ +CommandLine& CommandLine::operator=(const char *CommandString) +/*****************************************************************************/ +{ + strcpy (CommandBuffer, CommandString); + for (int i = 0; i != nArgc; i++) { + delete [] ppArgv[i]; + } + delete [] ppArgv; + ppArgv = new char * [1]; + ppArgv[0] = NULL; + BuildCommand(CommandBuffer); + + return *this; +} + +/*****************************************************************************/ +void CommandLine::Print() +/*****************************************************************************/ +{ + //cout << "******* start print *******" << endl; + //cout << "nArgc = " << nArgc << endl; + //cout << "CommandBuffer = " << CommandBuffer << endl; + for (int i = 0; ppArgv[i] != NULL; i++) { + //cout << "ppArgv[" << i << "] = " << ppArgv[i] << endl; + } + //cout << "******** end print ********" << endl; +} + +/*****************************************************************************/ +void CommandLine::BuildCommand(const char *CommandString) +/*****************************************************************************/ +{ + int index = 0, pos=0; + char buffer[1024]; + char WorkString[1024]; + + strcpy(WorkString,CommandString); + + //falls LogWindow -> in tmpfile schreiben + if(bTmpWrite) + { + strcpy(&WorkString[strlen(WorkString)]," >&"); + strcpy(&WorkString[strlen(WorkString)],getenv("TMP")); + strcpy(&WorkString[strlen(WorkString)],TMPNAME); + } + + // delete old memory and get some new memory for CommandBuffer + + delete [] CommandBuffer; + CommandBuffer = new char [strlen(ComShell)+strlen(WorkString)+1]; + if (CommandBuffer == NULL) { + //cout << "Error: nospace" << endl; + exit(0); + } + strcpy (CommandBuffer, ComShell); + strcpy (&CommandBuffer[strlen(ComShell)], WorkString); + + CommandString = CommandBuffer; + + // get the number of tokens + Strtokens(CommandString); + + // delete the space for the old CommandLine + + for (int i = 0; ppArgv[i] != 0; i++) { + delete [] ppArgv[i]; + } + delete [] ppArgv; + + /* get space for the new command line */ + + ppArgv = (char **) new char * [nArgc+1]; + if (ppArgv == NULL) { + //cout << "Error: no space" << endl; + exit(0); + } + + // flush the white space + + while ( isspace(*CommandString) ) + CommandString++; + + index = 0; + + // start the loop to build all the individual tokens + + while (*CommandString != '\0') { + + pos = 0; + + // copy the token until white space is found + + while ( !isspace(*CommandString) && *CommandString != '\0') { + + buffer[pos++] = *CommandString++; + + } + + buffer[pos] = '\0'; + + // get space for the individual tokens + + ppArgv[index] = (char *) new char [strlen(buffer)+1]; + if (ppArgv[index] == NULL) { + //cout << "Error: nospace" << endl; + exit(0); + } + + // copy the token + + strcpy (ppArgv[index++], buffer); + + // flush while space + + while ( isspace(*CommandString) ) + CommandString++; + + } + + // finish by setting the las pointer to NULL + ppArgv[nArgc]= NULL; + +} + +/*****************************************************************************/ +void CommandLine::Strtokens(const char *CommandString) +/*****************************************************************************/ +{ + int count = 0; + const char *temp; + + temp = CommandString; + + /* bypass white space */ + + while (isspace(*temp)) temp++; + + for (count=0; *temp != '\0'; count++) { + + /* continue until white space of string terminator is found */ + + while ((!isspace(*temp)) && (*temp != '\0')) temp++; + + /* bypass white space */ + + while (isspace(*temp)) temp++; + + } + nArgc = count; +} + +/*****************************************************************************/ +CCommand::CCommand( ByteString &rString ) +/*****************************************************************************/ +{ + rString.SearchAndReplace( '\t', ' ' ); + aCommand = rString.GetToken( 0, ' ' ); + aCommandLine = Search( "PATH" ); +#ifndef UNX + aCommandLine += " /c "; +#else + aCommandLine += " -c "; +#endif + + ByteString sCmd( rString.GetToken( 0, ' ' )); + ByteString sParam( rString.Copy( sCmd.Len())); + + aCommandLine += Search( "PATH", sCmd ); + aCommandLine += sParam; + + ImplInit(); +} + +/*****************************************************************************/ +CCommand::CCommand( const char *pChar ) +/*****************************************************************************/ +{ + ByteString aString = pChar; + aString.SearchAndReplace( '\t', ' ' ); + aCommand = aString.GetToken( 0, ' ' ); + + aCommandLine = Search( "PATH" ); +#ifndef UNX + aCommandLine += " /c "; +#else + aCommandLine += " -c "; +#endif + ByteString rString( pChar ); + + ByteString sCmd( rString.GetToken( 0, ' ' )); + ByteString sParam( rString.Copy( sCmd.Len())); + + aCommandLine += Search( "PATH", sCmd ); + aCommandLine += sParam; + + ImplInit(); +} + +/*****************************************************************************/ +void CCommand::ImplInit() +/*****************************************************************************/ +{ + char pTmpStr[255]; + size_t *pPtr; + char *pChar; + int nVoid = sizeof( size_t * ); + nArgc = aCommandLine.GetTokenCount(' '); + sal_uIntPtr nLen = aCommandLine.Len(); + + ppArgv = (char **) new char[ (sal_uIntPtr)(nLen + nVoid * (nArgc +2) + nArgc ) ]; + pChar = (char *) ppArgv + ( (1+nArgc) * nVoid ); + pPtr = (size_t *) ppArgv; + for ( xub_StrLen i=0; i<nArgc; i++ ) + { + (void) strcpy( pTmpStr, aCommandLine.GetToken(i, ' ' ).GetBuffer() ); + size_t nStrLen = strlen( pTmpStr ) + 1; + strcpy( pChar, pTmpStr ); + *pPtr = (sal_uIntPtr) pChar; + pChar += nStrLen; + pPtr += 1; +#ifdef UNX + if ( i == 1 ) + { + sal_uInt16 nWo = aCommandLine.Search("csh -c "); + if (nWo != STRING_NOTFOUND) + aCommandLine.Erase(0, nWo + 7); + else + aCommandLine.Erase(0, 16); + i = nArgc; + strcpy( pChar, aCommandLine.GetBuffer() ); + *pPtr = (sal_uIntPtr) pChar; + pPtr += 1; + } +#endif + } + *pPtr = 0; +} + +/*****************************************************************************/ +CCommand::operator int() +/*****************************************************************************/ +{ + int nRet; +#if defined WNT + nRet = _spawnv( P_WAIT, ppArgv[0], (const char **) ppArgv ); +#elif defined OS2 + nRet = _spawnv( P_WAIT, ppArgv[0], ppArgv ); +#elif defined UNX + //fprintf( stderr, "CComand : operator (int) not implemented\n"); + // **** Unix Implementierung *************** + pid_t pid; + + if (( pid = fork()) < 0 ) + { + DBG_ASSERT( sal_False, "fork error" ); + } + else if ( pid == 0 ) + { + if ( execv( ppArgv[0], (char * const *) ppArgv ) < 0 ) + { + DBG_ASSERT( sal_False, "execv failed" ); + } + } + //fprintf( stderr, "parent: %s %s\n", ppArgv[0] , ppArgv[1] ); + if ( (nRet = waitpid( pid, NULL, 0 ) < 0) ) + { + DBG_ASSERT( sal_False, "wait error" ); + } +#endif + + switch ( errno ) + { + case E2BIG : + nError = COMMAND_TOOBIG; + break; + case EINVAL : + nError = COMMAND_INVALID; + break; + case ENOENT: + nError = COMMAND_NOTFOUND; + break; + case ENOEXEC : + nError = COMMAND_NOEXEC; + break; + case ENOMEM : + nError = COMMAND_NOMEM; + break; + default: + nError = COMMAND_UNKNOWN; + } + + if ( nRet ) + fprintf( stderr, "Program returned with errros\n"); + return nRet; +} + +/*****************************************************************************/ +ByteString CCommand::Search(ByteString aEnv, ByteString sItem) +/*****************************************************************************/ +{ + // default wird eine Shell im Path gesucht, + // wenn aber compsec gestzt ist holen wir uns die + // Shell von dort + if ( sItem.Equals( COMMAND_SHELL )) + { + ByteString aComspec = GetEnv( "COMSPEC" ); + if ( !aComspec.Equals("")) + return aComspec; + } + + DirEntry aItem( String( sItem, RTL_TEXTENCODING_ASCII_US )); + if ( aItem.Exists()) + return sItem; + + ByteString aEntry, sReturn; + ByteString sEnv( aEnv ); + ByteString sEnvironment = GetEnv( sEnv.GetBuffer()); + xub_StrLen nCount = sEnvironment.GetTokenCount( cPathSeperator ); + + sal_Bool bFound = sal_False; + + for ( xub_StrLen i=0; i<nCount && !bFound; i++ ) + { + aEntry = sEnvironment.GetToken(i, cPathSeperator ); +#ifndef UNX + aEntry += '\\'; +#else + aEntry += '/'; +#endif + aEntry += sItem; + + String sEntry( aEntry, RTL_TEXTENCODING_ASCII_US ); + DirEntry aDirEntry( sEntry ); + aDirEntry.ToAbs(); + if ( aDirEntry.Exists()) { + sReturn = aEntry; + bFound = sal_True; + } + } + if ( !bFound ) + { + sEnv = sEnv.ToUpperAscii(); + ByteString sEnvironment2 = GetEnv(sEnv.GetBuffer() ); + xub_StrLen nCount2 = sEnvironment2.GetTokenCount( cPathSeperator ); + for ( xub_StrLen i=0; i<nCount2 && !bFound; i++ ) + { + aEntry = sEnvironment2.GetToken(i, cPathSeperator ); +#ifndef UNX + aEntry += '\\'; +#else + aEntry += '/'; +#endif + aEntry += sItem; + + String sEntry( aEntry, RTL_TEXTENCODING_ASCII_US ); + DirEntry aDirEntry( sEntry ); + aDirEntry.ToAbs(); + if ( aDirEntry.Exists()) { + sReturn = aEntry; + bFound = sal_True; + } + } + } + + if ( sReturn.Equals( "" )) + sReturn = sItem; + + return sReturn; +} + +/*****************************************************************************/ +CCommandd::CCommandd( ByteString &rString, CommandBits nBits ) +/*****************************************************************************/ + : CCommand( rString ), + nFlag( nBits ) +{ +} + + +/*****************************************************************************/ +CCommandd::CCommandd( const char *pChar, CommandBits nBits ) +/*****************************************************************************/ + : CCommand( pChar ), + nFlag( nBits ) +{ +} + +/*****************************************************************************/ +CCommandd::operator int() +/*****************************************************************************/ +{ + int nRet = 0; + +#ifdef WNT + LPCTSTR lpApplicationName = NULL; + LPTSTR lpCommandLine = (char *) GetCommandLine_().GetBuffer(); + LPSECURITY_ATTRIBUTES lpProcessAttributes = NULL; + LPSECURITY_ATTRIBUTES lpThreadAttributes = NULL; + sal_Bool bInheritHandles = sal_True; + + // wie wuenschen wir denn gestartet zu werden ?? + DWORD dwCreationFlags; + + if ( nFlag & COMMAND_EXECUTE_START ) + dwCreationFlags = DETACHED_PROCESS; + else + dwCreationFlags = CREATE_NEW_CONSOLE; + + // wir erben vom Vaterprozess + LPVOID lpEnvironment = NULL; + + // das exe im Pfad suchen + LPCTSTR lpCurrentDirectory = NULL; + + // in dieser Struktur bekommen wir die erzeugte Processinfo + // zurueck + PROCESS_INFORMATION aProcessInformation; + + // weiteres Startupinfo anlegen + STARTUPINFO aStartupInfo; + + aStartupInfo.cb = sizeof( STARTUPINFO ); + aStartupInfo.lpReserved = NULL; + aStartupInfo.lpDesktop = NULL; + + // das Fenster bekommt den Namen des Exes + aStartupInfo.lpTitle = NULL; + aStartupInfo.dwX = 100; + aStartupInfo.dwY = 100; + //aStartupInfo.dwXSize = 400; + //aStartupInfo.dwYSize = 400; + aStartupInfo.dwXCountChars = 40; + aStartupInfo.dwYCountChars = 40; + + // Farben setzen + aStartupInfo.dwFillAttribute = FOREGROUND_RED | BACKGROUND_RED | + BACKGROUND_BLUE | BACKGROUND_GREEN; + +// aStartupInfo.dwFlags = STARTF_USESTDHANDLES; + //aStartupInfo.wShowWindow = SW_NORMAL; //SW_SHOWDEFAULT; + //aStartupInfo.wShowWindow = SW_HIDE; //SW_SHOWNOACTIVATE; + aStartupInfo.wShowWindow = SW_SHOWNOACTIVATE; + aStartupInfo.cbReserved2 = NULL; + aStartupInfo.lpReserved2 = NULL; + //aStartupInfo.hStdInput = stdin; + //aStartupInfo.hStdOutput = stdout; + //aStartupInfo.hStdError = stderr; + + if ( nFlag & COMMAND_EXECUTE_HIDDEN ) + { + aStartupInfo.wShowWindow = SW_HIDE; + aStartupInfo.dwFlags = aStartupInfo.dwFlags | STARTF_USESHOWWINDOW; + } + + bool bProcess = CreateProcess( lpApplicationName, + lpCommandLine, lpProcessAttributes, + lpThreadAttributes, bInheritHandles, + dwCreationFlags, lpEnvironment, lpCurrentDirectory, + &aStartupInfo, &aProcessInformation ); + + LPVOID lpMsgBuf; + + if ( bProcess ) + { + FormatMessage( + FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, + NULL, + GetLastError(), + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language + (LPTSTR) &lpMsgBuf, + 0, + NULL ); + + ByteString aErrorString = (char *) lpMsgBuf; + + if ( nFlag & COMMAND_EXECUTE_WAIT ) + { + DWORD aProcessState = STILL_ACTIVE; + while(aProcessState == STILL_ACTIVE) + { + GetExitCodeProcess(aProcessInformation.hProcess,&aProcessState); + } + } + } + else + fprintf( stderr, "Can not start Process !" ); + +#endif + return nRet; +} diff --git a/soldep/bootstrp/sstring.cxx b/soldep/bootstrp/sstring.cxx new file mode 100644 index 000000000000..a9c50839f6f6 --- /dev/null +++ b/soldep/bootstrp/sstring.cxx @@ -0,0 +1,314 @@ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _TOOLS_STRINGLIST +# define _TOOLS_STRINGLIST +#endif + +#define ENABLE_BYTESTRING_STREAM_OPERATORS +#include <tools/stream.hxx> +#include "soldep/sstring.hxx" + +SByteStringList::SByteStringList() +{ +} + +SByteStringList::~SByteStringList() +{ +} + +sal_uIntPtr SByteStringList::IsString( ByteString* pStr ) +{ + sal_uIntPtr nRet = NOT_THERE; + if ( (nRet = GetPrevString( pStr )) != 0 ) + { + ByteString* pString = GetObject( nRet ); + if ( *pString == *pStr ) + return nRet; + else + return NOT_THERE; + } + else + { + ByteString* pString = GetObject( 0 ); + if ( pString && (*pString == *pStr) ) + return 0; + else + return NOT_THERE; + } +} + +sal_uIntPtr SByteStringList::GetPrevString( ByteString* pStr ) +{ + sal_uIntPtr nRet = 0; + sal_Bool bFound = sal_False; + sal_uIntPtr nCountMember = Count(); + sal_uIntPtr nUpper = nCountMember; + sal_uIntPtr nLower = 0; + sal_uIntPtr nCurrent = nUpper / 2; + sal_uIntPtr nRem = 0; + ByteString* pString; + + do + { + if ( (nCurrent == nLower) || (nCurrent == nUpper) ) + return nLower; + pString = GetObject( nCurrent ); + StringCompare nResult = pStr->CompareTo( *pString ); + if ( nResult == COMPARE_LESS ) + { + nUpper = nCurrent; + nCurrent = (nCurrent + nLower) /2; + } + else if ( nResult == COMPARE_GREATER ) + { + nLower = nCurrent; + nCurrent = (nUpper + nCurrent) /2; + } + else if ( nResult == COMPARE_EQUAL ) + return nCurrent; + if ( nRem == nCurrent ) + return nCurrent; + nRem = nCurrent; + } + while ( !bFound ); + return nRet; +} + +/************************************************************************** +* +* Sortiert einen ByteString in die Liste ein und gibt die Position, +* an der einsortiert wurde, zurueck +* +**************************************************************************/ + +sal_uIntPtr SByteStringList::PutString( ByteString* pStr ) +{ + sal_uIntPtr nPos = GetPrevString ( pStr ); + if ( Count() ) + { + { + ByteString* pString = GetObject( 0 ); + if ( pString->CompareTo( *pStr ) == COMPARE_GREATER ) + { + Insert( pStr, (sal_uIntPtr)0 ); + return (sal_uIntPtr)0; + } + } + ByteString* pString = GetObject( nPos ); + if ( *pStr != *pString ) + { + Insert( pStr, nPos+1 ); + return ( nPos +1 ); + } + } + else + { + Insert( pStr ); + return (sal_uIntPtr)0; + } + + return NOT_THERE; +} + +ByteString* SByteStringList::RemoveString( const ByteString& rName ) +{ + sal_uIntPtr i; + ByteString* pReturn; + + for( i = 0 ; i < Count(); i++ ) + { + if ( rName == *GetObject( i ) ) + { + pReturn = GetObject(i); + Remove(i); + return pReturn; + } + } + + return NULL; +} + +void SByteStringList::CleanUp() +{ + ByteString* pByteString = First(); + while (pByteString) { + delete pByteString; + pByteString = Next(); + } + Clear(); +} + +SByteStringList& SByteStringList::operator<< ( SvStream& rStream ) +{ + sal_uInt32 nListCount; + rStream >> nListCount; + for ( sal_uInt16 i = 0; i < nListCount; i++ ) { + ByteString* pByteString = new ByteString(); + rStream >> *pByteString; + Insert (pByteString, LIST_APPEND); + } + return *this; +} + +SByteStringList& SByteStringList::operator>> ( SvStream& rStream ) +{ + sal_uInt32 nListCount = Count(); + rStream << nListCount; + ByteString* pByteString = First(); + while (pByteString) { + rStream << *pByteString; + pByteString = Next(); + } + return *this; +} + + + + + + + +SUniStringList::SUniStringList() +{ +} + +SUniStringList::~SUniStringList() +{ +} + +sal_uIntPtr SUniStringList::IsString( UniString* pStr ) +{ + sal_uIntPtr nRet = NOT_THERE; + if ( (nRet = GetPrevString( pStr )) != 0 ) + { + UniString* pString = GetObject( nRet ); + if ( *pString == *pStr ) + return nRet; + else + return NOT_THERE; + } + else + { + UniString* pString = GetObject( 0 ); + if ( pString && (*pString == *pStr) ) + return 0; + else + return NOT_THERE; + } +} + +sal_uIntPtr SUniStringList::GetPrevString( UniString* pStr ) +{ + sal_uIntPtr nRet = 0; + sal_Bool bFound = sal_False; + sal_uIntPtr nCountMember = Count(); + sal_uIntPtr nUpper = nCountMember; + sal_uIntPtr nLower = 0; + sal_uIntPtr nCurrent = nUpper / 2; + sal_uIntPtr nRem = 0; + UniString* pString; + + do + { + if ( (nCurrent == nLower) || (nCurrent == nUpper) ) + return nLower; + pString = GetObject( nCurrent ); + StringCompare nResult = pStr->CompareTo( *pString ); + if ( nResult == COMPARE_LESS ) + { + nUpper = nCurrent; + nCurrent = (nCurrent + nLower) /2; + } + else if ( nResult == COMPARE_GREATER ) + { + nLower = nCurrent; + nCurrent = (nUpper + nCurrent) /2; + } + else if ( nResult == COMPARE_EQUAL ) + return nCurrent; + if ( nRem == nCurrent ) + return nCurrent; + nRem = nCurrent; + } + while ( !bFound ); + return nRet; +} + +/************************************************************************** +* +* Sortiert einen UniString in die Liste ein und gibt die Position, +* an der einsortiert wurde, zurueck +* +**************************************************************************/ + +sal_uIntPtr SUniStringList::PutString( UniString* pStr ) +{ + sal_uIntPtr nPos = GetPrevString ( pStr ); + if ( Count() ) + { + { + UniString* pString = GetObject( 0 ); + if ( pString->CompareTo( *pStr ) == COMPARE_GREATER ) + { + Insert( pStr, (sal_uIntPtr)0); + return (sal_uIntPtr)0; + } + } + UniString* pString = GetObject( nPos ); + if ( *pStr != *pString ) + { + Insert( pStr, nPos+1 ); + return ( nPos +1 ); + } + } + else + { + Insert( pStr ); + return (sal_uIntPtr)0; + } + + return NOT_THERE; +} + +UniString* SUniStringList::RemoveString( const UniString& rName ) +{ + sal_uIntPtr i; + UniString* pReturn; + + for( i = 0 ; i < Count(); i++ ) + { + if ( rName == *GetObject( i ) ) + { + pReturn = GetObject(i); + Remove(i); + return pReturn; + } + } + + return NULL; +} diff --git a/soldep/inc/soldep/command.hxx b/soldep/inc/soldep/command.hxx new file mode 100644 index 000000000000..50781e1679a9 --- /dev/null +++ b/soldep/inc/soldep/command.hxx @@ -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. + * + ************************************************************************/ + +#ifndef COMMAND_HXX +#define COMMAND_HXX + +#include <iostream> + +#include <tools/stream.hxx> +#define STRLEN 100 +#ifndef UNX +#define TMPNAME "\\command.tmp" +#else +#define TMPNAME "/tmp/command.tmp" +#endif + +/** Different types of spawnable programs +*/ +enum ExeType +{ + EXE, /// programm is a native executable + BAT, /// programm is a DOS-Batch + BTM /// programm is a 4DOS-Batch +}; + +#define COMMAND_NOTFOUND 0x0001 +#define COMMAND_TOOBIG 0x0002 +#define COMMAND_INVALID 0x0004 +#define COMMAND_NOEXEC 0x0008 +#define COMMAND_NOMEM 0x0010 +#define COMMAND_UNKNOWN 0x0020 + +#ifdef WNT +#define COMMAND_SHELL "4nt.exe" +#endif +#ifdef OS2 +#define COMMAND_SHELL "4os2.exe" +#endif +#ifdef UNX +#define COMMAND_SHELL "csh" +#endif + +class CommandLine; +class LogWindow; + +class CommandLine +{ +friend class ChildProcess; +private: + char *CommandBuffer; + char *ComShell; + char **ppArgv; + sal_Bool bTmpWrite; + +public: + CommandLine(sal_Bool bTmpWrite = sal_False); + CommandLine(const char *, sal_Bool bTmpWrite = sal_False); + CommandLine(const CommandLine&, sal_Bool bTmpWrite = sal_False); + virtual ~CommandLine(); + + int nArgc; + + CommandLine& operator=(const CommandLine&); + CommandLine& operator=(const char *); + void BuildCommand(const char *); + char** GetCommand(void) { return ppArgv; } + void Strtokens(const char *); + void Print(); +}; + +/** Declares and spawns a child process. + The spawned programm could be a native executable or a schell script. +*/ +class CCommand +{ +private: + ByteString aCommandLine; + ByteString aCommand; + char *pArgv; + char **ppArgv; + sal_uIntPtr nArgc; + int nError; + +protected: + void ImplInit(); + void Initpp( sal_uIntPtr nCount, ByteString &rStr ); + +public: + /** Creates the process specified without spawning it + @param rString specifies the programm or shell scrip + */ + CCommand( ByteString &rString ); + + /** Creates the process specified without spawning it + @param pChar specifies the programm or shell scrip + */ + CCommand( const char *pChar ); + + /** Try to find the given programm in specified path + @param sEnv specifies the current search path, defaulted by environment + @param sItem specifies the system shell + @return the Location (when programm was found) + */ + static ByteString Search( ByteString sEnv, + ByteString sItem = COMMAND_SHELL ); + + /** Spawns the Process + @return 0 when spawned without errors, otherwise a error code + */ + operator int(); + + ByteString GetCommandLine_() { return aCommandLine; } + ByteString GetCommand() { return aCommand; } + + char** GetCommandStr() { return ppArgv; } +}; + +#define COMMAND_EXECUTE_WINDOW 0x0000001 +#define COMMAND_EXECUTE_CONSOLE 0x0000002 +#define COMMAND_EXECUTE_HIDDEN 0x0000004 +#define COMMAND_EXECUTE_START 0x0000008 +#define COMMAND_EXECUTE_WAIT 0x0000010 +#define COMMAND_EXECUTE_REMOTE 0x1000000 + +typedef sal_uIntPtr CommandBits; + +/** Allowes to spawn programms hidden, waiting etc. + @see CCommand +*/ +class CCommandd : public CCommand +{ + CommandBits nFlag; +public: + CCommandd( ByteString &rString, CommandBits nBits ); + CCommandd( const char *pChar, CommandBits nBits ); + operator int(); +}; + +#endif diff --git a/soldep/inc/soldep/listmacr.hxx b/soldep/inc/soldep/listmacr.hxx new file mode 100644 index 000000000000..a27f51cfdd4c --- /dev/null +++ b/soldep/inc/soldep/listmacr.hxx @@ -0,0 +1,60 @@ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _LISTMACR_HXX +#define _LISTMACR_HXX + +#define DECL_DEST_LIST( TmpListType, ListType, PointerType ) \ +DECLARE_LIST(TmpListType, PointerType) \ +class ListType : public TmpListType \ +{ \ +public: \ + void ClearAndDelete() \ + { \ + while ( Count()) { \ + PointerType pTmp = GetObject(( sal_uIntPtr ) 0 ); \ + delete pTmp; \ + Remove(( sal_uIntPtr ) 0 ); \ + } \ + } \ + ~ListType() \ + { \ + ClearAndDelete(); \ + } \ +}; \ + +#endif + + + + + + + + + + diff --git a/soldep/inc/soldep/sstring.hxx b/soldep/inc/soldep/sstring.hxx new file mode 100644 index 000000000000..08eb1da71a09 --- /dev/null +++ b/soldep/inc/soldep/sstring.hxx @@ -0,0 +1,105 @@ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SSTRING_HXX +#define _SSTRING_HXX + +#include <tools/string.hxx> +#include <tools/list.hxx> + +#define NOT_THERE LIST_ENTRY_NOTFOUND + +#define SStringList SUniStringList +#define StringList UniStringList + +DECLARE_LIST( ByteStringList, ByteString* ) +DECLARE_LIST( UniStringList, UniString* ) + +class SvStream; + +// --------------------- +// - class SStringList - +// --------------------- + +class SByteStringList : public ByteStringList +{ +public: + SByteStringList(); + ~SByteStringList(); + + // neuen ByteString in Liste einfuegen + sal_uIntPtr PutString( ByteString* ); + ByteString* RemoveString( const ByteString& rName ); + + // Position des ByteString in Liste, wenn nicht enthalten, dann + // return = NOT_THERE + sal_uIntPtr IsString( ByteString* ); + + // Vorgaenger ermitteln ( auch wenn selbst noch nicht in + // Liste enthalten + sal_uIntPtr GetPrevString( ByteString* ); + void CleanUp(); + + SByteStringList& operator<< ( SvStream& rStream ); + SByteStringList& operator>> ( SvStream& rStream ); +}; + +// --------------------- +// - class SUniStringList - +// --------------------- + +class SUniStringList : public UniStringList +{ +public: + SUniStringList(); + ~SUniStringList(); + + // neuen UniString in Liste einfuegen + sal_uIntPtr PutString( UniString* ); + UniString* RemoveString( const UniString& rName ); + + // Position des UniString in Liste, wenn nicht enthalten, dann + // return = NOT_THERE + sal_uIntPtr IsString( UniString* ); + + // Vorgaenger ermitteln ( auch wenn selbst noch nicht in + // Liste enthalten + sal_uIntPtr GetPrevString( UniString* ); +}; + +class Text +{ +protected: + String aString; + +public: + Text( char* pChar ); + Text( String &rStr ) { aString = rStr; } + void Stderr(); +}; + +#endif diff --git a/solenv/bin/build.pl b/solenv/bin/build.pl index 4613987737ef..995214217269 100755 --- a/solenv/bin/build.pl +++ b/solenv/bin/build.pl @@ -30,6 +30,7 @@ # # build - build entire project # + use strict; use Config; use POSIX; use Cwd qw (cwd); @@ -47,6 +48,7 @@ use lib ("$ENV{SOLARENV}/bin/modules"); use SourceConfig; use RepositoryHelper; + use Cwd 'chdir'; my $in_so_env = 0; if (defined $ENV{COMMON_ENV_TOOLS}) { @@ -58,24 +60,20 @@ $verbose_mode = ($ENV{verbose} =~ /^t\S*$/i); } my $enable_multiprocessing = 1; - my $cygwin = 0; - $cygwin++ if ($^O eq 'cygwin'); - if ($ENV{GUI} eq 'WNT' && !$cygwin) { - eval { require Win32::Process; import Win32::Process; }; - $enable_multiprocessing = 0 if ($@); - eval { require Win32::Pipe; import Win32::Pipe; }; - }; ### for XML file format eval { require XMLBuildListParser; import XMLBuildListParser; }; + my $enable_xml = 0; + my @modes_array = (); if (!$@) { $enable_xml = 1; @modes_array = split('\s' , $ENV{BUILD_TYPE}); }; #### script id ##### - ( $script_name = $0 ) =~ s/^.*\b(\w+)\.pl$/$1/; - $id_str = ' $Revision: 275224 $ '; + ( my $script_name = $0 ) =~ s/^.*\b(\w+)\.pl$/$1/; + my $id_str = ' $Revision: 275224 $ '; + my $script_rev = 0; $id_str =~ /Revision:\s+(\S+)\s+\$/ ? ($script_rev = $1) : ($script_rev = "-"); @@ -87,100 +85,95 @@ # # ######################### - $modules_number++; - $perl = ""; - $remove_command = ""; - use Cwd 'chdir'; - $perl = 'perl'; - $remove_command = 'rm -rf'; - $nul = '> /dev/null'; + my $modules_number++; + my $perl = 'perl'; + my $remove_command = 'rm -rf'; + my $nul = '> /dev/null'; - $processes_to_run = 0; + my $processes_to_run = 0; # delete $pid when not needed - %projects_deps_hash = (); # hash of projects with no dependencies, + my %projects_deps_hash = (); # hash of projects with no dependencies, # that could be built now - %broken_build = (); # hash of hashes of the modules, + my %broken_build = (); # hash of hashes of the modules, # where build was broken (error occurred) - %folders_hashes = (); - %running_children = (); - $dependencies_hash = 0; - $cmd_file = ''; - $build_all_parents = 0; - $show = 0; - $checkparents = 0; - $deliver = 0; - $pre_custom_job = ''; - $custom_job = ''; - $post_custom_job = ''; - %local_deps_hash = (); - %PathHash = (); - %PlatformHash = (); - %AliveDependencies = (); - %global_deps_hash = (); # hash of dependencies of the all modules - %global_deps_hash_backup = (); # backup hash of external dependencies of the all modules - %module_deps_hash_backup = (); # backup hash of internal dependencies for aech module - %modules_with_errors = (); # hash of modules hashes, which cannot be built further - @broken_modules_names = (); # array of modules, which cannot be built further - @dmake_args = (); - %dead_parents = (); - $initial_module = ''; - $all_dependent = 1; # a flag indicating if the hash has independent keys - $build_from_with_branches = ''; - $build_all_cont = ''; - $build_since = ''; - $dlv_switch = ''; - $child = 0; - %processes_hash = (); - %module_announced = (); - $prepare = ''; # prepare for following incompatible build - $ignore = ''; - $html = ''; - @ignored_errors = (); - %incompatibles = (); - %skip_modules = (); - %exclude_branches = (); - $only_platform = ''; # the only platform to prepare - $only_common = ''; # the only common output tree to delete when preparing - %build_modes = (); - $maximal_processes = 0; # the max number of the processes run - %modules_types = (); # modules types ('mod', 'img', 'lnk') hash - %platforms = (); # platforms available or being working with - %platforms_to_copy = (); # copy output trees for the platforms when --prepare - $tmp_dir = get_tmp_dir(); # temp directory for checkout and other actions - @possible_build_lists = ('build.lst', 'build.xlist'); # build lists names - %build_list_paths = (); # build lists names - %build_lists_hash = (); # hash of arrays $build_lists_hash{$module} = \($path, $xml_list_object) - $pre_job = 'announce'; # job to add for not-single module build - $post_job = ''; # -"- - %windows_procs = (); - @warnings = (); # array of warnings to be shown at the end of the process - @errors = (); # array of errors to be shown at the end of the process - %html_info = (); # hash containing all necessary info for generating of html page - %module_by_hash = (); # hash containing all modules names as values and correspondent hashes as keys - %build_in_progress = (); # hash of modules currently being built - %build_is_finished = (); # hash of already built modules - %modules_with_errors = (); # hash of modules with build errors - %build_in_progress_shown = (); # hash of modules being built, + my %folders_hashes = (); + my %running_children = (); + my $dependencies_hash = 0; + my $cmd_file = ''; + my $build_all_parents = 0; + my $show = 0; + my $checkparents = 0; + my $deliver = 0; + my $pre_custom_job = ''; + my $custom_job = ''; + my $post_custom_job = ''; + my %local_deps_hash = (); + my %path_hash = (); + my %platform_hash = (); + my %alive_dependencies = (); + my %global_deps_hash = (); # hash of dependencies of the all modules + my %global_deps_hash_backup = (); # backup hash of external dependencies of the all modules + my %module_deps_hash_backup = (); # backup hash of internal dependencies for aech module + my @broken_modules_names = (); # array of modules, which cannot be built further + my @dmake_args = (); + my %dead_parents = (); + my $initial_module = ''; + my $all_dependent = 1; # a flag indicating if the hash has independent keys + my $build_from_with_branches = ''; + my $build_all_cont = ''; + my $build_since = ''; + my $dlv_switch = ''; + my $child = 0; + my %processes_hash = (); + my %module_announced = (); + my $prepare = ''; # prepare for following incompatible build + my $ignore = ''; + my $html = ''; + my @ignored_errors = (); + my %incompatibles = (); + my %skip_modules = (); + my %exclude_branches = (); + my $only_platform = ''; # the only platform to prepare + my $only_common = ''; # the only common output tree to delete when preparing + my %build_modes = (); + my $maximal_processes = 0; # the max number of the processes run + my %modules_types = (); # modules types ('mod', 'img', 'lnk') hash + my %platforms = (); # platforms available or being working with + my %platforms_to_copy = (); # copy output trees for the platforms when --prepare + my $tmp_dir = get_tmp_dir(); # temp directory for checkout and other actions + my @possible_build_lists = ('gbuild.lst', 'build.lst', 'build.xlist'); # build lists names + my %build_list_paths = (); # build lists names + my %build_lists_hash = (); # hash of arrays $build_lists_hash{$module} = \($path, $xml_list_object) + my $pre_job = 'announce'; # job to add for not-single module build + my $post_job = ''; # -"- + my @warnings = (); # array of warnings to be shown at the end of the process + my @errors = (); # array of errors to be shown at the end of the process + my %html_info = (); # hash containing all necessary info for generating of html page + my %module_by_hash = (); # hash containing all modules names as values and correspondent hashes as keys + my %build_in_progress = (); # hash of modules currently being built + my %build_is_finished = (); # hash of already built modules + my %modules_with_errors = (); # hash of modules with build errors + my %build_in_progress_shown = (); # hash of modules being built, # and shown last time (to keep order) - $build_time = time; - %jobs_hash = (); - $html_path = undef; - $build_finished = 0; - $html_file = ''; - %had_error = (); # hack for mysterious windows problems - try run dmake 2 times if first time there was an error - $mkout = CorrectPath("$ENV{SOLARENV}/bin/mkout.pl"); - %weights_hash = (); # hash contains info about how many modules are dependent from one module - $grab_output = 1; - $stop_build_on_error = 0; # for multiprocessing mode: do not build further module if there is an error - $interactive = 0; # for interactive mode... (for testing purpose enabled by default) - $parent_process = 1; - $server_mode = 0; - $setenv_string = ''; # string for configuration of the client environment - $ports_string = ''; # string with possible ports for server - @server_ports = (); - $html_port = 0; - $server_socket_obj = undef; # socket object for server - $html_socket_obj = undef; # socket object for server + my $build_time = time; + my %jobs_hash = (); + my $html_path = undef; + my $build_finished = 0; + my $html_file = ''; + my %had_error = (); # hack for mysterious windows problems - try run dmake 2 times if first time there was an error + my $mkout = correct_path("$ENV{SOLARENV}/bin/mkout.pl"); + my %weights_hash = (); # hash contains info about how many modules are dependent from one module + my $grab_output = 1; + my $stop_build_on_error = 0; # for multiprocessing mode: do not build further module if there is an error + my $interactive = 0; # for interactive mode... (for testing purpose enabled by default) + my $parent_process = 1; + my $server_mode = 0; + my $setenv_string = ''; # string for configuration of the client environment + my $ports_string = ''; # string with possible ports for server + my @server_ports = (); + my $html_port = 0; + my $server_socket_obj = undef; # socket object for server + my $html_socket_obj = undef; # socket object for server my %clients_jobs = (); my %clients_times = (); my $client_timeout = 0; # time for client to build (in sec)... @@ -199,15 +192,27 @@ my $clear_config = 0; my $finished_children = 0; my $debug = 0; - %module_deps_hash_pids = (); + my %module_deps_hash_pids = (); my @argv = @ARGV; my $source_config_file; my $zenity_pid = 0; my $zenity_in = ''; my $zenity_out = ''; my $zenity_err = ''; + my $allow_gbuild = 0; + my %is_gbuild = (); my $verbose = 0; + my @modules_built = (); + my $deliver_command = $ENV{DELIVER}; + my %prj_platform = (); + my $check_error_string = ''; + my $dmake = ''; + my $dmake_args = ''; + my $echo = ''; + my $new_line = "\n"; + my $incompatible = 0; + my $local_host_ip = 'localhost'; ### main ### get_options(); @@ -216,10 +221,9 @@ zenity_tooltip("Starting build."); get_build_modes(); - %deliver_env = (); + my %deliver_env = (); if ($prepare) { get_platforms(\%platforms); - @modules_built = (); $deliver_env{'BUILD_SOSL'}++; $deliver_env{'COMMON_OUTDIR'}++; @@ -229,14 +233,15 @@ $deliver_env{'OUTPATH'}++; $deliver_env{'L10N_framework'}++; }; - $StandDir = get_stand_dir(); # This also sets $initial_module - $source_config = SourceConfig -> new($StandDir); + my $workspace_path = get_workspace_path(); # This also sets $initial_module + my $source_config = SourceConfig -> new($workspace_path); + check_partial_gnumake_build($initial_module); if ($html) { if (defined $html_path) { - $html_file = CorrectPath($html_path . '/' . $ENV{INPATH}. '.build.html'); + $html_file = correct_path($html_path . '/' . $ENV{INPATH}. '.build.html'); } else { - my $log_directory = Cwd::realpath(CorrectPath($StandDir . '/..')) . '/log'; + my $log_directory = Cwd::realpath(correct_path($workspace_path . '/..')) . '/log'; if ((!-d $log_directory) && (!mkdir($log_directory))) { print_error("Cannot create $log_directory for writing html file\n"); }; @@ -252,16 +257,9 @@ get_module_and_buildlist_paths(); provide_consistency() if (defined $ENV{CWS_WORK_STAMP} && defined($ENV{COMMON_ENV_TOOLS})); - $deliver_command = $ENV{DELIVER}; $deliver_command .= ' -verbose' if ($html || $verbose); $deliver_command .= ' '. $dlv_switch if ($dlv_switch); $ENV{mk_tmp}++; - %prj_platform = (); - $check_error_string = ''; - $dmake = ''; - $dmake_args = ''; - $echo = ''; - $new_line = "\n"; get_commands(); unlink ($cmd_file); @@ -305,7 +303,7 @@ print $echo."$_\n"; }; print $new_line; - print $echo."not found and couldn't be built. Dependencies on that module(s) ignored. Maybe you should correct build lists.\n"; + print $echo."not found and couldn't be built. dependencies on that module(s) ignored. Maybe you should correct build lists.\n"; print $new_line; do_exit(1) if ($checkparents); }; @@ -362,7 +360,7 @@ sub generate_config_file { sub start_interactive { - $pid = open(HTML_PIPE, "-|"); + my $pid = open(HTML_PIPE, "-|"); print "Pipe is open\n"; if ($pid) { # parent @@ -544,17 +542,24 @@ sub get_build_list_path { my $possible_dir_path = $module_paths{$_}.'/prj/'; if (-d $possible_dir_path) { foreach my $build_list (@possible_build_lists) { - my $possible_build_list_path = CorrectPath($possible_dir_path . $build_list); - if (-f $possible_build_list_path) { - $build_list_paths{$module} = $possible_build_list_path; - return $possible_build_list_path; + # if gbuild are allow we favor gbuild.lst as the build instruction + if($build_list ne "gbuild.lst" || $allow_gbuild) { + my $possible_build_list_path = correct_path($possible_dir_path . $build_list); + if (-f $possible_build_list_path) { + $build_list_paths{$module} = $possible_build_list_path; + if ($build_list eq "gbuild.lst") { +# print "Using gmake for module $module\n"; + $is_gbuild{$module} = 1; + }; + return $possible_build_list_path; + }; }; } print_error("There's no build list for $module"); }; }; $dead_parents{$module}++; - $build_list_paths{$module} = CorrectPath(retrieve_build_list($module)) if (!defined $build_list_paths{$module}); + $build_list_paths{$module} = correct_path(retrieve_build_list($module)) if (!defined $build_list_paths{$module}); return $build_list_paths{$module}; }; @@ -577,9 +582,9 @@ sub get_parent_deps { $parents_deps_hash{$_}++; } $$deps_hash{$module} = \%parents_deps_hash; - foreach $Parent (keys %parents_deps_hash) { - if (!defined($$deps_hash{$Parent}) && (!defined $exclude_branches{$module})) { - push (@unresolved_parents, $Parent); + foreach my $parent (keys %parents_deps_hash) { + if (!defined($$deps_hash{$parent}) && (!defined $exclude_branches{$module})) { + push (@unresolved_parents, $parent); }; }; }; @@ -646,7 +651,7 @@ sub reverse_dependencies { # sub build_all { if ($build_all_parents) { - my ($Prj, $PrjDir, $orig_prj); + my ($prj, $prj_dir, $orig_prj); get_parent_deps( $initial_module, \%global_deps_hash); if (scalar keys %active_modules) { $active_modules{$initial_module}++; @@ -661,7 +666,9 @@ sub build_all { prepare_build_from_with_branches(\%global_deps_hash, \%reversed_full_deps_hash); } if ($build_all_cont || $build_since) { + store_weights(\%global_deps_hash); prepare_build_all_cont(\%global_deps_hash); + %weights_hash = (); }; if ($generate_config) { %add_to_config = %global_deps_hash; @@ -669,11 +676,11 @@ sub build_all { exit 0; } elsif ($incompatible) { my @missing_modules = (); - foreach (keys %global_deps_hash) { + foreach (sort keys %global_deps_hash) { push(@missing_modules, $_) if (!defined $active_modules{$_}); }; if (scalar @missing_modules) { - print_error("There are modules:\n@missing_modules\n\nthat should be built, but they are not activated. Please, verify your $source_config_file.\n"); + push(@warnings, "The modules: \"@missing_modules\" should be have been built, but they are not activated and have been skipped. Be aware, that can cause compatibility problems. Maybe you should verify your $source_config_file.\n"); }; }; foreach my $module (keys %dead_parents, keys %skip_modules) { @@ -692,26 +699,26 @@ sub build_all { if ($server_mode) { run_server(); }; - while ($Prj = pick_prj_to_build(\%global_deps_hash)) { - if (!defined $dead_parents{$Prj}) { + while ($prj = pick_prj_to_build(\%global_deps_hash)) { + if (!defined $dead_parents{$prj}) { if (scalar keys %broken_build) { - print $echo . "Skipping project $Prj because of error(s)\n"; - remove_from_dependencies($Prj, \%global_deps_hash); - $build_is_finished{$Prj}++; + print $echo . "Skipping project $prj because of error(s)\n"; + remove_from_dependencies($prj, \%global_deps_hash); + $build_is_finished{$prj}++; next; }; - $PrjDir = $module_paths{$Prj}; - get_module_dep_hash($Prj, \%local_deps_hash); - my $info_hash = $html_info{$Prj}; - $$info_hash{DIRS} = check_deps_hash(\%local_deps_hash, $Prj); - $module_by_hash{\%local_deps_hash} = $Prj; + $prj_dir = $module_paths{$prj}; + get_module_dep_hash($prj, \%local_deps_hash); + my $info_hash = $html_info{$prj}; + $$info_hash{DIRS} = check_deps_hash(\%local_deps_hash, $prj); + $module_by_hash{\%local_deps_hash} = $prj; build_dependent(\%local_deps_hash); print $check_error_string; }; - remove_from_dependencies($Prj, \%global_deps_hash); - $build_is_finished{$Prj}++; + remove_from_dependencies($prj, \%global_deps_hash); + $build_is_finished{$prj}++; }; } else { store_build_list_content($initial_module); @@ -731,7 +738,7 @@ sub build_all { sub backup_deps_hash { my $source_hash = shift; my $backup_hash = shift; - foreach $key (keys %$source_hash) { + foreach my $key (keys %$source_hash) { my %values_hash = %{$$source_hash{$key}}; $$backup_hash{$key} = \%values_hash; }; @@ -792,6 +799,7 @@ sub dmake_dir { html_store_job_info(\%local_deps_hash, $job_name, $error_code) if (!$child); }; + if ($error_code && $ignore) { push(@ignored_errors, $job_name); $error_code = 0; @@ -808,6 +816,7 @@ sub dmake_dir { }; _exit(0); } elsif ($error_code && ($error_code != -1)) { + $broken_build{$job_name} = $error_code; return $error_code; }; }; @@ -876,7 +885,7 @@ sub get_prj_platform { s/\r\n//; $line++; if ($_ =~ /\snmake\s/) { - if ($' =~ /\s*-\s+(\w+)[,\S+]*\s+(\S+)/ ) { + if ($' =~ /\s*-\s+(\w+)[,\S+]*\s+(\S+)/ ) { #' my $platform = $1; my $alias = $2; print_error ("There is no correct alias set in the line $line!") if ($alias eq 'NULL'); @@ -896,8 +905,8 @@ sub get_deps_from_object { my ($module, $build_list_object, $dependencies_hash) = @_; foreach my $dir ($build_list_object->getJobDirectories("make", $ENV{GUI})) { - $PathHash{$dir} = $module_paths{$module}; - $PathHash{$dir} .= $dir if ($dir ne '/'); + $path_hash{$dir} = $module_paths{$module}; + $path_hash{$dir} .= $dir if ($dir ne '/'); my %deps_hash = (); foreach my $dep ($build_list_object->getJobDependencies($dir, "make", $ENV{GUI})) { @@ -928,7 +937,7 @@ sub get_module_dep_hash { # sub get_deps_hash { my ($dummy, $module_to_build); - %DeadDependencies = (); + my %dead_dependencies = (); $module_to_build = shift; my $dependencies_hash = shift; if ($custom_job) { @@ -958,37 +967,37 @@ sub get_deps_hash { }; s/\r\n//; if ($_ =~ /\s+nmake\s+/o) { - my ($Platform, $Dependencies, $Dir, $DirAlias); + my ($platform, $dependencies, $dir, $dir_alias); my %deps_hash = (); - $Dependencies = $'; + $dependencies = $'; $dummy = $`; $dummy =~ /(\S+)\s+(\S*)/o; - $Dir = $2; - $Dependencies =~ /(\w+)/o; - $Platform = $1; - $Dependencies = $'; - while ($Dependencies =~ /,(\w+)/o) { - $Dependencies = $'; + $dir = $2; + $dependencies =~ /(\w+)/o; + $platform = $1; + $dependencies = $'; + while ($dependencies =~ /,(\w+)/o) { + $dependencies = $'; #' }; - $Dependencies =~ /\s+(\S+)\s+/o; - $DirAlias = $1; - if (!CheckPlatform($Platform)) { - next if (defined $PlatformHash{$DirAlias}); - $DeadDependencies{$DirAlias}++; + $dependencies =~ /\s+(\S+)\s+/o; + $dir_alias = $1; + if (!check_platform($platform)) { + next if (defined $platform_hash{$dir_alias}); + $dead_dependencies{$dir_alias}++; next; }; - delete $DeadDependencies{$DirAlias} if (defined $DeadDependencies{$DirAlias}); - print_error("Directory alias $DirAlias is defined at least twice!! Please, correct build.lst in module $module_to_build") if (defined $$dependencies_hash{$DirAlias}); - $PlatformHash{$DirAlias}++; - $Dependencies = $'; - print_error("$module_to_build/prj/build.lst has wrongly written dependencies string:\n$_\n") if (!$Dependencies); - $deps_hash{$_}++ foreach (GetDependenciesArray($Dependencies)); - $$dependencies_hash{$DirAlias} = \%deps_hash; + delete $dead_dependencies{$dir_alias} if (defined $dead_dependencies{$dir_alias}); + print_error("Directory alias $dir_alias is defined at least twice!! Please, correct build.lst in module $module_to_build") if (defined $$dependencies_hash{$dir_alias}); + $platform_hash{$dir_alias}++; + $dependencies = $'; #' + print_error("$module_to_build/prj/build.lst has wrongly written dependencies string:\n$_\n") if (!$dependencies); + $deps_hash{$_}++ foreach (get_dependency_array($dependencies)); + $$dependencies_hash{$dir_alias} = \%deps_hash; my $local_dir = ''; - if ($Dir =~ /(\\|\/)/o) { + if ($dir =~ /(\\|\/)/o) { $local_dir = "/$'"; }; - $PathHash{$DirAlias} = CorrectPath($module_paths{$module_to_build} . $local_dir); + $path_hash{$dir_alias} = correct_path($module_paths{$module_to_build} . $local_dir); } elsif ($_ !~ /^\s*$/ && $_ !~ /^\w*\s/o) { chomp; push(@errors, $_); @@ -1005,15 +1014,15 @@ sub get_deps_hash { print_error($message); }; }; - foreach my $alias (keys %DeadDependencies) { - next if defined $AliveDependencies{$alias}; - if (!IsHashNative($alias)) { + foreach my $alias (keys %dead_dependencies) { + next if defined $alive_dependencies{$alias}; +# if (!IsHashNative($alias)) { remove_from_dependencies($alias, $dependencies_hash); - delete $DeadDependencies{$alias}; - }; + delete $dead_dependencies{$alias}; +# }; }; }; - resolve_aliases($dependencies_hash, \%PathHash); + resolve_aliases($dependencies_hash, \%path_hash); if (!$prepare) { add_prerequisite_job($dependencies_hash, $module_to_build, $pre_custom_job); add_prerequisite_job($dependencies_hash, $module_to_build, $pre_job); @@ -1032,7 +1041,7 @@ sub add_prerequisite_job { return if (!$job); $job = "$module $job"; foreach (keys %$dependencies_hash) { - $deps_hash = $$dependencies_hash{$_}; + my $deps_hash = $$dependencies_hash{$_}; $$deps_hash{$job}++; }; $$dependencies_hash{$job} = {}; @@ -1054,15 +1063,15 @@ sub add_dependent_job { # this procedure converts aliases to absolute paths # sub resolve_aliases { - my ($dependencies_hash, $PathHash) = @_; + my ($dependencies_hash, $path_hash) = @_; foreach my $dir_alias (keys %$dependencies_hash) { my $aliases_hash_ref = $$dependencies_hash{$dir_alias}; my %paths_hash = (); foreach (keys %$aliases_hash_ref) { - $paths_hash{$$PathHash{$_}}++; + $paths_hash{$$path_hash{$_}}++; }; delete $$dependencies_hash{$dir_alias}; - $$dependencies_hash{$$PathHash{$dir_alias}} = \%paths_hash; + $$dependencies_hash{$$path_hash{$dir_alias}} = \%paths_hash; }; }; @@ -1082,7 +1091,7 @@ sub mark_platform { # Convert path from abstract (with '\' and/or '/' delimiters) # to system-independent # -sub CorrectPath { +sub correct_path { $_ = shift; s/\\/\//g; return $_; @@ -1128,50 +1137,50 @@ sub get_commands { # # Procedure retrieves list of projects to be built from build.lst # -sub get_stand_dir { +sub get_workspace_path { if (!defined $ENV{GUI}) { $ENV{mk_tmp} = ''; die "No environment set\n"; }; my $repository_helper = RepositoryHelper->new(); - my $StandDir = $repository_helper->get_repository_root(); + my $workspace_path = $repository_helper->get_repository_root(); my $initial_dir = $repository_helper->get_initial_directory(); - if ($StandDir eq $initial_dir) { + if ($workspace_path eq $initial_dir) { print_error('Found no project to build'); }; - $initial_module = substr($initial_dir, length($StandDir) + 1); + $initial_module = substr($initial_dir, length($workspace_path) + 1); if ($initial_module =~ /(\\|\/)/) { $initial_module = $`; }; - $module_paths{$initial_module} = $StandDir . "/$initial_module"; - return $StandDir; + $module_paths{$initial_module} = $workspace_path . "/$initial_module"; + return $workspace_path; }; # # Picks project which can be built now from hash and then deletes it from hash # sub pick_prj_to_build { - my $DepsHash = shift; + my $deps_hash = shift; get_html_orders(); - my $Prj = find_indep_prj($DepsHash); - if ($Prj) { - delete $$DepsHash{$Prj}; + my $prj = find_indep_prj($deps_hash); + if ($prj) { + delete $$deps_hash{$prj}; generate_html_file(); }; - return $Prj; + return $prj; }; # # Make a decision if the project should be built on this platform # -sub CheckPlatform { - my $Platform = shift; - return 1 if ($Platform eq 'all'); - return 1 if (($ENV{GUI} eq 'WIN') && ($Platform eq 'w')); - return 1 if (($ENV{GUI} eq 'UNX') && ($Platform eq 'u')); - return 1 if (($ENV{GUI} eq 'OS2') && ($Platform eq 'p')); +sub check_platform { + my $platform = shift; + return 1 if ($platform eq 'all'); + return 1 if (($ENV{GUI} eq 'WIN') && ($platform eq 'w')); + return 1 if (($ENV{GUI} eq 'UNX') && ($platform eq 'u')); + return 1 if (($ENV{GUI} eq 'OS2') && ($platform eq 'p')); return 1 if (($ENV{GUI} eq 'WNT') && - (($Platform eq 'w') || ($Platform eq 'n'))); + (($platform eq 'w') || ($platform eq 'n'))); return 0; }; @@ -1180,14 +1189,14 @@ sub CheckPlatform { # of all from given project dependent projects # sub remove_from_dependencies { - my ($ExclPrj, $i, $Prj, $Dependencies); - $ExclPrj = shift; - my $ExclPrj_orig = ''; - $ExclPrj_orig = $` if (($ExclPrj =~ /\.lnk$/o) || ($ExclPrj =~ /\.link$/o)); - $Dependencies = shift; - foreach $Prj (keys %$Dependencies) { - my $prj_deps_hash = $$Dependencies{$Prj}; - delete $$prj_deps_hash{$ExclPrj} if (defined $$prj_deps_hash{$ExclPrj}); + my ($exclude_prj, $i, $prj, $dependencies); + $exclude_prj = shift; + my $exclude_prj_orig = ''; + $exclude_prj_orig = $` if (($exclude_prj =~ /\.lnk$/o) || ($exclude_prj =~ /\.link$/o)); + $dependencies = shift; + foreach $prj (keys %$dependencies) { + my $prj_deps_hash = $$dependencies{$prj}; + delete $$prj_deps_hash{$exclude_prj} if (defined $$prj_deps_hash{$exclude_prj}); }; }; @@ -1209,8 +1218,8 @@ sub check_deps_hash { do { $consistent = ''; - foreach $key (sort keys %deps_hash) { - $local_deps_ref = $deps_hash{$key}; + foreach my $key (sort keys %deps_hash) { + my $local_deps_ref = $deps_hash{$key}; if (!scalar keys %$local_deps_ref) { if (defined $module) { $build_number++; @@ -1244,7 +1253,7 @@ sub check_deps_hash { BUILD_NUMBER => $build_number, STATUS => 'waiting', LOG_PATH => '../' . $source_config->get_module_repository($module) . "/$module/$ENV{INPATH}/misc/logs/$log_name", - LONG_LOG_PATH => CorrectPath($module_paths{$module} . "/$ENV{INPATH}/misc/logs/$log_name"), + LONG_LOG_PATH => correct_path($module_paths{$module} . "/$ENV{INPATH}/misc/logs/$log_name"), START_TIME => 0, FINISH_TIME => 0, CLIENT => '-' @@ -1277,16 +1286,19 @@ sub check_deps_hash { # Find project with no dependencies left. # sub find_indep_prj { - my ($Dependencies, $i); + my ($dependencies, $i); my @candidates = (); $all_dependent = 1; handle_dead_children(0) if ($processes_to_run); my $children = children_number(); return '' if (!$server_mode && $children && ($children >= $processes_to_run)); - $Dependencies = shift; - if (scalar keys %$Dependencies) { - foreach my $job (keys %$Dependencies) { - push(@candidates, $job) if (!scalar keys %{$$Dependencies{$job}}); + $dependencies = shift; + if (scalar keys %$dependencies) { + foreach my $job (keys %$dependencies) { + if (!scalar keys %{$$dependencies{$job}}) { + push(@candidates, $job); + last if (!$processes_to_run); + }; }; if (scalar @candidates) { $all_dependent = 0; @@ -1325,56 +1337,55 @@ sub get_waiters_number { # # Check if given entry is HASH-native, that is not a user-defined data # -sub IsHashNative { - my $Prj = shift; - return 1 if ($Prj =~ /^HASH\(0x[\d | a | b | c | d | e | f]{6,}\)/); - return 0; -}; +#sub IsHashNative { +# my $prj = shift; +# return 1 if ($prj =~ /^HASH\(0x[\d | a | b | c | d | e | f]{6,}\)/); +# return 0; +#}; # # Getting array of dependencies from the string given # -sub GetDependenciesArray { - my ($DepString, @Dependencies, $ParentPrj, $prj, $string); - @Dependencies = (); - $DepString = shift; - $string = $DepString; +sub get_dependency_array { + my ($dep_string, @dependencies, $parent_prj, $prj, $string); + @dependencies = (); + $dep_string = shift; + $string = $dep_string; $prj = shift; - while ($DepString !~ /^NULL/o) { - print_error("Project $prj has wrongly written dependencies string:\n $string") if (!$DepString); - $DepString =~ /(\S+)\s*/o; - $ParentPrj = $1; - $DepString = $'; - if ($ParentPrj =~ /\.(\w+)$/o) { - $ParentPrj = $`; - if (($prj_platform{$ParentPrj} ne $1) && - ($prj_platform{$ParentPrj} ne 'all')) { - print_error ("$ParentPrj\.$1 is a wrongly dependency identifier!\nCheck if it is platform dependent"); + while ($dep_string !~ /^NULL/o) { + print_error("Project $prj has wrongly written dependencies string:\n $string") if (!$dep_string); + $dep_string =~ /(\S+)\s*/o; + $parent_prj = $1; + $dep_string = $'; #' + if ($parent_prj =~ /\.(\w+)$/o) { + $parent_prj = $`; + if (($prj_platform{$parent_prj} ne $1) && + ($prj_platform{$parent_prj} ne 'all')) { + print_error ("$parent_prj\.$1 is a wrongly dependency identifier!\nCheck if it is platform dependent"); }; - $AliveDependencies{$ParentPrj}++ if (CheckPlatform($1)); - push(@Dependencies, $ParentPrj); + $alive_dependencies{$parent_prj}++ if (check_platform($1)); + push(@dependencies, $parent_prj); } else { - if ((exists($prj_platform{$ParentPrj})) && - ($prj_platform{$ParentPrj} ne 'all') ) { - print_error("$ParentPrj is a wrongly used dependency identifier!\nCheck if it is platform dependent"); + if ((exists($prj_platform{$parent_prj})) && + ($prj_platform{$parent_prj} ne 'all') ) { + print_error("$parent_prj is a wrongly used dependency identifier!\nCheck if it is platform dependent"); }; - push(@Dependencies, $ParentPrj); + push(@dependencies, $parent_prj); }; }; - return @Dependencies; + return @dependencies; }; # # Getting current directory list # -sub GetDirectoryList { - my ($Path); - $Path = shift; - opendir(CurrentDirList, $Path); - @DirectoryList = readdir(CurrentDirList); +sub get_directory_list { + my $path = shift; + opendir(CurrentDirList, $path); + my @directory_list = readdir(CurrentDirList); closedir(CurrentDirList); - return @DirectoryList; + return @directory_list; }; sub print_error { @@ -1465,9 +1476,10 @@ sub get_options { $arg =~ /^--checkmodules$/ and $checkparents = 1 and $ignore = 1 and next; $arg =~ /^-s$/ and $show = 1 and next; $arg =~ /^--deliver$/ and $deliver = 1 and next; + $arg =~ /^--gmake$/ and $allow_gbuild = 1 and print "ALLOW GBUILD" and next; $arg =~ /^(--job=)/ and $custom_job = $' and next; $arg =~ /^(--pre_job=)/ and $pre_custom_job = $' and next; - $arg =~ /^(--post_job=)/ and $post_custom_job = $' and next; + $arg =~ /^(--post_job=)/ and $post_custom_job = $' and next; #' $arg =~ /^-d$/ and $deliver = 1 and next; $arg =~ /^--dlv_switch$/ and $dlv_switch = shift @ARGV and next; $arg =~ /^--file$/ and $cmd_file = shift @ARGV and next; @@ -1600,7 +1612,7 @@ sub get_options { }; if ($interactive) { $html++; # enable html page generation... - $local_host_name = hostname(); + my $local_host_name = hostname(); $local_host_ip = inet_ntoa(scalar(gethostbyname($local_host_name)) || 'localhost'); } # Default build modes(for OpenOffice.org) @@ -1616,11 +1628,12 @@ sub get_module_and_buildlist_paths { $source_config_file = $source_config->get_config_file_path(); $active_modules{$_}++ foreach ($source_config->get_active_modules()); my %active_modules_copy = %active_modules; - foreach ($source_config->get_all_modules()) { - delete $active_modules_copy{$_} if defined($active_modules_copy{$_}); - next if ($_ eq $initial_module); - $module_paths{$_} = $source_config->get_module_path($_); - $build_list_paths{$_} = $source_config->get_module_build_list($_) + foreach my $module ($source_config->get_all_modules()) { + delete $active_modules_copy{$module} if defined($active_modules_copy{$module}); + next if ($module eq $initial_module); + $module_paths{$module} = $source_config->get_module_path($module); + $build_list_paths{$module} = $source_config->get_module_build_list($module); + $is_gbuild{$module} = $source_config->{GBUILD}; } $dead_parents{$_}++ foreach (keys %active_modules_copy); }; @@ -1662,12 +1675,12 @@ sub get_switch_options { sub cancel_build { my $broken_modules_number = scalar @broken_modules_names; - print "\n"; - print "-----------------------------------------------------------------------\n"; - print " Oh dear - something failed during the build - sorry !\n"; - print " For more help with debugging build errors, please see the section in:\n"; - print " http://wiki.documentfoundation.org/Development\n"; - print "\n"; + print STDERR "\n"; + print STDERR "-----------------------------------------------------------------------\n"; + print STDERR " Oh dear - something failed during the build - sorry !\n"; + print STDERR " For more help with debugging build errors, please see the section in:\n"; + print STDERR " http://wiki.documentfoundation.org/Development\n"; + print STDERR "\n"; if (!$broken_modules_number || !$build_all_parents) { while (children_number()) { @@ -1676,34 +1689,34 @@ sub cancel_build { } if (keys %broken_build) { - print " internal build errors:\n\n"; + print STDERR " internal build errors:\n\n"; foreach (keys %broken_build) { - print "ERROR: error " . $broken_build{$_} . " occurred while making $_\n"; + print STDERR "ERROR: error " . $broken_build{$_} . " occurred while making $_\n"; }; - print "\n"; + print STDERR "\n"; } my $module = shift @broken_modules_names; if ($broken_modules_number > 1) { - print " it seems you are using a threaded build, which means that the\n"; - print " actual compile error is probably hidden far above, and could be\n"; - print " inside any of these other modules:\n"; - print " @broken_modules_names\n"; - print " please re-run build inside each one to isolate the problem.\n"; + print STDERR " it seems you are using a threaded build, which means that the\n"; + print STDERR " actual compile error is probably hidden far above, and could be\n"; + print STDERR " inside any of these other modules:\n"; + print STDERR " @broken_modules_names\n"; + print STDERR " please re-run build inside each one to isolate the problem.\n"; } else { - print " it seems that the error is inside '$module', please re-run build\n"; - print " inside this module to isolate the error and/or test your fix:\n"; + print STDERR " it seems that the error is inside '$module', please re-run build\n"; + print STDERR " inside this module to isolate the error and/or test your fix:\n"; } - print "-----------------------------------------------------------------------\n"; - print "\n"; - print "rm -Rf " . $ENV{'SRC_ROOT'} . "/$module/" . $ENV{'INPATH'} . " # optional module 'clean'\n"; - print "" . $ENV{'OOO_SHELL'} . "\n"; - print "cd " . $ENV{'SRC_ROOT'} . "\n"; - print "source ./" . $ENV{'ENV_SCRIPT'} . "\n"; - print "cd $module\n"; - print "build\n"; - print "\n"; - print "when the problem is isolated and fixed exit and re-run 'make' from the top-level\n"; + print STDERR "-----------------------------------------------------------------------\n"; + print STDERR "\n"; + print STDERR "rm -Rf " . $ENV{'SRC_ROOT'} . "/$module/" . $ENV{'INPATH'} . " # optional module 'clean'\n"; + print STDERR "" . $ENV{'OOO_SHELL'} . "\n"; + print STDERR "cd " . $ENV{'SRC_ROOT'} . "\n"; + print STDERR "source ./" . $ENV{'ENV_SCRIPT'} . "\n"; + print STDERR "cd $module\n"; + print STDERR "build\n"; + print STDERR "\n"; + print STDERR "when the problem is isolated and fixed exit and re-run 'make' from the top-level\n"; zenity_message("LibreOffice Build Failed!"); zenity_close(); @@ -1752,38 +1765,20 @@ sub handle_dead_children { my $try_once_more = 0; do { my $pid = 0; - if ($ENV{GUI} eq 'WNT' && !$cygwin) { - foreach $pid (keys %processes_hash) { - my $exit_code = undef; - my $proc_obj = $windows_procs{$pid}; - $proc_obj->GetExitCode($exit_code); - if ( $exit_code != 259 ) { - $try_once_more = store_error($pid, $exit_code); - delete $windows_procs{$pid}; - if ($try_once_more) { - give_second_chance($pid); - } else { - clear_from_child($pid); - }; - }; - }; - sleep 1 if (children_number() >= $processes_to_run || ($force_wait && ($running_children == children_number()))); + if (children_number() >= $processes_to_run || + ($force_wait && ($running_children == children_number()))) { + $pid = wait(); } else { - if (children_number() >= $processes_to_run || - ($force_wait && ($running_children == children_number()))) { - $pid = wait(); + $pid = waitpid( -1, &WNOHANG); + }; + if ($pid > 0) { + $try_once_more = store_error($pid, $?); + if ($try_once_more) { + give_second_chance($pid); } else { - $pid = waitpid( -1, &WNOHANG); - }; - if ($pid > 0) { - $try_once_more = store_error($pid, $?); - if ($try_once_more) { - give_second_chance($pid); - } else { - clear_from_child($pid); - }; - $finished_children++; + clear_from_child($pid); }; + $finished_children++; }; } while(children_number() >= $processes_to_run); }; @@ -1915,19 +1910,19 @@ sub store_pid { # Build everything that should be built multiprocessing version # sub build_multiprocessing { - my $Prj; + my $prj; do { my $got_module = 0; $finished_children = 0; - while ($Prj = pick_prj_to_build(\%global_deps_hash)) { - if (!defined $projects_deps_hash{$Prj}) { - $projects_deps_hash{$Prj} = {}; - get_module_dep_hash($Prj, $projects_deps_hash{$Prj}); - my $info_hash = $html_info{$Prj}; - $$info_hash{DIRS} = check_deps_hash($projects_deps_hash{$Prj}, $Prj); - $module_by_hash{$projects_deps_hash{$Prj}} = $Prj; + while ($prj = pick_prj_to_build(\%global_deps_hash)) { + if (!defined $projects_deps_hash{$prj}) { + $projects_deps_hash{$prj} = {}; + get_module_dep_hash($prj, $projects_deps_hash{$prj}); + my $info_hash = $html_info{$prj}; + $$info_hash{DIRS} = check_deps_hash($projects_deps_hash{$prj}, $prj); + $module_by_hash{$projects_deps_hash{$prj}} = $prj; } - $module_build_queue{$Prj}++; + $module_build_queue{$prj}++; $got_module++; }; if (!$got_module) { @@ -1968,7 +1963,7 @@ sub build_actual_queue { do { my @sorted_queue = sort {(scalar keys %{$projects_deps_hash{$a}}) <=> (scalar keys %{$projects_deps_hash{$b}})} keys %$build_queue; my $started_children = 0; - foreach $Prj (keys %$build_queue) { + foreach my $prj (keys %$build_queue) { get_html_orders(); if ($reschedule_queue) { $reschedule_queue = 0; @@ -1981,19 +1976,19 @@ sub build_actual_queue { }; return; }; - if (defined $modules_with_errors{$projects_deps_hash{$Prj}} && !$ignore) { - push (@broken_modules_names, $Prj); - delete $$build_queue{$Prj}; + if (defined $modules_with_errors{$projects_deps_hash{$prj}} && !$ignore) { + push (@broken_modules_names, $prj); + delete $$build_queue{$prj}; next; }; - $started_children += build_dependent($projects_deps_hash{$Prj}); - if ((!scalar keys %{$projects_deps_hash{$Prj}}) && - !$running_children{$projects_deps_hash{$Prj}}) { - if (!defined $modules_with_errors{$projects_deps_hash{$Prj}} || $ignore) + $started_children += build_dependent($projects_deps_hash{$prj}); + if ((!scalar keys %{$projects_deps_hash{$prj}}) && + !$running_children{$projects_deps_hash{$prj}}) { + if (!defined $modules_with_errors{$projects_deps_hash{$prj}} || $ignore) { - remove_from_dependencies($Prj, \%global_deps_hash); - $build_is_finished{$Prj}++; - delete $$build_queue{$Prj}; + remove_from_dependencies($prj, \%global_deps_hash); + $build_is_finished{$prj}++; + delete $$build_queue{$prj}; $finished_projects++; }; }; @@ -2012,6 +2007,7 @@ sub build_actual_queue { sub run_job { my ($job, $path, $registered_name) = @_; my $job_to_do = $job; + my $error_code = 0; print "$registered_name\n"; return 0 if ( $show ); $job_to_do = $deliver_command if ($job eq 'deliver'); @@ -2041,7 +2037,7 @@ sub do_custom_job { my ($module_job, $dependencies_hash) = @_; $module_job =~ /(\s)/o; my $module = $`; - my $job = $'; + my $job = $'; #' html_store_job_info($dependencies_hash, $module_job); my $error_code = 0; if ($job eq $pre_job) { @@ -2057,7 +2053,7 @@ sub do_custom_job { }; if ($error_code) { $modules_with_errors{$dependencies_hash}++; - $broken_build{$module} = $error_code; +# $broken_build{$module_job} = $error_code; } else { remove_from_dependencies($module_job, $dependencies_hash); }; @@ -2070,31 +2066,31 @@ sub do_custom_job { # Print announcement for module just started # sub announce_module { - my $Prj = shift; - $build_in_progress{$Prj}++; - print_announce($Prj); + my $prj = shift; + $build_in_progress{$prj}++; + print_announce($prj); }; sub print_announce { - my $Prj = shift; - return if (defined $module_announced{$Prj}); + my $prj = shift; + return if (defined $module_announced{$prj}); my $prj_type = ''; - $prj_type = $modules_types{$Prj} if (defined $modules_types{$Prj}); + $prj_type = $modules_types{$prj} if (defined $modules_types{$prj}); my $text; if ($prj_type eq 'lnk') { - if (!defined $active_modules{$Prj}) { - $text = "Skipping module $Prj\n"; + if (!defined $active_modules{$prj}) { + $text = "Skipping module $prj\n"; } else { - $text = "Skipping link to $Prj\n"; + $text = "Skipping link to $prj\n"; }; - $build_is_finished{$Prj}++; + $build_is_finished{$prj}++; } elsif ($prj_type eq 'img') { - $text = "Skipping incomplete $Prj\n"; - $build_is_finished{$Prj}++; + $text = "Skipping incomplete $prj\n"; + $build_is_finished{$prj}++; } elsif ($custom_job) { - $text = "Running custom job \"$custom_job\" in module $Prj\n"; + $text = "Running custom job \"$custom_job\" in module $prj\n"; } else { - $text = "Building module $Prj\n"; + $text = "Building module $prj\n"; }; my $announce_string = $new_line; $announce_string .= $echo . "=============\n"; @@ -2104,7 +2100,7 @@ sub print_announce { my $total_modules = scalar(keys %build_lists_hash); my $modules_started = scalar(keys %module_announced) + 1; zenity_tooltip("($modules_started/$total_modules) $text"); - $module_announced{$Prj}++; + $module_announced{$prj}++; }; sub zenity_enabled { @@ -2194,7 +2190,7 @@ sub modules_classify { # sub provide_consistency { check_dir(); - foreach $var_ref (\$build_all_cont, \$build_since) { + foreach my $var_ref (\$build_all_cont, \$build_since) { if ($$var_ref) { return if (defined $module_paths{$$var_ref}); print_error("Cannot find module '$$var_ref'", 9); @@ -2234,7 +2230,7 @@ sub clear_module { closedir(DIRHANDLE); foreach (@dir_content) { next if (/^\.+$/); - my $dir = CorrectPath($module_paths{$module}.'/'.$_); + my $dir = correct_path($module_paths{$module}.'/'.$_); if ((!-d $dir.'/.svn') && is_output_tree($dir)) { rmtree("$dir", 0, 1); if (-d $dir) { @@ -2289,28 +2285,24 @@ sub retrieve_build_list { my $old_fh = select(STDOUT); # Try to get global depencies from solver's build.lst if such exists - my $solver_inc_dir = "$ENV{SOLARVER}/common"; + my $solver_inc_dir = "$ENV{SOLARVER}/$ENV{INPATH}"; $solver_inc_dir .= $ENV{PROEXT} if (defined $ENV{PROEXT}); $solver_inc_dir .= '/inc'; $solver_inc_dir .= $ENV{UPDMINOREXT} if (defined $ENV{UPDMINOREXT}); $solver_inc_dir .= "/$module"; - $solver_inc_dir = CorrectPath($solver_inc_dir); + $solver_inc_dir = correct_path($solver_inc_dir); $dead_parents{$module}++; print "Fetching dependencies for module $module from solver..."; - foreach (@possible_build_lists) { - my $possible_build_lst = "$solver_inc_dir/$_"; - if (-e $possible_build_lst) { + foreach my $onelist (@possible_build_lists) { + my $build_list_candidate = "$solver_inc_dir/$onelist"; + if (-e $build_list_candidate) { print " ok\n"; select($old_fh); - return $possible_build_lst; + return $build_list_candidate; }; } - print " failed\n"; - - if (!defined $dead_parents{$module}) { - print "WARNING: Cannot figure out CWS for $module. Forgot to set CWS?\n"; - } - select($old_fh); + print(" failed\n"); + print_error("incomplete dependencies!\n"); return undef; }; @@ -2321,7 +2313,7 @@ sub fix_permissions { }; sub prepare_build_from_with_branches { - ($full_deps_hash, $reversed_full_deps_hash) = @_; + my ($full_deps_hash, $reversed_full_deps_hash) = @_; foreach my $prerequisite (keys %$full_deps_hash) { foreach my $dependent_module (keys %incompatibles) { if (defined ${$$reversed_full_deps_hash{$prerequisite}}{$dependent_module}) { @@ -2415,7 +2407,7 @@ sub prepare_build_all_cont { $border_prj = $build_all_cont if ($build_all_cont); $border_prj = $build_since if ($build_since); while ($prj = pick_prj_to_build($deps_hash)) { - $orig_prj = ''; + my $orig_prj = ''; $orig_prj = $` if ($prj =~ /\.lnk$/o); $orig_prj = $` if ($prj =~ /\.link$/o); if (($border_prj ne $prj) && @@ -2480,7 +2472,7 @@ sub get_modules_passed { if ($option =~ /(:)/) { $option = $`; print_error("\'--from\' switch collision") if ($build_all_cont); - $build_all_cont = $'; + $build_all_cont = $'; #' }; $$hash_ref{$option}++; }; @@ -2573,7 +2565,7 @@ sub read_ssolar_vars { my ($verswitch, $source_root, $cwsname); $verswitch = "-ver $ENV{UPDMINOR}" if (defined $ENV{UPDMINOR}); $source_root = '-sourceroot' if (defined $ENV{SOURCE_ROOT_USED}); - $cws_name = "-cwsname $ENV{CWS_WORK_STAMP}" if (defined $ENV{CWS_WORK_STAMP}); + my $cws_name = "-cwsname $ENV{CWS_WORK_STAMP}" if (defined $ENV{CWS_WORK_STAMP}); my $param = "-$ENV{WORK_STAMP} $verswitch $source_root $cws_name $pro $platform"; my $ss_command = "$perl $setsolar -file $tmp_file $param $nul"; @@ -2610,8 +2602,8 @@ sub get_solar_vars { sub get_current_module { my $module_name = shift; my $link_name = $module_name . '.lnk'; - $link_name .= '.link' if (-e $StandDir.$module_name . '.link'); - chdir $StandDir; + $link_name .= '.link' if (-e $workspace_path.$module_name . '.link'); + chdir $workspace_path; getcwd(); print "\nBreaking link to module $module_name"; my $result = rename $link_name, $module_name; @@ -2632,7 +2624,7 @@ sub check_dir { if (($current_module =~ /(\.lnk)$/) || ($current_module =~ /(\.link)$/)) { $current_module = $`; # we're dealing with a link => fallback to SOLARSRC under UNIX - $StandDir = $ENV{SOLARSRC}.'/'; + $workspace_path = $ENV{SOLARSRC}.'/'; get_current_module($current_module); return; } else { @@ -2684,9 +2676,9 @@ sub do_exit { if ( $^O eq 'os2' ) { # perl 5.10 returns 'resource busy' for rmtree - rmdir(CorrectPath($tmp_dir)) if ($tmp_dir); + rmdir(correct_path($tmp_dir)) if ($tmp_dir); } - rmtree(CorrectPath($tmp_dir), 0, 0) if ($tmp_dir); + rmtree(correct_path($tmp_dir), 0, 0) if ($tmp_dir); print STDERR "Cannot delete $tmp_dir. Please remove it manually\n" if (-d $tmp_dir); exit($exit_code); }; @@ -2703,7 +2695,7 @@ sub sort_modules_appearance { delete $build_in_progress{$_} if (defined $build_in_progress{$_}); delete $build_in_progress_shown{$_} if (defined $build_in_progress_shown{$_}); }; - @modules_order = sort keys %modules_with_errors; + my @modules_order = sort keys %modules_with_errors; foreach (keys %modules_with_errors) { delete $build_in_progress{$_} if (defined $build_in_progress{$_}); delete $build_is_finished{$_} if (defined $build_is_finished{$_}); @@ -3344,7 +3336,7 @@ sub run_server { my %client_hash = (); foreach (@client_data) { /(=)/; - $client_hash{$`} = $'; + $client_hash{$`} = $'; #' } my $pid = $client_hash{pid} . '@' . $client_host; if (defined $client_hash{platform}) { @@ -3390,7 +3382,7 @@ sub run_server { print $new_socket_obj $job_string_base . $job_string; $clients_jobs{$pid} = $job_string; $clients_times{$pid} = time; - $children_running = children_number(); + my $children_running = children_number(); $verbose_mode && print 'Running processes: ', $children_running, "\n"; $maximal_processes = $children_running if ($children_running > $maximal_processes); } else { @@ -3451,8 +3443,15 @@ sub get_job_string { my $log_file = $jobs_hash{$job_dir}->{LONG_LOG_PATH}; my $full_job_dir = $job_dir; if ($job_dir =~ /(\s)/o) { - $job = $'; - $job = $deliver_command if ($job eq $post_job); + $job = $'; #' + print $echo . "determine if we need to deliver $job_dir\n"; + if ($job eq $post_job) { + if( $is_gbuild{$job_dir} ) { + print "Skip deliver for gmake-built module $job_dir\n"; + return''; + }; + $job = $deliver_command + }; $full_job_dir = $module_paths{$`}; } my $log_dir = File::Basename::dirname($log_file); @@ -3470,23 +3469,23 @@ sub pick_jobdir { my $build_queue = shift; my $i = 0; foreach (@$build_queue) { - $Prj = $$build_queue[$i]; - my $prj_deps_hash = $projects_deps_hash{$Prj}; + my $prj = $$build_queue[$i]; + my $prj_deps_hash = $projects_deps_hash{$prj}; if (defined $modules_with_errors{$prj_deps_hash} && !$ignore) { - push (@broken_modules_names, $Prj); + push (@broken_modules_names, $prj); splice (@$build_queue, $i, 1); next; }; $running_children{$prj_deps_hash} = 0 if (!defined $running_children{$prj_deps_hash}); - $child_nick = pick_prj_to_build($prj_deps_hash); + my $child_nick = pick_prj_to_build($prj_deps_hash); if ($child_nick) { return ($child_nick, $prj_deps_hash); } if ((!scalar keys %$prj_deps_hash) && !$running_children{$prj_deps_hash}) { if (!defined $modules_with_errors{$prj_deps_hash} || $ignore) { - remove_from_dependencies($Prj, \%global_deps_hash); - $build_is_finished{$Prj}++; + remove_from_dependencies($prj, \%global_deps_hash); + $build_is_finished{$prj}++; splice (@$build_queue, $i, 1); next; }; @@ -3497,17 +3496,34 @@ sub pick_jobdir { sub fill_modules_queue { my $build_queue = shift; - my $Prj; - while ($Prj = pick_prj_to_build(\%global_deps_hash)) { - push @$build_queue, $Prj; - $projects_deps_hash{$Prj} = {}; - get_module_dep_hash($Prj, $projects_deps_hash{$Prj}); - my $info_hash = $html_info{$Prj}; - $$info_hash{DIRS} = check_deps_hash($projects_deps_hash{$Prj}, $Prj); - $module_by_hash{$projects_deps_hash{$Prj}} = $Prj; - }; - if (!$Prj && !children_number() && (!scalar @$build_queue)) { + my $prj; + while ($prj = pick_prj_to_build(\%global_deps_hash)) { + push @$build_queue, $prj; + $projects_deps_hash{$prj} = {}; + get_module_dep_hash($prj, $projects_deps_hash{$prj}); + my $info_hash = $html_info{$prj}; + $$info_hash{DIRS} = check_deps_hash($projects_deps_hash{$prj}, $prj); + $module_by_hash{$projects_deps_hash{$prj}} = $prj; + }; + if (!$prj && !children_number() && (!scalar @$build_queue)) { cancel_build() if (scalar keys %broken_build); mp_success_exit(); }; }; + +sub is_gnumake_module { + my $module = shift; + my $bridgemakefile = $source_config->get_module_path($module) . "/prj/makefile.mk"; + return (-e $bridgemakefile); +} + +sub check_partial_gnumake_build { + if(!$build_all_parents && is_gnumake_module(shift)) { + print "This module has been migrated to GNU make.\n"; + print "You can only use build --all/--since here with build.pl.\n"; + print "To do the equivalent of 'build && deliver' call:\n"; + print "\tmake -sr\n"; + print "in the module root (This will modify the solver).\n"; + exit 1; + } +} diff --git a/solenv/bin/buildalyzer b/solenv/bin/buildalyzer new file mode 100644 index 000000000000..8b278e66b8e6 --- /dev/null +++ b/solenv/bin/buildalyzer @@ -0,0 +1,138 @@ +#!/usr/bin/env python +import sys +import os + +class CxxTarget: + def __init__(self, line): + self.directory = '' + self.outputfile = '' + self.includeflags = [] + self.cxxflags = [] + self.inputfiles = [] + self.nolink = False + options = line[:-1].split(' ') + self.directory = options.pop(0) + parsing_outputfile = False + for option in options: + if parsing_outputfile: + self.outputfile = option + parsing_outputfile = False + elif option == '-o': + parsing_outputfile = True + elif option == '-c': + self.nolink = True + elif option.startswith('-I'): + self.includeflags.append(CxxFlag(option)) + elif option.startswith('-'): + self.cxxflags.append(CxxFlag(option)) + else: + self.inputfiles.append(option) + self.cxxflags.sort() + self.includeflags.sort() + cxxflags_tmp = dict() + for flag in self.cxxflags: + cxxflags_tmp[flag.name] = flag + self.cxxflags = cxxflags_tmp.values() + includeflags_tmp = dict() + for flag in self.includeflags: + includeflags_tmp[flag.name] = flag + self.includeflags = includeflags_tmp.values() + CxxTargets.by_name[self.getFullOutputname()] = self + def __str__(self): + return '%s' % (self.getFullOutputname()) + def getFullOutputname(self): + return self.directory + '/' + self.outputfile + def __cmp__(self, other): + return cmp(self.getFullOutputname(), other.getFullOutputname()) + +class CxxFlag: + def __init__(self, name): + self.name = name + CxxFlags.by_name[self.name] = self + def __str__(self): + return 'Flag %s' % (self.name) + def __cmp__(self, other): + return cmp(self.name, other.name) + +class CxxFlags: + by_name = dict() + +class CxxTargets: + by_name = dict() + +if __name__ == '__main__': + [CxxTarget(line) for line in sys.stdin.readlines()] + compile_targets = [target for target in CxxTargets.by_name.values() if target.nolink] + link_targets = [target for target in CxxTargets.by_name.values() if not target.nolink] + common_compile_flags = [] + for flag in CxxFlags.by_name.values(): + if sum((flag in target.cxxflags for target in compile_targets)) == len(compile_targets): + common_compile_flags.append(flag) + common_link_flags = [] + for flag in CxxFlags.by_name.values(): + if sum((flag in target.cxxflags for target in compile_targets)) == len(compile_targets): + common_link_flags.append(flag) + + for target in compile_targets: + target.cxxflags = [flag for flag in target.cxxflags if flag not in common_compile_flags] + target.cxxflags.sort() + for target in link_targets: + target.cxxflags = [flag for flag in target.cxxflags if flag not in common_link_flags] + target.cxxflags.sort() + + common_compile_flags.sort() + common_link_flags.sort() + print 'common compile flags: %s' % (' '.join(flag.name for flag in common_compile_flags)) + print 'common link flags: %s' % (' '.join(flag.name for flag in common_link_flags)) + + by_flagset = dict() + for target in CxxTargets.by_name.values(): + flagset = ' '.join((flag.name for flag in target.cxxflags)) + if flagset not in by_flagset: + by_flagset[flagset] = list() + by_flagset[flagset].append(target) + for targetlist in by_flagset.values(): + targetlist.sort() + flagsets = by_flagset.keys() + flagsets.sort() + print '%d compilerflag groups:' % (len(flagsets)) + for flagset in flagsets: + print flagset + for target in by_flagset[flagset]: + print '%s' % (target) + print + + by_flagset = dict() + for target in CxxTargets.by_name.values(): + flagset = ' '.join((flag.name for flag in target.includeflags)) + if flagset not in by_flagset: + by_flagset[flagset] = list() + by_flagset[flagset].append(target) + for targetlist in by_flagset.values(): + targetlist.sort() + flagsets = by_flagset.keys() + flagsets.sort() + print '%d include flag groups:' % (len(flagsets)) + for flagset in flagsets: + print flagset + for target in by_flagset[flagset]: + print '%s' % (target) + print + + print 'sources:' + by_name = dict() + for target in CxxTargets.by_name.values(): + by_name[os.path.basename(target.outputfile)] = target + names = by_name.keys() + names.sort() + for target in CxxTargets.by_name.values(): + if len(target.inputfiles) > 1: + objects = [os.path.basename(object) for object in target.inputfiles] + sources = list() + for object in objects: + if object in by_name: + sources.append(by_name[object].inputfiles[0]) + else: + sources.append('!!!!' + object) + sources.sort() + print '%s %s' % (target.getFullOutputname(), ' '.join(sources)) diff --git a/solenv/bin/createcomponent.xslt b/solenv/bin/createcomponent.xslt new file mode 100644 index 000000000000..7f7695d533b3 --- /dev/null +++ b/solenv/bin/createcomponent.xslt @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* 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. +* +**********************************************************************--> + +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:uc="http://openoffice.org/2010/uno-components"> + <xsl:param name="uri"/> + <xsl:strip-space elements="*"/> + <xsl:template match="uc:component"> + <xsl:copy> + <xsl:apply-templates select="@*"/> + <xsl:attribute name="uri"> + <xsl:value-of select="$uri"/> + </xsl:attribute> + <xsl:apply-templates/> + </xsl:copy> + </xsl:template> + <xsl:template match="*"> + <xsl:copy> + <xsl:apply-templates select="@*"/> + <xsl:apply-templates/> + </xsl:copy> + </xsl:template> + <xsl:template match="@*"> + <xsl:copy/> + </xsl:template> +</xsl:stylesheet> diff --git a/solenv/bin/deliver.pl b/solenv/bin/deliver.pl index 898dd97a1dc7..0a945bc4e408 100755 --- a/solenv/bin/deliver.pl +++ b/solenv/bin/deliver.pl @@ -43,7 +43,7 @@ use File::Spec; ( $script_name = $0 ) =~ s/^.*\b(\w+)\.pl$/$1/; -$id_str = ' $Revision$ '; +$id_str = ' $Revision: 275594 $ '; $id_str =~ /Revision:\s+(\S+)\s+\$/ ? ($script_rev = $1) : ($script_rev = "-"); @@ -403,6 +403,8 @@ sub parse_options { my $arg; my $dontdeletecommon = 0; + $opt_silent = 1 if ( defined $ENV{VERBOSE} && $ENV{VERBOSE} eq 'FALSE'); + $opt_verbose = 1 if ( defined $ENV{VERBOSE} && $ENV{VERBOSE} eq 'TRUE'); while ( $arg = shift @ARGV ) { $arg =~ /^-force$/ and $opt_force = 1 and next; $arg =~ /^-check$/ and $opt_check = 1 and $opt_verbose = 1 and next; @@ -422,15 +424,13 @@ sub parse_options } $dest = $arg; } - $opt_silent = 1 if ( !defined $ENV{VERBOSE} || (defined $ENV{VERBOSE} && $ENV{VERBOSE} eq 'FALSE')) && ( ! $opt_verbose ); - $opt_verbose = 1 if ( defined $ENV{VERBOSE} && $ENV{VERBOSE} eq 'TRUE') && ( ! $opt_silent ); # $dest and $opt_zip or $opt_delete are mutually exclusive if ( $dest and ($opt_zip || $opt_delete) ) { usage(1); } # $opt_silent and $opt_check or $opt_verbose are mutually exclusive if ( ($opt_check or $opt_verbose) and $opt_silent ) { - print STDERR "Error on command line: options '-check'/'-verbose' and '-quiet' are mutually exclusive.\n"; + print STDERR "Error on command line: options '-check' and '-quiet' are mutually exclusive.\n"; usage(1); } if ($dontdeletecommon) { @@ -678,6 +678,12 @@ sub glob_line } else { # no globbing but renaming possible + # #i89066# + if (-d $to && -f $from) { + my $filename = File::Basename::basename($from); + $to .= '/' if ($to !~ /[\\|\/]$/); + $to .= $filename; + }; push(@globbed_files, [$from, $to]); } if ( $opt_checkdlst ) { @@ -782,11 +788,6 @@ sub copy_if_newer if ( $opt_delete ) { print "REMOVE: $to\n" if $opt_verbose; $rc = unlink($to) unless $opt_check; - # handle special packaging of *.dylib files for Mac OS X - if ( $to =~ s/\.dylib$/.jnilib/ ) { - print "REMOVE: $to\n" if $opt_verbose; - $rc += unlink "$to" unless $opt_check; - } return 1 if $opt_check; return $rc; } @@ -851,19 +852,6 @@ sub copy_if_newer # handle special packaging of *.dylib files for Mac OS X if ( $^O eq 'darwin' ) { - if ( $to =~ /\.dylib/ ) { - system("macosx-create-bundle", $to); - my $bundlelib = $to; - $bundlelib =~ s/\.dylib$//; - $bundlelib .= ".jnilib"; - if ( $opt_delete ) { - print "REMOVE: $bundlelib\n" if $opt_verbose; - unlink "$bundlelib" unless $opt_check; - } else { - push_on_ziplist($bundlelib) if $opt_zip; - push_on_loglist("LINK", basename($to), "$bundlelib") if $opt_log; - } - } system("macosx-create-bundle", "$to=$from.app") if ( -d "$from.app" ); system("ranlib", "$to" ) if ( $to =~ /\.a/ ); } diff --git a/solenv/bin/linkoo b/solenv/bin/linkoo index 297a736dfb75..37a5f1a7b6c8 100755 --- a/solenv/bin/linkoo +++ b/solenv/bin/linkoo @@ -55,7 +55,6 @@ export SAL_ALLOW_LINKOO_SYMLINKS=1 my $dry_run = 0; my $usage = 0; - my $LANG; my $TARGET; my $LIBVER; @@ -67,14 +66,13 @@ my $brand_program_dir = 'program'; my $ure_misc_dir = 'basis-link/ure-link/share/misc'; my $ure_java_dir = 'basis-link/ure-link/share/java'; my $ure_lib_dir = 'basis-link/ure-link/lib'; + $program_dir = 'openoffice.org/basis-link/MacOS' if ($ENV{OS} eq 'MACOSX'); # FIXME probably wrong my @exceptions = ( 'cppuhelper', 'sunjavaplugin', 'libjvmfwk' ); my %replaceable = ( $program_dir => '\.so', - $ure_lib_dir => '\.so', - $ure_java_dir => '\.jar$', $program_dir . '/resource' => '\.res$', $program_dir . '/classes' => '\.jar$', 'basis-link/share/config' => '\.zip$', @@ -251,7 +249,7 @@ sub scan_and_link_files($$$) } # Now scan the solver - my $upd = 330; + my $upd = 300; $upd = $ENV{UPD} if (defined $ENV{UPD}); scan_one_dir ($installed_files, \%build_files, "$build_path/solver/$upd/$target", 1); @@ -332,6 +330,21 @@ sub link_pagein_files() print "\n"; } +# link installed files back into src tree: +sub link_soffice_bin_files() +{ + my $dest; + my $src = "$OOO_INSTALL/" . $brand_program_dir; + + print "soffice files"; + $dest = "$OOO_BUILD/desktop/$TARGET/bin"; + do_link ($src, $dest, 'soffice', 'soffice.bin', 1); + do_link ($src, $dest, 'bootstraprc', 'bootstraprc', 1); + do_link ("$OOO_INSTALL", "$OOO_BUILD/desktop/$TARGET", 'share', 'share', 1); + + print "\n"; +} + for my $a (@ARGV) { # options @@ -379,6 +392,7 @@ link_iso_res(); link_types_rdb(); link_oovbaapi_rdb(); link_pagein_files(); +link_soffice_bin_files(); if (!-f "$OOO_INSTALL/" . $brand_program_dir . "/ooenv") { my $ooenv; diff --git a/solenv/bin/macosx-change-install-names.pl b/solenv/bin/macosx-change-install-names.pl index 844c36f23c2b..52b2ffa343ec 100644 --- a/solenv/bin/macosx-change-install-names.pl +++ b/solenv/bin/macosx-change-install-names.pl @@ -60,6 +60,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/macosx-create-bundle b/solenv/bin/macosx-create-bundle index ba7d624e68f3..4b03e076f3ae 100755 --- a/solenv/bin/macosx-create-bundle +++ b/solenv/bin/macosx-create-bundle @@ -96,7 +96,7 @@ while [ $# != 0 ]; do # Link jnilib ln -sf "$inputfilename" "$outputdir/$inputjnilibname" - printf "macosx-create-bundle: $outputdir/$inputjnilibname successfully created\n" + #printf "macosx-create-bundle: $outputdir/$inputjnilibname successfully created\n" fi else printf "macosx-create-bundle: error: file is not an executable or shared library.\n" >&2 diff --git a/solenv/bin/make_installer.pl b/solenv/bin/make_installer.pl index 955873c21f76..e46ffdf28662 100644 --- a/solenv/bin/make_installer.pl +++ b/solenv/bin/make_installer.pl @@ -54,11 +54,9 @@ use installer::packagepool; use installer::parameter; use installer::pathanalyzer; use installer::profiles; -use installer::regmerge; use installer::scppatchsoname; use installer::scpzipfiles; use installer::scriptitems; -use installer::servicesfile; use installer::setupscript; use installer::simplepackage; use installer::sorter; @@ -905,43 +903,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) installer::worker::resolving_hidden_flag($filesinproductlanguageresolvedarrayref, $allvariableshashref, "File", $languagestringref); if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles13c.log", $filesinproductlanguageresolvedarrayref); } - ##################################### - # Creating services.rdb - ##################################### - - if ( $allvariableshashref->{'SERVICESPROJEKT'} ) - { - if (! $installer::globals::languagepack && ! $installer::globals::helppack) - { - # ATTENTION: For creating the services.rdb it is necessary to execute the native file - # "regcomp" or "regcomp.exe". Therefore this function can only be executed on the - # corresponding platform. - - if ( $installer::globals::servicesrdb_can_be_created ) - { - installer::logger::print_message( "... creating preregistered services.rdb ...\n" ); - - installer::servicesfile::create_services_rdb($allvariableshashref, $filesinproductlanguageresolvedarrayref, $includepatharrayref, $languagestringref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles14.log", $filesinproductlanguageresolvedarrayref); } - } - } - } - - ##################################### - # Calls of regmerge - ##################################### - - if (!($installer::globals::is_copy_only_project)) - { - if (! $installer::globals::languagepack && ! $installer::globals::helppack) - { - installer::logger::print_message( "... merging files into registry database ...\n" ); - - installer::regmerge::merge_registration_files($filesinproductlanguageresolvedarrayref, $includepatharrayref, $languagestringref, $allvariableshashref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles14b.log", $filesinproductlanguageresolvedarrayref); } - } - } - ############################################ # Collecting directories for epm list file ############################################ @@ -2039,7 +2000,7 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) installer::windows::registry::create_registry_table($registryitemsinproductlanguageresolvedarrayref, \@allregistrycomponents, $newidtdir, $languagesarrayref, $allvariableshashref); if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "registryitems4.log", $registryitemsinproductlanguageresolvedarrayref); } - installer::windows::component::create_component_table($filesinproductlanguageresolvedarrayref, $registryitemsinproductlanguageresolvedarrayref, $directoriesforepmarrayref, \@allfilecomponents, \@allregistrycomponents, $newidtdir, $componentid, $componentidkeypath); + installer::windows::component::create_component_table($filesinproductlanguageresolvedarrayref, $registryitemsinproductlanguageresolvedarrayref, $directoriesforepmarrayref, \@allfilecomponents, \@allregistrycomponents, $newidtdir, $componentid, $componentidkeypath, $allvariableshashref); if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles19.log", $filesinproductlanguageresolvedarrayref); } if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "registryitems5.log", $registryitemsinproductlanguageresolvedarrayref); } @@ -2250,6 +2211,7 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) installer::logger::print_message( "... creating msi database (language $onelanguage) ... \n" ); installer::windows::msiglobal::set_uuid_into_component_table($languageidtdir, $allvariableshashref); # setting new GUID for the components using the tool uuidgen.exe + installer::windows::msiglobal::prepare_64bit_database($languageidtdir, $allvariableshashref); # making last 64 bit changes installer::windows::msiglobal::create_msi_database($languageidtdir ,$msifilename); # validating the database # ToDo diff --git a/solenv/bin/mhids.pl b/solenv/bin/mhids.pl deleted file mode 100644 index a1325032849c..000000000000 --- a/solenv/bin/mhids.pl +++ /dev/null @@ -1,384 +0,0 @@ -: -eval 'exec perl -wS $0 ${1+"$@"}' - if 0; -#************************************************************************* -# -# 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. -# -#************************************************************************* - -my $filename; -my $srs; -my $prjname; -my $defs; -my $solarincludes; -my $verbose = 0; - -my $debug = 0; -my $filebase; -my $workfile; -my $shell_workfile; -my @cleanuplist = (); - -# variables to setup the compiler line -my $appext; -my $compiler; -my $outbin_flag; -my $outobj_flag; -my $objext; -my $preprocess_flag; # preprocess to stdout - -my $no_hid_files; - -sub cleandie -{ - my $errstring = shift @_; - my $erroreval = $@; - - print STDERR "$errstring\n"; - if ( not $debug ) { - foreach my $i (@cleanuplist) { - if ( -f "$workfile$i" ) { - unlink "$workfile$i" or print STDERR "ERROR - couldn't remove $workfile$i\n"; - } - } - } - die "$erroreval\n"; -} - -sub setcompiler -{ - my $whichcom = $ENV{COM}; - my $extra_cflags = $ENV{EXTRA_CFLAGS}; - $extra_cflags = "" if (!$extra_cflags); - if ( "$whichcom" eq "GCC" ) { - $appext = ""; # windows for now - $compiler = "gcc -x c $extra_cflags"; - $outbin_flag = "-o "; - $outobj_flag = ""; - $objext = ".o"; - $preprocess_flag = "-E"; # preprocess to stdout - } elsif ( "$whichcom" eq "MSC" ) { - $appext = ".exe"; # windows for now - $compiler = "cl -nologo"; - $outbin_flag = "-Fe"; - $outobj_flag = "-Fo"; - $objext = ".obj"; - $preprocess_flag = "-EP"; # preprocess to stdout - $solarincludes =~ s/\/stl/\/xstlx/g; - $defs =~ s/\/stl/\/xstlx/g; - } elsif ( "$whichcom" eq "C52" ) { - $appext = ""; # windows for now - $compiler = "cc"; - $outbin_flag = "-o "; - $outobj_flag = ""; - $objext = ".o"; - $preprocess_flag = "-E"; # preprocess to stdout - - # hack for SO cc wrapper - $ENV{wrapper_override_cc_wrapper} = "TRUE"; - $solarincludes =~ s/stl/xstlx/g; - $defs =~ s/\/stl/\/xstlx/g; - } else { - print STDERR "----------------------------------------------------------------------\n"; - print STDERR "OOops... looks like your compiler isn't known to \n$0\n"; - print STDERR "please edit the \"setcompiler\" section of this script to make it work.\n"; - print STDERR "----------------------------------------------------------------------\n"; - die "ERROR - compiler (or \$COM settings) unknown!\n"; - } -} - -#--------------------------------------------------- -$filename = undef; -$srs = undef; -$prjname = undef; - -my @expectedArgs = ( \$filename, \$srs, \$prjname ); -my $expectedArgsIndex = 0; -while ( ( $#ARGV >= 0 ) && ( $expectedArgsIndex < 3 ) ) -{ - $_ = shift @ARGV; - if ( /^-verbose$/ ) - { - $verbose = 1; - next; - } - ${$expectedArgs[ $expectedArgsIndex ]} = $_; - ++$expectedArgsIndex; -} - -$defs = join " ",@ARGV if ($#ARGV); - -if ( !defined $prjname ) { die "ERROR - check usage\n"; } - -if ( $ENV{NO_HID_FILES} ) { - $no_hid_files = $ENV{"NO_HID_FILES"}; -} -$solarincludes = $ENV{SOLARINCLUDES}; -if (defined $ENV{TMPDIR}) { - $tmpdir = $ENV{TMPDIR}; -} elsif (defined $ENV{TMP}) { - $tmpdir = $ENV{TMP}; -} else { - die "ERROR - \"TMPDIR\" & \"TMP\" environment variables not set\n"; -}; -die "ERROR - \"$tmpdir\" doesn't exist\n" if ( ! -d $tmpdir ); - -setcompiler(); - -# convert windows only? -$srs =~ s/\\/\//g; -$filename =~ s/\\/\//g; - -$filebase = $filename; -$filebase =~ s/.*[\\\/]//; -$filebase =~ s/\..*?$//; -# now stript it to something that doesn't togger vista execution prevention :( -$flbs = $filebase; -$flbs =~ s/[aeiou]//g; -# call srand ony once per script! -srand(); -$workfile = "$tmpdir/${flbs}_".$$.rand(); - -# now get $workfile ready for shell usage... -$shell_workfile = $workfile; - -print "workfile: $workfile\n" if $verbose; - -#remove old objects which remained in place by a former bug -unlink "$workfile.obj"; - -# can't do this for modules with mixed case! - -if ( -f "$workfile.hid" ) -{ - unlink "$workfile.hid" or die "ERRROR - cannot remove $workfile.hid\n"; -} - -# hack to quit for files which cannot be handled -if ( defined $ENV{"NO_HID_FILES"} ) { - foreach $fname ( split / /, $ENV{"NO_HID_FILES"} ) - { - if ( $fname eq $filename ) - { - print "No hid generation for $filename due to NO_HID_FILES\n"; - print "Touching $srs/$filebase.hid anyways\n"; - open TOUCH, ">$srs/$filebase.hid" or die "ERRROR - cannot open $srs/$filebase.hid for writing\n"; - close TOUCH; - exit 0; - } - } -} - -my $verboseSwitch = $verbose ? "-verbose" : ""; -print "$ENV{SOLARBINDIR}/hidc $verboseSwitch $filename ${shell_workfile}.c1 $prjname\n" if $verbose; -$ret = system "$ENV{SOLARBINDIR}/hidc $verboseSwitch $filename ${shell_workfile}.c1 $prjname"; -if ( $ret ) { - push @cleanuplist, ".c1"; - cleandie("ERROR - calling \"hidc\" failed"); -} -push @cleanuplist, ".c1"; - -print "$compiler $defs $solarincludes $preprocess_flag ${shell_workfile}.c1 > ${shell_workfile}.c2\n" if $verbose; -$ret = system "$compiler $defs $solarincludes $preprocess_flag ${shell_workfile}.c1 > ${shell_workfile}.c2"; -if ( $ret ) { - push @cleanuplist, ".c2"; - cleandie("ERROR - calling compiler for preprocessing failed"); -} -push @cleanuplist, ".c2"; - -if (!open C_PROG, ">$workfile.c") { - push @cleanuplist, ".c"; - cleandie("ERROR - open $workfile.c\n for writing failed"); -} -push @cleanuplist, ".c"; -print C_PROG "#include <stdio.h>\n"; -print C_PROG "#include <wctype.h>\n"; - -if ( !open PRE, "<$workfile.c2" ) { - cleandie("ERROR - open $workfile.c2\n for reading failed"); -} - -$InMain = 0; -while (<PRE>) -{ - if ( /int\s*main/ ) - { - $InMain = 1; - } - - if ( $InMain && !/^\s*$/ ) - { - print C_PROG; - } -} - -close PRE; -close C_PROG; - -#cl %SOLARINCLUDES% %_srs%\%_workfile%.c /Fe%_srs%\%_workfile%$appext -my $outobj_param = ""; -if ( $outobj_flag ne "" ) -{ - $outobj_param = "$outobj_flag${shell_workfile}$objext"; -} -print "$compiler $defs $solarincludes ${shell_workfile}.c $outobj_param $outbin_flag${shell_workfile}$appext \n" if $verbose; -$ret = system "$compiler $defs $solarincludes ${shell_workfile}.c $outobj_param $outbin_flag${shell_workfile}$appext"; -if ( $ret ) { - push @cleanuplist, "$appext"; - cleandie("ERROR - compiling $workfile.c failed"); -} -push @cleanuplist, "$objext"; -push @cleanuplist, "$appext"; - -#awk -f %ENV_TOOLS%\hidcode.awk < %srs%\%workfile%.c3 > %srs%\%workfile%.hid -if ( !open C3,"$workfile$appext|" ) { - cleandie("ERROR - executing $workfile$appext failed"); -} -if ( !open HID,">$srs/$filebase.hid.$ENV{INPATH}" ) { - cleandie("ERROR - open $srs/$filebase.hid.$ENV{INPATH} for writing failed"); -} - -while (<C3>) -{ - @fields = split /\s+/; - - if ( $fields[1] eq "HelpID" ) - { - print HID "$fields[0] $fields[2]\n"; - next; - } - - @arr = split /:/, $fields[0]; - if( $arr[1] =~ /^leer$|^bitmap$|^font$|^color$|^image$|^imagelist$|^date$|^brush$|^fixedtext$|^keycode$|^time$|^mapmode$/i ) - { - next; - } - - if ( $fields[1] eq "Norm" ) - { - # Felder der Zeile auf Variable verteilen - $helpIDString = $fields[0]; - $GClass = lc($fields[2]); - $GID = $fields[3]; - $LClass = lc($fields[4]); - $LID = $fields[5] || 0; - - $nHID=0; - - $VAL1 = 536870912; #2 hoch 29 - if ( $GClass eq "workwindow" ) { $nHID= $VAL1 *5; } - elsif( $GClass eq "modelessdialog" ) { $nHID= $VAL1 *4; } - elsif( $GClass eq "floatingwindow" ) { $nHID= $VAL1 *3; } - elsif( $GClass eq "modaldialog" ) { $nHID= $VAL1 *2; } - elsif( $GClass eq "tabpage" ) { $nHID= $VAL1 *1; } - elsif( $GClass eq "dockingwindow" ) { $nHID= $VAL1 *6; } - #Maximal bis 7 dann sind 32Bit ausgeschoepft - else { - $nHID=0; - $outline = "No GClass ".$helpIDString." ".$nHID." ".$GClass; - next; - } - if( $LID != 0 ) { - if ( $LClass eq "tabcontrol" ) { $nHID += 0; } - elsif( $LClass eq "radiobutton" ) { $nHID += 2*256; } - elsif( $LClass eq "checkbox" ) { $nHID += 4*256; } - elsif( $LClass eq "tristatebox" ) { $nHID += 6*256; } - elsif( $LClass eq "edit" ) { $nHID += 8*256; } - elsif( $LClass eq "multilineedit" ) { $nHID += 10*256; } - elsif( $LClass eq "multilistbox" ) { $nHID += 12*256; } - elsif( $LClass eq "listbox" ) { $nHID += 14*256; } - elsif( $LClass eq "combobox" ) { $nHID += 16*256; } - elsif( $LClass eq "pushbutton" ) { $nHID += 18*256; } - elsif( $LClass eq "spinfield" ) { $nHID += 20*256; } - elsif( $LClass eq "patternfield" ) { $nHID += 22*256; } - elsif( $LClass eq "numericfield" ) { $nHID += 24*256; } - elsif( $LClass eq "metricfield" ) { $nHID += 26*256; } - elsif( $LClass eq "currencyfield" ) { $nHID += 28*256; } - elsif( $LClass eq "datefield" ) { $nHID += 30*256; } - elsif( $LClass eq "timefield" ) { $nHID += 32*256; } - elsif( $LClass eq "imageradiobutton" ) { $nHID += 34*256; } - elsif( $LClass eq "numericbox" ) { $nHID += 36*256; } - elsif( $LClass eq "metricbox" ) { $nHID += 38*256; } - elsif( $LClass eq "currencybox" ) { $nHID += 40*256; } - elsif( $LClass eq "datebox" ) { $nHID += 42*256; } - elsif( $LClass eq "timebox" ) { $nHID += 44*256; } - elsif( $LClass eq "imagebutton" ) { $nHID += 46*256; } - elsif( $LClass eq "menubutton" ) { $nHID += 48*256; } - elsif( $LClass eq "morebutton" ) { $nHID += 50*256; } - else { - $nHID=0; - $outline = "No LClass ".$helpIDString." ".$nHID; - next; - } - - #GID und LID auch beruecksichtigen - $nHID += $LID; - } - $nHID += $GID * 16384; #14 Bit nach links shiften - - # check here and not above to avoid warnings for restypes not generated anyways - if( $GID == 0 || $GID >32767 || $LID > 511 ) - { - #GID & LID ungueltig - print STDERR "Invalid Global or Local ID: 0 < GID <= 32767 ; LID <= 511\n"; - print STDERR "$helpIDString GID = $GID; LID = $LID\n"; - next; - } - - # - # 1. Stelle selber ausgeben, falls groesser als 2^21 - # wg. problemen von awk/gawk bei printf mit %u - # - $x=0; - if( $nHID >= 4000000000 ) { - $nHID -= 4000000000; - $x=4; - }elsif( $nHID >= 3000000000) { - $nHID -= 3000000000; - $x=3; - }elsif( $nHID >= 2000000000) { - $nHID -= 2000000000; - $x=2; - } - if( $x != 0) - { printf HID "%s %d%u \n",$helpIDString,$x, $nHID; } - else - { printf HID "%s %u \n",$helpIDString, $nHID; } - } -} - -close C3; -close HID; - -rename("$srs/$filebase.hid.$ENV{INPATH}", "$srs/$filebase.hid") or cleandie("ERROR - couldn't rename tmp file to final for $filebase"); - -if ( not $debug ) { - foreach my $i (@cleanuplist) { - sleep 1; - if ( -f "$workfile$i" ) { - unlink "$workfile$i" or cleandie(""); - } - } -} diff --git a/solenv/bin/modules/CreatePDBRelocators.pm b/solenv/bin/modules/CreatePDBRelocators.pm index c31e3a053b0c..753075a2bfea 100644 --- a/solenv/bin/modules/CreatePDBRelocators.pm +++ b/solenv/bin/modules/CreatePDBRelocators.pm @@ -45,8 +45,11 @@ sub new { my $Object = shift; my $solarversion = shift; + my $workdir; + my $relworkdir; my $self = {}; - my @repositories; + my @basedirs; + my @repos; if (!defined ($solarversion)) { $solarversion = $ENV{SOLARVERSION}; @@ -58,14 +61,33 @@ sub new $self->{SOLARVERSION} = $solarversion; - my $SourceConfigObj = SourceConfig->new(); - @repositories = $SourceConfigObj->get_repositories(); + $workdir = $ENV{WORKDIR}; + if ( !$workdir ) { + print STDERR "can't determine WORKDIR.\n"; + exit (1); + } - if (!scalar @repositories) { - print STDERR "no repository and no working directory found.\n"; + if ( $workdir =~ /^$solarversion/ ) { + $relworkdir = $workdir; + $relworkdir =~ s/^$solarversion\///; + } else { + print STDERR "ERROR: workdir outside $solarversion unsupported\n"; + exit (2); + } + my $SourceConfigObj = SourceConfig->new(); + @repos = $SourceConfigObj->get_repositories(); + if ( defined $ENV{UPDMINOREXT} ) { + foreach my $onedir ( @repos ) { + push( @basedirs, $onedir.$ENV{UPDMINOREXT} ); + } + } + # basdirs is repositories (dmake) + workdir (gnu make) + push(@basedirs, $relworkdir); + if (!scalar @basedirs) { + print STDERR "no basedir and no working directory found.\n"; exit (2); } - $self->{REPOSITORIES} = \@repositories; + $self->{BASEDIRS} = \@basedirs; bless($self, $Object); return $self; } @@ -106,10 +128,10 @@ sub create_pdb_relocators } # collect files - foreach my $repository (@{$self->{REPOSITORIES}}) { + foreach my $basedir (@{$self->{BASEDIRS}}) { my @pdb_files; - my $o = $self->{SOLARVERSION} . "/$repository"; - $repository =~ s/(.*?)\.(.*)/$1/; + my $o = $self->{SOLARVERSION} . "/$basedir"; + $basedir =~ s/(.*?)\.(.*)/$1/; $self->collect_files( $o, $inpath, \@pdb_files); foreach (@pdb_files) { @@ -122,12 +144,12 @@ sub create_pdb_relocators my $target = ""; if ( $src_location =~ /\/so\// ) { - $location = "../../../$repository$milestoneext/" . $src_location; + $location = "../../../$basedir$milestoneext/" . $src_location; $target = "$pdb_dir/so/$relocator"; } else { - $location = "../../$repository$milestoneext/" . $src_location; + $location = "../../$basedir$milestoneext/" . $src_location; $target = "$pdb_dir/$relocator"; } @@ -142,14 +164,14 @@ sub create_pdb_relocators return 1; } -sub collect_files_from_all_repositories +sub collect_files_from_all_basedirs { my $self = shift; my ($platform, $filesref) = @_; - my $repository; + my $basedir; my $ret; - foreach $repository (@{$self->{REPOSITORIES}}) { - my $srcdir = $self->{SOLARVERSION} . "/$repository"; + foreach $basedir (@{$self->{BASEDIRS}}) { + my $srcdir = $self->{SOLARVERSION} . "/$basedir"; $ret |= $self->collect_files ($srcdir, $platform, $filesref); } return $ret; @@ -160,14 +182,16 @@ sub collect_files my $self = shift; my ($srcdir, $platform, $filesref) = @_; my $template = "$srcdir/*/$platform"; + my $template2 = "$srcdir/LinkTarget"; if ( $ENV{GUI} eq "WNT" ) { # collect all pdb files on o: # regular glob does not work with two wildcard on WNT my @bin = glob("$template/bin/*.pdb"); my @bin_so = glob("$template/bin/so/*.pdb"); + my @workdir = glob("$template2/*/*.pdb"); # we are only interested in pdb files which are accompanied by # .exe or .dll which the same name - foreach (@bin, @bin_so) { + foreach (@bin, @bin_so, @workdir) { my $dir = dirname($_); my $base = basename($_, ".pdb"); my $exe = "$dir/$base.exe"; @@ -180,13 +204,16 @@ sub collect_files else { # collect all shared libraries on o: my @lib = glob("$template/lib/*.so*"); + my @workdir_lib = glob("$template2/Library/*.so*"); my @lib_so = glob("$template/lib/so/*.so*"); my @mac_lib = glob("$template/lib/*.dylib*"); + my @mac_workdir_lib = glob("$template2/Library/*.dylib*"); my @mac_lib_so = glob("$template/lib/so/*.dylib*"); # collect all binary executables on o: my @bin = $self->find_binary_execs("$template/bin"); + my @workdir_bin = $self->find_binary_execs("$template2/Executable"); my @bin_so = $self->find_binary_execs("$template/bin/so"); - push(@$filesref, (@lib, @lib_so, @mac_lib, @mac_lib_so, @bin, @bin_so)); + push(@$filesref, (@lib, @lib_so, @workdir_lib, @mac_lib, @mac_workdir_lib, @mac_lib_so, @bin, @workdir_bin, @bin_so)); } return 1; } diff --git a/solenv/bin/modules/RepositoryHelper.pm b/solenv/bin/modules/RepositoryHelper.pm index 31c97e35d1c2..a3459c2bb575 100644 --- a/solenv/bin/modules/RepositoryHelper.pm +++ b/solenv/bin/modules/RepositoryHelper.pm @@ -118,21 +118,25 @@ sub search_for_hg { sub search_via_build_lst { my $self = shift; - my @possible_build_lists = ('build.lst', 'build.xlist'); # build lists names + my @possible_build_lists = ('gbuild.lst', 'build.lst'); # build lists names my $previous_dir = ''; my $rep_root_candidate = $self->{INITIAL_DIRECTORY}; do { foreach (@possible_build_lists) { - if (-e $rep_root_candidate . '/prj/'.$_) { + my $test_file; + if ($rep_root_candidate eq '/') { + $test_file = '/prj/' . $_; + } else { + $test_file = $rep_root_candidate . '/prj/' . $_; + }; + if (-e $test_file) { $self->{REPOSITORY_ROOT} = File::Basename::dirname($rep_root_candidate); return 1; - } elsif ($rep_root_candidate eq $previous_dir) { - return 0; }; }; $previous_dir = $rep_root_candidate; $rep_root_candidate = File::Basename::dirname($rep_root_candidate); - return 0 if (!$rep_root_candidate); + return 0 if ((!$rep_root_candidate) || ($rep_root_candidate eq $previous_dir)); } while (chdir "$rep_root_candidate"); }; diff --git a/solenv/bin/modules/SourceConfig.pm b/solenv/bin/modules/SourceConfig.pm index 29f2b2fefe6d..5861ece08967 100755 --- a/solenv/bin/modules/SourceConfig.pm +++ b/solenv/bin/modules/SourceConfig.pm @@ -78,6 +78,14 @@ sub new { } else { $source_root = $ENV{SRC_ROOT}; }; + if ( defined $ENV{USE_GBUILD} and "$ENV{USE_GBUILD}" ne "" ) + { + $self->{POSSIBLE_BUILD_LIST} = ('gbuild.lst', 'build.lst', 'build.xlist'); # build lists names + } + else + { + $self->{POSSIBLE_BUILD_LIST} = ('build.lst', 'build.xlist'); # build lists names + } $source_root = Cwd::realpath($source_root); $self->{SOURCE_ROOT} = $source_root; $self->{DEBUG} = 0; @@ -94,6 +102,7 @@ sub new { $self->{REMOVE_REPOSITORIES} = {}; $self->{NEW_REPOSITORIES} = []; $self->{WARNINGS} = []; + $self->{GBUILD} = 0; $self->{REPORT_MESSAGES} = []; $self->{CONFIG_FILE_CONTENT} = []; if (defined $self->{USER_SOURCE_ROOT}) { @@ -173,11 +182,14 @@ sub get_module_build_list { if (defined ${$self->{MODULE_BUILD_LIST_PATHS}}{$module}) { return ${$self->{MODULE_BUILD_LIST_PATHS}}{$module}; } else { - my @possible_build_lists = ('build.lst', 'build.xlist'); # build lists names - foreach (@possible_build_lists) { - my $possible_path = ${$self->{MODULE_PATHS}}{$module} . "/prj/$_"; + my @possible_build_lists = $self->{POSSIBLE_BUILD_LIST}; # build lists names + foreach my $build_list (@possible_build_lists) { + my $possible_path = ${$self->{MODULE_PATHS}}{$module} . "/prj/$build_list"; if (-e $possible_path) { ${$self->{MODULE_BUILD_LIST_PATHS}}{$module} = $possible_path; + if ( $build_list eq "gbuild.lst" ) { + $self->{GBUILD} = 1; + }; return $possible_path; }; }; @@ -320,14 +332,14 @@ sub read_config_file { next; }; }; - croak("Line $line in " . $self->{SOURCE_CONFIG_FILE} . 'violates format. Please make your checks!!'); + croak("Line $line in " . $self->{SOURCE_CONFIG_FILE} . ' violates format. Please make your checks!'); }; close SOURCE_CONFIG_FILE; if (!scalar keys %{$self->{REPOSITORIES}}) { get_fallback_repository($self); }; } else { - croak('Cannot open ' . $self->{SOURCE_CONFIG_FILE} . 'for reading'); + croak('Cannot open ' . $self->{SOURCE_CONFIG_FILE} . ' for reading'); }; }; @@ -388,7 +400,18 @@ sub add_active_repositories { sub add_active_modules { my $self = shift; - $self->{NEW_MODULES} = shift; + my $module_list_ref = shift; + my $ignored_modules_string = ''; + my @real_modules = (); + foreach my $module (sort @$module_list_ref) { + if ($self->get_module_path($module)) { + push(@real_modules, $module); + } else { + $ignored_modules_string .= " $module"; + }; + }; + push (@{$self->{WARNINGS}}, "\nWARNING: following modules are not found in active repositories, and have not been added to the " . $self->get_config_file_default_path() . ":$ignored_modules_string\n") if ($ignored_modules_string); + $self->{NEW_MODULES} = \@real_modules; croak('Empty module list passed for addition to source_config') if (!scalar @{$self->{NEW_MODULES}}); $self->{VERBOSE} = shift; generate_config_file($self); diff --git a/solenv/bin/modules/SourceConfigHelper.pm b/solenv/bin/modules/SourceConfigHelper.pm new file mode 100644 index 000000000000..84ffbe0ca3f7 --- /dev/null +++ b/solenv/bin/modules/SourceConfigHelper.pm @@ -0,0 +1,422 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +#************************************************************************* +# +# SourceConfigHelper - Perl extension for parsing general info databases +# +# usage: see below +# +#************************************************************************* + +package SourceConfigHelper; + +use strict; + +use RepositoryHelper; +use SourceConfig; +use Cwd qw (cwd); +use Carp; + +my $debug = 0; +my @source_config_list; # array of sourceconfig objects + +#----------------------------------------------------------------------- +# Constants +#----------------------------------------------------------------------- + +use constant SOURCE_CONFIG_NONE => 0; +use constant SOURCE_CONFIG_CURRENT_FIRST => 1; +use constant SOURCE_CONFIG_ENVIRONMENT_FIRST => 2; +use constant SOURCE_CONFIG_CURRENT_ONLY => 3; +use constant SOURCE_CONFIG_ENVIRONMENT_ONLY => 4; + +use constant SOURCE_CONFIG_DEFAULT => SOURCE_CONFIG_CURRENT_FIRST; + +##### profiling ##### + +##### ctor ##### + +sub new { + my $proto = shift; + my $class = ref($proto) || $proto; + my $init_action = shift; + my $self = {}; + my $SourceConfigCurrent; + my $SourceConfigEnvironment; + + $init_action = SOURCE_CONFIG_DEFAULT if (!defined ($init_action)); + if (!eval ($init_action) or ($init_action < SOURCE_CONFIG_NONE) or ($init_action > SOURCE_CONFIG_ENVIRONMENT_ONLY)) { + croak("wrong initial parameter: $init_action\n"); + } + + if ($init_action != SOURCE_CONFIG_NONE) { + my $repositoryHash_ref = {}; + if ($init_action != SOURCE_CONFIG_ENVIRONMENT_ONLY) { + my $initial_directory = cwd(); + my $result = is_repository($initial_directory, $repositoryHash_ref); + if ($result) { + $SourceConfigCurrent = SourceConfig->new($repositoryHash_ref->{REPOSITORY_ROOT}); + } + } + if ($init_action != SOURCE_CONFIG_CURRENT_ONLY) { + my $source_config = $ENV{SOURCE_ROOT_DIR} . '/' . SourceConfig::SOURCE_CONFIG_FILE_NAME; + if (-f $source_config) { + $SourceConfigEnvironment = SourceConfig->new($source_config); + } + } + + # fill array + + if (($init_action == SOURCE_CONFIG_CURRENT_FIRST) or ($init_action == SOURCE_CONFIG_CURRENT_ONLY)) { + if (defined ($SourceConfigCurrent)) { + push (@source_config_list, $SourceConfigCurrent); + } + if ($init_action == SOURCE_CONFIG_CURRENT_FIRST) { + if (defined ($SourceConfigEnvironment)) { + push (@source_config_list, $SourceConfigEnvironment); + } + } + } + elsif (($init_action == SOURCE_CONFIG_ENVIRONMENT_FIRST) or ($init_action == SOURCE_CONFIG_ENVIRONMENT_ONLY)) { + if (defined ($SourceConfigEnvironment)) { + push (@source_config_list, $SourceConfigEnvironment); + } + if ($init_action == SOURCE_CONFIG_ENVIRONMENT_FIRST) { + if (defined ($SourceConfigCurrent)) { + push (@source_config_list, $SourceConfigCurrent); + } + } + } + } + + $self->{SOURCE_CONFIG_LIST} = \@source_config_list; + + bless($self, $class); + return $self; +} + +##### methods ##### + +############################################################################################ + +sub add_SourceConfig { + my $self = shift; + my $source_config = shift; + push (@{$self->{SOURCE_CONFIG_LIST}}, $source_config); +} + +############################################################################################ + +sub get_SourceConfigList { + my $self = shift; + return @{$self->{SOURCE_CONFIG_LIST}}; +} + +############################################################################################ + +sub has_SourceConfig { + my $self = shift; + my $result = 0; + my $count = @{$self->{SOURCE_CONFIG_LIST}}; + $result = 1 if ($count > 0); + return $result; +} + +############################################################################################ + +sub get_module_path { + my $self = shift; + my $module = shift; + my $function = \&SourceConfig::get_module_path; + my $result; + $result = $self->get_StringResult ($function, $module); + return $result; +} + +############################################################################################ + +sub get_active_modules { + my $self = shift; + my $parameter; # empty + my $function = \&SourceConfig::get_active_modules; + my $array_ref; + $array_ref = $self->get_ArrayResult ($function, $parameter); + return @$array_ref; +} + +############################################################################################ + +sub get_repositories { + my $self = shift; + my $parameter; # empty + my $function = \&SourceConfig::get_repositories; + my $array_ref; + $array_ref = $self->get_ArrayResult ($function, $parameter); + return @$array_ref; +} + +############################################################################################ + +sub get_module_repository { + my $self = shift; + my $module = shift; + my $function = \&SourceConfig::get_module_repository; + my $result; + $result = $self->get_StringResult ($function, $module); + return $result; +} + +############################################################################################ + +sub is_active { + my $self = shift; + my $module = shift; + my $function = \&SourceConfig::is_active; + my $result_ref; + my $is_active = 0; + $result_ref = $self->get_ResultOfList ($function, $module); + my $count = @$result_ref; + if ($count>0) { + foreach my $active (@$result_ref) { + if ($active) { + $is_active = $active; + } + } + } + return $is_active; +} + +##### private methods ##### + +############################################################################################ +# +# is_repository () : check if the directory is a valid repository +# +# input: - directory +# - hash reference, where the output will be stored +# +# output: 0 = FALSE, the directory is no valid repository +# 1 = TRUE, the repository root can be found in $repositoryHash_ref->{REPOSITORY_ROOT} +# +############################################################################################ + +sub is_repository { + my $directory = shift; + my $repositoryHash_ref = shift; + $repositoryHash_ref->{INITIAL_DIRECTORY} = $directory; + $repositoryHash_ref->{REPOSITORY_ROOT} = undef; + $repositoryHash_ref->{REPOSITORY_NAME} = undef; + my $result = RepositoryHelper::search_via_build_lst($repositoryHash_ref); + chdir $repositoryHash_ref->{INITIAL_DIRECTORY}; + if (!$result) { + $result = RepositoryHelper::search_for_hg($repositoryHash_ref); + } + return $result; +} + +############################################################################################ +# +# get_ResultOfList(): give back an array reference from all SourceConfig Objects results +# +# input: - function : reference to the called function of each SourceConfig Object +# - parameter : parameter for the called function +# +# output: result : array of all results +# +############################################################################################ + +sub get_ResultOfList { + my $self = shift; + my $function = shift; + my $parameter = shift; + my @result; + foreach my $source_config (@{$self->{SOURCE_CONFIG_LIST}}) { + push (@result, &$function ($source_config, $parameter)); + } + return \@result; +} + +############################################################################################ +# +# get_StringResult(): give back the first defined result from all SourceConfig Objects +# +# input: - function : reference to the called function of each SourceConfig Object +# - parameter : parameter for the called function +# +# output: result : scalar variable (string), undef if no result +# +############################################################################################ + +sub get_StringResult { + my $self = shift; + my $function = shift; + my $parameter = shift; + my $result_ref; + $result_ref = $self->get_ResultOfList ($function, $parameter); + my $count = @$result_ref; + if ($count>0) { + my $value; + my $i = 0; + while (($i < $count) and !defined ($value)) { # search the first defined result + $value = $$result_ref[$i]; + $i++; + } + return $value; + } + return undef; +} + +############################################################################################ +# +# get_StringResult(): give back a sorted and uniqe array reference of the results +# from all SourceConfig Objects +# +# input: - function : reference to the called function of each SourceConfig Object +# - parameter : parameter for the called function +# +# output: result : sorted and uniqe array reference +# +############################################################################################ + +sub get_ArrayResult { + my $self = shift; + my $function = shift; + my $parameter = shift; + my $result_ref; + my @modules; + $result_ref = $self->get_ResultOfList ($function, $parameter); + my $count = @$result_ref; + if ($count>0) { + my %moduleHash; + foreach my $module (@$result_ref) { + $moduleHash{$module}++; + } + @modules = sort keys %moduleHash; + } + return \@modules; +} + + ##### finish ##### + +1; # needed by use or require + +__END__ + +=head1 NAME + +SourceConfigHelper - Perl extension for handling with SourceConfigObjetcs + +=head1 SYNOPSIS + + # example that will read source_config file and return the active repositories + + use SourceConfigHelper; + + # Create a new instance: + $a = SourceConfigHelper->new(); + + # Get repositories for the actual workspace: + $a->get_repositories(); + +=head1 DESCRIPTION + +SourceConfigHelper is a perl extension to handle more than one objects of SourceConfig +to set up a search order for modules. + +Methods: + +SourceConfigHelper::new() + +Creates a new instance of SourceConfigHelper. Can be initialized by: default - empty or with a constant of search order. default: the source_config will be taken first from the current repository and second from the environment +Possible parameters are: +SourceConfigHelper::SOURCE_CONFIG_NONE - no SourceConfig Object will be created +SourceConfigHelper::SOURCE_CONFIG_CURRENT_FIRST - use the current repository first +SourceConfigHelper::SOURCE_CONFIG_ENVIRONMENT_FIRST - use the repository of the environment first +SourceConfigHelper::SOURCE_CONFIG_CURRENT_ONLY - use only the current repository +SourceConfigHelper::SOURCE_CONFIG_ENVIRONMENT_ONLY - use only the repository of the environment + +SourceConfigHelper::get_repositories() + +Returns sorted list of active repositories for the actual workspace + +SourceConfigHelper::get_active_modules() + +Returns a sorted list of active modules + +SourceConfigHelper::get_all_modules() + +Returns sorted list of all modules in active repositories. + +SourceConfigHelper::get_module_path($module) + +Returns absolute module path. If the module is not active or don't exists, "undef" will be returned. + +SourceConfigHelper::get_module_repository($module) + +Returns the module's repository. If the module is not active or don't exists, "undef" will be returned. + +SourceConfigHelper::is_active() + +Returns 1 (TRUE) if a module is active +Returns 0 (FALSE) if a module is not active + +SourceConfigHelper::add_SourceConfig($SourceConfigObject) + +Add the SourceConfigObject to the end of the list + +SourceConfigHelper::get_SourceConfigList() + +Return an array of SourceConfigObjects + +SourceConfigHelper::has_SourceConfig() + +Returns 1 (TRUE) if one or more SourceConfig Objects is in the list +Returns 0 (FALSE) if no SourceConfig Object is in the list (can happen if there is no valid repository) + +=head2 EXPORT + +SourceConfigHelper::new() +SourceConfigHelper::get_repositories() +SourceConfigHelper::get_active_modules() +SourceConfigHelper::get_all_modules() +SourceConfigHelper::get_module_path($module) +SourceConfigHelper::get_module_repository($module) +SourceConfigHelper::is_active($module) +SourceConfigHelper::add_SourceConfig($SourceConfigObject) +SourceConfigHelper::get_SourceConfigList() +SourceConfigHelper::has_SourceConfig() + +=head1 AUTHOR + +Kurt Zenker, kz@openoffice.org + +=head1 SEE ALSO + +perl(1). + +=cut diff --git a/solenv/bin/modules/installer/control.pm b/solenv/bin/modules/installer/control.pm index 9fdfae4d9c66..3f6b43f563fb 100644 --- a/solenv/bin/modules/installer/control.pm +++ b/solenv/bin/modules/installer/control.pm @@ -320,6 +320,11 @@ sub check_logfile my @output = (); my $contains_error = 0; + my $ignore_error = 0; + my $make_error_to_warning = 0; + + if (( ! $installer::globals::pro ) && ( $installer::globals::ignore_error_in_logfile )) { $ignore_error = 1; } + for ( my $i = 0; $i <= $#{$logfile}; $i++ ) { my $line = ${$logfile}[$i]; @@ -337,6 +342,12 @@ sub check_logfile { $contains_error = 1; push(@errors, $line); + + if ( $ignore_error ) + { + $contains_error = 0; + $make_error_to_warning = 1; + } } } @@ -358,7 +369,26 @@ sub check_logfile } else { - my $line = "\n***********************************************************\n"; + my $line = ""; + + if ( $make_error_to_warning ) + { + $line = "\n*********************************************************************\n"; + push(@output, $line); + $line = "The following errors in the log file were ignored:\n\n"; + push(@output, $line); + + for ( my $i = 0; $i <= $#errors; $i++ ) + { + $line = "$errors[$i]"; + push(@output, $line); + } + + $line = "*********************************************************************\n"; + push(@output, $line); + } + + $line = "\n***********************************************************\n"; push(@output, $line); $line = "Successful packaging process!\n"; push(@output, $line); diff --git a/solenv/bin/modules/installer/environment.pm b/solenv/bin/modules/installer/environment.pm index 4b4d93aa3723..5c8c4ab25e40 100644 --- a/solenv/bin/modules/installer/environment.pm +++ b/solenv/bin/modules/installer/environment.pm @@ -115,9 +115,6 @@ sub set_global_environment_variables if ( $ENV{'LAST_MINOR'} ) { $installer::globals::lastminor = $ENV{'LAST_MINOR'}; } if ( $ENV{'PROEXT'} ) { $installer::globals::pro = 1; } - if ( $ENV{'SOLAR_JAVA'} ) { $installer::globals::solarjava = 1; } - if ( $ENV{'JDKLIB'} ) { $installer::globals::jdklib = $ENV{'JDKLIB'}; } - if ( $ENV{'JREPATH'} ) { $installer::globals::jrepath = $ENV{'JREPATH'}; } if ( $ENV{'VERBOSE'} && ( (lc $ENV{'VERBOSE'}) eq "false" ) ) { $installer::globals::quiet = 1; } if ( $ENV{'PREPARE_WINPATCH'} ) { $installer::globals::prepare_winpatch = 1; } @@ -129,6 +126,7 @@ sub set_global_environment_variables if ( $ENV{'SOLAR_JAVA'} ) { $installer::globals::solarjavaset = 1; } if ( $ENV{'RPM'} ) { $installer::globals::rpm = $ENV{'RPM'}; } if ( $ENV{'DONTCOMPRESS'} ) { $installer::globals::solarisdontcompress = 1; } + if ( $ENV{'IGNORE_ERROR_IN_LOGFILE'} ) { $installer::globals::ignore_error_in_logfile = 1; } if (( $ENV{'DISABLE_STRIP'} ) && ( $ENV{'DISABLE_STRIP'} ne '' )) { $installer::globals::strip = 0; } if ( $installer::globals::localinstalldir ) { $installer::globals::localinstalldirset = 1; } diff --git a/solenv/bin/modules/installer/globals.pm b/solenv/bin/modules/installer/globals.pm index 0d3bc2603f6b..6b82c17885d0 100644 --- a/solenv/bin/modules/installer/globals.pm +++ b/solenv/bin/modules/installer/globals.pm @@ -87,7 +87,8 @@ BEGIN "oc", "ml", "as", - "ast" + "ast", + "ht" ); @items_at_modules = ("Files", "Dirs", "Unixlinks"); @asianlanguages = ("ja", "ko", "zh-CN", "zh-TW"); @@ -118,8 +119,6 @@ BEGIN $dounzip = 1; $languages_defined_in_productlist = 0; $setupscript_defined_in_productlist = 0; - $services_rdb_created = 0; - $servicesrdb_can_be_created = 0; $islinux = 0; $issolaris = 0; $ismacosx = 0; @@ -238,9 +237,6 @@ BEGIN $creating_windows_installer_patch = 0; $strip = 1; - $solarjava = 0; - $jdklib = ""; - $jrepath = ""; $globallogging = 0; $globalloggingform21 = 1; @@ -248,6 +244,7 @@ BEGIN @logfileinfo = (); @errorlogfileinfo = (); @globallogfileinfo = (); + $ignore_error_in_logfile = 0; $exitlog = ""; $globalinfo_copied = 0; $quiet = 0; @@ -378,6 +375,10 @@ BEGIN %spellcheckerlanguagehash = (); %spellcheckerfilehash = (); $registryrootcomponent = ""; + %allcomponents = (); + %allcomponents_in_this_database = (); + %allshortcomponents = (); + %alluniquedirectorynames = (); $installlocationdirectory = ""; $installlocationdirectoryset = 0; @@ -409,9 +410,6 @@ BEGIN %usedtreeconditions = (); %moduledestination = (); - $unomaxservices = 1800; # regcomp -c argument length - $javamaxservices = 15; - $one_cab_file = 0; $fix_number_of_cab_files = 1; $cab_file_per_component = 0; @@ -454,8 +452,6 @@ BEGIN @solarispatchfiles = (".diPatch", "patchinfo"); @environmentvariables = ( "SOLARVERSION", "GUI", "WORK_STAMP", "OUTPATH", "LOCAL_OUT", "LOCAL_COMMON_OUT" ); @packagelistitems = ("module", "solarispackagename", "packagename", "copyright", "vendor", "description" ); - @regcompjars = ( "unoil.jar", "java_uno.jar", "ridl.jar", "jurt.jar", "juh.jar", "xmerge.jar", "commonwizards.jar" ); - @regcompregisterlibs = ( "javavm.uno", "javaloader.uno", "stocservices.uno" ); @languagepackfeature =(); @helppackfeature =(); @featurecollector =(); @@ -503,7 +499,6 @@ BEGIN $separator = "/"; $pathseparator = "\:"; $libextension = "\.dll"; - $quote = "\'"; $isunix = 0; $iswin = 1; $archiveformat = ".zip"; @@ -528,7 +523,6 @@ BEGIN $libextension = "\.so"; } $archiveformat = ".tar.gz"; - $quote = "\'"; $isunix = 1; $iswin = 0; } diff --git a/solenv/bin/modules/installer/parameter.pm b/solenv/bin/modules/installer/parameter.pm index 2d58d585599e..f17965fa3d7f 100644 --- a/solenv/bin/modules/installer/parameter.pm +++ b/solenv/bin/modules/installer/parameter.pm @@ -386,19 +386,6 @@ sub setglobalvariables if ( ! $installer::globals::packageformat ) { $installer::globals::packageformat = "native"; } - # $installer::globals::servicesrdb_can_be_created can only be set, if regcomp (regcomp.exe) can be executed. - - if ( $installer::globals::iswin && $installer::globals::iswindowsbuild ) { $installer::globals::servicesrdb_can_be_created = 1; } - if ( $installer::globals::islinux && $installer::globals::islinuxbuild ) { $installer::globals::servicesrdb_can_be_created = 1; } - if ( $installer::globals::issolaris && $installer::globals::issolarisbuild ) { $installer::globals::servicesrdb_can_be_created = 1; } - - # ToDo: Needs to be expanded for additional compiler (setting $installer::globals::servicesrdb_can_be_created = 1 for all external platforms) - - if ((!($installer::globals::iswindowsbuild)) && (!($installer::globals::islinuxbuild)) && (!($installer::globals::issolarisbuild))) - { - $installer::globals::servicesrdb_can_be_created = 1; - } - # extension, if $installer::globals::pro is set if ($installer::globals::pro) { $installer::globals::productextension = ".pro"; } @@ -655,8 +642,6 @@ sub outputparameter if ( $installer::globals::debian ) { push(@output, "Linux: Creating Debian packages\n"); } if ( $installer::globals::dounzip ) { push(@output, "Unzip ARCHIVE files\n"); } else { push(@output, "Not unzipping ARCHIVE files\n"); } - if ( $installer::globals::servicesrdb_can_be_created ) { push(@output, "services.rdb can be created\n"); } - else { push(@output, "services.rdb cannot be created !\n"); } if (!($installer::globals::languages_defined_in_productlist)) { push(@output, "Languages:\n"); diff --git a/solenv/bin/modules/installer/regmerge.pm b/solenv/bin/modules/installer/regmerge.pm deleted file mode 100644 index 2f31a0bbc64c..000000000000 --- a/solenv/bin/modules/installer/regmerge.pm +++ /dev/null @@ -1,339 +0,0 @@ -#************************************************************************* -# -# 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. -# -#************************************************************************* - -package installer::regmerge; - -use Cwd; -use installer::converter; -use installer::existence; -use installer::exiter; -use installer::globals; -use installer::logger; -use installer::pathanalyzer; -use installer::remover; -use installer::scriptitems; -use installer::systemactions; - -################################################################ -# Collecting all files with content: -# Regmergefile = "mydatabasepart.rdb"; -################################################################ - -sub collect_all_regmergefiles -{ - my ($filesarrayref) = @_; - - my @regmergefiles = (); - - for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ ) - { - my $onefile = ${$filesarrayref}[$i]; - if ( $onefile->{'Regmergefile'} ) { push(@regmergefiles, $onefile); } - } - - return \@regmergefiles; -} - -################################################################ -# Collecting all gids of the databases, that are part of -# the file definition -################################################################ - -sub collect_all_database_gids -{ - my ($filesarrayref) = @_; - - my @databasegids = (); - - for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ ) - { - my $onefile = ${$filesarrayref}[$i]; - - if ( $onefile->{'RegistryID'} ) - { - my $databasegid = $onefile->{'RegistryID'}; - if (! installer::existence::exists_in_array($databasegid, \@databasegids)) { push(@databasegids, $databasegid); } - } - else - { - installer::exiter::exit_program("ERROR: File defintion error. File :$onefile->{'gid'} without RegistryID!", "collect_all_database_gids"); - } - } - - return \@databasegids; -} - -################################################################ -# Returning the database file from the files collector. In the -# future this file does not need to exist, but currently it -# has to exist already in the files collector. -################################################################ - -sub get_database_file -{ - my ($databasegid, $filesarrayref) = @_; - - my $found = 0; - my $onefile; - - for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ ) - { - $onefile = ${$filesarrayref}[$i]; - my $gid = $onefile->{'gid'}; - - if ( $databasegid eq $gid ) - { - $found = 1; - last; - } - } - - if ( ! $found ) { installer::exiter::exit_program("ERROR: Did not find StarRegistry file $databasegid!", "get_database_file"); } - - return $onefile; -} - -################################################################ -# The regmerge file has to be found the in include pathes -################################################################ - -sub get_regmerge_file -{ - my ($includepatharrayref) = @_; - - my $searchname; - - if ($installer::globals::isunix) { $searchname = "regcomplazy"; } - else { $searchname = "regcomplazy.exe"; } - - my $regmergefileref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$searchname, $includepatharrayref, 1); - if ( $$regmergefileref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $searchname for merging the StarRegistry!", "get_regmerge_file"); } - - return $$regmergefileref; -} - -################################################################ -# Collecting all files that are merged to one defined -# StarRegistry database -################################################################ - -sub collect_all_files_for_one_registry -{ - my ($regmergefiles, $databasegid) = @_; - - my @regmergefiles = (); - - for ( my $i = 0; $i <= $#{$regmergefiles}; $i++ ) - { - my $onefile = ${$regmergefiles}[$i]; - if ( $onefile->{'RegistryID'} eq $databasegid ) { push(@regmergefiles, $onefile); } - } - - return \@regmergefiles; -} - -################################################################ -# Collecting all particles from the regmerge files -################################################################ - -sub collect_all_regmerge_particles -{ - my ($databaseregisterfiles) = @_; - - my @regmergeparticles = (); - - for ( my $i = 0; $i <= $#{$databaseregisterfiles}; $i++ ) - { - my $onefile = ${$databaseregisterfiles}[$i]; - if ( $onefile->{'Regmergefile'} ) { push(@regmergeparticles, $onefile->{'Regmergefile'}); } - else { installer::exiter::exit_program("ERROR: Could not find entry for \"Regmergefile\" in $onefile->{'gid'}!", "collect_all_regmerge_particles"); } - } - - return \@regmergeparticles; -} - -################################################################ -# Collecting all source pathes of the regmerge particles -################################################################ - -sub get_all_source_pathes -{ - my ($regmergeparticles, $includepatharrayref) = @_; - - my @regmergeparticles = (); - - for ( my $i = 0; $i <= $#{$regmergeparticles}; $i++ ) - { - my $filename = ${$regmergeparticles}[$i]; - - my $fileref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$filename, $includepatharrayref, 1); - if ( $$fileref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $filename for merging the StarRegistry!", "get_all_source_pathes"); } - - push(@regmergeparticles, $$fileref); - } - - return \@regmergeparticles; -} - -################################################################ -# Merging the rdb files into the StarRegistry database -################################################################ - -sub merge_files -{ - my ($regmergefile, $databasefile, $registerfiles, $databasedir, $allvariableshashref) = @_; - - my $databasesource = $databasefile->{'sourcepath'}; - my $databasename = $databasefile->{'Name'}; - my $databasedest = $databasedir . $installer::globals::separator . $databasename; - - installer::systemactions::copy_one_file($databasesource, $databasedest); - $databasefile->{'sourcepath'} = $databasedest; # new sourcepath for the StarRegistry file - - # One call for every merge particle. This is only possible, if there are only a few merge particles. - - my $prefix = $databasefile->{'NativeServicesURLPrefix'}; - # TODO: "NativeServicesURLPrefix" or "JavaServicesURLPrefix" - - my $error_occurred = 0; - - for ( my $i = 0; $i <= $#{$registerfiles}; $i++ ) - { - my $registerfile = $databasedir . $installer::globals::separator . $i . ".tmp"; - open (IN, '<', $registerfiles->[$i]) or $error_occurred = 1; - open (OUT, '>', $registerfile) or $error_occurred = 1; - while (<IN>) - { - s/^ComponentName=/ComponentName=$prefix/; - print OUT $_ or $error_occurred = 1; - } - close IN or $error_occurred = 1; - close OUT or $error_occurred = 1; - - my $systemcall = $regmergefile . " -v " . $databasedest . " " . $registerfile . " 2\>\&1 |"; - - my @regmergeoutput = (); - - my $var_library_path; - my $old_library_path; - if ($installer::globals::isunix) { - $var_library_path = $installer::globals::ismacosx ? - 'DYLD_LIBRARY_PATH' : 'LD_LIBRARY_PATH'; - $old_library_path = $ENV{$var_library_path}; - installer::servicesfile::include_libdir_into_ld_library_path( - $var_library_path, $regmergefile); - } - - open (REG, "$systemcall"); - while (<REG>) {push(@regmergeoutput, $_); } - close (REG); - - my $returnvalue = $?; # $? contains the return value of the systemcall - - if (defined $var_library_path) { - if (defined $old_library_path) { - $ENV{$var_library_path} = $old_library_path; - } else { - delete $ENV{$var_library_path}; - } - } - - my $infoline = "Systemcall: $systemcall\n"; - push( @installer::globals::logfileinfo, $infoline); - - for ( my $j = 0; $j <= $#regmergeoutput; $j++ ) { push( @installer::globals::logfileinfo, "$regmergeoutput[$j]"); } - - if ($returnvalue) - { - $infoline = "ERROR: $systemcall\n"; - push( @installer::globals::logfileinfo, $infoline); - $error_occurred = 1; - } - else - { - $infoline = "SUCCESS: $systemcall\n"; - push( @installer::globals::logfileinfo, $infoline); - } - } - - return $error_occurred; -} - -################################################################ -# Expanding the registry database files by merging rdb files -# into this registry database files. -################################################################ - -sub merge_registration_files -{ - my ($filesarrayref, $includepatharrayref, $languagestringref, $allvariableshashref) = @_; - - installer::logger::include_header_into_logfile("Creating starregistry databases:"); - - # Test if there is something to do. At least one file has to have the content: - # Regmergefile = "mydatabasepart.rdb"; - - my $regmergefiles = collect_all_regmergefiles($filesarrayref); - - if ( $#{$regmergefiles} > -1 ) # not empty -> at least one regmerge file - { - # prepare registration - - my $regmergefile = get_regmerge_file($includepatharrayref); # searching for regmerge (regcomplazy.exe) - - my $databasegids = collect_all_database_gids($regmergefiles); - - # iterating over all database gids - - my $regmergeerror = 0; - - for ( my $i = 0; $i <= $#{$databasegids}; $i++ ) - { - $databasegid = ${$databasegids}[$i]; - - my $databasedirname = $databasegid . "_rdb"; # <- unique! - my $databasedir = installer::systemactions::create_directories($databasedirname, $languagestringref); - push(@installer::globals::removedirs, $databasedir); - - my $databasefile = get_database_file($databasegid, $filesarrayref); - my $databaseregisterfiles = collect_all_files_for_one_registry($regmergefiles, $databasegid); - - if ( $#{$databaseregisterfiles} > -1 ) # not empty -> at least one regmerge file - { - my $regmergeparticles = collect_all_regmerge_particles($databaseregisterfiles); - $regmergeparticles = get_all_source_pathes($regmergeparticles, $includepatharrayref); - my $oneregmergeerror = merge_files($regmergefile, $databasefile, $regmergeparticles, $databasedir, $allvariableshashref); - if ($oneregmergeerror) { $regmergeerror = 1; } - } - } - - if ( $regmergeerror ) { installer::exiter::exit_program("ERROR: regmerge !", "merge_registration_files"); } - - } -} - -1; diff --git a/solenv/bin/modules/installer/scriptitems.pm b/solenv/bin/modules/installer/scriptitems.pm index c23cd9e1a817..555b64196cb3 100644 --- a/solenv/bin/modules/installer/scriptitems.pm +++ b/solenv/bin/modules/installer/scriptitems.pm @@ -1222,7 +1222,7 @@ sub get_Source_Directory_For_Files_From_Includepathlist my $styles = ""; my $file_can_miss = 0; if ( $onefile->{'Styles'} ) { $styles = $onefile->{'Styles'}; } - if (( $styles =~ /\bSTARREGISTRY\b/ ) || ( $styles =~ /\bFILE_CAN_MISS\b/ )) { $file_can_miss = 1; } + if ( $styles =~ /\bFILE_CAN_MISS\b/ ) { $file_can_miss = 1; } if (( $installer::globals::languagepack ) && ( ! $onefile->{'ismultilingual'} ) && ( ! ( $styles =~ /\bFORCELANGUAGEPACK\b/ ))) { $file_can_miss = 1; } if (( $installer::globals::helppack ) && ( ! $onefile->{'ismultilingual'} ) && ( ! ( $styles =~ /\bFORCEHELPPACK\b/ ))) { $file_can_miss = 1; } @@ -1350,12 +1350,21 @@ sub remove_Files_Without_Sourcedirectory if ($sourcepath eq "") { my $styles = $onefile->{'Styles'}; + my $filename = $onefile->{'Name'}; - if ( ! ( $styles =~ /\bSTARREGISTRY\b/ )) # StarRegistry files will be created later + if ( ! $installer::globals::languagepack && !$installer::globals::helppack) { - my $filename = $onefile->{'Name'}; + $infoline = "ERROR: Removing file $filename from file list.\n"; + push( @installer::globals::logfileinfo, $infoline); + + push(@missingfiles, "ERROR: File not found: $filename\n"); + $error_occurred = 1; - if ( ! $installer::globals::languagepack && !$installer::globals::helppack) + next; # removing this file from list, if sourcepath is empty + } + elsif ( $installer::globals::languagepack ) # special case for language packs + { + if (( $onefile->{'ismultilingual'} ) || ( $styles =~ /\bFORCELANGUAGEPACK\b/ )) { $infoline = "ERROR: Removing file $filename from file list.\n"; push( @installer::globals::logfileinfo, $infoline); @@ -1365,51 +1374,38 @@ sub remove_Files_Without_Sourcedirectory next; # removing this file from list, if sourcepath is empty } - elsif ( $installer::globals::languagepack ) # special case for language packs + else { - if (( $onefile->{'ismultilingual'} ) || ( $styles =~ /\bFORCELANGUAGEPACK\b/ )) - { - $infoline = "ERROR: Removing file $filename from file list.\n"; - push( @installer::globals::logfileinfo, $infoline); - - push(@missingfiles, "ERROR: File not found: $filename\n"); - $error_occurred = 1; - - next; # removing this file from list, if sourcepath is empty - } - else - { - $infoline = "INFO: Removing file $filename from file list. It is not language dependent.\n"; - push( @installer::globals::logfileinfo, $infoline); - $infoline = "INFO: It is not language dependent and can be ignored in language packs.\n"; - push( @installer::globals::logfileinfo, $infoline); + $infoline = "INFO: Removing file $filename from file list. It is not language dependent.\n"; + push( @installer::globals::logfileinfo, $infoline); + $infoline = "INFO: It is not language dependent and can be ignored in language packs.\n"; + push( @installer::globals::logfileinfo, $infoline); - next; # removing this file from list, if sourcepath is empty - } + next; # removing this file from list, if sourcepath is empty } - else # special case for help packs + } + else # special case for help packs + { + if (( $onefile->{'ismultilingual'} ) || ( $styles =~ /\bFORCEHELPPACK\b/ )) { - if (( $onefile->{'ismultilingual'} ) || ( $styles =~ /\bFORCEHELPPACK\b/ )) - { - $infoline = "ERROR: Removing file $filename from file list.\n"; - push( @installer::globals::logfileinfo, $infoline); + $infoline = "ERROR: Removing file $filename from file list.\n"; + push( @installer::globals::logfileinfo, $infoline); - push(@missingfiles, "ERROR: File not found: $filename\n"); - $error_occured = 1; + push(@missingfiles, "ERROR: File not found: $filename\n"); + $error_occured = 1; - next; # removing this file from list, if sourcepath is empty - } - else - { - $infoline = "INFO: Removing file $filename from file list. It is not language dependent.\n"; - push( @installer::globals::logfileinfo, $infoline); - $infoline = "INFO: It is not language dependent and can be ignored in help packs.\n"; - push( @installer::globals::logfileinfo, $infoline); + next; # removing this file from list, if sourcepath is empty + } + else + { + $infoline = "INFO: Removing file $filename from file list. It is not language dependent.\n"; + push( @installer::globals::logfileinfo, $infoline); + $infoline = "INFO: It is not language dependent and can be ignored in help packs.\n"; + push( @installer::globals::logfileinfo, $infoline); - next; # removing this file from list, if sourcepath is empty - } + next; # removing this file from list, if sourcepath is empty } - } + } } push(@newfilesarray, $onefile); diff --git a/solenv/bin/modules/installer/servicesfile.pm b/solenv/bin/modules/installer/servicesfile.pm deleted file mode 100644 index 948287b206f8..000000000000 --- a/solenv/bin/modules/installer/servicesfile.pm +++ /dev/null @@ -1,1059 +0,0 @@ -#************************************************************************* -# -# 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. -# -#************************************************************************* - -package installer::servicesfile; - -use Cwd; -use installer::converter; -use installer::existence; -use installer::exiter; -use installer::globals; -use installer::logger; -use installer::pathanalyzer; -use installer::remover; -use installer::scriptitems; -use installer::systemactions; - -################################################################ -# Adding the newly created file into the files collector -################################################################ - -sub add_services_sourcepath_into_filearray -{ - my ( $filesarrayref, $servicesfile, $servicesname ) = @_; - - my $found = 0; - my $onefile; - - for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ ) - { - $onefile = ${$filesarrayref}[$i]; - my $name = $onefile->{'Name'}; - - if ( $servicesname eq $name ) - { - $found = 1; - $onefile->{'sourcepath'} = $servicesfile; # setting the sourcepath! - last; - } - } - - if ( ! $found ) { installer::exiter::exit_program("ERROR: Did not find $servicesname in files collector!", "add_services_sourcepath_into_filearray"); } - -} - -################################################################ -# Generating a file url from a path -################################################################ - -sub make_file_url -{ - my ( $path ) = @_; - - my $fileurl = ""; - - # removing ending slash/backslash - - installer::remover::remove_ending_pathseparator(\$path); - - if ($installer::globals::iswin) - { - $path =~ s/\\/\//g; - $fileurl = "file\:\/\/\/" . $path; - } - else - { - $fileurl = "file\:\/\/" . $path; - } - - return $fileurl; -} - -################################################################ -# Determining all sourcepath from the uno components -################################################################ - -sub get_all_sourcepathes -{ - my ( $filesref ) = @_; - - my @pathes = (); - - for ( my $i = 0; $i <= $#{$filesref}; $i++ ) - { - my $onefile = ${$filesref}[$i]; - my $path = $onefile->{'sourcepath'}; - - installer::pathanalyzer::get_path_from_fullqualifiedname(\$path); - - if (! installer::existence::exists_in_array($path, \@pathes)) - { - push(@pathes, $path); - } - } - - return \@pathes; -} - -################################################################ -# Registering all uno component files in the services.rdb -################################################################ - -sub register_unocomponents -{ - my ($allvariableshashref, $unocomponents, $regcompfileref, $servicesfile, $nativeservicesurlprefix) = @_; - - installer::logger::include_header_into_logfile("Registering UNO components:"); - - my $error_occurred = 0; - my $filestring = ""; - for ( my $i = 0; $i <= $#{$unocomponents}; ++$i ) - { - my $local_error1_occurred = 0; - my $local_error2_occurred = 0; - - my $sourcepath = make_file_url(${$unocomponents}[$i]->{'sourcepath'}); - my $urlprefix = ${$unocomponents}[$i]->{'NativeServicesURLPrefix'}; - if (defined($urlprefix)) - { - $local_error1_occurred = call_regcomp($regcompfileref, $servicesfile, $sourcepath, $urlprefix); - } - else - { - $filestring .= ";" unless $filestring eq ""; - $filestring .= $sourcepath; - } - if (length($filestring) > $installer::globals::unomaxservices || - ($i == $#{$unocomponents} && $filestring ne "")) - { - $local_error2_occurred = call_regcomp($regcompfileref, $servicesfile, $filestring, $nativeservicesurlprefix); - $filestring = ""; - } - - if (( $local_error1_occurred ) || ( $local_error2_occurred )) { $error_occurred = 1; } - } - - return $error_occurred; -} - -sub call_regcomp -{ - my ($regcompfileref, $servicesfile, $filestring, $urlprefix) = @_; - my @regcompoutput = (); - - my $error_occurred = 0; - - my $systemcall = "$$regcompfileref -register -r ".fix_cygwin_path($servicesfile)." -c " . $installer::globals::quote . $filestring . $installer::globals::quote . " -wop=" . $installer::globals::quote . $urlprefix . $installer::globals::quote . " 2\>\&1 |"; - - open (REG, "$systemcall"); - while (<REG>) {push(@regcompoutput, $_); } - close (REG); - - my $returnvalue = $?; # $? contains the return value of the systemcall - - my $infoline = "Systemcall: $systemcall\n"; - push( @installer::globals::logfileinfo, $infoline); - - for ( my $j = 0; $j <= $#regcompoutput; $j++ ) { push( @installer::globals::logfileinfo, "$regcompoutput[$j]"); } - - if ($returnvalue) - { - $infoline = "ERROR: $systemcall\n"; - push( @installer::globals::logfileinfo, $infoline); - $error_occurred = 1; - } - else - { - $infoline = "SUCCESS: $systemcall\n"; - push( @installer::globals::logfileinfo, $infoline); - } - - return $error_occurred; -} - -################################################################ -# Registering all java component files in the services.rdb -################################################################ - -sub register_javacomponents -{ - my ($allvariableshashref, $javacomponents, $regcompfileref, $servicesfile, $regcomprdb, $javaservicesurlprefix) = @_; - - installer::logger::include_header_into_logfile("Registering Java components:"); - - my $ridljar_ref = "ridl.jar"; - my $ure_internal_java_dir_ref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$ridljar_ref, "", 1); - installer::pathanalyzer::get_path_from_fullqualifiedname($ure_internal_java_dir_ref); - if ( $$ure_internal_java_dir_ref eq "" ) { installer::exiter::exit_program("Could not determine URE_INTERNAL_JAVA_DIR when registering Java components!", "register_javacomponents"); } - - my $error_occurred = 0; - - my $do_register = 1; - if (!( $installer::globals::solarjava )) { $do_register = 0; } - - if ( $do_register ) - { - my $filestring = ""; - - for ( my $i = 0; $i <= $#{$javacomponents}; ) - { - my $sourcepath = ${$javacomponents}[$i++]->{'sourcepath'}; - - $filestring = $filestring . make_file_url($sourcepath); - - if ( $i % $installer::globals::javamaxservices == 0 || $i > $#{$javacomponents} ) # limiting to $installer::globals::maxservices files - { - my @regcompoutput = (); - - my $systemcall = "$$regcompfileref -register -br ".fix_cygwin_path($regcomprdb)." -r ".fix_cygwin_path($servicesfile)." -c " . $installer::globals::quote . $filestring . $installer::globals::quote . " -l com.sun.star.loader.Java2 -wop=" . $installer::globals::quote . $javaservicesurlprefix . $installer::globals::quote ." -env:URE_INTERNAL_JAVA_DIR=" . $installer::globals::quote . make_file_url($$ure_internal_java_dir_ref) . $installer::globals::quote . " 2\>\&1 |"; - - open (REG, "$systemcall"); - while (<REG>) {push(@regcompoutput, $_); } - close (REG); - - my $returnvalue = $?; # $? contains the return value of the systemcall - - my $infoline = "Systemcall: $systemcall\n"; - push( @installer::globals::logfileinfo, $infoline); - - for ( my $k = 0; $k <= $#regcompoutput; $k++ ) { push( @installer::globals::logfileinfo, "$regcompoutput[$k]"); } - - if ($returnvalue) - { - $infoline = "ERROR: $systemcall\n"; - $error_occurred = 1; - } - else - { - $infoline = "SUCCESS: $systemcall\n"; - } - - push( @installer::globals::logfileinfo, $infoline); - - $filestring = ""; - } - else - { - $filestring = $filestring . ";"; - } - } - } - - return $error_occurred; -} - - - -################################################################ -# Helper routine to change cygwin (POSIX) path to DOS notation -# if needed -################################################################ -sub fix_cygwin_path -{ - my ( $path ) = @_; - - if ( $installer::globals::iswin eq 1 ) - { - $path = qx{cygpath -m "$path"}; - chomp($path); - } - - return $path; -} - - - -################################################################ -# Registering all uno component files in the services.rdb -################################################################ -sub get_source_path_cygwin_safe -{ - my ( $name, $array, $int ) = @_; - - my $ret = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$name, $array, $int); - if ( $installer::globals::iswin eq 1 ) - { - if( substr( $$ret, 1,1 ) eq ":" ) - { - chomp($$ret = qx{cygpath -u "$$ret"}); - } - } - return $ret; -} - -sub register_pythoncomponents -{ - my ($pythoncomponents, $regcompfileref, $servicesfile,$includepatharrayref) = @_; - - installer::logger::include_header_into_logfile("Registering python UNO components:"); - - my $error_occurred = 0; - my $counter = 0; - - my $systemcall = ""; - - my $allsourcepathes = get_all_sourcepathes($pythoncomponents); - - for ( my $j = 0; $j <= $#{$allsourcepathes}; $j++ ) - { - my $filestring = ""; - my $onesourcepath = ${$allsourcepathes}[$j]; - my $to = ""; - my $from = cwd(); - if ( $installer::globals::iswin ) { $from =~ s/\//\\/g; } - - my $typesrdbname = "types.rdb"; - - # FIXME: Remove the unneeded - # get_source_path_cygwin_safe() -> fix_cygwin_path() - # when WRAPCMD is gone - my $typesrdbref = get_source_path_cygwin_safe($typesrdbname, $includepatharrayref, 1); - - if ( $$typesrdbref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $typesrdbname !", "register_pythoncomponents"); } - - my $pyunoservicesrdbname = "pyuno_services.rdb"; - my $pyunoservicesrdbref = get_source_path_cygwin_safe($pyunoservicesrdbname, $includepatharrayref, 1); - - if ( $$pyunoservicesrdbref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $pyunoservicesrname !", "register_pythoncomponents"); } - - for ( my $i = 0; $i <= $#{$pythoncomponents}; $i++ ) - { - my $doinclude = 1; - my $sourcepath = ${$pythoncomponents}[$i]->{'sourcepath'}; - - $to = $sourcepath; - installer::pathanalyzer::get_path_from_fullqualifiedname(\$to); - - if (!($to eq $onesourcepath)) { $doinclude = 0; } - - if ( $doinclude ) - { - my $filename = ${$pythoncomponents}[$i]->{'Name'}; - $filestring = $filestring . $filename . "\;"; - $counter++; - } - - if ( $counter > 0 ) - { - $filestring =~ s/\;\s*$//; - $filestring = substr( $filestring, 0, length($filestring)-3); - chdir($onesourcepath); - - my @regcompoutput = (); - - $systemcall = "$$regcompfileref -register" - . " -br " . fix_cygwin_path($$typesrdbref) - . " -br " . fix_cygwin_path($$pyunoservicesrdbref) - . " -r " . fix_cygwin_path($servicesfile) - . " -c vnd.openoffice.pymodule:" . $filestring . " -l com.sun.star.loader.Python 2\>\&1 |"; - - open (REG, "$systemcall"); - while (<REG>) {push(@regcompoutput, $_); } - close (REG); - - my $returnvalue = $?; # $? contains the return value of the systemcall - - my $infoline = "Systemcall: $systemcall\n"; - push( @installer::globals::logfileinfo, $infoline); - - for ( my $j = 0; $j <= $#regcompoutput; $j++ ) { push( @installer::globals::logfileinfo, "$regcompoutput[$j]"); } - - if ($returnvalue) - { - $infoline = "ERROR: $systemcall\n"; - push( @installer::globals::logfileinfo, $infoline); - $error_occurred = 1; - } - else - { - $infoline = "SUCCESS: $systemcall\n"; - push( @installer::globals::logfileinfo, $infoline); - } - - chdir($from); - - $counter = 0; - $filestring = ""; - } - } - } - - return $error_occurred; -} - -################################################################ -# Iterating over all files, to find all files with the -# style UNO_COMPONENT. This can be libraries and jar files. -################################################################ - -sub register_all_components -{ - my ( $allvariableshashref, $servicesgid, $filesarrayref, $regcompfileref, $servicesfile, $regcomprdb, $includepatharrayref, $nativeservicesurlprefix, $javaservicesurlprefix ) = @_; - - my $registererrorflag = 0; - - my @unocomponents = (); - my @javacomponents = (); - my @pythoncomponents = (); - - for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ ) - { - my $onefile = ${$filesarrayref}[$i]; - my $styles = ""; - my $regmergefile = ""; - my $registryid = ""; - - if ( $onefile->{'RegistryID'} ) { $registryid = $onefile->{'RegistryID'}; } - - if ( $servicesgid ne $registryid ) { next; } # only registration for the current $servicesgid - - if ( $onefile->{'Regmergefile'} ) { $regmergefile = $onefile->{'Regmergefile'}; } - - if ( $onefile->{'Styles'} ) { $styles = $onefile->{'Styles'}; } - - if (( $styles =~ /\bUNO_COMPONENT\b/ ) && ( $regmergefile eq "" )) # regmergefiles will not be registered with regcomp - { - my $filename = $onefile->{'Name'}; - - if ( $filename =~ /\.jar\s*$/ ) # java component - { - push(@javacomponents, $onefile); - } - elsif( $filename =~ /\.py\s*$/ ) # python_component - { - push(@pythoncomponents, $onefile); - } - else # uno component - { - push(@unocomponents, $onefile); - } - } - } - - $uno_error_occurred = 0; - $java_error_occurred = 0; - $python_error_occurred = 0; - - if ( $#unocomponents > -1 ) { $uno_error_occurred = register_unocomponents($allvariableshashref, \@unocomponents, $regcompfileref, $servicesfile, $nativeservicesurlprefix); } - if ( $#javacomponents > -1 ) { $java_error_occurred = register_javacomponents($allvariableshashref, \@javacomponents, $regcompfileref, $servicesfile, $regcomprdb, $javaservicesurlprefix); } - if ( $#pythoncomponents > -1 ) { $python_error_occurred = register_pythoncomponents(\@pythoncomponents, $regcompfileref, $servicesfile, $includepatharrayref); } - - if ( $uno_error_occurred || $java_error_occurred || $python_error_occurred ) { $registererrorflag = 1; } - - return $registererrorflag; -} - -################################################### -# Include the solver lib directory into -# the LD_LIBRARY_PATH for Unix platforms -################################################### - -sub include_libdir_into_ld_library_path -{ - my ( $var, $binfile ) = @_; - - my $ld_library_path = $binfile; - installer::pathanalyzer::get_path_from_fullqualifiedname(\$ld_library_path); - $ld_library_path =~ s/\/\s*$//; # removing ending slashes - $ld_library_path =~ s/\/bin\./\/lib\./; - $ld_library_path =~ s/\/bin\s*$/\/lib/; # when packing from flat - - my $oldldlibrarypathstring = $ENV{$var}; - my $new_ld_library_path = $ld_library_path; - if ( defined $oldldlibrarypathstring ) { - $new_ld_library_path = $new_ld_library_path . $installer::globals::pathseparator . $oldldlibrarypathstring; - } - if ( $ENV{'SYSTEM_MOZILLA'} && $ENV{'SYSTEM_MOZILLA'} eq "YES" && - (!$ENV{'WITH_OPENLDAP'} || $ENV{'WITH_OPENLDAP'} ne "YES")) { - $new_ld_library_path = $new_ld_library_path . $installer::globals::pathseparator . $ENV{'MOZ_LIB'}; - } - $ENV{$var} = $new_ld_library_path; - - my $infoline = "Setting $var to $ENV{$var}\n"; - push( @installer::globals::logfileinfo, $infoline); -} - -################################################################## -# Setting the needed jar files into the CLASSPATH -# They are needed from regcomp. -# The jar files are defined in @installer::globals::regcompjars -################################################################## - -sub prepare_classpath_for_java_registration -{ - my ( $includepatharrayref ) = @_; - my $local_pathseparator = $installer::globals::pathseparator; - - if( $^O =~ /cygwin/i ) - { # $CLASSPATH must use DOS separator even when using cygwin's perl - $local_pathseparator = ';'; - } - - for ( my $i = 0; $i <= $#installer::globals::regcompjars; $i++ ) - { - my $filename = $installer::globals::regcompjars[$i]; - - my $jarfileref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$filename, $includepatharrayref, 1); - - if ( $$jarfileref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $filename for registering java components!", "prepare_classpath_for_java_registration"); } - - my $oldclasspathstring = ""; - if ( $ENV{'CLASSPATH'} ) { $oldclasspathstring = $ENV{'CLASSPATH'}; } - else { $oldclasspathstring = "\."; } - my $classpathstring = $$jarfileref . $local_pathseparator . $oldclasspathstring; - if ( $^O =~ /cygwin/i ) { - $classpathstring =~ s/\//\\/g; # guw.pl likes '\' in $PATH. - } - $ENV{'CLASSPATH'} = $classpathstring; - - my $infoline = "Setting CLASSPATH to $ENV{'CLASSPATH'}\n"; - push( @installer::globals::logfileinfo, $infoline); - } -} - -################################################################## -# Setting the jdk lib into the LD_LIBRARY_PATH (Unix) -# This is used by regcomp to register Java components. -# The jdk lib is defined in $installer::globals::jdklib -################################################################## - -sub add_jdklib_into_ld_library_path -{ - my ($var) = @_; - if (defined $installer::globals::jdklib) { - my $oldldlibrarypathstring = $ENV{$var}; - my $new_ld_library_path = $installer::globals::jdklib; - if (defined $oldldlibrarypathstring) { - $new_ld_library_path .= - $installer::globals::pathseparator . $oldldlibrarypathstring; - } - $ENV{$var} = $new_ld_library_path; - my $infoline = "Setting $var to $ENV{$var}\n"; - push( @installer::globals::logfileinfo, $infoline); - } -} - -################################################################## -# Adding the libraries included in zip files into path variable -# (for example mozruntime.zip). This is needed to register all -# libraries successfully. -################################################################## - -sub add_path_to_pathvariable_directory -{ - my ( $filesarrayref, $searchstring ) = @_; - - # determining the path - - my $path = ""; - - for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ ) - { - my $onefile = ${$filesarrayref}[$i]; - my $sourcepath = $onefile->{'sourcepath'}; - - installer::pathanalyzer::get_path_from_fullqualifiedname(\$sourcepath); - installer::remover::remove_ending_pathseparator(\$sourcepath); - - if ( $sourcepath =~ /\Q$searchstring\E\s*$/ ) - { - $path = $sourcepath; - last; - } - } - - # adding the path to the PATH variable - - if ( $path ne "" ) - { - my $oldpath = ""; - if ( $ENV{'PATH'} ) { $oldpath = $ENV{'PATH'}; } - else { $oldpath = "\."; } - if ( $^O =~ /cygwin/i ) { - $path = qx(cygpath -u "$path"); - chomp $path; - } - my $newpath = $path . $installer::globals::pathseparator . $oldpath; - $ENV{'PATH'} = $newpath; - - my $infoline = "Setting PATH to $ENV{'PATH'}\n"; - push( @installer::globals::logfileinfo, $infoline); - } -} - -################################################################## -# Adding the path of a specified library to the path variable -# (for example msvcr70.dll). This is needed to register all -# libraries successfully. -################################################################## - -sub add_path_to_pathvariable -{ - my ( $filesarrayref, $searchstring ) = @_; - - # determining the path - - my $path = ""; - - for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ ) - { - my $onefile = ${$filesarrayref}[$i]; - my $sourcepath = $onefile->{'sourcepath'}; - - if ( $sourcepath =~ /\Q$searchstring\E\s*$/ ) - { - installer::pathanalyzer::get_path_from_fullqualifiedname(\$sourcepath); - installer::remover::remove_ending_pathseparator(\$sourcepath); - $path = $sourcepath; - last; - } - } - - # adding the path to the PATH variable - - if ( $path ne "" ) - { - my $oldpath = ""; - if ( $ENV{'PATH'} ) { $oldpath = $ENV{'PATH'}; } - else { $oldpath = "\."; } - if ( $^O =~ /cygwin/i ) { - $path = qx(cygpath -u "$path"); - chomp $path; - } - my $newpath = $path . $installer::globals::pathseparator . $oldpath; - $ENV{'PATH'} = $newpath; - - my $infoline = "Setting PATH to $ENV{'PATH'}\n"; - push( @installer::globals::logfileinfo, $infoline); - } -} - -################################################################## -# Setting the jre path into the PATH (Windows only) -# This is used by regcomp.exe to register Java components. -# The jre path is saved in $installer::globals::jrepath -################################################################## - -sub add_jrepath_into_path -{ - my $oldpath = ""; - if ( $ENV{'PATH'} ) { $oldpath = $ENV{'PATH'}; } - else { $oldpath = "\."; } - - if ( $installer::globals::jrepath ne "" ) - { - my $newpath = $installer::globals::jrepath . $installer::globals::pathseparator . $oldpath; - $ENV{'PATH'} = $newpath; - - my $infoline = "Setting PATH to $ENV{'PATH'}\n"; - push( @installer::globals::logfileinfo, $infoline); - } -} - -####################################################################################### -# Preparing a registry "regcomp.rdb" which regcomp can work on (types+java services). -# Copying the "udkapi.rdb", renaming it to "regcomp.rdb" and registering the -# libraries @installer::globals::regcompregisterlibs, which are javavm.uno.so -# and javaloader.uno.so or javavm.uno.dll and javaloader.uno.dll -####################################################################################### - -sub prepare_regcomp_rdb -{ - my ( $regcompfile, $servicesdir, $includepatharrayref) = @_; - - # udkapi.rdb has to be found in the sourcepath - - my $filename = "udkapi.rdb"; - my $udkapirdbref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$filename, $includepatharrayref, 1); - if ( $$udkapirdbref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $filename for creating regcomp.rdb!", "prepare_regcomp_rdb"); } - - my $regcompfilename = "regcomp.rdb"; - my $regcomprdb = $servicesdir . $installer::globals::separator . $regcompfilename; - - # If there is an older version of this file, it has to be removed - if ( -f $regcomprdb ) { unlink($regcomprdb); } - - installer::systemactions::copy_one_file($$udkapirdbref, $regcomprdb); - - # now the libraries in @installer::globals::regcompregisterlibs can be registered in the "regcomp.rdb" - - for ( my $i = 0; $i <= $#installer::globals::regcompregisterlibs; $i++ ) - { - my $libfilename = $installer::globals::regcompregisterlibs[$i] . $installer::globals::libextension; - my $libfileref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$libfilename, $includepatharrayref, 1); - if ( $$libfileref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $libfilename for creating regcomp.rdb!", "prepare_regcomp_rdb"); } - - my $from = cwd(); - if ( $installer::globals::iswin ) { $from =~ s/\//\\/g; } - - my $to = $$libfileref; - installer::pathanalyzer::get_path_from_fullqualifiedname(\$to); - - chdir($to); - - my $systemcall = "$regcompfile -register -s -r " . fix_cygwin_path($regcomprdb) . " -c $libfilename"; - - my $returnvalue = system($systemcall); - - chdir($from); - - my $infoline; - if ($returnvalue) { $infoline = "ERROR: $systemcall\n"; } - else { $infoline = "SUCCESS: $systemcall\n"; } - - push( @installer::globals::logfileinfo, $infoline); - } - - return $regcomprdb; -} - -################################################################ -# Collecting all gids of the databases, that are part of -# the file definition -################################################################ - -sub collect_all_services_gids -{ - my ($filesarrayref) = @_; - - my @databasegids = (); - my $error_occurred = 0; - my @error_files = (); - - for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ ) - { - my $onefile = ${$filesarrayref}[$i]; - - if ( $onefile->{'RegistryID'} ) - { - my $databasegid = $onefile->{'RegistryID'}; - if (! installer::existence::exists_in_array($databasegid, \@databasegids)) { push(@databasegids, $databasegid); } - } - else - { - push(@error_files, $onefile->{'gid'}); - $error_occurred = 1; - } - } - - if ( $error_occurred ) - { - my $infoline = "ERROR: Style UNO_COMPONENT is set, but no RegistryID is assigned!\n"; - push( @installer::globals::logfileinfo, $infoline); - print $infoline; - - for ( my $j = 0; $j <= $#error_files; $j++ ) - { - $infoline = "$error_files[$j]\n"; - push( @installer::globals::logfileinfo, $infoline); - print $infoline; - } - - installer::exiter::exit_program("ERROR: File defintion error.", "collect_all_services_gids"); - } - - return \@databasegids; -} - -###################################################################### -# All gids in $databasegids are as RegistryID assigned to files. -# For all this Registry Files a definition has to exist. -###################################################################### - -sub check_defintion_of_databasegids -{ - my ($databasegids, $registryfiles) = @_; - - my @registryfiles = (); - - # First check: For all assigned Registry files, a definition of - # a file with flag STARREGISTRY has to exist. - - for ( my $i = 0; $i <= $#{$databasegids}; $i++ ) - { - my $onegid = ${$databasegids}[$i]; - my $gid_defined = 0; - - for ( my $j = 0; $j <= $#{$registryfiles}; $j++ ) - { - my $registrygid = ${$registryfiles}[$j]->{'gid'}; - - if ( $onegid eq $registrygid ) - { - $gid_defined = 1; - last; - } - } - - if ( ! $gid_defined ) - { - installer::exiter::exit_program("ERROR: Gid $onegid is assigned to file(s), but not defined!", "check_defintion_of_databasegids"); - } - } - - # Second check: If there is a file defined as StarRegistry, is a file with flag UNO_COMPONENT assigned? - - for ( my $j = 0; $j <= $#{$registryfiles}; $j++ ) - { - my $onefile = ${$registryfiles}[$j]; - my $registrygid = $onefile->{'gid'}; - - my $gid_assigned = 0; - - for ( my $i = 0; $i <= $#{$databasegids}; $i++ ) - { - my $onegid = ${$databasegids}[$i]; - - if ( $onegid eq $registrygid ) - { - $gid_assigned = 1; - last; - } - } - - if ( ! $gid_assigned ) - { - my $infoline = "Warning: $registrygid is defined with flag STARREGISTRY, but no file is assigned to the registry.\n"; - push( @installer::globals::logfileinfo, $infoline); - } - else - { - push(@registryfiles, $onefile); - } - } - - return \@registryfiles; -} - -################################################################ -# Some files have flag UNO_COMPONENT, but are not registered -# with regcomp. This files use the regmerge mechanism, that -# is not used in this perl-file. Therefore this files -# have to be filtered out here. -################################################################ - -sub filter_regmergefiles -{ - my ($unocomponentfiles) = @_; - - my @regcompfiles = (); - - for ( my $i = 0; $i <= $#{$unocomponentfiles}; $i++ ) - { - my $onefile = ${$unocomponentfiles}[$i]; - my $regmergefile = ""; - - if ( $onefile->{'Regmergefile'} ) { $regmergefile = $onefile->{'Regmergefile'}; } - if ( $regmergefile ne "" ) { next; } - - push(@regcompfiles, $onefile); - } - - return \@regcompfiles; -} - -################################################################ -# Setting defaults for Creating services.rdb file by registering all uno components -################################################################ - -sub set_url_prefixes -{ - my ( $registryfile ) = @_; - - my $nativeservicesurlprefix = ""; - my $javaservicesurlprefix = ""; - - if ( $registryfile->{'NativeServicesURLPrefix'} ) { $nativeservicesurlprefix = $registryfile->{'NativeServicesURLPrefix'}; } - else { $nativeservicesurlprefix = "vnd.sun.star.expand:\$ORIGIN/"; } - - if ( $registryfile->{'JavaServicesURLPrefix'} ) { $javaservicesurlprefix = $registryfile->{'JavaServicesURLPrefix'}; } - else { $javaservicesurlprefix = "vnd.sun.star.expand:\$UNO_JAVA_COMPONENT_PATH/"; } - - return ($nativeservicesurlprefix, $javaservicesurlprefix); -} - -################################################################ -# Creating services.rdb file by registering all uno components -################################################################ - -sub create_services_rdb -{ - my ($allvariableshashref, $filesarrayref, $includepatharrayref, $languagestringref) = @_; - - # collecting all services files - my $unocomponentfiles = installer::worker::collect_all_items_with_special_flag($filesarrayref, "UNO_COMPONENT"); - $unocomponentfiles = filter_regmergefiles($unocomponentfiles); - - if ( $#{$unocomponentfiles} > -1 ) # not empty -> at least one file with flag UNO_COMPONENT - { - my $databasegids = collect_all_services_gids($unocomponentfiles); - - my $registryfiles = installer::worker::collect_all_items_with_special_flag($filesarrayref, "STARREGISTRY"); - - $registryfiles = check_defintion_of_databasegids($databasegids, $registryfiles); - - # Now the creation of all files with flag STARREGISTRY can begin - - for ( my $i = 0; $i <= $#{$registryfiles}; $i++ ) - { - my $registryfile = ${$registryfiles}[$i]; - - my $servicesname = $registryfile->{'Name'}; # not unique! - my $servicesgid = $registryfile->{'gid'}; # unique - my $uniquedirname = $servicesgid . "_servicesrdb"; - - my ($nativeservicesurlprefix, $javaservicesurlprefix) = set_url_prefixes($registryfile); - - installer::logger::include_header_into_logfile("Creating $servicesname ($servicesgid):"); - - my $servicesdir = installer::systemactions::create_directories($uniquedirname, $languagestringref); - - push(@installer::globals::removedirs, $servicesdir); - - my $servicesfile = $servicesdir . $installer::globals::separator . $servicesname; - - # If there is an older version of this file, it has to be removed - if ( -f $servicesfile ) { unlink($servicesfile); } - - if ( $installer::globals::servicesrdb_can_be_created ) # This has to be done always - { - # Creating the services.rdb in directory "inprogress" - my $origservicesdir = $servicesdir; - $servicesdir = installer::systemactions::make_numbered_dir("inprogress", $servicesdir); - $servicesfile = $servicesdir . $installer::globals::separator . $servicesname; - - # determining the location of the file regcomp - # Because the program regcomp.exe (regcomp) is used now, it has to be taken the version - # from the platform, this script is running. It is not important, for which platform the - # product is built. - - my $searchname; - - if ($installer::globals::isunix) { $searchname = "regcomp"; } - else { $searchname = "regcomp.exe"; } - - $regcompfileref = get_source_path_cygwin_safe($searchname, $includepatharrayref, 1); - if ( $$regcompfileref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $searchname for registering uno components!", "create_services_rdb"); } - - # For Windows the libraries included into the mozruntime.zip have to be added to the path - if ($installer::globals::iswin) { add_path_to_pathvariable_directory($filesarrayref, "mozruntime_zip"); } - if ($installer::globals::iswin) { add_path_to_pathvariable($filesarrayref, "msvcr70.dll"); } - - # setting the LD_LIBRARY_PATH, needed by regcomp - # Linux: Take care of the lock daemon. He has to be started! - # For windows it is necessary that "msvcp7x.dll" and "msvcr7x.dll" are included into the path ! - - my $var_library_path; - my $old_library_path; - if ( $installer::globals::isunix ) { - $var_library_path = $installer::globals::ismacosx ? - 'DYLD_LIBRARY_PATH' : 'LD_LIBRARY_PATH'; - $old_library_path = $ENV{$var_library_path}; - include_libdir_into_ld_library_path( - $var_library_path, $$regcompfileref); - } - - my $regcomprdb = ""; - - if ( $installer::globals::solarjava ) # this is needed to register Java components - { - prepare_classpath_for_java_registration($includepatharrayref); - - if ( $installer::globals::isunix ) - { add_jdklib_into_ld_library_path($var_library_path); } - else { add_jrepath_into_path(); } - - # Preparing a registry which regcomp can work on (types+java services). - # Copying the "udkapi.rdb", renaming it to "regcomp.rdb" and registering the - # libraries $(REGISTERLIBS_JAVA), which are javavm.uno.so and javaloader.uno.so - # or javavm.uno.dll and javaloader.uno.dll - - $regcomprdb = prepare_regcomp_rdb($$regcompfileref, $servicesdir, $includepatharrayref); - } - - # and now iteration over all files - - my $error_during_registration = register_all_components($allvariableshashref, $servicesgid, $unocomponentfiles, $regcompfileref, $servicesfile, $regcomprdb, $includepatharrayref, $nativeservicesurlprefix, $javaservicesurlprefix); - - if (defined $var_library_path) { - if (defined $old_library_path) { - $ENV{$var_library_path} = $old_library_path; - } else { - delete $ENV{$var_library_path}; - } - } - - # Dependent from the success, the registration directory can be renamed. - - if ( $error_during_registration ) - { - $servicesdir = installer::systemactions::rename_string_in_directory($servicesdir, "inprogress", "witherror"); - push(@installer::globals::removedirs, $servicesdir); - # and exiting the packaging process - installer::exiter::exit_program("ERROR: Could not register all components for file $servicesname ($servicesgid)!", "create_services_rdb"); - } - else - { - $servicesdir = installer::systemactions::rename_directory($servicesdir, $origservicesdir); - } - - $servicesfile = $servicesdir . $installer::globals::separator . $servicesname; - } - else - { - my $infoline; - - if (!($installer::globals::servicesrdb_can_be_created)) - { - $infoline = "Warning: $servicesname was not created. Build platform and compiler do not match. Build platform: $installer::globals::plat, compiler : $installer::globals::compiler\n"; - push( @installer::globals::logfileinfo, $infoline); - } - - if ( $installer::globals::services_rdb_created ) - { - $infoline = "Info: $servicesname was not created. $servicesfile already exists.\n"; - push( @installer::globals::logfileinfo, $infoline); - } - - if ((!($installer::globals::servicesrdb_can_be_created)) && (!($installer::globals::services_rdb_created))) - { - $infoline = "ERROR: $servicesname was not created and does not exist!\n"; - push( @installer::globals::logfileinfo, $infoline); - } - } - - # Adding the new services file source path to the filearray - $registryfile->{'sourcepath'} = $servicesfile; # setting the sourcepath! - } - } - - # Setting the global variable $installer::globals::services_rdb_created - - $installer::globals::services_rdb_created = 1; -} - -1; diff --git a/solenv/bin/modules/installer/simplepackage.pm b/solenv/bin/modules/installer/simplepackage.pm index 54959f95b66d..ea3897f10395 100644 --- a/solenv/bin/modules/installer/simplepackage.pm +++ b/solenv/bin/modules/installer/simplepackage.pm @@ -348,9 +348,10 @@ sub replace_one_variable_in_shellscript sub replace_variables_in_scriptfile { - my ($scriptfile, $volume_name, $allvariables) = @_; + my ($scriptfile, $volume_name, $volume_name_app, $allvariables) = @_; replace_one_variable_in_shellscript($scriptfile, $volume_name, "FULLPRODUCTNAME" ); + replace_one_variable_in_shellscript($scriptfile, $volume_name_app, "FULLAPPPRODUCTNAME" ); replace_one_variable_in_shellscript($scriptfile, $allvariables->{'PRODUCTNAME'}, "PRODUCTNAME" ); replace_one_variable_in_shellscript($scriptfile, $allvariables->{'PRODUCTVERSION'}, "PRODUCTVERSION" ); @@ -409,10 +410,17 @@ sub create_package $folder = $packagename; } - my $volume_name = $allvariables->{'PRODUCTNAME'} . ' ' . $allvariables->{'PRODUCTVERSION'}; - $volume_name = $volume_name . ' ' . $allvariables->{'PRODUCTEXTENSION'} if $allvariables->{'PRODUCTEXTENSION'}; + # my $volume_name = $allvariables->{'PRODUCTNAME'} . ' ' . $allvariables->{'PRODUCTVERSION'}; # Adding PRODUCTVERSION makes this difficult to maintain! + my $volume_name = $allvariables->{'PRODUCTNAME'}; + my $volume_name_classic = $allvariables->{'PRODUCTNAME'} . ' ' . $allvariables->{'PRODUCTVERSION'}; + my $volume_name_classic_app = $volume_name; # "app" should not contain version number + # $volume_name = $volume_name . ' ' . $allvariables->{'PRODUCTEXTENSION'} if $allvariables->{'PRODUCTEXTENSION'}; # Adding PRODUCTEXTENSION makes this difficult to maintain! + $volume_name_classic = $volume_name_classic . ' ' . $allvariables->{'PRODUCTEXTENSION'} if $allvariables->{'PRODUCTEXTENSION'}; + $volume_name_classic_app = $volume_name_classic_app . ' ' . $allvariables->{'PRODUCTEXTENSION'} if $allvariables->{'PRODUCTEXTENSION'}; if ( $allvariables->{'DMG_VOLUMEEXTENSION'} ) { $volume_name = $volume_name . ' ' . $allvariables->{'DMG_VOLUMEEXTENSION'}; + $volume_name_classic = $volume_name_classic . ' ' . $allvariables->{'DMG_VOLUMEEXTENSION'}; + $volume_name_classic_app = $volume_name_classic_app . ' ' . $allvariables->{'DMG_VOLUMEEXTENSION'}; } my $sla = 'sla.r'; @@ -428,12 +436,23 @@ sub create_package if (( $installer::globals::languagepack ) || ( $installer::globals::helppack ) || ( $installer::globals::patch )) { $localtempdir = "$tempdir/$packagename"; - if ( $installer::globals::languagepack ) { $volume_name = "$volume_name Language Pack"; } if ( $installer::globals::helppack ) { $volume_name = "$volume_name Help Pack"; } - if ( $installer::globals::patch ) { $volume_name = "$volume_name Patch"; } + if ( $installer::globals::languagepack ) + { + $volume_name = "$volume_name Language Pack"; + $volume_name_classic = "$volume_name_classic Language Pack"; + $volume_name_classic_app = "$volume_name_classic_app Language Pack"; + } + if ( $installer::globals::patch ) + { + $volume_name = "$volume_name Patch"; + $volume_name_classic = "$volume_name_classic Patch"; + $volume_name_classic_app = "$volume_name_classic_app Patch"; + } # Create tar ball named tarball.tar.bz2 - my $appfolder = $localtempdir . "/" . $volume_name . "\.app"; + # my $appfolder = $localtempdir . "/" . $volume_name . "\.app"; + my $appfolder = $localtempdir . "/" . $volume_name_classic_app . "\.app"; my $contentsfolder = $appfolder . "/Contents"; my $tarballname = "tarball.tar.bz2"; @@ -477,7 +496,8 @@ sub create_package if ( $installer::globals::helppack ) { $scriptfilename = "osx_install_helppack.applescript"; } if ( $installer::globals::patch ) { $scriptfilename = "osx_install_patch.applescript"; } my $scripthelpersolverfilename = "mac_install.script"; - my $scripthelperrealfilename = $volume_name; + # my $scripthelperrealfilename = $volume_name; + my $scripthelperrealfilename = $volume_name_classic_app; my $translationfilename = $installer::globals::macinstallfilename; # Finding both files in solver @@ -500,7 +520,8 @@ sub create_package my $scriptfilecontent = installer::files::read_file($scriptfilename); my $translationfilecontent = installer::files::read_file($$translationfileref); localize_scriptfile($scriptfilecontent, $translationfilecontent, $languagestringref); - replace_variables_in_scriptfile($scriptfilecontent, $volume_name, $allvariables); + # replace_variables_in_scriptfile($scriptfilecontent, $volume_name, $allvariables); + replace_variables_in_scriptfile($scriptfilecontent, $volume_name_classic, $volume_name_classic_app, $allvariables); installer::files::save_file($scriptfilename, $scriptfilecontent); chmod 0775, $scriptfilename; @@ -525,7 +546,8 @@ sub create_package # Replacing variables in Info.plist $scriptfilecontent = installer::files::read_file($destfile); - replace_one_variable_in_shellscript($scriptfilecontent, $volume_name, "FULLPRODUCTNAME" ); + # replace_one_variable_in_shellscript($scriptfilecontent, $volume_name, "FULLPRODUCTNAME" ); + replace_one_variable_in_shellscript($scriptfilecontent, $volume_name_classic_app, "FULLAPPPRODUCTNAME" ); # OpenOffice.org Language Pack installer::files::save_file($destfile, $scriptfilecontent); chdir $localfrom; diff --git a/solenv/bin/modules/installer/substfilenamefiles.pm b/solenv/bin/modules/installer/substfilenamefiles.pm index 2a2b22eab53c..98906913c159 100644 --- a/solenv/bin/modules/installer/substfilenamefiles.pm +++ b/solenv/bin/modules/installer/substfilenamefiles.pm @@ -34,8 +34,7 @@ use installer::pathanalyzer; use installer::systemactions; ######################################################### -# Analyzing files with flag SCPZIP_REPLACE -# $item can be "File" or "ScpAction" +# Analyzing files with flag SUBST_FILENAME ######################################################### sub resolving_subst_filename_flag diff --git a/solenv/bin/modules/installer/windows/component.pm b/solenv/bin/modules/installer/windows/component.pm index 498a86c2d319..da11997e5f83 100644 --- a/solenv/bin/modules/installer/windows/component.pm +++ b/solenv/bin/modules/installer/windows/component.pm @@ -198,7 +198,7 @@ sub get_registry_component_directory sub get_file_component_attributes { - my ($componentname, $filesref) = @_; + my ($componentname, $filesref, $allvariables) = @_; my $attributes; @@ -245,6 +245,9 @@ sub get_file_component_attributes $attributes = 4; # Files in shellnew dir and in non advertised startmenu entries must have user registry key as KeyPath } + # Adding 256, if this is a 64 bit installation set. + if (( $allvariables->{'64BITPRODUCT'} ) && ( $allvariables->{'64BITPRODUCT'} == 1 )) { $attributes = $attributes + 256; } + return $attributes } @@ -256,12 +259,15 @@ sub get_file_component_attributes sub get_registry_component_attributes { - my ($componentname) = @_; + my ($componentname, $allvariables) = @_; my $attributes; $attributes = 4; + # Adding 256, if this is a 64 bit installation set. + if (( $allvariables->{'64BITPRODUCT'} ) && ( $allvariables->{'64BITPRODUCT'} == 1 )) { $attributes = $attributes + 256; } + if ( exists($installer::globals::dontdeletecomponents{$componentname}) ) { $attributes = $attributes + 16; } return $attributes @@ -386,7 +392,7 @@ sub get_component_keypath sub create_component_table { - my ($filesref, $registryref, $dirref, $allfilecomponentsref, $allregistrycomponents, $basedir, $componentidhashref, $componentidkeypathhashref) = @_; + my ($filesref, $registryref, $dirref, $allfilecomponentsref, $allregistrycomponents, $basedir, $componentidhashref, $componentidkeypathhashref, $allvariables) = @_; my @componenttable = (); @@ -404,7 +410,7 @@ sub create_component_table $onecomponent{'guid'} = get_component_guid($onecomponent{'name'}, $componentidhashref); $onecomponent{'directory'} = get_file_component_directory($onecomponent{'name'}, $filesref, $dirref); if ( $onecomponent{'directory'} eq "IGNORE_COMP" ) { next; } - $onecomponent{'attributes'} = get_file_component_attributes($onecomponent{'name'}, $filesref); + $onecomponent{'attributes'} = get_file_component_attributes($onecomponent{'name'}, $filesref, $allvariables); $onecomponent{'condition'} = get_file_component_condition($onecomponent{'name'}, $filesref); $onecomponent{'keypath'} = get_component_keypath($onecomponent{'name'}, $filesref, $componentidkeypathhashref); @@ -423,7 +429,7 @@ sub create_component_table $onecomponent{'name'} = ${$allregistrycomponents}[$i]; $onecomponent{'guid'} = get_component_guid($onecomponent{'name'}, $componentidhashref); $onecomponent{'directory'} = get_registry_component_directory(); - $onecomponent{'attributes'} = get_registry_component_attributes($onecomponent{'name'}); + $onecomponent{'attributes'} = get_registry_component_attributes($onecomponent{'name'}, $allvariables); $onecomponent{'condition'} = get_component_condition($onecomponent{'name'}); $onecomponent{'keypath'} = get_component_keypath($onecomponent{'name'}, $registryref, $componentidkeypathhashref); diff --git a/solenv/bin/modules/installer/windows/directory.pm b/solenv/bin/modules/installer/windows/directory.pm index 98134c8ef5b6..9ab583b5ed29 100644 --- a/solenv/bin/modules/installer/windows/directory.pm +++ b/solenv/bin/modules/installer/windows/directory.pm @@ -77,19 +77,78 @@ sub overwrite_programfilesfolder } ############################################################## +# Maximum length of directory name is 72. +# Taking care of underlines, which are the separator. +############################################################## + +sub make_short_dir_version +{ + my ($longstring, $length, $displayname) = @_; + + my $shortstring = ""; + my $infoline = ""; + my $savestring = $longstring; + + # Splitting the string at each "underline" and allowing only $length characters per directory name. + # Checking also uniqueness and length. + + my $stringarray = installer::converter::convert_stringlist_into_array_without_newline(\$longstring, "_"); + + foreach my $onestring ( @{$stringarray} ) + { + my $partstring = ""; + + if ( $onestring =~ /\-/ ) + { + my $localstringarray = installer::converter::convert_stringlist_into_array_without_newline(\$onestring, "-"); + foreach my $onelocalstring ( @{$localstringarray} ) + { + if ( length($onelocalstring) > $length ) { $onelocalstring = substr($onelocalstring, 0, $length); } + $partstring = $partstring . "-" . $onelocalstring; + } + $partstring =~ s/^\s*\-//; + } + else + { + if ( length($onestring) > $length ) { $partstring = substr($onestring, 0, $length); } + else { $partstring = $onestring; } + } + + $shortstring = $shortstring . "_" . $partstring; + } + + $shortstring =~ s/^\s*\_//; + + if ( length($shortstring) > 72 ) + { + my $shortlength = length($shortstring); + $infoline = "WARNING: Failed to create unique directory name with less than 72 characters: \"$displayname\" ($shortstring ($shortlength)).\n"; + push(@installer::globals::logfileinfo, $infoline); + } + + return $shortstring; +} + +############################################################## # Adding unique directory names to the directory collection ############################################################## sub create_unique_directorynames { - my ($directoryref) = @_; + my ($directoryref, $allvariables) = @_; $installer::globals::officeinstalldirectoryset = 0; + my %conversionhash = (); + my $infoline = ""; + my $errorcount = 0; + for ( my $i = 0; $i <= $#{$directoryref}; $i++ ) { my $onedir = ${$directoryref}[$i]; - my $uniquename = $onedir->{'HostName'}; + my $hostname = $onedir->{'HostName'}; + + my $uniquename = $hostname; my $styles = ""; if ( $onedir->{'Styles'} ) { $styles = $onedir->{'Styles'}; } # get_path_from_fullqualifiedname(\$uniqueparentname); @@ -101,6 +160,42 @@ sub create_unique_directorynames $uniquename =~ s/\_//g; # removing existing underlines $uniquename =~ s/\.//g; # removing dots in directoryname $uniquename =~ s/\Q$installer::globals::separator\E/\_/g; # replacing slash and backslash with underline + $uniquename =~ s/OpenOffice/OO/g; + $uniquename =~ s/_registry/_rgy/g; + $uniquename =~ s/_registration/_rgn/g; + $uniquename =~ s/_extension/_ext/g; + $uniquename =~ s/_frame/_frm/g; + $uniquename =~ s/_table/_tbl/g; + $uniquename =~ s/_chart/_crt/g; + + my $startlength = 5; + + if ( ! $allvariables->{'NOSHORTDIRECTORYNAMES'} ) + { + # This process does not work for SDK, because of its long and similar pathes + $uniquename = make_short_dir_version($uniquename, $startlength, $hostname); # taking care of underlines! + } + + if ( exists($installer::globals::alluniquedirectorynames{$uniquename}) ) + { + # This is an error, that must stop the packaging process + $errorcount++; + + $infoline = "$errorcount: Already existing unique directory: $uniquename\n"; + push( @installer::globals::logfileinfo, $infoline); + $infoline = "$errorcount: First full directory: $conversionhash{$uniquename}\n"; + push( @installer::globals::logfileinfo, $infoline); + $infoline = "$errorcount: Current full directory: $hostname\n"; + push( @installer::globals::logfileinfo, $infoline); + } + + $conversionhash{$uniquename} = $hostname; + + $installer::globals::alluniquedirectorynames{$uniquename} = 1; + + # Important: The unique parent is generated from the string $uniquename. Therefore counters + # like adding "_1" is not allowed to achive uniqueness, because this depends from other directories + # and does not deliver always the same result. my $uniqueparentname = $uniquename; @@ -147,6 +242,11 @@ sub create_unique_directorynames $installer::globals::vendordirectoryset = 1; } } + + if ( $errorcount > 0 ) + { + installer::exiter::exit_program("ERROR: Failed to create unique directory names.", "create_unique_directorynames"); + } } ##################################################### @@ -441,8 +541,9 @@ sub create_directory_table my $infoline; overwrite_programfilesfolder($allvariableshashref); - create_unique_directorynames($directoryref); if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforidt_local_1.log", $directoryref); } + create_unique_directorynames($directoryref, $allvariableshashref); + if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforidt_local_1a.log", $directoryref); } create_defaultdir_directorynames($directoryref, $shortdirnamehashref); # only destdir! if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforidt_local_2.log", $directoryref); } set_installlocation_directory($directoryref, $allvariableshashref); diff --git a/solenv/bin/modules/installer/windows/file.pm b/solenv/bin/modules/installer/windows/file.pm index 8396df3de157..059c394278d6 100644 --- a/solenv/bin/modules/installer/windows/file.pm +++ b/solenv/bin/modules/installer/windows/file.pm @@ -170,6 +170,40 @@ sub assign_sequencenumbers_to_files } } +######################################################### +# Create a shorter version of a long component name, +# because maximum length in msi database is 72. +# Attention: In multi msi installation sets, the short +# names have to be unique over all packages, because +# this string is used to create the globally unique id +# -> no resetting of +# %installer::globals::allshortcomponents +# after a package was created. +######################################################### + +sub generate_new_short_componentname +{ + my ($componentname) = @_; + + my $shortcomponentname = ""; + my $counter = 1; + + my $startversion = substr($componentname, 0, 60); # taking only the first 60 characters + $startversion = $startversion . "_"; + + $shortcomponentname = $startversion . $counter; + + while ( exists($installer::globals::allshortcomponents{$shortcomponentname}) ) + { + $counter++; + $shortcomponentname = $startversion . $counter; + } + + $installer::globals::allshortcomponents{$shortcomponentname} = 1; + + return $shortcomponentname; +} + ############################################### # Generating the component name from a file ############################################### @@ -178,77 +212,139 @@ sub get_file_component_name { my ($fileref, $filesref) = @_; - # In this function exists the rule to create components from files - # Rule: - # Two files get the same componentid, if: - # both have the same destination directory. - # both have the same "gid" -> both were packed in the same zip file - # All other files are included into different components! - - # my $componentname = $fileref->{'gid'} . "_" . $fileref->{'Dir'}; - - # $fileref->{'Dir'} is not sufficient! All files in a zip file have the same $fileref->{'Dir'}, - # but can be in different subdirectories. - # Solution: destination=share\Scripts\beanshell\Capitalise\capitalise.bsh - # in which the filename (capitalise.bsh) has to be removed and all backslashes (slashes) are - # converted into underline. - - my $destination = $fileref->{'destination'}; - installer::pathanalyzer::get_path_from_fullqualifiedname(\$destination); - $destination =~ s/\s//g; - $destination =~ s/\\/\_/g; - $destination =~ s/\//\_/g; - $destination =~ s/\_\s*$//g; # removing ending underline - - my $componentname = $fileref->{'gid'} . "__" . $destination; - - # Files with different languages, need to be packed into different components. - # Then the installation of the language specific component is determined by a language condition. - - if ( $fileref->{'ismultilingual'} ) - { - my $officelanguage = $fileref->{'specificlanguage'}; - $componentname = $componentname . "_" . $officelanguage; - } - - $componentname = lc($componentname); # componentnames always lowercase - - $componentname =~ s/\-/\_/g; # converting "-" to "_" - $componentname =~ s/\./\_/g; # converting "-" to "_" - - # Attention: Maximum length for the componentname is 72 - - $componentname =~ s/gid_file_/g_f_/g; - $componentname =~ s/_extra_/_e_/g; - $componentname =~ s/_config_/_c_/g; - $componentname =~ s/_org_openoffice_/_o_o_/g; - $componentname =~ s/_program_/_p_/g; - $componentname =~ s/_typedetection_/_td_/g; - $componentname =~ s/_linguistic_/_l_/g; - $componentname =~ s/_module_/_m_/g; - $componentname =~ s/_optional_/_opt_/g; - $componentname =~ s/_packages/_pack/g; - $componentname =~ s/_menubar/_mb/g; - $componentname =~ s/_common_/_cm_/g; - $componentname =~ s/_export_/_exp_/g; - $componentname =~ s/_table_/_tb_/g; - $componentname =~ s/_sofficecfg_/_sc_/g; - $componentname =~ s/_startmodulecommands_/_smc_/g; - $componentname =~ s/_drawimpresscommands_/_dic_/g; - $componentname =~ s/_basiccommands_/_bac_/g; - $componentname =~ s/_basicidecommands_/_baic_/g; - $componentname =~ s/_genericcommands_/_genc_/g; - $componentname =~ s/_bibliographycommands_/_bibc_/g; - $componentname =~ s/_share_/_s_/g; - $componentname =~ s/_modules_/_ms_/g; - $componentname =~ s/_uiconfig_zip_/_ucz_/g; - $componentname =~ s/_soffice_cfg_/_sc_/g; - - # All this is not necessary for files, which have the flag ASSIGNCOMPOMENT + my $componentname = ""; + + # Special handling for files with ASSIGNCOMPOMENT my $styles = ""; if ( $fileref->{'Styles'} ) { $styles = $fileref->{'Styles'}; } - if ( $styles =~ /\bASSIGNCOMPOMENT\b/ ) { $componentname = get_component_from_assigned_file($fileref->{'AssignComponent'}, $filesref); } + if ( $styles =~ /\bASSIGNCOMPOMENT\b/ ) + { + $componentname = get_component_from_assigned_file($fileref->{'AssignComponent'}, $filesref); + } + else + { + # In this function exists the rule to create components from files + # Rule: + # Two files get the same componentid, if: + # both have the same destination directory. + # both have the same "gid" -> both were packed in the same zip file + # All other files are included into different components! + + # my $componentname = $fileref->{'gid'} . "_" . $fileref->{'Dir'}; + + # $fileref->{'Dir'} is not sufficient! All files in a zip file have the same $fileref->{'Dir'}, + # but can be in different subdirectories. + # Solution: destination=share\Scripts\beanshell\Capitalise\capitalise.bsh + # in which the filename (capitalise.bsh) has to be removed and all backslashes (slashes) are + # converted into underline. + + my $destination = $fileref->{'destination'}; + installer::pathanalyzer::get_path_from_fullqualifiedname(\$destination); + $destination =~ s/\s//g; + $destination =~ s/\\/\_/g; + $destination =~ s/\//\_/g; + $destination =~ s/\_\s*$//g; # removing ending underline + + $componentname = $fileref->{'gid'} . "__" . $destination; + + # Files with different languages, need to be packed into different components. + # Then the installation of the language specific component is determined by a language condition. + + if ( $fileref->{'ismultilingual'} ) + { + my $officelanguage = $fileref->{'specificlanguage'}; + $componentname = $componentname . "_" . $officelanguage; + } + + $componentname = lc($componentname); # componentnames always lowercase + + $componentname =~ s/\-/\_/g; # converting "-" to "_" + $componentname =~ s/\./\_/g; # converting "-" to "_" + + # Attention: Maximum length for the componentname is 72 + # %installer::globals::allcomponents_in_this_database : resetted for each database + # %installer::globals::allcomponents : not resetted for each database + # Component strings must be unique for the complete product, because they are used for + # the creation of the globally unique identifier. + + my $fullname = $componentname; # This can be longer than 72 + + if (( exists($installer::globals::allcomponents{$fullname}) ) && ( ! exists($installer::globals::allcomponents_in_this_database{$fullname}) )) + { + # This is not allowed: One component cannot be installed with different packages. + installer::exiter::exit_program("ERROR: Component \"$fullname\" is already included into another package. This is not allowed.", "get_file_component_name"); + } + + if ( exists($installer::globals::allcomponents{$fullname}) ) + { + $componentname = $installer::globals::allcomponents{$fullname}; + } + else + { + if ( length($componentname) > 72 ) + { + # Using md5sum needs much time + # chomp(my $shorter = `echo $componentname | md5sum | sed -e "s/ .*//g"`); + # $componentname = "comp_$shorter"; + $componentname = generate_new_short_componentname($componentname); # This has to be unique for the complete product, not only one package + } + + $installer::globals::allcomponents{$fullname} = $componentname; + $installer::globals::allcomponents_in_this_database{$fullname} = 1; + } + + # $componentname =~ s/gid_file_/g_f_/g; + # $componentname =~ s/_extra_/_e_/g; + # $componentname =~ s/_config_/_c_/g; + # $componentname =~ s/_org_openoffice_/_o_o_/g; + # $componentname =~ s/_program_/_p_/g; + # $componentname =~ s/_typedetection_/_td_/g; + # $componentname =~ s/_linguistic_/_l_/g; + # $componentname =~ s/_module_/_m_/g; + # $componentname =~ s/_optional_/_opt_/g; + # $componentname =~ s/_packages/_pack/g; + # $componentname =~ s/_menubar/_mb/g; + # $componentname =~ s/_common_/_cm_/g; + # $componentname =~ s/_export_/_exp_/g; + # $componentname =~ s/_table_/_tb_/g; + # $componentname =~ s/_sofficecfg_/_sc_/g; + # $componentname =~ s/_soffice_cfg_/_sc_/g; + # $componentname =~ s/_startmodulecommands_/_smc_/g; + # $componentname =~ s/_drawimpresscommands_/_dic_/g; + # $componentname =~ s/_basiccommands_/_bac_/g; + # $componentname =~ s/_basicidecommands_/_baic_/g; + # $componentname =~ s/_genericcommands_/_genc_/g; + # $componentname =~ s/_bibliographycommands_/_bibc_/g; + # $componentname =~ s/_gentiumbookbasicbolditalic_/_gbbbi_/g; + # $componentname =~ s/_share_/_s_/g; + # $componentname =~ s/_extension_/_ext_/g; + # $componentname =~ s/_extensions_/_exs_/g; + # $componentname =~ s/_modules_/_ms_/g; + # $componentname =~ s/_uiconfig_zip_/_ucz_/g; + # $componentname =~ s/_productivity_/_pr_/g; + # $componentname =~ s/_wizard_/_wz_/g; + # $componentname =~ s/_import_/_im_/g; + # $componentname =~ s/_javascript_/_js_/g; + # $componentname =~ s/_template_/_tpl_/g; + # $componentname =~ s/_tplwizletter_/_twl_/g; + # $componentname =~ s/_beanshell_/_bs_/g; + # $componentname =~ s/_presentation_/_bs_/g; + # $componentname =~ s/_columns_/_cls_/g; + # $componentname =~ s/_python_/_py_/g; + + # $componentname =~ s/_tools/_ts/g; + # $componentname =~ s/_transitions/_trs/g; + # $componentname =~ s/_scriptbinding/_scrb/g; + # $componentname =~ s/_spreadsheet/_ssh/g; + # $componentname =~ s/_publisher/_pub/g; + # $componentname =~ s/_presenter/_pre/g; + # $componentname =~ s/_registry/_reg/g; + + # $componentname =~ s/screen/sc/g; + # $componentname =~ s/wordml/wm/g; + # $componentname =~ s/openoffice/oo/g; + } return $componentname; } diff --git a/solenv/bin/modules/installer/windows/idtglobal.pm b/solenv/bin/modules/installer/windows/idtglobal.pm index fddbe749a57c..333df0e8ea08 100644 --- a/solenv/bin/modules/installer/windows/idtglobal.pm +++ b/solenv/bin/modules/installer/windows/idtglobal.pm @@ -90,10 +90,8 @@ sub get_next_free_number } until (!($alreadyexists)); - if (( $counter > 9 ) && ( length($name) > 6 )) - { - $dontsave = 1; - } + if (( $counter > 9 ) && ( length($name) > 6 )) { $dontsave = 1; } + if (( $counter > 99 ) && ( length($name) > 5 )) { $dontsave = 1; } if (!($dontsave)) { @@ -191,6 +189,14 @@ sub make_eight_three_conform $name =~ s/\s*$//; # removing ending whitespaces $name = $name . "\~"; $number = get_next_free_number($name, $shortnamesref); + + if ( $number > 99 ) + { + $name = substr($name, 0, 4); # name, offset, length + $name =~ s/\s*$//; # removing ending whitespaces + $name = $name . "\~"; + $number = get_next_free_number($name, $shortnamesref); + } } $name = $name . "$number"; @@ -223,6 +229,14 @@ sub make_eight_three_conform $name =~ s/\s*$//; # removing ending whitespaces $name = $name . "\~"; $number = get_next_free_number($name, $shortnamesref); + + if ( $number > 99 ) + { + $name = substr($name, 0, 4); # name, offset, length + $name =~ s/\s*$//; # removing ending whitespaces + $name = $name . "\~"; + $number = get_next_free_number($name, $shortnamesref); + } } $name = $name . "$number"; diff --git a/solenv/bin/modules/installer/windows/msiglobal.pm b/solenv/bin/modules/installer/windows/msiglobal.pm index 1731c1997af3..07f6b73c9cbc 100644 --- a/solenv/bin/modules/installer/windows/msiglobal.pm +++ b/solenv/bin/modules/installer/windows/msiglobal.pm @@ -788,11 +788,16 @@ sub get_codepage_for_sis sub get_template_for_sis { - my ( $language ) = @_; + my ( $language, $allvariables ) = @_; my $windowslanguage = installer::windows::language::get_windows_language($language); - my $value = "\"Intel;" . $windowslanguage; # adding the Windows language + my $architecture = "Intel"; + + # Adding 256, if this is a 64 bit installation set. + if (( $allvariables->{'64BITPRODUCT'} ) && ( $allvariables->{'64BITPRODUCT'} == 1 )) { $architecture = "x64"; } + + my $value = "\"" . $architecture . ";" . $windowslanguage; # adding the Windows language $value = $value . "\""; # adding ending '"' @@ -930,7 +935,7 @@ sub write_summary_into_msi_database my $msiversion = get_msiversion_for_sis(); my $codepage = get_codepage_for_sis($language); - my $template = get_template_for_sis($language); + my $template = get_template_for_sis($language, $allvariableshashref); my $guid = get_packagecode_for_sis(); my $title = get_title_for_sis($sislanguage,$languagefile, "OOO_SIS_TITLE"); my $author = get_author_for_sis(); @@ -1629,6 +1634,104 @@ sub set_uuid_into_component_table installer::files::save_file($componenttablename, $componenttable); } +######################################################################### +# Adding final 64 properties into msi database, if required. +# RegLocator : +16 in type column to search in 64 bit registry. +# All conditions: "VersionNT" -> "VersionNT64" (several tables). +# Already done: "+256" in Attributes column of table "Component". +# Still following: Setting "x64" instead of "Intel" in Summary +# Information Stream of msi database in "get_template_for_sis". +######################################################################### + +sub prepare_64bit_database +{ + my ($basedir, $allvariables) = @_; + + my $infoline = ""; + + if (( $allvariables->{'64BITPRODUCT'} ) && ( $allvariables->{'64BITPRODUCT'} == 1 )) + { + # 1. Beginning with table "RegLocat.idt". Adding "16" to the type. + + my $reglocatfile = ""; + my $reglocatfilename = $basedir . $installer::globals::separator . "RegLocat.idt"; + + if ( -f $reglocatfilename ) + { + my $saving_required = 0; + $reglocatfile = installer::files::read_file($reglocatfilename); + + for ( my $i = 3; $i <= $#{$reglocatfile}; $i++ ) # ignoring the first three lines + { + my $oneline = ${$reglocatfile}[$i]; + + if ( $oneline =~ /^\s*\#/ ) { next; } # this is a comment line + if ( $oneline =~ /^\s*$/ ) { next; } + + if ( $oneline =~ /^\s*(.*?)\t(.*?)\t(.*?)\t(.*?)\t(\d+)\s*$/ ) + { + # Syntax: Signature_ Root Key Name Type + my $sig = $1; + my $root = $2; + my $key = $3; + my $name = $4; + my $type = $5; + + $type = $type + 16; + + my $newline = $sig . "\t" . $root . "\t" . $key . "\t" . $name . "\t" . $type . "\n"; + ${$reglocatfile}[$i] = $newline; + + $saving_required = 1; + } + } + + if ( $saving_required ) + { + # Saving the files + installer::files::save_file($reglocatfilename ,$reglocatfile); + $infoline = "Making idt file 64 bit conform: $reglocatfilename\n"; + push(@installer::globals::logfileinfo, $infoline); + } + } + + # 2. Replacing all occurences of "VersionNT" by "VersionNT64" + + my @versionnt_files = ("Componen.idt", "InstallE.idt", "InstallU.idt", "LaunchCo.idt"); + + foreach my $onefile ( @versionnt_files ) + { + my $fullfilename = $basedir . $installer::globals::separator . $onefile; + + if ( -f $fullfilename ) + { + my $saving_required = 0; + $filecontent = installer::files::read_file($fullfilename); + + for ( my $i = 3; $i <= $#{$filecontent}; $i++ ) # ignoring the first three lines + { + my $oneline = ${$filecontent}[$i]; + + if ( $oneline =~ /\bVersionNT\b/ ) + { + ${$filecontent}[$i] =~ s/\bVersionNT\b/VersionNT64/g; + $saving_required = 1; + } + } + + if ( $saving_required ) + { + # Saving the files + installer::files::save_file($fullfilename ,$filecontent); + $infoline = "Making idt file 64 bit conform: $fullfilename\n"; + push(@installer::globals::logfileinfo, $infoline); + } + } + } + } + +} + ################################################################# # Include all cab files into the msi database. # This works only on Windows @@ -1656,7 +1759,6 @@ sub include_cabs_into_msi $msifilename = installer::converter::make_path_conform($msifilename); # msidb.exe really wants backslashes. (And double escaping because system() expands the string.) - $idtdirbase =~ s/\//\\\\/g; $msifilename =~ s/\//\\\\/g; $extraslash = "\\"; diff --git a/solenv/bin/modules/installer/windows/property.pm b/solenv/bin/modules/installer/windows/property.pm index 8c311e759f16..44d9a3c06598 100644 --- a/solenv/bin/modules/installer/windows/property.pm +++ b/solenv/bin/modules/installer/windows/property.pm @@ -381,8 +381,8 @@ sub set_important_properties if (( $allvariables->{'PRODUCTEXTENSION'} ) && ( $allvariables->{'PRODUCTEXTENSION'} eq "Beta" )) { - my $registryline = "WRITE_REGISTRY" . "\t" . "0" . "\n"; - push(@{$propertyfile}, $registryline); + # my $registryline = "WRITE_REGISTRY" . "\t" . "0" . "\n"; + # push(@{$propertyfile}, $registryline); my $betainfoline = "BETAPRODUCT" . "\t" . "1" . "\n"; push(@{$propertyfile}, $betainfoline); } diff --git a/solenv/bin/modules/par2script/check.pm b/solenv/bin/modules/par2script/check.pm index 7a975f530445..78808cee9191 100644 --- a/solenv/bin/modules/par2script/check.pm +++ b/solenv/bin/modules/par2script/check.pm @@ -139,55 +139,6 @@ sub check_module_existence } ######################################################## -# If the StarRegistry is not defined in the script, -# it has to be removed from the file definition. -######################################################## - -sub check_registry_at_files -{ - my %starregistrygid = (); - - my $item; - foreach $item ( keys %{$par2script::globals::definitions{'File'}} ) - { - if (( exists($par2script::globals::definitions{'File'}->{$item}->{'Styles'}) ) && - ( $par2script::globals::definitions{'File'}->{$item}->{'Styles'} =~ /\bSTARREGISTRY\b/ )) - { - $starregistrygid{$item} = 1; - } - } - - foreach $item ( keys %{$par2script::globals::definitions{'File'}} ) - { - if ( exists($par2script::globals::definitions{'File'}->{$item}->{'RegistryID'}) ) - { - my $registryid = $par2script::globals::definitions{'File'}->{$item}->{'RegistryID'}; - if ( ! exists($starregistrygid{$registryid}) ) - { - die "\nERROR: No definition found for $registryid at file $item\n\n"; - } - - # if ( ! ( $par2script::globals::definitions{'File'}->{$item}->{'Styles'} =~ /\bUNO_COMPONENT\b/ )) - # { - # die "\nERROR: Flag UNO_COMPONENT required for file $item\n\n"; - # } - # -> also possible, that Regmergefile is defined (does not require flag UNO_COMPONENT) - } - - # and also vice versa - - if (( exists($par2script::globals::definitions{'File'}->{$item}->{'Styles'}) ) && - ( $par2script::globals::definitions{'File'}->{$item}->{'Styles'} =~ /\bUNO_COMPONENT\b/ )) - { - if ( ! exists($par2script::globals::definitions{'File'}->{$item}->{'RegistryID'}) ) - { - die "\nERROR: Flag UNO_COMPONENT defined, but no file as \"RegistryID\" at file $item !\n\n"; - } - } - } -} - -######################################################## # Every script has to contain exactly one root module. # This module has no ParentID or an empty ParentID. ######################################################## diff --git a/solenv/bin/packcomponents.xslt b/solenv/bin/packcomponents.xslt new file mode 100644 index 000000000000..6e037a677f73 --- /dev/null +++ b/solenv/bin/packcomponents.xslt @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* 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. +* +**********************************************************************--> + +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:uc="http://openoffice.org/2010/uno-components"> + <xsl:param name="prefix"/> + <xsl:strip-space elements="*"/> + <xsl:template match="/"> + <xsl:element name="components" + namespace="http://openoffice.org/2010/uno-components"> + <xsl:for-each select="list/filename"> + <xsl:variable name="doc" select="document(concat($prefix, .))"/> + <xsl:choose> + <xsl:when test="count($doc/uc:component) = 1"> + <xsl:copy-of select="$doc/uc:component"/> + </xsl:when> + <xsl:otherwise> + <xsl:message terminate="yes"> + <xsl:text>cannot process </xsl:text> + <xsl:value-of select="."/> + </xsl:message> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + </xsl:element> + </xsl:template> +</xsl:stylesheet> diff --git a/solenv/bin/packmodule b/solenv/bin/packmodule new file mode 100755 index 000000000000..d3ae30d48dcd --- /dev/null +++ b/solenv/bin/packmodule @@ -0,0 +1,63 @@ +#! /usr/bin/env python +#************************************************************************* +# +# 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. +# +#************************************************************************* +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.""" + 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.""" + return (path.partition('/')[2] for path in paths_to_pack(loglines)) + +def main(args): + """creates/overwrites a file at OUTDIR/zip/MODULE.zip containing the contents of the gb_deliver.log.""" + if len(args) != 3: + print('usage: packmodule OUTDIR MODULE') + sys.exit(2) + (executable, outdir, module) = args + os.chdir(outdir) + zipdir = 'zip' + try: + os.makedirs(zipdir) + except OSError: + pass + deliverlog = open(os.path.join('inc', module, 'gb_deliver.log')) + packedmodule = zipfile.ZipFile(os.path.join(zipdir,module+'.zip'), 'w') + [packedmodule.write(path) for path in stripped_paths_to_pack(deliverlog)] + packedmodule.close() + +if __name__ == "__main__": + main(sys.argv) + +# vim:set et sw=4 ts=4 filetype=python: diff --git a/solenv/bin/par2script.pl b/solenv/bin/par2script.pl index 0789c460d510..06928ad68439 100644 --- a/solenv/bin/par2script.pl +++ b/solenv/bin/par2script.pl @@ -86,8 +86,6 @@ print "Checking module definitions ...\n"; par2script::check::check_module_existence(); print "Checking module assignments ...\n"; par2script::check::check_moduleid_at_items(); -print "Checking StarRegistry ...\n"; -par2script::check::check_registry_at_files(); print "Checking Root Module ..."; par2script::check::check_rootmodule(); print "Checking Shortcut assignments ...\n"; diff --git a/solenv/bin/soirpm.sh b/solenv/bin/soirpm.sh index 86f8a3e269fd..86f8a3e269fd 100644..100755 --- a/solenv/bin/soirpm.sh +++ b/solenv/bin/soirpm.sh diff --git a/solenv/bin/subsequenttests b/solenv/bin/subsequenttests index 3caa84293f3e..ae9b61922bd8 100755 --- a/solenv/bin/subsequenttests +++ b/solenv/bin/subsequenttests @@ -30,6 +30,8 @@ eval 'exec "$PERL" -Sw "$0" "$@"' use lib("$ENV{SOLARENV}/bin/modules"); use SourceConfig; +my $keep_going = 0; +my $dry_run = 0; my $max_running = 1; while (@ARGV) { my $arg = shift(@ARGV); @@ -38,17 +40,36 @@ while (@ARGV) { } elsif ($arg eq '--') { last; } else { - print STDERR "unknown argument \"$arg\"\n"; - print STDERR "usage: $0 [-P<n>] [-- <args>]\n"; - print STDERR " -P<n> number of parallel dmake invocations\n"; - print STDERR " <args> are passed to dmake invocations\n"; - exit(1); + my $n = substr($arg, 0, 1) eq '-' ? 1 : 0; + while ($n && $n < length($arg)) { + my $c = substr($arg, $n++, 1); + if ($c eq 'k') { + $keep_going = 1; + } elsif ($c eq 'n') { + $dry_run = 1; + } else { + $n = 0; + last; + } + } + if (!$n) { + print STDERR "unknown argument \"$arg\"\n"; + print STDERR "usage: $0 [-kn] [-P<n>] [-- <args>]\n"; + print STDERR " -k continue with other dmake invocations upon\n"; + print STDERR " failure\n"; + print STDERR " -n write directories that would be processed\n"; + print STDERR " to standard output\n"; + print STDERR " -P<n> number of parallel dmake invocations\n"; + print STDERR " <args> are passed to dmake invocations\n"; + exit(1); + } } } 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); @@ -82,6 +103,26 @@ foreach $module ($sc->get_active_modules()) { } } +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; @@ -90,7 +131,6 @@ foreach (@ARGV) { $cmd .= ' 2>&1 |'; my %pids = (); -my @failedpaths = (); my $running = 0; my $counter = 0; while (@testpaths || $running > 0) { @@ -119,8 +159,8 @@ while (@testpaths || $running > 0) { my $testpath = delete($pids{$pid}); defined($testpath) or die("unmatched PID $pid"); if ($? != 0) { - @testpaths = (); push(@failedpaths, $testpath); + @testpaths = () unless $keep_going; } --$running; } diff --git a/solenv/bin/transform_description.pl b/solenv/bin/transform_description.pl index 9a7f850713dd..ff99df425049 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 new file mode 100644 index 000000000000..9e9291c38ac3 --- /dev/null +++ b/solenv/config/sdev300.ini @@ -0,0 +1,3358 @@ +common +{ + environment + { + common + { + ADDED_MODULES solenv default_images custom_images ooo_custom_images external_images postprocess instset_native instsetoo_native smoketest_native smoketestoo_native + BIG_SVX TRUE + BMP_WRITES_FLAG TRUE + BUILD_SPECIAL TRUE + BUILD_STAX YES + BUILD_TYPE SO OOo EXT BINFILTER MORE_FONTS BSH CURL DICTIONARIES HSQLDB HUNSPELL HYPHEN MYTHES JPEG LIBXML2 LIBXMLSEC LPSOLVE MOZ NEON TWAIN PYTHON ZLIB SANE UNIXODBC X11_EXTENSIONS LIBWPD EPM ODK MSFONTEXTRACT MATHMLDTD BOOST MDDS EXPAT CRASHREP BERKELEYDB LIBXSLT SUN AGG GTK ICU SYSTRAY_GTK JAVAINSTALLER2 VIGRA OPENSSL JFREEREPORT APACHE_COMMONS TOMCAT REPORTBUILDER SDEXT SWEXT XPDF LUCENE REDLAND SAXON WRITER2LATEX NSS GRAPHITE MYSQLCPPCONN MYSQLC CPPUNIT LIBTEXTCAT LIBTEXTCATDATA AFMS + CONFIG_PROJECT config_office + DIC_ALL TRUE + ENABLEUNICODE TRUE + ENABLE_AGG YES + ENABLE_CUPS TRUE + ENABLE_DIRECTX TRUE + ENABLE_FONTCONFIG TRUE + ENABLE_GTK TRUE + ENABLE_MEDIAWIKI YES + ENABLE_MINIMIZER YES + ENABLE_MYSQLC YES + ENABLE_NSS_MODULE YES + ENABLE_RANDR TRUE + ENABLE_REPORTBUILDER YES + ENABLE_SVCTAGS YES + ISERVER iserver.germany.sun.com + LU_HGFLAG "" + LU_NOSOURCE "" + LU_RFLAG "" + NEW_JAR_PACK TRUE + NO_REC_RES TRUE + OOODMAKEMODE YES + OOO_SHELL /bin/bash + PCLEAN_PATH xxx + RES_ENUS TRUE + RES_GER TRUE + rsc_once TRUE + SHIPDRIVE /so/install + STLPORT4 NO_STLPORT4 + STLPORT_VER 400 + WITH_FONTOOO YES + WITH_LDAP YES + wrapper_override_cc_wrapper TRUE + MAXPROC maxproc=15 + XINERAMA_LINK dynamic + } + common:0 IF %UPDATER% == YES + { + DEFAULT_TO_ENGLISH_FOR_PACKING 1 + DISABLE_SAL_DBGBOX 1 + } + common:1 IF X%CWS_WORK_STAMP%X != XX + { + CWS_WORK_STAMP_EXT _%CWS_WORK_STAMP% + } + common:2 IF %UPDATER% == YES + { + WITH_LANG en-US de + } + common:3 IF %UPDATER% != YES + { + } + crashdump + { + ENABLE_CRASHDUMP TRUE + } + hg + { + LU_HGFLAG hg_source + } + maxproc + { + MAXPROC maxproc=%MAXPROCESS% + } + minorext + { + UPDMINOREXT .%UPDMINOR% + } + nosource + { + LU_NOSOURCE no_source + } + pro:0 IF %UPDATER% == YES + { + product full + PROEXT .pro + PROFULLSWITCH product=full + WITH_LANG en-US de es fr hu it ja ko nl pl pt pt-BR ru sv th tr zh-CN zh-TW ar + } + pro:1 IF %UPDATER% != YES + { + product full + PROEXT .pro + PROFULLSWITCH product=full + } + + r_only + { + LU_RFLAG r_only + } + tmp + { + SOL_TMP %SOL_TMP_DIR% + } + verbose + { + VERBOSE VERBOSE + } + } + extern + { + ENVROOT + PATH + SRC_ROOT + UPDATER + } + order minorext common:2 common:3 pro:0 pro:1 common common:0 cwsname common:1 tmp crashdump maxproc hg r_only nosource + reset + { + ALT_L10N_MODULE + ENVCFLAGS + HOMEDRIVE + HOMEPATH + JAVAHOME + JAVA_HOME + LU_HGFLAG + LU_NOSOURCE + LU_RFLAGS + MKDIRHIER + PROEXT + PROFULLSWITCH + SHIPDRIVE + SOLARSRC + SOLAR_JAVA + SPEW + STLPORT4 + UPDMINOREXT + WITH_FONTOOO + WITH_LANG + } + restore + { + PATH + } + standlst + { + DRIVE_O %WORK_STAMP%/drives/o:/UnixVolume + DRIVE_S %WORK_STAMP%/drives/s:/UnixVolume + } + switches + { + crashdump + cwsname CWS_WORK_STAMP + envroot + hg + minorext + nosource + pro + maxproc MAXPROCESS + r_only + tmp SOL_TMP_DIR + verbose VERBOSE + } +} +finish +{ + environment + { + cap + { + SOLARSRC %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT% + SOURCE_ROOT_DIR $expand(%SOLARSRC%/..) + } + cax + { + SOLARSRC %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT% + SOURCE_ROOT_DIR $expand(%SOLARSRC%/..) + } + common_0:0 IF %OS% == MACOSX + { + ENABLE_GTK + SOLARINCLUDES -I%SOLARVERSION%$/%INPATH%$/inc%UPDMINOREXT% -I%SOLARENV%$/%OUTPATH%$/inc -I%SOLARENV%$/inc %SOLAREXTRAINC% + } + common_0:3 IF %SOLARINCLUDES% == + { + SOLARINCLUDES -I%SOLARVERSION%$/%INPATH%$/inc%UPDMINOREXT% %PSDKINC% -I%COMPATH%$/include -I%SOLARENV%$/inc %SOLAREXTRAINC% + } + common_1 + { + BISON_HAIRY %SOLARROOT%$/btools$/bison.hairy + BISON_SIMPLE %SOLARROOT%$/btools$/bison.simple + DPKG %BUILD_TOOLS%$/dpkg + OOO_JUNIT_JAR %SOLARROOT%$/btools$/junit-4.8.1.jar + PATH .$:$cp(%SOLARENV%$/bin)$:$cp(%COMMON_BUILD_TOOLS%)$:$cp(%BUILD_TOOLS%$/dmake412)$:$cp(%BUILD_TOOLS%)$:$cp(%COMMON_ENV_TOOLS%)$:$cp(%ENV_TOOLS%)$:$cp(%COMPATH%$/bin)$:$cp(%JDKPATH%)$:$cp(%PATHEXTRA%)$:%PATH% + PATH_SEPERATOR $; + SOLARINC -I%SOLAR_STLPATH% -I%SOLARVERSION%$/%INPATH%$/inc%UPDMINOREXT%$/external %SOLARINCLUDES% + SOLARLIB -L%SOLARVER%/%INPATH%/lib%UPDMINOREXT% %JDKLIBS% %SOLAREXTRALIB% + SOLARSRC %SRC_ROOT% + SOURCE_ROOT_DIR $expand(%SOLARSRC%/..) + ANT_HOME %COMMON_BUILD_TOOLS%$/apache-ant-1.7.1 + DBGSV_INIT %SOLARENV%/bin/dbgsv.ini + WORKDIR %SOLARVERSION%/%INPATH%/workdir + OUTDIR %SOLARVERSION%/%INPATH% + + } + common_2:0 IF X%CWS_WORK_STAMP%X == XX + { + MWS_BUILD TRUE + DELIVER_TO_ZIP TRUE + gb_MAKETARGET packmodule + } + common_a + { + *o: cd %SOLARSRC% + ALT_L10N_MODULE $expand(%SOLARSRC%/..)/sun/l10n_so + TARFILE_LOCATION %SOURCE_ROOT_DIR%/ext_sources + gb_REPOS %SOURCE_ROOT_DIR%/ooo %SOURCE_ROOT_DIR%/sun + gb_LOCALBUILDDIR %SOL_TMP%/gb_%CWS_WORK_STAMP%/%WORK_STAMP% + } + common_setrepo:0 IF X%WITH_LANG%X != XX + { + BUILD_TYPE %BUILD_TYPE% L10N + } + common_jre:0 IF %JREPATH% == + { + HIER set + } + common_jre:1 IF %LD_LIBRARY_PATH% == + { + PATH %PATH%$:$cp(%JREPATH%) + } + cwsname:0 IF X%SOURCE_ROOT_USED%X == XX + { + *build + *deliver + DMAKEROOT SOURCE_ROOT_not_used + SOLARINC SOURCE_ROOT_not_used + SOLARINCLUDE SOURCE_ROOT_not_used + SOLARSRC SOURCE_ROOT_not_used + SOLARVER SOURCE_ROOT_not_used + SOLARVERSION SOURCE_ROOT_not_used + SOLAR_SOURCE_ROOT SOURCE_ROOT_not_used + SO_GEN_ERROR Error - Using -cwsname without -sourceroot switch is harmful... + SO_GEN_ERROR2 ...resetting path to source tree + SRC_ROOT SOURCE_ROOT_not_used + } + cwsname:1 IF X%SOURCE_ROOT%X == XX + { + *build + *deliver + DMAKEROOT SOURCE_ROOT_not_set + SOLARINC SOURCE_ROOT_not_set + SOLARINCLUDE SOURCE_ROOT_not_set + SOLARSRC SOURCE_ROOT_not_set + SOLARVER SOURCE_ROOT_not_set + SOLARVERSION SOURCE_ROOT_not_set + SOLAR_SOURCE_ROOT SOURCE_ROOT_not_set + SO_GEN_ERROR Error - Using -cwsname without SOURCE_ROOT set is harmful... + SO_GEN_ERROR2 ...resetting path to source tree + SRC_ROOT SOURCE_ROOT_not_set + } + cwsname:2 IF X%UPDMINOR%X == XX + { + *build + *deliver + DMAKEROOT UPDMINOR_not_used + SOLARINC UPDMINOR_not_used + SOLARINCLUDE UPDMINOR_not_used + SOLARSRC UPDMINOR_not_used + SOLARVER UPDMINOR_not_used + SOLARVERSION UPDMINOR_not_used + SOLAR_SOURCE_ROOT UPDMINOR_not_used + SO_GEN_ERROR Error - Using -cwsname without -ver switch is harmful... + SO_GEN_ERROR2 ...resetting path to source tree + SRC_ROOT UPDMINOR_not_used + } + jdk14 + { + CLASSPATH .$;%JAVA_HOME%$/jre$/lib$/rt.jar + ILIB %LIB%$;%JDKLIB% + LIB %LIB%$;%JDKLIB% + JAVA_TARGET_FLAG -target 1.4 + } + jdk15 + { + CLASSPATH .$;%JAVA_HOME%$/jre$/lib$/rt.jar + ILIB %LIB%$;%JDKLIB% + LIB %LIB%$;%JDKLIB% + JAVA_TARGET_FLAG -target 1.5 + } + l10n + { + framework %L10N_framework% + L10N-framework %L10N_framework% + } + ojdk16 + { + CLASSPATH .$;%JAVA_HOME%$/jre$/lib$/rt.jar + ILIB %LIB%$;%JDKLIB% + LIB %LIB%$;%JDKLIB% + JAVA_TARGET_FLAG -target 1.6 + } + } + order cwsname:0 cwsname:1 cwsname:2 common_0:0 common_0:1 common_0:2 common_0:3 jdk14 jdk15 ojdk16 common_1 common_2:0 l10n common_jre:0 common_jre:1 cax cap common_a common_setrepo:0 + switches + { + cwsname CWS_WORK_STAMP + } +} +unxfbsdi +{ + environment + { + bs_sourceroot + { + SOLAR_SOURCE_ROOT %SOURCE_ROOT_TMP% + SOURCE_ROOT %SOURCE_ROOT_TMP% + SOURCE_ROOT_USED TRUE + } + cap + { + COPYALL TRUE + COPY_PACKED TRUE + DEVROOT %SOL_TMP%$/r + PCLEAN_PATH %SOLARROOT%/etools + SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOL_TMP%$/r + SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% + } + cax + { + COPYALL FALSE + DEVROOT %SOL_TMP%$/r + PCLEAN_PATH %SOL_TMP%$/r/etools + SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOL_TMP%$/r + SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% + } + common + { + *build nice perl %SOLARENV%/bin/build.pl %PROFULLSWITCH% + *build_client nice perl %SOLARENV%/bin/build_client.pl + *copyprj perl %COMMON_ENV_TOOLS%/copyprj.pl + *deliver perl %SOLARENV%/bin/deliver.pl + *mkout perl %SOLARENV%/bin/mkout.pl + *r: cd %SOLARROOT% + *s: cd %SOLARVERSION% + *zipdep perl %SOLARENV%/bin/zipdep.pl + COPYPRJ perl %COMMON_ENV_TOOLS%/copyprj.pl + DELIVER perl %SOLARENV%/bin/deliver.pl + DMAKEROOT %SOLARENV%/inc/startup + LD_LIBRARY_PATH .:%SOLARVERSION%/%INPATH%/lib%UPDMINOREXT%:%COMPATH%/libexec + MKOUT perl %SOLARENV%/bin/mkout.pl + PATHEXTRA %combin%:/usr/bin:/bin:/usr/sbin:/etc:/usr/bin/X11 + SOLAREXTRAINC -I%SOLAR_STLPATH% -I%SYSBASE%/usr/include -I%SYSBASE%/usr/include/X11 + SOLAREXTRALIB -L../lib -L%SYSBASE%/usr/X11R6/lib -L%SYSBASE%/usr/lib -L/usr/X11R6/lib -L%SOLAR_STLLIBPATH% + SOLAR_JAVA TRUE + ZIPDEP perl %SOLARENV%/bin/zipdep.pl + ENABLE_GCONF TRUE + ENABLE_GNOMEVFS TRUE + } + common0 + { + SOLAR_ENV_ROOT /so/env + SOLAR_SOURCE_ROOT %DRIVE_O% + } + common1 + { + COMPATH %SOLAR_ENV_ROOT%$/gcc_3.0.1_linux_libc2.11_turbolinux + DEVROOT %SOLAR_ENV_ROOT% + PKGFORMAT some_dummy + SHARED_SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv + SHARED_SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% + SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv + SOLARROOT %SOLAR_ENV_ROOT% + SOLARVER %SOLAR_SOURCE_ROOT%/%WORK_STAMP% + SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% + SOLAR_JDK13PATH %SOLAR_ENV_ROOT%/Linux_JDK_1.3.1 + SOLAR_JDK14PATH %SOLAR_ENV_ROOT%/Linux_JDK_1.4.2_11 + SOLAR_JDK15PATH %SOLAR_ENV_ROOT%/Linux_JDK_1.5.0_06 + SO_PACK %SOLAR_ENV_ROOT%/pack/%WORK_STAMP% + SRC_ROOT %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT% + } + common2 + { + BUILD_TOOLS %SOLARROOT%/bt_unxfbsdi/bin + COM GCC + COMMON_BUILD_TOOLS %SOLARROOT%$/btools + COMMON_ENV_TOOLS %SOLARROOT%$/etools + CPU I + CPUNAME INTEL + CVER C300 + ENV_TOOLS %SOLARROOT%/et_unxfbsdi/bin + GUI UNX + GUIBASE unx + GVER VCL + INPATH unxfbsdi%PROEXT% + JDK13PATH %SOLAR_JDK13PATH% + JDK14PATH %SOLAR_JDK14PATH% + JDK15PATH %SOLAR_JDK15PATH% + NO_BSYMBOLIC True + OS FREEBSD + OUTPATH unxfbsdi + SOLAR_STLLIBPATH %SOLARVERSION%$/unxfbsdi%PROEXT%$/lib%UPDMINOREXT% + SOLAR_STLPATH %SOLARVERSION%$/unxfbsdi%PROEXT%$/inc%UPDMINOREXT%$/stl + SYSBASE %SOLAR_SYSBASE_ROOT% + TEMP /tmp + TMP /tmp + } + compath + { + COMPATH %STAR_COMPATH% + } + debug + { + LD_LIBRARY_PATH %SOLARROOT%/solenv/unxlngi4/lib/debug:%LD_LIBRARY_PATH% + } + distroot:0 if X%DIST_ROOT%X != XX + { + SHARED_SOLARVERSION %DIST_ROOT%/%WORK_STAMP% + SOLARVER %DIST_ROOT%/%WORK_STAMP% + SOLARVERSION %DIST_ROOT%/%WORK_STAMP% + } + envroot:0 IF X%ENV_ROOT%X != XX + { + SOLAR_ENV_ROOT %ENV_ROOT% + } + jdk14 + { + JAVA_HOME %JDK14PATH% + JDKINC %JDK14PATH%/include:%JDK14PATH%/include/linux + JDKINCS -I%JDK14PATH%/include -I%JDK14PATH%/include/linux + JDKLIB %JDK14PATH%/jre/lib:%JDK14PATH%/jre/lib/i386:%JDK14PATH%/jre/lib/i386/client + JDKLIBS -L%JDK14PATH%/jre/lib -L%JDK14PATH%/jre/lib/i386 -L%JDK14PATH%/jre/lib/i386/client + JDKPATH %JDK14PATH%/bin + JDK_VERSION 142 + XCLASSPATH .:%JDK14PATH%/jre/lib/rt.jar + } + jdk14path:0 IF X%JDK_PATH%X != XX + { + SOLAR_JDK14PATH %JDK_PATH% + } + jdk15 + { + JAVA_HOME %JDK15PATH% + JDKINC %JDK15PATH%/include:%JDK15PATH%/include/linux + JDKINCS -I%JDK15PATH%/include -I%JDK15PATH%/include/linux + JDKLIB %JDK15PATH%/jre/lib:%JDK15PATH%/jre/lib/i386:%JDK15PATH%/jre/lib/i386/client + JDKLIBS -L%JDK15PATH%/jre/lib -L%JDK15PATH%/jre/lib/i386 -L%JDK15PATH%/jre/lib/i386/client + JDKPATH %JDK15PATH%/bin + JDK_VERSION 150 + XCLASSPATH .:%JDK15PATH%/jre/lib/rt.jar + } + jdk15path:0 IF X%JDK_PATH%X != XX + { + SOLAR_JDK15PATH %JDK_PATH% + } + pro + { + PROSWITCH -DPRODUCT + } + sourceroot:0 IF X%SOURCE_ROOT%X != XX + { + SOLAR_SOURCE_ROOT %SOURCE_ROOT% + SOURCE_ROOT_USED TRUE + } + sysbaseroot + { + SOLAR_SYSBASE_ROOT %SYSBASE_ROOT% + } + } + extern + { + DIST_ROOT + ENV_ROOT + HOME + JDK_PATH + LOCALINI + SOL_TMP + SOURCE_ROOT + SYSBASE_ROOT + USER + } + order common0 bs_sourceroot envroot:0 sourceroot:0 sysbaseroot common1 jdk14path:0 jdk15path:0 distroot:0 cap cax compath common2 pro common jdk14 jdk15 debug + reset + { + CLASSPATH + COPYALL + } + restore + { + INCLUDE + } + script + { + csh + { + 400: if ( ${?COPYALL} ) $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE + 600: umask 002 + 800: rehash + 820: wrapfetch.sh + 850: if ( "$?SO_GEN_ERROR" == 0 ) setenv SO_GEN_ERROR + 851: if ( "$?SO_GEN_ERROR2" == 0 ) setenv SO_GEN_ERROR2 + 900: if ( "$?SO_GEN_ERROR" == 1 ) echo $SO_GEN_ERROR + 901: if ( "$?SO_GEN_ERROR2" == 1 ) echo $SO_GEN_ERROR2 + } + sh + { + 400: if [ $COPYALL ]; then + 410: $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE + 415: fi + 600: umask 002 + 800: hash -r + 820: wrapfetch.sh + 850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then + 851: export SO_GEN_ERROR + 852: fi + 860: if [ "0$SO_GEN_ERROR2" -eq 0 ]; then + 861: export SO_GEN_ERROR2 + 862: fi + 870: if [ "0$SO_GEN_ERROR" -ne 0 ]; then + 871: echo $SO_GEN_ERROR + 872: fi + 880: if [ "0$SO_GEN_ERROR2" -ne 0 ]; then + 881: echo $SO_GEN_ERROR2 + 882: fi + } + } + switches + { + bs_sourceroot SOURCE_ROOT_TMP + bsclient + cap + cax + compath STAR_COMPATH + debug + distroot + envroot + jdk14 + jdk14path + jdk15 + jdk15path + l10n L10N_framework + pro + sourceroot + sysbaseroot + } +} +unxlngi6 +{ + environment + { + bs_sourceroot + { + SOLAR_SOURCE_ROOT %SOURCE_ROOT_TMP% + SOURCE_ROOT %SOURCE_ROOT_TMP% + SOURCE_ROOT_USED TRUE + } + cap + { + COPYALL TRUE + COPY_PACKED TRUE + DEVROOT %SOL_TMP%$/r + PCLEAN_PATH %SOLARROOT%/etools + PERL %SOL_TMP%$/r$/bt_linux_libc2.5$/%WORK_STAMP%$/bin$/perl + SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOL_TMP%$/r + SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% + } + cax + { + COPYALL FALSE + DEVROOT %SOL_TMP%$/r + PCLEAN_PATH %SOL_TMP%$/r/etools + PERL %SOL_TMP%$/r$/bt_linux_libc2.5$/%WORK_STAMP%$/bin$/perl + SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOL_TMP%$/r + SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% + } + common + { + *build nice %PERL% %SOLARENV%/bin/build.pl %PROFULLSWITCH% + *build_client nice %PERL% %SOLARENV%/bin/build_client.pl + *copyprj %PERL% %COMMON_ENV_TOOLS%/copyprj.pl + *deliver %PERL% %SOLARENV%/bin/deliver.pl + *mkout %PERL% %SOLARENV%/bin/mkout.pl + *r: cd %SOLARROOT% + *s: cd %SOLARVERSION% + *zipdep %PERL% %SOLARENV%/bin/zipdep.pl + COPYPRJ %PERL% %COMMON_ENV_TOOLS%/copyprj.pl + DELIVER %PERL% %SOLARENV%/bin/deliver.pl + DMAKEROOT %SOLARENV%/inc/startup + HAVE_GCC_VISIBILITY_FEATURE TRUE + HAVE_LD_BSYMBOLIC_FUNCTIONS TRUE + HAVE_LD_HASH_STYLE TRUE + LIBRARY_PATH %SYSBASE%/usr/lib + MKOUT %PERL% %SOLARENV%/bin/mkout.pl + PATHEXTRA %combin%:/usr/bin:/bin:/usr/sbin:/etc:/usr/bin/X11 + FREETYPE_CFLAGS -I%SYSBASE%/usr/include/freetype2 + SOLAREXTRAINC -I%SOLAR_STLPATH% -I%SYSBASE%/usr/include -I%SYSBASE%/usr/include/X11 -I%SYSBASE%/include + SOLAREXTRALIB -L../lib -L%SYSBASE%/usr/X11R6/lib -L%SYSBASE%/usr/lib -L/usr/X11R6/lib -L%SOLAR_STLLIBPATH% + SOLAR_JAVA TRUE + ZIPDEP %PERL% %SOLARENV%/bin/zipdep.pl + ENABLE_GCONF TRUE + ENABLE_GNOMEVFS TRUE + GNUCOPY cp + GNUMAKE make + } + common0 + { + SOLAR_ENV_ROOT /so/env + SOLAR_SOURCE_ROOT %DRIVE_O% + SOLAR_SYSBASE_ROOT /so/env/gcc_4.2.3_linux_libc2.5/glibc2.5 + } + common1 + { + COMPATH %SOLAR_ENV_ROOT%$/gcc_4.2.3_linux_libc2.5 + DEVROOT %SOLAR_ENV_ROOT% + LFS_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 + PERL %SOLAR_ENV_ROOT%/bt_linux_libc2.5/%WORK_STAMP%/bin/perl + PKGFORMAT rpm + SHARED_SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv + SHARED_SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% + SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv + SOLARROOT %SOLAR_ENV_ROOT% + SOLARVER %SOLAR_SOURCE_ROOT%/%WORK_STAMP% + SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% + SOLAR_JDK13PATH %SOLAR_ENV_ROOT%/Linux_JDK_1.3.1 + SOLAR_JDK14PATH %SOLAR_ENV_ROOT%/Linux_JDK_1.4.2_11 + SOLAR_JDK15PATH %SOLAR_ENV_ROOT%/Linux_JDK_1.5.0_06 + SOLAR_OJDK16PATH %SOLAR_ENV_ROOT%/openjdk-6-b08-linux-i586 + SO_PACK %SOLAR_ENV_ROOT%/pack/%WORK_STAMP% + SRC_ROOT %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT% + PKG_CONFIG_LIBDIR %SOLAR_SYSBASE_ROOT%/usr/lib/pkgconfig + } + common2 + { + ENABLE_GRAPHITE TRUE + ENABLE_GSTREAMER TRUE + BUILD_TOOLS %SOLARROOT%/bt_linux_libc2.5/%WORK_STAMP%/bin + COM GCC + COMMON_BUILD_TOOLS %SOLARROOT%$/btools + COMMON_ENV_TOOLS %SOLARROOT%$/etools + CPU I + CPUNAME INTEL + CVER C432 + ENABLE_KAB TRUE + ENABLE_KDE TRUE + ENABLE_EVOAB2 TRUE + ENV_TOOLS %SOLARROOT%/et_linux_libc2.5/%WORK_STAMP%/bin + GUI UNX + GUIBASE unx + GVER VCL + INPATH unxlngi6%PROEXT% + JDK13PATH %SOLAR_JDK13PATH% + JDK14PATH %SOLAR_JDK14PATH% + JDK15PATH %SOLAR_JDK15PATH% + KDE_ROOT /so/env/kde/linux/kde-3.2.2 + LIBMYSQL_PATH %SOLARROOT%/mysql-connector-c-6.0.2/unxlngi6 + NO_BSYMBOLIC True + OJDK16PATH %SOLAR_OJDK16PATH% + OS LINUX + OUTPATH unxlngi6 + RPM %SOLARENV%/bin/rpm-wrapper + SOLAR_STLLIBPATH %SOLARVERSION%$/unxlngi6%PROEXT%$/lib%UPDMINOREXT% + SOLAR_STLPATH %SOLARVERSION%$/unxlngi6%PROEXT%$/inc%UPDMINOREXT%$/stl + SYSBASE %SOLAR_SYSBASE_ROOT% + TEMP /tmp + TMP /tmp + } + common3:0 IF X%UPDATER%X == XX + { + FORCE2ARCHIVE TRUE + } + compath + { + COMPATH %STAR_COMPATH% + } + distroot:0 if X%DIST_ROOT%X != XX + { + SHARED_SOLARVERSION %DIST_ROOT%/%WORK_STAMP% + SOLARVER %DIST_ROOT%/%WORK_STAMP% + SOLARVERSION %DIST_ROOT%/%WORK_STAMP% + } + envroot:0 IF X%ENV_ROOT%X != XX + { + SOLAR_ENV_ROOT %ENV_ROOT% + } + jdk14 + { + JAVA_HOME %JDK14PATH% + JDKINC %JDK14PATH%/include:%JDK14PATH%/include/linux + JDKINCS -I%JDK14PATH%/include -I%JDK14PATH%/include/linux + JDKLIB %JDK14PATH%/jre/lib:%JDK14PATH%/jre/lib/i386:%JDK14PATH%/jre/lib/i386/client + JDKLIBS -L%JDK14PATH%/jre/lib -L%JDK14PATH%/jre/lib/i386 -L%JDK14PATH%/jre/lib/i386/client + JDKPATH %JDK14PATH%/bin + JDK_VERSION 142 + XCLASSPATH .:%JDK14PATH%/jre/lib/rt.jar + } + jdk14path:0 IF X%JDK_PATH%X != XX + { + SOLAR_JDK14PATH %JDK_PATH% + } + jdk15 + { + JAVA_HOME %JDK15PATH% + JDKINC %JDK15PATH%/include:%JDK15PATH%/include/linux + JDKINCS -I%JDK15PATH%/include -I%JDK15PATH%/include/linux + JDKLIB %JDK15PATH%/jre/lib:%JDK15PATH%/jre/lib/i386:%JDK15PATH%/jre/lib/i386/client:%JDK15PATH%/jre/lib/i386/xawt + JDKLIBS -L%JDK15PATH%/jre/lib -L%JDK15PATH%/jre/lib/i386 -L%JDK15PATH%/jre/lib/i386/client + JDKPATH %JDK15PATH%/bin + JDK_VERSION 150 + XCLASSPATH .:%JDK15PATH%/jre/lib/rt.jar + } + jdk15path:0 IF X%JDK_PATH%X != XX + { + SOLAR_JDK15PATH %JDK_PATH% + } + ojdk16 + { + JAVA_HOME %OJDK16PATH% + JDKINC %OJDK16PATH%/include:%OJDK16PATH%/include/linux + JDKINCS -I%OJDK16PATH%/include -I%OJDK16PATH%/include/linux + JDKLIB %OJDK16PATH%/jre/lib:%OJDK16PATH%/jre/lib/i386:%OJDK16PATH%/jre/lib/i386/client:%OJDK16PATH%/jre/lib/i386/xawt + JDKLIBS -L%OJDK16PATH%/jre/lib -L%OJDK16PATH%/jre/lib/i386 -L%OJDK16PATH%/jre/lib/i386/client + JDKPATH %OJDK16PATH%/bin + JDK_VERSION 160 + XCLASSPATH .:%OJDK16PATH%/jre/lib/rt.jar + } + ojdk16path:0 IF X%JDK_PATH%X != XX + { + SOLAR_OJDK16PATH %JDK_PATH% + } + pro + { + PROSWITCH -DPRODUCT + } + sourceroot:0 IF X%SOURCE_ROOT%X != XX + { + SOLAR_SOURCE_ROOT %SOURCE_ROOT% + SOURCE_ROOT_USED TRUE + } + sysbaseroot + { + SOLAR_SYSBASE_ROOT %SYSBASE_ROOT% + } + } + extern + { + DIST_ROOT + ENV_ROOT + HOME + JDK_PATH + LOCALINI + SOL_TMP + SOURCE_ROOT + SYSBASE_ROOT + USER + } + order common0 bs_sourceroot envroot:0 sourceroot:0 sysbaseroot common1 jdk14path:0 jdk15path:0 ojdk16path:0 distroot:0 cap cax compath common2 pro common3:0 common jdk14 jdk15 ojdk16 + reset + { + CLASSPATH + COPYALL + } + restore + { + INCLUDE + } + script + { + csh + { + 400: if ( ${?COPYALL} ) $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE + 600: umask 002 + 800: rehash + 820: wrapfetch.sh + 850: if ( "$?SO_GEN_ERROR" == 0 ) setenv SO_GEN_ERROR + 851: if ( "$?SO_GEN_ERROR2" == 0 ) setenv SO_GEN_ERROR2 + 900: if ( "$?SO_GEN_ERROR" == 1 ) echo $SO_GEN_ERROR + 901: if ( "$?SO_GEN_ERROR2" == 1 ) echo $SO_GEN_ERROR2 + } + sh + { + 400: if [ $COPYALL ]; then + 410: $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE + 415: fi + 600: umask 002 + 800: hash -r + 820: wrapfetch.sh + 850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then + 851: export SO_GEN_ERROR + 852: fi + 860: if [ "0$SO_GEN_ERROR2" -eq 0 ]; then + 861: export SO_GEN_ERROR2 + 862: fi + 870: if [ "0$SO_GEN_ERROR" -ne 0 ]; then + 871: echo $SO_GEN_ERROR + 872: fi + 880: if [ "0$SO_GEN_ERROR2" -ne 0 ]; then + 881: echo $SO_GEN_ERROR2 + 882: fi + } + } + switches + { + bs_sourceroot SOURCE_ROOT_TMP + bsclient + cap + cax + compath STAR_COMPATH + debug + distroot + envroot + jdk14 + jdk14path + jdk15 + jdk15path + l10n L10N_framework + ojdk16 + ojdk16path + pro + sourceroot + sysbaseroot + } +} + +unxlngx6 +{ + environment + { + bs_sourceroot + { + SOLAR_SOURCE_ROOT %SOURCE_ROOT_TMP% + SOURCE_ROOT %SOURCE_ROOT_TMP% + SOURCE_ROOT_USED TRUE + } + cap + { + COPYALL TRUE + COPY_PACKED TRUE + DEVROOT %SOL_TMP%$/r + PCLEAN_PATH %SOLARROOT%/etools + PERL %SOL_TMP%$/r$/bt_linux64_libc2.5$/%WORK_STAMP%$/bin$/perl + SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOL_TMP%$/r + SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% + } + cax + { + COPYALL FALSE + DEVROOT %SOL_TMP%$/r + PCLEAN_PATH %SOL_TMP%$/r/etools + PERL %SOL_TMP%$/r$/bt_linux64_libc2.5$/%WORK_STAMP%$/bin$/perl + SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOL_TMP%$/r + SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% + } + common + { + *build nice %PERL% %SOLARENV%/bin/build.pl %PROFULLSWITCH% + *build_client nice %PERL% %SOLARENV%/bin/build_client.pl + *copyprj %PERL% %COMMON_ENV_TOOLS%/copyprj.pl + *deliver %PERL% %SOLARENV%/bin/deliver.pl + *mkout %PERL% %SOLARENV%/bin/mkout.pl + *r: cd %SOLARROOT% + *s: cd %SOLARVERSION% + *zipdep %PERL% %SOLARENV%/bin/zipdep.pl + COPYPRJ %PERL% %COMMON_ENV_TOOLS%/copyprj.pl + DELIVER %PERL% %SOLARENV%/bin/deliver.pl + DMAKEROOT %SOLARENV%/inc/startup + HAVE_GCC_VISIBILITY_FEATURE TRUE + HAVE_LD_BSYMBOLIC_FUNCTIONS TRUE + HAVE_LD_HASH_STYLE TRUE + LIBRARY_PATH %SYSBASE%/usr/lib64 + MKOUT %PERL% %SOLARENV%/bin/mkout.pl + PATHEXTRA %combin%:/usr/bin:/bin:/usr/sbin:/etc:/usr/bin/X11 + FREETYPE_CFLAGS -I%SYSBASE%/usr/include/freetype2 + SOLAREXTRAINC -I%SOLAR_STLPATH% -I%SYSBASE%/usr/include -I%SYSBASE%/usr/include/X11 -I%SYSBASE%/include + SOLAREXTRALIB -L../lib64 -L%SYSBASE%/usr/lib64 -L%SOLAR_STLLIBPATH% + SOLAR_JAVA TRUE + ZIPDEP %PERL% %SOLARENV%/bin/zipdep.pl + ENABLE_GCONF TRUE + ENABLE_GNOMEVFS TRUE + GNUMAKE make + } + common0 + { + SOLAR_ENV_ROOT /so/env + SOLAR_SOURCE_ROOT %DRIVE_O% + SOLAR_SYSBASE_ROOT /so/env/gcc_4.2.3_linux64_libc2.5/glibc2.5 + } + common1 + { + COMPATH %SOLAR_ENV_ROOT%$/gcc_4.2.3_linux64_libc2.5 + DEVROOT %SOLAR_ENV_ROOT% + PERL %SOLAR_ENV_ROOT%/bt_linux64_libc2.5/%WORK_STAMP%/bin/perl + PKGFORMAT rpm + SHARED_SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv + SHARED_SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% + SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv + SOLARROOT %SOLAR_ENV_ROOT% + SOLARVER %SOLAR_SOURCE_ROOT%/%WORK_STAMP% + SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% + SOLAR_JDK14PATH %SOLAR_ENV_ROOT%/Linux_JDK_1.4.2.32 + SOLAR_JDK15PATH %SOLAR_ENV_ROOT%/Linux_JDK_1.5.0_15.x64 + SOLAR_OJDK16PATH %SOLAR_ENV_ROOT%/openjdk-6-b08-linux-amd64 + SO_PACK %SOLAR_ENV_ROOT%/pack/%WORK_STAMP% + SRC_ROOT %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT% + USE_SYSTEM_STL YES + XAU_LIBS -lXau + PKG_CONFIG_LIBDIR %SOLAR_SYSBASE_ROOT%/usr/lib/pkgconfig + } + common2 + { + PKG_CONFIG_PATH %COMPATH%/glibc2.5/usr/lib64/pkgconfig + ENABLE_GRAPHITE TRUE + ENABLE_GSTREAMER TRUE + BUILD_TOOLS %SOLARROOT%/bt_linux64_libc2.5/%WORK_STAMP%/bin + COM GCC + COMMON_BUILD_TOOLS %SOLARROOT%$/btools + COMMON_ENV_TOOLS %SOLARROOT%$/etools + CPU X + CPUNAME INTEL + CVER C341 + ENABLE_KAB TRUE + ENABLE_KDE TRUE + ENV_TOOLS %SOLARROOT%/et_linux64_libc2.5/%WORK_STAMP%/bin + GUI UNX + GUIBASE unx + GUIENV sal + GVER VCL + INPATH unxlngx6%PROEXT% + JDK14PATH %SOLAR_JDK14PATH% + JDK15PATH %SOLAR_JDK15PATH% + KDE_ROOT /so/env/kde/linux-x64/kde-3.5.10 + LIBMYSQL_PATH %SOLARROOT%/mysql-connector-c-6.0.2/unxlngx6 + NO_BSYMBOLIC True + OJDK16PATH %SOLAR_OJDK16PATH% + OS LINUX + OUTPATH unxlngx6 + PA_VER 18 + RPM %SOLARENV%/bin/rpm-wrapper + SOLARUPD %UPD% + SOLAR_STLLIBPATH %SOLARVERSION%$/unxlngx6%PROEXT%$/lib%UPDMINOREXT% + SOLAR_STLPATH %SOLARVERSION%$/unxlngx6%PROEXT%$/inc%UPDMINOREXT%$/stl + SYSBASE %SOLAR_SYSBASE_ROOT% + TEMP /tmp + TMP /tmp + } + common3:0 IF X%UPDATER%X == XX + { + FORCE2ARCHIVE TRUE + } + compath + { + COMPATH %STAR_COMPATH% + } + distroot:0 if X%DIST_ROOT%X != XX + { + SHARED_SOLARVERSION %DIST_ROOT%/%WORK_STAMP% + SOLARVER %DIST_ROOT%/%WORK_STAMP% + SOLARVERSION %DIST_ROOT%/%WORK_STAMP% + } + envroot:0 IF X%ENV_ROOT%X != XX + { + SOLAR_ENV_ROOT %ENV_ROOT% + } + jdk14 + { + JAVA_HOME %JDK15PATH% + JDKINC %JDK15PATH%/include:%JDK15PATH%/include/linux + JDKINCS -I%JDK15PATH%/include -I%JDK15PATH%/include/linux + JDKLIB %JDK15PATH%/jre/lib:%JDK15PATH%/jre/lib/amd64:%JDK15PATH%/jre/lib/amd64/server:%JDK15PATH%/jre/lib/amd64/xawt + JDKLIBS -L%JDK15PATH%/jre/lib -L%JDK15PATH%/jre/lib/amd64 -L%JDK15PATH%/jre/lib/amd64/server + JDKPATH %JDK15PATH%/bin + JDK_VERSION 150 + XCLASSPATH .:%JDK15PATH%/jre/lib/rt.jar + } + jdk14path:0 IF X%JDK_PATH%X != XX + { + SOLAR_JDK14PATH %JDK_PATH% + } + jdk15 + { + JAVA_HOME %JDK15PATH% + JDKINC %JDK15PATH%/include:%JDK15PATH%/include/linux + JDKINCS -I%JDK15PATH%/include -I%JDK15PATH%/include/linux + JDKLIB %JDK15PATH%/jre/lib:%JDK15PATH%/jre/lib/amd64:%JDK15PATH%/jre/lib/amd64/server:%JDK15PATH%/jre/lib/amd64/xawt + JDKLIBS -L%JDK15PATH%/jre/lib -L%JDK15PATH%/jre/lib/amd64 -L%JDK15PATH%/jre/lib/amd64/server + JDKPATH %JDK15PATH%/bin + JDK_VERSION 150 + XCLASSPATH .:%JDK15PATH%/jre/lib/rt.jar + } + jdk15path:0 IF X%JDK_PATH%X != XX + { + SOLAR_JDK15PATH %JDK_PATH% + } + ojdk16 + { + JAVA_HOME %OJDK16PATH% + JDKINC %OJDK16PATH%/include:%OJDK16PATH%/include/linux + JDKINCS -I%OJDK16PATH%/include -I%OJDK16PATH%/include/linux + JDKLIB %OJDK16PATH%/jre/lib:%OJDK16PATH%/jre/lib/amd64:%OJDK16PATH%/jre/lib/amd64/server:%OJDK16PATH%/jre/lib/amd64/xawt + JDKLIBS -L%OJDK16PATH%/jre/lib -L%OJDK16PATH%/jre/lib/amd64 -L%OJDK16PATH%/jre/lib/amd64/server + JDKPATH %OJDK16PATH%/bin + JDK_VERSION 160 + XCLASSPATH .:%OJDK16PATH%/jre/lib/rt.jar + } + ojdk16path:0 IF X%JDK_PATH%X != XX + { + SOLAR_OJDK16PATH %JDK_PATH% + } + pro + { + PROSWITCH -DPRODUCT + } + sourceroot:0 IF X%SOURCE_ROOT%X != XX + { + SOLAR_SOURCE_ROOT %SOURCE_ROOT% + SOURCE_ROOT_USED TRUE + } + sysbaseroot + { + SOLAR_SYSBASE_ROOT %SYSBASE_ROOT% + } + } + extern + { + DIST_ROOT + ENV_ROOT + HOME + JDK_PATH + LOCALINI + SOL_TMP + SOURCE_ROOT + SYSBASE_ROOT + USER + } + order common0 bs_sourceroot envroot:0 sourceroot:0 sysbaseroot common1 jdk14path:0 jdk15path:0 ojdk16path:0 distroot:0 cap cax compath common2 common3:0 pro common jdk14 jdk15 ojdk16 + reset + { + CLASSPATH + COPYALL + } + restore + { + INCLUDE + } + script + { + csh + { + 400: if ( ${?COPYALL} ) $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE + 600: umask 002 + 800: rehash + 820: wrapfetch.sh + 850: if ( "$?SO_GEN_ERROR" == 0 ) setenv SO_GEN_ERROR + 851: if ( "$?SO_GEN_ERROR2" == 0 ) setenv SO_GEN_ERROR2 + 900: if ( "$?SO_GEN_ERROR" == 1 ) echo $SO_GEN_ERROR + 901: if ( "$?SO_GEN_ERROR2" == 1 ) echo $SO_GEN_ERROR2 + } + sh + { + 400: if [ $COPYALL ]; then + 410: $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE + 415: fi + 600: umask 002 + 800: hash -r + 820: wrapfetch.sh + 850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then + 851: export SO_GEN_ERROR + 852: fi + 860: if [ "0$SO_GEN_ERROR2" -eq 0 ]; then + 861: export SO_GEN_ERROR2 + 862: fi + 870: if [ "0$SO_GEN_ERROR" -ne 0 ]; then + 871: echo $SO_GEN_ERROR + 872: fi + 880: if [ "0$SO_GEN_ERROR2" -ne 0 ]; then + 881: echo $SO_GEN_ERROR2 + 882: fi + } + } + switches + { + bs_sourceroot SOURCE_ROOT_TMP + bsclient + cap + cax + compath STAR_COMPATH + debug + distroot + envroot + jdk14 + jdk14path + jdk15 + jdk15path + l10n L10N_framework + ojdk16 + ojdk16path + pro + sourceroot + sysbaseroot + } +} + +unxmacxi +{ + environment + { + bs_sourceroot + { + SOLAR_SOURCE_ROOT %SOURCE_ROOT_TMP% + SOURCE_ROOT %SOURCE_ROOT_TMP% + SOURCE_ROOT_USED TRUE + } + cap + { + COPYALL TRUE + COPY_PACKED TRUE + DEVROOT %SOL_TMP%$/r + PCLEAN_PATH %SOLARROOT%/etools + PERL %SOL_TMP%$/r$/bt_macosx_intel$/%WORK_STAMP%$/bin$/perl + SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOL_TMP%$/r + SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% + } + cax + { + COPYALL FALSE + DEVROOT %SOL_TMP%$/r + PCLEAN_PATH %SOL_TMP%$/r/etools + PERL %SOL_TMP%$/r$/bt_macosx_intel$/%WORK_STAMP%$/bin$/perl + SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOL_TMP%$/r + SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% + } + common + { + *build nice %PERL% %SOLARENV%/bin/build.pl %PROFULLSWITCH% + *build_client nice %PERL% %SOLARENV%/bin/build_client.pl + *copyprj %PERL% %COMMON_ENV_TOOLS%/copyprj.pl + *deliver %PERL% %SOLARENV%/bin/deliver.pl + *mkout %PERL% %SOLARENV%/bin/mkout.pl + *r: cd %SOLARROOT% + *s: cd %SOLARVERSION% + *zipdep %PERL% %SOLARENV%/bin/zipdep.pl + COPYPRJ %PERL% %COMMON_ENV_TOOLS%/copyprj.pl + DELIVER %PERL% %SOLARENV%/bin/deliver.pl + DMAKEROOT %SOLARENV%/inc/startup + HAVE_GCC_VISIBILITY_FEATURE TRUE + LIBRARY_PATH %SYSBASE%/usr/lib + MKOUT %PERL% %SOLARENV%/bin/mkout.pl + PATHEXTRA %combin%:/usr/bin:/bin:/usr/sbin:/etc + SOLAREXTRAINC -I%SOLAR_STLPATH% -I%SYSBASE%/usr/include/c++/4.0.0 -I%SYSBASE%/usr/include/c++/4.0.0/i686-apple-darwin8 -I%SYSBASE%/usr/lib/gcc/i686-apple-darwin8/4.0.1/include -I%SYSBASE%/usr/include/python2.3 -I%SYSBASE%/MacOSX10.4u.sdk/usr/lib/gcc/i686-apple-darwin8/4.0.1/include -I%SYSBASE%/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon + SOLAREXTRALIB -L%SOLAR_STLLIBPATH% + SOLAR_JAVA TRUE + ZIPDEP %PERL% %SOLARENV%/bin/zipdep.pl + GNUCOPY gnucp + GNUMAKE make + } + common0 + { + GXX_INCLUDE_PATH /so/env/gcc_4.0.1_macosx/usr/include/c++/4.0.0 + SOLAR_ENV_ROOT /so/env + SOLAR_SOURCE_ROOT %DRIVE_O% + SOLAR_SYSBASE_ROOT /so/env/gcc_4.0.1_macosx + MACDEVSDK /so/env/gcc_4.0.1_macosx/MacOSX10.4u.sdk + } + common1 + { + BUILD_OS_APPLEOSX TRUE + BUILD_OS_MAJOR 10 + BUILD_OS_MINOR 4 + BUILD_OS_REV 10 + COMPATH %SOLAR_ENV_ROOT%$/gcc_4.0.1_macosx + DEVROOT %SOLAR_ENV_ROOT% + DISABLE_DEPRECATION_WARNING TRUE + EXTRA_CDEFS -DBUILD_OS_APPLEOSX -DBUILD_OS_MAJOR=10 -DBUILD_OS_MINOR=4 -DBUILD_OS_REV=10 + EXTRA_CFLAGS -isysroot %COMPATH%/MacOSX10.4u.sdk + EXTRA_LINKFLAGS -Wl,-syslibroot,%COMPATH%/MacOSX10.4u.sdk + LFS_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 + LIBXML_CFLAGS -I%COMPATH%/MacOSX10.4u.sdk/usr/include/libxml2 + LIBXML_LIBS -L%COMPATH%/MacOSX10.4u.sdk/usr/lib -lxml2 -lz -lpthread -liconv -lm + LIBXSLT_CFLAGS -I%COMPATH%/MacOSX10.4u.sdk/usr/include/libxml2 + LIBXSLT_LIBS -L%COMPATH%/MacOSX10.4u.sdk/usr/lib -lxslt -lxml2 -lz -lpthread -liconv -lm + MACOSX_DEPLOYMENT_TARGET 10.4 + OPENSSL_LIBS -lssl -lcrypto + PERL %SOLAR_ENV_ROOT%/bt_macosx_intel/%WORK_STAMP%/bin/perl + PKGFORMAT dmg + SHARED_SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv + SHARED_SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% + SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv + SOLARROOT %SOLAR_ENV_ROOT% + SOLARVER %SOLAR_SOURCE_ROOT%/%WORK_STAMP% + SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% + SOLAR_JDK14PATH %SOLAR_ENV_ROOT%/mac_jdk14_unknown + SOLAR_JDK15PATH %SOLAR_ENV_ROOT%/MacOSX_JDK_1.5.0_07.intel + SO_PACK %SOLAR_ENV_ROOT%/pack/%WORK_STAMP% + SRC_ROOT %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT% + SYSTEM_CURL YES + SYSTEM_LIBXML YES + SYSTEM_LIBXSLT YES + SYSTEM_OPENSSL YES + SYSTEM_PYTHON YES + SYSTEM_ZLIB YES + USE_SYSTEM_STL YES + BUILD_PIXMAN YES + WITH_MOZILLA YES + } + common2 + { + BUILD_TOOLS %SOLARROOT%/bt_macosx_intel/%WORK_STAMP%/bin + COM GCC + COMMON_BUILD_TOOLS %SOLARROOT%$/btools + COMMON_ENV_TOOLS %SOLARROOT%$/etools + CPU I + CPUNAME INTEL + CVER C341 + ENV_TOOLS %SOLARROOT%/et_macosx_intel/%WORK_STAMP%/bin + GUI UNX + GUIBASE aqua + GVER VCL + INPATH unxmacxi%PROEXT% + JDK13PATH %SOLAR_JDK13PATH% + JDK14PATH %SOLAR_JDK15PATH% + JDK15PATH %SOLAR_JDK15PATH% + LIBMYSQL_PATH %SOLARROOT%/mysql-connector-c-6.0.2/unxmacxi + NO_BSYMBOLIC True + OS MACOSX + OUTPATH unxmacxi + PA_VER 18 + SOLAR_STLLIBPATH %SOLARVERSION%$/unxmacxi%PROEXT%$/lib%UPDMINOREXT% + SOLAR_STLPATH %SOLARVERSION%$/unxmacxi%PROEXT%$/inc%UPDMINOREXT%$/stl + SYSBASE %SOLAR_SYSBASE_ROOT% + TEMP /tmp + TMP /tmp + } + compath + { + COMPATH %STAR_COMPATH% + } + distroot:0 if X%DIST_ROOT%X != XX + { + SHARED_SOLARVERSION %DIST_ROOT%/%WORK_STAMP% + SOLARVER %DIST_ROOT%/%WORK_STAMP% + SOLARVERSION %DIST_ROOT%/%WORK_STAMP% + } + envroot:0 IF X%ENV_ROOT%X != XX + { + SOLAR_ENV_ROOT %ENV_ROOT% + } + jdk14 + { + JAVA_HOME %JDK15PATH% + JDKINC %JDK15PATH%/include:%JDK15PATH%/include/linux + JDKINCS -I%JDK15PATH%/include -I%JDK15PATH%/include/linux + JDKLIB %JDK15PATH%/jre/lib + JDKLIBS -L%JDK15PATH%/jre/lib + JDKPATH %JDK15PATH%/bin + JDK_VERSION 150 + XCLASSPATH .:%JDK15PATH%/jre/lib/rt.jar + } + jdk14path:0 IF X%JDK_PATH%X != XX + { + SOLAR_JDK14PATH %JDK_PATH% + } + jdk15 + { + JAVA_HOME %JDK15PATH% + JDKINC %JDK15PATH%/include:%JDK15PATH%/include/linux + JDKINCS -I%JDK15PATH%/include -I%JDK15PATH%/include/linux + JDKLIB %JDK15PATH%/jre/lib + JDKLIBS -L%JDK15PATH%/jre/lib + JDKPATH %JDK15PATH%/bin + JDK_VERSION 150 + XCLASSPATH .:%JDK15PATH%/jre/lib/rt.jar + } + jdk15path:0 IF X%JDK_PATH%X != XX + { + SOLAR_JDK15PATH %JDK_PATH% + } + pro + { + PROSWITCH -DPRODUCT + } + sourceroot:0 IF X%SOURCE_ROOT%X != XX + { + SOLAR_SOURCE_ROOT %SOURCE_ROOT% + SOURCE_ROOT_USED TRUE + } + sysbaseroot + { + SOLAR_SYSBASE_ROOT %SYSBASE_ROOT% + } + } + extern + { + DIST_ROOT + ENV_ROOT + HOME + JDK_PATH + LOCALINI + SOL_TMP + SOURCE_ROOT + SYSBASE_ROOT + USER + } + order common0 bs_sourceroot envroot:0 sourceroot:0 sysbaseroot common1 jdk14path:0 jdk15path:0 distroot:0 cap cax compath common2 pro common jdk14 jdk15 + reset + { + CLASSPATH + COPYALL + } + restore + { + INCLUDE + } + script + { + csh + { + 400: if ( ${?COPYALL} ) $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE + 600: umask 002 + 800: rehash + 820: wrapfetch.sh + 850: if ( "$?SO_GEN_ERROR" == 0 ) setenv SO_GEN_ERROR + 851: if ( "$?SO_GEN_ERROR2" == 0 ) setenv SO_GEN_ERROR2 + 900: if ( "$?SO_GEN_ERROR" == 1 ) echo $SO_GEN_ERROR + 901: if ( "$?SO_GEN_ERROR2" == 1 ) echo $SO_GEN_ERROR2 + } + sh + { + 400: if [ $COPYALL ]; then + 410: $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE + 415: fi + 600: umask 002 + 800: hash -r + 820: wrapfetch.sh + 850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then + 851: export SO_GEN_ERROR + 852: fi + 860: if [ "0$SO_GEN_ERROR2" -eq 0 ]; then + 861: export SO_GEN_ERROR2 + 862: fi + 870: if [ "0$SO_GEN_ERROR" -ne 0 ]; then + 871: echo $SO_GEN_ERROR + 872: fi + 880: if [ "0$SO_GEN_ERROR2" -ne 0 ]; then + 881: echo $SO_GEN_ERROR2 + 882: fi + } + } + switches + { + bs_sourceroot SOURCE_ROOT_TMP + bsclient + cap + cax + compath STAR_COMPATH + debug + distroot + envroot + jdk14 + jdk14path + jdk15 + jdk15path + l10n L10N_framework + pro + sourceroot + sysbaseroot + } +} +unxsoli4 +{ + environment + { + bs_sourceroot + { + SOLAR_SOURCE_ROOT %SOURCE_ROOT_TMP% + SOURCE_ROOT %SOURCE_ROOT_TMP% + SOURCE_ROOT_USED TRUE + } + cap + { + COPYALL TRUE + COPY_PACKED TRUE + DEVROOT %SOL_TMP%$/r + PCLEAN_PATH %SOLARROOT%/etools + PERL %SOL_TMP%$/r$/bt_solaris_intel$/bin$/perl + SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOL_TMP%$/r + SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% + } + cax + { + COPYALL FALSE + DEVROOT %SOL_TMP%$/r + PCLEAN_PATH %SOL_TMP%$/r/etools + PERL %SOL_TMP%$/r$/bt_solaris_intel$/bin$/perl + SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOL_TMP%$/r + SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% + } + common + { + *build nice %PERL% %SOLARENV%/bin/build.pl %PROFULLSWITCH% + *build_client nice %PERL% %SOLARENV%/bin/build_client.pl + *copyprj %PERL% %COMMON_ENV_TOOLS%/copyprj.pl + *deliver %PERL% %SOLARENV%/bin/deliver.pl + *mkout %PERL% %SOLARENV%/bin/mkout.pl + *r: cd %SOLARROOT% + *s: cd %SOLARVERSION% + *zipdep %PERL% %SOLARENV%/bin/zipdep.pl + COPYPRJ %PERL% %COMMON_ENV_TOOLS%/copyprj.pl + DELIVER %PERL% %SOLARENV%/bin/deliver.pl + DMAKEROOT %SOLARENV%/inc/startup + MKOUT %PERL% %SOLARENV%/bin/mkout.pl + PATHEXTRA /usr/ccs/bin:/usr/bin:/bin:/usr/sbin:/etc:/usr/bin/X11:/opt/langtools/bin:/usr/dt/bin + FREETYPE_CFLAGS -I%SYSBASE%/usr/sfw/include -I%SYSBASE%/usr/sfw/include/freetype2 + SOLAREXTRAINC -I%SOLAR_STLPATH% -I%SYSBASE%/usr/include + SOLAREXTRALIB -L%COMPATH%$/lib -L../lib -L%SYSBASE%/usr/lib -L%SYSBASE%/usr/sfw/lib -L/lib -L/usr/lib -L/usr/dt/lib -L/usr/openwin/lib -L%SOLAR_STLLIBPATH% + SOLAR_JAVA TRUE + ZIPDEP %PERL% %SOLARENV%/bin/zipdep.pl + __cdpath %DRIVE_O%/%WORK_STAMP%/ooo%UPDMINOREXT% + ENABLE_GCONF TRUE + ENABLE_GNOMEVFS TRUE + GNUCOPY gnucp + GNUMAKE gmake + } + common0 + { + SOLAR_ENV_ROOT /so/env + SOLAR_SOURCE_ROOT %DRIVE_O% + SOLAR_SYSBASE_ROOT /so/env/solaris_2.10_intel + } + common1 + { + COMPATH /so/env/compilers/SUNWS12_p/intel/SUNWspro + DEVROOT %SOLAR_ENV_ROOT% + LFS_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 + PERL %SOLAR_ENV_ROOT%/bt_solaris_intel/bin/perl + PKGFORMAT pkg + SHARED_SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv + SHARED_SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% + SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv + SOLARROOT %SOLAR_ENV_ROOT% + SOLARVER %SOLAR_SOURCE_ROOT%/%WORK_STAMP% + SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% + SOLAR_JDK13PATH %SOLAR_ENV_ROOT%/Solaris_JDK_1.3.1_01.intel + SOLAR_JDK14PATH %SOLAR_ENV_ROOT%/Solaris_JDK_1.4.2_11.intel + SOLAR_JDK15PATH %SOLAR_ENV_ROOT%/Solaris_JDK_1.5.0_06.intel + SOLAR_OJDK16PATH %SOLAR_ENV_ROOT%/openjdk-6-b08-solaris-i586 + SO_PACK %SOLAR_ENV_ROOT%/pack/%WORK_STAMP% + SRC_ROOT %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT% + } + common2 + { + BUILD_TOOLS %SOLARROOT%/bt_solaris_intel/%WORK_STAMP%/bin + COM C52 + COMEX 4 + COMMON_BUILD_TOOLS %SOLARROOT%$/btools + COMMON_ENV_TOOLS %SOLARROOT%$/etools + CPU I + CPUNAME INTEL + CVER C52 + ENABLE_EVOAB2 TRUE + ENV_TOOLS %SOLARROOT%/et_solaris_intel/%WORK_STAMP%/bin + GUI UNX + GUIBASE unx + GVER VCL + INPATH unxsoli4%PROEXT% + JDK13PATH %SOLAR_JDK13PATH% + JDK14PATH %SOLAR_JDK14PATH% + JDK15PATH %SOLAR_JDK15PATH% + LIBMYSQL_PATH %SOLARROOT%/mysql-connector-c-6.0.2/unxsoli4 + OJDK16PATH %SOLAR_OJDK16PATH% + OS SOLARIS + OUTPATH unxsoli4 + SOLAR_STLLIBPATH %SOLARVERSION%$/unxsoli4%PROEXT%$/lib%UPDMINOREXT% + SOLAR_STLPATH %SOLARVERSION%$/unxsoli4%PROEXT%$/inc%UPDMINOREXT%$/stl + SYSBASE %SOLAR_SYSBASE_ROOT% + TEMP /var/tmp + TMP /var/tmp + } + compath + { + COMPATH %STAR_COMPATH% + } + distroot:0 if X%DIST_ROOT%X != XX + { + SHARED_SOLARVERSION %DIST_ROOT%/%WORK_STAMP% + SOLARVER %DIST_ROOT%/%WORK_STAMP% + SOLARVERSION %DIST_ROOT%/%WORK_STAMP% + } + envroot:0 if X%ENV_ROOT%X != XX + { + SOLAR_ENV_ROOT %ENV_ROOT% + } + jdk14 + { + JAVA_HOME %JDK14PATH% + JDKINC %JDK14PATH%/include:%JDK14PATH%/include/solaris + JDKINCS -I%JDK14PATH%/include -I%JDK14PATH%/include/solaris + JDKLIB %JDK14PATH%/jre/lib/i386:%JDK14PATH%/lib:%JDK14PATH%/jre/lib/i386/native_threads:%JDK14PATH%/jre/plugin/i386:%JDK14PATH%/jre/lib/i386/motif21 + JDKLIBS -L%JDK14PATH%/jre/lib/i386 -L%JDK14PATH%/lib -L%JDK14PATH%/jre/lib/i386/native_threads -L%JDK14PATH%/jre/plugin/i386 -L%JDK14PATH%/jre/lib/i386/motif21 + JDKPATH %JDK14PATH%/bin + JDK_VERSION 142 + XCLASSPATH .:%JDK14PATH%/jre/lib/rt.jar + } + jdk14path:0 if X%JDK_PATH%X != XX + { + SOLAR_JDK14PATH %JDK_PATH% + } + jdk15 + { + JAVA_HOME %JDK15PATH% + JDKINC %JDK15PATH%/include:%JDK15PATH%/include/solaris + JDKINCS -I%JDK15PATH%/include -I%JDK15PATH%/include/solaris + JDKLIB %JDK15PATH%/jre/lib/i386:%JDK15PATH%/lib:%JDK15PATH%/jre/lib/i386/native_threads:%JDK15PATH%/jre/plugin/i386:%JDK15PATH%/jre/lib/i386/motif21 + JDKLIBS -L%JDK15PATH%/jre/lib/i386 -L%JDK15PATH%/lib -L%JDK15PATH%/jre/lib/i386/native_threads -L%JDK15PATH%/jre/plugin/i386 -L%JDK15PATH%/jre/lib/i386/motif21 + JDKPATH %JDK15PATH%/bin + JDK_VERSION 150 + XCLASSPATH .:%JDK15PATH%/jre/lib/rt.jar + } + jdk15path:0 if X%JDK_PATH%X != XX + { + SOLAR_JDK15PATH %JDK_PATH% + } + ojdk16 + { + JAVA_HOME %OJDK16PATH% + JDKINC %OJDK16PATH%/include:%OJDK16PATH%/include/solaris + JDKINCS -I%OJDK16PATH%/include -I%OJDK16PATH%/include/solaris + JDKLIB %OJDK16PATH%/jre/lib/i386:%OJDK16PATH%/lib:%OJDK16PATH%/jre/lib/i386/native_threads:%OJDK16PATH%/jre/plugin/i386:%OJDK16PATH%/jre/lib/i386/xawt + JDKLIBS -L%OJDK16PATH%/jre/lib/i386 -L%OJDK16PATH%/lib -L%OJDK16PATH%/jre/lib/i386/native_threads -L%OJDK16PATH%/jre/plugin/i386 -L%OJDK16PATH%/jre/lib/i386/xawt + JDKPATH %OJDK16PATH%/bin + JDK_VERSION 160 + XCLASSPATH .:%OJDK16PATH%/jre/lib/rt.jar + } + ojdk16path:0 if X%JDK_PATH%X != XX + { + SOLAR_OJDK16PATH %JDK_PATH% + } + pro + { + PROSWITCH -DPRODUCT + } + sourceroot:0 if X%SOURCE_ROOT%X != XX + { + SOLAR_SOURCE_ROOT %SOURCE_ROOT% + SOURCE_ROOT_USED TRUE + } + sysbaseroot + { + SOLAR_SYSBASE_ROOT %SYSBASE_ROOT% + } + } + extern + { + DIST_ROOT + ENV_ROOT + HOME + JDK_PATH + LOCALINI + SOL_TMP + SOURCE_ROOT + SYSBASE_ROOT + USER + } + order common0 bs_sourceroot envroot:0 sourceroot:0 common1 distroot:0 jdk14path:0 jdk15path:0 ojdk16path:0 sysbaseroot cap cax compath common2 pro common jdk14 jdk15 ojdk16 + reset + { + CLASSPATH + } + script + { + csh + { + 400: if ( ${?COPYALL} ) $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE + 600: umask 002 + 800: rehash + 820: wrapfetch.sh + 850: if ( "$?SO_GEN_ERROR" == 0 ) setenv SO_GEN_ERROR + 851: if ( "$?SO_GEN_ERROR2" == 0 ) setenv SO_GEN_ERROR2 + 900: if ( "$?SO_GEN_ERROR" == 1 ) echo $SO_GEN_ERROR + 901: if ( "$?SO_GEN_ERROR2" == 1 ) echo $SO_GEN_ERROR2 + } + sh + { + 400: if [ $COPYALL ]; then + 410: $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE + 415: fi + 600: umask 002 + 800: hash -r + 820: wrapfetch.sh + 850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then + 851: export SO_GEN_ERROR + 852: fi + 860: if [ "0$SO_GEN_ERROR2" -eq 0 ]; then + 861: export SO_GEN_ERROR2 + 862: fi + 870: if [ "0$SO_GEN_ERROR" -ne 0 ]; then + 871: echo $SO_GEN_ERROR + 872: fi + 880: if [ "0$SO_GEN_ERROR2" -ne 0 ]; then + 881: echo $SO_GEN_ERROR2 + 882: fi + } + } + switches + { + bs_sourceroot SOURCE_ROOT_TMP + bsclient + cap + cax + compath STAR_COMPATH + distroot + envroot + jdk14 + jdk14path + jdk15 + jdk15path + l10n L10N_framework + ojdk16 + ojdk16path + pro + sourceroot + sysbaseroot + } +} +unxsols4 +{ + environment + { + bs_sourceroot + { + SOLAR_SOURCE_ROOT %SOURCE_ROOT_TMP% + SOURCE_ROOT %SOURCE_ROOT_TMP% + SOURCE_ROOT_USED TRUE + } + cap + { + COPYALL TRUE + COPY_PACKED TRUE + DEVROOT %SOL_TMP%$/r + PCLEAN_PATH %SOLARROOT%/etools + PERL %SOL_TMP%$/r$/bt_solaris_sparc$/bin$/perl + SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOL_TMP%$/r + SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% + } + cax + { + COPYALL FALSE + DEVROOT %SOL_TMP%$/r + PCLEAN_PATH %SOL_TMP%$/r/etools + PERL %SOL_TMP%$/r$/bt_solaris_sparc$/bin$/perl + SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOL_TMP%$/r + SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% + } + common + { + *build nice %PERL% %SOLARENV%/bin/build.pl %PROFULLSWITCH% + *build_client nice %PERL% %SOLARENV%/bin/build_client.pl + *copyprj %PERL% %COMMON_ENV_TOOLS%/copyprj.pl + *deliver %PERL% %SOLARENV%/bin/deliver.pl + *mkout %PERL% %SOLARENV%/bin/mkout.pl + *r: cd %SOLARROOT% + *s: cd %SOLARVERSION% + *zipdep %PERL% %SOLARENV%/bin/zipdep.pl + COPYPRJ %PERL% %COMMON_ENV_TOOLS%/copyprj.pl + DELIVER %PERL% %SOLARENV%/bin/deliver.pl + DMAKEROOT %SOLARENV%/inc/startup + MKOUT %PERL% %SOLARENV%/bin/mkout.pl + PATHEXTRA /usr/ccs/bin:/usr/bin:/bin:/usr/sbin:/etc:/usr/bin/X11:/opt/langtools/bin:/usr/dt/bin + FREETYPE_CFLAGS -I%SYSBASE%/usr/sfw/include -I%SYSBASE%/usr/sfw/include/freetype2 + SOLAREXTRAINC -I%SOLAR_STLPATH% -I%SYSBASE%/usr/include + SOLAREXTRALIB -L%COMPATH%$/lib -L../lib -L%SYSBASE%/usr/lib -L%SYSBASE%/usr/sfw/lib -L/lib -L/usr/lib -L/usr/dt/lib -L/usr/openwin/lib -L%SOLAR_STLLIBPATH% + SOLAR_JAVA TRUE + ZIPDEP %PERL% %SOLARENV%/bin/zipdep.pl + __cdpath %DRIVE_O%/%WORK_STAMP%/ooo%UPDMINOREXT% + ENABLE_GCONF TRUE + ENABLE_GNOMEVFS TRUE + GNUCOPY gnucp + GNUMAKE gmake + } + common0 + { + SOLAR_ENV_ROOT /so/env + SOLAR_LICENSE_FILE /opt/SUNWspro/license_dir/sunpro.lic,1 + SOLAR_SOURCE_ROOT %DRIVE_O% + SOLAR_SYSBASE_ROOT /so/env/solaris_2.10_sparc + } + common1 + { + COMPATH /so/env/compilers/SUNWS12_p/sparc/SUNWspro + DEVROOT %SOLAR_ENV_ROOT% + LFS_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 + PERL %SOLAR_ENV_ROOT%/bt_solaris_sparc/bin/perl + PKGFORMAT pkg + SHARED_SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv + SHARED_SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% + SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv + SOLARROOT %SOLAR_ENV_ROOT% + SOLARVER %SOLAR_SOURCE_ROOT%/%WORK_STAMP% + SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% + SOLAR_JDK13PATH %SOLAR_ENV_ROOT%/Solaris_JDK_1.3.1_01.sparc + SOLAR_JDK14PATH %SOLAR_ENV_ROOT%/Solaris_JDK_1.4.2_11.sparc + SOLAR_JDK15PATH %SOLAR_ENV_ROOT%/Solaris_JDK_1.5.0_06.sparc + SOLAR_OJDK16PATH %SOLAR_ENV_ROOT%/openjdk-6-b08-solaris-sparc + SO_PACK %SOLAR_ENV_ROOT%/pack/%WORK_STAMP% + SRC_ROOT %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT% + } + common2 + { + BUILD_TOOLS %SOLARROOT%/bt_solaris_sparc/%WORK_STAMP%/bin + COM C52 + COMEX 4 + COMMON_BUILD_TOOLS %SOLARROOT%$/btools + COMMON_ENV_TOOLS %SOLARROOT%$/etools + CPU S + CPUNAME SPARC + CVER C52 + ENABLE_EVOAB2 TRUE + ENV_TOOLS %SOLARROOT%/et_solaris_sparc/%WORK_STAMP%/bin + GUI UNX + GUIBASE unx + GVER VCL + INPATH unxsols4%PROEXT% + JDK13PATH %SOLAR_JDK13PATH% + JDK14PATH %SOLAR_JDK14PATH% + JDK15PATH %SOLAR_JDK15PATH% + LIBMYSQL_PATH %SOLARROOT%/mysql-connector-c-6.0.2/unxsols4 + LM_LICENSE_FILE %SOLAR_LICENSE_FILE% + OJDK16PATH %SOLAR_OJDK16PATH% + OS SOLARIS + OUTPATH unxsols4 + SOLAR_STLLIBPATH %SOLARVERSION%$/unxsols4%PROEXT%$/lib%UPDMINOREXT% + SOLAR_STLPATH %SOLARVERSION%$/unxsols4%PROEXT%$/inc%UPDMINOREXT%$/stl + SYSBASE %SOLAR_SYSBASE_ROOT% + TEMP /var/tmp + TMP /var/tmp + } + common:3 IF %UPDATER% == YES + { + TEMP /tmp + TMP /tmp + } + compath + { + COMPATH %STAR_COMPATH% + } + distroot:0 if X%DIST_ROOT%X != XX + { + SHARED_SOLARVERSION %DIST_ROOT%/%WORK_STAMP% + SOLARVER %DIST_ROOT%/%WORK_STAMP% + SOLARVERSION %DIST_ROOT%/%WORK_STAMP% + } + envroot:0 if X%ENV_ROOT%X != XX + { + SOLAR_ENV_ROOT %ENV_ROOT% + } + jdk14 + { + JAVA_HOME %JDK14PATH% + JDKINC %JDK14PATH%/include:%JDK14PATH%/include/solaris + JDKINCS -I%JDK14PATH%/include -I%JDK14PATH%/include/solaris + JDKLIB %JDK14PATH%/jre/lib/sparc:%JDK14PATH%/lib:%JDK14PATH%/jre/lib/sparc/native_threads:%JDK14PATH%/jre/plugin/sparc:%JDK14PATH%/jre/lib/sparc/motif21 + JDKLIBS -L%JDK14PATH%/jre/lib/sparc -L%JDK14PATH%/lib -L%JDK14PATH%/jre/lib/sparc/native_threads -L%JDK14PATH%/jre/plugin/sparc -L%JDK14PATH%/jre/lib/sparc/motif21 + JDKPATH %JDK14PATH%/bin + JDK_VERSION 142 + XCLASSPATH .:%JDK14PATH%/jre/lib/rt.jar + } + jdk14path:0 if X%JDK_PATH%X != XX + { + SOLAR_JDK14PATH %JDK_PATH% + } + jdk15 + { + JAVA_HOME %JDK15PATH% + JDKINC %JDK15PATH%/include:%JDK15PATH%/include/solaris + JDKINCS -I%JDK15PATH%/include -I%JDK15PATH%/include/solaris + JDKLIB %JDK15PATH%/jre/lib/sparc:%JDK15PATH%/lib:%JDK15PATH%/jre/lib/sparc/native_threads:%JDK15PATH%/jre/plugin/sparc:%JDK15PATH%/jre/lib/sparc/motif21 + JDKLIBS -L%JDK15PATH%/jre/lib/sparc -L%JDK15PATH%/lib -L%JDK15PATH%/jre/lib/sparc/native_threads -L%JDK15PATH%/jre/plugin/sparc -L%JDK15PATH%/jre/lib/sparc/motif21 + JDKPATH %JDK15PATH%/bin + JDK_VERSION 150 + XCLASSPATH .:%JDK15PATH%/jre/lib/rt.jar + } + jdk15path:0 if X%JDK_PATH%X != XX + { + SOLAR_JDK15PATH %JDK_PATH% + } + ojdk16 + { + JAVA_HOME %OJDK16PATH% + JDKINC %OJDK16PATH%/include:%OJDK16PATH%/include/solaris + JDKINCS -I%OJDK16PATH%/include -I%OJDK16PATH%/include/solaris + JDKLIB %OJDK16PATH%/jre/lib/sparc:%OJDK16PATH%/lib:%OJDK16PATH%/jre/lib/sparc/native_threads:%OJDK16PATH%/jre/plugin/sparc:%OJDK16PATH%/jre/lib/sparc/xawt + JDKLIBS -L%OJDK16PATH%/jre/lib/sparc -L%OJDK16PATH%/lib -L%OJDK16PATH%/jre/lib/sparc/native_threads -L%OJDK16PATH%/jre/plugin/sparc -L%OJDK16PATH%/jre/lib/sparc/xawt + JDKPATH %OJDK16PATH%/bin + JDK_VERSION 160 + XCLASSPATH .:%OJDK16PATH%/jre/lib/rt.jar + } + ojdk16path:0 if X%JDK_PATH%X != XX + { + SOLAR_OJDK16PATH %JDK_PATH% + } + pro + { + PROSWITCH -DPRODUCT + } + sourceroot:0 if X%SOURCE_ROOT%X != XX + { + SOLAR_SOURCE_ROOT %SOURCE_ROOT% + SOURCE_ROOT_USED TRUE + } + sysbaseroot + { + SOLAR_SYSBASE_ROOT %SYSBASE_ROOT% + } + } + extern + { + DIST_ROOT + ENV_ROOT + HOME + JDK_PATH + LM_LICENSE_FILE + LOCALINI + SOL_TMP + SOURCE_ROOT + SYSBASE_ROOT + USER + } + order common0 bs_sourceroot envroot:0 sourceroot:0 common1 distroot:0 jdk14path:0 jdk15path:0 ojdk16path:0 sysbaseroot cap cax compath common2 common:3 pro common jdk14 jdk15 ojdk16 + reset + { + CLASSPATH + } + script + { + csh + { + 400: if ( ${?COPYALL} ) $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE + 600: umask 002 + 800: rehash + 820: wrapfetch.sh + 850: if ( "$?SO_GEN_ERROR" == 0 ) setenv SO_GEN_ERROR + 851: if ( "$?SO_GEN_ERROR2" == 0 ) setenv SO_GEN_ERROR2 + 900: if ( "$?SO_GEN_ERROR" == 1 ) echo $SO_GEN_ERROR + 901: if ( "$?SO_GEN_ERROR2" == 1 ) echo $SO_GEN_ERROR2 + } + sh + { + 400: if [ $COPYALL ]; then + 410: $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE + 415: fi + 600: umask 002 + 800: hash -r + 820: wrapfetch.sh + 850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then + 851: export SO_GEN_ERROR + 852: fi + 860: if [ "0$SO_GEN_ERROR2" -eq 0 ]; then + 861: export SO_GEN_ERROR2 + 862: fi + 870: if [ "0$SO_GEN_ERROR" -ne 0 ]; then + 871: echo $SO_GEN_ERROR + 872: fi + 880: if [ "0$SO_GEN_ERROR2" -ne 0 ]; then + 881: echo $SO_GEN_ERROR2 + 882: fi + } + } + switches + { + bs_sourceroot SOURCE_ROOT_TMP + bsclient + cap + cax + compath STAR_COMPATH + distroot + envroot + jdk14 + jdk14path + jdk15 + jdk15path + l10n L10N_framework + ojdk16 + ojdk16path + pro + sourceroot + sysbaseroot + } +} +unxsolu4 +{ + environment + { + bs_sourceroot + { + SOLAR_SOURCE_ROOT %SOURCE_ROOT_TMP% + SOURCE_ROOT %SOURCE_ROOT_TMP% + SOURCE_ROOT_USED TRUE + } + cap + { + COPYALL TRUE + COPY_PACKED TRUE + DEVROOT %SOL_TMP%$/r + PCLEAN_PATH %SOLARROOT%/etools + PERL %SOL_TMP%$/r$/bt_solaris_sparc$/bin$/perl + SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOL_TMP%$/r + SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% + } + cax + { + COPYALL FALSE + DEVROOT %SOL_TMP%$/r + PCLEAN_PATH %SOL_TMP%$/r/etools + PERL %SOL_TMP%$/r$/bt_solaris_sparc$/bin$/perl + SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOL_TMP%$/r + SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% + SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% + } + common + { + *build nice %PERL% %SOLARENV%/bin/build.pl %PROFULLSWITCH% + *build_client nice %PERL% %SOLARENV%/bin/build_client.pl + *copyprj %PERL% %COMMON_ENV_TOOLS%/copyprj.pl + *deliver %PERL% %SOLARENV%/bin/deliver.pl + *mkout %PERL% %SOLARENV%/bin/mkout.pl + *r: cd %SOLARROOT% + *s: cd %SOLARVERSION% + *zipdep %PERL% %SOLARENV%/bin/zipdep.pl + COPYPRJ %PERL% %COMMON_ENV_TOOLS%/copyprj.pl + DELIVER %PERL% %SOLARENV%/bin/deliver.pl + DMAKEROOT %SOLARENV%/inc/startup + FREETYPE_CFLAGS -I%SYSBASE%/usr/sfw/include -I%SYSBASE%/usr/sfw/include/freetype2 + FREETYPE_LIBS -L%SYSBASE%/usr/sfw/lib/sparcv9 -lfreetype + LIBXML_CFLAGS -I%SYSBASE%/usr/include/libxml2 + LIBXML_LIBS -L%SYSBASE%/usr/lib/sparcv9 -lxml2 -lpthread -lz -lm -lsocket -lnsl + LIBXSLT_CFLAGS -I%SYSBASE%/usr/include/libxml2 + LIBXSLT_LIBS -L%SYSBASE%/usr/lib/sparcv9 -lxslt -lxml2 -lpthread -lz -lm -lsocket -lnsl + MKOUT %PERL% %SOLARENV%/bin/mkout.pl + PATHEXTRA /usr/ccs/bin:/usr/bin:/bin:/usr/sbin:/etc:/usr/bin/X11:/opt/langtools/bin:/usr/dt/bin + SOLAREXTRAINC -I%SOLAR_STLPATH% -I%SYSBASE%/usr/include + SOLAREXTRALIB -L%COMPATH%$/lib -L../lib -L%SYSBASE%/usr/lib -L/lib -L/usr/lib -L/usr/dt/lib -L/usr/openwin/lib -L%SOLAR_STLLIBPATH% + SOLAR_JAVA TRUE + SYSTEM_FREETYPE YES + SYSTEM_LIBXML YES + SYSTEM_LIBXSLT YES + ZIPDEP %PERL% %SOLARENV%/bin/zipdep.pl + __cdpath %DRIVE_O%/%WORK_STAMP%/ooo%UPDMINOREXT% + ENABLE_GCONF TRUE +# ENABLE_GNOMEVFS TRUE + GNUMAKE gmake + } + common0 + { + SOLAR_ENV_ROOT /so/env + SOLAR_SOURCE_ROOT %DRIVE_O% + SOLAR_SYSBASE_ROOT /so/env/solaris_2.10_sparc + } + common1 + { + COMPATH /so/env/compilers/SUNWS12m1/sparc/SUNWspro + DEVROOT %SOLAR_ENV_ROOT% + PERL %SOLAR_ENV_ROOT%/bt_solaris_sparc/bin/perl + PKGFORMAT pkg + SHARED_SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv + SHARED_SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% + SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv + SOLARROOT %SOLAR_ENV_ROOT% + SOLARVER %SOLAR_SOURCE_ROOT%/%WORK_STAMP% + SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% + SOLAR_JDK15PATH %SOLAR_ENV_ROOT%/Solaris_JDK_1.5.0_15.sparc + SO_PACK %SOLAR_ENV_ROOT%/pack/%WORK_STAMP% + SRC_ROOT %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT% + USE_SYSTEM_STL YES + } + common2 + { + BUILD_TOOLS %SOLARROOT%/bt_solaris_sparc/%WORK_STAMP%/bin + COM C52 + COMEX 4 + COMMON_BUILD_TOOLS %SOLARROOT%$/btools + COMMON_ENV_TOOLS %SOLARROOT%$/etools + CPU U + CPUNAME SPARC + CVER C52 + ENV_TOOLS %SOLARROOT%/et_solaris_sparc/%WORK_STAMP%/bin + GUI UNX + GUIBASE unx + GVER VCL + INPATH unxsolu4%PROEXT% + JDK15PATH %SOLAR_JDK15PATH% + OS SOLARIS + OUTPATH unxsolu4 + SOLAR_STLLIBPATH %SOLARVERSION%$/unxsolu4%PROEXT%$/lib%UPDMINOREXT% + SOLAR_STLPATH %SOLARVERSION%$/unxsolu4%PROEXT%$/inc%UPDMINOREXT%$/stl + SYSBASE %SOLAR_SYSBASE_ROOT% + TEMP /var/tmp + TMP /var/tmp + } + common:3 IF %UPDATER% == YES + { + TEMP /tmp + TMP /tmp + } + compath + { + COMPATH %STAR_COMPATH% + } + distroot:0 if X%DIST_ROOT%X != XX + { + SHARED_SOLARVERSION %DIST_ROOT%/%WORK_STAMP% + SOLARVER %DIST_ROOT%/%WORK_STAMP% + SOLARVERSION %DIST_ROOT%/%WORK_STAMP% + } + envroot:0 if X%ENV_ROOT%X != XX + { + SOLAR_ENV_ROOT %ENV_ROOT% + } + jdk15 + { + JAVA_HOME %JDK15PATH% + JDKINC %JDK15PATH%/include:%JDK15PATH%/include/solaris + JDKINCS -I%JDK15PATH%/include -I%JDK15PATH%/include/solaris + JDKLIB %JDK15PATH%/jre/lib/sparcv9:%JDK15PATH%/lib:%JDK15PATH%/jre/lib/sparcv9/native_threads:%JDK15PATH%/jre/lib/sparcv9/server:%JDK15PATH%/jre/plugin/sparcv9:%JDK15PATH%/jre/lib/sparcv9/motif21 + JDKLIBS -L%JDK15PATH%/jre/lib/sparcv9 -L%JDK15PATH%/lib -L%JDK15PATH%/jre/lib/sparcv9/native_threads -L%JDK15PATH%/jre/lib/sparcv9/server -L%JDK15PATH%/jre/plugin/sparcv9 -L%JDK15PATH%/jre/lib/sparcv9/motif21 + JDKPATH %JDK15PATH%/bin/sparcv9 + JDK_VERSION 150 + XCLASSPATH .:%JDK15PATH%/jre/lib/rt.jar + } + jdk15path:0 if X%JDK_PATH%X != XX + { + SOLAR_JDK15PATH %JDK_PATH% + } + pro + { + PROSWITCH -DPRODUCT + } + sourceroot:0 if X%SOURCE_ROOT%X != XX + { + SOLAR_SOURCE_ROOT %SOURCE_ROOT% + SOURCE_ROOT_USED TRUE + } + sysbaseroot + { + SOLAR_SYSBASE_ROOT %SYSBASE_ROOT% + } + } + extern + { + DIST_ROOT + ENV_ROOT + HOME + JDK_PATH + LM_LICENSE_FILE + LOCALINI + SOL_TMP + SOURCE_ROOT + SYSBASE_ROOT + USER + } + order common0 bs_sourceroot envroot:0 sourceroot:0 common1 distroot:0 jdk15path:0 sysbaseroot cap cax compath common2 common:3 pro common jdk15 + reset + { + CLASSPATH + } + script + { + csh + { + 400: if ( ${?COPYALL} ) $SOLAR_ENV_ROOT/etools/lucopy.pl all $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE + 600: umask 002 + 800: rehash + 820: wrapfetch.sh + 850: if ( "$?SO_GEN_ERROR" == 0 ) setenv SO_GEN_ERROR + 851: if ( "$?SO_GEN_ERROR2" == 0 ) setenv SO_GEN_ERROR2 + 900: if ( "$?SO_GEN_ERROR" == 1 ) echo $SO_GEN_ERROR + 901: if ( "$?SO_GEN_ERROR2" == 1 ) echo $SO_GEN_ERROR2 + } + sh + { + 400: if [ $COPYALL ]; then + 410: $SOLAR_ENV_ROOT/etools/lucopy.pl all $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE + 415: fi + 600: umask 002 + 800: hash -r + 820: wrapfetch.sh + 850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then + 851: export SO_GEN_ERROR + 852: fi + 860: if [ "0$SO_GEN_ERROR2" -eq 0 ]; then + 861: export SO_GEN_ERROR2 + 862: fi + 870: if [ "0$SO_GEN_ERROR" -ne 0 ]; then + 871: echo $SO_GEN_ERROR + 872: fi + 880: if [ "0$SO_GEN_ERROR2" -ne 0 ]; then + 881: echo $SO_GEN_ERROR2 + 882: fi + } + } + switches + { + bs_sourceroot SOURCE_ROOT_TMP + bsclient + cap + cax + compath STAR_COMPATH + distroot + envroot + jdk15 + jdk15path + l10n L10N_framework + pro + sourceroot + sysbaseroot + } +} +wntgcci1 +{ + environment + { + bs_sourceroot + { + SOLAR_SOURCE_ROOT %SOURCE_ROOT_TMP% + SOURCE_ROOT %SOURCE_ROOT_TMP% + SOURCE_ROOT_USED TRUE + } + cap + { + COMPATH %SOL_TMP%$/r$/MinGW + COPYALL TRUE + COPY_PACKED TRUE + DEVROOT %SOL_TMP%$/r + FSDK %SOL_TMP%$/r$/msvc7net$/FrameworkSDK + NSIS_PATH %SOL_TMP%$/r$/NSIS_242_unicode + PCLEAN_PATH %SOLARROOT%$/etw + PERL %SOL_TMP%$/r$/btw$/perl$/bin$/perl + PSDK %SOL_TMP%$/r$/MinGW$/w32api + SHARED_COM_SDK_PATH %SOL_TMP%$/r$/msvc7net$/Common7$/ide + SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOL_TMP%$/r + SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% + SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% + SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% + } + cax + { + COMPATH %SOL_TMP%$/r$/MinGW + COPYALL FALSE + FSDK %SOL_TMP%$/r$/msvc7net$/FrameworkSDK + NSIS_PATH %SOL_TMP%$/r$/NSIS_242_unicode + PCLEAN_PATH %SOL_TMP%$/r$/etw + PERL %SOL_TMP%$/r$/btw$/perl$/bin$/perl + PSDK %SOL_TMP%$/r$/MinGW$/w32api + SHARED_COM_SDK_PATH %SOL_TMP%$/r$/msvc7net$/Common7$/ide + SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOL_TMP%$/r + SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% + SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% + SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% + } + common + { + *build %PERL% %SOLARENV%$/bin$/build.pl %PROFULLSWITCH% + *build_client %PERL% %SOLARENV%$/bin$/build_client.pl + *copyprj %PERL% %COMMON_ENV_TOOLS%/copyprj.pl + *deliver %PERL% %SOLARENV%$/bin$/deliver.pl + *dmake *dmake %PROFULLSWITCH% + *mkout %PERL% %SOLARENV%$/bin$/mkout.pl + *o cd %SOLARENV%$/.. + *r cd %SOLARROOT% + *s cd %SOLARVERSION% + *zipdep %PERL% %SOLARENV%$/bin$/zipdep.pl + BIG_SVX + COPYPRJ %PERL% %COMMON_ENV_TOOLS%/copyprj.pl + DELIVER %PERL% %SOLARENV%$/bin$/deliver.pl + DMAKEROOT %SOLARENV%$/inc$/startup + ILIB .$:%UPDMINOREXT%$:%SOLARVERSION%$/%INPATH%$/lib%UPDMINOREXT%$:%PSDK%$/lib$:%FSDK%$/lib$:%COMPATH%$/lib$: + JDK13PATH %SOLAR_JDK13PATH% + JDK14PATH %SOLAR_JDK14PATH% + JDK15PATH %SOLAR_JDK15PATH% + LIB .$:%UPDMINOREXT%$:%SOLARVERSION%$/%INPATH%$/lib%UPDMINOREXT%$:%PSDK%$/lib$:%PSDK%$/lib$/x86$:%FSDK%$/lib$:%COMPATH%$/lib$:%SOLAR_STLLIBPATH% + MKOUT %PERL% %SOLARENV%$/bin$/mkout.pl + PATH %PATH%$:%SOLARVERSION%$/%INPATH%$/lib%UPDMINOREXT%$:%SHARED_COM_SDK_PATH%$:%PSDK%$/bin$:%FSDK%$/bin + PSDKINC -I%PSDK%$/include + SOLAREXTRAINC -I%COMPATH%$/lib$/gcc-lib$/mingw32$/3.2$/include -I%DSDK%$/include + SOLAR_JAVA TRUE + XCLASSPATH . + ZIPDEP %PERL% %SOLARENV%$/bin$/zipdep.pl + GNUMAKE make + } + common0 + { + SOLAR_ENV_ROOT r: + SOLAR_SOURCE_ROOT o: + } + common1 + { + COMPATH %SOLAR_ENV_ROOT%$/MinGW + # FSDK %SOLAR_ENV_ROOT%$/msvc7net$/FrameworkSDK + DEVROOT %SOLAR_ENV_ROOT% + NSIS_PATH %SOLAR_ENV_ROOT%$/NSIS_242_unicode + PERL %SOLAR_ENV_ROOT%$/btw$/perl$/bin$/perl + PKGFORMAT some_dummy + PSDK %SOLAR_ENV_ROOT%$/MinGW$/w32api + SHARED_COM_SDK_PATH %SOLAR_ENV_ROOT%$/msvc7net$/Common7$/ide + SHARED_SOLARENV %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SHARED_SOLARVERSION %SOLAR_SOURCE_ROOT%$/%WORK_STAMP% + SOLARENV %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOLAR_ENV_ROOT% + SOLARVER %SOLAR_SOURCE_ROOT%$/%WORK_STAMP% + SOLARVERSION %SOLAR_SOURCE_ROOT%$/%WORK_STAMP% + SO_PACK %SOLAR_ENV_ROOT%$/pack$/%WORK_STAMP% + SRC_ROOT %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT% + } + common2 + { + ENABLE_GRAPHITE TRUE + BUILD_TOOLS %SOLARROOT%$/btw$/%WORK_STAMP% + CALL_CDECL TRUE + CDPATHx %CDPATH%$:..$:..$/..$:..$/..$/..$:..$/source$:..$/..$/source$:o:$/%WORK_STAMP%$/ooo%UPDMINOREXT% + COM GCC + COMMON_BUILD_TOOLS %SOLARROOT%$/btools + COMMON_ENV_TOOLS %SOLARROOT%$/etools + COMP_ENV wntgcci1 + CPU I + CPUNAME INTEL + CVER M1300 + DYNAMIC_CRT TRUE + ENV_TOOLS %SOLARROOT%$/etw$/%WORK_STAMP% + GUI WNT + GUIBASE WIN + GVER NT351 + INPATH wntgcci1%PROEXT% + OS WNT + OUTPATH wntgcci1 + SET_EXEPTIONS TRUE + SOLAR_JDK13PATH %SOLARROOT%$/jdk1.3 + SOLAR_JDK14PATH %SOLARROOT%$/j2sdk1.4.2_11 + SOLAR_JDK15PATH %SOLARROOT%$/jdk1.5.0.06 + SOLAR_STLPATH %SOLARVERSION%$/wntgcci1%PROEXT%$/inc%UPDMINOREXT%$/stl + SORT sort -T %TMP% + use_shl_versions TRUE + } + compath + { + COMPATH %STAR_COMPATH% + } + distroot:0 if X%DIST_ROOT%X != XX + { + SHARED_SOLARVERSION %DIST_ROOT%$/%WORK_STAMP% + SOLARVER %DIST_ROOT%$/%WORK_STAMP% + SOLARVERSION %DIST_ROOT%$/%WORK_STAMP% + } + envroot:0 IF X%ENV_ROOT%X != XX + { + SOLAR_ENV_ROOT %ENV_ROOT% + } + jdk14 + { + HOMEDRIVE %DEVROOT% + HOMEPATH $/jdk141 + JAVAHOME %JDK14PATH% + JAVA_HOME %JDK14PATH% + JDKINC %JDK14PATH%$/include$/win32$:%JDK14PATH%$/include + JDKINCS -I%JDK14PATH%$/include -I%JDK14PATH%$/include$/win32 + JDKLIB -L%JDK14PATH%$/lib + JDKLIBS -L%JDK14PATH%$/lib + JDKPATH %JDK14PATH%$/bin + JDK_VERSION 142 + JREPATH %JDK14PATH%$/jre$/bin$/client + XCLASSPATH .$:%JDK14PATH%$/jre$/lib$/rt.jar + } + jdk14path:0 if X%JDK_PATH%X != XX + { + SOLAR_JDK14PATH %JDK_PATH% + } + jdk15 + { + HOMEDRIVE %DEVROOT% + HOMEPATH $/jdk151 + JAVAHOME %JDK15PATH% + JAVA_HOME %JDK15PATH% + JDKINC %JDK15PATH%$/include$/win32$:%JDK15PATH%$/include + JDKINCS -I%JDK15PATH%$/include -I%JDK15PATH%$/include$/win32 + JDKLIB -L%JDK15PATH%$/lib + JDKLIBS -L%JDK15PATH%$/lib + JDKPATH %JDK15PATH%$/bin + JDK_VERSION 150 + JREPATH %JDK15PATH%$/jre$/bin$/client + XCLASSPATH .$:%JDK15PATH%$/jre$/lib$/rt.jar + } + jdk15path:0 if X%JDK_PATH%X != XX + { + SOLAR_JDK15PATH %JDK_PATH% + } + psdk + { + PSDK %STAR_PSDK% + } + sourceroot:0 if X%SOURCE_ROOT%X != XX + { + SOLAR_SOURCE_ROOT %SOURCE_ROOT% + SOURCE_ROOT_USED TRUE + } + } + extern + { + COMSPEC + DIST_ROOT + ENV_ROOT + JDK_PATH + LOCALINI + SOL_TMP + SOURCE_ROOT + } + order common0 bs_sourceroot envroot:0 sourceroot:0 common1 distroot:0 cap cax psdk compath common2 jdk14path:0 jdk15path:0 common jdk14 jdk15 + reset + { + COPYALL + NSIS_PATH + SOLAR_ENV_ROOT + WST + } + script + { + csh + { + 150: setenv MYENV_PATH $PATH + 160: setenv PATH $SSX_PATH + 200: if ( ${?COPYALL} ) $SOLAR_ENV_ROOT/btw/perl/bin/perl $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE + 260: setenv PATH $MYENV_PATH + 270: unsetenv MYENV_PATH + 850: if ( "$?SO_GEN_ERROR" == 0 ) setenv SO_GEN_ERROR + 851: if ( "$?SO_GEN_ERROR2" == 0 ) setenv SO_GEN_ERROR2 + 900: if ( "$?SO_GEN_ERROR" == 1 ) echo $SO_GEN_ERROR + 901: if ( "$?SO_GEN_ERROR2" == 1 ) echo $SO_GEN_ERROR2 + } + sh + { + 150: export MYENV_PATH=$PATH + 160: export PATH=$SSX_PATH + 260: export PATH=$MYENV_PATH + 270: unset MYENV_PATH + 400: if [ $COPYALL ]; then + 410: $SOLAR_ENV_ROOT/btw/perl/bin/perl $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE + 415: fi + 850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then + 851: export SO_GEN_ERROR + 852: fi + 860: if [ "0$SO_GEN_ERROR2" -eq 0 ]; then + 861: export SO_GEN_ERROR + 862: fi + 870: if [ "0$SO_GEN_ERROR" -eq 0 ]; then + 871: echo $SO_GEN_ERROR + 872: fi + 880: if [ "0$SO_GEN_ERROR2" -eq 0 ]; then + 881: echo $SO_GEN_ERROR + 882: fi + } + } + switches + { + bs_sourceroot SOURCE_ROOT_TMP + bsclient + cap + cax + compath STAR_COMPATH + distroot + envroot + jdk14 + jdk14path + jdk15 + jdk15path + l10n L10N_framework + pro + psdk STAR_PSDK + sourceroot + } +} +wntmsci11 +{ + environment + { + bs_sourceroot + { + SOLAR_SOURCE_ROOT %SOURCE_ROOT_TMP% + SOURCE_ROOT %SOURCE_ROOT_TMP% + SOURCE_ROOT_USED TRUE + } + cap + { + COMPATH %SOL_TMP%$/r$/msvc8p + COMPROOT %SOL_TMP%$/r$/msvc8p + COPYALL TRUE + COPY_PACKED TRUE + DEVROOT %SOL_TMP%$/r + DSDK %SOL_TMP%$/r$/msvc8p$/DirectXSDK + FSDK %SOL_TMP%$/r$/msvc8p$/Sdk$/v2.0 + PCLEAN_PATH %SOLARROOT%$/etw + PERL %SOL_TMP%$/r$/btw$/perl$/bin$/perl + PSDK %SOL_TMP%$/r$/msvc8p$/PlatformSDK + SHARED_COM_SDK_PATH %SOL_TMP%$/r$/msvc8p$/Common7$/ide + SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOL_TMP%$/r + SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% + SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% + SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% + } + cax + { + COMPATH %SOL_TMP%$/r$/msvc8p + COMPROOT %SOL_TMP%$/r$/msvc8p + COPYALL FALSE + DSDK %COMPATH%$/DirectXSDK + FSDK %COMPATH%$/Sdk$/v2.0 + PCLEAN_PATH %SOL_TMP%$/r$/etw + PERL %SOL_TMP%$/r$/btw$/perl$/bin$/perl + PSDK %COMPATH%$/PlatformSDK + SHARED_COM_SDK_PATH %COMPATH%$/Common7$/ide + SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOL_TMP%$/r + SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% + SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% + SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% + } + common + { + *build %PERL% %SOLARENV%$/bin$/build.pl %PROFULLSWITCH% + *build_client %PERL% %SOLARENV%$/bin$/build_client.pl + *copyprj %PERL% %COMMON_ENV_TOOLS%/copyprj.pl + *deliver %PERL% %SOLARENV%$/bin$/deliver.pl + *mkout %PERL% %SOLARENV%$/bin$/mkout.pl + *mwscommit %PERL% %COMMON_ENV_TOOLS%/mwscommit.pl + *o cdd %SOLARENV%$/.. + *r cdd %SOLARROOT% + *s cdd %SOLARVERSION% + *zipdep %PERL% %SOLARENV%$/bin$/zipdep.pl + BIG_SVX + COPYPRJ %PERL% %COMMON_ENV_TOOLS%/copyprj.pl + DELIVER %PERL% %SOLARENV%$/bin$/deliver.pl + DMAKEROOT %SOLARENV%$/inc$/startup + ILIB .$:%SOLARVERSION%$/%INPATH%$/lib%UPDMINOREXT%$:%PSDK%$/vc$/lib$:%PSDK%$/lib$:%FSDK%$/lib$:%DSDK%$/lib$/x86 + JDK13PATH %SOLAR_JDK13PATH% + JDK14PATH %SOLAR_JDK14PATH% + JDK15PATH %SOLAR_JDK15PATH% + LIB .$:%SOLARVERSION%$/%INPATH%$/lib%UPDMINOREXT%$:%PSDK%$/vc$/lib$:%PSDK%$/lib$:%FSDK%$/lib$:%DSDK%$/lib$/x86$:%SOLAR_STLLIBPATH% + MKOUT %PERL% %SOLARENV%$/bin$/mkout.pl + MWSCOMMIT %PERL% %COMMON_ENV_TOOLS%/mwscommit.pl + PATH %PATH%$:%SHARED_COM_SDK_PATH%$:%PSDK%$/vc$/bin$:%PSDK%$/bin$:%FSDK%$/bin$:%DSDK%$/bin$/Utilities$/bin$/x86$:%PACKMS% + PROF_EDITION TRUE + PSDKINC -I%PSDK%$/vc$/include -I%PSDK%$/include -I%COMPATH%$/PlatformSDK_VC8$/include + SOLAREXTRAINC -I%DSDK%$/include + SOLAR_JAVA TRUE + TRUSTED_MANIFEST_LOCATION %SOLARENV%$/inc + VISTA_MANIFEST TRUE + WINDOWS_VISTA_PSDK TRUE + XCLASSPATH . + ZIPDEP %PERL% %SOLARENV%$/bin$/zipdep.pl + } + common0 + { + BS_ROOT n: + SOLAR_ENV_ROOT r: + SOLAR_SOURCE_ROOT o: + } + common1 + { + COMPATH %SOLAR_ENV_ROOT%$/msvc8p + COMPROOT %SOLAR_ENV_ROOT%$/msvc8p + DEVROOT %SOLAR_ENV_ROOT% + DSDK %SOLAR_ENV_ROOT%$/msvc8p$/DirectXSDK + FSDK %SOLAR_ENV_ROOT%$/msvc8p$/Sdk$/v2.0 + PERL %SOLAR_ENV_ROOT%$/btw$/perl$/bin$/perl + PKGFORMAT msi + PSDK %SOLAR_ENV_ROOT%$/msvc8p$/PlatformSDK + SHARED_COM_SDK_PATH %SOLAR_ENV_ROOT%$/msvc8p$/Common7$/ide + SHARED_SOLARENV %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SHARED_SOLARVERSION %SOLAR_SOURCE_ROOT%$/%WORK_STAMP% + SOLARENV %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOLAR_ENV_ROOT% + SOLARVER %SOLAR_SOURCE_ROOT%$/%WORK_STAMP% + SOLARVERSION %SOLAR_SOURCE_ROOT%$/%WORK_STAMP% + SO_PACK %SOLAR_ENV_ROOT%$/pack$/%WORK_STAMP% + SRC_ROOT %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT% + } + common2 + { + ENABLE_GRAPHITE TRUE + BUILD_TOOLS %SOLARROOT%$/btw$/%WORK_STAMP% + CALL_CDECL TRUE + CDPATHx %CDPATH%$:..$:..$/..$:..$/..$/..$:..$/source$:..$/..$/source$:o:$/%WORK_STAMP%$/ooo%UPDMINOREXT% + COM MSC + COMEX 11 + COMMON_BUILD_TOOLS %SOLARROOT%$/btools + COMMON_ENV_TOOLS %SOLARROOT%$/etools + COMP_ENV wntmsci11 + CPU I + CPUNAME INTEL + CVER M1400 + DYNAMIC_CRT TRUE + ENV_TOOLS %SOLARROOT%$/etw$/%WORK_STAMP% + GUI WNT + GUIBASE WIN + GVER NT351 + INPATH wntmsci11%PROEXT% + OS WNT + OUTPATH wntmsci11 + PACKMS %SO_PACK%$/wntmsci11$/MS + SET_EXEPTIONS TRUE + SHIPDRIVE %BS_ROOT%$/ship$/install + SOLAR_JDK13PATH %SOLARROOT%$/jdk1.3 + SOLAR_JDK14PATH %SOLARROOT%$/j2sdk1.4.2_11 + SOLAR_JDK15PATH %SOLARROOT%$/jdk1.5.0.06 + SOLAR_STLPATH %SOLARVERSION%$/wntmsci11%PROEXT%$/inc%UPDMINOREXT%$/stl + SORT sort -T %TMP% + use_shl_versions TRUE + } + compath + { + COMPATH %STAR_COMPATH% + } + distroot:0 if X%DIST_ROOT%X != XX + { + SHARED_SOLARVERSION %DIST_ROOT%$/%WORK_STAMP% + SOLARVER %DIST_ROOT%$/%WORK_STAMP% + SOLARVERSION %DIST_ROOT%$/%WORK_STAMP% + } + envroot:0 IF X%ENV_ROOT%X != XX + { + SOLAR_ENV_ROOT %ENV_ROOT% + } + jdk14 + { + HOMEDRIVE %DEVROOT% + HOMEPATH $/jdk141 + JAVAHOME %JDK14PATH% + JAVA_HOME %JDK14PATH% + JDKINC %JDK14PATH%$/include$/win32$:%JDK14PATH%$/include + JDKINCS -I%JDK14PATH%$/include -I%JDK14PATH%$/include$/win32 + JDKLIB %JDK14PATH%$/lib + JDKLIBS %JDK14PATH%$/lib + JDKPATH %JDK14PATH%$/bin + JDK_VERSION 142 + JREPATH %JDK14PATH%$/jre$/bin$/client + XCLASSPATH .$:%JDK14PATH%$/jre$/lib$/rt.jar + } + jdk14path:0 if X%JDK_PATH%X != XX + { + SOLAR_JDK14PATH %JDK_PATH% + } + jdk15 + { + HOMEDRIVE %DEVROOT% + HOMEPATH $/jdk151 + JAVAHOME %JDK15PATH% + JAVA_HOME %JDK15PATH% + JDKINC %JDK15PATH%$/include$/win32$:%JDK15PATH%$/include + JDKINCS -I%JDK15PATH%$/include -I%JDK15PATH%$/include$/win32 + JDKLIB %JDK15PATH%$/lib + JDKLIBS %JDK15PATH%$/lib + JDKPATH %JDK15PATH%$/bin + JDK_VERSION 150 + JREPATH %JDK15PATH%$/jre$/bin$/client + XCLASSPATH .$:%JDK15PATH%$/jre$/lib$/rt.jar + } + jdk15path:0 if X%JDK_PATH%X != XX + { + SOLAR_JDK15PATH %JDK_PATH% + } + psdk + { + PSDK %STAR_PSDK% + } + sourceroot:0 if X%SOURCE_ROOT%X != XX + { + SOLAR_SOURCE_ROOT %SOURCE_ROOT% + SOURCE_ROOT_USED TRUE + } + } + extern + { + COMSPEC + DIST_ROOT + ENV_ROOT + JDK_PATH + LOCALINI + SOL_TMP + SOURCE_ROOT + } + order common0 bs_sourceroot envroot:0 sourceroot:0 common1 distroot:0 cap cax psdk compath common2 jdk14path:0 jdk15path:0 common jdk14 jdk15 + reset + { + COPYALL + SOLAR_ENV_ROOT + WST + } + script + { + post + { + 150: set MYENV_PATH=%PATH + 160: set PATH=%SSX_PATH + 200: if "%COPYALL%"=="TRUE" %SOLAR_ENV_ROOT%\btw\perl\bin\perl %SOLAR_ENV_ROOT%\etools\lucopy.pl -all %BTARGET% $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE + 260: set PATH=%MYENV_PATH + 270: unset MYENV_PATH + 400: if "%SO_GEN_ERROR%" NE "" @echo %SO_GEN_ERROR% + 401: if "%SO_GEN_ERROR2%" NE "" echo %SO_GEN_ERROR2% + } + } + switches + { + bs_sourceroot SOURCE_ROOT_TMP + bsclient + cap + cax + compath STAR_COMPATH + distroot + envroot + jdk14 + jdk14path + jdk15 + jdk15path + l10n L10N_framework + pro + psdk STAR_PSDK + sourceroot + } +} +wntmsci12 +{ + environment + { + bs_sourceroot + { + SOLAR_SOURCE_ROOT $dp(%SOURCE_ROOT_TMP%) + SOURCE_ROOT $dp(%SOURCE_ROOT_TMP%) + SOURCE_ROOT_USED TRUE + } + cap + { + BUILD_TOOLS %SOL_TMP%$/btw$/%BTOOLDIR% + COMPATH %SOL_TMP%$/r$/msvc9p + COMPROOT %SOL_TMP%$/r$/msvc9p + COPYALL TRUE + COPY_PACKED TRUE + DEVROOT %SOL_TMP%$/r + DSDK %SOL_TMP%$/r$/msvc9p$/DirectXSDK + ENV_TOOLS %SOL_TMP%$/r$/etw$/%WORK_STAMP% + FSDK %SOL_TMP%$/r$/msvc9p$/Sdk$/v3.5 + F20SDK %SOL_TMP%$/r$/msvc9p$/Sdk$/v2.0 + NSIS_PATH %SOL_TMP%$/r$/NSIS_242_unicode + PCLEAN_PATH %SOLARROOT%$/etw + PERL %SOL_TMP%$/r$/%PERLDIR% + PSDK %SOL_TMP%$/r$/msvc9p$/PlatformSDK$/v6.1 + SHARED_COM_SDK_PATH %SOL_TMP%$/r$/msvc9p$/Common7$/IDE + SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOL_TMP%$/r + SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% + SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% + SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% +# TOUCH %SOL_TMP%$/r$/btw$/%BTOOLDIR%$/touch.exe + + } + cax + { + BUILD_TOOLS %SOL_TMP%$/r$/btw$/%BTOOLDIR% + COMPATH %SOL_TMP%$/r$/msvc9p + COMPROOT %SOL_TMP%$/r$/msvc9p + COPYALL FALSE + DSDK %COMPATH%$/DirectXSDK + ENV_TOOLS %SOL_TMP%$/r$/etw$/%WORK_STAMP% + FSDK %COMPATH%$/Sdk$/v3.5 + F20SDK %SOL_TMP%$/r$/msvc9p$/Sdk$/v2.0 + NSIS_PATH %SOL_TMP%$/r$/NSIS_242_unicode + PCLEAN_PATH %SOL_TMP%$/r$/etw + PERL %SOL_TMP%$/r$/%PERLDIR% + PSDK %COMPATH%$/PlatformSDK$/v6.1 + SHARED_COM_SDK_PATH %COMPATH%$/Common7$/IDE + SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOL_TMP%$/r + SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% + SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% + SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% +# TOUCH %SOL_TMP%$/r$/btw$/%BTOOLDIR%$/touch.exe + } + common + { + *build %PERL% %SOLARENV%$/bin$/build.pl %PROFULLSWITCH% + *build_client %PERL% %SOLARENV%$/bin$/build_client.pl + *copyprj %PERL% %COMMON_ENV_TOOLS%$/copyprj.pl + *deliver %PERL% %SOLARENV%$/bin$/deliver.pl + *mkout %PERL% %SOLARENV%$/bin$/mkout.pl + *mwscommit %PERL% %COMMON_ENV_TOOLS%$/mwscommit.pl + *o cd %SOLARENV%$/.. + *r cd %SOLARROOT% + *s cd %SOLARVERSION% + *zipdep %PERL% %SOLARENV%$/bin$/zipdep.pl + *z_ooo %PERL% %SOLARENV%$/bin$/z_ooo.pl + BIG_SVX + COPYPRJ %PERL% %COMMON_ENV_TOOLS%$/copyprj.pl + CXX_X64_BINARY %COMPROOT%$/bin$/x86_amd64$/cl.exe + DELIVER %PERL% %SOLARENV%$/bin$/deliver.pl + DMAKEROOT %SOLARENV%$/inc$/startup + ENABLE_PCH TRUE + ILIB .;%SOLARVERSION%$/%INPATH%$/lib%UPDMINOREXT%;%COMPATH%$/lib;%PSDK%$/lib;%DSDK%$/lib$/x86 + JDK13PATH %SOLAR_JDK13PATH% + JDK14PATH %SOLAR_JDK14PATH% + JDK15PATH %SOLAR_JDK15PATH% + LIB .;%SOLARVERSION%$/%INPATH%$/lib%UPDMINOREXT%;%COMPATH%$/lib;%PSDK%$/lib;%DSDK%$/lib$/x86;%SOLAR_STLLIBPATH% + LIBMGR_X64_BINARY %COMPROOT%$/bin$/x86_amd64$/lib.exe + LINK_X64_BINARY %COMPROOT%$/bin$/x86_amd64$/link.exe + MKOUT %PERL% %SOLARENV%$/bin$/mkout.pl + MWSCOMMIT %PERL% %COMMON_ENV_TOOLS%$/mwscommit.pl + OJDK16PATH %SOLAR_OJDK16PATH% + PATH $cp(%PSDK%$/Bin)$:%PATH%$:$cp(%SHARED_COM_SDK_PATH%)$:$cp(%COMPATH%$/bin)$:$cp(%FSDK%)$:$cp(%F20SDK%)$/bin$:$cp(%DSDK%$/Utilities$/bin$/x86)$:$cp(%PACKMS%) + PROF_EDITION TRUE + PSDKINC -I%PSDK%$/include + SOLAREXTRAINC -I%DSDK%$/include + SOLAR_JAVA TRUE + TRUSTED_MANIFEST_LOCATION %SOLARENV%$/inc + USE_DIRECTX5 TRUE + WINDOWS_VISTA_PSDK TRUE + SYSBASE TRUE + WITH_VC_REDIST TRUE + XCLASSPATH . + ZIPDEP %PERL% %SOLARENV%$/bin$/zipdep.pl + BUILD_X64 TRUE + CHECK_LUCENCE_INDEXER_OUTPUT TRUE + GNUCOPY cp + GNUMAKE make + } + common0 + { + BS_ROOT n: + SOLAR_ENV_ROOT r: + SOLAR_SOURCE_ROOT o: + BTOOLDIR %WORK_STAMP%$/cygtools + PERLDIR btw$/%WORK_STAMP%$/cygtools$/perl + } + common02 + { + PERL perl + } + common1 + { + COMPATH %SOLAR_ENV_ROOT%$/msvc9p + COMPROOT %SOLAR_ENV_ROOT%$/msvc9p + DEVROOT %SOLAR_ENV_ROOT% + DSDK %SOLAR_ENV_ROOT%$/msvc9p$/DirectXSDK + FSDK %SOLAR_ENV_ROOT%$/msvc9p$/Sdk$/v3.5 + F20SDK %SOLAR_ENV_ROOT%$/msvc9p$/Sdk$/v2.0 + NSIS_PATH %SOLAR_ENV_ROOT%$/NSIS_242_unicode + PERL %SOLAR_ENV_ROOT%$/%PERLDIR% + PKGFORMAT msi + PSDK %SOLAR_ENV_ROOT%$/msvc9p$/PlatformSDK$/v6.1 + SHARED_COM_SDK_PATH %SOLAR_ENV_ROOT%$/msvc9p$/Common7$/ide + SHARED_SOLARENV %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SHARED_SOLARVERSION %SOLAR_SOURCE_ROOT%$/%WORK_STAMP% + SOLARENV %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOLAR_ENV_ROOT% + SOLARVER %SOLAR_SOURCE_ROOT%$/%WORK_STAMP% + SOLARVERSION %SOLAR_SOURCE_ROOT%$/%WORK_STAMP% + SO_PACK %SOLAR_ENV_ROOT%$/pack$/%WORK_STAMP% + SRC_ROOT %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT% +# TEMP $dp(%TEMP%) +# TMP $dp(%TMP%) + } + common2 + { + ENABLE_GRAPHITE TRUE + BUILD_TOOLS %SOLARROOT%$/btw$/%BTOOLDIR% + CALL_CDECL TRUE + CDPATHx %CDPATH%$:..$:..$/..$:..$/..$/..$:..$/source$:..$/..$/source$:$cp(%SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%) + COM MSC + COMEX 12 + COMMON_BUILD_TOOLS $cp(%SOLARROOT%$/btools) + COMMON_ENV_TOOLS %SOLARROOT%$/etools + COMP_ENV wntmsci12 + CPU I + CPUNAME INTEL + CVER M1500 + DYNAMIC_CRT TRUE + ENV_TOOLS %SOLARROOT%$/etw$/%WORK_STAMP% + GUI WNT + GUIBASE WIN + GVER NT351 + INPATH wntmsci12%PROEXT% + LIBMYSQL_PATH %SOLARROOT%$/mysql-connector-c-6.0.2$/wntmsci12 + MOZILLABUILD %SOLARROOT%/mozilla-build-1.3 + OS WNT + OUTPATH wntmsci12 + PACKMS %SO_PACK%$/wntmsci12$/MS + SET_EXEPTIONS TRUE + SHIPDRIVE %SOLAR_ENV_ROOT%$/ship$/install + SOLAR_JDK13PATH %SOLARROOT%$/jdk1.3 + SOLAR_JDK14PATH %SOLARROOT%$/j2sdk1.4.2_11 + SOLAR_JDK15PATH %SOLARROOT%$/jdk1.5.0.06 + SOLAR_OJDK16PATH %SOLARROOT%$/openjdk-6-b08-windows-i586 + SOLAR_STLPATH %SOLARVERSION%$/wntmsci12%PROEXT%$/inc%UPDMINOREXT%$/stl + SORT sort -T %TMP% +# TOUCH %SOLARROOT%$/btw$/%BTOOLDIR%$/touch.exe + use_shl_versions TRUE + } + common:3 IF %UPDATER% == YES + { + SHIPDRIVE %BS_ROOT%$/ship$/install + } + compath + { + COMPATH $dp(%STAR_COMPATH%) + } + distroot:0 if X%DIST_ROOT%X != XX + { + SHARED_SOLARVERSION $dp(%DIST_ROOT%$/%WORK_STAMP%) + SOLARVER $dp(%DIST_ROOT%$/%WORK_STAMP%) + SOLARVERSION $dp(%DIST_ROOT%$/%WORK_STAMP%) + } + envroot:0 IF X%ENV_ROOT%X != XX + { + SOLAR_ENV_ROOT $dp(%ENV_ROOT%) + } + jdk14 + { +# HOMEDRIVE %DEVROOT% +# HOMEPATH $/jdk141 + JAVAHOME %JDK14PATH% + JAVA_HOME %JDK14PATH% + JDKINC %JDK14PATH%$/include$/win32;%JDK14PATH%$/include + JDKINCS -I%JDK14PATH%$/include -I%JDK14PATH%$/include$/win32 + JDKLIB %JDK14PATH%$/lib + JDKLIBS %JDK14PATH%$/lib + JDKPATH %JDK14PATH%$/bin + JDK_VERSION 142 + JREPATH %JDK14PATH%$/jre$/bin$/client + XCLASSPATH .;%JDK14PATH%$/jre$/lib$/rt.jar + } + jdk14path:0 if X%JDK_PATH%X != XX + { + SOLAR_JDK14PATH $dp(%JDK_PATH%) + } + jdk15 + { +# HOMEDRIVE %DEVROOT% +# HOMEPATH $/jdk151 + JAVAHOME %JDK15PATH% + JAVA_HOME %JDK15PATH% + JDKINC %JDK15PATH%$/include$/win32;%JDK15PATH%$/include + JDKINCS -I%JDK15PATH%$/include -I%JDK15PATH%$/include$/win32 + JDKLIB %JDK15PATH%$/lib + JDKLIBS %JDK15PATH%$/lib + JDKPATH %JDK15PATH%$/bin + JDK_VERSION 150 + JREPATH %JDK15PATH%$/jre$/bin$/client + XCLASSPATH .;%JDK15PATH%$/jre$/lib$/rt.jar + } + jdk15path:0 if X%JDK_PATH%X != XX + { + SOLAR_JDK15PATH $dp(%JDK_PATH%) + } + ojdk16 + { +# HOMEDRIVE %DEVROOT% +# HOMEPATH $/openjdk-6-b08-windows-i586 + JAVA_HOME %OJDK16PATH% + JDKINC %OJDK16PATH%$/include$/win32;%OJDK16PATH%$/include + JDKINCS -I%OJDK16PATH%$/include -I%OJDK16PATH%$/include$/win32 + JDKLIB %OJDK16PATH%$/lib + JDKLIBS %OJDK16PATH%$/lib + JDKPATH %OJDK16PATH%$/bin + JDK_VERSION 160 + JREPATH %OJDK16PATH%$/jre$/bin$/client + XCLASSPATH .;%OJDK16PATH%$/jre$/lib$/rt.jar + } + ojdk16path:0 if X%JDK_PATH%X != XX + { + SOLAR_OJDK16PATH $dp(%JDK_PATH%) + } + pro + { + RES_ENUS TRUE + } + psdk + { + PSDK $dp(%STAR_PSDK%) + } + sourceroot:0 if X%SOURCE_ROOT%X != XX + { + SOLAR_SOURCE_ROOT $dp(%SOURCE_ROOT%) + SOURCE_ROOT_USED TRUE + } + tmp + { + SOL_TMP $dp(%SOL_TMP_DIR%) + } + } + extern + { + COMSPEC + DIST_ROOT + ENV_ROOT + JDK_PATH + LOCALINI + OSTYPE + $dp(SOL_TMP) + $dp(SOURCE_ROOT) + $dp(TMP) + $dp(TEMP) + } + order common0 bs_sourceroot tmp envroot:0 sourceroot:0 pro common1 distroot:0 cap cax common02 psdk compath common2 common:3 jdk14path:0 jdk15path:0 ojdk16path:0 common jdk14 jdk15 ojdk16 + reset + { + COPYALL + CXX_X64_BINARY + DB2IMP + GCRINC + GCRLIB + GCRPATH + LIBMGR_X64_BINARY + LINK_X64_BINARY + NSIS_PATH + OLD_CHAOS + PERLDIR + SOLAR_ENV_ROOT + TFDEF + TFDIR + WST + } + script + { + sh + { + 400: if [ $COPYALL ]; then + 410: perl $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE + 415: fi + 600: umask 002 + 800: hash -r + 820: wrapfetch.sh + 850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then + 851: export SO_GEN_ERROR + 852: fi + 860: if [ "0$SO_GEN_ERROR2" -eq 0 ]; then + 861: export SO_GEN_ERROR2 + 862: fi + 870: if [ "0$SO_GEN_ERROR" -ne 0 ]; then + 871: echo $SO_GEN_ERROR + 872: fi + 880: if [ "0$SO_GEN_ERROR2" -ne 0 ]; then + 881: echo $SO_GEN_ERROR2 + 882: fi + } + } + switches + { + bs_sourceroot SOURCE_ROOT_TMP + bsclient + cap + cax + compath STAR_COMPATH + distroot + envroot + jdk14 + jdk14path + jdk15 + jdk15path + l10n L10N_framework + ojdk16 + ojdk16path + pro + psdk STAR_PSDK + sourceroot + tmp SOL_TMP_DIR + } +} +wntmsci13 +{ + environment + { + bs_sourceroot + { + SOLAR_SOURCE_ROOT $dp(%SOURCE_ROOT_TMP%) + SOURCE_ROOT $dp(%SOURCE_ROOT_TMP%) + SOURCE_ROOT_USED TRUE + } + cap + { + BUILD_TOOLS %SOL_TMP%$/r$/btw$/%BTOOLDIR% + COMPATH %SOL_TMP%$/r$/msvc9p + COMPROOT %SOL_TMP%$/r$/msvc9p + COPYALL TRUE + COPY_PACKED TRUE + DEVROOT %SOL_TMP%$/r + DSDK %SOL_TMP%$/r$/msvc9p$/DirectXSDK + ENV_TOOLS %SOL_TMP%$/r$/etw$/%WORK_STAMP% + FSDK %SOL_TMP%$/r$/msvc9p$/Sdk$/v3.5 + F20SDK %SOL_TMP%$/r$/msvc9p$/Sdk$/v2.0 + NSIS_PATH %SOL_TMP%$/r$/NSIS_242_unicode + PCLEAN_PATH %SOLARROOT%$/etw + PERL %SOL_TMP%$/r$/%PERLDIR% + PSDK %SOL_TMP%$/r$/msvc9p$/PlatformSDK$/v6.1 + SHARED_COM_SDK_PATH %SOL_TMP%$/r$/msvc9p$/Common7$/IDE + SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOL_TMP%$/r + SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% + SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% + SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% +# TOUCH %SOL_TMP%$/r$/btw$/%BTOOLDIR%$/touch.exe + + } + cax + { + BUILD_TOOLS %SOL_TMP%$/r$/btw$/%BTOOLDIR% + COMPATH %SOL_TMP%$/r$/msvc9p + COMPROOT %SOL_TMP%$/r$/msvc9p + COPYALL FALSE + DSDK %COMPATH%$/DirectXSDK + ENV_TOOLS %SOL_TMP%$/r$/etw$/%WORK_STAMP% + FSDK %COMPATH%$/Sdk$/v3.5 + F20SDK %SOL_TMP%$/r$/msvc9p$/Sdk$/v2.0 + NSIS_PATH %SOL_TMP%$/r$/NSIS_242_unicode + PCLEAN_PATH %SOL_TMP%$/r$/etw + PERL %SOL_TMP%$/r$/%PERLDIR% + PSDK %COMPATH%$/PlatformSDK$/v6.1 + SHARED_COM_SDK_PATH %COMPATH%$/Common7$/IDE + SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOL_TMP%$/r + SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% + SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% + SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% +# TOUCH %SOL_TMP%$/r$/btw$/%BTOOLDIR%$/touch.exe + } + common + { + *build %PERL% %SOLARENV%$/bin$/build.pl %PROFULLSWITCH% + *build_client %PERL% %SOLARENV%$/bin$/build_client.pl + *copyprj %PERL% %COMMON_ENV_TOOLS%$/copyprj.pl + *deliver %PERL% %SOLARENV%$/bin$/deliver.pl + *mkout %PERL% %SOLARENV%$/bin$/mkout.pl + *mwscommit %PERL% %COMMON_ENV_TOOLS%$/mwscommit.pl + *o cd %SOLARENV%$/.. + *r cd %SOLARROOT% + *s cd %SOLARVERSION% + *zipdep %PERL% %SOLARENV%$/bin$/zipdep.pl + *z_ooo %PERL% %SOLARENV%$/bin$/z_ooo.pl + BIG_SVX + COPYPRJ %PERL% %COMMON_ENV_TOOLS%$/copyprj.pl + CXX_X64_BINARY %COMPROOT%$/bin$/x86_amd64$/cl.exe + DELIVER %PERL% %SOLARENV%$/bin$/deliver.pl + DMAKEROOT %SOLARENV%$/inc$/startup + ENABLE_PCH TRUE + ILIB .;%SOLARVERSION%$/%INPATH%$/lib%UPDMINOREXT%;%COMPATH%$/lib;%PSDK%$/lib;%DSDK%$/lib$/x86 + JDK13PATH %SOLAR_JDK13PATH% + JDK14PATH %SOLAR_JDK14PATH% + JDK15PATH %SOLAR_JDK15PATH% + LIB .;%SOLARVERSION%$/%INPATH%$/lib%UPDMINOREXT%;%COMPATH%$/lib;%PSDK%$/lib;%DSDK%$/lib$/x86;%SOLAR_STLLIBPATH% + LIBMGR_X64_BINARY %COMPROOT%$/bin$/x86_amd64$/lib.exe + LINK_X64_BINARY %COMPROOT%$/bin$/x86_amd64$/link.exe + MKOUT %PERL% %SOLARENV%$/bin$/mkout.pl + MWSCOMMIT %PERL% %COMMON_ENV_TOOLS%$/mwscommit.pl + OJDK16PATH %SOLAR_OJDK16PATH% + PATH $cp(%PSDK%$/Bin)$:%PATH%$:$cp(%SHARED_COM_SDK_PATH%)$:$cp(%COMPATH%$/bin)$:$cp(%FSDK%)$:$cp(%F20SDK%)$/bin$:$cp(%DSDK%$/Utilities$/bin$/x86)$:$cp(%PACKMS%) + PROF_EDITION TRUE + PSDKINC -I%PSDK%$/include + SOLAREXTRAINC -I%DSDK%$/include + SOLAR_JAVA TRUE + TRUSTED_MANIFEST_LOCATION %SOLARENV%$/inc + USE_DIRECTX5 TRUE + WINDOWS_VISTA_PSDK TRUE + SYSBASE TRUE + WITH_VC_REDIST TRUE + XCLASSPATH . + ZIPDEP %PERL% %SOLARENV%$/bin$/zipdep.pl + BUILD_X64 TRUE + GNUCOPY cp + GNUMAKE make + } + common0 + { + BS_ROOT n: + SOLAR_ENV_ROOT r: + SOLAR_SOURCE_ROOT o: + BTOOLDIR %WORK_STAMP%$/cygtools + PERLDIR btw$/%WORK_STAMP%$/cygtools$/perl + } + common02 + { + PERL perl + } + common1 + { + COMPATH %SOLAR_ENV_ROOT%$/msvc9p + COMPROOT %SOLAR_ENV_ROOT%$/msvc9p + DEVROOT %SOLAR_ENV_ROOT% + DSDK %SOLAR_ENV_ROOT%$/msvc9p$/DirectXSDK + FSDK %SOLAR_ENV_ROOT%$/msvc9p$/Sdk$/v3.5 + F20SDK %SOLAR_ENV_ROOT%$/msvc9p$/Sdk$/v2.0 + NSIS_PATH %SOLAR_ENV_ROOT%$/NSIS_242_unicode + PERL %SOLAR_ENV_ROOT%$/%PERLDIR% + PKGFORMAT msi + PSDK %SOLAR_ENV_ROOT%$/msvc9p$/PlatformSDK$/v6.1 + SHARED_COM_SDK_PATH %SOLAR_ENV_ROOT%$/msvc9p$/Common7$/ide + SHARED_SOLARENV %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SHARED_SOLARVERSION %SOLAR_SOURCE_ROOT%$/%WORK_STAMP% + SOLARENV %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv + SOLARROOT %SOLAR_ENV_ROOT% + SOLARVER %SOLAR_SOURCE_ROOT%$/%WORK_STAMP% + SOLARVERSION %SOLAR_SOURCE_ROOT%$/%WORK_STAMP% + SO_PACK %SOLAR_ENV_ROOT%$/pack$/%WORK_STAMP% + SRC_ROOT %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT% +# TEMP $dp(%TEMP%) +# TMP $dp(%TMP%) + } + common2 + { + ENABLE_GRAPHITE TRUE + BUILD_TOOLS %SOLARROOT%$/btw$/%BTOOLDIR% + CALL_CDECL TRUE + CDPATHx %CDPATH%$:..$:..$/..$:..$/..$/..$:..$/source$:..$/..$/source$:$cp(%SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%) + COM MSC + COMEX 12 + COMMON_BUILD_TOOLS $cp(%SOLARROOT%$/btools) + COMMON_ENV_TOOLS %SOLARROOT%$/etools + COMP_ENV wntmsci13 + CPU I + CPUNAME INTEL + CVER M1500 + DYNAMIC_CRT TRUE + ENV_TOOLS %SOLARROOT%$/etw$/%WORK_STAMP% + GUI WNT + GUIBASE WIN + GVER NT351 + INPATH wntmsci13%PROEXT% + MOZILLABUILD %SOLARROOT%/mozilla-build-1.3 + OS WNT + OUTPATH wntmsci13 + PACKMS %SO_PACK%$/wntmsci13$/MS + SET_EXEPTIONS TRUE + SHIPDRIVE %SOLAR_ENV_ROOT%$/ship$/install + SOLAR_JDK13PATH %SOLARROOT%$/jdk1.3 + SOLAR_JDK14PATH %SOLARROOT%$/j2sdk1.4.2_11 + SOLAR_JDK15PATH %SOLARROOT%$/jdk1.5.0.06 + SOLAR_OJDK16PATH %SOLARROOT%$/openjdk-6-b08-windows-i586 + SOLAR_STLPATH %SOLARVERSION%$/wntmsci13%PROEXT%$/inc%UPDMINOREXT%$/stl + SORT sort -T %TMP% +# TOUCH %SOLARROOT%$/btw$/%BTOOLDIR%$/touch.exe + use_shl_versions TRUE + } + common:3 IF %UPDATER% == YES + { + SHIPDRIVE %BS_ROOT%$/ship$/install + } + compath + { + COMPATH $dp(%STAR_COMPATH%) + } + distroot:0 if X%DIST_ROOT%X != XX + { + SHARED_SOLARVERSION $dp(%DIST_ROOT%$/%WORK_STAMP%) + SOLARVER $dp(%DIST_ROOT%$/%WORK_STAMP%) + SOLARVERSION $dp(%DIST_ROOT%$/%WORK_STAMP%) + } + envroot:0 IF X%ENV_ROOT%X != XX + { + SOLAR_ENV_ROOT $dp(%ENV_ROOT%) + } + jdk14 + { +# HOMEDRIVE %DEVROOT% +# HOMEPATH $/jdk141 + JAVAHOME %JDK14PATH% + JAVA_HOME %JDK14PATH% + JDKINC %JDK14PATH%$/include$/win32;%JDK14PATH%$/include + JDKINCS -I%JDK14PATH%$/include -I%JDK14PATH%$/include$/win32 + JDKLIB %JDK14PATH%$/lib + JDKLIBS %JDK14PATH%$/lib + JDKPATH %JDK14PATH%$/bin + JDK_VERSION 142 + JREPATH %JDK14PATH%$/jre$/bin$/client + XCLASSPATH .;%JDK14PATH%$/jre$/lib$/rt.jar + } + jdk14path:0 if X%JDK_PATH%X != XX + { + SOLAR_JDK14PATH $dp(%JDK_PATH%) + } + jdk15 + { +# HOMEDRIVE %DEVROOT% +# HOMEPATH $/jdk151 + JAVAHOME %JDK15PATH% + JAVA_HOME %JDK15PATH% + JDKINC %JDK15PATH%$/include$/win32;%JDK15PATH%$/include + JDKINCS -I%JDK15PATH%$/include -I%JDK15PATH%$/include$/win32 + JDKLIB %JDK15PATH%$/lib + JDKLIBS %JDK15PATH%$/lib + JDKPATH %JDK15PATH%$/bin + JDK_VERSION 150 + JREPATH %JDK15PATH%$/jre$/bin$/client + XCLASSPATH .;%JDK15PATH%$/jre$/lib$/rt.jar + } + jdk15path:0 if X%JDK_PATH%X != XX + { + SOLAR_JDK15PATH $dp(%JDK_PATH%) + } + ojdk16 + { +# HOMEDRIVE %DEVROOT% +# HOMEPATH $/openjdk-6-b08-windows-i586 + JAVA_HOME %OJDK16PATH% + JDKINC %OJDK16PATH%$/include$/win32;%OJDK16PATH%$/include + JDKINCS -I%OJDK16PATH%$/include -I%OJDK16PATH%$/include$/win32 + JDKLIB %OJDK16PATH%$/lib + JDKLIBS %OJDK16PATH%$/lib + JDKPATH %OJDK16PATH%$/bin + JDK_VERSION 160 + JREPATH %OJDK16PATH%$/jre$/bin$/client + XCLASSPATH .;%OJDK16PATH%$/jre$/lib$/rt.jar + } + ojdk16path:0 if X%JDK_PATH%X != XX + { + SOLAR_OJDK16PATH $dp(%JDK_PATH%) + } + pro + { + RES_ENUS TRUE + } + psdk + { + PSDK $dp(%STAR_PSDK%) + } + sourceroot:0 if X%SOURCE_ROOT%X != XX + { + SOLAR_SOURCE_ROOT $dp(%SOURCE_ROOT%) + SOURCE_ROOT_USED TRUE + } + tmp + { + SOL_TMP $dp(%SOL_TMP_DIR%) + } + } + extern + { + COMSPEC + DIST_ROOT + ENV_ROOT + JDK_PATH + LOCALINI + OSTYPE + $dp(SOL_TMP) + $dp(SOURCE_ROOT) + $dp(TMP) + $dp(TEMP) + } + order common0 bs_sourceroot tmp envroot:0 sourceroot:0 pro common1 distroot:0 cap cax common02 psdk compath common2 common:3 jdk14path:0 jdk15path:0 ojdk16path:0 common jdk14 jdk15 ojdk16 + reset + { + COPYALL + CXX_X64_BINARY + DB2IMP + GCRINC + GCRLIB + GCRPATH + LIBMGR_X64_BINARY + LINK_X64_BINARY + NSIS_PATH + OLD_CHAOS + PERLDIR + SOLAR_ENV_ROOT + TFDEF + TFDIR + WST + } + script + { + sh + { + 400: if [ $COPYALL ]; then + 410: perl $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE + 415: fi + 600: umask 002 + 800: hash -r + 820: wrapfetch.sh + 850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then + 851: export SO_GEN_ERROR + 852: fi + 860: if [ "0$SO_GEN_ERROR2" -eq 0 ]; then + 861: export SO_GEN_ERROR2 + 862: fi + 870: if [ "0$SO_GEN_ERROR" -ne 0 ]; then + 871: echo $SO_GEN_ERROR + 872: fi + 880: if [ "0$SO_GEN_ERROR2" -ne 0 ]; then + 881: echo $SO_GEN_ERROR2 + 882: fi + } + } + switches + { + bs_sourceroot SOURCE_ROOT_TMP + bsclient + cap + cax + compath STAR_COMPATH + distroot + envroot + jdk14 + jdk14path + jdk15 + jdk15path + l10n L10N_framework + ojdk16 + ojdk16path + pro + psdk STAR_PSDK + sourceroot + tmp SOL_TMP_DIR + } +} + diff --git a/solenv/doc/gbuild/doxygen.cfg b/solenv/doc/gbuild/doxygen.cfg new file mode 100644 index 000000000000..2345b58d5c30 --- /dev/null +++ b/solenv/doc/gbuild/doxygen.cfg @@ -0,0 +1,1510 @@ +# Doxyfile 1.5.8 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# http://www.gnu.org/software/libiconv for the list of possible encodings. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = gbuild + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = ./output + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, +# Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek, +# Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish, +# Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, Slovene, +# Spanish, Swedish, and Ukrainian. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = YES + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = YES + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like regular Qt-style comments +# (thus requiring an explicit @brief command for a brief description.) + +JAVADOC_AUTOBRIEF = NO + +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will +# interpret the first line (until the first dot) of a Qt-style +# comment as the brief description. If set to NO, the comments +# will behave just like regular Qt-style comments (thus requiring +# an explicit \brief command for a brief description.) + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for +# Java. For instance, namespaces will be presented as packages, qualified +# scopes will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources only. Doxygen will then generate output that is more tailored for +# Fortran. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for +# VHDL. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it parses. +# With this tag you can assign which parser to use for a given extension. +# Doxygen has a built-in mapping, but you can override or extend it using this tag. +# The format is ext=language, where ext is a file extension, and language is one of +# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP, +# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat +# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), +# use: inc=Fortran f=C + +EXTENSION_MAPPING = mk=IDL + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. +# Doxygen will parse them like normal C++ but will assume all classes use public +# instead of private inheritance when no explicit protection keyword is present. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate getter +# and setter methods for a property. Setting this option to YES (the default) +# will make doxygen to replace the get and set methods by a property in the +# documentation. This will only work if the methods are indeed getting or +# setting a simple type. If this is not the case, or you want to show the +# methods anyway, you should set this option to NO. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum +# is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically +# be useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. + +TYPEDEF_HIDES_STRUCT = NO + +# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to +# determine which symbols to keep in memory and which to flush to disk. +# When the cache is full, less often used symbols will be written to disk. +# For small to medium size projects (<1000 input files) the default value is +# probably good enough. For larger projects a too small cache size can cause +# doxygen to be busy swapping symbols to and from disk most of the time +# causing a significant performance penality. +# If the system has enough physical memory increasing the cache will improve the +# performance by keeping more symbols in memory. Note that the value works on +# a logarithmic scale so increasing the size by one will rougly double the +# memory usage. The cache size is given by this formula: +# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, +# corresponding to a cache size of 2^16 = 65536 symbols + +SYMBOL_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = YES + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base +# name of the file that contains the anonymous namespace. By default +# anonymous namespace are hidden. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the +# hierarchy of group names into alphabetical order. If set to NO (the default) +# the group names will appear in their defined order. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is NO. + +SHOW_DIRECTORIES = NO + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. +# This will remove the Files entry from the Quick Index and from the +# Folder Tree View (if specified). The default is YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the +# Namespaces page. +# This will remove the Namespaces entry from the Quick Index +# and from the Folder Tree View (if specified). The default is YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command <command> <input-file>, where <command> is the value of +# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by +# doxygen. The layout file controls the global structure of the generated output files +# in an output format independent way. The create the layout file that represents +# doxygen's defaults, run doxygen with the -l option. You can optionally specify a +# file name after the option, if omitted DoxygenLayout.xml will be used as the name +# of the layout file. + +LAYOUT_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = solenv/gbuild + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is +# also the default input encoding. Doxygen uses libiconv (or the iconv built +# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for +# the list of possible encodings. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 + +FILE_PATTERNS = *.mk + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command <filter> <input-file>, where <filter> +# is the value of the INPUT_FILTER tag, and <input-file> is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. +# If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. +# Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. +# The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will +# link to the source code. +# Otherwise they will link to the documentation. + +REFERENCES_LINK_SOURCE = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = NO + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. For this to work a browser that supports +# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox +# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). + +HTML_DYNAMIC_SECTIONS = NO + +# If the GENERATE_DOCSET tag is set to YES, additional index files +# will be generated that can be used as input for Apple's Xcode 3 +# integrated development environment, introduced with OSX 10.5 (Leopard). +# To create a documentation set, doxygen will generate a Makefile in the +# HTML output directory. Running make will produce the docset in that +# directory and running "make install" will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find +# it at startup. +# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information. + +GENERATE_DOCSET = NO + +# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the +# feed. A documentation feed provides an umbrella under which multiple +# documentation sets from a single provider (such as a company or product suite) +# can be grouped. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that +# should uniquely identify the documentation set bundle. This should be a +# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen +# will append .docset to the name. + +DOCSET_BUNDLE_ID = org.openoffice.gbuild + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING +# is used to encode HtmlHelp index (hhk), content (hhc) and project file +# content. + +CHM_INDEX_ENCODING = + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER +# are set, an additional index file will be generated that can be used as input for +# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated +# HTML documentation. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can +# be used to specify the file name of the resulting .qch file. +# The path specified is relative to the HTML output folder. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#namespace + +QHP_NAMESPACE = + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#virtual-folders + +QHP_VIRTUAL_FOLDER = doc + +# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add. +# For more information please see +# http://doc.trolltech.com/qthelpproject.html#custom-filters + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see +# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's +# filter section matches. +# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>. + +QHP_SECT_FILTER_ATTRS = + +# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can +# be used to specify the location of Qt's qhelpgenerator. +# If non-empty doxygen will try to run qhelpgenerator on the generated +# .qhp file. + +QHG_LOCATION = + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. +# If the tag value is set to FRAME, a side panel will be generated +# containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. Other possible values +# for this tag are: HIERARCHIES, which will generate the Groups, Directories, +# and Class Hierarchy pages using a tree view instead of an ordered list; +# ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which +# disables this behavior completely. For backwards compatibility with previous +# releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE +# respectively. + +GENERATE_TREEVIEW = NONE + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +# Use this tag to change the font size of Latex formulas included +# as images in the HTML documentation. The default is 10. Note that +# when you change the font size after a successful doxygen run you need +# to manually remove any form_*.png images from the HTML output directory +# to force them to be regenerated. + +FORMULA_FONTSIZE = 10 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = YES + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = YES + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = YES + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. +# This is useful +# if you want to understand what is going on. +# On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse +# the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more +# powerful graphs. + +CLASS_DIAGRAMS = YES + +# You can define message sequence charts within doxygen comments using the \msc +# command. Doxygen will then run the mscgen tool (see +# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the +# documentation. The MSCGEN_PATH tag allows you to specify the directory where +# the mscgen tool resides. If left empty the tool is assumed to be found in the +# default search path. + +MSCGEN_PATH = + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# By default doxygen will write a font called FreeSans.ttf to the output +# directory and reference it in all dot files that doxygen generates. This +# font does not include all possible unicode characters however, so when you need +# these (or just want a differently looking font) you can specify the font name +# using DOT_FONTNAME. You need need to make sure dot is able to find the font, +# which can be done by putting it in a standard location or by setting the +# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory +# containing the font. + +DOT_FONTNAME = FreeSans + +# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. +# The default size is 10pt. + +DOT_FONTSIZE = 10 + +# By default doxygen will tell dot to use the output directory to look for the +# FreeSans.ttf font (which doxygen will put there itself). If you specify a +# different font using DOT_FONTNAME you can set the path where dot +# can find it using this tag. + +DOT_FONTPATH = + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT options are set to YES then +# doxygen will generate a call dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable call graphs +# for selected functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then +# doxygen will generate a caller dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable caller +# graphs for selected functions only using the \callergraph command. + +CALLER_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of +# nodes that will be shown in the graph. If the number of nodes in a graph +# becomes larger than this value, doxygen will truncate the graph, which is +# visualized by representing a node as a red box. Note that doxygen if the +# number of direct children of the root node in a graph is already larger than +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note +# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. + +DOT_GRAPH_MAX_NODES = 50 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that the size of a graph can be further restricted by +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, because dot on Windows does not +# seem to support this out of the box. Warning: Depending on the platform used, +# enabling this option may lead to badly anti-aliased labels on the edges of +# a graph (i.e. they become hard to read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Options related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO diff --git a/solenv/doc/gbuild/solenv/gbuild/alllangres.mk b/solenv/doc/gbuild/solenv/gbuild/alllangres.mk new file mode 100644 index 000000000000..8d5034e881dd --- /dev/null +++ b/solenv/doc/gbuild/solenv/gbuild/alllangres.mk @@ -0,0 +1,90 @@ +#include <types.h> + +namespace gb +{ + class SrsTarget; + class ResTarget; + class AllLangResTarget; + + class SrsPartTarget : public Target, public HasDependencies, public UsesRsc + { + private: + /// SrsPartTarget s do not need to be explicitly constructed. + + /// They are a helper class for the SrsTarget class. + /// They are named after the path of their source file (without + /// file extension) from the root of their source repository. + SrsPartTarget(String name); + friend class SrsTarget; + + /// Platformdependant command to generate the dependencies for the srs target. + static const Command command_dep( + String srsname, + Path sourcefile, + List<Path> include, + List<String> defs); + }; + + class SrsTarget : public Target, public HasDependencies, public IsCleanable + { + public: + /// Sets defines for srs processing. + /// \$\$(DEFS) contains the current flags and can be used, if + /// just a few need to be modified. + void set_defs(List<String> defs); + /// Sets the include paths for srs processing. + /// \$\$(INCLUDE) contains the current paths and can be used, if + /// just a few need to be modified. + void set_include(List<String> include); + /// Adds a SrsPartTarget to be processed. + void add_file(SrsPartTarget part); + /// Adds multiple SrsPartTarget s to be processed. + void add_files(List<SrsPartTarget> parts); + private: + /// SrsTarget s do not need to be explicitly constructed. + + /// They are a helper class for the ResTarget class. + SrsTarget(String name); + friend class ResTarget; + + List<String> DEFS; + List<String> INCLUDE + List<SrsPartTarget> PARTS; + static const List<String> DEFAULTDEFS; + }; + + class ResTarget : public Target, public IsCleanable, public HasSrs + { + public: + void add_file(Path file); + void add_files(List<Path> files); + private: + /// ResTarget do not need to be explicitly constructed. + + /// They are a helper class for the AllLangResTarget class. + ResTarget(String name, String library, Language lang, Path reslocation); + friend class AllLangResTarget; + + String LIBRARY; + Language LANGUAGE; + Path RESLOCATION; + }; + + class AllLangResTarget : public Target, public IsCleanable, public HasSrs + { + public: + AllLangResTarget(String name); + /// Sets the location where resources are to be found. reslocation is a path relative to the default_images directory. + /// Resources will be found in reslocation itself and in the subdirectories res/ and imglst/ of it and again in subdirectories + /// of those named as the language of the processed resource. In addition, resources are found in the res/ directory directly + /// below default_images and the subdirectory of it named as the language of the processed resource. + void set_reslocation(Path reslocation); + private: + /// Sets the languages for which to create resources. + static void set_langs(List<Language> langs); + + /// The list of languages that need to be build. + static List<Language> LANGS; + }; +} +/* vim: set filetype=cpp : */ diff --git a/solenv/doc/gbuild/solenv/gbuild/executable.mk b/solenv/doc/gbuild/solenv/gbuild/executable.mk new file mode 100644 index 000000000000..8f7fcc9b0ce9 --- /dev/null +++ b/solenv/doc/gbuild/solenv/gbuild/executable.mk @@ -0,0 +1,25 @@ +#include <types.h> + +namespace gb +{ + using namespace types; + + class LinkTarget; + + class Executable : public IsCleanable, public HasDependencies, public IsLinking, public DeliversHeaders, public HasCompileSettings, public Target + { + public: + Executable(String name); + + private: + /// private helper function for the constructor + void Executable_impl(LinkTarget library_linktarget); + /// platformdependant additional setup for constructor (used on Windows only) + void Executable_platform(LinkTarget library_linktarget); + /// helper function to wrap LinkTargets functions (this is more or less pimpl ...) + void forward_to_linktarget(Function f); + + static const List<String> TARGETTYPEFLAGS; + }; +} +/* vim: set filetype=cpp : */ diff --git a/solenv/doc/gbuild/solenv/gbuild/gbuild.mk b/solenv/doc/gbuild/solenv/gbuild/gbuild.mk new file mode 100644 index 000000000000..97ca9b252789 --- /dev/null +++ b/solenv/doc/gbuild/solenv/gbuild/gbuild.mk @@ -0,0 +1,82 @@ + +#include <types.mk> +using namespace gb::types; + +// GNU make specific setup +static const Command SHELL; + + +// gbuild root directorys +static Path SRCDIR; +static Path OUTDIR; +static Path WORKDIR; + +// Expected from configure/environment +static const Integer OSL_DEBUG_LEVEL; +static const List<Path> JDKINCS; +static const List<Path> SOLARINC; +static const List<Path> SOLARLIB; +static const Path GBUILDDIR; +static const Path INPATH; +static const Path JAVA_HOME; +static const Path UPD; +static const String CVER; +static const String LIBXML_CFLAGS; +static const String OS; +static const String STLPORT_VER; +static const Bool DEBUG; +static const Bool PRODUCT; + +// gbuild global variables derived from the configure/environment +// some of these are defined per platform +namespace gb +{ + /// building with generated dependencies + static const Bool FULLDEPS; + /// product build or non-product build with additional assertions and tests + static const Bool PRODUCT; + /// command to run awk scripts + static const Command AWK; + /// command to compile c source files + static const Command CC; + /// command to compile c++ source files + static const Command CXX; + /// command to process input with a gcc compatible preprocessor + static const Command GCCP; + /// command to link objects on the microsoft toolchain + static const Command LINK; + /// command to create a unique temporary file + static const Command MKTEMP; + /// debuglevel: + /// 0=no debugging, + /// 1=non-product build, + /// 2=debugging build (either product or nonproduct) + static const Integer DEBUGLEVEL; + /// compiler specific optimization flags + static const List<String> COMPILEROPTFLAGS; + /// default c compilation compiler flags + static const List<String> CFLAGS; + /// compiler specific defines + static const List<String> COMPILERDEFS; + /// cpu-specific default defines + static const List<String> CPUDEFS; + /// default c++ compilation compiler flags + static const List<String> CXXFLAGS; + /// platform- and compilerindependent default defines + static const List<String> GLOBALDEFS; + /// default objective c++ compilation compiler flags + static const List<String> OBJCXXFLAGS; + /// platfomspecific default defines + static const List<String> OSDEFS; + /// ? + static const Path SDKDIR; +}; + +// GXX_INCLUDE_PATH (Linux) +// PTHREAD_CFLAGS (Linux) +// SYSTEM_ICU (Linux) +// SYSTEM_JPEG (Linux) +// SYSTEM_LIBXML (Linux) +// USE_SYSTEM_STL (Linux) + +/* vim: set filetype=cpp : */ diff --git a/solenv/doc/gbuild/solenv/gbuild/helper.mk b/solenv/doc/gbuild/solenv/gbuild/helper.mk new file mode 100644 index 000000000000..3fa666b857a8 --- /dev/null +++ b/solenv/doc/gbuild/solenv/gbuild/helper.mk @@ -0,0 +1,42 @@ +#include <types.h> + +String NEWLINE; +String COMMA; + +namespace gb +{ + using namespace types; + + class Helper + { + public: + /// Abbreviates the common directory roots in a command + static Command abbreviate_dirs(Command c); + /// Announces the start/end of an task. + static void announce(String announcement); + /// Creates the default get_clean_target() function for the type. + static void make_clean_target(TargetType t); + /// Creates the default get_clean_target() function for the types. + static void make_clean_targets(List<TargetType> ts); + /// Creates the default get_dep_target() function for the type. + static void make_dep_target(TargetType t); + /// Creates the default get_dep_target() function for the types. + static void make_dep_targets(List<TargetType> ts); + /// Creates the default get_dep_target() function for the type modifying the \$(OUTDIR). + static void make_outdir_clean_target(TargetType t); + /// Creates the default get_dep_target() function for types modifying the \$(OUTDIR). + static void make_outdir_clean_targets(List<TargetType> ts); + /// Returns the clean target of a target modifying the \$(OUTDIR). + static Path get_outdir_clean_target(Path target); + + /// The path to a zero length file. + static const Path NULLFILE; + /// The path to the misc directory for temporary files etc. + static const Path MISC; + /// The path to a phony target, that is always outdated. + static const Path PHONY; + /// Internally used dummy file. + static const Path MISCDUMMY; + }; +} +/* vim: set filetype=cpp : */ diff --git a/solenv/doc/gbuild/solenv/gbuild/library.mk b/solenv/doc/gbuild/solenv/gbuild/library.mk new file mode 100644 index 000000000000..eba19a86156a --- /dev/null +++ b/solenv/doc/gbuild/solenv/gbuild/library.mk @@ -0,0 +1,41 @@ +#include <types.h> + +namespace gb +{ + using namespace types; + + class LinkTarget; + + class Library : public IsCleanable, public HasDependencies, public IsLinking, public DeliversHeaders, public HasCompileSettings, public Target + { + public: + Library(String name); + /// Returns how the library is named in the filesystem on the current platform. + /// Library filename schemes are defined in solenv/gbuild/libnames.mk (with some platformdependant hacks in solenv/gbuild/platform/*.mk. + + /// This function needs to be defined in solenv/gbuild/target_names.mk so that it is available to everywhere. + Path get_filename(); + + private: + /// private helper function for the constructor + void Library_impl(LinkTarget library_linktarget); + /// platformdependant additional setup for constructor (used on Windows only) + void Library_platform( + LinkTarget library_linktarget, + Path dllfile); + /// helper function to wrap LinkTargets functions (this is more or less pimpl ...) + void forward_to_linktarget(Function f); + + /// List of buildable libraries (i.e. libraries that are not expected to exist outside of \$(OUTDIR) on the system). + static const List<Library> TARGETS; + /// List of additional defines for compiling objects for libraries + static const List<String> DEFS; + /// List of additional flags for linking a library + static const List<String> TARGETTYPEFLAGS; + /// Mapping from symbolic library names to dll filenames + static const Map<Library,Path> DLLFILENAMES; + /// Mapping from symbolic library names to filenames + static const Map<Library,Path> FILENAMES; + }; +} +/* vim: set filetype=cpp : */ diff --git a/solenv/doc/gbuild/solenv/gbuild/linktarget.mk b/solenv/doc/gbuild/solenv/gbuild/linktarget.mk new file mode 100644 index 000000000000..5fb7ead86b83 --- /dev/null +++ b/solenv/doc/gbuild/solenv/gbuild/linktarget.mk @@ -0,0 +1,128 @@ +#include <types.h> + +namespace gb +{ + using namespace types; + + class LinkTarget; + class Library; + class StaticLibrary; + class SdiTarget; + class Package; + + /// CObjects are never used standalone. They only exist as part of a + /// LinkTarget. + class CObject : public HasSource, public HasDependencies, public Target + { + public: + Path get_source(); + private: + /// CObjects do not need to be explicitly constructed. + /// They are named after the path of their source file (without + /// file extension) from the root of their source repository. + CObject(String name); + friend class LinkTarget; + + /// Platformdependent command to compile a plain C object. + static const Command command( + Path objectfile, + String name, + Path sourcefile, + List<String> defs, + List<String> cxxflags, + List<Path> include); + /// Platformdependent command to generate plain C object dependencies. + static const Command command_dep( + Path depfile, + String name, + Path sourcefile, + List<String> defs, + List<String> cxxflags, + List<Path> include); + }; + + /// CxxObjects are never used standalone. They only exist as part of a + /// LinkTarget. + class CxxObject : public HasSource, public HasDependencies, public Target + { + public: + Path get_source(); + private: + /// CxxObjects do not need to be explicitly constructed. + /// They are named after the path of their source file (without + /// file extension) from the root of their source repository. + CxxObject(String name); + friend class LinkTarget; + + /// Platformdependent command to compile a C++ object. + static const Command command( + Path objectfile, + String name, + Path sourcefile, + List<String> defs, + List<String> cxxflags, + List<Path> include); + /// Platformdependent command to generate C++ object dependencies. + static const Command command_dep( + Path objectfile, + String name, + Path sourcefile, + List<String> defs, + List<String> cxxflags, + List<Path> include); + }; + + class LinkTarget : public IsCleanable, public HasDependencies, public IsLinking, public DeliversHeaders, public HasCompileSettings, public Target + { + public: + LinkTarget(String name); + + private: + void get_external_headers_check(); + void add_internal_headers(const List<Target>& internal_headers); + + /// @warning Evil Hack: SELF is set to the name of the LinkTarget + /// in the constructor. If SELF is not set to the LinkTarget name in + /// the execution of the header rule, the LinkTarget is used (linked + /// against) but was never defined. This might work out, if the + /// LinkTarget has been provided by other means (for example: + /// build.pl/dmake), but it should never happen in a project where + /// all LinkTarget s are controlled by gbuild. + LinkTarget& SELF; + List<CObject> COBJECTS; + List<CxxObject> CXXOBJECTS; + List<Library> LINKED_LIBS; + List<Path> AUXTARGETS; + List<Path> INCLUDE; + List<Path> INCLUDE_STL; + List<StaticLibrary> LINKED_STATIC_LIBS; + List<String> CFLAGS; + List<String> CXXFLAGS; + List<String> DEFS; + List<String> LDFLAGS; + List<String> TARGETTYPE_FLAGS; + Path DLLTARGET; + + /// Platformdependent command for linking. + static const Command command ( + Path linktargetfile, + String linktargetname, + List<String> linkflags, + List<Library> linked_libs, + List<StaticLibrary> linked_static_libs, + List<CObject> cobjects, + List<CxxObject> cxxobjects); + /// Command to collect all dependencies of this LinkTarget. + static const Command command_dep( + Path depfile, + String linktargetname, + List<CObject> cobjects, + List<CxxObject> cxxobjects); + static const List<String> DEFAULTDEFS; + static const List<String> CXXFLAGS; + static const List<String> LDFLAGS; + static const List<Path> INCLUDE; + static const List<Path> INCLUDE_STL; + }; +} +/* vim: set filetype=cpp : */ diff --git a/solenv/doc/gbuild/solenv/gbuild/package.mk b/solenv/doc/gbuild/solenv/gbuild/package.mk new file mode 100644 index 000000000000..53daeb5c80af --- /dev/null +++ b/solenv/doc/gbuild/solenv/gbuild/package.mk @@ -0,0 +1,30 @@ +#include <types.h> + +namespace gb +{ + using namespace types; + class PackagePart + { + private: + /// PackagePart s do not need to be explicitly constructed. + /// They are named after the path of their source file (without + /// file extension) from the root of their source repository. + PackagePart(String name, Path Source); + friend Package; + /// Returns a list of aboslute paths where files are copied to with the PackagePart class. + + /// This function needs to be defined in solenv/gbuild/target_names.mk so that it is available to everywhere. + static const List<Path> get_destinations(); + }; + + class Package : public Target, public IsCleanable + { + public: + /// Creates a new package that copies files from source_dir to the \$(OUTDIR). + Package(String name, Path source_dir); + /// Adds a file to the package. destination is the relative path in + /// the \$(OUTDIR) and source is the relative path in the source_dir. + add_file(Path destination, Path source); + } +} +/* vim: set filetype=cpp : */ diff --git a/solenv/doc/gbuild/solenv/gbuild/sdi.mk b/solenv/doc/gbuild/solenv/gbuild/sdi.mk new file mode 100644 index 000000000000..f9f913fb141c --- /dev/null +++ b/solenv/doc/gbuild/solenv/gbuild/sdi.mk @@ -0,0 +1,23 @@ +#include <types.h> + +namespace gb +{ + using namespace types; + + class SdiTarget : public Target, public IsCleanable + { + public: + /// Creates a new SdiTarget. + SdiTarget(String name, String exports); + /// Sets the include paths for this SdiTarget. + set_include(List<Path> includes); + private: + /// The command to execute svidl. + static const Command SVIDLCOMMAND; + /// The target on with to depend to make sure the svidl executable is available. + static const Path SVIDLTARGET; + /// The target on with to depend to make sure the auxiliary files (libraries etc.) for the svidl executable are available. + static const Path SVIDLAUXDEPS; + }; +} +/* vim: set filetype=cpp : */ diff --git a/solenv/doc/gbuild/solenv/gbuild/static_library.mk b/solenv/doc/gbuild/solenv/gbuild/static_library.mk new file mode 100644 index 000000000000..787c6e732ede --- /dev/null +++ b/solenv/doc/gbuild/solenv/gbuild/static_library.mk @@ -0,0 +1,39 @@ +#include <types.h> + +namespace gb +{ + using namespace types; + + class LinkTarget; + + class StaticLibrary : public IsCleanable, public HasDependencies, public IsLinking, public DeliversHeaders, public HasCompileSettings, public Target + { + public: + StaticLibrary(String name); + /// Returns how the library is named in the filesystem on the current platform. + /// StaticLibrary filename schemes are defined in solenv/gbuild/libnames.mk (with some platformdependant hacks in solenv/gbuild/platform/*.mk. + + /// This function needs to be defined in solenv/gbuild/target_names.mk so that it is available to everywhere. + Path get_filename(); + + private: + /// private helper function for the constructor + void StaticLibrary_impl(LinkTarget library_linktarget); + /// helper function to wrap LinkTargets functions (this is more or less pimpl ...). + void forward_to_linktarget(Function f); + + /// List of buildable static libraries (i.e. static libraries that are not expected to exist outside of \$(OUTDIR) on the system). + static const List<StaticLibrary> TARGETS; + /// List of additional defines for compiling objects for static libraries + static const List<String> DEFS; + /// List of additional flags for linking a static library + static const List<String> TARGETTYPEFLAGS; + /// Mapping from symbolic static library names to filenames + static const Map<StaticLibrary,Path> FILENAMES; + /// location to place static libraries in the \$(OUTDIR) + static const Path OUTDIRLOCATION; + /// platformdependant file extension for static libraries + static const String PLAINEXT; + }; +} +/* vim: set filetype=cpp : */ diff --git a/solenv/doc/gbuild/solenv/gbuild/types.mk b/solenv/doc/gbuild/solenv/gbuild/types.mk new file mode 100644 index 000000000000..ecb736834736 --- /dev/null +++ b/solenv/doc/gbuild/solenv/gbuild/types.mk @@ -0,0 +1,169 @@ +namespace gb { + class CObject; + class CxxObject; + class Library; + class StaticLibrary; + class Package; + class SdiTarget; +}; + +namespace gb { namespace types +{ + /// A type of target, with its set of rules etc., as used in the build system. + class TargetType {}; + /// A plain old string. + class String {}; + /// A partial, relative or absolute filesystem path. + class Path {}; + /// A target to be build. + class Target + { + public: + /// The absolute filesystem path representing the target. + + /// This function needs to be defined in solenv/gbuild/target_names.mk so that it is available to everywhere. + Path get_target(); + }; + /// A partial or complete shell-command. + class Command {}; + /// A integer number. + class Integer {}; + /// A boolean value. + + /// There are const boolean values true and false for + /// comparisons (written as $(true) and $(false) in makefiles. + class Bool {}; + /// A language (for localisation) + + /// A language represented by its ISO 639-1:2002 code. + class Language {}; + /// A List of objects. + + /// A List of objects represented by a whitespace separated list + /// in makefiles. + template <typename T> + class List<T> {}; + + /// A Mapping from with a key of type K and a value of type V + + /// A Mapping is represented by a whitespace separated list + /// of key-value pairs. Key and value are separated by a colon (:). + template <typename K, typename V> + class Map<K,V> {}; + /// A target that can be cleaned. + class IsCleanable + { + public: + /// The (phony) absolute filesystem path to clean the target. + + /// This function needs to be defined in solenv/gbuild/target_names.mk so that it is available to everywhere. + Path get_clean_target(); + }; + /// A target that has generated dependencies. + class HasDependencies + { + public: + /// The absolute filesystem path to the file containing the dependencies. + + /// This function needs to be defined in solenv/gbuild/target_names.mk so that it is available to everywhere. + Path get_dep_target(); + }; + /// A target that has a source file from which it is generated. + class HasSource + { + public: + /// The absolute filesystem path to the source file. + Path get_source(); + }; + /// A target that links objects and libraries. + class IsLinking + { + public: + /// Add a CObject to be compiled and linked. + void add_cobject(CObject cobject); + /// Add multiple CObject s to be compiled and linked. + void add_cobjects(List<CObject> cobjects); + /// Add a CxxObject to be compiled and linked. + void add_cxxobject(CxxObject cobject); + /// Add multiple CxxObject s to be compiled and linked. + void add_cxxobjects(List<CxxObject> cobjects); + /// Add multiple CxxObject s to be compiled and linked (with exceptions enabled). + void add_exception_objects(List<CxxObject> cobject); + /// Add libraries to link against dynamically. + void add_linked_libs(List<Library> linked_libs); + /// Add libraries to link against statically. + void add_linked_static_libs(List<StaticLibrary> linked_static_libs); + /// Add multiple CxxObject s to be compiled and linked (without exceptions enabled). + /// @deprecated We should not care about disabling exception. + void add_noexception_objects(List<CxxObject> cobject); + /// Set auxiliary files that are produced by linking (for cleanup and copying). + void set_auxtargets(List<Path> auxtargets); + /// Set the location for the produced DLL (used on Windows only). + void set_dll_target(Path dlltarget); + /// Set additional flags for the link command. + void set_ldflags(List<Path> ldflags); + }; + /// A target that delivers headers of some kind. + class DeliversHeaders + { + public: + /// The absolute filesystem path which is touched when all headers for this target are prepared. + + /// This function needs to be defined in solenv/gbuild/target_names.mk so that it is available to everywhere. + Path get_headers_target(); + /// The absolute filesystem path which is touched when all external headers for this target are prepared. + + /// This function needs to be defined in solenv/gbuild/target_names.mk so that it is available to everywhere. + Path get_external_headers_target(); + /// Add multiple Packages that need to be delivered/generated + /// before compilation or dependency generation can start. + void add_package_headers(List<Package> packages); + /// Add multiple SdiTargets that need to be delivered/generated + /// before compilation or dependency generation can start. + void add_sdi_headers(List<SdiTarget> sdis); + }; + /// A target where settings for the compilation can be set. + class HasCompileSettings + { + public: + /// Sets flags for plain C compilation. + /// \$\$(CFLAGS) contains the current flags and can be used if + /// just a few need to be modified. + void set_cflags(List<String> cflags); + /// Sets flags for C++ compilation. + /// \$\$(CXXFLAGS) contains the current flags and can be used if + /// just a few need to be modified. + void set_cxxflags(List<String> cxxflags); + /// Sets defines for C/C++ compilation. + /// \$\$(DEFS) contains the current flags and can be used if + /// just a few need to be modified. + void set_defs(List<String> defs); + /// Sets the include paths for C/C++ compilation. + /// \$\$(INCLUDE) contains the current paths and can be used if + /// just a few need to be modified. + void set_include(List<Path> include); + /// Sets the stl include paths for C++ compilation. + /// \$\$(INCLUDE_STL) contains the current paths and can be used if + /// just a few need to be modified. + void set_include_stl(List<Path> include_stl); + }; + /// A target using the resource compiler + class UsesRsc + { + public: + /// The command to execute rsc. + static const Command RSCCOMMAND; + /// The target on with to depend to make sure the rsc executable is available. + static const Path RSCTARGET; + }; + /// A target processing a set of srs files + class HasSrs + { + public: + /// Add a SrsTarget to be processed. + void add_one_srs(SrsTarget srs); + /// Add multiple SrsTarget s to be processed. + void add_srs(List<SrsTarget> srs); + }; +}}; +/* vim: set filetype=cpp : */ diff --git a/solenv/gbuild/AllLangResTarget.mk b/solenv/gbuild/AllLangResTarget.mk new file mode 100644 index 000000000000..4a655d320589 --- /dev/null +++ b/solenv/gbuild/AllLangResTarget.mk @@ -0,0 +1,323 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +# SrsPartMergeTarget class + +gb_SrsPartMergeTarget_TRANSEXTARGET := $(call gb_Executable_get_target,transex3) +# gb_SrsPartMergeTarget_TRANSEXPRECOMMAND is set by the platforms + +gb_SrsPartMergeTarget_TRANSEXCOMMAND := $(gb_SrsPartMergeTarget_TRANSEXPRECOMMAND) $(gb_SrsPartMergeTarget_TRANSEXTARGET) +gb_SrsPartMergeTarget_SDFLOCATION := $(SRCDIR)/l10n/$(INPATH)/misc/sdf/ +gb_SrsPartMergeTarget_REPOS := $(gb_REPOS) + +define gb_SrsPartMergeTarget__command +$(call gb_Output_announce,$(3),$(true),srs,1) +$(call gb_Helper_abbreviate_dirs_native,\ + mkdir -p $(dir $(1)) && \ + $(gb_SrsPartMergeTarget_TRANSEXCOMMAND) \ + -p $(firstword $(subst /, ,$(2))) \ + -i $(3) \ + -o $(1) \ + -m $(SDF) \ + -l all) + +endef + +define gb_SrsPartMergeTarget__rules +$$(call gb_SrsPartMergeTarget_get_target,%) : $(1)/% $$(gb_Helper_MISCDUMMY) | $$(gb_SrsPartMergeTarget_TRANSEXTARGET) + $$(if $$(SDF),$$(call gb_SrsPartMergeTarget__command,$$@,$$*,$$<),mkdir -p $$(dir $$@) && cp $$< $$@) + +endef + +$(foreach repo,$(gb_SrsPartMergeTarget_REPOS),$(eval $(call gb_SrsPartMergeTarget__rules,$(repo)))) + +# SrsPartTarget class + +gb_SrsPartTarget_REPOS := $(gb_REPOS) +# defined by platform +# gb_SrsPartTarget_RSCTARGET +# gb_SrsPartTarget_RSCCOMMAND +# gb_SrsPartTarget__command_dep + +define gb_SrsPartTarget__command +$(call gb_Helper_abbreviate_dirs_native,\ + mkdir -p $(dir $(1)) && \ + RESPONSEFILE=`$(gb_MKTEMP)` && \ + echo "-s \ + $(INCLUDE) \ + -I$(realpath $(dir $(3))) \ + $(DEFS) \ + -fp=$(1) \ + $(realpath $(if $<,$<,$(MERGEDFILE)))" > $${RESPONSEFILE} && \ + $(gb_SrsPartTarget_RSCCOMMAND) -presponse @$${RESPONSEFILE} && \ + rm -rf $${RESPONSEFILE}) + +endef + +define gb_SrsPartTarget__rules +$$(call gb_SrsPartTarget_get_target,%) : $(1)/% $$(gb_Helper_MISCDUMMY) | $$(gb_SrsPartTarget_RSCTARGET) + $$(call gb_SrsPartTarget__command_dep,$$*,$$<) + $$(call gb_SrsPartTarget__command,$$@,$$*,$$<) + +ifeq ($(gb_FULLDEPS),$(true)) +$$(call gb_SrsPartTarget_get_dep_target,%) : $(1)/% $$(gb_Helper_MISCDUMMY) + $$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $$(dir $$@) && \ + echo '$$(call gb_SrsPartTarget_get_target,$$*) : $$(gb_Helper_PHONY)' > $$@) +endif + +endef + +$(foreach repo,$(gb_SrsPartTarget_REPOS),$(eval $(call gb_SrsPartTarget__rules,$(repo)))) + +ifeq ($(gb_FULLDEPS),$(true)) +$(call gb_SrsPartTarget_get_dep_target,%) : + $(eval $(call gb_Output_error,Unable to find resource definition file $* in repositories: $(gb_SrsPartTarget_REPOS))) +endif + + +define gb_SrsPartTarget_SrsPartTarget +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 := $(realpath $(gb_SrsPartMergeTarget_SDFLOCATION)$(dir $(1))localize.sdf) +endif + +endef + + +# SrsTarget class + +gb_SrsTarget_DEFAULTDEFS := $(gb_GLOBALDEFS) + +.PHONY : $(call gb_SrsTarget_get_clean_target,%) +$(call gb_SrsTarget_get_clean_target,%) : + $(call gb_Output_announce,$*,$(false),SRS,1) + -$(call gb_Helper_abbreviate_dirs,\ + rm -f $(call gb_SrsTarget_get_target,$*) \ + $(call gb_SrsTarget_get_dep_target,$*) \ + $(foreach part,$(PARTS),$(call gb_SrsPartTarget_get_target,$(part))) \ + $(foreach part,$(PARTS),$(call gb_SrsPartTarget_get_dep_target,$(part))) \ + $(foreach part,$(PARTS),$(call gb_SrsPartMergeTarget_get_target,$(part)))) + +ifeq ($(gb_FULLDEPS),$(true)) +define gb_SrsTarget__command_dep +$(call gb_Output_announce,SRS:$(2),$(true),DEP,1) +$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $(1)) && \ + cat $(3) > $(1)) +endef +endif + +$(call gb_SrsTarget_get_target,%) : + $(call gb_SrsTarget__command_dep,$(call gb_SrsTarget_get_dep_target,$*),$*,$(foreach part,$(PARTS),$(call gb_SrsPartTarget_get_dep_target,$(part)))) + $(call gb_Output_announce,$*,$(true),SRS,1) + $(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $@) && \ + cat $^ > $@) + +ifeq ($(gb_FULLDEPS),$(true)) +$(call gb_SrsTarget_get_dep_target,%) : + $(call gb_SrsTarget__command_dep,$@,$*,$^) +endif + +define gb_SrsTarget_SrsTarget +$(call gb_SrsTarget_get_target,$(1)) : DEFS := $(gb_SrsTarget_DEFAULTDEFS) +$(call gb_SrsTarget_get_target,$(1)) : INCLUDE := $(SOLARINC) +$(call gb_SrsTarget_get_clean_target,$(1)) : PARTS := +$(call gb_SrsTarget_get_target,$(1)) : PARTS := +ifeq ($(gb_FULLDEPS),$(true)) +ifneq ($(wildcard $(call gb_SrsTarget_get_dep_target,$(1))),) +include $(call gb_SrsTarget_get_dep_target,$(1)) +else +$(firstword $(MAKEFILE_LIST)) : $(call gb_SrsTarget_get_dep_target,$(1)) +endif +endif + +endef + +define gb_SrsTarget_set_defs +$(call gb_SrsTarget_get_target,$(1)) : DEFS := $(2) +ifeq ($(gb_FULLDEPS),$(true)) +$(call gb_SrsTarget_get_dep_target,$(1)) : DEFS := $(2) +endif + +endef + +define gb_SrsTarget_set_include +$(call gb_SrsTarget_get_target,$(1)) : INCLUDE := $(2) +ifeq ($(gb_FULLDEPS),$(true)) +$(call gb_SrsTarget_get_dep_target,$(1)) : INCLUDE := $(2) +endif + +endef + +define gb_SrsTarget_add_file +ifeq ($(gb_FULLDEPS),$(true)) +$(call gb_SrsTarget_get_dep_target,$(1)) : $(call gb_SrsPartTarget_get_dep_target,$(2)) +endif +$(call gb_SrsPartTarget_SrsPartTarget,$(2)) +$(call gb_SrsTarget_get_target,$(1)) : $(call gb_SrsPartTarget_get_target,$(2)) +$(call gb_SrsTarget_get_clean_target,$(1)) : PARTS += $(2) +$(call gb_SrsTarget_get_target,$(1)) : PARTS += $(2) + +endef + +define gb_SrsTarget_add_files +$(foreach file,$(2),$(call gb_SrsTarget_add_file,$(1),$(file))) + +endef + + +# ResTarget + +gb_ResTarget_RSCTARGET := $(gb_SrsPartTarget_RSCTARGET) +gb_ResTarget_RSCCOMMAND := $(gb_SrsPartTarget_RSCCOMMAND) +gb_ResTarget_DEFIMAGESLOCATION := $(realpath $(SRCDIR)/default_images)/ + +$(call gb_ResTarget_get_clean_target,%) : + $(call gb_Output_announce,$*,$(false),RES,2) + $(call gb_Helper_abbreviate_dirs,\ + rm -f $(call gb_ResTarget_get_target,$*) $(call gb_ResTarget_get_imagelist_target,$*) $(call gb_ResTarget_get_outdir_target,$*) $(call gb_ResTarget_get_outdir_imagelist_target,$*)) + +$(call gb_ResTarget_get_target,%) : $(gb_Helper_MISCDUMMY) | $(gb_ResTarget_RSCTARGET) + $(call gb_Output_announce,$*,$(true),RES,2) + $(call gb_Helper_abbreviate_dirs_native,\ + mkdir -p $(dir $@) $(OUTDIR)/bin \ + $(dir $(call gb_ResTarget_get_imagelist_target,$*)) && \ + RESPONSEFILE=`$(gb_MKTEMP)` && \ + echo "-r -p \ + -lg$(LANGUAGE) \ + -fs=$@ \ + -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/$(LIBRARY)) \ + -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/imglst/$(LANGUAGE)) \ + -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/imglst) \ + -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/res/$(LANGUAGE)) \ + -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/res) \ + -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)) \ + -lip=$(gb_ResTarget_DEFIMAGESLOCATION)res/$(LANGUAGE) \ + -lip=$(gb_ResTarget_DEFIMAGESLOCATION)res \ + -subMODULE=$(dir $(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION))) \ + -subGLOBALRES=$(gb_ResTarget_DEFIMAGESLOCATION)res \ + -oil=$(dir $(call gb_ResTarget_get_imagelist_target,$*)) \ + $(filter-out $(gb_Helper_MISCDUMMY),$^)" > $${RESPONSEFILE} && \ + $(gb_ResTarget_RSCCOMMAND) @$${RESPONSEFILE} && \ + rm -f $${RESPONSEFILE}) + +$(call gb_ResTarget_get_outdir_target,%) : + $(call gb_Helper_abbreviate_dirs,\ + $(call gb_Deliver_deliver,$<,$@) && \ + $(call gb_Deliver_deliver,$(dir $<)/$(notdir $(ILSTTARGET)),$(ILSTTARGET))) + +define gb_ResTarget_ResTarget +$(call gb_ResTarget_get_target,$(1)) : LIBRARY = $(2) +$(call gb_ResTarget_get_target,$(1)) : LANGUAGE = $(3) +$(call gb_ResTarget_get_target,$(1)) : RESLOCATION = $(2) +$(call gb_AllLangResTarget_get_target,$(2)) : $(call gb_ResTarget_get_outdir_target,$(1)) +$(call gb_AllLangResTarget_get_clean_target,$(2)) : $(call gb_ResTarget_get_clean_target,$(1)) +$(call gb_ResTarget_get_imagelist_target,$(1)) : $(call gb_ResTarget_get_target,$(1)) + +$(call gb_ResTarget_get_outdir_target,$(1)) : $(call gb_ResTarget_get_target,$(1)) +$(call gb_ResTarget_get_outdir_target,$(1)) : ILSTTARGET = $(call gb_ResTarget_get_outdir_imagelist_target,$(1)) +$(call gb_Deliver_add_deliverable,$(call gb_ResTarget_get_outdir_target,$(1)),$(call gb_ResTarget_get_target,$(1))) +$(call gb_Deliver_add_deliverable,$(call gb_ResTarget_get_outdir_imagelist_target,$(1)),$(call gb_ResTarget_get_imagelist_target,$(1))) + +endef + +define gb_ResTarget_add_file +$(call gb_ResTarget_get_target,$(1)) : $(2) + +endef + +define gb_ResTarget_add_one_srs +$(call gb_ResTarget_add_file,$(1),$(call gb_SrsTarget_get_target,$(2))) +$(call gb_ResTarget_get_clean_target,$(1)) : $(call gb_SrsTarget_get_clean_target,$(2)) + +endef + +define gb_ResTarget_add_files +$(foreach file,$(2),\ + $(call gb_ResTarget_add_file,$(1),$(file))) + +endef + +define gb_ResTarget_add_srs +$(foreach srs,$(2),\ + $(call gb_ResTarget_add_one_srs,$(1),$(srs))) + +endef + +define gb_ResTarget_set_reslocation +$(call gb_ResTarget_get_target,$(1)) : RESLOCATION = $(2) + +endef + + +# AllLangResTarget + +gb_AllLangResTarget_LANGS := en-US $(filter-out en-US,$(gb_WITH_LANG)) + +define gb_AllLangResTarget_set_langs +gb_AllLangResTarget_LANGS := $(1) +endef + +$(call gb_AllLangResTarget_get_clean_target,%) : + $(call gb_Helper_abbreviate_dirs,\ + rm -f $(call gb_AllLangResTarget_get_target,$*)) + +$(call gb_AllLangResTarget_get_target,%) : + $(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $@) && touch $@) + +define gb_AllLangResTarget_AllLangResTarget +$(foreach lang,$(gb_AllLangResTarget_LANGS),\ + $(call gb_ResTarget_ResTarget,$(1)$(lang),$(1),$(lang))) +$$(eval $$(call gb_Module_register_target,$(call gb_AllLangResTarget_get_target,$(1)),$(call gb_AllLangResTarget_get_clean_target,$(1)))) + +endef + +define gb_AllLangResTarget_add_one_srs +$(foreach lang,$(gb_AllLangResTarget_LANGS),\ + $(call gb_ResTarget_add_one_srs,$(1)$(lang),$(2))) + +endef + +define gb_AllLangResTarget_add_srs +$(foreach srs,$(2),\ + $(call gb_AllLangResTarget_add_one_srs,$(1),$(srs))) + +endef + +define gb_AllLangResTarget_set_reslocation +$(foreach lang,$(gb_AllLangResTarget_LANGS),\ + $(call gb_ResTarget_set_reslocation,$(1)$(lang),$(2))) + +endef + +# vim: set noet sw=4: diff --git a/solenv/gbuild/BuildDirs.mk b/solenv/gbuild/BuildDirs.mk new file mode 100644 index 000000000000..a8a823b2406f --- /dev/null +++ b/solenv/gbuild/BuildDirs.mk @@ -0,0 +1,59 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +# extend for JDK include (seems only needed in setsolar env?) +SOLARINC += $(JDKINCS) + +OUTDIR := $(SOLARVERSION)/$(INPATH) +WORKDIR := $(SOLARVERSION)/$(INPATH)/workdir + +# Override for SetupLocal +ifneq ($(and $(gb_LOCALBUILDDIR),$(wildcard $(gb_LOCALBUILDDIR)/SetupLocal.mk)),) +include $(gb_LOCALBUILDDIR)/SetupLocal.mk +endif + +ifeq ($(strip $(gb_REPOS)),) +gb_REPOS := $(SOLARSRC) +endif + +# HACK +# unixify windoze paths +ifeq ($(OS),WNT) +override WORKDIR := $(shell cygpath -u $(WORKDIR)) +override OUTDIR := $(shell cygpath -u $(OUTDIR)) +override gb_REPOS := $(shell cygpath -u $(gb_REPOS)) +endif + +REPODIR := $(patsubst %/,%,$(dir $(firstword $(gb_REPOS)))) + +ifeq ($(filter setuplocal removelocal,$(MAKECMDGOALS)),) +ifneq ($(filter-out $(foreach repo,$(gb_REPOS),$(realpath $(repo))/%),$(realpath $(firstword $(MAKEFILE_LIST)))),) +$(eval $(call gb_Output_error,The initial makefile $(realpath $(firstword $(MAKEFILE_LIST))) is not in the repositories $(foreach repo,$(gb_REPOS),$(realpath $(repo))).,ALL)) +endif +endif + +# vim: set noet sw=4: diff --git a/solenv/gbuild/ComponentTarget.mk b/solenv/gbuild/ComponentTarget.mk new file mode 100644 index 000000000000..504bd5a64930 --- /dev/null +++ b/solenv/gbuild/ComponentTarget.mk @@ -0,0 +1,69 @@ +#************************************************************************* +# +# 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_ComponentTarget_REPOS := $(gb_REPOS) + +gb_ComponentTarget_XSLTCOMMANDFILE := $(SOLARENV)/bin/createcomponent.xslt +gb_ComponentTarget_get_source = $(1)/$(2).component + +define gb_ComponentTarget__command +$(call gb_Output_announce,$(3),$(true),CMP,1) +$(call gb_Helper_abbreviate_dirs_native,\ + mkdir -p $(dir $(1)) && \ + $(gb_XSLTPROC) --nonet --stringparam uri \ + '$(subst \d,$$,$(COMPONENTPREFIX))$(LIBFILENAME)' -o $(1) \ + $(gb_ComponentTarget_XSLTCOMMANDFILE) $(realpath $(2))) + +endef + +define gb_ComponentTarget__rules +$$(call gb_ComponentTarget_get_target,%) : $$(call gb_ComponentTarget_get_source,$(1),%) | $(gb_XSLTPROCTARGET) + $$(call gb_ComponentTarget__command,$$@,$$<,$$*) + +$$(call gb_ComponentTarget_get_clean_target,%) : + $$(call gb_Output_announce,$$*,$(false),CMP,1) + rm -f $$(call gb_ComponentTarget_get_outdir_target,$$*) $$(call gb_ComponentTarget_get_target,$$*) + +endef + +$(foreach repo,$(gb_ComponentTarget_REPOS),$(eval $(call gb_ComponentTarget__rules,$(repo)))) + +$(call gb_ComponentTarget_get_target,%) : + $(eval $(call gb_Outpt_error,Unable to find component file $(call gb_ComponentTarget_get_source,,$*) in the repositories: $(gb_ComponentTarget_REPOS) or xlstproc is missing.)) + +$(call gb_ComponentTarget_get_external_target,%) : + $(call gb_Deliver_deliver,$<,$@) + +define gb_ComponentTarget_ComponentTarget +$(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))) + +endef + +# vim: set noet sw=4: diff --git a/solenv/gbuild/CppunitTest.mk b/solenv/gbuild/CppunitTest.mk new file mode 100644 index 000000000000..cb7cbba227d5 --- /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,cppunit/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: diff --git a/solenv/gbuild/CustomTarget.mk b/solenv/gbuild/CustomTarget.mk new file mode 100644 index 000000000000..97be0f20a68b --- /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: diff --git a/solenv/gbuild/Deliver.mk b/solenv/gbuild/Deliver.mk new file mode 100644 index 000000000000..d395c8690f6b --- /dev/null +++ b/solenv/gbuild/Deliver.mk @@ -0,0 +1,95 @@ +#************************************************************************* +# +# 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_Deliver_GNUCOPY := $(GNUCOPY) + +# if ($true) then old files will get removed from the target location before +# they are copied there. In multi-user environments, this is needed you need to +# be the owner of the target file to be able to modify timestamps +gb_Deliver_CLEARONDELIVER := $(true) + +define gb_Deliver_init +gb_Deliver_DELIVERABLES := + +endef + +define gb_Deliver_add_deliverable +gb_Deliver_DELIVERABLES += $$(patsubst $(REPODIR)/%,%,$(2)):$$(patsubst $(REPODIR)/%,%,$(1)) +$(if $(gb_LOWRESTIME),.LOW_RESOLUTION_TIME : $(1),) + +endef + +ifeq ($(strip $(gb_Deliver_GNUCOPY)),) +define gb_Deliver_deliver +mkdir -p $(dir $(2)) && $(if $(gb_Deliver_CLEARONDELIVER),rm -f $(2) &&) cp -f $(1) $(2) && touch -r $(1) $(2) +endef +else +define gb_Deliver_deliver +mkdir -p $(dir $(2)) && $(gb_Deliver_GNUCOPY) $(if $(gb_Deliver_CLEARONDELIVER),--remove-destination) --force --preserve=timestamps $(1) $(2) +endef +endif + + +# We are currently only creating a deliver.log, if only one module gets build. +# As it is possible to add gbuild modules into other (which is done for example for +# the toplevel ooo module already) it does not make sense to create a deliver.log once +# fully migrated. The whole process should be rethought then. +# We need the trailing whitespace so that the newline of echo does not become part of the last record. +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)) \ + && 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 +endif +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 showdeliverables +deliverlog: + $(eval $(call gb_Deliver_setdeliverlogcommand)) + $(call gb_Helper_abbreviate_dirs, $(COMMAND)) + +# 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: diff --git a/solenv/gbuild/Executable.mk b/solenv/gbuild/Executable.mk new file mode 100644 index 000000000000..90519f91b382 --- /dev/null +++ b/solenv/gbuild/Executable.mk @@ -0,0 +1,91 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +# Executable class + +# defined by platform +# gb_Executable_Executable_platform + +.PHONY : $(call gb_Executable_get_clean_target,%) +$(call gb_Executable_get_clean_target,%) : + $(call gb_Helper_abbreviate_dirs,\ + rm -f $(call gb_Executable_get_target,$*) \ + $(AUXTARGETS)) + +$(call gb_Executable_get_target,%) : + $(call gb_Helper_abbreviate_dirs,\ + $(call gb_Deliver_deliver,$<,$@) \ + $(foreach target,$(AUXTARGETS), && $(call gb_Deliver_deliver,$(dir $<)/$(notdir $(target)),$(target)))) + +define gb_Executable_Executable +$(call gb_Executable__Executable_impl,$(1),Executable/$(1)$(gb_Executable_EXT)) + +endef + +define gb_Executable__Executable_impl +$(call gb_LinkTarget_LinkTarget,$(2)) +$(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)) +$$(eval $$(call gb_Module_register_target,$(call gb_Executable_get_target,$(1)),$(call gb_Executable_get_clean_target,$(1)))) +$(call gb_Deliver_add_deliverable,$(call gb_Executable_get_target,$(1)),$(call gb_LinkTarget_get_target,$(2))) + +endef + +define gb_Executable_forward_to_Linktarget +gb_Executable_$(1) = $$(call gb_LinkTarget_$(1),Executable/$$(1)$$(gb_Executable_EXT),$$(2),$$(3)) + +endef + +$(eval $(foreach method,\ + add_cobject \ + add_cobjects \ + add_cxxobject \ + add_cxxobjects \ + add_objcxxobject \ + add_objcxxobjects \ + add_exception_objects \ + add_noexception_objects \ + add_generated_exception_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_Executable_forward_to_Linktarget,$(method))\ +)) + +# vim: set noet sw=4: diff --git a/solenv/gbuild/Helper.mk b/solenv/gbuild/Helper.mk new file mode 100644 index 000000000000..dace86794c28 --- /dev/null +++ b/solenv/gbuild/Helper.mk @@ -0,0 +1,175 @@ +# -*- Mode: GNUmakefile; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +#************************************************************************* +# +# 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_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 $@ + +define gb_Helper_abbreviate_dirs +R=$(REPODIR) && \ +$(subst $(REPODIR)/,$$R/,S=$(SRCDIR) && \ +$(subst $(SRCDIR)/,$$S/,O=$(OUTDIR)) && \ +$(subst $(SRCDIR)/,$$S/,$(subst $(OUTDIR)/,$$O/,W=$(WORKDIR) && $(subst $(WORKDIR)/,$$W/,$(1))))) +endef + +define gb_Helper_make_clean_target +gb_$(1)_get_clean_target = $(WORKDIR)/Clean/$(1)/$$(1) + +endef + +define gb_Helper_make_outdir_clean_target +gb_$(1)_get_clean_target = $$(subst $(OUTDIR)/,$(WORKDIR)/Clean/OutDir/,$$(call gb_$(1)_get_target,$$(1))) + +endef + +define gb_Helper_make_dep_target +gb_$(1)_get_dep_target = $(WORKDIR)/Dep/$(1)/$$(1).d + +endef + +define gb_Helper_make_clean_targets +$(foreach targettype,$(1),\ + $(call gb_Helper_make_clean_target,$(targettype))) + +endef + +define gb_Helper_make_outdir_clean_targets +$(foreach targettype,$(1),\ + $(call gb_Helper_make_outdir_clean_target,$(targettype))) + +endef + +define gb_Helper_make_dep_targets +$(foreach targettype,$(1),\ + $(call gb_Helper_make_dep_target,$(targettype))) + +endef + +define gb_Helper_get_outdir_clean_target +$$(subst $(OUTDIR)/,$(WORKDIR)/Clean/OutDir/,$(1)) +endef + +define gb_Helper_register_repository +gb_Helper_CURRENTREPOSITORY := $(1) +gb_Helper_REPOSITORYNAMES += $(1) + +endef + +define gb_Helper_add_repository +gb_Helper_CURRENTREPOSITORY := +include $(1)/Repository.mk +ifeq ($$(gb_Helper_CURRENTREPOSITORY),) +$$(eval $$(call gb_Output_error,No call to gb_Helper_register_repository in Repository.mk for repository $(1))) +endif +$$(gb_Helper_CURRENTREPOSITORY) := $(1) + +endef + +define gb_Helper_add_repositories +$(foreach repo,$(1),$(call gb_Helper_add_repository,$(repo))) + +endef + +define gb_Helper_init_registries +gb_Executable_VALIDGROUPS := UREBIN SDK OOO BRAND NONE +gb_Library_VALIDGROUPS := OOOLIBS PLAINLIBS_NONE PLAINLIBS_URE PLAINLIBS_OOO RTLIBS RTVERLIBS UNOLIBS_URE UNOLIBS_OOO UNOVERLIBS +gb_StaticLibrary_VALIDGROUPS := PLAINLIBS + +$$(foreach group,$$(gb_Executable_VALIDGROUPS),$$(eval gb_Executable_$$(group) :=)) +$$(foreach group,$$(gb_Library_VALIDGROUPS),$$(eval gb_Library_$$(group) :=)) +$$(foreach group,$$(gb_StaticLibrary_VALIDGROUPS),$$(eval gb_StaticLibrary_$$(group) :=)) + +endef + +define gb_Helper_collect_libtargets +gb_Library_TARGETS := $$(foreach group,$$(gb_Library_VALIDGROUPS),$$(gb_Library_$$(group))) +gb_StaticLibrary_TARGETS := $$(foreach group,$$(gb_StaticLibrary_VALIDGROUPS),$$(gb_StaticLibrary_$$(group))) + +endef + +define gb_Helper_collect_knownlibs +gb_Library_KNOWNLIBS := $$(foreach group,$$(gb_Library_VALIDGROUPS),$$(gb_Library_$$(group))) +gb_StaticLibrary_KNOWNLIBS := $$(foreach group,$$(gb_StaticLibrary_VALIDGROUPS),$$(gb_StaticLibrary_$$(group))) + +endef + +define gb_Helper_register_executables +ifeq ($$(filter $(1),$$(gb_Executable_VALIDGROUPS)),) +$$(eval $$(call gb_Output_error,$(1) is not a valid group for executables. Valid groups are: $$(gb_Executable_VALIDGROUPS))) +endif + +gb_Executable_$(1) += $(2) + +endef + +define gb_Helper_register_libraries +ifeq ($$(filter $(1),$$(gb_Library_VALIDGROUPS)),) +$$(eval $$(call gb_Output_error,$(1) is not a valid group for libraries. Valid groups are: $$(gb_Library_VALIDGROUPS))) +endif + +gb_Library_$(1) += $(2) + +endef + +define gb_Helper_register_static_libraries +ifeq ($$(filter $(1),$$(gb_StaticLibrary_VALIDGROUPS)),) +$$(eval $$(call gb_Output_error,$(1) is not a valid group for static libraries. Valid groups are: $$(gb_StaticLibrary_VALIDGROUPS))) +endif + +gb_StaticLibrary_$(1) += $(2) + +endef + +define gb_Helper_execute +$(call gb_Helper_set_ld_path) $(OUTDIR)/bin/$(1) +endef + +export gb_Helper_set_ld_path +export gb_Helper_execute + +# vim: set noet sw=4 ts=4: diff --git a/solenv/gbuild/JavaClassSet.mk b/solenv/gbuild/JavaClassSet.mk new file mode 100644 index 000000000000..33d3b32265a6 --- /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: diff --git a/solenv/gbuild/JunitTest.mk b/solenv/gbuild/JunitTest.mk new file mode 100644 index 000000000000..7334cdf4d5d4 --- /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: diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk new file mode 100644 index 000000000000..3c8d2f5def81 --- /dev/null +++ b/solenv/gbuild/Library.mk @@ -0,0 +1,133 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + + +# Library class + +# 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_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_Helper_abbreviate_dirs,\ + rm -f $(OUTDIR)/lib/$*$(gb_Library_PLAINEXT) \ + $(AUXTARGETS)) + +# EVIL: gb_StaticLibrary and gb_Library need the same deliver rule because they are indistinguishable on windows +$(gb_Library_OUTDIRLOCATION)/%$(gb_Library_PLAINEXT) : + $(call gb_Helper_abbreviate_dirs,\ + $(call gb_Deliver_deliver,$<,$@) \ + $(foreach target,$(AUXTARGETS), && $(call gb_Deliver_deliver,$(dir $<)/$(notdir $(target)),$(target)))) + +define gb_Library_Library +ifeq (,$$(findstring $(1),$$(gb_Library_KNOWNLIBS))) +$$(eval $$(call gb_Output_info,Currently known libraries are: $(sort $(gb_Library_KNOWNLIBS)),ALL)) +$$(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,$(1))) + +endef + +define gb_Library__Library_impl +$(call gb_LinkTarget_LinkTarget,$(2)) +$(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))) + +endef + +define gb_Library_set_componentfile +$(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,$$(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 \ + add_cxxobject \ + add_cxxobjects \ + add_objcxxobject \ + add_objcxxobjects \ + add_exception_objects \ + add_noexception_objects \ + add_generated_exception_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_Library__forward_to_Linktarget,$(method))\ +)) + +# vim: set noet sw=4: diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk new file mode 100644 index 000000000000..3517200cf46e --- /dev/null +++ b/solenv/gbuild/LinkTarget.mk @@ -0,0 +1,641 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + + +# CObject class + +gb_CObject_REPOS := $(gb_REPOS) + +gb_CObject_get_source = $(1)/$(2).c +# defined by platform +# gb_CObject__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_CObject__command_dep +mkdir -p $(dir $(1)) && \ + echo '$(call gb_CObject_get_target,$(2)) : $$(gb_Helper_PHONY)' > $(1) + +endef +else +gb_CObject__command_dep = +endif + +define gb_CObject__rules +$$(call gb_CObject_get_target,%) : $$(call gb_CObject_get_source,$(1),%) + $$(call gb_CObject__command,$$@,$$*,$$<,$$(DEFS),$$(CFLAGS),$$(INCLUDE)) + +ifeq ($(gb_FULLDEPS),$(true)) +$$(call gb_CObject_get_dep_target,%) : $$(call gb_CObject_get_source,$(1),%) + $$(call gb_CObject__command_dep,$$@,$$*,$$<,$$(DEFS),$$(CFLAGS),$$(INCLUDE)) +endif + +endef + +$(foreach repo,$(gb_CObject_REPOS),$(eval $(call gb_CObject__rules,$(repo)))) + +$(call gb_CObject_get_dep_target,%) : + $(eval $(call gb_Output_error,Unable to find plain C file $(call gb_CObject_get_source,,$*) in the repositories: $(gb_CObject_REPOS))) + +gb_CObject_CObject = + + +# CxxObject class + +gb_CxxObject_REPOS := $(gb_REPOS) + +gb_CxxObject_get_source = $(1)/$(2).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_CxxObject__command_dep +mkdir -p $(dir $(1)) && \ + echo '$(call gb_CxxObject_get_target,$(2)) : $$(gb_Helper_PHONY)' > $(1) + +endef +else +gb_CxxObject__command_dep = +endif + +# Only enable PCH if the PCH_CXXFLAGS and the PCH_DEFS (from the linktarget) +# are the same as the CXXFLAGS and DEFS we want to use for this object. This +# should usually be the case. The DEFS/CXXFLAGS would have too be manually +# overridden for one object file for them to differ. PCH_CXXFLAGS/PCH_DEFS +# should never be overridden on an object -- they should be the same as for the +# whole linktarget. In general it should be cleaner to use a static library +# compiled with different flags and link that in rather than mixing different +# flags in one linktarget. +define gb_CxxObject__set_pchflags +ifeq ($(gb_ENABLE_PCH),$(true)) +ifneq ($(strip $$(PCH_NAME)),) +ifeq ($$(sort $$(PCH_CXXFLAGS) $$(PCH_DEFS) $$(gb_LinkTarget_EXCEPTIONFLAGS)),$$(sort $$(CXXFLAGS) $$(DEFS))) +$$@ : PCHFLAGS := $$(call gb_PrecompiledHeader_get_enableflags,$$(PCH_NAME)) +else +ifeq ($$(sort $$(PCH_CXXFLAGS) $$(PCH_DEFS) $$(gb_LinkTarget_NOEXCEPTIONFLAGS)),$$(sort $$(CXXFLAGS) $$(DEFS))) +$$@ : PCHFLAGS := $$(call gb_NoexPrecompiledHeader_get_enableflags,$$(PCH_NAME)) +else +$$(info No precompiled header available for $$*.) +$$(info precompiled header flags ( ex) : $$(sort $$(PCH_CXXFLAGS) $$(PCH_DEFS) $$(gb_LinkTarget_EXCEPTIONFLAGS))) +$$(info precompiled header flags (noex) : $$(sort $$(PCH_CXXFLAGS) $$(PCH_DEFS) $$(gb_LinkTarget_NOEXCEPTIONFLAGS))) +$$(info . object flags : $$(sort $$(CXXFLAGS) $$(DEFS))) +$$@ : PCHFLAGS := +endif +endif +endif +endif +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,$$@,$$*,$$<) + +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,$$@,$$*,$$<) +endif + +endef + +$(foreach repo,$(gb_CxxObject_REPOS),$(eval $(call gb_CxxObject__rules,$(repo)))) + +ifeq ($(gb_FULLDEPS),$(true)) +$(call gb_CxxObject_get_dep_target,%) : + $(eval $(call gb_Output_error,Unable to find C++ file $(call gb_CxxObject_get_source,,$*) in repositories: $(gb_CxxObject_REPOS))) + +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) + +gb_ObjCxxObject_get_source = $(1)/$(2).mm +# defined by platform +# gb_ObjCxxObject__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_ObjCxxObject__command_dep +mkdir -p $(dir $(1)) && \ + echo '$(call gb_ObjCxxObject_get_target,$(2)) : $$(gb_Helper_PHONY)' > $(1) + +endef +else +gb_ObjCxxObject__command_dep = +endif + +define gb_ObjCxxObject__rules +$$(call gb_ObjCxxObject_get_target,%) : $$(call gb_ObjCxxObject_get_source,$(1),%) + $$(call gb_ObjCxxObject__command,$$@,$$*,$$<,$$(DEFS),$$(OBJCXXFLAGS),$$(INCLUDE_STL) $$(INCLUDE)) + +ifeq ($(gb_FULLDEPS),$(true)) +$$(call gb_ObjCxxObject_get_dep_target,%) : $$(call gb_ObjCxxObject_get_source,$(1),%) + $$(call gb_ObjCxxObject__command_dep,$$@,$$*,$$<,$$(DEFS),$$(OBJCXXFLAGS),$$(INCLUDE_STL) $$(INCLUDE)) +endif + +endef + +$(foreach repo,$(gb_ObjCxxObject_REPOS),$(eval $(call gb_ObjCxxObject__rules,$(repo)))) + +ifeq ($(gb_FULLDEPS),$(true)) +$(call gb_ObjCxxObject_get_dep_target,%) : + $(eval $(call gb_Output_error,Unable to find Objective C++ file $(call gb_ObjCxxObject_get_source,,$*) in repositories: $(gb_ObjCxxObject_REPOS))) +endif + +gb_ObjCxxObject_ObjCxxObject = + + + +# LinkTarget class + +gb_LinkTarget_DEFAULTDEFS := $(gb_GLOBALDEFS) +# defined by platform +# gb_LinkTarget_CXXFLAGS +# gb_LinkTarget_LDFLAGS +# gb_LinkTarget_INCLUDE +# gb_LinkTarget_INCLUDE_STL + +.PHONY : $(call gb_LinkTarget_get_clean_target,%) +$(call gb_LinkTarget_get_clean_target,%) : + $(call gb_Output_announce,$*,$(false),LNK,4) + 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)) && \ + 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)))\ + $(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,$@,$*) + +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),$(GENCXXOBJECTS)) +endif + +# Ok, this is some dark voodoo: When declaring a linktarget with +# gb_LinkTarget_LinkTarget we set SELF in the headertarget to name of the +# target. When the rule for the headertarget is executed and SELF does not +# match the target name, we are depending on a linktarget that was never +# declared. In a full build exclusively in gbuild that should never happen. +# However, partial gbuild build will not know about how to build lower level +# linktargets, just as gbuild can not know about linktargets generated in the +# old build.pl/dmake system. Once all is migrated, gbuild should error out +# when is is told to depend on a linktarget it does not know about and not +# only warn. +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 $$@ && mkdir -p $(call gb_LinkTarget_get_target,)pdb/$$(dir $$*)) + +endef + +$(call gb_LinkTarget_get_external_headers_target,%) : + $(eval $(gb_LinkTarget__get_external_headers_check)) + $(COMMAND) + +$(call gb_LinkTarget_get_headers_target,%) : $(call gb_LinkTarget_get_external_headers_target,%) + $(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $@) && touch $@) + +# Explanation of some of the targets: +# - gb_LinkTarget_get_external_headers_target is the targets that guarantees all +# headers from linked against libraries are in OUTDIR. +# - gb_LinkTarget_get_headers_target is the target that guarantees all headers +# from the linked against the libraries and the linktargets own headers +# (including generated headers) are in the OUTDIR. +# - gb_LinkTarget_get_target links the objects into a file in WORKDIR. +# gb_LinkTarget_get_target depends on gb_LinkTarget_get_headers_target which in +# turn depends gb_LinkTarget_get_external_headers_target. +# gb_LinkTarget_get_target depends additionally on the objects, which in turn +# depend build-order only on the gb_LinkTarget_get_headers_target. The build +# order-only dependency ensures all headers to be there for compiling and +# dependency generation without causing all objects to be rebuild when one +# header changes. Only the ones with an explicit dependency in their generated +# dependency file will be rebuild. +# +# gb_LinkTarget_get_target is the target that links the objects into a file in +# WORKDIR +# Explanation of some of the variables: +# - AUXTARGETS are the additionally generated files that need to be cleaned out +# on clean. +# - 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. +# - 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. +# Therefore it is important that objects are only directly depended on by the +# linktarget. This for example means that you cannot build a single object +# alone, because then you would directly depend on the object. +define gb_LinkTarget_LinkTarget +$(call gb_LinkTarget_get_clean_target,$(1)) : AUXTARGETS := +$(call gb_LinkTarget_get_external_headers_target,$(1)) : SELF := $(1) +$(call gb_LinkTarget_get_target,$(1)) : DLLTARGET := +$(call gb_LinkTarget_get_clean_target,$(1)) \ +$(call gb_LinkTarget_get_target,$(1)) : COBJECTS := +$(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) $(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) +$(call gb_LinkTarget_get_headers_target,$(1)) \ +$(call gb_LinkTarget_get_target,$(1)) : PCH_DEFS := $$(gb_LinkTarget_DEFAULTDEFS) +$(call gb_LinkTarget_get_headers_target,$(1)) \ +$(call gb_LinkTarget_get_target,$(1)) : INCLUDE := $$(gb_LinkTarget_INCLUDE) +$(call gb_LinkTarget_get_headers_target,$(1)) \ +$(call gb_LinkTarget_get_target,$(1)) : INCLUDE_STL := $$(gb_LinkTarget_INCLUDE_STL) +$(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 := +$(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))),) +include $(call gb_LinkTarget_get_dep_target,$(1)) +else +$(firstword $(MAKEFILE_LIST)) : $(call gb_LinkTarget_get_dep_target,$(1)) +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) $(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 := +$(call gb_LinkTarget_get_dep_target,$(1)) : PCH_NAME := +endif + +endef + +define gb_LinkTarget_set_defs +$(call gb_LinkTarget_get_headers_target,$(1)) \ +$(call gb_LinkTarget_get_target,$(1)) : DEFS := $(2) +$(call gb_LinkTarget_get_headers_target,$(1)) \ +$(call gb_LinkTarget_get_target,$(1)) : PCH_DEFS := $(2) + +ifeq ($(gb_FULLDEPS),$(true)) +$(call gb_LinkTarget_get_dep_target,$(1)) : DEFS := $(2) +$(call gb_LinkTarget_get_dep_target,$(1)) : PCH_DEFS := $(2) +endif + +endef + +define gb_LinkTarget_set_cflags +$(call gb_LinkTarget_get_target,$(1)) : CFLAGS := $(2) +ifeq ($(gb_FULLDEPS),$(true)) +$(call gb_LinkTarget_get_dep_target,$(1)) : CFLAGS := $(2) +endif + +endef + +define gb_LinkTarget_set_cxxflags +$(call gb_LinkTarget_get_headers_target,$(1)) \ +$(call gb_LinkTarget_get_target,$(1)) : CXXFLAGS := $(2) +$(call gb_LinkTarget_get_headers_target,$(1)) \ +$(call gb_LinkTarget_get_target,$(1)) : PCH_CXXFLAGS := $(2) +ifeq ($(gb_FULLDEPS),$(true)) +$(call gb_LinkTarget_get_dep_target,$(1)) : CXXFLAGS := $(2) +$(call gb_LinkTarget_get_dep_target,$(1)) : PCH_CXXFLAGS := $(2) +endif + +endef + +define gb_LinkTarget_set_objcxxflags +$(call gb_LinkTarget_get_target,$(1)) : OBJCXXFLAGS := $(2) +ifeq ($(gb_FULLDEPS),$(true)) +$(call gb_LinkTarget_get_dep_target,$(1)) : OBJCXXFLAGS := $(2) +endif + +endef + +define gb_LinkTarget_set_include +$(call gb_LinkTarget_get_headers_target,$(1)) \ +$(call gb_LinkTarget_get_target,$(1)) : INCLUDE := $(2) +ifeq ($(gb_FULLDEPS),$(true)) +$(call gb_LinkTarget_get_dep_target,$(1)) : INCLUDE := $(2) +endif + +endef + +define gb_LinkTarget_set_include_stl +$(call gb_LinkTarget_get_headers_target,$(1)) \ +$(call gb_LinkTarget_get_target,$(1)) : INCLUDE_STL := $(2) +ifeq ($(gb_FULLDEPS),$(true)) +$(call gb_LinkTarget_get_dep_target,$(1)) : INCLUDE_STL := $(2) +endif + +endef + +define gb_LinkTarget_set_ldflags +$(call gb_LinkTarget_get_target,$(1)) : LDFLAGS := $(2) +endef + +define gb_LinkTarget_add_linked_libs +ifneq (,$$(filter-out $(gb_Library_KNOWNLIBS),$(2))) +$$(eval $$(call gb_Output_info,currently known libraries are: $(sort $(gb_Library_KNOWNLIBS)),ALL)) +$$(eval $$(call gb_Output_error,Cannot link against library/libraries $$(filter-out $(gb_Library_KNOWNLIBS),$(2)). Libraries must be registered in Repository.mk)) +endif + +$(call gb_LinkTarget_get_target,$(1)) : LINKED_LIBS += $(2) + +$(call gb_LinkTarget_get_target,$(1)) : $$(foreach lib,$(2),$$(call gb_Library_get_target,$$(lib))) +$(call gb_LinkTarget_get_external_headers_target,$(1)) : \ +$$(foreach lib,$(2),$$(call gb_Library_get_headers_target,$$(lib))) + +endef + +define gb_LinkTarget_add_linked_static_libs +ifneq (,$$(filter-out $(gb_StaticLibrary_KNOWNLIBS),$(2))) +$$(eval $$(call gb_Output_info, currently known static libraries are: $(sort $(gb_StaticLibrary_KNOWNLIBS)),ALL)) +$$(eval $$(call gb_Output_error,Cannot link against static library/libraries $$(filter-out $(gb_StaticLibrary_KNOWNLIBS),$(2)). Static libraries must be registered in Repository.mk)) +endif + +$(call gb_LinkTarget_get_target,$(1)) : LINKED_STATIC_LIBS += $(2) + +$(call gb_LinkTarget_get_target,$(1)) : $$(foreach lib,$(2),$$(call gb_StaticLibrary_get_target,$$(lib))) +$(call gb_LinkTarget_get_external_headers_target,$(1)) : \ +$$(foreach lib,$(2),$$(call gb_StaticLibrary_get_headers_target,$$(lib))) + +endef + +define gb_LinkTarget_add_cobject +$(call gb_LinkTarget_get_target,$(1)) : COBJECTS += $(2) +$(call gb_LinkTarget_get_clean_target,$(1)) : COBJECTS += $(2) + +$(call gb_LinkTarget_get_target,$(1)) : $(call gb_CObject_get_target,$(2)) +$(call gb_CObject_get_target,$(2)) : | $(call gb_LinkTarget_get_headers_target,$(1)) +$(call gb_CObject_get_target,$(2)) : CFLAGS += $(3) + +ifeq ($(gb_FULLDEPS),$(true)) +$(call gb_LinkTarget_get_dep_target,$(1)) : COBJECTS += $(2) +$(call gb_LinkTarget_get_dep_target,$(1)) : $(call gb_CObject_get_dep_target,$(2)) +endif + +endef + +define gb_LinkTarget_add_cxxobject +$(call gb_LinkTarget_get_target,$(1)) : CXXOBJECTS += $(2) +$(call gb_LinkTarget_get_clean_target,$(1)) : CXXOBJECTS += $(2) + +$(call gb_LinkTarget_get_target,$(1)) : $(call gb_CxxObject_get_target,$(2)) +$(call gb_CxxObject_get_target,$(2)) : | $(call gb_LinkTarget_get_headers_target,$(1)) +$(call gb_CxxObject_get_target,$(2)) : CXXFLAGS += $(3) + +ifeq ($(gb_FULLDEPS),$(true)) +$(call gb_LinkTarget_get_dep_target,$(1)) : CXXOBJECTS += $(2) +$(call gb_LinkTarget_get_dep_target,$(1)) : $(call gb_CxxObject_get_dep_target,$(2)) +endif + +endef + +define gb_LinkTarget_add_objcxxobject +$(call gb_LinkTarget_get_target,$(1)) : OBJCXXOBJECTS += $(2) +$(call gb_LinkTarget_get_clean_target,$(1)) : OBJCXXOBJECTS += $(2) + +$(call gb_LinkTarget_get_target,$(1)) : $(call gb_ObjCxxObject_get_target,$(2)) +$(call gb_ObjCxxObject_get_target,$(2)) : | $(call gb_LinkTarget_get_headers_target,$(1)) +$(call gb_ObjCxxObject_get_target,$(2)) : OBJCXXFLAGS += $(3) + +ifeq ($(gb_FULLDEPS),$(true)) +$(call gb_LinkTarget_get_dep_target,$(1)) : OBJCXXOBJECTS += $(2) +$(call gb_LinkTarget_get_dep_target,$(1)) : $(call gb_ObjCxxObject_get_dep_target,$(2)) +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) $(gb_COMPILEROPTFLAGS)) +endef + +define gb_LinkTarget_add_exception_object +$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_EXCEPTIONFLAGS) $(gb_COMPILEROPTFLAGS)) +endef + +define gb_LinkTarget_add_cobjects +$(foreach obj,$(2),$(call gb_LinkTarget_add_cobject,$(1),$(obj),$(3))) +endef + +define gb_LinkTarget_add_cxxobjects +$(foreach obj,$(2),$(call gb_LinkTarget_add_cxxobject,$(1),$(obj),$(3))) +endef + +define gb_LinkTarget_add_objcxxobjects +$(foreach obj,$(2),$(call gb_LinkTarget_add_objcxxobject,$(1),$(obj),$(3))) +endef + +define gb_LinkTarget_add_noexception_objects +$(foreach obj,$(2),$(call gb_LinkTarget_add_noexception_object,$(1),$(obj))) +endef + +define gb_LinkTarget_add_exception_objects +$(foreach obj,$(2),$(call gb_LinkTarget_add_exception_object,$(1),$(obj))) +endef + +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 := $(2) +endef + +define gb_LinkTarget_set_dlltarget +$(call gb_LinkTarget_get_clean_target,$(1)) \ +$(call gb_LinkTarget_get_target,$(1)) : DLLTARGET := $(2) +endef + +define gb_LinkTarget_set_auxtargets +$(call gb_LinkTarget_get_clean_target,$(1)) : AUXTARGETS := $(2) +endef + +define gb_LinkTarget__add_internal_headers +$(call gb_LinkTarget_get_headers_target,$(1)) : $(2) +$(2) :| $(call gb_LinkTarget_get_external_headers_target,$(1)) + +endef + +define gb_LinkTarget_add_package_headers +$(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 + +define gb_LinkTarget_add_sdi_headers +$(call gb_LinkTarget__add_internal_headers,$(1),$(foreach sdi,$(2),$(call gb_SdiTarget_get_target,$(sdi)))) +$(call gb_LinkTarget_get_clean_target,$(1)) : $(foreach sdi,$(2),$(call gb_SdiTarget_get_clean_target,$(sdi))) +endef + +define gb_LinkTarget__add_precompiled_header_impl +$(call gb_LinkTarget__add_internal_headers,$(1),$(call gb_PrecompiledHeader_get_target,$(3))) +$(call gb_LinkTarget_get_clean_target,$(1)) : $(call gb_PrecompiledHeader_get_clean_target,$(3)) +$(call gb_PrecompiledHeader_get_target,$(3)) : $(2).cxx + +$(call gb_LinkTarget__add_internal_headers,$(1),$(call gb_NoexPrecompiledHeader_get_target,$(3))) +$(call gb_LinkTarget_get_clean_target,$(1)) : $(call gb_NoexPrecompiledHeader_get_clean_target,$(3)) +$(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)) \ +$(call gb_LinkTarget_get_target,$(1)) : PCH_DEFS = $$(DEFS) +ifeq ($(gb_FULLDEPS),$(true)) +-include \ + $(call gb_PrecompiledHeader_get_dep_target,$(3)) \ + $(call gb_NoexPrecompiledHeader_get_dep_target,$(3)) +$(call gb_LinkTarget_get_dep_target,$(1)) : DEFS := $$(DEFS) -DPRECOMPILED_HEADERS +$(call gb_LinkTarget_get_dep_target,$(1)) : PCH_DEFS = $$(DEFS) +endif + +endef + +define gb_LinkTarget_add_precompiled_header +ifeq ($(gb_ENABLE_PCH),$(true)) +$(call gb_LinkTarget__add_precompiled_header_impl,$(1),$(2),$(notdir $(2))) +endif + +endef + +# vim: set noet sw=4: diff --git a/solenv/gbuild/Module.mk b/solenv/gbuild/Module.mk new file mode 100644 index 000000000000..2af5ad0dad22 --- /dev/null +++ b/solenv/gbuild/Module.mk @@ -0,0 +1,212 @@ +#************************************************************************* +# +# 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 class + +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,%) +$(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,$*) $(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) + $(call gb_Output_announce_title,module $* done.) + -$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $@) && \ + touch $@) + +.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) + $(call gb_Output_announce,loaded modules: $(sort $(gb_Module_ALLMODULES)),$(true),ALL,6) + $(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) + $(call gb_Output_announce_title,all cleared.) + $(call gb_Output_announce_bell) + +define gb_Module_Module +gb_Module_ALLMODULES += $(1) +gb_Module_MODULELOCATIONS += $(1):$(dir $(realpath $(lastword $(MAKEFILE_LIST)))) +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 + +# This is called inside the included file and pushes one target on each stack. +# This has to be called with full late evaluation ($$(eval $$(call ))) and +# should never be inlined ($(call )) as the calls defining it might be sourced +# before gb_Module. +define gb_Module_register_target +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 + +define gb_Module_add_target +$(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_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 +$(foreach target,$(2),$(call gb_Module_add_moduledir,$(1),$(target))) +endef + +define gb_Module_make_global_targets +ifneq ($$(gb_Module_TARGETSTACK),) +$$(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! $(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 ($$(and $$(gb_Module_TARGETSTACK),$$(gb_Module_CHECKTARGETSTACK),$$(gb_Module_SUBSEQUENTCHECKTARGETSTACK)),) +$$(eval $$(call gb_Output_error,Corrupted module target stack!3)) +endif + +endef + +# vim: set noet sw=4: diff --git a/solenv/gbuild/Output.mk b/solenv/gbuild/Output.mk new file mode 100644 index 000000000000..77c4e7e09353 --- /dev/null +++ b/solenv/gbuild/Output.mk @@ -0,0 +1,147 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +# user notifications and formatting + +define gb_Output__format_type +[ $(word 2,$(1) build clean) $(2) ] +endef + +define gb_Output__format_target +$(1) +endef + +define gb_Output_error +$(error $(1)) +endef + +define gb_Output_announce_title +endef + +define gb_Output_announce_bell +endef + +define gb_Output_info +$(info [ info $(2) ] $(1)) +endef + +define gb_Output_warn +$(warning $(NEWLINE)[ WARN $(2) ] !!!$(NEWLINE)[ WARN $(2) ] !!! $(1)$(NEWLINE)[ WARN $(2) ] !!!) +endef + +gb_Output_ESCAPE := $(shell echo|awk 'BEGIN { printf "%c", 27 }' -) +gb_Output_BELL := $(shell echo|awk 'BEGIN { printf "%c", 7 }' -) + +# only enable colorized output if +# - gb_COLOR is set +# - we have a known term +ifneq ($(strip $(gb_COLOR)),) +ifneq ($(filter $(TERM),Eterm aterm gnome kterm linux rxvt rxvt-unicode screen xterm xterm-color),) + +gb_Output_COLOR_RESET := $(gb_Output_ESCAPE)[0m +gb_Output_COLOR_RESETANDESCAPE := $(gb_Output_COLOR_RESET)$(gb_Output_ESCAPE) + +gb_Output_COLOR_OUTBUILD_LEVEL1 := $(gb_Output_COLOR_RESETANDESCAPE)[37;40m +gb_Output_COLOR_OUTBUILD_LEVEL2 := $(gb_Output_COLOR_RESETANDESCAPE)[37;40m +gb_Output_COLOR_OUTBUILD_LEVEL3 := $(gb_Output_COLOR_RESETANDESCAPE)[37;40m +gb_Output_COLOR_OUTBUILD_LEVEL4 := $(gb_Output_COLOR_RESETANDESCAPE)[37;40m +gb_Output_COLOR_OUTBUILD_LEVEL5 := $(gb_Output_COLOR_RESETANDESCAPE)[37;1;46m +gb_Output_COLOR_OUTBUILD_LEVEL6 := $(gb_Output_COLOR_RESETANDESCAPE)[37;1;44m + +gb_Output_COLOR_INBUILD_LEVEL1 := $(gb_Output_COLOR_RESETANDESCAPE)[36;40m +gb_Output_COLOR_INBUILD_LEVEL2 := $(gb_Output_COLOR_RESETANDESCAPE)[36;1;40m +gb_Output_COLOR_INBUILD_LEVEL3 := $(gb_Output_COLOR_RESETANDESCAPE)[32;40m +gb_Output_COLOR_INBUILD_LEVEL4 := $(gb_Output_COLOR_RESETANDESCAPE)[32;1;40m +gb_Output_COLOR_INBUILD_LEVEL5 := $(gb_Output_COLOR_RESETANDESCAPE)[37;1;46m +gb_Output_COLOR_INBUILD_LEVEL6 := $(gb_Output_COLOR_RESETANDESCAPE)[37;1;44m + +gb_Output_COLOR_OUTCLEAN_LEVEL1 := $(gb_Output_COLOR_RESETANDESCAPE)[37;40m +gb_Output_COLOR_OUTCLEAN_LEVEL2 := $(gb_Output_COLOR_RESETANDESCAPE)[37;40m +gb_Output_COLOR_OUTCLEAN_LEVEL3 := $(gb_Output_COLOR_RESETANDESCAPE)[37;40m +gb_Output_COLOR_OUTCLEAN_LEVEL4 := $(gb_Output_COLOR_RESETANDESCAPE)[37;40m +gb_Output_COLOR_OUTCLEAN_LEVEL5 := $(gb_Output_COLOR_RESETANDESCAPE)[33;1;41m +gb_Output_COLOR_OUTCLEAN_LEVEL6 := $(gb_Output_COLOR_RESETANDESCAPE)[37;1;41m + +gb_Output_COLOR_INCLEAN_LEVEL1 := $(gb_Output_COLOR_RESETANDESCAPE)[33;40m +gb_Output_COLOR_INCLEAN_LEVEL2 := $(gb_Output_COLOR_RESETANDESCAPE)[33;1;40m +gb_Output_COLOR_INCLEAN_LEVEL3 := $(gb_Output_COLOR_RESETANDESCAPE)[31;40m +gb_Output_COLOR_INCLEAN_LEVEL4 := $(gb_Output_COLOR_RESETANDESCAPE)[31;1;40m +gb_Output_COLOR_INCLEAN_LEVEL5 := $(gb_Output_COLOR_RESETANDESCAPE)[33;1;41m +gb_Output_COLOR_INCLEAN_LEVEL6 := $(gb_Output_COLOR_RESETANDESCAPE)[37;1;41m + +gb_Output_COLOR_ERROR := $(gb_Output_COLOR_RESETANDESCAPE)[37;1;41m + +define gb_Output__format_type +$(subst :, ,$(word 2,$(1) \ + $(gb_Output_COLOR_OUTBUILD_LEVEL$(3))[:$(gb_Output_COLOR_INBUILD_LEVEL$(3))__.oO:$(subst $(WHITESPACE),:,$(2))$(gb_Output_COLOR_OUTBUILD_LEVEL$(3)):] \ + $(gb_Output_COLOR_OUTCLEAN_LEVEL$(3))[:$(gb_Output_COLOR_INCLEAN_LEVEL$(3))Xx.__:$(subst $(WHITESPACE),:,$(2))$(gb_Output_COLOR_OUTCLEAN_LEVEL$(3)):]))$(gb_Output_COLOR_RESET) +endef + +define gb_Output_info +$(info $(gb_Output_COLOR_OUTBUILD_LEVEL6)[ $(gb_Output_COLOR_INBUILD_LEVEL6)info $(2)$(gb_Output_COLOR_OUTBUILD_LEVEL6) ]$(gb_Output_COLOR_RESET) $(1)) +endef + +define gb_Output_warn +$(warning $(NEWLINE)$(gb_Output_COLOR_OUTCLEAN_LEVEL6)[ $(gb_Output_COLOR_INCLEAN_LEVEL6)WARN $(2)$(gb_Output_COLOR_OUTCLEAN_LEVEL6) ]$(gb_Output_COLOR_RESET) !!!$(NEWLINE)$(gb_Output_COLOR_OUTCLEAN_LEVEL6)[ $(gb_Output_COLOR_INCLEAN_LEVEL6)WARN $(2)$(gb_Output_COLOR_OUTCLEAN_LEVEL6) ]$(gb_Output_COLOR_RESET) !!! $(1)$(NEWLINE)$(gb_Output_COLOR_OUTCLEAN_LEVEL6)[ $(gb_Output_COLOR_INCLEAN_LEVEL6)WARN $(2)$(gb_Output_COLOR_OUTCLEAN_LEVEL6) ]$(gb_Output_COLOR_RESET) !!!) +endef + +define gb_Output_error +$(error $(gb_Output_COLOR_ERROR)$(1)$(gb_Output_COLOR_RESET)) +endef + +endif +endif + +# only enable title output if +# - gb_TITLES is set +# - we have a known term +ifneq ($(strip $(gb_TITLES)),) +ifneq ($(filter $(TERM),Eterm aterm gnome kterm rxvt rxvt-unicode screen xterm xterm-color),) +define gb_Output_announce_title +$(info $(gb_Output_ESCAPE)]2;gbuild: $(1)$(gb_Output_BELL)$(gb_Output_ESCAPE)[A) +endef + +$(call gb_Output_announce_title,...) + +endif +endif + +# only enable bell output if +# - gb_BELL is set +# - gb_TTY is true (not piping to a file) +ifneq ($(strip $(gb_BELL)),) +define gb_Output_announce_bell +$(info $(gb_Output_BELL)$(gb_Output_ESCAPE)[A) +endef +endif + +define gb_Output_announce +$(info $(call gb_Output__format_type,$(2),$(3),$(4)) $(call gb_Output__format_target,$(1))) +endef + + +# vim: set noet sw=4: diff --git a/solenv/gbuild/Package.mk b/solenv/gbuild/Package.mk new file mode 100644 index 000000000000..0ade85619aef --- /dev/null +++ b/solenv/gbuild/Package.mk @@ -0,0 +1,80 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + + +# PackagePart class + +$(foreach destination,$(call gb_PackagePart_get_destinations), $(destination)/%) : + $(call gb_Deliver_deliver,$<,$@) + +define gb_PackagePart_PackagePart +$(OUTDIR)/$(1) : $(2) +$(2) :| $(3) +$(call gb_Deliver_add_deliverable,$(OUTDIR)/$(1),$(2)) + +endef + + +# Package class + +.PHONY : $(call gb_Package_get_clean_target,%) +$(call gb_Package_get_clean_target,%) : + $(call gb_Output_announce,$*,$(false),PKG,2) + -$(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_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),$(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: diff --git a/solenv/gbuild/PrecompiledHeaders.mk b/solenv/gbuild/PrecompiledHeaders.mk new file mode 100644 index 000000000000..0db75718c07c --- /dev/null +++ b/solenv/gbuild/PrecompiledHeaders.mk @@ -0,0 +1,77 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + + +# PrecompiledHeader class + +ifeq ($(gb_ENABLE_PCH),$(true)) + +# gb_PrecompiledHeader_get_enableflags defined by platform +ifeq ($(gb_DEBUGLEVEL),2) +gb_PrecompiledHeader_DEBUGDIR := debug +gb_NoexPrecompiledHeader_DEBUGDIR := debug +else +gb_PrecompiledHeader_DEBUGDIR := nodebug +gb_NoexPrecompiledHeader_DEBUGDIR := nodebug +endif + +$(call gb_PrecompiledHeader_get_dep_target,%) : + $(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $@) && \ + echo '$(call gb_PrecompiledHeader_get_target,$*) : $$(gb_Helper_PHONY)' > $@) + +$(call gb_NoexPrecompiledHeader_get_dep_target,%) : + $(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $@) && \ + echo '$(call gb_NoexPrecompiledHeader_get_target,$*) : $$(gb_Helper_PHONY)' > $@) + +$(call gb_PrecompiledHeader_get_target,%) : + $(call gb_PrecompiledHeader__command,$@,$*,$<,$(PCH_DEFS),$(PCH_CXXFLAGS) $(gb_PrecompiledHeader_EXCEPTIONFLAGS),$(INCLUDE_STL) $(INCLUDE)) + +$(call gb_NoexPrecompiledHeader_get_target,%) : + $(call gb_NoexPrecompiledHeader__command,$@,$*,$<,$(PCH_DEFS),$(PCH_CXXFLAGS) $(gb_NoexPrecompiledHeader_NOEXCEPTIONFLAGS),$(INCLUDE_STL) $(INCLUDE)) + +.PHONY : $(call gb_PrecompiledHeader_get_clean_target,%) $(call gb_NoExPrecompiledHeader_get_clean_target,%) +$(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,$*)) + + +$(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 + +# vim: set noet sw=4: diff --git a/solenv/gbuild/SdiTarget.mk b/solenv/gbuild/SdiTarget.mk new file mode 100644 index 000000000000..81f007272498 --- /dev/null +++ b/solenv/gbuild/SdiTarget.mk @@ -0,0 +1,71 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +# SdiTarget is evil, in that it does not support multiple repositories for now (hardcoded to SRCDIR) +# Also there is no way to cleanly deliver the generated header to OUTDIR. +# (This can be workarounded by using gb_Package, but really should not.) + +# SdiTarget class + +gb_SdiTarget_SVIDLTARGET := $(call gb_Executable_get_target,svidl) +gb_SdiTarget_SVIDLCOMMAND := $(gb_SdiTarget_SVIDLPRECOMMAND) $(gb_SdiTarget_SVIDLTARGET) + +$(call gb_SdiTarget_get_target,%) : $(SRCDIR)/%.sdi | $(gb_SdiTarget_SVIDLTARGET) + $(call gb_Output_announce,$*,$(true),SDI,1) + $(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $@)) + $(call gb_Helper_abbreviate_dirs_native,\ + cd $(dir $<) && \ + $(gb_SdiTarget_SVIDLCOMMAND) -quiet \ + $(INCLUDE) \ + -fs$@.hxx \ + -fd$@.ilb \ + -fl$@.lst \ + -fz$@.sid \ + -fx$(EXPORTS) \ + -fm$@ \ + $(realpath $<)) + +.PHONY : $(call gb_SdiTarget_get_clean_target,%) +$(call gb_SdiTarget_get_clean_target,%) : + $(call gb_Output_announce,$*,$(false),SDI,1) + -$(call gb_Helper_abbreviate_dirs,\ + rm -f $(foreach ext,.hxx .ilb .lst .sid,\ + $(call gb_SdiTarget_get_target,$*)$(ext)) \ + $(call gb_SdiTarget_get_target,$*)) + +define gb_SdiTarget_SdiTarget +$(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 + +define gb_SdiTarget_set_include +$(call gb_SdiTarget_get_target,$(1)) : INCLUDE := $(2) + +endef + +# vim: set noet sw=4: diff --git a/solenv/gbuild/StaticLibrary.mk b/solenv/gbuild/StaticLibrary.mk new file mode 100644 index 000000000000..717b4717c4d8 --- /dev/null +++ b/solenv/gbuild/StaticLibrary.mk @@ -0,0 +1,109 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + + +# Static Library class + +# defined globally in gbuild.mk +# gb_StaticLibrary_OUTDIRLOCATION := $(OUTDIR)/lib +# defined by platform +# gb_StaticLibrary_DEFS +# gb_StaticLibrary_FILENAMES +# gb_StaticLibrary_TARGETS + +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_Helper_abbreviate_dirs,\ + rm -f $(OUTDIR)/lib/$*$(gb_StaticLibrary_PLAINEXT) \ + $(AUXTARGETS)) + +# EVIL: gb_StaticLibrary and gb_Library need the same deliver rule because they are indistinguishable on windows +$(gb_StaticLibrary_OUTDIRLOCATION)/%$(gb_StaticLibrary_PLAINEXT) : + $(call gb_Helper_abbreviate_dirs,\ + $(call gb_Deliver_deliver,$<,$@) \ + $(foreach target,$(AUXTARGETS), && $(call gb_Deliver_deliver,$(dir $<)/$(notdir $(target)),$(target)))) + +define gb_StaticLibrary_StaticLibrary +ifeq (,$$(findstring $(1),$$(gb_StaticLibrary_KNOWNLIBS))) +$$(eval $$(call gb_Output_info,Currently known static libraries are: $(sort $(gb_StaticLibrary_KNOWNLIBS)),ALL)) +$$(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,$(1))) + +endef + +define gb_StaticLibrary__StaticLibrary_impl +$(call gb_LinkTarget_LinkTarget,$(2)) +$(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))) + +endef + +define gb_StaticLibrary_forward_to_Linktarget +gb_StaticLibrary_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_StaticLibrary__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 \ + add_generated_exception_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_StaticLibrary_forward_to_Linktarget,$(method))\ +)) + +# vim: set noet sw=4: diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk new file mode 100644 index 000000000000..23df7b159611 --- /dev/null +++ b/solenv/gbuild/TargetLocations.mk @@ -0,0 +1,162 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +# outdir target pattern + +gb_ComponentTarget_get_outdir_target = $(OUTDIR)/xml/component/$(1).component +gb_Executable_get_target = $(OUTDIR)/bin/$(1)$(gb_Executable_EXT) +gb_PackagePart_get_destinations = $(OUTDIR)/xml $(OUTDIR)/inc $(OUTDIR)/bin +gb_PackagePart_get_target = $(OUTDIR)/$(1) +gb_ResTarget_get_outdir_imagelist_target = $(OUTDIR)/res/img/$(1).ilst +gb_ResTarget_get_outdir_target = $(OUTDIR)/bin/$(1).res + +define gb_Library_get_target +$(patsubst $(1):%,$(gb_Library_OUTDIRLOCATION)/%,$(filter $(filter $(1),$(gb_Library_TARGETS)):%,$(gb_Library_FILENAMES))) +endef + +define gb_StaticLibrary_get_target +$(patsubst $(1):%,$(gb_StaticLibrary_OUTDIRLOCATION)/%,$(filter $(filter $(1),$(gb_StaticLibrary_TARGETS)):%,$(gb_StaticLibrary_FILENAMES))) +endef + + +# workdir target patterns + +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 +gb_ResTarget_get_imagelist_target = $(WORKDIR)/ResTarget/$(1).ilst +gb_ResTarget_get_target = $(WORKDIR)/ResTarget/$(1).res +gb_SdiTarget_get_target = $(WORKDIR)/SdiTarget/$(1) +gb_SrsPartMergeTarget_get_target = $(WORKDIR)/SrsPartMergeTarget/$(1) +gb_SrsPartTarget_get_target = $(WORKDIR)/SrsPartTarget/$(1) +gb_SrsTarget_get_target = $(WORKDIR)/SrsTarget/$(1).srs + +define gb_Library_get_external_headers_target +$(patsubst $(1):%,$(WORKDIR)/ExternalHeaders/Library/%,$(filter $(1):%,$(gb_Library_FILENAMES))) +endef + +define gb_Library_get_headers_target +$(patsubst $(1):%,$(WORKDIR)/Headers/Library/%,$(filter $(1):%,$(gb_Library_FILENAMES))) +endef + +define gb_StaticLibrary_get_external_headers_target +$(patsubst $(1):%,$(WORKDIR)/ExternalHeaders/StaticLibrary/%,$(filter $(1):%,$(gb_StaticLibrary_FILENAMES))) +endef + +define gb_StaticLibrary_get_headers_target +$(patsubst $(1):%,$(WORKDIR)/Headers/StaticLibrary/%,$(filter $(1):%,$(gb_StaticLibrary_FILENAMES))) +endef + +$(eval $(call gb_Helper_make_clean_targets,\ + AllLangResTarget \ + ComponentTarget \ + JavaClassSet \ + JunitTest \ + LinkTarget \ + Module \ + NoexPrecompiledHeader \ + PackagePart \ + PrecompiledHeader \ + ResTarget \ + SdiTarget \ + SrsTarget \ + CppunitTest \ + CustomTarget \ +)) + +$(eval $(call gb_Helper_make_outdir_clean_targets,\ + Executable \ + Library \ + Package \ + StaticLibrary \ +)) + +$(eval $(call gb_Helper_make_dep_targets,\ + CObject \ + CxxObject \ + ObjCxxObject \ + LinkTarget \ + 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 + +define gb_Library_get_layer +$(patsubst $(1):%,%,$(filter $(1):%,$(gb_Library_LAYER))) +endef + +define gb_Executable_get_layer +$(patsubst $(1):%,%,$(filter $(1):%,$(gb_Executable_LAYER))) +endef + +define gb_Library_get_filename +$(patsubst $(1):%,%,$(filter $(1):%,$(gb_Library_FILENAMES))) +endef + +define gb_StaticLibrary_get_filename +$(patsubst $(1):%,%,$(filter $(1):%,$(gb_StaticLibrary_FILENAMES))) +endef + + +# static members declared here because they are used globally + +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: diff --git a/solenv/gbuild/Tempfile.mk b/solenv/gbuild/Tempfile.mk new file mode 100644 index 000000000000..d87fc373fc9b --- /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/post_PackModule.mk b/solenv/gbuild/extensions/post_PackModule.mk new file mode 100644 index 000000000000..ba078c18ae80 --- /dev/null +++ b/solenv/gbuild/extensions/post_PackModule.mk @@ -0,0 +1,62 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +# this is an optional extension to gbuild +# it depends on scripts outside the gbuild directory +# nothing in the gbuild core should ever depend on it + +.PHONY : packmodule cleanpackmodule + +define gb_PackModule_setpackmodulecommand +ifeq ($$(words $(gb_Module_ALLMODULES)),1) +$$(eval $$(call gb_Output_announce,$$(strip $$(gb_Module_ALLMODULES)),$$(true),ZIP,5)) +packmodule : COMMAND := $$(SOLARENV)/bin/packmodule $$(OUTDIR) $$(strip $$(gb_Module_ALLMODULES)) +else +$$(eval $$(call gb_Output_announce,more than one module - creating no zipped package,$$(true),ZIP,5)) +packmodule : COMMAND := true +endif +endef + +packmodule : all deliverlog + $(eval $(call gb_PackModule_setpackmodulecommand)) + $(COMMAND) + +define gb_PackModule_setcleanpackmodulecommand +ifeq ($$(words $(gb_Module_ALLMODULES)),1) +$$(eval $$(call gb_Output_announce,$$(strip $$(gb_Module_ALLMODULES)),$$(false),ZIP,5)) +cleanpackmodule : COMMAND := rm -f $$(OUTDIR)/zip/$$(strip $$(gb_Module_ALLMODULES)).zip +else +$$(eval $$(call gb_Output_announce,more than one module - deleting no zipped package,$$(false),ZIP,5)) +cleanpackmodule : COMMAND := true +endif +endef + +cleanpackmodule : clean + $(eval $(call gb_PackModule_setcleanpackmodulecommand)) + $(COMMAND) + +# vim: set noet ts=4 sw=4: diff --git a/solenv/gbuild/extensions/post_SetupLocal.mk b/solenv/gbuild/extensions/post_SetupLocal.mk new file mode 100644 index 000000000000..175903c3a2b9 --- /dev/null +++ b/solenv/gbuild/extensions/post_SetupLocal.mk @@ -0,0 +1,68 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +.PHONY : setuplocal removelocal +ifneq ($(gb_LOCALBUILDDIR),) +ifneq ($(wildcard $(gb_LOCALBUILDDIR)/SetupLocal.mk),) +setuplocal : + $(eval $(call gb_Output_error,$(gb_LOCALBUILDDIR) exists already.)) + +else + +setuplocal : + $(eval MODULE := $(firstword $(MODULE) $(lastword $(subst /, ,$(dir $(realpath $(firstword $(MAKEFILE_LIST)))))))) + $(eval modulerepo := $(patsubst %/$(MODULE),%,$(foreach repo,$(gb_REPOS),$(wildcard $(repo)/$(MODULE))))) + $(eval $(call gb_Output_announce,setting up local build directory (module: $(MODULE)).,$(true),SYC,5)) + mkdir -p $(gb_LOCALBUILDDIR)/srcdir $(gb_LOCALBUILDDIR)/workdir $(gb_LOCALBUILDDIR)/outdir + rsync --archive --exclude 'workdir/**' $(SOLARVERSION)/$(INPATH)/ $(gb_LOCALBUILDDIR)/outdir + cp $(modulerepo)/Repository.mk $(gb_LOCALBUILDDIR)/srcdir/Repository.mk + cp $(modulerepo)/RepositoryFixes.mk $(gb_LOCALBUILDDIR)/srcdir/RepositoryFixes.mk + rsync --archive $(modulerepo)/$(MODULE)/ $(gb_LOCALBUILDDIR)/srcdir/$(MODULE) + echo "gb_REPOS := $(gb_LOCALBUILDDIR)/srcdir $(filter-out $(patsubst %/$(MODULE),%,$(foreach repo,$(gb_REPOS),$(wildcard $(repo)/$(MODULE)))),$(gb_REPOS))" > $(gb_LOCALBUILDDIR)/SetupLocal.mk + echo "#original gb_REPOS was $(gb_REPOS)" >> $(gb_LOCALBUILDDIR)/SetupLocal.mk + echo "OUTDIR := $(gb_LOCALBUILDDIR)/outdir" >> $(gb_LOCALBUILDDIR)/SetupLocal.mk + echo "#original OUTDIR was $(OUTDIR)" >> $(gb_LOCALBUILDDIR)/SetupLocal.mk + echo "WORKDIR := $(gb_LOCALBUILDDIR)/workdir" >> $(gb_LOCALBUILDDIR)/SetupLocal.mk + echo "#original WORKDIR was $(WORKDIR)" >> $(gb_LOCALBUILDDIR)/SetupLocal.mk + +endif + +removelocal : + $(eval $(call gb_Output_warn,removing directory $(gb_LOCALBUILDDIR).,SYC)) + sleep 10 + rm -rf $(gb_LOCALBUILDDIR) + +else +setuplocal: + $(eval $(call gb_Output_error,setuplocal: gb_LOCALBUILDDIR is not set.)) + +removelocal: + $(eval $(call gb_Output_error,setuplocal: gb_LOCALBUILDDIR is not set.)) + +endif + +# vim: set noet sw=4: 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 new file mode 100644 index 000000000000..5677d793af65 --- /dev/null +++ b/solenv/gbuild/gbuild.mk @@ -0,0 +1,261 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +# vars needed from the env/calling makefile + +# CVER +# DEBUG +# GBUILDDIR +# INPATH +# JAVA_HOME +# JDKINCS +# LIBXML_CFLAGS +# OS +# PRODUCT +# SOLARINC +# SOLARLIB +# UPD + +# GXX_INCLUDE_PATH (Linux) +# PTHREAD_CFLAGS (Linux) +# SYSTEM_ICU (Linux) +# SYSTEM_JPEG (Linux) +# SYSTEM_LIBXML (Linux) + +SHELL := /bin/sh +true := T +false := +define NEWLINE + + +endef + +define WHITESPACE + +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 +include $(GBUILDDIR)/BuildDirs.mk + + +ifneq ($(strip $(PRODUCT)$(product)),) +gb_PRODUCT := $(true) +else +ifneq ($(strip $(product)),) +gb_PRODUCT := $(true) +else +gb_PRODUCT := $(false) +endif +endif + +ifneq ($(strip $(SYMBOL)$(symbol)$(SYMBOLS)$(symbols)),) +gb_SYMBOL := $(false) +else +gb_SYMBOL := $(true) +endif + + +ifneq ($(strip $(DEBUG)$(debug)),) +gb_DEBUGLEVEL := 2 +gb_SYMBOL := $(true) +else +ifeq ($(gb_PRODUCT),$(true)) +gb_DEBUGLEVEL := 0 +else +gb_DEBUGLEVEL := 1 +endif +endif + +ifneq ($(strip $(ENABLE_PCH)),) +gb_ENABLE_PCH := $(true) +else +gb_ENABLE_PCH := $(false) +endif + +# for clean, setuplocal and removelocal goals we switch off dependencies +ifneq ($(filter clean setuplocal removelocal showdeliverables,$(MAKECMDGOALS)),) +gb_FULLDEPS := $(false) +else +gb_FULLDEPS := $(true) +endif + +include $(GBUILDDIR)/Helper.mk +include $(GBUILDDIR)/TargetLocations.mk + +$(eval $(call gb_Helper_init_registries)) +$(eval $(call gb_Helper_add_repositories,$(gb_REPOS))) +$(eval $(call gb_Helper_collect_libtargets)) + +ifeq ($(OS),LINUX) +include $(GBUILDDIR)/platform/linux.mk +else +ifeq ($(OS),WNT) +ifneq ($(USE_MINGW),) +include $(GBUILDDIR)/platform/winmingw.mk +else +include $(GBUILDDIR)/platform/windows.mk +endif +else +ifeq ($(OS),SOLARIS) +include $(GBUILDDIR)/platform/solaris.mk +else +ifeq ($(OS),MACOSX) +include $(GBUILDDIR)/platform/macosx.mk +else +$(eval $(call gb_Output_error,Unsupported OS: $(OS))) +endif +endif +endif +endif + +include $(GBUILDDIR)/Tempfile.mk + +include $(foreach repo,$(gb_REPOS),$(repo)/RepositoryFixes.mk) + +$(eval $(call gb_Helper_collect_knownlibs)) + +gb_GLOBALDEFS := \ + -D_REENTRANT \ + -DCUI \ + -DENABLE_LAYOUT_EXPERIMENTAL=0 \ + -DENABLE_LAYOUT=0 \ + -DOSL_DEBUG_LEVEL=$(gb_DEBUGLEVEL) \ + -DSUPD=$(UPD) \ + -DVCL \ + $(gb_OSDEFS) \ + $(gb_COMPILERDEFS) \ + $(gb_CPUDEFS) \ + +ifeq ($(gb_PRODUCT),$(true)) +gb_GLOBALDEFS += \ + -DPRODUCT \ + -DPRODUCT_FULL \ + +else +gb_GLOBALDEFS += \ + -DDBG_UTIL \ + -D_DEBUG \ + +endif + +ifneq ($(strip $(SOLAR_JAVA)),) +gb_GLOBALDEFS += -DSOLAR_JAVA +endif + +ifeq ($(gb_DEBUGLEVEL),2) +gb_GLOBALDEFS += \ + -DDEBUG \ + +else +gb_GLOBALDEFS += \ + -DOPTIMIZE \ + -DNDEBUG \ + +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 + +$(eval $(call gb_Deliver_init)) + +# We are using a set of scopes that we might as well call classes. + +# It is important to include them in the right order as that is +# -- at least in part -- defining precedence. This is not an issue in the +# WORKDIR as there are no nameing collisions there, but OUTDIR is a mess +# and precedence is important there. This is also platform dependant. +# For example: +# $(OUTDIR)/bin/% for executables collides +# with $(OUTDIR)/bin/%.res for resources on unix +# $(OUTDIR)/lib/%.lib collides +# on windows (static and dynamic libs) +# $(OUTDIR)/xml/% for packageparts collides +# with $(OUTDIR)/xml/component/%.component for components +# This is less of an issue with GNU Make versions > 3.82 which matches for +# shortest stem instead of first match. However, upon intoduction this version +# is not available everywhere by default. + +include $(foreach class, \ + ComponentTarget \ + AllLangResTarget \ + LinkTarget \ + Library \ + StaticLibrary \ + Executable \ + SdiTarget \ + Package \ + CustomTarget \ + PrecompiledHeaders \ + CppunitTest \ + JavaClassSet \ + JunitTest \ + Module \ +,$(GBUILDDIR)/$(class).mk) + +# optional extensions that should never be essential +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: diff --git a/solenv/gbuild/platform/linux.mk b/solenv/gbuild/platform/linux.mk new file mode 100755 index 000000000000..3a708b7a8f02 --- /dev/null +++ b/solenv/gbuild/platform/linux.mk @@ -0,0 +1,406 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +GUI := UNX +COM := GCC + +gb_MKTEMP := mktemp -t gbuild.XXXXXX + +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) +CPUNAME := X86_64 +endif + +# 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_PTHREADS \ + -DUNIX \ + -DUNX \ + $(PTHREAD_CFLAGS) \ + +ifeq ($(GXX_INCLUDE_PATH),) +GXX_INCLUDE_PATH=$(COMPATH)/include/c++/$(shell gcc -dumpversion) +endif + +gb_COMPILERDEFS := \ + -D$(COM) \ + -DHAVE_GCC_VISIBILITY_FEATURE \ + -DCPPU_ENV=gcc3 \ + -DGXX_INCLUDE_PATH=$(GXX_INCLUDE_PATH) \ + +ifeq ($(CPUNAME),X86_64) +gb_CPUDEFS := -D$(CPUNAME) +else +gb_CPUDEFS := -DX86 +endif + +gb_CFLAGS := \ + -Wall \ + -Wendif-labels \ + -Wextra \ + -Wshadow \ + -fPIC \ + -fmessage-length=0 \ + -fno-common \ + -fno-strict-aliasing \ + -fvisibility=hidden \ + -pipe \ + +gb_CXXFLAGS := \ + -Wall \ + -Wendif-labels \ + -Wextra \ + -Wno-ctor-dtor-privacy \ + -Wno-non-virtual-dtor \ + -Wshadow \ + -fPIC \ + -fmessage-length=0 \ + -fno-common \ + -fno-strict-aliasing \ + -fno-use-cxa-atexit \ + -fvisibility-inlines-hidden \ + -fvisibility=hidden \ + -pipe \ + +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 +gb_LinkTarget_EXCEPTIONFLAGS := \ + -DEXCEPTIONS_ON \ + -fexceptions \ + -fno-enforce-eh-specs \ + +gb_LinkTarget_NOEXCEPTIONFLAGS := \ + -DEXCEPTIONS_OFF \ + -fno-exceptions \ + +gb_LinkTarget_LDFLAGS := \ + -Wl,--sysroot=$(SYSBASE) \ + -Wl,-rpath-link,$(SYSBASE)/lib:$(SYSBASE)/usr/lib \ + -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 \ + -Wl,--dynamic-list-cpp-typeinfo \ + -Wl,-Bsymbolic-functions \ + +endif + +ifeq ($(gb_DEBUGLEVEL),2) +gb_COMPILEROPTFLAGS := -O0 +else +gb_COMPILEROPTFLAGS := -Os +endif + +gb_COMPILERNOOPTFLAGS := -O0 + +# Helper class + +gb_Helper_abbreviate_dirs_native = $(gb_Helper_abbreviate_dirs) + +gb_Helper_set_ld_path := LD_LIBRARY_PATH=$(OUTDIR)/lib + +# CObject class + +define gb_CObject__command +$(call gb_Output_announce,$(2),$(true),C ,3) +$(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)) \ + -I$(dir $(3)) \ + $(INCLUDE)) +endef + + +# CxxObject class + +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) \ + $(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)) \ + $(INCLUDE_STL) $(INCLUDE)) +endef + + +# LinkTarget class + +define gb_LinkTarget__get_rpath_for_layer +$(patsubst $(1):%,%,$(filter $(1):%,$(gb_LinkTarget__RPATHS))) +endef + +gb_LinkTarget__RPATHS := \ + 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_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) $(gb_COMPILEROPTFLAGS) +gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) + +ifeq ($(gb_DEBUGLEVEL),2) +gb_LinkTarget_CXXFLAGS += -finline-limit=0 -fno-inline -fno-default-inline +gb_LinkTarget_CFLAGS += -finline-limit=0 -fno-inline -fno-default-inline + +endif + +ifeq ($(gb_SYMBOL),$(true)) +gb_LinkTarget_CXXFLAGS += -ggdb3 +gb_LinkTarget_CFLAGS += -ggdb3 +endif + +gb_LinkTarget_INCLUDE := $(filter-out %/stl, $(subst -I. , ,$(SOLARINC))) +gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC))) + +define gb_LinkTarget__command_dynamiclink +$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $(1)) && \ + $(gb_CXX) \ + $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \ + $(subst \d,$$,$(RPATH)) $(LDFLAGS) \ + $(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 \ + $(patsubst lib%.so,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(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 + +gb_Library_DEFS := +gb_Library_TARGETTYPEFLAGS := -shared -Wl,-z,noexecstack +gb_Library_SYSPRE := lib +gb_Library_UNOVERPRE := $(gb_Library_SYSPRE)uno_ +gb_Library_PLAINEXT := .so +gb_Library_RTEXT := gcc3$(gb_Library_PLAINEXT) + +ifeq ($(CPUNAME),X86_64) +gb_Library_OOOEXT := lx$(gb_Library_PLAINEXT) +gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT) +else +gb_Library_OOOEXT := li$(gb_Library_PLAINEXT) +gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT) +endif + +gb_Library_PLAINLIBS_NONE += \ + dl \ + jpeg \ + m \ + pthread \ + X11 \ + z + +gb_Library_FILENAMES := \ + $(foreach lib,$(gb_Library_OOOLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_OOOEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_RTLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ + $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ + $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):$(lib)$(gb_Library_UNOEXT)) \ + $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):$(lib)$(gb_Library_UNOEXT)) \ + $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(gb_Library_UNOVERPRE)$(lib)$(gb_Library_PLAINEXT)) \ + + +gb_Library_LAYER := \ + $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \ + $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):URELIB) \ + $(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_UNOLIBS_URE),$(lib):URELIB) \ + $(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_SYSPRE := lib +gb_StaticLibrary_PLAINEXT := .a +gb_StaticLibrary_JPEGEXT := lib$(gb_StaticLibrary_PLAINEXT) + +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)) \ + +gb_StaticLibrary_StaticLibrary_platform = + + +# Executable class + +gb_Executable_EXT := + +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) \ + + +define gb_Executable_get_rpath +'-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 + +# SrsPartMergeTarget + +gb_SrsPartMergeTarget_TRANSEXPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib + +# SrsPartTarget class + +gb_SrsPartTarget_RSCTARGET := $(OUTDIR)/bin/rsc +gb_SrsPartTarget_RSCCOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib SOLARBINDIR=$(OUTDIR)/bin $(gb_SrsPartTarget_RSCTARGET) + +define gb_SrsPartTarget__command_dep +$(call gb_Helper_abbreviate_dirs,\ + $(gb_GCCP) \ + -MM -MT $(call gb_SrsPartTarget_get_target,$(1)) \ + $(INCLUDE) \ + $(DEFS) \ + -c -x c++-header $(2) \ + -o $(call gb_SrsPartTarget_get_dep_target,$(1))) +endef + + +# ComponentTarget + +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: diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk new file mode 100755 index 000000000000..4490d82f8508 --- /dev/null +++ b/solenv/gbuild/platform/macosx.mk @@ -0,0 +1,449 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +GUI := UNX +COM := GCC + +# Darwin mktemp -t expects a prefix, not a pattern +gb_MKTEMP := /usr/bin/mktemp -t gbuild. + +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_PTHREADS \ + -DUNIX \ + -DUNX \ + -D_REENTRANT \ + -DNO_PTHREAD_PRIORITY \ + -DQUARTZ \ + $(EXTRA_CDEFS) \ + +gb_COMPILERDEFS := \ + -D$(COM) \ + -DHAVE_GCC_VISIBILITY_FEATURE \ + -DCPPU_ENV=gcc3 \ + -DGXX_INCLUDE_PATH=$(GXX_INCLUDE_PATH) \ + +ifeq ($(CPUNAME),POWERPC) +gb_CPUDEFS := -DPOWERPC -DPPC +else +gb_CPUDEFS := -DX86 +endif + +ifeq ($(strip $(SYSBASE)),) +gb_SDKDIR := /Developer/SDKs/MacOSX10.4u.sdk +else +gb_SDKDIR := $(SYSBASE)/MacOSX10.4u.sdk +endif + + +gb_CFLAGS := \ + -isysroot $(gb_SDKDIR) \ + -Wall \ + -Wendif-labels \ + -Wextra \ + -Wshadow \ + -fPIC \ + -fmessage-length=0 \ + -fno-common \ + -fno-strict-aliasing \ + -pipe \ + +gb_CXXFLAGS := \ + -isysroot $(gb_SDKDIR) \ + -Wall \ + -Wendif-labels \ + -Wextra \ + -Wno-ctor-dtor-privacy \ + -Wno-long-double \ + -Wno-non-virtual-dtor \ + -fPIC \ + -fmessage-length=0 \ + -fno-common \ + -fno-strict-aliasing \ + -fsigned-char \ + -malign-natural \ + -pipe \ + #-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 + +ifneq ($(EXTERNAL_WARNINGS_NOT_ERRORS),TRUE) +gb_CFLAGS_WERROR := -Werror +gb_CXXFLAGS_WERROR := -Werror +endif + +gb_LinkTarget_EXCEPTIONFLAGS := \ + -DEXCEPTIONS_ON \ + -fexceptions \ + -fno-enforce-eh-specs \ + +gb_LinkTarget_NOEXCEPTIONFLAGS := \ + -DEXCEPTIONS_OFF \ + -fno-exceptions \ + +gb_LinkTarget_LDFLAGS := \ + -Wl,-syslibroot,$(gb_SDKDIR) \ + $(subst -L../lib , ,$(SOLARLIB)) \ +#man ld says: obsolete -Wl,-multiply_defined,suppress \ + +ifeq ($(gb_DEBUGLEVEL),2) +gb_COMPILEROPTFLAGS := -O0 +else +gb_COMPILEROPTFLAGS := -O2 +endif + +gb_COMPILERNOOPTFLAGS := -O0 + +# Helper class + +gb_Helper_abbreviate_dirs_native = $(gb_Helper_abbreviate_dirs) + +gb_Helper_set_ld_path := DYLD_LIBRARY_PATH=$(OUTDIR)/lib + + +# CObject class + +define gb_CObject__command +$(call gb_Output_announce,$(2),$(true),C ,3) +$(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)) \ + -I$(dir $(3)) \ + $(INCLUDE)) +endef + + +# CxxObject class + +# 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) \ + $(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)) \ + $(INCLUDE_STL) $(INCLUDE)) +endef + + +# ObjCxxObject class + +define gb_ObjCxxObject__command +$(call gb_Output_announce,$(2),$(true),OCX,3) +$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $(1)) && \ + mkdir -p $(dir $(call gb_ObjCxxObject_get_dep_target,$(2))) && \ + $(gb_CXX) \ + $(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)) \ + $(INCLUDE_STL) $(INCLUDE)) +endef + + +# LinkTarget class + +define gb_LinkTarget__get_rpath_for_layer +$(patsubst $(1):%,%,$(filter $(1):%,$(gb_LinkTarget__RPATHS))) +endef + +gb_LinkTarget__RPATHS := \ + URELIB:@__________________________________________________URELIB/ \ + UREBIN: \ + OOO:@__________________________________________________OOO/ \ + BRAND: \ + SDKBIN: \ + NONEBIN: \ + +define gb_LinkTarget__get_installname +$(if $(2),-install_name '$(2)$(1)',) +endef + +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_SYMBOL),$(true)) +gb_LinkTarget_CFLAGS += -g +gb_LinkTarget_CXXFLAGS += -g +gb_LinkTarget_OBJCXXFLAGS += -g +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 +define gb_LinkTarget__command_dynamiclink +$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $(1)) && \ + 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) \ + $(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 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 + +gb_Library_DEFS := +gb_Library_TARGETTYPEFLAGS := -dynamiclib -single_module +gb_Library_SYSPRE := lib +gb_Library_UNOVERPRE := $(gb_Library_SYSPRE)uno_ +gb_Library_PLAINEXT := .dylib +gb_Library_RTEXT := gcc3$(gb_Library_PLAINEXT) + +ifeq ($(CPUNAME),INTEL) +gb_Library_OOOEXT := mxi$(gb_Library_PLAINEXT) +gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT) +else # ifeq ($(CPUNAME),POWERPC) +gb_Library_OOOEXT := mxp$(gb_Library_PLAINEXT) +gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT) +endif + +gb_Library__FRAMEWORKS := \ + Cocoa \ + +gb_Library_PLAINLIBS_NONE += \ + Cocoa \ + objc \ + jpeg \ + m \ + pthread \ + z \ + +gb_Library_FILENAMES := \ + $(foreach lib,$(gb_Library_OOOLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_OOOEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_RTLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ + $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ + $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):$(lib)$(gb_Library_UNOEXT)) \ + $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):$(lib)$(gb_Library_UNOEXT)) \ + $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(gb_Library_UNOVERPRE)$(lib)$(gb_Library_PLAINEXT)) \ + + +gb_Library_LAYER := \ + $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \ + $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):URELIB) \ + $(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_UNOLIBS_URE),$(lib):URELIB) \ + $(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_SYSPRE := lib +gb_StaticLibrary_PLAINEXT := .a +gb_StaticLibrary_JPEGEXT := lib$(gb_StaticLibrary_PLAINEXT) + +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)) \ + +gb_StaticLibrary_StaticLibrary_platform = + + +# Executable class + +gb_Executable_EXT := +gb_Executable_TARGETTYPEFLAGS := -bind_at_load + +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) \ + + +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 + +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 + +# SrsPartMergeTarget + +gb_SrsPartMergeTarget_TRANSEXPRECOMMAND := DYLD_LIBRARY_PATH=$(OUTDIR)/lib + +# SrsPartTarget class + +gb_SrsPartTarget_RSCTARGET := $(OUTDIR)/bin/rsc +gb_SrsPartTarget_RSCCOMMAND := DYLD_LIBRARY_PATH=$(OUTDIR)/lib SOLARBINDIR=$(OUTDIR)/bin $(gb_SrsPartTarget_RSCTARGET) + +define gb_SrsPartTarget__command_dep +$(call gb_Helper_abbreviate_dirs,\ + $(gb_GCCP) \ + -MM -MT $(call gb_SrsPartTarget_get_target,$(1)) \ + $(INCLUDE) \ + $(DEFS) \ + -c -x c++-header $(2) \ + -o $(call gb_SrsPartTarget_get_dep_target,$(1))) +endef + + +# ComponentTarget + +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: diff --git a/solenv/gbuild/platform/solaris.mk b/solenv/gbuild/platform/solaris.mk new file mode 100755 index 000000000000..a7b1b2968f6c --- /dev/null +++ b/solenv/gbuild/platform/solaris.mk @@ -0,0 +1,378 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +GUI := UNX +COM := C52 + +gb_MKTEMP := mktemp -t gbuild.XXXXXX + +gb_CC := cc +gb_CXX := CC +gb_GCCP := cc +gb_AR := ar +gb_AWK := /usr/xpg4/bin/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) \ + -DSYSV \ + -DSUN \ + -DSUN4 \ + -D_REENTRANT \ + -D_POSIX_PTHREAD_SEMANTICS \ + -D_PTHREADS \ + -DUNIX \ + +gb_COMPILERDEFS := \ + -D$(COM) \ + -DCPPU_ENV=sunpro5 \ + +gb_CPUDEFS := -D$(CPUNAME) +ifeq ($(CPUNAME),SPARC) +gb_CPUDEFS += -D__sparcv8plus +endif + +gb_CFLAGS := \ + -temp=/tmp \ + -KPIC \ + -mt \ + -xldscope=hidden \ + -xCC \ + -xc99=none \ + +gb_CXXFLAGS := \ + -temp=/tmp \ + -KPIC \ + -mt \ + -xldscope=hidden \ + -features=no%altspell \ + -library=no%Cstd \ + +w2 \ + -erroff=doubunder,identexpected,inllargeuse,inllargeint,notemsource,reftotemp,truncwarn,wnoretvalue,anonnotype \ + +ifneq ($(EXTERNAL_WARNINGS_NOT_ERRORS),TRUE) +gb_CFLAGS_WERROR := -errwarn=%all +gb_CXXFLAGS_WERROR := -xwe +endif + +gb_LinkTarget_EXCEPTIONFLAGS := \ + -DEXCEPTIONS_ON \ + +gb_LinkTarget_NOEXCEPTIONFLAGS := \ + -DEXCEPTIONS_OFF \ + -noex \ + +gb_LinkTarget_LDFLAGS := \ + $(subst -L../lib , ,$(SOLARLIB)) \ + -temp=/tmp \ + -w \ + -mt \ + -z combreloc \ + -norunpath \ + -PIC \ + -library=no%Cstd \ + +ifeq ($(gb_DEBUGLEVEL),2) +gb_COMPILEROPTFLAGS := +else +ifeq ($(CPUNAME),INTEL) +gb_COMPILEROPTFLAGS := -xarch=generic -xO3 +else # ifeq ($(CPUNAME),SPARC) +# -m32 -xarch=sparc restrict target to 32 bit sparc +# -xO3 optimization level 3 +# -xspace don't do optimizations which do increase binary size +# -xprefetch=yes do prefetching (helps on UltraSparc III) +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 +$(call gb_Output_announce,$(2),$(true),C ,3) +$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $(1)) && \ + rm -f $(call gb_CObject_get_dep_target,$(2)) && \ + mkdir -p $(dir $(call gb_CObject_get_dep_target,$(2))) && \ + $(gb_CC) \ + -c $(3) \ + -o $(1) \ + -xMMD \ + -xMF $(call gb_CObject_get_dep_target,$(2)) \ + $(DEFS) $(CFLAGS) \ + -I$(dir $(3)) \ + $(INCLUDE)) +endef + + +# CxxObject class + +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) \ + $(DEFS) $(CXXFLAGS) \ + -c $(3) \ + -o $(1) \ + -xMMD \ + -xMF $(call gb_CxxObject_get_dep_target,$(2)) \ + -I$(dir $(3)) \ + $(INCLUDE_STL) $(INCLUDE)) +endef + + +# LinkTarget class + +define gb_LinkTarget__get_rpath_for_layer +$(patsubst $(1):%,%,$(filter $(1):%,$(gb_LinkTarget__RPATHS))) +endef + +gb_LinkTarget__RPATHS := \ + 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_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) $(gb_COMPILEROPTFLAGS) +gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) + +ifeq ($(gb_SYMBOL),$(true)) +gb_LinkTarget_CXXFLAGS += -g +gb_LinkTarget_CFLAGS += -g +endif + +gb_LinkTarget_INCLUDE := $(filter-out %/stl, $(subst -I. , ,$(SOLARINC))) +gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC))) + +define gb_LinkTarget__command_dynamiclink +$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $(1)) && \ + $(gb_CXX) \ + $(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 + +gb_Library_DEFS := +gb_Library_TARGETTYPEFLAGS := -Bdynamic -z text -G +gb_Library_SYSPRE := lib +gb_Library_UNOVERPRE := $(gb_Library_SYSPRE)uno_ +gb_Library_PLAINEXT := .so +gb_Library_RTEXT := C52$(gb_Library_PLAINEXT) + +ifeq ($(CPUNAME),INTEL) +gb_Library_OOOEXT := si$(gb_Library_PLAINEXT) +gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT) +else # ifeq ($(CPUNAME),SPARC) +gb_Library_OOOEXT := ss$(gb_Library_PLAINEXT) +gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT) +endif + +gb_Library_PLAINLIBS_NONE += \ + dl \ + jpeg \ + m \ + pthread \ + X11 \ + z + +gb_Library_FILENAMES := \ + $(foreach lib,$(gb_Library_OOOLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_OOOEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_RTLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ + $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ + $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):$(lib)$(gb_Library_UNOEXT)) \ + $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):$(lib)$(gb_Library_UNOEXT)) \ + $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(gb_Library_UNOVERPRE)$(lib)$(gb_Library_PLAINEXT)) \ + + +gb_Library_LAYER := \ + $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \ + $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):URELIB) \ + $(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_UNOLIBS_URE),$(lib):URELIB) \ + $(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_SYSPRE := lib +gb_StaticLibrary_PLAINEXT := .a +gb_StaticLibrary_JPEGEXT := lib$(gb_StaticLibrary_PLAINEXT) + +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)) \ + +gb_StaticLibrary_StaticLibrary_platform = + + +# Executable class + +gb_Executable_EXT := + +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) \ + + +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 + +# SrsPartMergeTarget + +gb_SrsPartMergeTarget_TRANSEXPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib + +# SrsPartTarget class + +gb_SrsPartTarget_RSCTARGET := $(OUTDIR)/bin/rsc +gb_SrsPartTarget_RSCCOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib SOLARBINDIR=$(OUTDIR)/bin $(gb_SrsPartTarget_RSCTARGET) + +# Sun cc/CC support -xM1/-xMF flags, but unfortunately refuse input files that +# do not have the right suffix, so use makedepend here... +define gb_SrsPartTarget__command_dep +$(call gb_Helper_abbreviate_dirs_native,\ + $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ + $(INCLUDE) \ + $(DEFS) \ + $(2) \ + -f - \ + | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ + -v OBJECTFILE=$(call gb_SrsPartTarget_get_target,$(1)) \ + -v OUTDIR=$(OUTDIR)/ \ + -v WORKDIR=$(WORKDIR)/ \ + -v SRCDIR=$(SRCDIR)/ \ + -v REPODIR=$(REPODIR)/ \ + > $(call gb_SrsPartTarget_get_dep_target,$(1))) +endef + + +# ComponentTarget + +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: diff --git a/solenv/gbuild/platform/windows.mk b/solenv/gbuild/platform/windows.mk new file mode 100755 index 000000000000..37953431293f --- /dev/null +++ b/solenv/gbuild/platform/windows.mk @@ -0,0 +1,678 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +GUI := WNT +COM := MSC + +# 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 \ + -D_WIN32_IE=0x0500 \ + -DNT351 \ + -DWIN32 \ + -DWNT \ + +gb_COMPILERDEFS := \ + -DMSC \ + -D_CRT_NON_CONFORMING_SWPRINTFS \ + -D_CRT_NONSTDC_NO_DEPRECATE \ + -D_CRT_SECURE_NO_DEPRECATE \ + -D_MT \ + -DBOOST_MEM_FN_ENABLE_CDECL \ + -DCPPU_ENV=msci \ + -DFULL_DESK \ + -DM1500 \ + +gb_CPUDEFS := -DINTEL -D_X86_=1 + +gb_CFLAGS := \ + -Gd \ + -GR \ + -Gs \ + -GS \ + -Gy \ + -nologo \ + -Wall \ + -wd4005 \ + -wd4061 \ + -wd4127 \ + -wd4180 \ + -wd4189 \ + -wd4191 \ + -wd4217 \ + -wd4250 \ + -wd4251 \ + -wd4255 \ + -wd4275 \ + -wd4290 \ + -wd4294 \ + -wd4350 \ + -wd4355 \ + -wd4365 \ + -wd4503 \ + -wd4505 \ + -wd4511 \ + -wd4512 \ + -wd4514 \ + -wd4611 \ + -wd4619 \ + -wd4625 \ + -wd4626 \ + -wd4640 \ + -wd4668 \ + -wd4675 \ + -wd4692 \ + -wd4710 \ + -wd4711 \ + -wd4738 \ + -wd4786 \ + -wd4800 \ + -wd4820 \ + -wd4826 \ + -Zc:forScope,wchar_t- \ + -Zm500 \ + +gb_CXXFLAGS := \ + -Gd \ + -GR \ + -Gs \ + -GS \ + -Gy \ + -nologo \ + -Wall \ + -wd4005 \ + -wd4061 \ + -wd4127 \ + -wd4180 \ + -wd4189 \ + -wd4191 \ + -wd4217 \ + -wd4250 \ + -wd4251 \ + -wd4275 \ + -wd4290 \ + -wd4294 \ + -wd4350 \ + -wd4355 \ + -wd4365 \ + -wd4503 \ + -wd4505 \ + -wd4511 \ + -wd4512 \ + -wd4514 \ + -wd4611 \ + -wd4619 \ + -wd4625 \ + -wd4626 \ + -wd4640 \ + -wd4668 \ + -wd4675 \ + -wd4692 \ + -wd4710 \ + -wd4711 \ + -wd4738 \ + -wd4786 \ + -wd4800 \ + -wd4820 \ + -wd4826 \ + -Zc:forScope,wchar_t- \ + -Zm500 \ + +gb_STDLIBS := \ + uwinapi \ + kernel32 \ + msvcrt \ + msvcprt \ + oldnames \ + +ifneq ($(EXTERNAL_WARNINGS_NOT_ERRORS),TRUE) +gb_CFLAGS_WERROR := -WX +gb_CXXFLAGS_WERROR := -WX +endif + +gb_LinkTarget_EXCEPTIONFLAGS := \ + -DEXCEPTIONS_ON \ + -EHa \ + +gb_PrecompiledHeader_EXCEPTIONFLAGS := $(gb_LinkTarget_EXCEPTIONFLAGS) + + +gb_LinkTarget_NOEXCEPTIONFLAGS := \ + -DEXCEPTIONS_OFF \ + +gb_NoexPrecompiledHeader_NOEXCEPTIONFLAGS := $(gb_LinkTarget_NOEXCEPTIONFLAGS) + +gb_LinkTarget_LDFLAGS := \ + -MACHINE:IX86 \ + -NODEFAULTLIB \ + -OPT:NOREF \ + -SUBSYSTEM:CONSOLE \ + -safeseh \ + -nxcompat \ + -dynamicbase \ + $(patsubst %,-LIBPATH:%,$(filter-out .,$(subst ;, ,$(subst \,/,$(ILIB))))) \ + +ifneq ($(ENABLE_CRASHDUMP),) +gb_LinkTarget_LDFLAGS += -DEBUG +gb_CFLAGS+=-Zi +gb_CXXFLAGS+=-Zi +endif + +ifeq ($(gb_SYMBOL),$(true)) +gb_CXXFLAGS +=-Zi +gb_CFLAGS +=-Zi +endif + +ifeq ($(gb_DEBUGLEVEL),2) +gb_COMPILEROPTFLAGS := +gb_LinkTarget_LDFLAGS += -DEBUG +else +gb_COMPILEROPTFLAGS := -Ob1 -Oxs -Oy- +endif + +gb_COMPILERNOOPTFLAGS := -Od + + +# 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 $(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 + +gb_Helper_set_ld_path := PATH="$${PATH}:$(OUTDIR)/bin" + +# CObject class + +ifeq ($(gb_FULLDEPS),$(true)) +define gb_CObject__command_deponcompile +$(call gb_Helper_abbreviate_dirs_native,\ + $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ + $(filter-out -DPRECOMPILED_HEADERS,$(4)) $(5) \ + -I$(dir $(3)) \ + $(filter-out -I$(COMPATH)% %/pch -I$(JAVA_HOME),$(6)) \ + $(3) \ + -f - \ + | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ + -v OBJECTFILE=$(1) \ + -v OUTDIR=$(OUTDIR)/ \ + -v WORKDIR=$(WORKDIR)/ \ + -v SRCDIR=$(SRCDIR)/ \ + -v REPODIR=$(REPODIR)/ \ + > $(call gb_CObject_get_dep_target,$(2))) +endef +else +CObject__command_deponcompile = +endif + +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) -Fd$(PDBFILE) \ + $(PCHFLAGS) \ + -I$(realpath $(dir $(3))) \ + $(INCLUDE) \ + -c $(realpath $(3)) \ + -Fo$(1)) +$(call gb_CObject__command_deponcompile,$(1),$(2),$(3),$(DEFS),$(CFLAGS),$(INCLUDE)) +endef + + +# CxxObject class + +ifeq ($(gb_FULLDEPS),$(true)) +define gb_CxxObject__command_deponcompile +$(call gb_Helper_abbreviate_dirs_native,\ + $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ + $(filter-out -DPRECOMPILED_HEADERS,$(4)) $(5) \ + -I$(dir $(3)) \ + $(filter-out -I$(COMPATH)% %/pch -I$(JAVA_HOME),$(6)) \ + $(3) \ + -f - \ + | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ + -v OBJECTFILE=$(1) \ + -v OUTDIR=$(OUTDIR)/ \ + -v WORKDIR=$(WORKDIR)/ \ + -v SRCDIR=$(SRCDIR)/ \ + -v REPODIR=$(REPODIR)/ \ + > $(call gb_CxxObject_get_dep_target,$(2))) + endef +else +gb_CxxObject__command_deponcompile = +endif + +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) -Fd$(PDBFILE)\ + $(PCHFLAGS) \ + -I$(realpath $(dir $(3))) \ + $(INCLUDE_STL) $(INCLUDE) \ + -c $(realpath $(3)) \ + -Fo$(1)) +$(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)) + +ifeq ($(gb_FULLDEPS),$(true)) +define gb_PrecompiledHeader__command_deponcompile +$(call gb_Helper_abbreviate_dirs_native,\ + $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ + $(4) $(5) \ + -I$(dir $(3)) \ + $(filter-out -I$(COMPATH)% -I$(JAVA_HOME),$(6)) \ + $(3) \ + -f - \ + | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ + -v OBJECTFILE=$(1) \ + -v OUTDIR=$(OUTDIR)/ \ + -v WORKDIR=$(WORKDIR)/ \ + -v SRCDIR=$(SRCDIR)/ \ + -v REPODIR=$(REPODIR)/ \ + > $(call gb_PrecompiledHeader_get_dep_target,$(2))) +endef +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) -Fd$(PDBFILE) \ + -I$(realpath $(dir $(3))) \ + $(6) \ + -c $(realpath $(3)) \ + -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)) + +ifeq ($(gb_FULLDEPS),$(true)) +define gb_NoexPrecompiledHeader__command_deponcompile +$(call gb_Helper_abbreviate_dirs_native,\ + $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ + $(4) $(5) \ + -I$(dir $(3)) \ + $(filter-out -I$(COMPATH)% -I$(JAVA_HOME),$(6)) \ + $(3) \ + -f - \ + | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ + -v OBJECTFILE=$(1) \ + -v OUTDIR=$(OUTDIR)/ \ + -v WORKDIR=$(WORKDIR)/ \ + -v SRCDIR=$(SRCDIR)/ \ + -v REPODIR=$(REPODIR)/ \ + > $(call gb_NoexPrecompiledHeader_get_dep_target,$(2))) +endef +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) -Fd$(PDBFILE) \ + -I$(realpath $(dir $(3))) \ + $(6) \ + -c $(realpath $(3)) \ + -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_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))) \ + $(foreach inc,$(subst ;, ,$(JDKINC)),-I$(inc)) \ + +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)) && \ + 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) \ + $(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,$(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 +gb_Library_TARGETTYPEFLAGS := -DLL +gb_Library_get_rpath := + +gb_Library_SYSPRE := i +gb_Library_PLAINEXT := .lib + +gb_Library_PLAINLIBS_NONE += \ + advapi32 \ + gdi32 \ + gnu_getopt \ + kernel32 \ + msvcrt \ + msvcprt \ + mpr \ + oldnames \ + ole32 \ + oleaut32 \ + shell32 \ + unicows \ + user32 \ + uuid \ + uwinapi \ + z \ + +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_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)) \ + +gb_Library_DLLEXT := .dll +gb_Library_MAJORVER := 3 +gb_Library_RTEXT := MSC$(gb_Library_DLLEXT) +gb_Library_OOOEXT := mi$(gb_Library_DLLEXT) +gb_Library_UNOEXT := .uno$(gb_Library_DLLEXT) +gb_Library_UNOVEREXT := $(gb_Library_MAJORVER)$(gb_Library_DLLEXT) +gb_Library_RTVEREXT := $(gb_Library_MAJORVER)$(gb_Library_RTEXT) + +gb_Library_DLLFILENAMES :=\ + $(foreach lib,$(gb_Library_OOOLIBS),$(lib):$(lib)$(gb_Library_OOOEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):$(lib)$(gb_Library_DLLEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(lib)$(gb_Library_DLLEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(lib)$(gb_Library_DLLEXT)) \ + $(foreach lib,$(gb_Library_RTLIBS),$(lib):$(lib)$(gb_Library_RTEXT)) \ + $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(lib)$(gb_Library_RTVEREXT)) \ + $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):$(lib)$(gb_Library_UNOEXT)) \ + $(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)) \ +) + +$(call gb_Library_get_target,$(1)) \ +$(call gb_Library_get_clean_target,$(1)) : AUXTARGETS := $(OUTDIR)/bin/$(notdir $(3)) + +ifneq ($(ENABLE_CRASHDUMP),) +$(call gb_Library_get_target,$(1)) \ +$(call gb_Library_get_clean_target,$(1)) : AUXTARGETS += \ + $(OUTDIR)/bin/$(notdir $(patsubst %.dll,%.pdb,$(3))) \ + $(OUTDIR)/bin/$(notdir $(patsubst %.dll,%.ilk,$(3))) \ + +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 +$(patsubst $(1):%,%,$(filter $(1):%,$(gb_Library_DLLFILENAMES))) +endef + + +# StaticLibrary class + +gb_StaticLibrary_DEFS := +gb_StaticLibrary_TARGETTYPEFLAGS := -LIB +gb_StaticLibrary_SYSPRE := +gb_StaticLibrary_PLAINEXT := .lib +gb_StaticLibrary_JPEGEXT := lib$(gb_StaticLibrary_PLAINEXT) + +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)) \ + +gb_StaticLibrary_FILENAMES := $(patsubst salcpprt:salcpprt%,salcpprt:cpprtl%,$(gb_StaticLibrary_FILENAMES)) + +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 + +gb_Executable_EXT := .exe +gb_Executable_TARGETTYPEFLAGS := -RELEASE -BASE:0x1b000000 -OPT:NOREF -INCREMENTAL:NO -DEBUG +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 \ +) + +$(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 + +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. + +# for now, no dependency on $(shell ls $(gb_smoketest_instset)) +# because that doesn't work before the instset is built +# and there is not much of a benefit anyway (gbuild not knowing about smoketest) +define gb_JunitTest_JunitTest_platform_longpathname_hack +$(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 : + INST_DIR=$$$$(cygpath -m `mktemp -d -t testinst.XXXXXX`) \ + && unzip -d "$$$${INST_DIR}" $$(gb_smoketest_instset) \ + && mv "$$$${INST_DIR}"/OOo_*_install-arc_$$(gb_defaultlangiso) "$$$${INST_DIR}"/opt\ + && mkdir -p $$(dir $$@) \ + && echo "$$$${INST_DIR}" > $$@ + +endef +else # OOO_TEST_SOFFICE +gb_JunitTest_JunitTest_platform_longpathname_hack = +endif # OOO_TEST_SOFFICE + +define gb_JunitTest_JunitTest_platform +$(call gb_JunitTest_JunitTest_platform_longpathname_hack,$(1)) + +$(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" + +# SrsPartMergeTarget + +gb_SrsPartMergeTarget_TRANSEXPRECOMMAND := PATH="$${PATH}:$(OUTDIR)/bin" + +# SrsPartTarget class + +gb_SrsPartTarget_RSCTARGET := $(OUTDIR)/bin/rsc.exe +gb_SrsPartTarget_RSCCOMMAND := SOLARBINDIR=$(OUTDIR)/bin $(gb_SrsPartTarget_RSCTARGET) + +ifeq ($(gb_FULLDEPS),$(true)) +define gb_SrsPartTarget__command_dep +$(call gb_Helper_abbreviate_dirs_native,\ + $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ + $(INCLUDE) \ + $(DEFS) \ + $(2) \ + -f - \ + | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ + -v OBJECTFILE=$(call gb_SrsPartTarget_get_target,$(1)) \ + -v OUTDIR=$(OUTDIR)/ \ + -v WORKDIR=$(WORKDIR)/ \ + -v SRCDIR=$(SRCDIR)/ \ + -v REPODIR=$(REPODIR)/ \ + > $(call gb_SrsPartTarget_get_dep_target,$(1))) +endef +else +gb_SrsPartTarget__command_dep = +endif + + +# ComponentTarget + +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: diff --git a/solenv/gbuild/platform/winmingw.mk b/solenv/gbuild/platform/winmingw.mk new file mode 100644 index 000000000000..b7864983aa86 --- /dev/null +++ b/solenv/gbuild/platform/winmingw.mk @@ -0,0 +1,605 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2009 by Sun Microsystems, Inc. +# +# 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. +# +#************************************************************************* + +GUI := WNT +COM := GCC + +gb_MKTEMP := mktemp -t gbuild.XXXXXX + +gb_CC := $(CC) +gb_CXX := $(CXX) +gb_LINK := $(shell $(CC) -print-prog-name=ld) +gb_AR := $(shell $(CC) -print-prog-name=ar) +gb_AWK := awk +ifeq ($(USE_MINGW),cygwin) +gb_MINGWLIBDIR := $(COMPATH)/lib/mingw +else +ifeq ($(USE_MINGW),cygwin-w64-mingw32) +gb_MINGWLIBDIR := $(COMPATH)/usr/i686-w64-mingw32/sys-root/mingw/lib +else +gb_MINGWLIBDIR := $(COMPATH)/lib +endif +endif +ifeq ($(MINGW_SHARED_GXXLIB),YES) +gb_MINGW_LIBSTDCPP := $(subst -l,,$(MINGW_SHARED_LIBSTDCPP)) +else +gb_MINGW_LIBSTDCPP := \ + stdc++ \ + moldname +endif +ifeq ($(MINGW_SHARED_GCCLIB),YES) +gb_MINGW_LIBGCC := \ + gcc_s \ + gcc +else +ifeq ($(MINGW_GCCLIB_EH),YES) +gb_MINGW_LIBGCC := \ + gcc \ + gcc_eh +else +gb_MINGW_LIBGCC := gcc +endif +endif + +gb_OSDEFS := \ + -DWINVER=0x0500 \ + -D_WIN32_IE=0x0500 \ + -DNT351 \ + -DWIN32 \ + -DWNT \ + +ifeq ($(GXX_INCLUDE_PATH),) +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) \ + -DCPPU_ENV=gcc3 \ + -D_MT \ + -D_NATIVE_WCHAR_T_DEFINED \ + -D_MSC_EXTENSIONS \ + -D_FORCENAMELESSUNION \ + +ifeq ($(USE_MINGW),cygwin-w64-mingw32) +gb_COMPILERDEFS +=-D_declspec=__declspec +endif + +gb_CPUDEFS := \ + -DINTEL \ + -D_M_IX86 \ + +gb_CFLAGS := \ + -Wall \ + -Wendif-labels \ + -Wextra \ + -fmessage-length=0 \ + -fno-strict-aliasing \ + -pipe \ + -nostdinc \ + +gb_CXXFLAGS := \ + -Wall \ + -Wendif-labels \ + -Wextra \ + -Wno-ctor-dtor-privacy \ + -Wno-non-virtual-dtor \ + -Wreturn-type \ + -Wshadow \ + -Wuninitialized \ + -fmessage-length=0 \ + -fno-strict-aliasing \ + -fno-use-cxa-atexit \ + -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) +endif +gb_LinkTarget_EXCEPTIONFLAGS := \ + -DEXCEPTIONS_ON \ + -fexceptions \ + -fno-enforce-eh-specs \ + +gb_PrecompiledHeader_EXCEPTIONFLAGS := $(gb_LinkTarget_EXCEPTIONFLAGS) + + +gb_LinkTarget_NOEXCEPTIONFLAGS := \ + -DEXCEPTIONS_OFF \ + -fno-exceptions \ + +gb_NoexPrecompiledHeader_NOEXCEPTIONFLAGS := $(gb_LinkTarget_NOEXCEPTIONFLAGS) + +gb_LinkTarget_LDFLAGS := \ + --export-all-symbols \ + --kill-at \ + --subsystem console \ + --exclude-libs ALL \ + --enable-stdcall-fixup \ + --enable-runtime-pseudo-reloc-v2 \ + -L$(gb_Library_DLLDIR) \ + $(patsubst %,-L%,$(filter-out .,$(subst ;, ,$(subst \,/,$(ILIB))))) \ + +ifeq ($(MINGW_GCCLIB_EH),YES) +gb_LinkTarget_LDFLAGS += -shared-libgcc +endif + +ifeq ($(gb_DEBUGLEVEL),2) +gb_COMPILEROPTFLAGS := -O0 +else +gb_COMPILEROPTFLAGS := -Os +endif + +gb_COMPILERNOOPTFLAGS := -O0 + +gb_STDLIBS := \ + mingwthrd \ + $(gb_MINGW_LIBSTDCPP) \ + mingw32 \ + $(gb_MINGW_LIBGCC) \ + uwinapi \ + moldname \ + mingwex \ + kernel32 \ + msvcrt \ + msvcprt \ + + +# 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 $(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)) +define gb_CObject__command_deponcompile +$(call gb_Helper_abbreviate_dirs_native,\ + $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ + $(filter-out -DPRECOMPILED_HEADERS,$(4)) $(5) \ + -I$(dir $(3)) \ + $(filter-out -I$(COMPATH)% %/pch -I$(JAVA_HOME),$(6)) \ + $(3) \ + -f - \ + | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ + -v OBJECTFILE=$(1) \ + -v OUTDIR=$(OUTDIR)/ \ + -v WORKDIR=$(WORKDIR)/ \ + -v SRCDIR=$(SRCDIR)/ \ + -v REPODIR=$(REPODIR)/ \ + > $(call gb_CObject_get_dep_target,$(2))) +endef +else +CObject__command_deponcompile = +endif + +define gb_CObject__command +$(call gb_Output_announce,$(2),$(true),C ,3) +$(call gb_Helper_abbreviate_dirs_native,\ + mkdir -p $(dir $(1)) && \ + $(gb_CC) \ + $(DEFS) $(CFLAGS) \ + -c $(3) \ + -o $(1) \ + -I$(dir $(3)) \ + $(INCLUDE)) +$(call gb_CObject__command_deponcompile,$(1),$(2),$(3),$(DEFS),$(CFLAGS),$(INCLUDE)) +endef + + + +# CxxObject class + +ifeq ($(gb_FULLDEPS),$(true)) +define gb_CxxObject__command_deponcompile +$(call gb_Helper_abbreviate_dirs_native,\ + $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ + $(filter-out -DPRECOMPILED_HEADERS,$(4)) $(5) \ + -I$(dir $(3)) \ + $(filter-out -I$(COMPATH)% %/pch -I$(JAVA_HOME),$(6)) \ + $(3) \ + -f - \ + | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ + -v OBJECTFILE=$(1) \ + -v OUTDIR=$(OUTDIR)/ \ + -v WORKDIR=$(WORKDIR)/ \ + -v SRCDIR=$(SRCDIR)/ \ + -v REPODIR=$(REPODIR)/ \ + > $(call gb_CxxObject_get_dep_target,$(2))) +endef +else +gb_CxxObject__command_deponcompile = +endif + +define gb_CxxObject__command +$(call gb_Output_announce,$(2),$(true),CXX,3) +$(call gb_Helper_abbreviate_dirs_native,\ + mkdir -p $(dir $(1)) && \ + $(gb_CXX) \ + $(DEFS) $(CXXFLAGS) \ + -c $(3) \ + -o $(1) \ + -I$(dir $(3)) \ + $(INCLUDE_STL) $(INCLUDE)) +$(call gb_CxxObject__command_deponcompile,$(1),$(2),$(3),$(DEFS),$(CXXFLAGS),$(INCLUDE_STL) $(INCLUDE)) +endef + + +# PrecompiledHeader class + +gb_PrecompiledHeader_EXT := .gch + +gb_PrecompiledHeader_get_enableflags = -I$(WORKDIR)/PrecompiledHeader/$(gb_PrecompiledHeader_DEBUGDIR) \ + -DPRECOMPILED_HEADERS \ + -Winvalid-pch \ + +ifeq ($(gb_FULLDEPS),$(true)) +define gb_PrecompiledHeader__command_deponcompile +$(call gb_Helper_abbreviate_dirs_native,\ + $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ + $(4) $(5) \ + -I$(dir $(3)) \ + $(filter-out -I$(COMPATH)% -I$(JAVA_HOME),$(6)) \ + $(3) \ + -f - \ + | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ + -v OBJECTFILE=$(1) \ + -v OUTDIR=$(OUTDIR)/ \ + -v WORKDIR=$(WORKDIR)/ \ + -v SRCDIR=$(SRCDIR)/ \ + -v REPODIR=$(REPODIR)/ \ + > $(call gb_PrecompiledHeader_get_dep_target,$(2))) +endef +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))) && \ + $(gb_CXX) \ + -x c++-header \ + $(4) $(5) \ + -I$(dir $(3)) \ + $(6) \ + -c $(3) \ + -o$(1)) +$(call gb_PrecompiledHeader__command_deponcompile,$(1),$(2),$(3),$(4),$(5),$(6)) + +endef + +# NoexPrecompiledHeader class + +gb_NoexPrecompiledHeader_EXT := .gch + +gb_NoexPrecompiledHeader_get_enableflags = -I$(WORKDIR)/NoexPrecompiledHeader/$(gb_NoexPrecompiledHeader_DEBUGDIR) \ + -Winvalid-pch \ + +ifeq ($(gb_FULLDEPS),$(true)) +define gb_NoexPrecompiledHeader__command_deponcompile +$(call gb_Helper_abbreviate_dirs_native,\ + $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ + $(4) $(5) \ + -I$(dir $(3)) \ + $(filter-out -I$(COMPATH)% -I$(JAVA_HOME),$(6)) \ + $(3) \ + -f - \ + | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ + -v OBJECTFILE=$(1) \ + -v OUTDIR=$(OUTDIR)/ \ + -v WORKDIR=$(WORKDIR)/ \ + -v SRCDIR=$(SRCDIR)/ \ + -v REPODIR=$(REPODIR)/ \ + > $(call gb_NoexPrecompiledHeader_get_dep_target,$(2))) +endef +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))) && \ + $(gb_CXX) \ + -x c++-header \ + $(4) $(5) \ + -I$(dir $(3)) \ + $(6) \ + -c $(3) \ + -o$(1)) +$(call gb_NoexPrecompiledHeader__command_deponcompile,$(1),$(2),$(3),$(4),$(5),$(6)) + +endef + + +# LinkTarget class + +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 +gb_LinkTarget_CFLAGS += -ggdb3 -finline-limit=0 -fno-inline -fno-default-inline + +endif + +gb_LinkTarget_INCLUDE :=\ + $(filter-out %/stl, $(subst -I. , ,$(SOLARINC))) \ + $(foreach inc,$(subst ;, ,$(JDKINC)),-I$(inc)) \ + +gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC))) + +define gb_LinkTarget__command_dynamiclinkexecutable +$(call gb_Output_announce,$(2),$(true),LNK,4) +$(call gb_Helper_abbreviate_dirs_native,\ + mkdir -p $(dir $(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) \ + $(gb_Executable_TARGETTYPEFLAGS) \ + $(LDFLAGS) \ + $(gb_MINGWLIBDIR)/crt2.o \ + $(MINGW_CLIB_DIR)/crtbegin.o \ + @$${RESPONSEFILE} \ + --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)) +endef + +define gb_LinkTarget__command_dynamiclinklibrary +$(call gb_Helper_abbreviate_dirs_native,\ + mkdir -p $(dir $(1)) && \ + 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) \ + $(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,$(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)) +endef + +define gb_LinkTarget__command_staticlinklibrary +$(call gb_Helper_abbreviate_dirs_native,\ + mkdir -p $(dir $(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_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 +gb_Library_TARGETTYPEFLAGS := -shared +gb_Library_get_rpath := + +gb_Library_SYSPRE := i +gb_Library_PLAINEXT := .lib + +gb_Library_PLAINLIBS_NONE += \ + mingwthrd \ + mingw32 \ + mingwex \ + $(gb_MINGW_LIBSTDCPP) \ + $(gb_MINGW_LIBGCC) \ + advapi32 \ + gdi32 \ + kernel32 \ + msvcrt \ + msvcprt \ + mpr \ + moldname \ + ole32 \ + oleaut32 \ + shell32 \ + unicows \ + user32 \ + uuid \ + uwinapi \ + z \ + +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_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)) \ + +gb_Library_DLLEXT := .dll +gb_Library_MAJORVER := 3 +gb_Library_RTEXT := gcc3$(gb_Library_DLLEXT) +gb_Library_OOOEXT := gi$(gb_Library_DLLEXT) +gb_Library_UNOEXT := .uno$(gb_Library_DLLEXT) +gb_Library_UNOVEREXT := $(gb_Library_MAJORVER)$(gb_Library_DLLEXT) +gb_Library_RTVEREXT := $(gb_Library_MAJORVER)$(gb_Library_RTEXT) + +gb_Library_DLLFILENAMES := \ + $(foreach lib,$(gb_Library_OOOLIBS),$(lib):$(lib)$(gb_Library_OOOEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):$(lib)$(gb_Library_DLLEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(lib)$(gb_Library_DLLEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(lib)$(gb_Library_DLLEXT)) \ + $(foreach lib,$(gb_Library_RTLIBS),$(lib):$(lib)$(gb_Library_RTEXT)) \ + $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(lib)$(gb_Library_RTVEREXT)) \ + $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):$(lib)$(gb_Library_UNOEXT)) \ + $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):$(lib)$(gb_Library_UNOEXT)) \ + $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(lib)$(gb_Library_UNOVEREXT)) \ + +gb_Library_IARCSYSPRE := lib +gb_Library_IARCEXT := .a + +gb_Library_ILIBEXT := .lib + +define gb_Library_Library_platform +$(call gb_LinkTarget_set_dlltarget,$(2),$(3)) + +$(call gb_LinkTarget_set_auxtargets,$(2),\ + $(patsubst %.dll,%.map,$(3)) \ +) + +$(call gb_Library_get_target,$(1)) \ +$(call gb_Library_get_clean_target,$(1)) : AUXTARGETS := $(OUTDIR)/bin/$(notdir $(3)) + +$(call gb_Deliver_add_deliverable,$(OUTDIR)/bin/$(notdir $(3)),$(3)) + +endef + +define gb_Library_get_dllname +$(patsubst $(1):%,%,$(filter $(1):%,$(gb_Library_DLLFILENAMES))) +endef + + +# StaticLibrary class + +gb_StaticLibrary_DEFS := +gb_StaticLibrary_SYSPRE := lib +gb_StaticLibrary_PLAINEXT := .a +gb_StaticLibrary_JPEGEXT := lib$(gb_StaticLibrary_PLAINEXT) + +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)) \ + +gb_StaticLibrary_FILENAMES := $(patsubst salcpprt:salcpprt%,salcpprt:cpprtl%,$(gb_StaticLibrary_FILENAMES)) + +gb_StaticLibrary_StaticLibrary_platform = + +# Executable class + +gb_Executable_EXT := .exe +gb_Executable_TARGETTYPEFLAGS := +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" + +# SrsPartMergeTarget + +gb_SrsPartMergeTarget_TRANSEXPRECOMMAND := PATH="$${PATH}:$(OUTDIR)/bin" + +# SrsPartTarget class + +gb_SrsPartTarget_RSCTARGET := $(OUTDIR)/bin/rsc.exe +gb_SrsPartTarget_RSCCOMMAND := SOLARBINDIR=$(OUTDIR)/bin $(gb_SrsPartTarget_RSCTARGET) + +ifeq ($(gb_FULLDEPS),$(true)) +define gb_SrsPartTarget__command_dep +$(call gb_Helper_abbreviate_dirs_native,\ + $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ + $(INCLUDE) \ + $(DEFS) \ + $(2) \ + -f - \ + | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ + -v OBJECTFILE=$(call gb_SrsPartTarget_get_target,$(1)) \ + -v OUTDIR=$(OUTDIR)/ \ + -v WORKDIR=$(WORKDIR)/ \ + -v SRCDIR=$(SRCDIR)/ \ + -v REPODIR=$(REPODIR)/ \ + > $(call gb_SrsPartTarget_get_dep_target,$(1))) +endef +else +gb_SrsPartTarget__command_dep = +endif + +# ComponentTarget + +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: diff --git a/solenv/gbuild/processdelivered.awk b/solenv/gbuild/processdelivered.awk new file mode 100644 index 000000000000..9fdb2ec30c74 --- /dev/null +++ b/solenv/gbuild/processdelivered.awk @@ -0,0 +1,36 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +BEGIN { + RS=" " + FS=":" +} + +{ + if( NF == 2 ) + print "COPY " $1 " " $2; +} diff --git a/solenv/gbuild/processdeps.awk b/solenv/gbuild/processdeps.awk new file mode 100644 index 000000000000..9014427fa461 --- /dev/null +++ b/solenv/gbuild/processdeps.awk @@ -0,0 +1,78 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +# this awk script mangles makedepend output for a single object file +# usage: +# awk -f .../processdeps.awk \ +# -v OUTDIR=outdir \ +# -v SRCDIR=srcdir \ +# -v WORKDIR=workdir \ +# -v REPODIR=repodir \ +# -v OBJECTFILE=objectfile +# called like this the script will read from stdin +# and write to stdout. It will: +# - replace the objectfile with the one given on the commandline +# - normalize paths to mixed paths (replacing all \ with /) +# - replace the string given as WORKDIR with $(WORKDIR)/ +# - replace the string given as OUTDIR with $(OUTDIR)/ +# - replace the string given as SRCDIR with $(SRCDIR)/ +# - replace the string given as REPODIR with $(REPODIR)/ +# - translates absolute mixed windows paths to cygwin paths by +# substituting a path starting with X:... to /cygdrive/X/... + +function mangle_path(path) { + gsub("\\\\", "/", path); + if( path ~ /^[a-zA-Z]:/ ) + path = tolower(substr(path,0,1)) substr(path,2); + gsub(WORKDIR, "$(WORKDIR)/", path); + gsub(OUTDIR, "$(OUTDIR)/", path); + gsub(SRCDIR, "$(SRCDIR)/", path); + gsub(REPODIR, "$(REPODIR)/", path); + if( path ~ /^[a-zA-Z]:/ ) + path = "/cygdrive/" tolower(substr(path,0,1)) substr(path,3); + return 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 "\t" mangle_path($2) " \\"; +} + +END { + print "\n"; +} diff --git a/solenv/gbuild/templates/AllLangResTarget.mk b/solenv/gbuild/templates/AllLangResTarget.mk new file mode 100644 index 000000000000..3f8d1237938d --- /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: diff --git a/solenv/gbuild/templates/CppunitTest.mk b/solenv/gbuild/templates/CppunitTest.mk new file mode 100644 index 000000000000..28e940688019 --- /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: diff --git a/solenv/gbuild/templates/Executable.mk b/solenv/gbuild/templates/Executable.mk new file mode 100644 index 000000000000..34d360a0c0a8 --- /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: diff --git a/solenv/gbuild/templates/JunitTest.mk b/solenv/gbuild/templates/JunitTest.mk new file mode 100644 index 000000000000..d4e515fa2d8e --- /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: diff --git a/solenv/gbuild/templates/Library.mk b/solenv/gbuild/templates/Library.mk new file mode 100644 index 000000000000..b484cc6fdf1c --- /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: 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..3b2f7fa04d98 --- /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: diff --git a/solenv/gbuild/templates/Package.mk b/solenv/gbuild/templates/Package.mk new file mode 100644 index 000000000000..c71ca5f4f3ae --- /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: diff --git a/solenv/gbuild/templates/StaticLibrary.mk b/solenv/gbuild/templates/StaticLibrary.mk new file mode 100644 index 000000000000..0bee7b930ab8 --- /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: diff --git a/soltools/HIDCompiler/makefile.mk b/solenv/gbuild/templates/makefile.mk index 8c65fc09cd21..88cd9dfe08b8 100644 --- a/soltools/HIDCompiler/makefile.mk +++ b/solenv/gbuild/templates/makefile.mk @@ -26,38 +26,15 @@ #************************************************************************* PRJ=.. +TARGET=prj -PRJNAME=soltools -TARGET=hidc -TARGETTYPE=CUI -LIBTARGET=no -NO_DEFAULT_STL=TRUE -INCPRE=$(MISC) +.INCLUDE : settings.mk -# --- Settings ----------------------------------------------------- +.IF "$(VERBOSE)"!="" +VERBOSEFLAG := +.ELSE +VERBOSEFLAG := -s +.ENDIF -.INCLUDE : $(PRJ)$/util$/makefile.pmk -.INCLUDE : settings.mk -.INCLUDE : libs.mk -CDEFS+= -DYY_NEVER_INTERACTIVE=1 - -UWINAPILIB=$(0) - -# --- Files -------------------------------------------------------- - -# HID compiler -APP1TARGET= $(TARGET) -APP1OBJS= $(OBJ)$/wrap_hidclex.obj -APP1DEPN= $(OBJ)$/wrap_hidclex.obj -APP1LIBSALCPPRT= - -DEPOBJFILES=$(APP1OBJS) - -# --- Targets ------------------------------------------------------ - -.INCLUDE : target.mk - -$(MISC)$/%_yy.cxx : %lex.l - flex -l -8 -o$@ $< - -$(OBJ)$/wrap_hidclex.obj: $(MISC)$/hidc_yy.cxx +all: + cd $(PRJ) && $(GNUMAKE) $(VERBOSEFLAG) -r -j$(MAXPROCESS) $(gb_MAKETARGET) && $(GNUMAKE) $(VERBOSEFLAG) -r deliverlog diff --git a/solenv/inc/_cppunit.mk b/solenv/inc/_cppunit.mk index 8d9e45d33331..85804dd41ac6 100644 --- a/solenv/inc/_cppunit.mk +++ b/solenv/inc/_cppunit.mk @@ -1,7 +1,7 @@ # unroll begin # ---- create the test libraries ------------------------------------ -.IF "$(SHL1TARGET)"!="" +.IF "$(SHL1TARGETN)"!="" ALLTAR : test1 test1 .PHONY : $(SHL1TARGETN) @echo ---------------------------------------------------------- @@ -13,7 +13,7 @@ test1 .PHONY : $(SHL1TARGETN) # unroll begin # ---- create the test libraries ------------------------------------ -.IF "$(SHL2TARGET)"!="" +.IF "$(SHL2TARGETN)"!="" ALLTAR : test2 test2 .PHONY : $(SHL2TARGETN) @echo ---------------------------------------------------------- @@ -25,7 +25,7 @@ test2 .PHONY : $(SHL2TARGETN) # unroll begin # ---- create the test libraries ------------------------------------ -.IF "$(SHL3TARGET)"!="" +.IF "$(SHL3TARGETN)"!="" ALLTAR : test3 test3 .PHONY : $(SHL3TARGETN) @echo ---------------------------------------------------------- @@ -37,7 +37,7 @@ test3 .PHONY : $(SHL3TARGETN) # unroll begin # ---- create the test libraries ------------------------------------ -.IF "$(SHL4TARGET)"!="" +.IF "$(SHL4TARGETN)"!="" ALLTAR : test4 test4 .PHONY : $(SHL4TARGETN) @echo ---------------------------------------------------------- @@ -49,7 +49,7 @@ test4 .PHONY : $(SHL4TARGETN) # unroll begin # ---- create the test libraries ------------------------------------ -.IF "$(SHL5TARGET)"!="" +.IF "$(SHL5TARGETN)"!="" ALLTAR : test5 test5 .PHONY : $(SHL5TARGETN) @echo ---------------------------------------------------------- @@ -61,7 +61,7 @@ test5 .PHONY : $(SHL5TARGETN) # unroll begin # ---- create the test libraries ------------------------------------ -.IF "$(SHL6TARGET)"!="" +.IF "$(SHL6TARGETN)"!="" ALLTAR : test6 test6 .PHONY : $(SHL6TARGETN) @echo ---------------------------------------------------------- @@ -73,7 +73,7 @@ test6 .PHONY : $(SHL6TARGETN) # unroll begin # ---- create the test libraries ------------------------------------ -.IF "$(SHL7TARGET)"!="" +.IF "$(SHL7TARGETN)"!="" ALLTAR : test7 test7 .PHONY : $(SHL7TARGETN) @echo ---------------------------------------------------------- @@ -85,7 +85,7 @@ test7 .PHONY : $(SHL7TARGETN) # unroll begin # ---- create the test libraries ------------------------------------ -.IF "$(SHL8TARGET)"!="" +.IF "$(SHL8TARGETN)"!="" ALLTAR : test8 test8 .PHONY : $(SHL8TARGETN) @echo ---------------------------------------------------------- @@ -97,7 +97,7 @@ test8 .PHONY : $(SHL8TARGETN) # unroll begin # ---- create the test libraries ------------------------------------ -.IF "$(SHL9TARGET)"!="" +.IF "$(SHL9TARGETN)"!="" ALLTAR : test9 test9 .PHONY : $(SHL9TARGETN) @echo ---------------------------------------------------------- @@ -109,7 +109,7 @@ test9 .PHONY : $(SHL9TARGETN) # unroll begin # ---- create the test libraries ------------------------------------ -.IF "$(SHL10TARGET)"!="" +.IF "$(SHL10TARGETN)"!="" ALLTAR : test10 test10 .PHONY : $(SHL10TARGETN) @echo ---------------------------------------------------------- diff --git a/solenv/inc/_tg_rslb.mk b/solenv/inc/_tg_rslb.mk index 8248733fb6fb..1edebb8a04df 100644..100755 --- a/solenv/inc/_tg_rslb.mk +++ b/solenv/inc/_tg_rslb.mk @@ -2,22 +2,6 @@ .IF "$(RESLIB1TARGETN)"!="" -.IF "$(BUILDHIDS)"!="" -HIDRES1PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/$(RESLIB1NAME)_res.hid - -#HACK cut off the dirty srs files which are included from solver -RESLIB1HIDFILES:=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,.srs,_srs.hid $(RESLIB1SRSFILES))) -$(HIDRES1PARTICLE): $(RESLIB1HIDFILES) - @echo "Making: " $(@:f) - @$(IFEXIST) $@ $(THEN) $(RM:s/+//) $@ $(FI) -# need to strip since solaris cannot handle tab-only whitespace here - $(COMMAND_ECHO)$(TYPE) $(mktmp $(strip, $(subst,/,/ $(RESLIB1HIDFILES))) )| xargs -s 1000 cat > $@.$(ROUT).tmp - @$(RENAME) $@.$(ROUT).tmp $@ - -ALLTAR : $(HIDRES1PARTICLE) - -.ENDIF # "$(BUILDHIDS)"!="" - $(RSC_MULTI1) : \ $(RESLIB1SRSFILES) \ $(RESLIB1TARGETN) \ @@ -79,22 +63,6 @@ $(RESLIB1TARGETN): \ .IF "$(RESLIB2TARGETN)"!="" -.IF "$(BUILDHIDS)"!="" -HIDRES2PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/$(RESLIB2NAME)_res.hid - -#HACK cut off the dirty srs files which are included from solver -RESLIB2HIDFILES:=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,.srs,_srs.hid $(RESLIB2SRSFILES))) -$(HIDRES2PARTICLE): $(RESLIB2HIDFILES) - @echo "Making: " $(@:f) - @$(IFEXIST) $@ $(THEN) $(RM:s/+//) $@ $(FI) -# need to strip since solaris cannot handle tab-only whitespace here - $(COMMAND_ECHO)$(TYPE) $(mktmp $(strip, $(subst,/,/ $(RESLIB2HIDFILES))) )| xargs -s 1000 cat > $@.$(ROUT).tmp - @$(RENAME) $@.$(ROUT).tmp $@ - -ALLTAR : $(HIDRES2PARTICLE) - -.ENDIF # "$(BUILDHIDS)"!="" - $(RSC_MULTI2) : \ $(RESLIB2SRSFILES) \ $(RESLIB2TARGETN) \ @@ -156,22 +124,6 @@ $(RESLIB2TARGETN): \ .IF "$(RESLIB3TARGETN)"!="" -.IF "$(BUILDHIDS)"!="" -HIDRES3PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/$(RESLIB3NAME)_res.hid - -#HACK cut off the dirty srs files which are included from solver -RESLIB3HIDFILES:=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,.srs,_srs.hid $(RESLIB3SRSFILES))) -$(HIDRES3PARTICLE): $(RESLIB3HIDFILES) - @echo "Making: " $(@:f) - @$(IFEXIST) $@ $(THEN) $(RM:s/+//) $@ $(FI) -# need to strip since solaris cannot handle tab-only whitespace here - $(COMMAND_ECHO)$(TYPE) $(mktmp $(strip, $(subst,/,/ $(RESLIB3HIDFILES))) )| xargs -s 1000 cat > $@.$(ROUT).tmp - @$(RENAME) $@.$(ROUT).tmp $@ - -ALLTAR : $(HIDRES3PARTICLE) - -.ENDIF # "$(BUILDHIDS)"!="" - $(RSC_MULTI3) : \ $(RESLIB3SRSFILES) \ $(RESLIB3TARGETN) \ @@ -233,22 +185,6 @@ $(RESLIB3TARGETN): \ .IF "$(RESLIB4TARGETN)"!="" -.IF "$(BUILDHIDS)"!="" -HIDRES4PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/$(RESLIB4NAME)_res.hid - -#HACK cut off the dirty srs files which are included from solver -RESLIB4HIDFILES:=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,.srs,_srs.hid $(RESLIB4SRSFILES))) -$(HIDRES4PARTICLE): $(RESLIB4HIDFILES) - @echo "Making: " $(@:f) - @$(IFEXIST) $@ $(THEN) $(RM:s/+//) $@ $(FI) -# need to strip since solaris cannot handle tab-only whitespace here - $(COMMAND_ECHO)$(TYPE) $(mktmp $(strip, $(subst,/,/ $(RESLIB4HIDFILES))) )| xargs -s 1000 cat > $@.$(ROUT).tmp - @$(RENAME) $@.$(ROUT).tmp $@ - -ALLTAR : $(HIDRES4PARTICLE) - -.ENDIF # "$(BUILDHIDS)"!="" - $(RSC_MULTI4) : \ $(RESLIB4SRSFILES) \ $(RESLIB4TARGETN) \ @@ -310,22 +246,6 @@ $(RESLIB4TARGETN): \ .IF "$(RESLIB5TARGETN)"!="" -.IF "$(BUILDHIDS)"!="" -HIDRES5PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/$(RESLIB5NAME)_res.hid - -#HACK cut off the dirty srs files which are included from solver -RESLIB5HIDFILES:=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,.srs,_srs.hid $(RESLIB5SRSFILES))) -$(HIDRES5PARTICLE): $(RESLIB5HIDFILES) - @echo "Making: " $(@:f) - @$(IFEXIST) $@ $(THEN) $(RM:s/+//) $@ $(FI) -# need to strip since solaris cannot handle tab-only whitespace here - $(COMMAND_ECHO)$(TYPE) $(mktmp $(strip, $(subst,/,/ $(RESLIB5HIDFILES))) )| xargs -s 1000 cat > $@.$(ROUT).tmp - @$(RENAME) $@.$(ROUT).tmp $@ - -ALLTAR : $(HIDRES5PARTICLE) - -.ENDIF # "$(BUILDHIDS)"!="" - $(RSC_MULTI5) : \ $(RESLIB5SRSFILES) \ $(RESLIB5TARGETN) \ @@ -387,22 +307,6 @@ $(RESLIB5TARGETN): \ .IF "$(RESLIB6TARGETN)"!="" -.IF "$(BUILDHIDS)"!="" -HIDRES6PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/$(RESLIB6NAME)_res.hid - -#HACK cut off the dirty srs files which are included from solver -RESLIB6HIDFILES:=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,.srs,_srs.hid $(RESLIB6SRSFILES))) -$(HIDRES6PARTICLE): $(RESLIB6HIDFILES) - @echo "Making: " $(@:f) - @$(IFEXIST) $@ $(THEN) $(RM:s/+//) $@ $(FI) -# need to strip since solaris cannot handle tab-only whitespace here - $(COMMAND_ECHO)$(TYPE) $(mktmp $(strip, $(subst,/,/ $(RESLIB6HIDFILES))) )| xargs -s 1000 cat > $@.$(ROUT).tmp - @$(RENAME) $@.$(ROUT).tmp $@ - -ALLTAR : $(HIDRES6PARTICLE) - -.ENDIF # "$(BUILDHIDS)"!="" - $(RSC_MULTI6) : \ $(RESLIB6SRSFILES) \ $(RESLIB6TARGETN) \ @@ -464,22 +368,6 @@ $(RESLIB6TARGETN): \ .IF "$(RESLIB7TARGETN)"!="" -.IF "$(BUILDHIDS)"!="" -HIDRES7PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/$(RESLIB7NAME)_res.hid - -#HACK cut off the dirty srs files which are included from solver -RESLIB7HIDFILES:=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,.srs,_srs.hid $(RESLIB7SRSFILES))) -$(HIDRES7PARTICLE): $(RESLIB7HIDFILES) - @echo "Making: " $(@:f) - @$(IFEXIST) $@ $(THEN) $(RM:s/+//) $@ $(FI) -# need to strip since solaris cannot handle tab-only whitespace here - $(COMMAND_ECHO)$(TYPE) $(mktmp $(strip, $(subst,/,/ $(RESLIB7HIDFILES))) )| xargs -s 1000 cat > $@.$(ROUT).tmp - @$(RENAME) $@.$(ROUT).tmp $@ - -ALLTAR : $(HIDRES7PARTICLE) - -.ENDIF # "$(BUILDHIDS)"!="" - $(RSC_MULTI7) : \ $(RESLIB7SRSFILES) \ $(RESLIB7TARGETN) \ @@ -541,22 +429,6 @@ $(RESLIB7TARGETN): \ .IF "$(RESLIB8TARGETN)"!="" -.IF "$(BUILDHIDS)"!="" -HIDRES8PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/$(RESLIB8NAME)_res.hid - -#HACK cut off the dirty srs files which are included from solver -RESLIB8HIDFILES:=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,.srs,_srs.hid $(RESLIB8SRSFILES))) -$(HIDRES8PARTICLE): $(RESLIB8HIDFILES) - @echo "Making: " $(@:f) - @$(IFEXIST) $@ $(THEN) $(RM:s/+//) $@ $(FI) -# need to strip since solaris cannot handle tab-only whitespace here - $(COMMAND_ECHO)$(TYPE) $(mktmp $(strip, $(subst,/,/ $(RESLIB8HIDFILES))) )| xargs -s 1000 cat > $@.$(ROUT).tmp - @$(RENAME) $@.$(ROUT).tmp $@ - -ALLTAR : $(HIDRES8PARTICLE) - -.ENDIF # "$(BUILDHIDS)"!="" - $(RSC_MULTI8) : \ $(RESLIB8SRSFILES) \ $(RESLIB8TARGETN) \ @@ -618,22 +490,6 @@ $(RESLIB8TARGETN): \ .IF "$(RESLIB9TARGETN)"!="" -.IF "$(BUILDHIDS)"!="" -HIDRES9PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/$(RESLIB9NAME)_res.hid - -#HACK cut off the dirty srs files which are included from solver -RESLIB9HIDFILES:=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,.srs,_srs.hid $(RESLIB9SRSFILES))) -$(HIDRES9PARTICLE): $(RESLIB9HIDFILES) - @echo "Making: " $(@:f) - @$(IFEXIST) $@ $(THEN) $(RM:s/+//) $@ $(FI) -# need to strip since solaris cannot handle tab-only whitespace here - $(COMMAND_ECHO)$(TYPE) $(mktmp $(strip, $(subst,/,/ $(RESLIB9HIDFILES))) )| xargs -s 1000 cat > $@.$(ROUT).tmp - @$(RENAME) $@.$(ROUT).tmp $@ - -ALLTAR : $(HIDRES9PARTICLE) - -.ENDIF # "$(BUILDHIDS)"!="" - $(RSC_MULTI9) : \ $(RESLIB9SRSFILES) \ $(RESLIB9TARGETN) \ @@ -695,22 +551,6 @@ $(RESLIB9TARGETN): \ .IF "$(RESLIB10TARGETN)"!="" -.IF "$(BUILDHIDS)"!="" -HIDRES10PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/$(RESLIB10NAME)_res.hid - -#HACK cut off the dirty srs files which are included from solver -RESLIB10HIDFILES:=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,.srs,_srs.hid $(RESLIB10SRSFILES))) -$(HIDRES10PARTICLE): $(RESLIB10HIDFILES) - @echo "Making: " $(@:f) - @$(IFEXIST) $@ $(THEN) $(RM:s/+//) $@ $(FI) -# need to strip since solaris cannot handle tab-only whitespace here - $(COMMAND_ECHO)$(TYPE) $(mktmp $(strip, $(subst,/,/ $(RESLIB10HIDFILES))) )| xargs -s 1000 cat > $@.$(ROUT).tmp - @$(RENAME) $@.$(ROUT).tmp $@ - -ALLTAR : $(HIDRES10PARTICLE) - -.ENDIF # "$(BUILDHIDS)"!="" - $(RSC_MULTI10) : \ $(RESLIB10SRSFILES) \ $(RESLIB10TARGETN) \ diff --git a/solenv/inc/_tg_scp.mk b/solenv/inc/_tg_scp.mk index 33ff97e21986..d13e57990592 100644 --- a/solenv/inc/_tg_scp.mk +++ b/solenv/inc/_tg_scp.mk @@ -7,7 +7,7 @@ $(PAR)/%.par : $(SOLARPARDIR)/%.par @@-$(MKDIRHIER) $(@:d:d) $(COMMAND_ECHO)$(COPY) $< $@ -LOCALSCP1FILES=$(foreach,i,$(SCP1FILES) $(foreach,j,$(SCP1LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) +LOCALSCP1FILES+=$(foreach,i,$(SCP1FILES) $(foreach,j,$(SCP1LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) $(SCP1TARGETN): $(LOCALSCP1FILES) @echo "Making: " $(@:f) @@ -25,7 +25,7 @@ $(PAR)/%.par : $(SOLARPARDIR)/%.par @@-$(MKDIRHIER) $(@:d:d) $(COMMAND_ECHO)$(COPY) $< $@ -LOCALSCP2FILES=$(foreach,i,$(SCP2FILES) $(foreach,j,$(SCP2LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) +LOCALSCP2FILES+=$(foreach,i,$(SCP2FILES) $(foreach,j,$(SCP2LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) $(SCP2TARGETN): $(LOCALSCP2FILES) @echo "Making: " $(@:f) @@ -43,7 +43,7 @@ $(PAR)/%.par : $(SOLARPARDIR)/%.par @@-$(MKDIRHIER) $(@:d:d) $(COMMAND_ECHO)$(COPY) $< $@ -LOCALSCP3FILES=$(foreach,i,$(SCP3FILES) $(foreach,j,$(SCP3LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) +LOCALSCP3FILES+=$(foreach,i,$(SCP3FILES) $(foreach,j,$(SCP3LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) $(SCP3TARGETN): $(LOCALSCP3FILES) @echo "Making: " $(@:f) @@ -61,7 +61,7 @@ $(PAR)/%.par : $(SOLARPARDIR)/%.par @@-$(MKDIRHIER) $(@:d:d) $(COMMAND_ECHO)$(COPY) $< $@ -LOCALSCP4FILES=$(foreach,i,$(SCP4FILES) $(foreach,j,$(SCP4LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) +LOCALSCP4FILES+=$(foreach,i,$(SCP4FILES) $(foreach,j,$(SCP4LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) $(SCP4TARGETN): $(LOCALSCP4FILES) @echo "Making: " $(@:f) @@ -79,7 +79,7 @@ $(PAR)/%.par : $(SOLARPARDIR)/%.par @@-$(MKDIRHIER) $(@:d:d) $(COMMAND_ECHO)$(COPY) $< $@ -LOCALSCP5FILES=$(foreach,i,$(SCP5FILES) $(foreach,j,$(SCP5LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) +LOCALSCP5FILES+=$(foreach,i,$(SCP5FILES) $(foreach,j,$(SCP5LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) $(SCP5TARGETN): $(LOCALSCP5FILES) @echo "Making: " $(@:f) @@ -97,7 +97,7 @@ $(PAR)/%.par : $(SOLARPARDIR)/%.par @@-$(MKDIRHIER) $(@:d:d) $(COMMAND_ECHO)$(COPY) $< $@ -LOCALSCP6FILES=$(foreach,i,$(SCP6FILES) $(foreach,j,$(SCP6LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) +LOCALSCP6FILES+=$(foreach,i,$(SCP6FILES) $(foreach,j,$(SCP6LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) $(SCP6TARGETN): $(LOCALSCP6FILES) @echo "Making: " $(@:f) @@ -115,7 +115,7 @@ $(PAR)/%.par : $(SOLARPARDIR)/%.par @@-$(MKDIRHIER) $(@:d:d) $(COMMAND_ECHO)$(COPY) $< $@ -LOCALSCP7FILES=$(foreach,i,$(SCP7FILES) $(foreach,j,$(SCP7LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) +LOCALSCP7FILES+=$(foreach,i,$(SCP7FILES) $(foreach,j,$(SCP7LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) $(SCP7TARGETN): $(LOCALSCP7FILES) @echo "Making: " $(@:f) @@ -133,7 +133,7 @@ $(PAR)/%.par : $(SOLARPARDIR)/%.par @@-$(MKDIRHIER) $(@:d:d) $(COMMAND_ECHO)$(COPY) $< $@ -LOCALSCP8FILES=$(foreach,i,$(SCP8FILES) $(foreach,j,$(SCP8LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) +LOCALSCP8FILES+=$(foreach,i,$(SCP8FILES) $(foreach,j,$(SCP8LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) $(SCP8TARGETN): $(LOCALSCP8FILES) @echo "Making: " $(@:f) @@ -151,7 +151,7 @@ $(PAR)/%.par : $(SOLARPARDIR)/%.par @@-$(MKDIRHIER) $(@:d:d) $(COMMAND_ECHO)$(COPY) $< $@ -LOCALSCP9FILES=$(foreach,i,$(SCP9FILES) $(foreach,j,$(SCP9LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) +LOCALSCP9FILES+=$(foreach,i,$(SCP9FILES) $(foreach,j,$(SCP9LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) $(SCP9TARGETN): $(LOCALSCP9FILES) @echo "Making: " $(@:f) @@ -169,7 +169,7 @@ $(PAR)/%.par : $(SOLARPARDIR)/%.par @@-$(MKDIRHIER) $(@:d:d) $(COMMAND_ECHO)$(COPY) $< $@ -LOCALSCP10FILES=$(foreach,i,$(SCP10FILES) $(foreach,j,$(SCP10LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) +LOCALSCP10FILES+=$(foreach,i,$(SCP10FILES) $(foreach,j,$(SCP10LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) $(SCP10TARGETN): $(LOCALSCP10FILES) @echo "Making: " $(@:f) diff --git a/solenv/inc/_tg_sdi.mk b/solenv/inc/_tg_sdi.mk index 5b3db9c696b7..45ea433b04b2 100644 --- a/solenv/inc/_tg_sdi.mk +++ b/solenv/inc/_tg_sdi.mk @@ -1,14 +1,5 @@ # unroll begin -.IF "$(HIDSID1PARTICLE)"!="" -$(HIDSID1PARTICLE): $(SDI1TARGET) - @echo "Making: " $(@:f) - @-$(RM) $@.$(ROUT).tmp $@ - @$(TYPE) $(MISC)/$(SDI1NAME).sid | $(AWK) '$$1=="#define" { print $$2, $$3 }' > $@.$(ROUT).tmp - @-$(RM) $@ - @$(RENAME) $@.$(ROUT).tmp $@ -.ENDIF # "$(HIDSID1PARTICLE)"!="" - .IF "$(SDI1TARGET)"!="" $(SDI1TARGET): $(SVSDI1DEPEND) $(SDI1NAME).sdi @echo "Making: " $(@:f) @@ -27,15 +18,6 @@ $(SDI1TARGET): $(SVSDI1DEPEND) $(SDI1NAME).sdi # Instruction for ??? # unroll begin -.IF "$(HIDSID2PARTICLE)"!="" -$(HIDSID2PARTICLE): $(SDI2TARGET) - @echo "Making: " $(@:f) - @-$(RM) $@.$(ROUT).tmp $@ - @$(TYPE) $(MISC)/$(SDI2NAME).sid | $(AWK) '$$1=="#define" { print $$2, $$3 }' > $@.$(ROUT).tmp - @-$(RM) $@ - @$(RENAME) $@.$(ROUT).tmp $@ -.ENDIF # "$(HIDSID2PARTICLE)"!="" - .IF "$(SDI2TARGET)"!="" $(SDI2TARGET): $(SVSDI2DEPEND) $(SDI2NAME).sdi @echo "Making: " $(@:f) @@ -54,15 +36,6 @@ $(SDI2TARGET): $(SVSDI2DEPEND) $(SDI2NAME).sdi # Instruction for ??? # unroll begin -.IF "$(HIDSID3PARTICLE)"!="" -$(HIDSID3PARTICLE): $(SDI3TARGET) - @echo "Making: " $(@:f) - @-$(RM) $@.$(ROUT).tmp $@ - @$(TYPE) $(MISC)/$(SDI3NAME).sid | $(AWK) '$$1=="#define" { print $$2, $$3 }' > $@.$(ROUT).tmp - @-$(RM) $@ - @$(RENAME) $@.$(ROUT).tmp $@ -.ENDIF # "$(HIDSID3PARTICLE)"!="" - .IF "$(SDI3TARGET)"!="" $(SDI3TARGET): $(SVSDI3DEPEND) $(SDI3NAME).sdi @echo "Making: " $(@:f) @@ -81,15 +54,6 @@ $(SDI3TARGET): $(SVSDI3DEPEND) $(SDI3NAME).sdi # Instruction for ??? # unroll begin -.IF "$(HIDSID4PARTICLE)"!="" -$(HIDSID4PARTICLE): $(SDI4TARGET) - @echo "Making: " $(@:f) - @-$(RM) $@.$(ROUT).tmp $@ - @$(TYPE) $(MISC)/$(SDI4NAME).sid | $(AWK) '$$1=="#define" { print $$2, $$3 }' > $@.$(ROUT).tmp - @-$(RM) $@ - @$(RENAME) $@.$(ROUT).tmp $@ -.ENDIF # "$(HIDSID4PARTICLE)"!="" - .IF "$(SDI4TARGET)"!="" $(SDI4TARGET): $(SVSDI4DEPEND) $(SDI4NAME).sdi @echo "Making: " $(@:f) @@ -108,15 +72,6 @@ $(SDI4TARGET): $(SVSDI4DEPEND) $(SDI4NAME).sdi # Instruction for ??? # unroll begin -.IF "$(HIDSID5PARTICLE)"!="" -$(HIDSID5PARTICLE): $(SDI5TARGET) - @echo "Making: " $(@:f) - @-$(RM) $@.$(ROUT).tmp $@ - @$(TYPE) $(MISC)/$(SDI5NAME).sid | $(AWK) '$$1=="#define" { print $$2, $$3 }' > $@.$(ROUT).tmp - @-$(RM) $@ - @$(RENAME) $@.$(ROUT).tmp $@ -.ENDIF # "$(HIDSID5PARTICLE)"!="" - .IF "$(SDI5TARGET)"!="" $(SDI5TARGET): $(SVSDI5DEPEND) $(SDI5NAME).sdi @echo "Making: " $(@:f) @@ -135,15 +90,6 @@ $(SDI5TARGET): $(SVSDI5DEPEND) $(SDI5NAME).sdi # Instruction for ??? # unroll begin -.IF "$(HIDSID6PARTICLE)"!="" -$(HIDSID6PARTICLE): $(SDI6TARGET) - @echo "Making: " $(@:f) - @-$(RM) $@.$(ROUT).tmp $@ - @$(TYPE) $(MISC)/$(SDI6NAME).sid | $(AWK) '$$1=="#define" { print $$2, $$3 }' > $@.$(ROUT).tmp - @-$(RM) $@ - @$(RENAME) $@.$(ROUT).tmp $@ -.ENDIF # "$(HIDSID6PARTICLE)"!="" - .IF "$(SDI6TARGET)"!="" $(SDI6TARGET): $(SVSDI6DEPEND) $(SDI6NAME).sdi @echo "Making: " $(@:f) @@ -162,15 +108,6 @@ $(SDI6TARGET): $(SVSDI6DEPEND) $(SDI6NAME).sdi # Instruction for ??? # unroll begin -.IF "$(HIDSID7PARTICLE)"!="" -$(HIDSID7PARTICLE): $(SDI7TARGET) - @echo "Making: " $(@:f) - @-$(RM) $@.$(ROUT).tmp $@ - @$(TYPE) $(MISC)/$(SDI7NAME).sid | $(AWK) '$$1=="#define" { print $$2, $$3 }' > $@.$(ROUT).tmp - @-$(RM) $@ - @$(RENAME) $@.$(ROUT).tmp $@ -.ENDIF # "$(HIDSID7PARTICLE)"!="" - .IF "$(SDI7TARGET)"!="" $(SDI7TARGET): $(SVSDI7DEPEND) $(SDI7NAME).sdi @echo "Making: " $(@:f) @@ -189,15 +126,6 @@ $(SDI7TARGET): $(SVSDI7DEPEND) $(SDI7NAME).sdi # Instruction for ??? # unroll begin -.IF "$(HIDSID8PARTICLE)"!="" -$(HIDSID8PARTICLE): $(SDI8TARGET) - @echo "Making: " $(@:f) - @-$(RM) $@.$(ROUT).tmp $@ - @$(TYPE) $(MISC)/$(SDI8NAME).sid | $(AWK) '$$1=="#define" { print $$2, $$3 }' > $@.$(ROUT).tmp - @-$(RM) $@ - @$(RENAME) $@.$(ROUT).tmp $@ -.ENDIF # "$(HIDSID8PARTICLE)"!="" - .IF "$(SDI8TARGET)"!="" $(SDI8TARGET): $(SVSDI8DEPEND) $(SDI8NAME).sdi @echo "Making: " $(@:f) @@ -216,15 +144,6 @@ $(SDI8TARGET): $(SVSDI8DEPEND) $(SDI8NAME).sdi # Instruction for ??? # unroll begin -.IF "$(HIDSID9PARTICLE)"!="" -$(HIDSID9PARTICLE): $(SDI9TARGET) - @echo "Making: " $(@:f) - @-$(RM) $@.$(ROUT).tmp $@ - @$(TYPE) $(MISC)/$(SDI9NAME).sid | $(AWK) '$$1=="#define" { print $$2, $$3 }' > $@.$(ROUT).tmp - @-$(RM) $@ - @$(RENAME) $@.$(ROUT).tmp $@ -.ENDIF # "$(HIDSID9PARTICLE)"!="" - .IF "$(SDI9TARGET)"!="" $(SDI9TARGET): $(SVSDI9DEPEND) $(SDI9NAME).sdi @echo "Making: " $(@:f) @@ -243,15 +162,6 @@ $(SDI9TARGET): $(SVSDI9DEPEND) $(SDI9NAME).sdi # Instruction for ??? # unroll begin -.IF "$(HIDSID10PARTICLE)"!="" -$(HIDSID10PARTICLE): $(SDI10TARGET) - @echo "Making: " $(@:f) - @-$(RM) $@.$(ROUT).tmp $@ - @$(TYPE) $(MISC)/$(SDI10NAME).sid | $(AWK) '$$1=="#define" { print $$2, $$3 }' > $@.$(ROUT).tmp - @-$(RM) $@ - @$(RENAME) $@.$(ROUT).tmp $@ -.ENDIF # "$(HIDSID10PARTICLE)"!="" - .IF "$(SDI10TARGET)"!="" $(SDI10TARGET): $(SVSDI10DEPEND) $(SDI10NAME).sdi @echo "Making: " $(@:f) diff --git a/solenv/inc/_tg_shl.mk b/solenv/inc/_tg_shl.mk index 56a187abcce4..5f58147fdff1 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 ... @@ -440,8 +440,10 @@ $(SHL1TARGETN) : \ @+source $(MISC)/$(TARGET).$(@:b)_1.cmd @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ shl $(SHL1RPATH) $@ +.IF "$(SHL1CREATEJNILIB)"!="" @echo "Making: " $(@:f).jnilib @macosx-create-bundle $@ +.ENDIF # "$(SHL1CREATEJNILIB)"!="" .IF "$(UPDATER)"=="YES" .IF "$(SHL1NOCHECK)"=="" $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS1) $(SHL1TARGETN) @@ -527,7 +529,6 @@ $(SHL1TARGETN) : \ $(SHL1STDLIBS:^"-l") \ $(SHL1LINKRES) \ $(SHL1STDSHL:^"-l") $(STDSHL1:^"-l") \ - $(LINKOUTPUTFILTER) @$(LS) $@ >& $(NULLDEV) .ENDIF # "$(USE_DEFFILE)"!="" @@ -538,16 +539,6 @@ $(SHL1TARGETN) : \ .ENDIF # "$(GUI)" == "OS2" - -.IF "$(TESTDIR)"!="" -.IF "$(NO_TESTS)"=="" - -ALLTAR : runtest_$(SHL1TARGET) - -runtest_$(SHL1TARGET) : $(SHL1TARGETN) - testshl $(SHL1TARGETN) sce/$(SHL1TARGET).sce -msg -skip -.ENDIF # "$(NO_TESTS)"=="" -.ENDIF # "$(TESTDIR)"!="" .ENDIF # "$(SHL1TARGETN)"!="" # unroll begin @@ -885,7 +876,7 @@ $(SHL2TARGETN) : \ $(SHL2STDLIBS) \ $(SHL2STDSHL) $(STDSHL2) \ $(SHL2LINKRES) \ - ) $(LINKOUTPUTFILTER) + ) # double check if target was really written... still making sense? @@$(LS) $@ @echo linking $@.manifest ... @@ -909,7 +900,7 @@ $(SHL2TARGETN) : \ $(SHL2STDLIBS) \ $(SHL2STDSHL) $(STDSHL2) \ $(SHL2LINKRES) \ - ) $(LINKOUTPUTFILTER) + ) # double check if target was really written... still making sense? @@$(LS) $@ @echo linking $@.manifest ... @@ -992,8 +983,10 @@ $(SHL2TARGETN) : \ @+source $(MISC)/$(TARGET).$(@:b)_2.cmd @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ shl $(SHL2RPATH) $@ +.IF "$(SHL2CREATEJNILIB)"!="" @echo "Making: " $(@:f).jnilib @macosx-create-bundle $@ +.ENDIF # "$(SHL2CREATEJNILIB)"!="" .IF "$(UPDATER)"=="YES" .IF "$(SHL2NOCHECK)"=="" $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS2) $(SHL2TARGETN) @@ -1079,7 +1072,6 @@ $(SHL2TARGETN) : \ $(SHL2STDLIBS:^"-l") \ $(SHL2LINKRES) \ $(SHL2STDSHL:^"-l") $(STDSHL2:^"-l") \ - $(LINKOUTPUTFILTER) @$(LS) $@ >& $(NULLDEV) .ENDIF # "$(USE_DEFFILE)"!="" @@ -1090,16 +1082,6 @@ $(SHL2TARGETN) : \ .ENDIF # "$(GUI)" == "OS2" - -.IF "$(TESTDIR)"!="" -.IF "$(NO_TESTS)"=="" - -ALLTAR : runtest_$(SHL2TARGET) - -runtest_$(SHL2TARGET) : $(SHL2TARGETN) - testshl $(SHL2TARGETN) sce/$(SHL2TARGET).sce -msg -skip -.ENDIF # "$(NO_TESTS)"=="" -.ENDIF # "$(TESTDIR)"!="" .ENDIF # "$(SHL2TARGETN)"!="" # unroll begin @@ -1437,7 +1419,7 @@ $(SHL3TARGETN) : \ $(SHL3STDLIBS) \ $(SHL3STDSHL) $(STDSHL3) \ $(SHL3LINKRES) \ - ) $(LINKOUTPUTFILTER) + ) # double check if target was really written... still making sense? @@$(LS) $@ @echo linking $@.manifest ... @@ -1461,7 +1443,7 @@ $(SHL3TARGETN) : \ $(SHL3STDLIBS) \ $(SHL3STDSHL) $(STDSHL3) \ $(SHL3LINKRES) \ - ) $(LINKOUTPUTFILTER) + ) # double check if target was really written... still making sense? @@$(LS) $@ @echo linking $@.manifest ... @@ -1544,8 +1526,10 @@ $(SHL3TARGETN) : \ @+source $(MISC)/$(TARGET).$(@:b)_3.cmd @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ shl $(SHL3RPATH) $@ +.IF "$(SHL3CREATEJNILIB)"!="" @echo "Making: " $(@:f).jnilib @macosx-create-bundle $@ +.ENDIF # "$(SHL3CREATEJNILIB)"!="" .IF "$(UPDATER)"=="YES" .IF "$(SHL3NOCHECK)"=="" $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS3) $(SHL3TARGETN) @@ -1631,7 +1615,6 @@ $(SHL3TARGETN) : \ $(SHL3STDLIBS:^"-l") \ $(SHL3LINKRES) \ $(SHL3STDSHL:^"-l") $(STDSHL3:^"-l") \ - $(LINKOUTPUTFILTER) @$(LS) $@ >& $(NULLDEV) .ENDIF # "$(USE_DEFFILE)"!="" @@ -1642,16 +1625,6 @@ $(SHL3TARGETN) : \ .ENDIF # "$(GUI)" == "OS2" - -.IF "$(TESTDIR)"!="" -.IF "$(NO_TESTS)"=="" - -ALLTAR : runtest_$(SHL3TARGET) - -runtest_$(SHL3TARGET) : $(SHL3TARGETN) - testshl $(SHL3TARGETN) sce/$(SHL3TARGET).sce -msg -skip -.ENDIF # "$(NO_TESTS)"=="" -.ENDIF # "$(TESTDIR)"!="" .ENDIF # "$(SHL3TARGETN)"!="" # unroll begin @@ -1989,7 +1962,7 @@ $(SHL4TARGETN) : \ $(SHL4STDLIBS) \ $(SHL4STDSHL) $(STDSHL4) \ $(SHL4LINKRES) \ - ) $(LINKOUTPUTFILTER) + ) # double check if target was really written... still making sense? @@$(LS) $@ @echo linking $@.manifest ... @@ -2013,7 +1986,7 @@ $(SHL4TARGETN) : \ $(SHL4STDLIBS) \ $(SHL4STDSHL) $(STDSHL4) \ $(SHL4LINKRES) \ - ) $(LINKOUTPUTFILTER) + ) # double check if target was really written... still making sense? @@$(LS) $@ @echo linking $@.manifest ... @@ -2096,8 +2069,10 @@ $(SHL4TARGETN) : \ @+source $(MISC)/$(TARGET).$(@:b)_4.cmd @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ shl $(SHL4RPATH) $@ +.IF "$(SHL4CREATEJNILIB)"!="" @echo "Making: " $(@:f).jnilib @macosx-create-bundle $@ +.ENDIF # "$(SHL4CREATEJNILIB)"!="" .IF "$(UPDATER)"=="YES" .IF "$(SHL4NOCHECK)"=="" $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS4) $(SHL4TARGETN) @@ -2183,7 +2158,6 @@ $(SHL4TARGETN) : \ $(SHL4STDLIBS:^"-l") \ $(SHL4LINKRES) \ $(SHL4STDSHL:^"-l") $(STDSHL4:^"-l") \ - $(LINKOUTPUTFILTER) @$(LS) $@ >& $(NULLDEV) .ENDIF # "$(USE_DEFFILE)"!="" @@ -2194,16 +2168,6 @@ $(SHL4TARGETN) : \ .ENDIF # "$(GUI)" == "OS2" - -.IF "$(TESTDIR)"!="" -.IF "$(NO_TESTS)"=="" - -ALLTAR : runtest_$(SHL4TARGET) - -runtest_$(SHL4TARGET) : $(SHL4TARGETN) - testshl $(SHL4TARGETN) sce/$(SHL4TARGET).sce -msg -skip -.ENDIF # "$(NO_TESTS)"=="" -.ENDIF # "$(TESTDIR)"!="" .ENDIF # "$(SHL4TARGETN)"!="" # unroll begin @@ -2541,7 +2505,7 @@ $(SHL5TARGETN) : \ $(SHL5STDLIBS) \ $(SHL5STDSHL) $(STDSHL5) \ $(SHL5LINKRES) \ - ) $(LINKOUTPUTFILTER) + ) # double check if target was really written... still making sense? @@$(LS) $@ @echo linking $@.manifest ... @@ -2565,7 +2529,7 @@ $(SHL5TARGETN) : \ $(SHL5STDLIBS) \ $(SHL5STDSHL) $(STDSHL5) \ $(SHL5LINKRES) \ - ) $(LINKOUTPUTFILTER) + ) # double check if target was really written... still making sense? @@$(LS) $@ @echo linking $@.manifest ... @@ -2648,8 +2612,10 @@ $(SHL5TARGETN) : \ @+source $(MISC)/$(TARGET).$(@:b)_5.cmd @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ shl $(SHL5RPATH) $@ +.IF "$(SHL5CREATEJNILIB)"!="" @echo "Making: " $(@:f).jnilib @macosx-create-bundle $@ +.ENDIF # "$(SHL5CREATEJNILIB)"!="" .IF "$(UPDATER)"=="YES" .IF "$(SHL5NOCHECK)"=="" $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS5) $(SHL5TARGETN) @@ -2735,7 +2701,6 @@ $(SHL5TARGETN) : \ $(SHL5STDLIBS:^"-l") \ $(SHL5LINKRES) \ $(SHL5STDSHL:^"-l") $(STDSHL5:^"-l") \ - $(LINKOUTPUTFILTER) @$(LS) $@ >& $(NULLDEV) .ENDIF # "$(USE_DEFFILE)"!="" @@ -2746,16 +2711,6 @@ $(SHL5TARGETN) : \ .ENDIF # "$(GUI)" == "OS2" - -.IF "$(TESTDIR)"!="" -.IF "$(NO_TESTS)"=="" - -ALLTAR : runtest_$(SHL5TARGET) - -runtest_$(SHL5TARGET) : $(SHL5TARGETN) - testshl $(SHL5TARGETN) sce/$(SHL5TARGET).sce -msg -skip -.ENDIF # "$(NO_TESTS)"=="" -.ENDIF # "$(TESTDIR)"!="" .ENDIF # "$(SHL5TARGETN)"!="" # unroll begin @@ -3093,7 +3048,7 @@ $(SHL6TARGETN) : \ $(SHL6STDLIBS) \ $(SHL6STDSHL) $(STDSHL6) \ $(SHL6LINKRES) \ - ) $(LINKOUTPUTFILTER) + ) # double check if target was really written... still making sense? @@$(LS) $@ @echo linking $@.manifest ... @@ -3117,7 +3072,7 @@ $(SHL6TARGETN) : \ $(SHL6STDLIBS) \ $(SHL6STDSHL) $(STDSHL6) \ $(SHL6LINKRES) \ - ) $(LINKOUTPUTFILTER) + ) # double check if target was really written... still making sense? @@$(LS) $@ @echo linking $@.manifest ... @@ -3200,8 +3155,10 @@ $(SHL6TARGETN) : \ @+source $(MISC)/$(TARGET).$(@:b)_6.cmd @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ shl $(SHL6RPATH) $@ +.IF "$(SHL6CREATEJNILIB)"!="" @echo "Making: " $(@:f).jnilib @macosx-create-bundle $@ +.ENDIF # "$(SHL6CREATEJNILIB)"!="" .IF "$(UPDATER)"=="YES" .IF "$(SHL6NOCHECK)"=="" $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS6) $(SHL6TARGETN) @@ -3287,7 +3244,6 @@ $(SHL6TARGETN) : \ $(SHL6STDLIBS:^"-l") \ $(SHL6LINKRES) \ $(SHL6STDSHL:^"-l") $(STDSHL6:^"-l") \ - $(LINKOUTPUTFILTER) @$(LS) $@ >& $(NULLDEV) .ENDIF # "$(USE_DEFFILE)"!="" @@ -3298,16 +3254,6 @@ $(SHL6TARGETN) : \ .ENDIF # "$(GUI)" == "OS2" - -.IF "$(TESTDIR)"!="" -.IF "$(NO_TESTS)"=="" - -ALLTAR : runtest_$(SHL6TARGET) - -runtest_$(SHL6TARGET) : $(SHL6TARGETN) - testshl $(SHL6TARGETN) sce/$(SHL6TARGET).sce -msg -skip -.ENDIF # "$(NO_TESTS)"=="" -.ENDIF # "$(TESTDIR)"!="" .ENDIF # "$(SHL6TARGETN)"!="" # unroll begin @@ -3645,7 +3591,7 @@ $(SHL7TARGETN) : \ $(SHL7STDLIBS) \ $(SHL7STDSHL) $(STDSHL7) \ $(SHL7LINKRES) \ - ) $(LINKOUTPUTFILTER) + ) # double check if target was really written... still making sense? @@$(LS) $@ @echo linking $@.manifest ... @@ -3669,7 +3615,7 @@ $(SHL7TARGETN) : \ $(SHL7STDLIBS) \ $(SHL7STDSHL) $(STDSHL7) \ $(SHL7LINKRES) \ - ) $(LINKOUTPUTFILTER) + ) # double check if target was really written... still making sense? @@$(LS) $@ @echo linking $@.manifest ... @@ -3752,8 +3698,10 @@ $(SHL7TARGETN) : \ @+source $(MISC)/$(TARGET).$(@:b)_7.cmd @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ shl $(SHL7RPATH) $@ +.IF "$(SHL7CREATEJNILIB)"!="" @echo "Making: " $(@:f).jnilib @macosx-create-bundle $@ +.ENDIF # "$(SHL7CREATEJNILIB)"!="" .IF "$(UPDATER)"=="YES" .IF "$(SHL7NOCHECK)"=="" $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS7) $(SHL7TARGETN) @@ -3839,7 +3787,6 @@ $(SHL7TARGETN) : \ $(SHL7STDLIBS:^"-l") \ $(SHL7LINKRES) \ $(SHL7STDSHL:^"-l") $(STDSHL7:^"-l") \ - $(LINKOUTPUTFILTER) @$(LS) $@ >& $(NULLDEV) .ENDIF # "$(USE_DEFFILE)"!="" @@ -3850,16 +3797,6 @@ $(SHL7TARGETN) : \ .ENDIF # "$(GUI)" == "OS2" - -.IF "$(TESTDIR)"!="" -.IF "$(NO_TESTS)"=="" - -ALLTAR : runtest_$(SHL7TARGET) - -runtest_$(SHL7TARGET) : $(SHL7TARGETN) - testshl $(SHL7TARGETN) sce/$(SHL7TARGET).sce -msg -skip -.ENDIF # "$(NO_TESTS)"=="" -.ENDIF # "$(TESTDIR)"!="" .ENDIF # "$(SHL7TARGETN)"!="" # unroll begin @@ -4197,7 +4134,7 @@ $(SHL8TARGETN) : \ $(SHL8STDLIBS) \ $(SHL8STDSHL) $(STDSHL8) \ $(SHL8LINKRES) \ - ) $(LINKOUTPUTFILTER) + ) # double check if target was really written... still making sense? @@$(LS) $@ @echo linking $@.manifest ... @@ -4221,7 +4158,7 @@ $(SHL8TARGETN) : \ $(SHL8STDLIBS) \ $(SHL8STDSHL) $(STDSHL8) \ $(SHL8LINKRES) \ - ) $(LINKOUTPUTFILTER) + ) # double check if target was really written... still making sense? @@$(LS) $@ @echo linking $@.manifest ... @@ -4304,8 +4241,10 @@ $(SHL8TARGETN) : \ @+source $(MISC)/$(TARGET).$(@:b)_8.cmd @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ shl $(SHL8RPATH) $@ +.IF "$(SHL8CREATEJNILIB)"!="" @echo "Making: " $(@:f).jnilib @macosx-create-bundle $@ +.ENDIF # "$(SHL8CREATEJNILIB)"!="" .IF "$(UPDATER)"=="YES" .IF "$(SHL8NOCHECK)"=="" $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS8) $(SHL8TARGETN) @@ -4391,7 +4330,6 @@ $(SHL8TARGETN) : \ $(SHL8STDLIBS:^"-l") \ $(SHL8LINKRES) \ $(SHL8STDSHL:^"-l") $(STDSHL8:^"-l") \ - $(LINKOUTPUTFILTER) @$(LS) $@ >& $(NULLDEV) .ENDIF # "$(USE_DEFFILE)"!="" @@ -4402,16 +4340,6 @@ $(SHL8TARGETN) : \ .ENDIF # "$(GUI)" == "OS2" - -.IF "$(TESTDIR)"!="" -.IF "$(NO_TESTS)"=="" - -ALLTAR : runtest_$(SHL8TARGET) - -runtest_$(SHL8TARGET) : $(SHL8TARGETN) - testshl $(SHL8TARGETN) sce/$(SHL8TARGET).sce -msg -skip -.ENDIF # "$(NO_TESTS)"=="" -.ENDIF # "$(TESTDIR)"!="" .ENDIF # "$(SHL8TARGETN)"!="" # unroll begin @@ -4749,7 +4677,7 @@ $(SHL9TARGETN) : \ $(SHL9STDLIBS) \ $(SHL9STDSHL) $(STDSHL9) \ $(SHL9LINKRES) \ - ) $(LINKOUTPUTFILTER) + ) # double check if target was really written... still making sense? @@$(LS) $@ @echo linking $@.manifest ... @@ -4773,7 +4701,7 @@ $(SHL9TARGETN) : \ $(SHL9STDLIBS) \ $(SHL9STDSHL) $(STDSHL9) \ $(SHL9LINKRES) \ - ) $(LINKOUTPUTFILTER) + ) # double check if target was really written... still making sense? @@$(LS) $@ @echo linking $@.manifest ... @@ -4856,8 +4784,10 @@ $(SHL9TARGETN) : \ @+source $(MISC)/$(TARGET).$(@:b)_9.cmd @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ shl $(SHL9RPATH) $@ +.IF "$(SHL9CREATEJNILIB)"!="" @echo "Making: " $(@:f).jnilib @macosx-create-bundle $@ +.ENDIF # "$(SHL9CREATEJNILIB)"!="" .IF "$(UPDATER)"=="YES" .IF "$(SHL9NOCHECK)"=="" $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS9) $(SHL9TARGETN) @@ -4943,7 +4873,6 @@ $(SHL9TARGETN) : \ $(SHL9STDLIBS:^"-l") \ $(SHL9LINKRES) \ $(SHL9STDSHL:^"-l") $(STDSHL9:^"-l") \ - $(LINKOUTPUTFILTER) @$(LS) $@ >& $(NULLDEV) .ENDIF # "$(USE_DEFFILE)"!="" @@ -4954,16 +4883,6 @@ $(SHL9TARGETN) : \ .ENDIF # "$(GUI)" == "OS2" - -.IF "$(TESTDIR)"!="" -.IF "$(NO_TESTS)"=="" - -ALLTAR : runtest_$(SHL9TARGET) - -runtest_$(SHL9TARGET) : $(SHL9TARGETN) - testshl $(SHL9TARGETN) sce/$(SHL9TARGET).sce -msg -skip -.ENDIF # "$(NO_TESTS)"=="" -.ENDIF # "$(TESTDIR)"!="" .ENDIF # "$(SHL9TARGETN)"!="" # unroll begin @@ -5301,7 +5220,7 @@ $(SHL10TARGETN) : \ $(SHL10STDLIBS) \ $(SHL10STDSHL) $(STDSHL10) \ $(SHL10LINKRES) \ - ) $(LINKOUTPUTFILTER) + ) # double check if target was really written... still making sense? @@$(LS) $@ @echo linking $@.manifest ... @@ -5325,7 +5244,7 @@ $(SHL10TARGETN) : \ $(SHL10STDLIBS) \ $(SHL10STDSHL) $(STDSHL10) \ $(SHL10LINKRES) \ - ) $(LINKOUTPUTFILTER) + ) # double check if target was really written... still making sense? @@$(LS) $@ @echo linking $@.manifest ... @@ -5408,8 +5327,10 @@ $(SHL10TARGETN) : \ @+source $(MISC)/$(TARGET).$(@:b)_10.cmd @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ shl $(SHL10RPATH) $@ +.IF "$(SHL10CREATEJNILIB)"!="" @echo "Making: " $(@:f).jnilib @macosx-create-bundle $@ +.ENDIF # "$(SHL10CREATEJNILIB)"!="" .IF "$(UPDATER)"=="YES" .IF "$(SHL10NOCHECK)"=="" $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS10) $(SHL10TARGETN) @@ -5495,7 +5416,6 @@ $(SHL10TARGETN) : \ $(SHL10STDLIBS:^"-l") \ $(SHL10LINKRES) \ $(SHL10STDSHL:^"-l") $(STDSHL10:^"-l") \ - $(LINKOUTPUTFILTER) @$(LS) $@ >& $(NULLDEV) .ENDIF # "$(USE_DEFFILE)"!="" @@ -5506,16 +5426,6 @@ $(SHL10TARGETN) : \ .ENDIF # "$(GUI)" == "OS2" - -.IF "$(TESTDIR)"!="" -.IF "$(NO_TESTS)"=="" - -ALLTAR : runtest_$(SHL10TARGET) - -runtest_$(SHL10TARGET) : $(SHL10TARGETN) - testshl $(SHL10TARGETN) sce/$(SHL10TARGET).sce -msg -skip -.ENDIF # "$(NO_TESTS)"=="" -.ENDIF # "$(TESTDIR)"!="" .ENDIF # "$(SHL10TARGETN)"!="" # unroll begin diff --git a/solenv/inc/_tg_srs.mk b/solenv/inc/_tg_srs.mk index a71216f0a7e9..375fab35b800 100644 --- a/solenv/inc/_tg_srs.mk +++ b/solenv/inc/_tg_srs.mk @@ -1,22 +1,10 @@ # unroll begin .IF "$(SRS1NAME)"!="" -.IF "$(BUILDHIDS)"!="" -HID1FILES=$(foreach,i,$(SRC1FILES:f) $(SRS)/$(i:s/.src/.hid/)) -HIDSRS1PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(SRS))/$(SRS1NAME)_srs.hid -$(HIDSRS1PARTICLE) : $(HID1FILES) - @echo "Making: " $(@:f) - @-$(RM) $@ - $(COMMAND_ECHO)$(TYPE) $(mktmp $(subst,/,/ $(HID1FILES))) | xargs -s 1000 cat > $@.$(ROUT).tmp - @$(RENAME) $@.$(ROUT).tmp $@ - -ALLTAR : $(HIDSRS1PARTICLE) - -.ENDIF # "$(BUILDHIDS)"!="" $(MISC)/$(TARGET).$(SRS1NAME).dprr: $(LOCALIZE_ME_DEST) -$(MISC)/$(TARGET).$(SRS1NAME).dprr: $(SRC1FILES) $(HIDSRS1PARTICLE) $(HID1FILES) +$(MISC)/$(TARGET).$(SRS1NAME).dprr: $(SRC1FILES) @echo "Making: " $(@:f) @@-$(RM) $(MISC)/$(TARGET).$(SRS1NAME).dprr $(COMMAND_ECHO)$(RSC) $(VERBOSITY) $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) -I$(INCLOCPRJ) -I$(INCLOCAL) -I$(INC) -I$(INCCOM) $(RSCDEFS) $(RSCUPDVERDEF) -fp={$(SRS)/$(SRS1NAME).srs} -fo=$@ -p=$(TARGET) $(SRC1FILES) @@ -54,22 +42,10 @@ $(SRS)/$(SRS1NAME).srs: $(SRC1FILES) # unroll begin .IF "$(SRS2NAME)"!="" -.IF "$(BUILDHIDS)"!="" -HID2FILES=$(foreach,i,$(SRC2FILES:f) $(SRS)/$(i:s/.src/.hid/)) -HIDSRS2PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(SRS))/$(SRS2NAME)_srs.hid -$(HIDSRS2PARTICLE) : $(HID2FILES) - @echo "Making: " $(@:f) - @-$(RM) $@ - $(COMMAND_ECHO)$(TYPE) $(mktmp $(subst,/,/ $(HID2FILES))) | xargs -s 1000 cat > $@.$(ROUT).tmp - @$(RENAME) $@.$(ROUT).tmp $@ - -ALLTAR : $(HIDSRS2PARTICLE) - -.ENDIF # "$(BUILDHIDS)"!="" $(MISC)/$(TARGET).$(SRS2NAME).dprr: $(LOCALIZE_ME_DEST) -$(MISC)/$(TARGET).$(SRS2NAME).dprr: $(SRC2FILES) $(HIDSRS2PARTICLE) $(HID2FILES) +$(MISC)/$(TARGET).$(SRS2NAME).dprr: $(SRC2FILES) @echo "Making: " $(@:f) @@-$(RM) $(MISC)/$(TARGET).$(SRS2NAME).dprr $(COMMAND_ECHO)$(RSC) $(VERBOSITY) $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) -I$(INCLOCPRJ) -I$(INCLOCAL) -I$(INC) -I$(INCCOM) $(RSCDEFS) $(RSCUPDVERDEF) -fp={$(SRS)/$(SRS2NAME).srs} -fo=$@ -p=$(TARGET) $(SRC2FILES) @@ -107,22 +83,10 @@ $(SRS)/$(SRS2NAME).srs: $(SRC2FILES) # unroll begin .IF "$(SRS3NAME)"!="" -.IF "$(BUILDHIDS)"!="" -HID3FILES=$(foreach,i,$(SRC3FILES:f) $(SRS)/$(i:s/.src/.hid/)) -HIDSRS3PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(SRS))/$(SRS3NAME)_srs.hid -$(HIDSRS3PARTICLE) : $(HID3FILES) - @echo "Making: " $(@:f) - @-$(RM) $@ - $(COMMAND_ECHO)$(TYPE) $(mktmp $(subst,/,/ $(HID3FILES))) | xargs -s 1000 cat > $@.$(ROUT).tmp - @$(RENAME) $@.$(ROUT).tmp $@ - -ALLTAR : $(HIDSRS3PARTICLE) - -.ENDIF # "$(BUILDHIDS)"!="" $(MISC)/$(TARGET).$(SRS3NAME).dprr: $(LOCALIZE_ME_DEST) -$(MISC)/$(TARGET).$(SRS3NAME).dprr: $(SRC3FILES) $(HIDSRS3PARTICLE) $(HID3FILES) +$(MISC)/$(TARGET).$(SRS3NAME).dprr: $(SRC3FILES) @echo "Making: " $(@:f) @@-$(RM) $(MISC)/$(TARGET).$(SRS3NAME).dprr $(COMMAND_ECHO)$(RSC) $(VERBOSITY) $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) -I$(INCLOCPRJ) -I$(INCLOCAL) -I$(INC) -I$(INCCOM) $(RSCDEFS) $(RSCUPDVERDEF) -fp={$(SRS)/$(SRS3NAME).srs} -fo=$@ -p=$(TARGET) $(SRC3FILES) @@ -160,22 +124,10 @@ $(SRS)/$(SRS3NAME).srs: $(SRC3FILES) # unroll begin .IF "$(SRS4NAME)"!="" -.IF "$(BUILDHIDS)"!="" -HID4FILES=$(foreach,i,$(SRC4FILES:f) $(SRS)/$(i:s/.src/.hid/)) -HIDSRS4PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(SRS))/$(SRS4NAME)_srs.hid -$(HIDSRS4PARTICLE) : $(HID4FILES) - @echo "Making: " $(@:f) - @-$(RM) $@ - $(COMMAND_ECHO)$(TYPE) $(mktmp $(subst,/,/ $(HID4FILES))) | xargs -s 1000 cat > $@.$(ROUT).tmp - @$(RENAME) $@.$(ROUT).tmp $@ - -ALLTAR : $(HIDSRS4PARTICLE) - -.ENDIF # "$(BUILDHIDS)"!="" $(MISC)/$(TARGET).$(SRS4NAME).dprr: $(LOCALIZE_ME_DEST) -$(MISC)/$(TARGET).$(SRS4NAME).dprr: $(SRC4FILES) $(HIDSRS4PARTICLE) $(HID4FILES) +$(MISC)/$(TARGET).$(SRS4NAME).dprr: $(SRC4FILES) @echo "Making: " $(@:f) @@-$(RM) $(MISC)/$(TARGET).$(SRS4NAME).dprr $(COMMAND_ECHO)$(RSC) $(VERBOSITY) $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) -I$(INCLOCPRJ) -I$(INCLOCAL) -I$(INC) -I$(INCCOM) $(RSCDEFS) $(RSCUPDVERDEF) -fp={$(SRS)/$(SRS4NAME).srs} -fo=$@ -p=$(TARGET) $(SRC4FILES) @@ -213,22 +165,10 @@ $(SRS)/$(SRS4NAME).srs: $(SRC4FILES) # unroll begin .IF "$(SRS5NAME)"!="" -.IF "$(BUILDHIDS)"!="" -HID5FILES=$(foreach,i,$(SRC5FILES:f) $(SRS)/$(i:s/.src/.hid/)) -HIDSRS5PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(SRS))/$(SRS5NAME)_srs.hid -$(HIDSRS5PARTICLE) : $(HID5FILES) - @echo "Making: " $(@:f) - @-$(RM) $@ - $(COMMAND_ECHO)$(TYPE) $(mktmp $(subst,/,/ $(HID5FILES))) | xargs -s 1000 cat > $@.$(ROUT).tmp - @$(RENAME) $@.$(ROUT).tmp $@ - -ALLTAR : $(HIDSRS5PARTICLE) - -.ENDIF # "$(BUILDHIDS)"!="" $(MISC)/$(TARGET).$(SRS5NAME).dprr: $(LOCALIZE_ME_DEST) -$(MISC)/$(TARGET).$(SRS5NAME).dprr: $(SRC5FILES) $(HIDSRS5PARTICLE) $(HID5FILES) +$(MISC)/$(TARGET).$(SRS5NAME).dprr: $(SRC5FILES) @echo "Making: " $(@:f) @@-$(RM) $(MISC)/$(TARGET).$(SRS5NAME).dprr $(COMMAND_ECHO)$(RSC) $(VERBOSITY) $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) -I$(INCLOCPRJ) -I$(INCLOCAL) -I$(INC) -I$(INCCOM) $(RSCDEFS) $(RSCUPDVERDEF) -fp={$(SRS)/$(SRS5NAME).srs} -fo=$@ -p=$(TARGET) $(SRC5FILES) @@ -266,22 +206,10 @@ $(SRS)/$(SRS5NAME).srs: $(SRC5FILES) # unroll begin .IF "$(SRS6NAME)"!="" -.IF "$(BUILDHIDS)"!="" -HID6FILES=$(foreach,i,$(SRC6FILES:f) $(SRS)/$(i:s/.src/.hid/)) -HIDSRS6PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(SRS))/$(SRS6NAME)_srs.hid -$(HIDSRS6PARTICLE) : $(HID6FILES) - @echo "Making: " $(@:f) - @-$(RM) $@ - $(COMMAND_ECHO)$(TYPE) $(mktmp $(subst,/,/ $(HID6FILES))) | xargs -s 1000 cat > $@.$(ROUT).tmp - @$(RENAME) $@.$(ROUT).tmp $@ - -ALLTAR : $(HIDSRS6PARTICLE) - -.ENDIF # "$(BUILDHIDS)"!="" $(MISC)/$(TARGET).$(SRS6NAME).dprr: $(LOCALIZE_ME_DEST) -$(MISC)/$(TARGET).$(SRS6NAME).dprr: $(SRC6FILES) $(HIDSRS6PARTICLE) $(HID6FILES) +$(MISC)/$(TARGET).$(SRS6NAME).dprr: $(SRC6FILES) @echo "Making: " $(@:f) @@-$(RM) $(MISC)/$(TARGET).$(SRS6NAME).dprr $(COMMAND_ECHO)$(RSC) $(VERBOSITY) $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) -I$(INCLOCPRJ) -I$(INCLOCAL) -I$(INC) -I$(INCCOM) $(RSCDEFS) $(RSCUPDVERDEF) -fp={$(SRS)/$(SRS6NAME).srs} -fo=$@ -p=$(TARGET) $(SRC6FILES) @@ -319,22 +247,10 @@ $(SRS)/$(SRS6NAME).srs: $(SRC6FILES) # unroll begin .IF "$(SRS7NAME)"!="" -.IF "$(BUILDHIDS)"!="" -HID7FILES=$(foreach,i,$(SRC7FILES:f) $(SRS)/$(i:s/.src/.hid/)) -HIDSRS7PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(SRS))/$(SRS7NAME)_srs.hid -$(HIDSRS7PARTICLE) : $(HID7FILES) - @echo "Making: " $(@:f) - @-$(RM) $@ - $(COMMAND_ECHO)$(TYPE) $(mktmp $(subst,/,/ $(HID7FILES))) | xargs -s 1000 cat > $@.$(ROUT).tmp - @$(RENAME) $@.$(ROUT).tmp $@ - -ALLTAR : $(HIDSRS7PARTICLE) - -.ENDIF # "$(BUILDHIDS)"!="" $(MISC)/$(TARGET).$(SRS7NAME).dprr: $(LOCALIZE_ME_DEST) -$(MISC)/$(TARGET).$(SRS7NAME).dprr: $(SRC7FILES) $(HIDSRS7PARTICLE) $(HID7FILES) +$(MISC)/$(TARGET).$(SRS7NAME).dprr: $(SRC7FILES) @echo "Making: " $(@:f) @@-$(RM) $(MISC)/$(TARGET).$(SRS7NAME).dprr $(COMMAND_ECHO)$(RSC) $(VERBOSITY) $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) -I$(INCLOCPRJ) -I$(INCLOCAL) -I$(INC) -I$(INCCOM) $(RSCDEFS) $(RSCUPDVERDEF) -fp={$(SRS)/$(SRS7NAME).srs} -fo=$@ -p=$(TARGET) $(SRC7FILES) @@ -372,22 +288,10 @@ $(SRS)/$(SRS7NAME).srs: $(SRC7FILES) # unroll begin .IF "$(SRS8NAME)"!="" -.IF "$(BUILDHIDS)"!="" -HID8FILES=$(foreach,i,$(SRC8FILES:f) $(SRS)/$(i:s/.src/.hid/)) -HIDSRS8PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(SRS))/$(SRS8NAME)_srs.hid -$(HIDSRS8PARTICLE) : $(HID8FILES) - @echo "Making: " $(@:f) - @-$(RM) $@ - $(COMMAND_ECHO)$(TYPE) $(mktmp $(subst,/,/ $(HID8FILES))) | xargs -s 1000 cat > $@.$(ROUT).tmp - @$(RENAME) $@.$(ROUT).tmp $@ - -ALLTAR : $(HIDSRS8PARTICLE) - -.ENDIF # "$(BUILDHIDS)"!="" $(MISC)/$(TARGET).$(SRS8NAME).dprr: $(LOCALIZE_ME_DEST) -$(MISC)/$(TARGET).$(SRS8NAME).dprr: $(SRC8FILES) $(HIDSRS8PARTICLE) $(HID8FILES) +$(MISC)/$(TARGET).$(SRS8NAME).dprr: $(SRC8FILES) @echo "Making: " $(@:f) @@-$(RM) $(MISC)/$(TARGET).$(SRS8NAME).dprr $(COMMAND_ECHO)$(RSC) $(VERBOSITY) $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) -I$(INCLOCPRJ) -I$(INCLOCAL) -I$(INC) -I$(INCCOM) $(RSCDEFS) $(RSCUPDVERDEF) -fp={$(SRS)/$(SRS8NAME).srs} -fo=$@ -p=$(TARGET) $(SRC8FILES) @@ -425,22 +329,10 @@ $(SRS)/$(SRS8NAME).srs: $(SRC8FILES) # unroll begin .IF "$(SRS9NAME)"!="" -.IF "$(BUILDHIDS)"!="" -HID9FILES=$(foreach,i,$(SRC9FILES:f) $(SRS)/$(i:s/.src/.hid/)) -HIDSRS9PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(SRS))/$(SRS9NAME)_srs.hid -$(HIDSRS9PARTICLE) : $(HID9FILES) - @echo "Making: " $(@:f) - @-$(RM) $@ - $(COMMAND_ECHO)$(TYPE) $(mktmp $(subst,/,/ $(HID9FILES))) | xargs -s 1000 cat > $@.$(ROUT).tmp - @$(RENAME) $@.$(ROUT).tmp $@ - -ALLTAR : $(HIDSRS9PARTICLE) - -.ENDIF # "$(BUILDHIDS)"!="" $(MISC)/$(TARGET).$(SRS9NAME).dprr: $(LOCALIZE_ME_DEST) -$(MISC)/$(TARGET).$(SRS9NAME).dprr: $(SRC9FILES) $(HIDSRS9PARTICLE) $(HID9FILES) +$(MISC)/$(TARGET).$(SRS9NAME).dprr: $(SRC9FILES) @echo "Making: " $(@:f) @@-$(RM) $(MISC)/$(TARGET).$(SRS9NAME).dprr $(COMMAND_ECHO)$(RSC) $(VERBOSITY) $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) -I$(INCLOCPRJ) -I$(INCLOCAL) -I$(INC) -I$(INCCOM) $(RSCDEFS) $(RSCUPDVERDEF) -fp={$(SRS)/$(SRS9NAME).srs} -fo=$@ -p=$(TARGET) $(SRC9FILES) @@ -478,22 +370,10 @@ $(SRS)/$(SRS9NAME).srs: $(SRC9FILES) # unroll begin .IF "$(SRS10NAME)"!="" -.IF "$(BUILDHIDS)"!="" -HID10FILES=$(foreach,i,$(SRC10FILES:f) $(SRS)/$(i:s/.src/.hid/)) -HIDSRS10PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(SRS))/$(SRS10NAME)_srs.hid -$(HIDSRS10PARTICLE) : $(HID10FILES) - @echo "Making: " $(@:f) - @-$(RM) $@ - $(COMMAND_ECHO)$(TYPE) $(mktmp $(subst,/,/ $(HID10FILES))) | xargs -s 1000 cat > $@.$(ROUT).tmp - @$(RENAME) $@.$(ROUT).tmp $@ - -ALLTAR : $(HIDSRS10PARTICLE) - -.ENDIF # "$(BUILDHIDS)"!="" $(MISC)/$(TARGET).$(SRS10NAME).dprr: $(LOCALIZE_ME_DEST) -$(MISC)/$(TARGET).$(SRS10NAME).dprr: $(SRC10FILES) $(HIDSRS10PARTICLE) $(HID10FILES) +$(MISC)/$(TARGET).$(SRS10NAME).dprr: $(SRC10FILES) @echo "Making: " $(@:f) @@-$(RM) $(MISC)/$(TARGET).$(SRS10NAME).dprr $(COMMAND_ECHO)$(RSC) $(VERBOSITY) $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) -I$(INCLOCPRJ) -I$(INCLOCAL) -I$(INC) -I$(INCCOM) $(RSCDEFS) $(RSCUPDVERDEF) -fp={$(SRS)/$(SRS10NAME).srs} -fo=$@ -p=$(TARGET) $(SRC10FILES) diff --git a/solenv/inc/cppunit.mk b/solenv/inc/cppunit.mk index 2173f1a9ff9a..b30ca7152700 100644 --- a/solenv/inc/cppunit.mk +++ b/solenv/inc/cppunit.mk @@ -44,7 +44,7 @@ # unroll begin # ---- create the test libraries ------------------------------------ -.IF "$(SHL$(TNR)TARGET)"!="" +.IF "$(SHL$(TNR)TARGETN)"!="" ALLTAR : test$(TNR) test$(TNR) .PHONY : $(SHL$(TNR)TARGETN) @echo ---------------------------------------------------------- diff --git a/solenv/inc/extension_post.mk b/solenv/inc/extension_post.mk index bfd8e6695684..5204af7dd29a 100644 --- a/solenv/inc/extension_post.mk +++ b/solenv/inc/extension_post.mk @@ -69,10 +69,22 @@ $(COMPONENT_JARFILES) : $(CLASSDIR)/$$(@:f) .ENDIF # "$(COMPONENT_JARFILES)"!="" .IF "$(COMPONENT_LIBRARIES)"!="" +PACK_RUNTIME!:=TRUE # TODO(Q3): strip the binary? $(COMPONENT_LIBRARIES) : $(DLLDEST)/$$(@:f) @@-$(MKDIRHIER) $(@:d) $(COMMAND_ECHO)$(COPY) $< $@ +.ENDIF # "$(COMPONENT_LIBRARIES)"!="" + +.IF "$(PACK_RUNTIME)"!="" +PACK_RUNTIME_FLAG:=$(MISC)/$(TARGET)_pack_runtime.flag +$(EXTENSION_TARGET) : $(PACK_RUNTIME_FLAG) + +$(EXTENSIONDIR) : + @@-$(MKDIRHIER) $(@:d) + +$(PACK_RUNTIME_FLAG) : $(EXTENSIONDIR) + @@-$(MKDIRHIER) $(@:d) .IF "$(OS)$(CPU)"=="WNTI" && "$(WITH_EXTENSION_INTEGRATION)"!="YES" .IF "$(COM)"=="GCC" $(GNUCOPY) $(SOLARBINDIR)/mingwm10.dll $(EXTENSIONDIR) @@ -120,7 +132,8 @@ $(COMPONENT_LIBRARIES) : $(DLLDEST)/$$(@:f) .ENDIF # "$(PACKMS)"!="" .ENDIF #"$(COM)"=="GCC" .ENDIF # "$(OS)$(CPU)"=="WNTI" && "$(WITH_EXTENSION_INTEGRATION)"!="YES" -.ENDIF # "$(COMPONENT_LIBRARIES)"!="" + @$(TOUCH) $@ +.ENDIF # "$(PACK_RUNTIME)"!="" IMPLEMENTATION_IDENTIFIER*="com.sun.star.$(EXTENSIONNAME)-$(PLATFORMID)" diff --git a/solenv/inc/installationtest.mk b/solenv/inc/installationtest.mk index 15a80b02dcde..7b926cc75b66 100644 --- a/solenv/inc/installationtest.mk +++ b/solenv/inc/installationtest.mk @@ -89,35 +89,46 @@ $(MISC)/$(TARGET)/installation.flag : $(shell \ echo "$$my_tmp" > $@ .END -cpptest .PHONY : $(MISC)/$(TARGET)/services.rdb +cpptest .PHONY : $(RM) -r $(MISC)/$(TARGET)/user $(MKDIRHIER) $(MISC)/$(TARGET)/user $(CPPUNITTESTER) \ - -env:UNO_SERVICES=$(my_file)$(PWD)/$(MISC)/$(TARGET)/services.rdb \ + -env:UNO_SERVICES=$(my_file)$(SOLARXMLDIR)/ure/services.rdb \ -env:UNO_TYPES=$(my_file)$(SOLARBINDIR)/types.rdb \ -env:arg-soffice=$(my_soffice) -env:arg-user=$(MISC)/$(TARGET)/user \ - $(my_cppenv) $(OOO_CPPTEST_ARGS) - $(RM) -r $(MISC)/$(TARGET)/user + $(my_cppenv) $(TEST_ARGUMENTS:^"-env:arg-testarg.") $(CPPTEST_LIBRARY) + # As a workaround for #i111400#, ignore failure of $(RM): + - $(RM) -r $(MISC)/$(TARGET)/user .IF "$(OS)" == "WNT" && "$(OOO_TEST_SOFFICE)" == "" $(RM) -r $(installationtest_instpath) $(MISC)/$(TARGET)/installation.flag cpptest : $(MISC)/$(TARGET)/installation.flag .END -$(MISC)/$(TARGET)/services.rdb : - $(MKDIRHIER) $(@:d) - $(RM) $@ - $(REGCOMP) -register -r $@ -wop -c bridgefac.uno -c connector.uno \ - -c remotebridge.uno -c uuresolver.uno - .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 \ - $(my_javaenv) org.junit.runner.JUnitCore \ + $(my_javaenv) $(TEST_ARGUMENTS:^"-Dorg.openoffice.test.arg.testarg.") \ + org.junit.runner.JUnitCore \ $(foreach,i,$(JAVATESTFILES) $(subst,/,. $(PACKAGE)).$(i:s/.java//)) $(RM) -r $(MISC)/$(TARGET)/user .IF "$(OS)" == "WNT" && "$(OOO_TEST_SOFFICE)" == "" diff --git a/solenv/inc/javaunittest.mk b/solenv/inc/javaunittest.mk index e129052a445e..6d7c564da2a0 100644 --- a/solenv/inc/javaunittest.mk +++ b/solenv/inc/javaunittest.mk @@ -52,9 +52,8 @@ # <platform>/class/, so that they are not accidentally included in jar files # packed from <platform>/class/ subdirectories. -TESTS := $(subst,.java,.test $(JAVATESTFILES)) JAVAFILES +:= $(JAVATESTFILES) -JARFILES +:= OOoRunner.jar +EXTRAJARFILES += $(OOO_JUNIT_JAR) .INCLUDE: settings.mk @@ -67,22 +66,26 @@ CLASSDIR !:= $(CLASSDIR)/test .INCLUDE: target.mk -ALLTAR: $(TESTS) - -$(JAVAFILES): $(MISC)/$(TARGET).classdir.flag +$(JAVATARGET) : $(MISC)/$(TARGET).classdir.flag $(MISC)/$(TARGET).classdir.flag: - $(MKDIR) $(CLASSDIR) $(TOUCH) $@ -.IF "$(TESTS)" != "" -$(TESTS): $(JAVACLASSFILES) -.ENDIF +.IF "$(JAVATESTFILES)" != "" +ALLTAR : test +.END -%.test .PHONY: %.java - $(JAVAI) $(JAVAIFLAGS) $(JAVACPS) $(CLASSPATH) org.openoffice.Runner \ - -TestBase java_complex -NoOffice yes \ - -o $(subst,/,. $(subst,.test, $(PACKAGE).$@)) +.IF "$(SOLAR_JAVA)" == "TRUE" && "$(OOO_JUNIT_JAR)" != "" +test .PHONY : $(JAVATARGET) + $(JAVAI) $(JAVAIFLAGS) $(JAVACPS) \ + '$(OOO_JUNIT_JAR)$(PATH_SEPERATOR)$(CLASSPATH)' \ + org.junit.runner.JUnitCore \ + $(foreach,i,$(JAVATESTFILES) $(subst,/,. $(PACKAGE)).$(i:s/.java//)) +.ELSE +test .PHONY : + echo 'test needs SOLAR_JAVA=TRUE and OOO_JUNIT_JAR' +.END .IF "$(IDLTESTFILES)" != "" diff --git a/solenv/inc/langlist.mk b/solenv/inc/langlist.mk new file mode 100644 index 000000000000..e3ac2e5065ff --- /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 \ +ht \ +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 538ff55d59b0..14678b7e671c 100644 --- a/solenv/inc/libs.mk +++ b/solenv/inc/libs.mk @@ -66,7 +66,7 @@ SALHELPERLIB=-lsalhelper$(UDK_MAJOR)$(COMID) SALHELPERLIB=-luno_salhelper$(COMID) .ENDIF # "$(GUI)$(COM)"=="WNTGCC" XMLSCRIPTLIB =-lxcr$(DLLPOSTFIX) -COMPHELPERLIB=-lcomphelp$(COMPHLP_MAJOR)$(COMID) +COMPHELPERLIB=-lcomphelp$(COMID) CONNECTIVITYLIB=-lconnectivity LDAPBERLIB=-lldapber TOOLSLIBST=-latools @@ -183,9 +183,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 @@ -355,6 +353,7 @@ LPSOLVELIB=-llpsolve55 SOFFICELIB=-lsofficeapp UNOPKGAPPLIB=-lunopkgapp TESTLIB=-ltest +XMLREADERLIB=-lxmlreader .ELSE # ("$(GUI)"=="UNX" || "$(COM)"=="GCC") && "$(GUI)"!="OS2" @@ -531,5 +530,6 @@ SOFFICELIB=isofficeapp.lib UNOPKGAPPLIB=iunopkgapp.lib TESTLIB=itest.lib BOOSTTHREADLIB=boostthread.lib +XMLREADERLIB=ixmlreader.lib .ENDIF # ("$(GUI)"=="UNX" || "$(COM)"=="GCC") && "$(GUI)"!="OS2" diff --git a/solenv/inc/minor.mk b/solenv/inc/minor.mk index 3e2745f9ddf7..f828ae6400de 100644 --- a/solenv/inc/minor.mk +++ b/solenv/inc/minor.mk @@ -1,5 +1,5 @@ -RSCVERSION=330 -RSCREVISION=330m19(Build:6) -BUILD=6 -LAST_MINOR=m19 -SOURCEVERSION=OOO330 +RSCVERSION=300 +RSCREVISION=300m101(Build:1) +BUILD=1 +LAST_MINOR=m101 +SOURCEVERSION=DEV300 diff --git a/solenv/inc/postmac.h b/solenv/inc/postmac.h index a50e7b6e93d6..f53ee6ae0e03 100644 --- a/solenv/inc/postmac.h +++ b/solenv/inc/postmac.h @@ -26,8 +26,8 @@ * ************************************************************************/ -#undef Boolean -#undef BOOL +//#undef Boolean +//#undef BOOL #undef Button #undef Byte #undef Control @@ -46,7 +46,7 @@ #undef SetCursor #undef StringPtr #undef DirInfo -#undef ULONG +//#undef ULONG #undef Line #undef TimeValue #undef Pattern diff --git a/solenv/inc/postwin.h b/solenv/inc/postwin.h index f3f21449d7f0..1ec09435b5cb 100644 --- a/solenv/inc/postwin.h +++ b/solenv/inc/postwin.h @@ -38,17 +38,8 @@ #undef PolyPolygon #undef Polygon #undef Rectangle -#undef BYTE -#undef BOOL #undef DELETE -#ifndef VCL_NEED_BASETSD -#undef INT64 -#undef UINT64 -#undef INT32 -#undef UINT32 -#undef ULONG -#endif #undef Folder #undef GradientStyle_RECT @@ -249,9 +240,9 @@ #ifdef WNT extern "C" { -WIN_BOOL WINAPI WIN_Rectangle( HDC hDC, int X1, int Y1, int X2, int Y2 ); -WIN_BOOL WINAPI WIN_Polygon( HDC hDC, CONST POINT * ppt, int ncnt ); -WIN_BOOL WINAPI WIN_PolyPolygon( HDC hDC, CONST POINT * ppt, LPINT npcnt, int ncnt ); +BOOL WINAPI WIN_Rectangle( HDC hDC, int X1, int Y1, int X2, int Y2 ); +BOOL WINAPI WIN_Polygon( HDC hDC, CONST POINT * ppt, int ncnt ); +BOOL WINAPI WIN_PolyPolygon( HDC hDC, CONST POINT * ppt, LPINT npcnt, int ncnt ); } #endif diff --git a/solenv/inc/premac.h b/solenv/inc/premac.h index f602c64f07c5..abf0a7b6ca92 100644 --- a/solenv/inc/premac.h +++ b/solenv/inc/premac.h @@ -27,8 +27,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 SetCursor MacOSSetCursor #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/prewin.h b/solenv/inc/prewin.h index 90a19d32d992..0eedfe122963 100644 --- a/solenv/inc/prewin.h +++ b/solenv/inc/prewin.h @@ -30,16 +30,6 @@ #if defined WNT -#define BOOL WIN_BOOL -#define BYTE WIN_BYTE -#ifndef VCL_NEED_BASETSD -#define INT64 WIN_INT64 -#define UINT64 WIN_UINT64 -#define INT32 WIN_INT32 -#define UINT32 WIN_UINT32 -#define ULONG WIN_ULONG -#endif - #define Rectangle BLA_Rectangle #define Polygon BLA_Polygon #define PolyPolygon BLA_PolyPolygon diff --git a/solenv/inc/pstrules.mk b/solenv/inc/pstrules.mk index 74c50ae9616d..a845b9ae86fe 100644 --- a/solenv/inc/pstrules.mk +++ b/solenv/inc/pstrules.mk @@ -153,24 +153,3 @@ $(PAR)/%.par : # $(COMMAND_ECHO)$(SCPCOMP) -l $(@:b).$(LANGFILEEXT) -s $(MISC)/{$(subst,$(@:d:d:d), $(@:d:d))}/$(*:b).pre -o $@ .ENDIF # "$(PARFILES)"!="" - -.IF "$(TESTDIR)"!="" - -# workaround for strange dmake bug: -# if the previous block was a rule or a target, "\#" isn't recognized -# as an escaped "#". if it was an assignment, escaping works... -some_unique_variable_name:=1 - -.IF "$(OS)" == "WNT" -REGEXP:="s/^[\#].*//" -.ELSE -REGEXP:='s/^[\#].*//' -.ENDIF - -$(MISC)/%.exp : sce/%.sce - @@-$(RM) $@ - @@-$(RM) $(@:d)$(@:b).tst - $(COMMAND_ECHO)$(TYPE) $< | sed $(REGEXP) | sed "s/^/test_/" > $(@:d)$(@:b).tst - $(COMMAND_ECHO)$(TYPE) $(@:d)$(@:b).tst | sed "/test_./ w $@" - -.ENDIF # "$(TESTDIR)"!="" diff --git a/solenv/inc/rules.mk b/solenv/inc/rules.mk index a2797d2aee82..db97eddea355 100644 --- a/solenv/inc/rules.mk +++ b/solenv/inc/rules.mk @@ -600,7 +600,7 @@ $(MISC)/%.dpr : .IF "$(nodep)"=="" @echo "Making: " $(@:f) @@-$(RM) $@ - $(COMMAND_ECHO)dmake $(MFLAGS) $(MAKEFILE) $(CALLMACROS) NO_HIDS=true make_srs_deps=true $(DEPSRSFILES) + $(COMMAND_ECHO)dmake $(MFLAGS) $(MAKEFILE) $(CALLMACROS) make_srs_deps=true $(DEPSRSFILES) $(COMMAND_ECHO)-$(TYPE) $(MISC)/$(TARGET).*.dprr >> $@ .ENDIF # "$(nodep)"=="" @@ -689,11 +689,6 @@ $(OUT)/ucr/$(IDLPACKAGE)/%.urd : %.idl $(OUT)/ucrdoc/$(IDLPACKAGE)/%.urd : %.idl @noop $(assign all_outdated_doc_idl+:=$<) -# generate hid files -$(SRS)/%.hid : %.src - @echo Compiling: $(PRJNAME)/$(PATH_IN_MODULE)/$(*:f).src - $(COMMAND_ECHO)$(AUGMENT_LIBRARY_PATH) $(PERL) $(SOLARENV)/bin/mhids.pl $*.src $(SRS) $(PRJNAME) $(CDEFS) $(INCLUDE) - # make *.xml descriptions available in $(MISC) $(MISC)/%$($(WINVERSIONNAMES)_MAJOR).xml : %.xml $(COMMAND_ECHO)$(COPY) $< $@ diff --git a/solenv/inc/settings.mk b/solenv/inc/settings.mk index 7be9c9282d05..bac75682ea6f 100644 --- a/solenv/inc/settings.mk +++ b/solenv/inc/settings.mk @@ -302,6 +302,12 @@ dbgutil= # --------------------------------------------------------------------------- DMAKE_WORK_DIR*:=$(subst,/,/ $(PWD)) +.IF "$(GUI)"=="WNT" +posix_PWD:=/cygdrive/$(PWD:s/://) +.ELSE #GUI)"=="WNT" +posix_PWD:=$(PWD) +.ENDIF #GUI)"=="WNT" + .IF "$(TMP)"!="" tmp*=$(TMP) @@ -386,9 +392,11 @@ COMPILER_WARN_ALL=TRUE COMPILER_WARN_ERRORS=TRUE .ENDIF -.IF "$(COMMON_BUILD)"!="" -common_build*=$(COMMON_BUILD) -.ENDIF +#.IF "$(COMMON_BUILD)"!="" +#common_build*=$(COMMON_BUILD) +#.ENDIF +common_build:= +COMMON_BUILD:= .IF "$(USE_SHL_VERSIONS)"!="" use_shl_versions*=$(USE_SHL_VERSIONS) @@ -573,24 +581,24 @@ PATH_IN_MODULE:=$(subst,$(shell @+cd $(PRJ) && pwd $(PWDFLAGS))/, $(PWD)) PATH_IN_MODULE:= .ENDIF # "$(PRJ)"!="." -# common output tree -.IF "$(common_build)"!="" -COMMON_OUTDIR*=common -.IF "$(no_common_build_reslib)"=="" -common_build_reslib=true -.ENDIF # "$(no_common_build_reslib)"=="" -.IF "$(no_common_build_zip)"=="" -common_build_zip=true -.ENDIF # "$(no_common_build_zip)"=="" -.IF "$(no_common_build_sign_jar)"=="" -common_build_sign_jar=true -.ENDIF # "$(no_common_build_sign_jar)"=="" -.IF "$(no_common_build_srs)"=="" -common_build_srs=true -.ENDIF # "$(no_common_build_srs)"=="" -.ELSE # "$(common_build)"!="" +## common output tree +#.IF "$(common_build)"!="" +#COMMON_OUTDIR*=common +#.IF "$(no_common_build_reslib)"=="" +#common_build_reslib=true +#.ENDIF # "$(no_common_build_reslib)"=="" +#.IF "$(no_common_build_zip)"=="" +#common_build_zip=true +#.ENDIF # "$(no_common_build_zip)"=="" +#.IF "$(no_common_build_sign_jar)"=="" +#common_build_sign_jar=true +#.ENDIF # "$(no_common_build_sign_jar)"=="" +#.IF "$(no_common_build_srs)"=="" +#common_build_srs=true +#.ENDIF # "$(no_common_build_srs)"=="" +#.ELSE # "$(common_build)"!="" COMMON_OUTDIR:=$(OUTPATH) -.ENDIF # "$(common_build)"!="" +#.ENDIF # "$(common_build)"!="" LOCAL_OUT:=$(OUT) LOCAL_COMMON_OUT:=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(OUT)) @@ -598,27 +606,25 @@ 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) -$(OUT)/inc/%world.mk : +$(posix_PWD)/$(OUT)/inc/%world.mk : @$(MKOUT) $(ROUT) @echo $(EMQ)# > $@ -# don't need/want output trees in solenv!!! -.IF "$(PRJNAME)"!="solenv" -.INCLUDE : $(OUT)/inc/myworld.mk -.ENDIF # "$(PRJNAME)"!="solenv" +.INCLUDE : $(posix_PWD)/$(OUT)/inc/myworld.mk .IF "$(common_build)"!="" -$(LOCAL_COMMON_OUT)/inc/%world.mk : +$(posix_PWD)/$(LOCAL_COMMON_OUT)/inc/%world.mk : @$(MKOUT) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(ROUT)) @echo $(EMQ)# > $@ -.IF "$(PRJNAME)"!="solenv" -.INCLUDE : $(LOCAL_COMMON_OUT)/inc/myworld.mk -.ENDIF # "$(PRJNAME)"!="solenv" +.INCLUDE : $(posix_PWD)/$(LOCAL_COMMON_OUT)/inc/myworld.mk .ENDIF # "$(common_build)"!="" +.ENDIF # "$(TARGET)"!="prj" .INCLUDE .IGNORE : office.mk @@ -803,12 +809,7 @@ SOLARCOMMONSDFDIR=$(SOLARSDFDIR) .EXPORT : SOLARBINDIR -.IF "$(GUI)"=="WNT" -# we assume that we build using cygwin -L10N_MODULE*=$(cygpath -m $(realpath $(SOLARSRC)$/l10n)) -.ELSE -L10N_MODULE*=$(SOLARSRC)$/l10n -.ENDIF +L10N_MODULE*=$(SRC_ROOT)/l10n ALT_L10N_MODULE*=$(SOLARSRC)$/l10n_so .IF "$(WITH_LANG)"!="" @@ -1020,15 +1021,15 @@ LNTFLAGSOUTOBJ=-os .ENDIF .IF "$(OOO_LIBRARY_PATH_VAR)" != "" -# Add SOLARLIBDIR to the end of a (potentially previously undefined) library -# path (LD_LIBRARY_PATH, PATH, etc.; there is no real reason to prefer adding at -# the end over adding at the start); the ": &&" in the bash case enables this to -# work at the start of a recipe line that is not prefixed by "+" as well as in -# the middle of an existing && chain: +# Add SOLARLIBDIR at the begin of a (potentially previously undefined) library +# path (LD_LIBRARY_PATH, PATH, etc.; prepending avoids fetching libraries from +# an existing office/URE installation; the ": &&" enables this to work at the +# start of a recipe line that is not prefixed by "+" as well as in the middle of +# an existing && chain: AUGMENT_LIBRARY_PATH = : && \ - $(OOO_LIBRARY_PATH_VAR)=$${{$(OOO_LIBRARY_PATH_VAR)+$${{$(OOO_LIBRARY_PATH_VAR)}}:}}$(normpath, $(SOLARSHAREDBIN)) + $(OOO_LIBRARY_PATH_VAR)=$(normpath, $(SOLARSHAREDBIN))$${{$(OOO_LIBRARY_PATH_VAR):+:$${{$(OOO_LIBRARY_PATH_VAR)}}}} AUGMENT_LIBRARY_PATH_LOCAL = : && \ - $(OOO_LIBRARY_PATH_VAR)=$${{$(OOO_LIBRARY_PATH_VAR)+$${{$(OOO_LIBRARY_PATH_VAR)}}:}}$(normpath, $(PWD)/$(DLLDEST)):$(normpath, $(SOLARSHAREDBIN)) + $(OOO_LIBRARY_PATH_VAR)=$(normpath, $(PWD)/$(DLLDEST)):$(normpath, $(SOLARSHAREDBIN))$${{$(OOO_LIBRARY_PATH_VAR):+:$${{$(OOO_LIBRARY_PATH_VAR)}}}} .END # for multiprocess building in external modules @@ -1364,6 +1365,20 @@ XERCES_JAR*=$(SOLARBINDIR)/xercesImpl.jar CPPUNIT_CFLAGS = .END +COMPONENTPREFIX_URE_NATIVE = vnd.sun.star.expand:$$URE_INTERNAL_LIB_DIR/ +COMPONENTPREFIX_URE_JAVA = vnd.sun.star.expand:$$URE_INTERNAL_JAVA_DIR/ +.IF "$(OS)" == "WNT" +COMPONENTPREFIX_BASIS_NATIVE = vnd.sun.star.expand:$$BRAND_BASE_DIR/program/ +.ELSE +COMPONENTPREFIX_BASIS_NATIVE = vnd.sun.star.expand:$$OOO_BASE_DIR/program/ +.END +COMPONENTPREFIX_BASIS_JAVA = vnd.sun.star.expand:$$OOO_BASE_DIR/program/classes/ +COMPONENTPREFIX_BASIS_PYTHON = vnd.openoffice.pymodule: +COMPONENTPREFIX_INBUILD_NATIVE = \ + vnd.sun.star.expand:$$OOO_INBUILD_SHAREDLIB_DIR/ +COMPONENTPREFIX_INBUILD_JAVA = vnd.sun.star.expand:$$OOO_INBUILD_JAR_DIR/ +COMPONENTPREFIX_EXTENSION = ./ + # workaround for strange dmake bug: # if the previous block was a rule or a target, "\#" isn't recognized # as an escaped "#". if it was an assignment, escaping works... diff --git a/solenv/inc/target.mk b/solenv/inc/target.mk index 0fe06145879d..6e8007425454 100644 --- a/solenv/inc/target.mk +++ b/solenv/inc/target.mk @@ -960,31 +960,26 @@ NO_SDINAME_allowed .IF "$(SDI1NAME)"!="" .DIRCACHE=no SDI1TARGET=$(MISC)/$(SDI1NAME).don -HIDSID1PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/$(SDI1NAME)_sid.hid .ENDIF .IF "$(SDI2NAME)"!="" .DIRCACHE=no SDI2TARGET=$(MISC)/$(SDI2NAME).don -HIDSID2PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/$(SDI2NAME)_sid.hid .ENDIF .IF "$(SDI3NAME)"!="" .DIRCACHE=no SDI3TARGET=$(MISC)/$(SDI3NAME).don -HIDSID3PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/$(SDI3NAME)_sid.hid .ENDIF .IF "$(SDI4NAME)"!="" .DIRCACHE=no SDI4TARGET=$(MISC)/$(SDI4NAME).don -HIDSID4PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/$(SDI4NAME)_sid.hid .ENDIF .IF "$(SDI5NAME)"!="" .DIRCACHE=no SDI5TARGET=$(MISC)/$(SDI5NAME).don -HIDSID5PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/$(SDI5NAME)_sid.hid .ENDIF .IF "$(XMLPROPERTIES)"!="" @@ -1008,17 +1003,6 @@ TARGETDPJ=$(MISC)/$(TARGET).dpj .ENDIF # "$(L10N_framework)"=="" .ENDIF -.IF "$(no_hids)$(NO_HIDS)"=="" -BUILDHIDS:=TRUE -.IF "$(GEN_HID_OTHER)"!="" -PRJHIDOTHERTARGET=$(SRS)/hidother.hid -COMMONPRJHIDOTHERTARGET=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC)/$(TARGET)_othr.hid) -.ENDIF -.IF "$(GEN_HID2)"!="" -PRJHID2TARGET=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/hid.lst -.ENDIF -.ENDIF # "$(no_hids)$(NO_HIDS)"=="" - .IF "$(make_srs_deps)"=="" .IF "$(SRCFILES)" != "" || "$(SRC1FILES)" != "" || "$(SRC2FILES)" != "" DPRTARGET= $(MISC)/$(TARGET).dpr @@ -1056,8 +1040,6 @@ ALLTAR: \ $(DPRTARGET) \ $(DPZTARGET) \ $(ZIPALL) \ - $(HIDSID1PARTICLE) $(HIDSID2PARTICLE) \ - $(HIDSID3PARTICLE) $(HIDSID4PARTICLE) $(HIDSID5PARTICLE) \ $(SDITARGET) $(SDI1TARGET) $(SDI2TARGET) \ $(SDI3TARGET) $(SDI4TARGET) $(SDI5TARGET) \ $(XMLPROPERTIESN) \ @@ -1095,8 +1077,6 @@ ALLTAR: \ $(RESLIB3TARGETN) $(RESLIB4TARGETN) \ $(RESLIB5TARGETN) $(RESLIB6TARGETN) \ $(RESLIB7TARGETN) $(RESLIB8TARGETN) \ - $(COMMONPRJHIDOTHERTARGET) \ - $(PRJHID2TARGET) \ $(LOCALIZE_ME_DEST)\ last_target @@ -1134,8 +1114,6 @@ ALLTAR: \ $(COMP9RDBTARGETN) \ $(IDL1TARGET) $(IDL2TARGET) $(IDL3TARGET) \ $(IDL4TARGET) $(IDL5TARGET) \ - $(HIDSID1PARTICLE) $(HIDSID2PARTICLE) \ - $(HIDSID3PARTICLE) $(HIDSID4PARTICLE) $(HIDSID5PARTICLE) \ $(SDI1TARGET) $(SDI2TARGET) $(SDI3TARGET) \ $(SDI4TARGET) $(SDI5TARGET) \ $(HXXCOPYTARGET) \ @@ -1204,8 +1182,6 @@ ALLTAR: \ $(RESLIB5TARGETN) $(RESLIB6TARGETN) \ $(RESLIB7TARGETN) $(RESLIB8TARGETN) \ $(RESLIB9TARGETN) \ - $(COMMONPRJHIDOTHERTARGET) \ - $(PRJHID2TARGET) \ $(SIGNFORNETSCAPE) \ $(SIGNFOREXPLORER) \ $(SIGNFORJARSIGNER) \ @@ -1538,22 +1514,14 @@ $(MISC)/$(TARGET)_%.done : %.xrb @@$(RM) $(MISC)/$(<:b).interm$(TARGET) .ENDIF # "$(XMLPROPERTIES)"!="" -.IF "$(HIDSID1PARTICLE)$(SDI1TARGET)$(HIDSID2PARTICLE)$(SDI2TARGET)$(HIDSID3PARTICLE)$(SDI3TARGET)$(HIDSID4PARTICLE)$(SDI4TARGET)$(HIDSID5PARTICLE)$(SDI5TARGET)$(HIDSID6PARTICLE)$(SDI6TARGET)$(HIDSID7PARTICLE)$(SDI7TARGET)$(HIDSID8PARTICLE)$(SDI8TARGET)$(HIDSID9PARTICLE)$(SDI9TARGET)"!="" +.IF "$(SDI1TARGET)$(SDI2TARGET)$(SDI3TARGET)$(SDI4TARGET)$(SDI5TARGET)$(SDI6TARGET)$(SDI7TARGET)$(SDI8TARGET)$(SDI9TARGET)"!="" .INCLUDE : _tg_sdi.mk -.ENDIF # "$(HIDSID1PARTICLE)$(SDI1TARGET)$(HIDSID2PARTICLE)$(SDI2TARGET)$(HIDSID3PARTICLE)$(SDI3TARGET)$(HIDSID4PARTICLE)$(SDI4TARGET)$(HIDSID5PARTICLE)$(SDI5TARGET)$(HIDSID6PARTICLE)$(SDI6TARGET)$(HIDSID7PARTICLE)$(SDI7TARGET)$(HIDSID8PARTICLE)$(SDI8TARGET)$(HIDSID9PARTICLE)$(SDI9TARGET)"!="" +.ENDIF # "$(SDI1TARGET)$(SDI2TARGET)$(SDI3TARGET)$(SDI4TARGET)$(SDI5TARGET)$(SDI6TARGET)$(SDI7TARGET)$(SDI8TARGET)$(SDI9TARGET)"!="" .IF "$(DEF1NAME)$(DEF2NAME)$(DEF3NAME)$(DEF4NAME)$(DEF5NAME)$(DEF6NAME)$(DEF7NAME)$(DEF8NAME)$(DEF9NAME)"!="" .INCLUDE : _tg_def.mk .ENDIF -.IF "$(COMMONPRJHIDOTHERTARGET)"!="" -$(COMMONPRJHIDOTHERTARGET) : $(PRJHIDOTHERTARGET) - @echo "Making: " $@ - @$(IFEXIST) $@ $(THEN) $(RM:s/+//) $@ $(FI) - $(COMMAND_ECHO)$(TYPE) $(PRJHIDOTHERTARGET) > $@.$(ROUT).tmp - @$(RENAME) $@.$(ROUT).tmp $@ -.ENDIF - # ------- # - LIB - # ------- @@ -2022,17 +1990,17 @@ UNOUCRDEPxxx : $(UNOUCRDEP); .ENDIF # "$(UNOTYPES)" != "" -#new hid.lst trigger with GEN_HID2=TRUE -$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/hid.lst .PHONY : - @echo "Making: " $@ - @echo $(WORK_STAMP).$(LAST_MINOR) 010101010101010 > $@.$(ROUT).tmp - $(COMMAND_ECHO)$(TYPE) $(SOLARCOMMONBINDIR)/hid/*.hid | tr -d "\015" | $(SORT) -u >> $@.$(ROUT).tmp - @$(IFEXIST) $@ $(THEN) $(RM:s/+//) $@ $(FI) - @-$(RENAME) $@.$(ROUT).tmp $@ - @-mkdir $(@:d)hid - $(COMMAND_ECHO)$(PERL) $(SOLARENV)/bin/gen_userfeedback_VCL_names.pl $@ $(SOLARCOMMONBINDIR)/win $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/hid/userfeedback_VCL_names.csv.$(ROUT).tmp - @$(IFEXIST) $@ $(THEN) $(RM:s/+//) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/hid/userfeedback_VCL_names.csv $(FI) - @-$(RENAME) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/hid/userfeedback_VCL_names.csv.$(ROUT).tmp $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/hid/userfeedback_VCL_names.csv +##new hid.lst trigger with GEN_HID2=TRUE +#$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/hid.lst .PHONY : +# @echo "Making: " $@ +# @echo $(WORK_STAMP).$(LAST_MINOR) 010101010101010 > $@.$(ROUT).tmp +# $(COMMAND_ECHO)$(TYPE) $(SOLARCOMMONBINDIR)/hid/*.hid | tr -d "\015" | $(SORT) -u >> $@.$(ROUT).tmp +# @$(IFEXIST) $@ $(THEN) $(RM:s/+//) $@ $(FI) +# @-$(RENAME) $@.$(ROUT).tmp $@ +# @-mkdir $(@:d)hid +# $(COMMAND_ECHO)$(PERL) $(SOLARENV)/bin/gen_userfeedback_VCL_names.pl $@ $(SOLARCOMMONBINDIR)/win $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/hid/userfeedback_VCL_names.csv.$(ROUT).tmp +# @$(IFEXIST) $@ $(THEN) $(RM:s/+//) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/hid/userfeedback_VCL_names.csv $(FI) +# @-$(RENAME) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/hid/userfeedback_VCL_names.csv.$(ROUT).tmp $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/hid/userfeedback_VCL_names.csv .IF "$(SOLAR_JAVA)"!="" diff --git a/solenv/inc/tg_ext.mk b/solenv/inc/tg_ext.mk index f15bd8f99804..cd66717b96c4 100644 --- a/solenv/inc/tg_ext.mk +++ b/solenv/inc/tg_ext.mk @@ -303,11 +303,11 @@ $(MISC)/$(TARFILE_ROOTDIR).done : $(MISC)/$(TARFILE_MD5)-$(TARFILE_NAME).unpack #.IF "$(my4ver:s/.//:s/,//)" >= "300" # $(COMMAND_ECHO)cd $(MISC) && ( $(TYPE:s/+//) $(BACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | tr -d "\015" | patch $(PATCHFLAGS) -p2 ) #.ELSE # "$(my4ver:s/.//:s/,//)" >= "300" - $(COMMAND_ECHO)cd $(MISC) && $(TYPE:s/+//) $(BACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | tr -d "\015" | patch $(PATCHFLAGS) -p2 + $(COMMAND_ECHO)cd $(MISC) && $(TYPE:s/+//) $(MBACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | tr -d "\015" | patch $(PATCHFLAGS) -p2 #.ENDIF # "$(my4ver:s/.//:s/,//)" >= "300" .ELSE # "$(GUI)"=="WNT" .IF "$(BSCLIENT)"=="TRUE" - $(COMMAND_ECHO)cd $(MISC) && $(TYPE) $(BACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | $(GNUPATCH) -f $(PATCHFLAGS) -p2 + $(COMMAND_ECHO)cd $(MISC) && $(TYPE) $(MBACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | $(GNUPATCH) -f $(PATCHFLAGS) -p2 .ELSE # "$(BSCLIENT)"!="" $(COMMAND_ECHO)cd $(MISC) && $(TYPE) $(MBACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | $(GNUPATCH) $(PATCHFLAGS) -p2 .ENDIF # "$(BSCLIENT)"!="" diff --git a/solenv/inc/tg_jar.mk b/solenv/inc/tg_jar.mk index 6faf113aeaa5..5c6101d90c12 100644 --- a/solenv/inc/tg_jar.mk +++ b/solenv/inc/tg_jar.mk @@ -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 1f6a50347b79..054dcc5fbaff 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 913608e01db1..0b1659a28796 100644 --- a/solenv/inc/tg_rslb.mk +++ b/solenv/inc/tg_rslb.mk @@ -30,22 +30,6 @@ .IF "$(RESLIB$(TNR)TARGETN)"!="" -.IF "$(BUILDHIDS)"!="" -HIDRES$(TNR)PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))/$(RESLIB$(TNR)NAME)_res.hid - -#HACK cut off the dirty srs files which are included from solver -RESLIB$(TNR)HIDFILES:=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(subst,.srs,_srs.hid $(RESLIB$(TNR)SRSFILES))) -$(HIDRES$(TNR)PARTICLE): $(RESLIB$(TNR)HIDFILES) - @echo "Making: " $(@:f) - @$(IFEXIST) $@ $(THEN) $(RM:s/+//) $@ $(FI) -# need to strip since solaris cannot handle tab-only whitespace here - $(COMMAND_ECHO)$(TYPE) $(mktmp $(strip, $(subst,/,/ $(RESLIB$(TNR)HIDFILES))) )| xargs -s 1000 cat > $@.$(ROUT).tmp - @$(RENAME) $@.$(ROUT).tmp $@ - -ALLTAR : $(HIDRES$(TNR)PARTICLE) - -.ENDIF # "$(BUILDHIDS)"!="" - $(RSC_MULTI$(TNR)) : \ $(RESLIB$(TNR)SRSFILES) \ $(RESLIB$(TNR)TARGETN) \ diff --git a/solenv/inc/tg_scp.mk b/solenv/inc/tg_scp.mk index fd970deaae18..0033dd9a76be 100644 --- a/solenv/inc/tg_scp.mk +++ b/solenv/inc/tg_scp.mk @@ -36,7 +36,7 @@ $(PAR)/%.par : $(SOLARPARDIR)/%.par @@-$(MKDIRHIER) $(@:d:d) $(COMMAND_ECHO)$(COPY) $< $@ -LOCALSCP$(TNR)FILES=$(foreach,i,$(SCP$(TNR)FILES) $(foreach,j,$(SCP$(TNR)LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) +LOCALSCP$(TNR)FILES+=$(foreach,i,$(SCP$(TNR)FILES) $(foreach,j,$(SCP$(TNR)LINK_PRODUCT_TYPE) $(PAR)/$j/$i )) $(SCP$(TNR)TARGETN): $(LOCALSCP$(TNR)FILES) @echo "Making: " $(@:f) diff --git a/solenv/inc/tg_sdi.mk b/solenv/inc/tg_sdi.mk index a515fc1ed13a..66b8c89850b8 100644 --- a/solenv/inc/tg_sdi.mk +++ b/solenv/inc/tg_sdi.mk @@ -29,15 +29,6 @@ # instructions for ??? # unroll begin -.IF "$(HIDSID$(TNR)PARTICLE)"!="" -$(HIDSID$(TNR)PARTICLE): $(SDI$(TNR)TARGET) - @echo "Making: " $(@:f) - @-$(RM) $@.$(ROUT).tmp $@ - @$(TYPE) $(MISC)/$(SDI$(TNR)NAME).sid | $(AWK) '$$1=="#define" { print $$2, $$3 }' > $@.$(ROUT).tmp - @-$(RM) $@ - @$(RENAME) $@.$(ROUT).tmp $@ -.ENDIF # "$(HIDSID$(TNR)PARTICLE)"!="" - .IF "$(SDI$(TNR)TARGET)"!="" $(SDI$(TNR)TARGET): $(SVSDI$(TNR)DEPEND) $(SDI$(TNR)NAME).sdi @echo "Making: " $(@:f) diff --git a/solenv/inc/tg_shl.mk b/solenv/inc/tg_shl.mk index 30e12faeccad..cd02492d825a 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 ... @@ -469,8 +469,10 @@ $(SHL$(TNR)TARGETN) : \ @+source $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ shl $(SHL$(TNR)RPATH) $@ +.IF "$(SHL$(TNR)CREATEJNILIB)"!="" @echo "Making: " $(@:f).jnilib @macosx-create-bundle $@ +.ENDIF # "$(SHL$(TNR)CREATEJNILIB)"!="" .IF "$(UPDATER)"=="YES" .IF "$(SHL$(TNR)NOCHECK)"=="" $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS$(TNR)) $(SHL$(TNR)TARGETN) @@ -556,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)"!="" @@ -567,16 +568,6 @@ $(SHL$(TNR)TARGETN) : \ .ENDIF # "$(GUI)" == "OS2" - -.IF "$(TESTDIR)"!="" -.IF "$(NO_TESTS)"=="" - -ALLTAR : runtest_$(SHL$(TNR)TARGET) - -runtest_$(SHL$(TNR)TARGET) : $(SHL$(TNR)TARGETN) - testshl $(SHL$(TNR)TARGETN) sce/$(SHL$(TNR)TARGET).sce -msg -skip -.ENDIF # "$(NO_TESTS)"=="" -.ENDIF # "$(TESTDIR)"!="" .ENDIF # "$(SHL$(TNR)TARGETN)"!="" # unroll end diff --git a/solenv/inc/tg_srs.mk b/solenv/inc/tg_srs.mk index 4e70eb06b1b4..a919069cd3cd 100644 --- a/solenv/inc/tg_srs.mk +++ b/solenv/inc/tg_srs.mk @@ -29,22 +29,10 @@ # unroll begin .IF "$(SRS$(TNR)NAME)"!="" -.IF "$(BUILDHIDS)"!="" -HID$(TNR)FILES=$(foreach,i,$(SRC$(TNR)FILES:f) $(SRS)/$(i:s/.src/.hid/)) -HIDSRS$(TNR)PARTICLE=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(SRS))/$(SRS$(TNR)NAME)_srs.hid -$(HIDSRS$(TNR)PARTICLE) : $(HID$(TNR)FILES) - @echo "Making: " $(@:f) - @-$(RM) $@ - $(COMMAND_ECHO)$(TYPE) $(mktmp $(subst,/,/ $(HID$(TNR)FILES))) | xargs -s 1000 cat > $@.$(ROUT).tmp - @$(RENAME) $@.$(ROUT).tmp $@ - -ALLTAR : $(HIDSRS$(TNR)PARTICLE) - -.ENDIF # "$(BUILDHIDS)"!="" $(MISC)/$(TARGET).$(SRS$(TNR)NAME).dprr: $(LOCALIZE_ME_DEST) -$(MISC)/$(TARGET).$(SRS$(TNR)NAME).dprr: $(SRC$(TNR)FILES) $(HIDSRS$(TNR)PARTICLE) $(HID$(TNR)FILES) +$(MISC)/$(TARGET).$(SRS$(TNR)NAME).dprr: $(SRC$(TNR)FILES) @echo "Making: " $(@:f) @@-$(RM) $(MISC)/$(TARGET).$(SRS$(TNR)NAME).dprr $(COMMAND_ECHO)$(RSC) $(VERBOSITY) $(SRSDEFAULT) $(RSC_SRS_CHARSET) $(RSCFLAGS) -I$(RSCEXTINC) -I$(INCLOCPRJ) -I$(INCLOCAL) -I$(INC) -I$(INCCOM) $(RSCDEFS) $(RSCUPDVERDEF) -fp={$(SRS)/$(SRS$(TNR)NAME).srs} -fo=$@ -p=$(TARGET) $(SRC$(TNR)FILES) diff --git a/solenv/inc/unitools.mk b/solenv/inc/unitools.mk index 17c7c03a6c62..f54918b78b0c 100644 --- a/solenv/inc/unitools.mk +++ b/solenv/inc/unitools.mk @@ -127,6 +127,12 @@ GNUTAR*=gtar DEREFERENCE=-L .ELSE # "$(OS)"=="SOLARIS" AWK*=awk +# this is not true, as BSD does not default to a GNU cp, but BSD cp +# so in dmake makefiles one should be restricted to use the subset +# of features that both BSD and GNU make support. +# as the GNU make build system requires GNUCOPY to really be a GNU copy +# we work around that for now by not setting GNUCOPY in sdev300.ini +# for fbsd for now, but for all other platforms it is set. GNUCOPY*=cp GNUPATCH*=patch DEREFERENCE=-L diff --git a/solenv/inc/unx.mk b/solenv/inc/unx.mk index 5733e026f566..cecb6f319f40 100644 --- a/solenv/inc/unx.mk +++ b/solenv/inc/unx.mk @@ -203,6 +203,9 @@ DLLPOST!:=$(DLLPOST).$($(UNIXVERSIONNAMES)_MAJOR) KDE_CFLAGS:=-I$(KDE_ROOT)/include -DQT_CLEAN_NAMESPACE KDE_LIBS:=-lkdeui -lkdecore -lqt-mt SOLARLIB+=-L$(KDE_ROOT)/lib +.IF "$(OS)$(CPU)" == "LINUXX" +SOLARLIB+=-L$(KDE_ROOT)/lib64 +.ENDIF # "$(OS)$(CPU)" == "LINUXX" .ENDIF # "$(KDE_ROOT)"!="" .ENDIF # "$(ENABLE_KDE)" != "" diff --git a/solenv/inc/unxgcc.mk b/solenv/inc/unxgcc.mk index 8c5bbb405f1a..e5cd92055225 100644 --- a/solenv/inc/unxgcc.mk +++ b/solenv/inc/unxgcc.mk @@ -158,6 +158,9 @@ LINK*=$(CXX) LINKC*=$(CC) # default linker flags +.IF "$(SYSBASE)"!="" +LINKFLAGS_SYSBASE:=-Wl,--sysroot=$(SYSBASE) +.ENDIF # "$(SYSBASE)"!="" # # The DT RPATH value is used first, before any other path, specifically before # the path defined in the LD_LIBRARY_PATH environment variable. This is @@ -180,16 +183,16 @@ LINKFLAGSRUNPATH_OXT= LINKFLAGSRUNPATH_BOXT=-Wl,-rpath,\''$$ORIGIN/../../../basis-link/program'\',--enable-new-dtags LINKFLAGSRUNPATH_NONE= # flag -Wl,-z,noexecstack sets the NX bit on the stack -LINKFLAGS=-Wl,-z,noexecstack -Wl,-z,combreloc $(LINKFLAGSDEFS) +LINKFLAGS=-Wl,-z,noexecstack -Wl,-z,combreloc $(LINKFLAGSDEFS) $(LINKFLAGS_SYSBASE) .IF "$(HAVE_LD_BSYMBOLIC_FUNCTIONS)" == "TRUE" LINKFLAGS += -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo .ENDIF # linker flags for linking applications LINKFLAGSAPPGUI= -Wl,-export-dynamic \ - -Wl,-rpath-link,$(LB):$(SOLARLIBDIR) + -Wl,-rpath-link,$(LB):$(SOLARLIBDIR):$(SYSBASE)/lib:$(SYSBASE)/usr/lib LINKFLAGSAPPCUI= -Wl,-export-dynamic \ - -Wl,-rpath-link,$(LB):$(SOLARLIBDIR) + -Wl,-rpath-link,$(LB):$(SOLARLIBDIR):$(SYSBASE)/lib:$(SYSBASE)/usr/lib # linker flags for linking shared libraries LINKFLAGSSHLGUI= -shared diff --git a/solenv/inc/unxmacx.mk b/solenv/inc/unxmacx.mk index 134395567966..99beaa797626 100644 --- a/solenv/inc/unxmacx.mk +++ b/solenv/inc/unxmacx.mk @@ -45,8 +45,9 @@ CDEFS+=-DGLIBC=2 -D_PTHREADS -D_REENTRANT -DNO_PTHREAD_PRIORITY $(PROCESSOR_DEFI # unless you want to do runtime checks for 10.5 api, you also want to use the 10.4 sdk # (safer/easier than dealing with the MAC_OS_X_VERSION_MAX_ALLOWED macro) # http://developer.apple.com/technotes/tn2002/tn2064.html -MACOSX_DEPLOYMENT_TARGET=10.4 -.EXPORT: MACOSX_DEPLOYMENT_TARGET +# done in setsolar/configure now. left here for documentation +#MACOSX_DEPLOYMENT_TARGET=10.4 +#.EXPORT: MACOSX_DEPLOYMENT_TARGET CDEFS+=-DQUARTZ EXTRA_CDEFS*=-isysroot /Developer/SDKs/MacOSX10.4u.sdk .ENDIF diff --git a/solenv/inc/version.hrc b/solenv/inc/version.hrc index c098be0ccad8..344abbe07fad 100755 --- a/solenv/inc/version.hrc +++ b/solenv/inc/version.hrc @@ -25,21 +25,11 @@ * *************************************************************************/ -#define VERSION 3 -#define SUBVERSION 3 +#include "versionlist.hrc" + //#define VERVARIANT 0 // never define this one, will be provided by build environment (BUILD_ID) -// .0 + VER_CONCEPT -// .100 + VER_ALPHA -// .200 + VER_BETA -// .300 + VER_GAMMA -// .500 + VER_FINAL -//#define VER_CONCEPT 0 -//#define VER_BETA 6 -#define VER_FINAL 0 -#define VER_DAY 1 -#define VER_MONTH 8 -#define VER_YEAR 2010 +#define VER_FINAL 0 #ifndef VER_FIRSTYEAR #define VER_FIRSTYEAR VER_YEAR diff --git a/solenv/inc/version.lst b/solenv/inc/version.lst index ac49f6c6fcf6..200cdf53e924 100644..100755 --- a/solenv/inc/version.lst +++ b/solenv/inc/version.lst @@ -26,5 +26,9 @@ #************************************************************************* OOOBASEVERSIONMAJOR=3 -OOOBASEVERSIONMINOR=3 +OOOBASEVERSIONMINOR=4 OOOBASEVERSIONMICRO=0 + +OOOBASEVERSIONDAY=1 +OOOBASEVERSIONMONTH=10 +OOOBASEVERSIONYEAR=2010 diff --git a/solenv/inc/version_so.hrc b/solenv/inc/version_so.hrc index b7e95397b091..2e4db98a2925 100755 --- a/solenv/inc/version_so.hrc +++ b/solenv/inc/version_so.hrc @@ -25,21 +25,11 @@ * *************************************************************************/ -#define VERSION 3 -#define SUBVERSION 3 +#include "versionlist.hrc" + //#define VERVARIANT 0 // never define this one, will be provided by build environment (BUILD_ID) -// .0 + VER_CONCEPT -// .100 + VER_ALPHA -// .200 + VER_BETA -// .300 + VER_GAMMA -// .500 + VER_FINAL -//#define VER_CONCEPT 0 -//#define VER_BETA 6 -#define VER_FINAL 0 -#define VER_DAY 1 -#define VER_MONTH 8 -#define VER_YEAR 2010 +#define VER_FINAL 0 #ifndef VER_FIRSTYEAR #define VER_FIRSTYEAR VER_YEAR diff --git a/solenv/inc/versionlist.mk b/solenv/inc/versionlist.mk index 31a255e48be1..672df7bd7602 100644..100755 --- a/solenv/inc/versionlist.mk +++ b/solenv/inc/versionlist.mk @@ -27,4 +27,4 @@ .INCLUDE: version.lst -.EXPORT : OOOBASEVERSIONMAJOR OOOBASEVERSIONMINOR OOOBASEVERSIONMICRO +.EXPORT : OOOBASEVERSIONMAJOR OOOBASEVERSIONMINOR OOOBASEVERSIONMICRO OOOBASEVERSIONDAY OOOBASEVERSIONMONTH OOOBASEVERSIONYEAR diff --git a/solenv/inc/wntgcci.mk b/solenv/inc/wntgcci.mk index 73f33998cc7b..531b4baef719 100755 --- a/solenv/inc/wntgcci.mk +++ b/solenv/inc/wntgcci.mk @@ -85,7 +85,7 @@ CDEFS+=-D_DLL # -Wshadow does not work for C with nested uses of pthread_cleanup_push: CFLAGSWARNCC=-Wall -Wextra -Wendif-labels CFLAGSWARNCXX=$(CFLAGSWARNCC) -Wshadow -Wno-ctor-dtor-privacy \ - -Wno-non-virtual-dtor -Wno-uninitialized + -Wno-non-virtual-dtor CFLAGSWALLCC=$(CFLAGSWARNCC) CFLAGSWALLCXX=$(CFLAGSWARNCXX) CFLAGSWERRCC=-Werror @@ -127,7 +127,7 @@ LINKFLAGSDEBUG=-g LINKFLAGSOPT= .IF "$(MINGW_SHARED_GXXLIB)"=="YES" && "$(DYNAMIC_CRT)"!="" -STDLIBCPP=-lstdc++_s +STDLIBCPP=$(MINGW_SHARED_LIBSTDCPP) .ELSE STDLIBCPP=-lstdc++ .ENDIF diff --git a/solenv/inc/wntmsc.mk b/solenv/inc/wntmsc.mk index 2138405a6b9a..1276f773e336 100644..100755 --- a/solenv/inc/wntmsc.mk +++ b/solenv/inc/wntmsc.mk @@ -232,13 +232,12 @@ _VC_MANIFEST_BASENAME=__VC90 .ENDIF .IF "$(CL_X64)" == "" -LINK=link /MACHINE:IX86 +LINK=link /MACHINE:IX86 /IGNORE:4102 /IGNORE:4197 .ELSE LINK=link /MACHINE:X64 .ENDIF # 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 diff --git a/solenv/makefile.mk b/solenv/makefile.mk index 31bed765ac7f..c4a2d0893d7c 100644..100755 --- a/solenv/makefile.mk +++ b/solenv/makefile.mk @@ -32,9 +32,14 @@ TARGET=init # --- Settings ---------------------------------- .INCLUDE : settings.mk .INCLUDE : target.mk +.INCLUDE : versionlist.mk -ALLTAR : comment - -comment: - @echo just for sideeffects... +ALLTAR : $(INCCOM)/versionlist.hrc +$(INCCOM)/versionlist.hrc : ./inc/version.lst + $(COMMAND_ECHO)echo "#define VERSION $(OOOBASEVERSIONMAJOR)" > $@ + $(COMMAND_ECHO)echo "#define SUBVERSION $(OOOBASEVERSIONMINOR)" >> $@ + $(COMMAND_ECHO)echo "#define MICROVERSION $(OOOBASEVERSIONMICRO)" >> $@ + $(COMMAND_ECHO)echo "#define VER_DAY $(OOOBASEVERSIONDAY)" >> $@ + $(COMMAND_ECHO)echo "#define VER_MONTH $(OOOBASEVERSIONMONTH)" >> $@ + $(COMMAND_ECHO)echo "#define VER_YEAR $(OOOBASEVERSIONYEAR)" >> $@ diff --git a/solenv/prj/d.lst b/solenv/prj/d.lst index edbfc190c808..05ceea226515 100644..100755 --- a/solenv/prj/d.lst +++ b/solenv/prj/d.lst @@ -1,2 +1,4 @@ -mkdir: %_DEST%\bin%_EXT%
-..\inc\version.lst %_DEST%\bin%_EXT%\version.lst
+mkdir: %_DEST%\bin%_EXT% +mkdir: %_DEST%\inc%_EXT% +..\inc\version.lst %_DEST%\bin%_EXT%\version.lst +..\%__SRC%\inc\versionlist.hrc %_DEST%\inc%_EXT%\versionlist.hrc diff --git a/solenv/src/component.map b/solenv/src/component.map index ac2c3750bfe0..62b8829a0f51 100755 --- a/solenv/src/component.map +++ b/solenv/src/component.map @@ -1,7 +1,6 @@ UDK_3_0_0 { global: component_getImplementationEnvironment; - component_writeInfo; component_getFactory; local: *; diff --git a/solenv/src/reg-component.map b/solenv/src/reg-component.map new file mode 100755 index 000000000000..ac2c3750bfe0 --- /dev/null +++ b/solenv/src/reg-component.map @@ -0,0 +1,8 @@ +UDK_3_0_0 { + global: + component_getImplementationEnvironment; + component_writeInfo; + component_getFactory; + local: + *; +}; diff --git a/solenv/src/unloadablecomponent.map b/solenv/src/unloadablecomponent.map index 30c5bb729ac7..2da0c5709c7b 100755 --- a/solenv/src/unloadablecomponent.map +++ b/solenv/src/unloadablecomponent.map @@ -1,7 +1,6 @@ UDK_3_0_0 { global: component_getImplementationEnvironment; - component_writeInfo; component_getFactory; component_canUnload; local: diff --git a/soltools/HIDCompiler/hidclex.l b/soltools/HIDCompiler/hidclex.l deleted file mode 100755 index 8067d7db93f3..000000000000 --- a/soltools/HIDCompiler/hidclex.l +++ /dev/null @@ -1,949 +0,0 @@ -/************************************************************************* - * - * 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. - * - ************************************************************************/ -%{ -// Suppress any warnings from generated code: -#if defined __GNUC__ -#pragma GCC system_header -#elif defined __SUNPRO_CC -#pragma disable_warn -#elif defined _MSC_VER -#pragma warning(push, 1) -#endif - -static char const Revision[] = "$Revision: 1.9 $" ; - -/* - -XX XX XXXX XXXXXX -XX XX XX XX XX -XX XX XX XX XX -XXXXXX XX XX XX -XX XX XX XX XX -XX XX XX XX XX -XX XX XXXX XXXXXX - - - XXXX XX XXX - XX XX XX -XX XXXX XXX XX XX XXX XXX XX XXXXX XX XXX -XX XX XX XX X XX XX XX XX XX XX X XXX XX -XX X XX XX XX X XX XX XX XX XX XXXXXXX XX - XX XX XX XX XX XX XXXXX XX XX XX XX - XXXX XXXX XXX XXX XX XXXX XXXX XXXXX XXXX - XXXX - -*/ - - -/* length of buffer for reading with lex */ -/**/ -/* enlarge token buffer to tokenize whole strings */ -#undef YYLMAX -#define YYLMAX 64000 - -int exclude_bracelevel=0; /* count braces in that start state */ -static YY_BUFFER_STATE InputFiles[127]; // for recursive parse -static int nInputFileDepth = 0; - - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <ctype.h> - -int alloc_cnt = 0; -static bool bVerbose = false; -void freestring( char const * ); //forward - -char* dot2underline( char* str ) -{ - size_t len=strlen(str); - for( size_t i=0; i<len; i++ ) - if( str[i]=='.' ) str[i]='_'; - return str; -} - -void dotappend( char*& base, char const * suffix ) -{ - // append like "str.suffix" if suffix else "str" - - if( suffix == NULL ) - return ; - - size_t siz; - if( (siz=strlen(suffix)) == 0 ) - return ; - - size_t siz2 = base==NULL ? 0 : strlen(base); - - char* newstr; - - {//do never forget to increment/decrement alloc_cnt - newstr = (char*) malloc( (siz2+siz+1) +1 /*for "." */ ); - alloc_cnt++; - } - - if( newstr == NULL ) - fprintf( stderr,"error: dotappend() could not malloc() \n"), exit(1); - - if( base ) { - strcpy( newstr, base ); - freestring( base ); - } - else - newstr[0] = '\0'; - - strcat( newstr, "." ); - strcat( newstr, suffix ); - base = newstr; -} - -void dotsubtract( char*& base, char const * suffix ) -{ - // remove dotted suffix from base.suffix --> base - - if( base == NULL || suffix == NULL ) - return; - if( strlen(suffix) == 0 ) - return; - if( (strlen(suffix)+1) > strlen(base) ) - return; - char * pos=strstr( base, suffix); - if( pos && (pos-1 >= base) && ( *(pos-1) == '.') ) - if( *(pos+strlen(suffix)) == '\0' ) //only if at end of base - *(pos-1)= '\0'; - return; -} - -int level = 0; -char levelbuffer[512]; - -void adjust_levelbuffer() -{ - int i; - for(i=0; i<level;i++) { - levelbuffer[i] = '\t'; - } - levelbuffer[i] = '\0'; -} - -void freestring( char const * ptr ) -{ - alloc_cnt--; - adjust_levelbuffer(); - if ( bVerbose ) - fprintf(stdout,"%sinfo: freestring line %d\n",levelbuffer, __LINE__); - free(const_cast< char * >(ptr)), ptr = NULL; -} - -void makestring(char** newstr, char* oldstr) -{ - alloc_cnt++; - adjust_levelbuffer(); - if ( bVerbose ) - fprintf(stdout,"%sinfo: makestring on line %d\n",levelbuffer,__LINE__); - strcpy( (*newstr=(char*)malloc(strlen(oldstr)+1)), oldstr); - if( *newstr==NULL ) { - fprintf( stderr, - "error: cannot malloc for makestring() alloc_cnt==%d \n", alloc_cnt); - exit(1); - } -} - -#ifndef WNT -int strcmpi(char const * stra, char const * strb) -{ - // like strcmp() but case insensitive - size_t i; - char a,b; - for(i=0; ;i++){ - a = (char) tolower(stra[i]); - b = (char) tolower(strb[i]); - if( a < b ) - return -1; - if( a > b ) - return 1; - if( a == '\0' && b == '\0' ) - return 0; - } -} -#endif - -/* variables for listfile ( with project + pathname of src file ) */ -char* listfilename; -#define MAXSRCFILES 2048 -char* filename_tab[MAXSRCFILES]; -char* project_tab[MAXSRCFILES]; -int tab_entries = 0; - -/* globale variablen */ -FILE* outfile; -char const *filename = ""; //incl. path -char const *project = ""; -char const *subpath = ""; //from project name downwards like source\ui\xxx.src - -int firstprint = 1; - -int in_define = 0; - -class ident_ring -{ - #define MAXRING 2 - //nicht aendern wg externer Abfrage ->size() == 2 - - char* ring[MAXRING]; - int ringpos; - int last; - int broken; -public: - ident_ring() { - last = ringpos = -1; - for(int i=0; i<MAXRING;i++) - ring[i]=NULL; - broken = 0; - } - - void set_zero() { - last = ringpos = -1; - for(int i=0; i<MAXRING;i++) { - if( ring[i] != NULL ) - freestring( ring[i] ); - ring[i]=NULL; - } - broken = 0; - } - void set_broken() { broken = 1; } - int size() { - if( ringpos == -1 ) - return 0; - - if( broken) { - if( ringpos==0 ) - return 0; - else - return 1; - } else { - if( ringpos==0 ) - return 1; - else - return 2; - } - } - - char* extract_last(){ - if( last == -1 ) { - return NULL; - } else { - char* ttt=ring[last]; - ring[last]=NULL; - return ttt; - } - } - - char* extract_actual() { - if(ringpos == -1) { - return NULL; - } else { - char *ttt=ring[ringpos]; - ring[ringpos]=NULL; - return ttt; - } - } - - void set(char* id) { - ringpos= (++ringpos) % MAXRING; - if( ring[ringpos] != NULL ) - freestring( ring[ringpos] ); /*otherwise: memory lost*/ - ring[ ringpos ] = id; - if ( bVerbose ) - fprintf(stdout, - "info: ring[%d] == %s broken==%d \n" - ,ringpos,ring[ringpos],broken - ); - - if( !(ringpos==0 && last==-1) ) - last = (++last) % MAXRING; - } -}; - - -/* Notnagel: die letzten identifier/number merken, fuer klasse & globalID */ -ident_ring *ring; - -// -typedef int token; -// -#define TOK_SEMICOLON ';' -#define TOK_EQUAL '=' -#define TOK_OPENBRACKET '[' -#define TOK_CLOSEBRACKET ']' -#define TOK_OPENBRACE '{' -#define TOK_CLOSEBRACE '}' -#define TOK_KOMMA ',' -#define TOK_LESS '<' -#define TOK_GREATER '>' -#define TOK_OPENPAREN '(' -#define TOK_CLOSEPAREN ')' -#define TOK_PLUS '+' -#define TOK_MINUS '-' -#define TOK_STAR '*' -#define TOK_SLASH '/' -// -#define TOK_POSorSIZE 146 -#define TOK_POSSIZE 147 -#define TOK_TEXTTAG 148 -#define TOK_IDNUM 149 -// -#define TOK_EXTRADATA 151 -#define TOK_TEXT 152 -#define TOK_MESSAGE 153 -#define TOK_HELPTEXT 154 -#define TOK_TRUE 155 -#define TOK_FALSE 156 -// -#define TOK_RESID 180 -// -#define TOK_STRING 190 -// -#define TOK_INVALID (-1) - -token lasttoken = TOK_INVALID; - - - - -#define UNDEF (-1) - -char *globalID = const_cast< char * >(""); -char const *globalKLASSE = NULL; - -void reset_globalID() { - // - if( globalID && (strlen(globalID) > 0 ) ) { - freestring( globalID ); - globalID = const_cast< char * >(""); - } -} - - -//-------------------------------------------------------------------- -class resource -{ -private: - resource ( const resource& ); //copy-ctor soll keiner benutzen - void operator=( const resource& ); // zuweisung auch nicht -public: - resource(); - ~resource(); -public: - int lineno; - token lasttoken; //before opening { - char const *klasse ; - char *localID; - char *helpID; - int residfound; -}; - -resource *ares ; /* aktuell bearbeitete resource */ - -resource::~resource() -{ - if( klasse != NULL ) freestring(klasse); - if( localID != NULL ) freestring(localID); - if( helpID != NULL ) freestring(helpID); - -} - -resource::resource() -{ - lineno = UNDEF; - lasttoken= TOK_INVALID; - klasse = NULL ; - localID = NULL ; - helpID = NULL ; - residfound= 0; -} - -int residfound = 0; // "Identifier = " auf momentanem level gefunden - -#define MAXSTACK 32 -resource* stack[MAXSTACK]; /* resource stack */ -#define EMPTYSTACK (-1) -int stackptr = EMPTYSTACK; - -void push_resource( resource* r ) -{ - stackptr++; - if( stackptr >= MAXSTACK ) { - fprintf( stderr, "error: resource stack is full %d \n", stackptr); - exit(1); - } - stack[ stackptr ] = r; -} - -resource* pop_resource() -{ - if( stackptr < 0 ) { - fprintf( stderr, "error: pop resource from empty stack \n"); - exit(1); - } - return stack[ stackptr-- ]; -} - -/* forward */ -int eat_comment(); -int eat_cpp_comment(); - -/*===================================================*/ -// -// '+' im identifier wg basic\source\classes\sb.src -// -// '<' im identifier wg sc subtdlg.src -// -// '&' im identifier wg scerror.src so2..nocode.src svxerr.src scwarngs.src - - -//string (\"[^"]*\") alter einfacher string ohne " - -%} - -/* 89012 */ -%option never-interactive - - -simple ([^\n\"]*) -%p 7000 -string \"{simple}((((\\\\)*(\\\"))?){simple})*\" - -%x MACRO_STATE - -%x EXCLUDE_STATE -resfilelist ([Ff][Ii][Ll][Ee][Ll][Ii][Ss][Tt]) -resstringlist ([Ss][Tt][Rr][Ii][Nn][Gg][Ll][Ii][Ss][Tt]) -resstring ([Ss][Tt][Rr][Ii][Nn][Gg]) - -identifier ([a-z_A-Z]+[a-z_A-Z<+&0-9]*) -number (([0-9]+)|(0x[0-9a-fA-F]+)) -residentifier ([Ii][Dd][Ee][Nn][Tt][Ii][Ff][Ii][Ee][Rr]) -w ([ \t\n]*) -wspecial ([\\ \t\n]*) -texttag (([Tt][Ii][Tt][Ll][Ee])|([Tt][Ee][Xx][Tt])|([Mm][Ee][Ss][Ss][Aa][Gg][Ee])) -qhelptag (([Qq][Uu][Ii][Cc][Kk])?([Hh][Ee][Ll][Pp][Tt][Ee][Xx][Tt])) -langtag ([a-zA-Z_]+) -helptag ([Hh][Ee][Ll][Pp][Ii][Dd]) -helpid ([a-zA-Z_0-9]+) -num2tag (([Pp][Oo][Ss])|([Ss][Ii][Zz][Ee])) -num4tag (([Pp][Oo][Ss][Ss][Ii][Zz][Ee])) - -%% -[ \t] { - /* forget whitespace */; - } - -^[ \t]*#include.*\.src[">].* { - char NewFile[255]; //long names??? - int i, j, GetIt; - - GetIt = 0; - j = 0; - nInputFileDepth++; -// nicht schoen aber geht... - for (i = 0; yytext[i+1] != 0; i++) - { - if ( GetIt == 1 ) - { - if ( yytext[i] == '"' || yytext[i] == '>' ) - GetIt = 0; - else - NewFile[j++] = yytext[i]; - } - if ( yytext[i] == '"' || yytext[i] == '<' ) - GetIt = 1; - } - NewFile[j] = '\0'; - FILE* pFile = NULL; - pFile = fopen( NewFile, "r" ); - if( pFile == NULL ) { - fprintf( stdout, "warning: could not open inputfile %s \n", NewFile ); - // try the new *_tmpl.src version instead - // this hack was introduced to allow localisation of included src files - const char* sStrTmpl = "_tmpl"; - j -= 4; - for ( i = 0 ; i <5 ; i++,j++ ) - { - NewFile[j+5] = NewFile[j]; - NewFile[j] = sStrTmpl[i]; - } - NewFile[j+4] = '\0'; - fprintf( stderr, "trying inputfile %s \n", NewFile ); - pFile = fopen( NewFile, "r" ); - if( pFile == NULL ) { - fprintf( stderr, "error: could not open inputfile %s \n", NewFile ); - exit(1); - } - } - InputFiles[ nInputFileDepth ] = yy_create_buffer( pFile, YY_BUF_SIZE ); - yy_switch_to_buffer( InputFiles[ nInputFileDepth ] ); - - if ( bVerbose ) - fprintf( stdout, "%s //ATTENTION!! %s gets included here\n", yytext, NewFile ); - fprintf( outfile, "// %s //ATTENTION!! %s gets included here\n\n", yytext, NewFile ); - } - -^[ \t]*#include.* { - fprintf( outfile, "%s\n\n", yytext ); - } - -^[ \t]*#(if|ifdef|ifndef|elif).* { - ; - } - -^[ \t]*#else { - ; - } -^[ \t]*#endif { - ; - } - -^[ \t]*#(undef|error|pragma).* { - ; - } - -^[ \t]*#define { - fprintf( outfile, "%s", yytext ); - BEGIN MACRO_STATE; - } - -<INITIAL,MACRO_STATE>"/*" { - eat_comment(); - } - -<INITIAL,MACRO_STATE>"//" { - eat_cpp_comment(); - } - -<MACRO_STATE>\n { - fprintf( outfile, "%s\n", yytext ); - BEGIN INITIAL; - } - -<MACRO_STATE>\\\n { - fprintf( outfile, "\\\n" ); - ;/* macro schadet nicht, koennte gebraucht werden */ - } - - -<MACRO_STATE>. { - fprintf( outfile, "%s", yytext ); - ;/* ignore all this unused input */ - } - -";" {ring->set_zero(); lasttoken = TOK_SEMICOLON; } -"=" {ring->set_zero(); lasttoken = TOK_EQUAL; } -"[" {ring->set_broken(); lasttoken = TOK_OPENBRACKET; } -"]" {ring->set_broken(); lasttoken = TOK_CLOSEBRACKET; } - - -<EXCLUDE_STATE>"{" { - exclude_bracelevel += 1; - if ( bVerbose ) - fprintf( stdout,"info: lev %d : found {\n", exclude_bracelevel ); - } - - -\\\n | -"{" { - // define continues - // or a brace opens a block - - if( in_define && !strcmp(yytext,"\\\n") ) { - - if( in_define++ == 1 ) - ;// keep on working - else - goto blockend; - } - - level++; - if( ares != NULL ){ - if( level > 1 ) - dotappend( globalID, ares->localID ); - ares->residfound = residfound; - push_resource( ares ); - } - ares = new resource; - - residfound = 0; - ares->residfound = 0; - - ares->lineno = yylineno; - ares->lasttoken = lasttoken; - if( ring->size() == 2 ) { - ares->klasse = ring->extract_last(); - ares->localID = ring->extract_actual(); - } else if(ring->size() == 1) { - ares->klasse = ring->extract_actual(); - } - if( level==1 ){ //Ausnahme: Resource auf Ebene 1 - globalID= ares->localID; - ares->localID = NULL; - globalKLASSE= ares->klasse; - } - - if ( bVerbose ) - fprintf(stdout,"info: { level: %d\n", level); - - lasttoken = TOK_OPENBRACE; - ring->set_zero(); - } - -<EXCLUDE_STATE>"}" { - //----------------------------- - exclude_bracelevel -= 1; - if ( bVerbose ) - fprintf( stdout,"info: lev %d : found }\n", exclude_bracelevel ); - if( exclude_bracelevel==1 ) { - BEGIN INITIAL; - exclude_bracelevel=0; - } - } - - -\n | -"}" { - if ( bVerbose ) - fprintf(stdout,"info: } level: %d\n",level); - - if( !strcmp(yytext,"}") ) - ; - else if( in_define && (!strcmp(yytext,"\n") )) { - if( in_define==1 ) { - //no continuation line for #define - in_define=0; - goto blockend; - } - else { - //there was a continuation line for #define - in_define=0; - } - } - else - goto blockend; - - // ares ausgeben - if( ares != NULL ) { - - #define LEER "leer" - char const * globklasse = - globalKLASSE==NULL ? LEER:globalKLASSE; - char const * local = - ares->localID==NULL ? LEER:ares->localID; - char const * klasse = - ares->klasse==NULL ? LEER:ares->klasse; - char const * glob = - globalID==NULL ? LEER:globalID; - - - //wg. Starview-Klasse String in ehdl.c und doc.c - // wenn generierte C++-Quellen compiliert werden - // - //if( !strcmp(globklasse,"String" )) globklasse = "string"; - //if( !strcmp(klasse,"String" )) klasse = "string"; - - - //--------------------------------------------------- - // generate the body of a new C main program, - // which is filled with printf statements - // to compute (via preproseccor & compiler) - // the codenumbers for resource names like menu$RID_SVX$xyz - - if( firstprint ) { - firstprint=0; - fprintf(outfile, "#include \"starview.hid\" \n\n"); - fprintf(outfile, " int main() { \n\n\n"); - } - - char globunder[256]; - strcpy(globunder,glob); - dot2underline( globunder ); - char const * globsuffix = strrchr(glob,'.'); - globsuffix = globsuffix==NULL ? glob:globsuffix+1; - - if( ares->helpID ) { - fprintf( outfile,"\n\t printf(\"%s \\t %cs %cu \\n\",\n", - ares->helpID,'%','%'); - fprintf(outfile,"\t\"HelpID\", (%s) ); \n", ares->helpID); - } - else if( ares->localID ) { - fprintf( outfile,"\n\t printf(\"%s:%s:%s:%s \\t %cs %cu %cs %cu \\n\",\n", - project,klasse,globunder,local,'%','%','%','%'); - fprintf( outfile,"\t\"Norm %s\", (%s), \"%s\", (%s) );\n", - globklasse,globsuffix, klasse,local); - } - else if( (strcmpi("MenuItem",klasse)==0) || - (strcmpi("ToolBoxItem",klasse)==0) ) { - ; //no output (99% is a separator) - } - else { - fprintf( outfile,"\n\t printf(\"%s:%s:%s \\t %cs %cu %cs \\n\",\n", - project,klasse,globunder,'%','%','%'); - fprintf( outfile,"\t\"Norm %s\", (%s), \"%s\" );\n", - globklasse,globsuffix, klasse); - } - - delete ares; - } - - - // ein level zurueck - if( level == 1) { - reset_globalID(); - globalKLASSE = NULL; - } - level--; - ares = pop_resource(); - residfound = ares->residfound; - dotsubtract( globalID, ares->localID ); - - - // - lasttoken = TOK_CLOSEBRACE; - ring->set_zero(); - blockend: ; - } - -"," {ring->set_broken(); lasttoken = TOK_KOMMA; } - -"<" {ring->set_broken(); lasttoken = TOK_LESS; } -">" {ring->set_broken(); lasttoken = TOK_GREATER; } - -"(" {ring->set_broken(); lasttoken = TOK_OPENPAREN; } -")" {ring->set_broken(); lasttoken = TOK_CLOSEPAREN; } -"+" {ring->set_broken(); lasttoken = TOK_PLUS; } -"-" {ring->set_broken(); lasttoken = TOK_MINUS; } -"*" {ring->set_broken(); lasttoken = TOK_STAR; } -"/" {ring->set_broken(); lasttoken = TOK_SLASH; } - - -{helptag}{w}"="{w}{helpid}{w}";" { - - // extract text for helpid and put to ares - char* pos = strchr(yytext,'='); - size_t offset = strspn(pos+1," \t\n"); - char* start = pos+1+offset; - size_t offset2= strcspn( start, "; \t\n"); - char* end = start+offset2; - *end = '\0'; - char *helpid; - makestring( &helpid, start ); - ares->helpID = helpid; - } - -{residentifier}{w}"="[ \t\n]*({identifier}|{number}) { - ring->set_zero(); - lasttoken = TOK_RESID; - residfound=1; - - //extract resource id and store as localID - char *after = strrchr(yytext,'='); - char *resid = after + strspn(after,"= \t\n"); - char *localID; - makestring( &localID, resid ); - ares->localID = localID; - } - -{resfilelist} | -{resstring} | -{resstringlist} { - BEGIN EXCLUDE_STATE; - exclude_bracelevel = 1; - if ( bVerbose ) - fprintf( stdout,"info: lev %d : found exclusion\n", exclude_bracelevel ); - } - -^[ \t]*#define | -{number} | -{identifier} { - /* identifier/number in einem ring ablegen */ - char *identifier; - char *def=strstr(yytext,"#define"); - if( def ) { - in_define = 1; - makestring( &identifier, def+1 ); - } - else - makestring( &identifier, yytext ); - ring->set( identifier ); - lasttoken = TOK_IDNUM; - - } -<INITIAL,EXCLUDE_STATE>{string} { - ring->set_broken(); - lasttoken = TOK_STRING; - if ( bVerbose ) - fprintf(stdout, "%6s %11s %8d %s \n",project,filename,yylineno, yytext); - } - - -<INITIAL,EXCLUDE_STATE>. { if ( bVerbose ) fprintf( stdout,"warning: unused input on line %d of %s \n%s\n", - yylineno, filename, yytext); - } - -<EXCLUDE_STATE>\n { - ; //do nothing, ignore - } - - -%% - - -void makeversion( char* version ) -{ - char const *pos = strpbrk( Revision, "0123456789." ); - size_t siz = strspn( pos, "0123456789." ); - if( pos && siz ) { - strncpy(version, pos, siz); - strcat( version, " "); - } - else - strcpy( version," unknown " ); -} - -int main( int argc, char* argv[] ) -{ - static char const *Compiler = "HID-Compiler "; - static char const *Author = "OG "; - static char HIDCompiler[100]; - static char Version[100]; - - // check for switches given on the command line - if ( ( argc > 0 ) && ( 0 == strcmp( argv[0], "-verbose" ) ) ) - { - bVerbose = true; - for ( size_t i=0; i<argc-1; ++i ) - { - argv[i] = argv[i+1]; - --argc; - } - } - - makeversion( Version ); - strcpy( HIDCompiler, Compiler ); - strcat( HIDCompiler, Version ); - strcat( HIDCompiler, Author ); - if ( bVerbose ) - fprintf( stdout, "\n %s \n\n", HIDCompiler); - if(argc < 4) { - fprintf( - stderr, - "usage: hidc [-verbose] file.src file.c project\n" - "\n" - "You must give exactly 3 arguments.\n" - "1 - an existing SRC file.\n" - "2 - C file to be generated (which generates the HID file when run).\n" - "3 - the project name (an arbitrary name).\n\n" - ); - exit(1); - } - - project = argv[3]; - - char *outfilename = argv[2]; - if( (outfile=fopen( outfilename , "w" )) ==NULL ) { - fprintf(stderr,"error: could not open outputfile '%s' \n", outfilename); - exit(1); - } - - filename = argv[1]; - nInputFileDepth = 0; - FILE* pFile; - pFile = fopen( filename, "r" ); - if( pFile == NULL ) { - fprintf( stderr, "error: could not open inputfile %s \n", filename ); - exit(1); - } - InputFiles[ nInputFileDepth ] = yy_create_buffer( pFile, YY_BUF_SIZE ); - yy_switch_to_buffer( InputFiles[ nInputFileDepth ] ); - ring = new ident_ring; - ares = new resource; - - fprintf(outfile, "/* Generated from %s */\n\n", HIDCompiler ); - fprintf(outfile, "/* Source was: %s */\n", filename ); - - yylineno = 1; - yylex(); /* do the real work here */ - - if( firstprint ) { - fprintf(outfile, "#include \"starview.hid\" \n\n"); - fprintf(outfile, " int main() { \n\n\n"); - } - fprintf(outfile, "\nreturn 0;"); - fprintf(outfile, "\n} /*main*/\n"); - return 0; -} - -int yywrap() -{ - yy_delete_buffer( InputFiles[ nInputFileDepth ] ); - if ( nInputFileDepth == 0 ) - return 1;/* keine src files mehr */ - else - { - nInputFileDepth--; - fprintf(outfile, "// Done reading file\n\n"); - yy_switch_to_buffer( InputFiles[ nInputFileDepth ] ); - return 0; - } -} - -int eat_comment() -{ - int c; - int lastc = ' '; - while( (c=yyinput()) != EOF ) { - if( c=='\n') - ; - else if( c=='/' && lastc=='*' ) - break; /* end of comment found */ - lastc=c; - } - return 0; -} - -int eat_cpp_comment() -{ - int c; - while( (c=yyinput()) != EOF ) { - if( c=='\n') { - break; - } - } - if( c != EOF ) - unput(c); /* because next #.... line was not found */ - return 0; -} diff --git a/soltools/mkdepend/def.h b/soltools/mkdepend/def.h index 4e362000e385..6a3086df7bf0 100644 --- a/soltools/mkdepend/def.h +++ b/soltools/mkdepend/def.h @@ -61,8 +61,8 @@ in this Software without prior written authorization from the X Consortium. #endif #define MAXDEFINES 512 -#define MAXFILES 2048 /* Increased from 512. -mcafee */ - /* Increased from 1024. -mh */ +#define MAXFILES 65536 + #define MAXDIRS 64 #define SYMHASHSEED 131 /* 131 1313 13131 ... */ #define SYMHASHMEMBERS 64 /* must be 2^x to work right */ diff --git a/soltools/mkdepend/include.c b/soltools/mkdepend/include.c index 6213686e0c27..d0bd763bcd43 100644 --- a/soltools/mkdepend/include.c +++ b/soltools/mkdepend/include.c @@ -72,15 +72,18 @@ struct inclist *inc_path(file, include, dot, incCollection) * If the path was surrounded by "" or is an absolute path, * then check the exact path provided. */ - if (!found && (dot || *include == '/')) { - - if ((exists_path(incCollection, include)) && stat(include, &st) == 0 && !( st.st_mode & S_IFDIR)) { - ip = newinclude(include, include); - found = TRUE; - } - else if (show_where_not) - warning1("\tnot in %s\n", include); - } +// FIXME: creates duplicates in the dependency files if absolute paths are +// given, which certainly is not the intended behavior. Also it slows down +// makedepend performance considerably. +// if (!found && (dot || *include == '/')) { +// +// if ((exists_path(incCollection, include)) && stat(include, &st) == 0 && !( st.st_mode & S_IFDIR)) { +// ip = newinclude(include, include); +// found = TRUE; +// } +// else if (show_where_not) +// warning1("\tnot in %s\n", include); +// } /* * See if this include file is in the directory of the diff --git a/soltools/prj/build.lst b/soltools/prj/build.lst index 73611addf782..578723b0e09d 100644 --- a/soltools/prj/build.lst +++ b/soltools/prj/build.lst @@ -10,5 +10,4 @@ so soltools\javadep nmake - all so_jvdep so_mkdep so_adjvis.u NULL so soltools\support nmake - all so_supp so_mkdep so_adjvis.u NULL so soltools\giparser nmake - all so_gip so_supp so_adjvis.u NULL so soltools\adjustvisibility nmake - u so_adjvis so_mkdep NULL -so soltools\HIDCompiler nmake - all so_hidc so_mkdep so_adjvis.u so_wunistd.n NULL so soltools\testhxx nmake - all so_testhxx so_mkdep NULL diff --git a/soltools/prj/d.lst b/soltools/prj/d.lst index ee3ae5e2f907..970805f5d60c 100644 --- a/soltools/prj/d.lst +++ b/soltools/prj/d.lst @@ -8,6 +8,4 @@ ..\%__SRC%\bin\cpp.exe %_DEST%\bin%_EXT%\cpplcc.exe ..\%__SRC%\bin\cpp %_DEST%\bin%_EXT%\cpp.lcc ..\%__SRC%\inc\unistd.h %_DEST%\inc%_EXT%\unistd.h -..\%__SRC%\bin\hidc.exe %_DEST%\bin%_EXT%\hidc.exe -..\%__SRC%\bin\hidc %_DEST%\bin%_EXT%\hidc ..\%__SRC%\bin\testhxx* %_DEST%\bin%_EXT%\testhxx* diff --git a/soltools/HIDCompiler/wrap_hidclex.cxx b/stlport/systemstlguards/postextstl.h index 7764b2fb8d43..9c37a36d91b7 100644 --- a/soltools/HIDCompiler/wrap_hidclex.cxx +++ b/stlport/systemstlguards/postextstl.h @@ -26,9 +26,12 @@ * ************************************************************************/ -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_soltools.hxx" - -#include "hidc_yy.cxx" - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ +#ifdef std_was_redefined_as_stlport +// put things back the way they were +# define std std_was_redefined_as_stlport +# undef _STLP_OUTERMOST_HEADER_ID +// force config to be re-read +# undef _STLP_NOTHROW_INHERENTLY +# undef _STLP_CONFIG_H +# include <stddef.h> +#endif diff --git a/stlport/systemstlguards/preextstl.h b/stlport/systemstlguards/preextstl.h new file mode 100644 index 000000000000..763f0dfa79f3 --- /dev/null +++ b/stlport/systemstlguards/preextstl.h @@ -0,0 +1,77 @@ +/************************************************************************* + * + * 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. + * + ************************************************************************/ +//1. Force inclusion of a std:: using header to ensure the stlport define +//of std as "stlport" +#include <algorithm> +#if defined(ADAPT_EXT_STL) +//2. Force inclusion of stlport headers to get their stlport:: definitions +# include <ostream> +# include <istream> +# include <fstream> +# include <iostream> +# include <sstream> +# include <vector> +# include <deque> +# include <set> +# include <list> +# include <map> +//3. Now force inclusion of native headers to get their std:: definitions +# if defined(std) +# define std_was_redefined_as_stlport std +# undef std +# define _STLP_OUTERMOST_HEADER_ID 0xdeadbeaf +# if defined(_GNUC__) +# pragma GCC visibility push(default) +# endif +# include _STLP_NATIVE_HEADER(exception_defines.h) +# include _STLP_NATIVE_HEADER(limits) +# include _STLP_NATIVE_HEADER(memory) +# include _STLP_NATIVE_HEADER(exception) +# include _STLP_NATIVE_HEADER(iosfwd) +# include _STLP_NATIVE_HEADER(algorithm) +# include _STLP_NATIVE_HEADER(string) +# include _STLP_NATIVE_HEADER(streambuf) +# include _STLP_NATIVE_HEADER(ios) +# include _STLP_NATIVE_HEADER(locale) +# include _STLP_NATIVE_HEADER(stdexcept) +# include _STLP_NATIVE_HEADER(ostream) +# include _STLP_NATIVE_HEADER(istream) +# include _STLP_NATIVE_HEADER(iostream) +# include _STLP_NATIVE_HEADER(sstream) +# include _STLP_NATIVE_HEADER(vector) +# include _STLP_NATIVE_HEADER(deque) +# include _STLP_NATIVE_HEADER(set) +# include _STLP_NATIVE_HEADER(list) +# include _STLP_NATIVE_HEADER(map) +# if defined(_GNUC__) +# pragma GCC visibility pop +# endif +# endif +#endif +//ext_std resolves to the std that external c++ libs, e.g. Graphite were built +//against regardless of whether that is stlport or system stl +namespace ext_std = std; |