summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Thiebaud <nthiebaud@gmail.com>2011-03-08 19:43:29 -0600
committerNorbert Thiebaud <nthiebaud@gmail.com>2011-03-08 19:43:29 -0600
commitf0e5895d5baa04826d1884fc4720c6180f2eda04 (patch)
treed839e9131057f9d1271ec2578d1b370dcb89e032
parent7572bcf0b17da4b37bf4ba834347196567ec3c37 (diff)
parent853a58836446858b75bf82916272e9fd27a7a892 (diff)
Merge commit 'ooo/DEV300_m101' into integration/dev300_m101
* commit 'ooo/DEV300_m101': (500 commits) masterfix DEV300: #i10000# remove hard dep masterfix DEV300: #i10000# usage of L10N build_type masterfix DEV300: #i10000# usage of L10N build_type masterfix DEV300: #i100000# dep. fix masterfix DEV300: #i10000# removed one hard dep masterfix DEV300: #i10000# fixed patch handling masterfix DEV300: #i10000# new configure DEV300 masterfix DEV300: #i10000# nawk -> awk l10nmove: adjust repository handling l10nmove: fixed regex l10nmove: minor fixes l10nmove: add l10n repo to gb_REPOS DEV300 masterfix: gnumake3: subsequenttests requires in environment ab80: Adding changes of cws mib21, ab77, ab77run2, dr77i to dev300 DEV300 masterfix: #i10000#: windows: more bizare hacks ... locales34: have a matching configure as well DEV300 locales34: back out change from autoreconf gnumake3: JunitTest.mk: bizarre hacks to make it work on windows ... Conflicts: configure configure.in instsetoo_native/prj/build.lst instsetoo_native/util/makefile.mk instsetoo_native/util/openoffice.lst instsetoo_native/util/pack.lst ooo.lst scp2/source/canvas/canvascommons.scp scp2/source/canvas/mtfrenderer.scp scp2/source/ooo/common_brand.scp scp2/source/ooo/directory_ooo.scp scp2/source/ooo/file_library_ooo.scp scp2/source/ooo/file_ooo.scp scp2/source/ooo/makefile.mk scp2/source/ooo/module_hidden_ooo.scp scp2/source/ooo/module_langpack.ulf scp2/source/ooo/ure.scp scp2/source/python/file_python.scp scp2/source/sdkoo/sdkoo.scp scp2/source/templates/module_langpack_accessories_templates.sct scp2/source/templates/module_langpack_accessories_templates_root.sct set_soenv.in soldep/bootstrp/appdef.cxx soldep/bootstrp/dep.cxx soldep/bootstrp/hashtbl.cxx soldep/bootstrp/makefile.mk soldep/bootstrp/minormk.cxx soldep/bootstrp/prj.cxx soldep/bootstrp/prodmap.cxx soldep/inc/dep.hxx soldep/inc/minormk.hxx soldep/inc/prodmap.hxx soldep/inc/soldep/appdef.hxx soldep/inc/soldep/connctr.hxx soldep/inc/soldep/depper.hxx soldep/inc/soldep/depwin.hxx soldep/inc/soldep/hashtbl.hxx soldep/inc/soldep/objwin.hxx soldep/inc/soldep/prj.hxx soldep/inc/soldep/sdtresid.hxx soldep/inc/soldep/soldep.hxx soldep/inc/soldep/soldlg.hxx soldep/inc/soldep/tbox.hxx soldep/prj/d.lst soldep/source/connctr.cxx soldep/source/depapp.hxx soldep/source/depper.cxx soldep/source/depwin.cxx soldep/source/makefile.mk soldep/source/objwin.cxx soldep/source/soldep.cxx soldep/source/soldlg.cxx soldep/source/soldlg.src soldep/source/tbox.cxx solenv/bin/build.pl solenv/bin/cws.pl solenv/bin/make_installer.pl solenv/bin/mhids.pl solenv/bin/modules/CwsConfig.pm solenv/bin/modules/RepositoryHelper.pm solenv/bin/modules/installer/regmerge.pm solenv/bin/modules/installer/scriptitems.pm solenv/bin/modules/installer/servicesfile.pm solenv/bin/modules/installer/simplepackage.pm solenv/bin/modules/installer/substfilenamefiles.pm solenv/config/ssolar.cmn solenv/inc/_tg_rslb.mk solenv/inc/extension_post.mk solenv/inc/libs.mk solenv/inc/minor.mk solenv/inc/postset.mk solenv/inc/settings.mk solenv/inc/tg_rslb.mk solenv/inc/unxlng.mk solenv/inc/wntmsc.mk soltools/HIDCompiler/hidclex.l stlport/prj/d.lst stlport/systemstlguards/postextstl.h
-rw-r--r--.gitignore398
-rw-r--r--GNUmakefile37
-rw-r--r--Module_ooo.mk47
-rw-r--r--Repository.mk137
-rw-r--r--RepositoryFixes.mk186
-rw-r--r--buildscript.sh18
-rwxr-xr-xconfigure.in127
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_languages/makefile.mk5
-rw-r--r--instsetoo_native/prj/build.lst2
-rw-r--r--instsetoo_native/prj/d.lst1
-rw-r--r--instsetoo_native/util/makefile.mk1
-rw-r--r--instsetoo_native/util/openoffice.lst89
-rw-r--r--ooo.lst22
-rwxr-xr-x[-rw-r--r--]scp2/inc/macros.inc86
-rw-r--r--scp2/prj/build.lst2
-rw-r--r--scp2/source/base/file_base.scp14
-rw-r--r--scp2/source/binfilter/file_binfilter.scp6
-rw-r--r--scp2/source/calc/file_calc.scp12
-rwxr-xr-x[-rw-r--r--]scp2/source/calc/registryitem_calc.scp4
-rw-r--r--scp2/source/canvas/cairocanvas.scp3
-rw-r--r--scp2/source/canvas/canvascommons.scp4
-rw-r--r--scp2/source/canvas/directxcanvas.scp6
-rw-r--r--scp2/source/canvas/vclcanvas.scp2
-rwxr-xr-x[-rw-r--r--]scp2/source/draw/registryitem_draw.scp6
-rw-r--r--scp2/source/gnome/file_gnome.scp6
-rw-r--r--scp2/source/graphicfilter/file_graphicfilter.scp4
-rw-r--r--scp2/source/impress/file_impress.scp4
-rw-r--r--scp2/source/impress/module_ogltrans.scp3
-rwxr-xr-x[-rw-r--r--]scp2/source/impress/registryitem_impress.scp8
-rw-r--r--scp2/source/javafilter/file_javafilter.scp2
-rw-r--r--scp2/source/javafilter/registryitem_javafilter.scp8
-rw-r--r--scp2/source/kde/file_kde.scp4
-rw-r--r--scp2/source/math/file_math.scp4
-rw-r--r--scp2/source/onlineupdate/file_onlineupdate.scp2
-rw-r--r--scp2/source/ooo/common_brand.scp11
-rwxr-xr-xscp2/source/ooo/directory_ooo_macosx.scp4
-rw-r--r--scp2/source/ooo/file_improvement.scp2
-rwxr-xr-x[-rw-r--r--]scp2/source/ooo/file_library_ooo.scp405
-rw-r--r--scp2/source/ooo/file_ooo.scp95
-rw-r--r--scp2/source/ooo/file_resource_ooo.scp9
-rw-r--r--scp2/source/ooo/makefile.mk10
-rw-r--r--scp2/source/ooo/module_hidden_ooo.scp4
-rwxr-xr-xscp2/source/ooo/module_lang_template.scp9
-rw-r--r--scp2/source/ooo/module_langpack.ulf8
-rw-r--r--scp2/source/ooo/ooo_brand.scp8
-rw-r--r--scp2/source/ooo/profileitem_ooo.scp22
-rw-r--r--scp2/source/ooo/ure.scp138
-rw-r--r--scp2/source/python/file_python.scp4
-rw-r--r--scp2/source/python/module_python_mailmerge.scp3
-rw-r--r--scp2/source/testtool/file_testtool.scp7
-rw-r--r--scp2/source/writer/file_writer.scp14
-rwxr-xr-x[-rw-r--r--]scp2/source/writer/registryitem_writer.scp14
-rwxr-xr-xset_soenv.in45
-rw-r--r--soldep/bootstrp/command.cxx683
-rw-r--r--soldep/bootstrp/sstring.cxx314
-rw-r--r--soldep/inc/soldep/command.hxx163
-rw-r--r--soldep/inc/soldep/listmacr.hxx60
-rw-r--r--soldep/inc/soldep/sstring.hxx105
-rwxr-xr-xsolenv/bin/build.pl738
-rw-r--r--solenv/bin/buildalyzer138
-rw-r--r--solenv/bin/createcomponent.xslt51
-rwxr-xr-xsolenv/bin/deliver.pl32
-rwxr-xr-xsolenv/bin/linkoo2
-rw-r--r--solenv/bin/macosx-change-install-names.pl12
-rwxr-xr-xsolenv/bin/macosx-create-bundle2
-rw-r--r--solenv/bin/make_installer.pl42
-rw-r--r--solenv/bin/mhids.pl384
-rw-r--r--solenv/bin/modules/CreatePDBRelocators.pm61
-rw-r--r--solenv/bin/modules/RepositoryHelper.pm15
-rwxr-xr-xsolenv/bin/modules/SourceConfig.pm17
-rw-r--r--solenv/bin/modules/SourceConfigHelper.pm422
-rw-r--r--solenv/bin/modules/installer/control.pm32
-rw-r--r--solenv/bin/modules/installer/environment.pm4
-rw-r--r--solenv/bin/modules/installer/globals.pm20
-rw-r--r--solenv/bin/modules/installer/parameter.pm15
-rw-r--r--solenv/bin/modules/installer/regmerge.pm339
-rw-r--r--solenv/bin/modules/installer/scriptitems.pm78
-rw-r--r--solenv/bin/modules/installer/servicesfile.pm1059
-rw-r--r--solenv/bin/modules/installer/simplepackage.pm40
-rw-r--r--solenv/bin/modules/installer/substfilenamefiles.pm3
-rw-r--r--solenv/bin/modules/installer/windows/component.pm16
-rw-r--r--solenv/bin/modules/installer/windows/directory.pm107
-rw-r--r--solenv/bin/modules/installer/windows/file.pm232
-rw-r--r--solenv/bin/modules/installer/windows/idtglobal.pm22
-rw-r--r--solenv/bin/modules/installer/windows/msiglobal.pm110
-rw-r--r--solenv/bin/modules/installer/windows/property.pm4
-rw-r--r--solenv/bin/modules/par2script/check.pm49
-rw-r--r--solenv/bin/packcomponents.xslt52
-rwxr-xr-xsolenv/bin/packmodule63
-rw-r--r--solenv/bin/par2script.pl2
-rwxr-xr-x[-rw-r--r--]solenv/bin/soirpm.sh0
-rwxr-xr-xsolenv/bin/subsequenttests54
-rw-r--r--solenv/bin/transform_description.pl6
-rw-r--r--solenv/config/sdev300.ini3359
-rw-r--r--solenv/doc/gbuild/doxygen.cfg1510
-rw-r--r--solenv/doc/gbuild/solenv/gbuild/alllangres.mk90
-rw-r--r--solenv/doc/gbuild/solenv/gbuild/executable.mk25
-rw-r--r--solenv/doc/gbuild/solenv/gbuild/gbuild.mk82
-rw-r--r--solenv/doc/gbuild/solenv/gbuild/helper.mk42
-rw-r--r--solenv/doc/gbuild/solenv/gbuild/library.mk41
-rw-r--r--solenv/doc/gbuild/solenv/gbuild/linktarget.mk128
-rw-r--r--solenv/doc/gbuild/solenv/gbuild/package.mk30
-rw-r--r--solenv/doc/gbuild/solenv/gbuild/sdi.mk23
-rw-r--r--solenv/doc/gbuild/solenv/gbuild/static_library.mk39
-rw-r--r--solenv/doc/gbuild/solenv/gbuild/types.mk169
-rw-r--r--solenv/gbuild/AllLangResTarget.mk323
-rw-r--r--solenv/gbuild/BuildDirs.mk59
-rw-r--r--solenv/gbuild/ComponentTarget.mk69
-rw-r--r--solenv/gbuild/CppunitTest.mk96
-rw-r--r--solenv/gbuild/CustomTarget.mk96
-rw-r--r--solenv/gbuild/Deliver.mk95
-rw-r--r--solenv/gbuild/Executable.mk91
-rw-r--r--solenv/gbuild/Helper.mk167
-rw-r--r--solenv/gbuild/JavaClassSet.mk81
-rw-r--r--solenv/gbuild/JunitTest.mk97
-rw-r--r--solenv/gbuild/Library.mk133
-rw-r--r--solenv/gbuild/LinkTarget.mk641
-rw-r--r--solenv/gbuild/Module.mk212
-rw-r--r--solenv/gbuild/Output.mk147
-rw-r--r--solenv/gbuild/Package.mk80
-rw-r--r--solenv/gbuild/PrecompiledHeaders.mk77
-rw-r--r--solenv/gbuild/SdiTarget.mk71
-rw-r--r--solenv/gbuild/StaticLibrary.mk109
-rw-r--r--solenv/gbuild/TargetLocations.mk162
-rw-r--r--solenv/gbuild/Tempfile.mk18
-rw-r--r--solenv/gbuild/extensions/post_PackModule.mk62
-rw-r--r--solenv/gbuild/extensions/post_SetupLocal.mk68
-rw-r--r--solenv/gbuild/extensions/pre_SharedLangList.mk38
-rw-r--r--solenv/gbuild/gbuild.mk254
-rwxr-xr-xsolenv/gbuild/platform/linux.mk407
-rwxr-xr-xsolenv/gbuild/platform/macosx.mk454
-rwxr-xr-xsolenv/gbuild/platform/solaris.mk385
-rwxr-xr-xsolenv/gbuild/platform/windows.mk679
-rw-r--r--solenv/gbuild/platform/winmingw.mk609
-rw-r--r--solenv/gbuild/processdelivered.awk36
-rw-r--r--solenv/gbuild/processdeps.awk78
-rw-r--r--solenv/gbuild/templates/AllLangResTarget.mk49
-rw-r--r--solenv/gbuild/templates/CppunitTest.mk41
-rw-r--r--solenv/gbuild/templates/Executable.mk45
-rw-r--r--solenv/gbuild/templates/JunitTest.mk49
-rw-r--r--solenv/gbuild/templates/Library.mk86
-rw-r--r--solenv/gbuild/templates/Makefile38
-rw-r--r--solenv/gbuild/templates/Module.mk45
-rw-r--r--solenv/gbuild/templates/Package.mk42
-rw-r--r--solenv/gbuild/templates/StaticLibrary.mk35
-rw-r--r--solenv/gbuild/templates/makefile.mk (renamed from soltools/HIDCompiler/makefile.mk)41
-rw-r--r--solenv/inc/_cppunit.mk20
-rwxr-xr-x[-rw-r--r--]solenv/inc/_tg_rslb.mk160
-rw-r--r--solenv/inc/_tg_scp.mk20
-rw-r--r--solenv/inc/_tg_sdi.mk90
-rw-r--r--solenv/inc/_tg_shl.mk170
-rw-r--r--solenv/inc/_tg_srs.mk140
-rw-r--r--solenv/inc/cppunit.mk2
-rw-r--r--solenv/inc/extension_post.mk15
-rw-r--r--solenv/inc/installationtest.mk39
-rw-r--r--solenv/inc/javaunittest.mk27
-rw-r--r--solenv/inc/langlist.mk163
-rw-r--r--solenv/inc/libs.mk6
-rw-r--r--solenv/inc/minor.mk10
-rw-r--r--solenv/inc/postmac.h6
-rw-r--r--solenv/inc/premac.h6
-rw-r--r--solenv/inc/pstrules.mk21
-rw-r--r--solenv/inc/rules.mk7
-rw-r--r--solenv/inc/settings.mk99
-rw-r--r--solenv/inc/target.mk58
-rw-r--r--solenv/inc/tg_ext.mk4
-rw-r--r--solenv/inc/tg_jar.mk12
-rw-r--r--solenv/inc/tg_java.mk11
-rw-r--r--solenv/inc/tg_rslb.mk16
-rw-r--r--solenv/inc/tg_scp.mk2
-rw-r--r--solenv/inc/tg_sdi.mk9
-rw-r--r--solenv/inc/tg_shl.mk17
-rw-r--r--solenv/inc/tg_srs.mk14
-rw-r--r--solenv/inc/unitools.mk6
-rw-r--r--solenv/inc/unx.mk3
-rw-r--r--solenv/inc/unxmacx.mk5
-rwxr-xr-xsolenv/inc/version.hrc16
-rwxr-xr-x[-rw-r--r--]solenv/inc/version.lst6
-rwxr-xr-xsolenv/inc/version_so.hrc16
-rwxr-xr-x[-rw-r--r--]solenv/inc/versionlist.mk2
-rwxr-xr-xsolenv/inc/wntgcci.mk4
-rwxr-xr-x[-rw-r--r--]solenv/inc/wntmsc.mk3
-rwxr-xr-x[-rw-r--r--]solenv/makefile.mk13
-rwxr-xr-x[-rw-r--r--]solenv/prj/d.lst6
-rwxr-xr-xsolenv/src/component.map1
-rwxr-xr-xsolenv/src/reg-component.map8
-rwxr-xr-xsolenv/src/unloadablecomponent.map1
-rwxr-xr-xsoltools/HIDCompiler/hidclex.l949
-rw-r--r--soltools/mkdepend/def.h5
-rw-r--r--soltools/mkdepend/include.c21
-rw-r--r--soltools/prj/build.lst1
-rw-r--r--soltools/prj/d.lst2
-rw-r--r--stlport/prj/d.lst1
-rw-r--r--stlport/systemstlguards/postextstl.h (renamed from soltools/HIDCompiler/wrap_hidclex.cxx)15
-rw-r--r--stlport/systemstlguards/preextstl.h77
195 files changed, 16603 insertions, 5225 deletions
diff --git a/.gitignore b/.gitignore
index 4621c7b32284..904eac38ca77 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,7 +22,6 @@
/*/unxaig??
/*/unxaig??.pro
/solver/*
-/instsetoo_native/*
# autoconf generated stuff
/aclocal.m4
@@ -58,201 +57,202 @@
/*/*.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
+/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 b/GNUmakefile
new file mode 100644
index 000000000000..018b21e3f1ac
--- /dev/null
+++ b/GNUmakefile
@@ -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/Module_ooo.mk b/Module_ooo.mk
new file mode 100644
index 000000000000..a60bbb636c63
--- /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..87bbafa59baf
--- /dev/null
+++ b/Repository.mk
@@ -0,0 +1,137 @@
+#*************************************************************************
+#
+# 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 \
+ eggtray \
+ fwe \
+ fwi \
+ fwk \
+ fwl \
+ fwm \
+ i18npaper \
+ lng \
+ msfilter \
+ msword \
+ 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 \
+ vos3 \
+))
+
+$(eval $(call gb_Helper_register_libraries,RTVERLIBS, \
+ cppuhelper \
+ salhelper \
+))
+
+$(eval $(call gb_Helper_register_libraries,STLLIBS, \
+ stl \
+))
+
+$(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 \
+ vclmain \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/RepositoryFixes.mk b/RepositoryFixes.mk
new file mode 100644
index 000000000000..406cb6a9eee6
--- /dev/null
+++ b/RepositoryFixes.mk
@@ -0,0 +1,186 @@
+#*************************************************************************
+#
+# 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))
+
+ifeq ($(USE_SYSTEM_STL),YES)
+gb_Library_FILENAMES := $(patsubst stl:%,stl:libstdc++.so,$(gb_Library_FILENAMES))
+gb_Library_TARGETS := $(filter-out stl,$(gb_Library_TARGETS))
+endif
+
+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))
+
+ifeq ($(USE_SYSTEM_STL),YES)
+gb_Library_FILENAMES := $(patsubst stl:%,stl:libstdc++.dylib,$(gb_Library_FILENAMES))
+gb_Library_TARGETS := $(filter-out stl,$(gb_Library_TARGETS))
+endif
+
+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 vos3:ivos3%,vos3:ivos%,$(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))
+ifeq ($(gb_PRODUCT),$(true))
+gb_Library_FILENAMES := $(patsubst stl:istl%,stl:stlport_vc71%,$(gb_Library_FILENAMES))
+else
+gb_Library_FILENAMES := $(patsubst stl:istl%,stl:stlport_vc71_stldebug%,$(gb_Library_FILENAMES))
+endif
+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))
+
+ifeq ($(USE_SYSTEM_STL),YES)
+gb_Library_FILENAMES := $(patsubst stl:%,stl:$(gb_Library_IARCSYSPRE)stdc++_s$(gb_Library_IARCSYSPRE),$(gb_Library_FILENAMES))
+gb_Library_TARGETS := $(filter-out stl,$(gb_Library_TARGETS))
+endif
+
+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 vos3:ivos3%,vos3:ivos%,$(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))
+ifeq ($(gb_PRODUCT),$(true))
+gb_Library_FILENAMES := $(patsubst stl:istl%,stl:stlport_vc71%,$(gb_Library_FILENAMES))
+else
+gb_Library_FILENAMES := $(patsubst stl:istl%,stl:stlport_vc71_stldebug%,$(gb_Library_FILENAMES))
+endif
+gb_Library_NOILIBFILENAMES:=\
+ advapi32 \
+ gdi32 \
+ gnu_getopt \
+ icuuc \
+ kernel32 \
+ msvcrt \
+ 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 ($(USE_SYSTEM_STL),YES)
+gb_Library_TARGETS := $(filter-out stl,$(gb_Library_TARGETS))
+endif
+
+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 d66559803bec..3bf84755f2ca 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
@@ -1388,6 +1383,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
@@ -1903,7 +1899,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
@@ -1968,19 +1965,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])
@@ -1999,18 +1983,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
+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)
@@ -2377,43 +2353,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 ===================================================================
@@ -2596,14 +2535,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
@@ -2614,6 +2562,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
@@ -3994,7 +3943,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])
@@ -5165,7 +5114,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
@@ -5191,7 +5141,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
@@ -5419,7 +5368,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
@@ -5859,37 +5808,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
@@ -5899,9 +5849,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/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 da4478cb49f5..acbca1937fe1 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
}
}
diff --git a/ooo.lst b/ooo.lst
index 46577eec448d..0f7e5a853fc1 100644
--- a/ooo.lst
+++ b/ooo.lst
@@ -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
@@ -26,32 +27,24 @@ 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
d35724900f6a4105550293686688bbb3-silgraphite-2.3.1.tar.gz
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
@@ -59,14 +52,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
47e1edaa44269bc537ae8cabebb0f638-JLanguageTool-1.0.0.tar.bz2
90401bca927835b6fbae4a707ed187c8-nlpsolver-0.9.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 94f5baf850a3..f167ea270919 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 b2dec77bac55..d4ec0c0f95f2 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 1228900121b7..e36ca23f7155 100644
--- a/scp2/source/python/file_python.scp
+++ b/scp2/source/python/file_python.scp
@@ -46,9 +46,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 9ad34a2908f0..ec3a40ce0af5 100644
--- a/scp2/source/python/module_python_mailmerge.scp
+++ b/scp2/source/python/module_python_mailmerge.scp
@@ -32,7 +32,6 @@ 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
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 098e2ebad99b..b030b38f6014 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, $SOURCE_ROOT_DIR ,
- $SOLARSRC, $DEVROOT, $SOLARVER, $SOLARVERSION, $SOLARENV, $SOLARDEFIMG,
+ $UPD, $WORK_STAMP, $SOURCE_ROOT_DIR , $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,
@@ -1040,9 +1040,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;
@@ -1513,6 +1517,17 @@ else
{ AddWarning( "set_soenv", "$platform not configured for system dependant include dir" );
}
+$gb_REPOS = $SRC_ROOT;
+
+if ('@WITH_LANG@' ne "")
+{
+ $gb_REPOS .= " ".$SOURCE_ROOT_DIR."/l10n";
+ $BUILD_TYPE = "@BUILD_TYPE@ L10N";
+}
+else
+{
+ $BUILD_TYPE = "@BUILD_TYPE@";
+}
#
# F. Setting the different aliases.
@@ -1598,8 +1613,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" );
}
@@ -1698,6 +1711,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 )
@@ -1742,6 +1765,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" );
@@ -1807,7 +1832,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");
@@ -1837,7 +1861,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 +1900,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" );
@@ -1982,6 +2008,8 @@ if ($platform !~ m/cygwin|os2/) {
}
ToFile( "SOLARSRC", $SOLARSRC, "e" );
ToFile( "SOURCE_ROOT_DIR", $SOURCE_ROOT_DIR, "e" );
+ToFile( "gb_REPOS", $gb_REPOS, "e" );
+
if ( $platform =~ m/cygwin/ )
{
ToFile( "ILIB", $ILIB, "e" );
@@ -1994,6 +2022,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" );
}
@@ -2058,8 +2087,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..f524ee07fce2 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 = ('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,7 +192,7 @@
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;
@@ -208,6 +201,16 @@
my $zenity_err = '';
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 +219,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 +231,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 +255,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 +301,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 +358,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,7 +540,7 @@ 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);
+ 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;
return $possible_build_list_path;
@@ -554,7 +550,7 @@ sub get_build_list_path {
};
};
$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 +573,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 +642,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 +657,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 +667,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 +690,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 +729,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 +790,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 +807,7 @@ sub dmake_dir {
};
_exit(0);
} elsif ($error_code && ($error_code != -1)) {
+ $broken_build{$job_name} = $error_code;
return $error_code;
};
};
@@ -896,8 +896,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 +928,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 +958,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 +1005,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 +1032,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 +1054,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 +1082,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 +1128,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 +1180,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 +1209,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 +1244,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 +1277,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 +1328,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 {
@@ -1600,7 +1602,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)
@@ -1662,12 +1664,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 +1678,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 +1754,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 +1899,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 +1952,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 +1965,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 +1996,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');
@@ -2057,7 +2042,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 +2055,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 +2089,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 +2179,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 +2219,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 +2274,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 +2302,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 +2396,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) &&
@@ -2573,7 +2554,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 +2591,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 +2613,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 +2665,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 +2684,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{$_});
@@ -3390,7 +3371,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 {
@@ -3470,23 +3451,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 +3478,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..3b09dcf8295a 100755
--- a/solenv/bin/linkoo
+++ b/solenv/bin/linkoo
@@ -251,7 +251,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);
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..9bf4b841c7be 100644
--- a/solenv/bin/modules/RepositoryHelper.pm
+++ b/solenv/bin/modules/RepositoryHelper.pm
@@ -118,21 +118,26 @@ 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 = ('build.lst', 'build.xlist'); # build lists names
+ my @possible_build_lists = ('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 dfaa797d8f48..e7b526e2cfca 100755
--- a/solenv/bin/modules/SourceConfig.pm
+++ b/solenv/bin/modules/SourceConfig.pm
@@ -320,14 +320,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 +388,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..c2579cd5b952
--- /dev/null
+++ b/solenv/config/sdev300.ini
@@ -0,0 +1,3359 @@
+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
+ {
+ gb_REPOS %gb_REPOS% %SOURCE_ROOT_DIR%/l10n
+ 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..1b7acc947bfc
--- /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 := $(LOCDIR)/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$(dir $(3)) \
+ $(DEFS) \
+ -fp=$(1) \
+ $(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 := $(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 ts=4:
diff --git a/solenv/gbuild/BuildDirs.mk b/solenv/gbuild/BuildDirs.mk
new file mode 100644
index 000000000000..e31712016f7f
--- /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 ts=4:
diff --git a/solenv/gbuild/ComponentTarget.mk b/solenv/gbuild/ComponentTarget.mk
new file mode 100644
index 000000000000..5fc15baf744c
--- /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) $(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 ts=4:
diff --git a/solenv/gbuild/CppunitTest.mk b/solenv/gbuild/CppunitTest.mk
new file mode 100644
index 000000000000..a3b18a4a0bbd
--- /dev/null
+++ b/solenv/gbuild/CppunitTest.mk
@@ -0,0 +1,96 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+
+# CppunitTest class
+
+# defined by platform
+# gb_CppunitTest_TARGETTYPE
+# gb_CppunitTest_get_filename
+gb_CppunitTest_CPPTESTTARGET := $(call gb_Executable_get_target,cppunittester)
+gb_CppunitTest_CPPTESTCOMMAND := $(gb_CppunitTest_CPPTESTPRECOMMAND) $(gb_CppunitTest_CPPTESTTARGET)
+gb_CppunitTest__get_linktargetname = CppunitTest/$(call gb_CppunitTest_get_filename,$(1))
+
+.PHONY : $(call gb_CppunitTest_get_clean_target,%)
+$(call gb_CppunitTest_get_clean_target,%) :
+ $(call gb_Helper_abbreviate_dirs,\
+ rm -f $(call gb_CppunitTest_get_target,$*) $(call gb_CppunitTest_get_target,$*).log)
+
+.PHONY : $(call gb_CppunitTest_get_target,%)
+$(call gb_CppunitTest_get_target,%) : $(gb_CppunitTest_CPPTESTTARGET)
+ $(call gb_Output_announce,$*,$(true),CUT,2)
+ $(call gb_Helper_abbreviate_dirs_native,\
+ mkdir -p $(dir $@) && \
+ $(gb_CppunitTest_CPPTESTCOMMAND) $(call gb_LinkTarget_get_target,CppunitTest/$(call gb_CppunitTest_get_libfilename,$*)) > $@.log 2>&1 || (cat $@.log && false))
+
+define gb_CppunitTest_CppunitTest
+$(call gb_CppunitTest__CppunitTest_impl,$(1),$(call gb_CppunitTest__get_linktargetname,$(1)))
+
+endef
+
+define gb_CppunitTest__CppunitTest_impl
+$(call gb_LinkTarget_LinkTarget,$(2))
+$(call gb_LinkTarget_set_targettype,$(2),CppunitTest)
+$(call gb_LinkTarget_add_linked_libs,$(2),cppunit)
+$(call gb_CppunitTest_get_target,$(1)) : $(call gb_LinkTarget_get_target,$(2))
+$(call gb_CppunitTest_get_clean_target,$(1)) : $(call gb_LinkTarget_get_clean_target,$(2))
+$(call gb_CppunitTest_CppunitTest_platform,$(1),$(2),$(gb_CppunitTest_DLLDIR)/$(call gb_CppunitTest_get_libfilename,$(1)))
+$$(eval $$(call gb_Module_register_target,$(call gb_CppunitTest_get_target,$(1)),$(call gb_CppunitTest_get_clean_target,$(1))))
+
+endef
+
+define gb_CppunitTest__forward_to_Linktarget
+gb_CppunitTest_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_CppunitTest__get_linktargetname,$$(1)),$$(2),$$(3))
+
+endef
+
+$(eval $(foreach method,\
+ add_cobject \
+ add_cobjects \
+ add_cxxobject \
+ add_cxxobjects \
+ add_objcxxobject \
+ add_objcxxobjects \
+ add_exception_objects \
+ add_noexception_objects \
+ set_cflags \
+ set_cxxflags \
+ set_objcxxflags \
+ set_defs \
+ set_include \
+ set_ldflags \
+ set_library_path_flags \
+ add_linked_libs \
+ add_linked_static_libs \
+ add_package_headers \
+ add_sdi_headers \
+ add_precompiled_header \
+,\
+ $(call gb_CppunitTest__forward_to_Linktarget,$(method))\
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/CustomTarget.mk b/solenv/gbuild/CustomTarget.mk
new file mode 100644
index 000000000000..082943504594
--- /dev/null
+++ b/solenv/gbuild/CustomTarget.mk
@@ -0,0 +1,96 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+gb_CustomTarget_REPOSITORYNAMES := $(gb_Helper_REPOSITORYNAMES)
+
+# N.B.: putting the "+" there at the start activates the GNU make job server
+define gb_CustomTarget__command
++$(call gb_Helper_abbreviate_dirs,\
+ mkdir -p $(call gb_CustomTarget_get_workdir,$(2)) && \
+ $(MAKE) -C $(call gb_CustomTarget_get_workdir,$(2)) -f $< && \
+ touch $(1))
+
+endef
+
+define gb_CustomTarget__rules
+$$(call gb_CustomTarget_get_repo_target,$(1),%) :
+ $$(call gb_Output_announce,$$*,$$(true),MAK,3)
+ $$(call gb_CustomTarget__command,$$@,$$*)
+
+$$(call gb_CustomTarget_get_target,%) : $$(call gb_CustomTarget_get_repo_target,$(1),%)
+ $$(call gb_Helper_abbreviate_dirs,\
+ touch $$@)
+
+endef
+
+.PHONY: $(call gb_CustomTarget_get_clean_target,%)
+$(call gb_CustomTarget_get_clean_target,%) :
+ $(call gb_Output_announce,$*,$(false),MAK,3)
+ $(call gb_Helper_abbreviate_dirs,\
+ rm -rf $(call gb_CustomTarget_get_workdir,$*) && \
+ rm -f $(call gb_CustomTarget_get_target,$*) \
+ $(foreach reponame,$(gb_CustomTarget_REPOSITORYNAMES),$(call gb_CustomTarget_get_repo_target,$(reponame),$*)))
+
+
+$(foreach reponame,$(gb_CustomTarget_REPOSITORYNAMES),$(eval $(call gb_CustomTarget__rules,$(reponame))))
+
+define gb_CustomTarget__get_makefile
+$(1)/$(2)/Makefile
+endef
+
+define gb_CustomTarget_CustomTarget
+$(foreach reponame,$(gb_CustomTarget_REPOSITORYNAMES),\
+ $(eval $(call gb_CustomTarget_get_repo_target,$(reponame),$(1)) : $(call gb_CustomTarget__get_makefile,$($(reponame)),$(1))))
+
+$(call gb_CustomTarget_get_workdir,$(1))/% : $(call gb_CustomTarget_get_target,$(1))
+
+endef
+
+
+define gb_CustomTarget_add_dependency
+$(foreach reponame,$(gb_CustomTarget_REPOSITORYNAMES),\
+ $(eval $(call gb_CustomTarget_get_repo_target,$(reponame),$(1)) : $($(reponame))/$(2)))
+
+endef
+
+define gb_CustomTarget_add_dependencies
+$(foreach dependency,$(2),$(call gb_CustomTarget_add_dependency,$(1),$(dependency)))
+
+endef
+
+define gb_CustomTarget_add_outdir_dependency
+$(foreach reponame,$(gb_CustomTarget_REPOSITORYNAMES),\
+ $(eval $(call gb_CustomTarget_get_repo_target,$(reponame),$(1)) : $(2)))
+
+endef
+
+define gb_CustomTarget_add_outdir_dependencies
+$(foreach dependency,$(2),$(call gb_CustomTarget_add_outdir_dependency,$(1),$(dependency)))
+
+endef
+
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/Deliver.mk b/solenv/gbuild/Deliver.mk
new file mode 100644
index 000000000000..60772894f87c
--- /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_HIRESTIME),,.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 ts=4:
diff --git a/solenv/gbuild/Executable.mk b/solenv/gbuild/Executable.mk
new file mode 100644
index 000000000000..a1cf1c34856b
--- /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 ts=4:
diff --git a/solenv/gbuild/Helper.mk b/solenv/gbuild/Helper.mk
new file mode 100644
index 000000000000..c62825dcb2e2
--- /dev/null
+++ b/solenv/gbuild/Helper.mk
@@ -0,0 +1,167 @@
+#*************************************************************************
+#
+# 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 STLLIBS 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
+
+# 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..655aedbd17d9
--- /dev/null
+++ b/solenv/gbuild/JavaClassSet.mk
@@ -0,0 +1,81 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+gb_JavaClassSet_REPOSITORYNAMES := $(gb_Helper_REPOSITORYNAMES)
+gb_JavaClassSet_JAVACCOMMAND := $(JAVACOMPILER)
+
+define gb_JavaClassSet__command
+$(call gb_Helper_abbreviate_dirs_native,\
+ mkdir -p $(dir $(1)) && \
+ $(gb_JavaClassSet_JAVACCOMMAND) -cp "$(CLASSPATH)" -d $(call gb_JavaClassSet_get_classdir,$(2)) $(3) && \
+ touch $(1))
+
+endef
+
+define gb_JavaClassSet__rules
+$$(call gb_JavaClassSet_get_repo_target,$(1),%) :
+ $$(call gb_JavaClassSet__command,$$@,$$*,$$?)
+
+$$(call gb_JavaClassSet_get_target,%) : $$(call gb_JavaClassSet_get_repo_target,$(1),%)
+ $$(call gb_Output_announce,$$*,$$(true),JCS,3)
+ $$(call gb_Helper_abbreviate_dirs,\
+ touch $$@)
+
+endef
+
+$(call gb_JavaClassSet_get_clean_target,%) :
+ $(call gb_Output_announce,$*,$(false),JCS,3)
+ $(call gb_Helper_abbreviate_dirs,\
+ rm -rf $(dir $(call gb_JavaClassSet_get_target,$*)))
+
+
+$(foreach reponame,$(gb_JavaClassSet_REPOSITORYNAMES),$(eval $(call gb_JavaClassSet__rules,$(reponame))))
+
+define gb_JavaClassSet_JavaClassSet
+endef
+
+define gb_JavaClassSet__get_sourcefile
+$(1)/$(2).java
+endef
+
+define gb_JavaClassSet_add_sourcefile
+$(foreach reponame,$(gb_JavaClassSet_REPOSITORYNAMES),\
+ $(eval $(call gb_JavaClassSet_get_repo_target,$(reponame),$(1)) : $(call gb_JavaClassSet__get_sourcefile,$($(reponame)),$(2))))
+
+endef
+
+define gb_JavaClassSet_add_sourcefiles
+$(foreach sourcefile,$(2),$(call gb_JavaClassSet_add_sourcefile,$(1),$(sourcefile)))
+
+endef
+
+define gb_JavaClassSet_set_classpath
+$(call gb_JavaClassSet_get_target,$(1)) : CLASSPATH := $(2)
+
+endef
+
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/JunitTest.mk b/solenv/gbuild/JunitTest.mk
new file mode 100644
index 000000000000..afc9486fd5a4
--- /dev/null
+++ b/solenv/gbuild/JunitTest.mk
@@ -0,0 +1,97 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+
+# JunitTest class
+
+gb_JunitTest_JAVACOMMAND := $(JAVAINTERPRETER) $(JAVAIFLAGS)
+
+.PHONY : $(call gb_JunitTest_get_clean_target,%)
+$(call gb_JunitTest_get_clean_target,%) : $(call gb_JavaClassSet_get_clean_target,$(call gb_JunitTest_get_classsetname,%))
+ $(call gb_Helper_abbreviate_dirs,\
+ rm -f $@ $@.log)
+
+.PHONY : $(call gb_JunitTest_get_target,$(1))
+$(call gb_JunitTest_get_target,%) :
+ $(call gb_Output_announce,$*,$(true),JUT,2)
+ $(call gb_Helper_abbreviate_dirs_native,\
+ mkdir -p $(call gb_JunitTest_get_userdir,$*) && \
+ $(gb_JunitTest_JAVACOMMAND) -cp "$(CLASSPATH)" $(DEFS) org.junit.runner.JUnitCore $(CLASSES) 2>&1 > $@.log || (cat $@.log && false))
+ $(CLEAN_CMD)
+
+define gb_JunitTest_JunitTest
+$(call gb_JunitTest_get_target,$(1)) : CLASSPATH := $(value XCLASSPATH)$(gb_CLASSPATHSEP)$(call gb_JavaClassSet_get_classdir,$(call gb_JunitTest_get_classsetname,$(1)))$(gb_CLASSPATHSEP)$(OOO_JUNIT_JAR)$(gb_CLASSPATHSEP)$(OUTDIR)/lib
+$(call gb_JunitTest_get_target,$(1)) : CLASSES :=
+$(call gb_JunitTest_JunitTest_platform,$(1))
+
+$(call gb_JavaClassSet_JavaClassSet,$(call gb_JunitTest_get_classsetname,$(1)))
+$(call gb_JunitTest_get_target,$(1)) : $(call gb_JavaClassSet_get_target,$(call gb_JunitTest_get_classsetname,$(1)))
+$(eval $(call gb_Module_register_target,$(call gb_JunitTest_get_target,$(1)),$(call gb_JunitTest_get_clean_target,$(1))))
+endef
+
+define gb_JunitTest_set_defs
+$(call gb_JunitTest_get_target,$(1)) : DEFS := $(2)
+
+endef
+
+define gb_JunitTest_add_classes
+$(call gb_JunitTest_get_target,$(1)) : CLASSES += $(2)
+
+endef
+
+define gb_JunitTest_add_class
+$(call gb_JunitTest_add_classes,$(1),$(2))
+
+endef
+
+
+define gb_JunitTest_add_sourcefile
+$(call gb_JavaClassSet_add_sourcefile,$(call gb_JunitTest_get_classsetname,$(1)),$(2))
+
+endef
+
+define gb_JunitTest_add_sourcefiles
+$(foreach sourcefile,$(2),$(call gb_JunitTest_add_sourcefile,$(1),$(sourcefile)))
+
+endef
+
+define gb_JunitTest_set_classpath
+$(call gb_JunitTest_get_target,$(1)) : CLASSPATH := $(2)
+
+endef
+
+define gb_JunitTest_add_jar
+$(call gb_JunitTest_get_target,$(1)) : CLASSPATH := $$(CLASSPATH)$(gb_CLASSPATHSEP)$(2)
+$(call gb_JunitTest_get_target,$(1)) : $(2)
+
+endef
+
+define gb_JunitTest_add_jars
+$(foreach jar,$(2),$(call gb_JunitTest_add_jar,$(1),$(jar)))
+
+endef
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk
new file mode 100644
index 000000000000..d697b1a777ca
--- /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 ts=4:
diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
new file mode 100644
index 000000000000..612b85bf3e20
--- /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 ts=4:
diff --git a/solenv/gbuild/Module.mk b/solenv/gbuild/Module.mk
new file mode 100644
index 000000000000..b909b46e27a0
--- /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 ts=4:
diff --git a/solenv/gbuild/Output.mk b/solenv/gbuild/Output.mk
new file mode 100644
index 000000000000..dabb9b080d09
--- /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 ts=4:
diff --git a/solenv/gbuild/Package.mk b/solenv/gbuild/Package.mk
new file mode 100644
index 000000000000..6e16b21d9b05
--- /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 ts=4:
diff --git a/solenv/gbuild/PrecompiledHeaders.mk b/solenv/gbuild/PrecompiledHeaders.mk
new file mode 100644
index 000000000000..2c7ececf4a0a
--- /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 ts=4:
diff --git a/solenv/gbuild/SdiTarget.mk b/solenv/gbuild/SdiTarget.mk
new file mode 100644
index 000000000000..8f8670c6950d
--- /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$@ \
+ $<)
+
+.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 ts=4:
diff --git a/solenv/gbuild/StaticLibrary.mk b/solenv/gbuild/StaticLibrary.mk
new file mode 100644
index 000000000000..a2521bc4d242
--- /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 ts=4:
diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk
new file mode 100644
index 000000000000..aba209c29136
--- /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 ts=4:
diff --git a/solenv/gbuild/Tempfile.mk b/solenv/gbuild/Tempfile.mk
new file mode 100644
index 000000000000..5b80452056e0
--- /dev/null
+++ b/solenv/gbuild/Tempfile.mk
@@ -0,0 +1,18 @@
+# Write string to temporary file by chopping into pieces that
+# fit the commandline
+# parameters: filename, maxitems (for one write), string
+# returns: filename
+define var2file
+$(strip $(1)
+$(eval gb_var2file_helpervar := $$(shell printf "%s" "" > $(1) ))\
+$(foreach item,$(3),$(eval gb_var2file_curblock += $(item)
+ ifeq ($$(words $$(gb_var2file_curblock)),$(2))
+ gb_var2file_helpervar := $$(shell printf "%s" "$$(gb_var2file_curblock)" >> $(1) )
+ gb_var2file_curblock :=
+ endif
+ ))\
+ $(eval gb_var2file_helpervar := $(shell echo " "$(gb_var2file_curblock) >> $(1) )
+ gb_var2file_curblock :=
+ ))
+endef
+
diff --git a/solenv/gbuild/extensions/post_PackModule.mk b/solenv/gbuild/extensions/post_PackModule.mk
new file mode 100644
index 000000000000..3a573cbc5d7e
--- /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..483b8a163056
--- /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 ts=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..3c7010a32158
--- /dev/null
+++ b/solenv/gbuild/gbuild.mk
@@ -0,0 +1,254 @@
+#*************************************************************************
+#
+# 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
+# STLPORT_VER
+# UPD
+
+# GXX_INCLUDE_PATH (Linux)
+# PTHREAD_CFLAGS (Linux)
+# SYSTEM_ICU (Linux)
+# SYSTEM_JPEG (Linux)
+# SYSTEM_LIBXML (Linux)
+# USE_SYSTEM_STL (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 $(DEBUG)$(debug)),)
+gb_DEBUGLEVEL := 2
+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) \
+ -DSOLAR_JAVA \
+ -DSTLPORT_VERSION=$(STLPORT_VER) \
+ -DSUPD=$(UPD) \
+ -DVCL \
+ $(gb_OSDEFS) \
+ $(gb_COMPILERDEFS) \
+ $(gb_CPUDEFS) \
+
+ifeq ($(gb_PRODUCT),$(true))
+gb_GLOBALDEFS += \
+ -DPRODUCT \
+ -DPRODUCT_FULL \
+
+else
+gb_GLOBALDEFS += \
+ -DDBG_UTIL \
+ -D_STLP_DEBUG \
+ -D_DEBUG \
+
+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 ts=4:
diff --git a/solenv/gbuild/platform/linux.mk b/solenv/gbuild/platform/linux.mk
new file mode 100755
index 000000000000..2cbeca889001
--- /dev/null
+++ b/solenv/gbuild/platform/linux.mk
@@ -0,0 +1,407 @@
+#*************************************************************************
+#
+# 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)
+
+
+# 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 += -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)))
+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))) \
+ -Wl$(COMMA)--start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) -Wl$(COMMA)--end-group \
+ -o $(1))
+endef
+
+define gb_LinkTarget__command_staticlink
+$(call gb_Helper_abbreviate_dirs,\
+ mkdir -p $(dir $(1)) && \
+ $(gb_AR) -rsu $(1) \
+ $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
+ $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
+ $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
+ 2> /dev/null)
+endef
+
+define gb_LinkTarget__command
+$(call gb_Output_announce,$(2),$(true),LNK,4)
+$(if $(filter Library CppunitTest Executable,$(TARGETTYPE)),$(call gb_LinkTarget__command_dynamiclink,$(1)))
+$(if $(filter StaticLibrary,$(TARGETTYPE)),$(call gb_LinkTarget__command_staticlink,$(1)))
+endef
+
+
+# Library class
+
+gb_Library_DEFS :=
+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 ($(gb_PRODUCT),$(true))
+gb_Library_STLEXT := port_gcc$(gb_Library_PLAINEXT)
+else
+gb_Library_STLEXT := port_gcc_stldebug$(gb_Library_PLAINEXT)
+endif
+
+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_STLLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_STLEXT)) \
+ $(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_STLLIBS),$(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 ts=4:
diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk
new file mode 100755
index 000000000000..d6b84dc43e6d
--- /dev/null
+++ b/solenv/gbuild/platform/macosx.mk
@@ -0,0 +1,454 @@
+#*************************************************************************
+#
+# 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)
+
+
+# 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_DEBUGLEVEL),2)
+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 ($(gb_PRODUCT),$(true))
+gb_Library_STLEXT := port_gcc$(gb_Library_PLAINEXT)
+else
+gb_Library_STLEXT := port_gcc_stldebug$(gb_Library_PLAINEXT)
+endif
+
+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_STLLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_STLEXT)) \
+ $(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_STLLIBS),$(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 ts=4:
diff --git a/solenv/gbuild/platform/solaris.mk b/solenv/gbuild/platform/solaris.mk
new file mode 100755
index 000000000000..f953dfbee599
--- /dev/null
+++ b/solenv/gbuild/platform/solaris.mk
@@ -0,0 +1,385 @@
+#*************************************************************************
+#
+# 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_DEBUGLEVEL),2)
+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 ($(gb_PRODUCT),$(true))
+gb_Library_STLEXT := port_sunpro$(gb_Library_PLAINEXT)
+else
+gb_Library_STLEXT := port_sunpro_debug$(gb_Library_PLAINEXT)
+endif
+
+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_STLLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_STLEXT)) \
+ $(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_STLLIBS),$(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 ts=4:
diff --git a/solenv/gbuild/platform/windows.mk b/solenv/gbuild/platform/windows.mk
new file mode 100755
index 000000000000..a4137c077b09
--- /dev/null
+++ b/solenv/gbuild/platform/windows.mk
@@ -0,0 +1,679 @@
+#*************************************************************************
+#
+# 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 \
+ 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_DEBUGLEVEL),2)
+gb_CXXFLAGS +=-Zi
+gb_CFLAGS +=-Zi
+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
+
+
+# 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$(dir $(3)) \
+ $(INCLUDE) \
+ -c $(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$(dir $(3)) \
+ $(INCLUDE_STL) $(INCLUDE) \
+ -c $(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$(dir $(3)) \
+ $(6) \
+ -c $(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$(dir $(3)) \
+ $(6) \
+ -c $(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 \
+ 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_STLLIBS),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):OOO) \
+
+gb_Library_FILENAMES :=\
+ $(foreach lib,$(gb_Library_TARGETS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \
+
+gb_Library_DLLEXT := .dll
+gb_Library_MAJORVER := 3
+gb_Library_RTEXT := MSC$(gb_Library_DLLEXT)
+ifeq ($(gb_PRODUCT),$(true))
+gb_Library_STLEXT := port_vc7145$(gb_Library_DLLEXT)
+else
+gb_Library_STLEXT := port_vc7145_stldebug$(gb_Library_DLLEXT)
+endif
+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_STLLIBS),$(lib):$(lib)$(gb_Library_STLEXT)) \
+ $(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 ts=4:
diff --git a/solenv/gbuild/platform/winmingw.mk b/solenv/gbuild/platform/winmingw.mk
new file mode 100644
index 000000000000..b9eec5eaf417
--- /dev/null
+++ b/solenv/gbuild/platform/winmingw.mk
@@ -0,0 +1,609 @@
+#*************************************************************************
+#
+# 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 \
+
+
+# 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 \
+ 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_STLLIBS),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOO) \
+ $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):OOO) \
+
+gb_Library_FILENAMES :=\
+ $(foreach lib,$(gb_Library_TARGETS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \
+
+gb_Library_DLLEXT := .dll
+gb_Library_MAJORVER := 3
+gb_Library_RTEXT := gcc3$(gb_Library_DLLEXT)
+ifeq ($(gb_PRODUCT),$(true))
+gb_Library_STLEXT := port_gcc$(gb_Library_DLLEXT)
+else
+gb_Library_STLEXT := port_gcc_stldebug$(gb_Library_DLLEXT)
+endif
+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 ts=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..c38b8ea42fc2
--- /dev/null
+++ b/solenv/gbuild/templates/AllLangResTarget.mk
@@ -0,0 +1,49 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+# RES is the name of the resource; its file name will be RES-LOCALE.res
+# MODULE is the name of the code module the makefile is located in
+
+$(eval $(call gb_AllLangResTarget_AllLangResTarget,RES))
+
+# declaration of images folder (e.g. default_images/MODULE/res)
+$(eval $(call gb_AllLangResTarget_set_reslocation,RES,MODULE))
+
+# declaration of a resource intermediate file (srs)
+$(eval $(call gb_AllLangResTarget_add_srs,RES, RES/res))
+$(eval $(call gb_SrsTarget_SrsTarget,RES/res))
+
+# add any additional include paths here
+$(eval $(call gb_SrsTarget_set_include,RES/res,\
+ $$(INCLUDE) \
+))
+
+# add src files here (complete path relative to repository root)
+$(eval $(call gb_SrsTarget_add_files,RES/res,\
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/templates/CppunitTest.mk b/solenv/gbuild/templates/CppunitTest.mk
new file mode 100644
index 000000000000..56f3452ede14
--- /dev/null
+++ b/solenv/gbuild/templates/CppunitTest.mk
@@ -0,0 +1,41 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_CppunitTest_CppunitTest,MODULE_NAME))
+
+$(eval $(call gb_CppunitTest_add_exception_objects,MODULE_NAME, \
+))
+
+$(eval $(call gb_CppunitTest_add_linked_libs,MODULE_NAME, \
+ $(gb_STDLIBS) \
+))
+
+$(eval $(call gb_CppunitTest_set_include,MODULE_NAME,\
+ $$(INCLUDE) \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/templates/Executable.mk b/solenv/gbuild/templates/Executable.mk
new file mode 100644
index 000000000000..691e53012d58
--- /dev/null
+++ b/solenv/gbuild/templates/Executable.mk
@@ -0,0 +1,45 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_Executable_Executable,EXEC))
+
+$(eval $(call gb_Executable_set_include,EXEC,\
+ $$(INCLUDE) \
+))
+
+$(eval $(call gb_Executable_set_cxxflags,EXEC,\
+ $$(CXXFLAGS) \
+))
+
+$(eval $(call gb_Executable_add_linked_libs,EXEC,\
+ $(gb_STDLIBS) \
+))
+
+$(eval $(call gb_Executable_add_exception_objects,EXEC,\
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/templates/JunitTest.mk b/solenv/gbuild/templates/JunitTest.mk
new file mode 100644
index 000000000000..4492d9ef45f3
--- /dev/null
+++ b/solenv/gbuild/templates/JunitTest.mk
@@ -0,0 +1,49 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_JunitTest_JunitTest,MODULE_TYPE))
+
+$(eval $(call gb_JunitTest_set_defs,MODULE_TYPE,\
+ $$(DEFS) \
+ -Dorg.openoffice.test.arg.tdoc=$(SRCDIR)/MODULE/DOCUMENTPATH \
+))
+
+$(eval $(call gb_JunitTest_add_jars,MODULE_TYPE,\
+ $(OUTDIR)/bin/OOoRunner.jar \
+ $(OUTDIR)/bin/ridl.jar \
+ $(OUTDIR)/bin/test.jar \
+ $(OUTDIR)/bin/unoil.jar \
+ $(OUTDIR)/bin/jurt.jar \
+))
+
+$(eval $(call gb_JunitTest_add_sourcefiles,MODULE_TYPE,\
+))
+
+$(eval $(call gb_JunitTest_add_classes,MODULE_COMPLEX,\
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/templates/Library.mk b/solenv/gbuild/templates/Library.mk
new file mode 100644
index 000000000000..2e62cfe9a64b
--- /dev/null
+++ b/solenv/gbuild/templates/Library.mk
@@ -0,0 +1,86 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+# MODULE is the name of the module the makefile is located in
+
+# declare a library
+# LIB is the name of the library as it is found in Repository.mk
+$(eval $(call gb_Library_Library,LIB))
+
+# declare packages that will be delivered before compilation of LIB
+# learn more about TYPE in the Package.mk template
+$(eval $(call gb_Library_add_package_headers,LIB,MODULE_TYPE))
+
+# for platforms supporting PCH: declare the location of the pch file
+# this is the name of the cxx file (without extension)
+$(eval $(call gb_Library_add_precompiled_header,LIB,$(SRCDIR)/MODULE/PCH_FILE))
+
+# in case UNO services are exported: declare location of component file
+$(eval $(call gb_Library_set_componentfile,LIB,MODULE/COMPONENT_FILE))
+
+# add any additional include paths for this library here
+$(eval $(call gb_Library_set_include,LIB,\
+ $$(INCLUDE) \
+))
+
+# add any additional definitions to be set for compilation here
+# (e.g. -DLIB_DLLIMPLEMENTATION)
+$(eval $(call gb_Library_set_defs,LIB,\
+ $$(DEFS) \
+))
+
+# add libraries to be linked to LIB; again these names need to be given as
+# specified in Repository.mk
+$(eval $(call gb_Library_add_linked_libs,LIB,\
+ $(gb_STDLIBS) \
+))
+
+# add all source files that shall be compiled with exceptions enabled
+# the name is relative to $(SRCROOT) and must not contain an extension
+$(eval $(call gb_Library_add_exception_objects,LIB,\
+))
+
+# in case sdi files need to be processed: declare "root" (main) sdi target and sdi header target
+# "ROOT_SDI_FILE" is the file that is handed over to svidl (all other sdi files are included in the root file)
+$(eval $(call gb_Library_add_sdi_headers,LIB,MODULE/sdi/ROOT_SDI_FILE))
+$(eval $(call gb_SdiTarget_SdiTarget,MODULE/sdi/ROOT_SDI_FILE,MODULE/sdi/LIB))
+
+# add any additional include paths for sdi processing here
+$(eval $(call gb_SdiTarget_set_include,MODULE/sdi/ROOT_SDI_FILE,\
+ $$(INCLUDE) \
+))
+
+# this is an example how files can be added that require special compiler settings, e.g. building without optimizing
+ifeq ($(OS),WNT)
+$(eval $(call gb_Library_add_cxxobjects,LIB,\
+ MODULE/source/foo/bar \
+ , $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \
+))
+
+endif
+
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/templates/Makefile b/solenv/gbuild/templates/Makefile
new file mode 100644
index 000000000000..90947b2e5f48
--- /dev/null
+++ b/solenv/gbuild/templates/Makefile
@@ -0,0 +1,38 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+ifeq ($(strip $(SOLARENV)),)
+$(error No environment set!)
+endif
+
+gb_PARTIALBUILD := T
+GBUILDDIR := $(SOLARENV)/gbuild
+include $(GBUILDDIR)/gbuild.mk
+
+$(eval $(call gb_Module_make_global_targets,$(shell ls $(dir $(realpath $(firstword $(MAKEFILE_LIST))))/Module*.mk)))
+
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/templates/Module.mk b/solenv/gbuild/templates/Module.mk
new file mode 100644
index 000000000000..6adb9bfab4a2
--- /dev/null
+++ b/solenv/gbuild/templates/Module.mk
@@ -0,0 +1,45 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+# replace MODULE by the name of the module you are creating
+
+$(eval $(call gb_Module_Module,MODULE))
+
+# the targets to be inserted are their file names without .mk extension
+$(eval $(call gb_Module_add_targets,MODULE,\
+))
+
+# add any runtime tests (unit tests) here
+# remove if no tests
+$(eval $(call gb_Module_add_check_targets,MODULE,\
+))
+
+# add any subsequent checks (e.g. complex tests) here
+$(eval $(call gb_Module_add_subsequentcheck_targets,MODULE,\
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/templates/Package.mk b/solenv/gbuild/templates/Package.mk
new file mode 100644
index 000000000000..1b9ae0315990
--- /dev/null
+++ b/solenv/gbuild/templates/Package.mk
@@ -0,0 +1,42 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+# MODULE is the name of the module the makefile is located in
+
+# TYPE is an arbitrary name that should denote what is inside this package
+# typical names are "inc", "uiconfig", "xml" etc.
+# "MODULE_TYPE" is the package name
+# the file name of the corresponding makefile should be Package_TYPE.mk
+# SOURCE is the name of the root folder of the package that shall be delivered
+$(eval $(call gb_Package_Package,MODULE_TYPE,$(SRCDIR)/MODULE/SOURCE))
+
+# add files to the package
+# SOURCE_RELPATH/file.ext is the name of the source file (relative to the root give above)
+# DESTINATION_RELPATH/file.ext is the destination file (relative to $(OUTDIR))
+$(eval $(call gb_Package_add_file,MODULE_TYPE,DESTINATION_RELPATH/file.ext,SOURCE_RELPATH/file.ext))
+
+# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/templates/StaticLibrary.mk b/solenv/gbuild/templates/StaticLibrary.mk
new file mode 100644
index 000000000000..5b0176b8b41c
--- /dev/null
+++ b/solenv/gbuild/templates/StaticLibrary.mk
@@ -0,0 +1,35 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_StaticLibrary_StaticLibrary,LIB))
+
+$(eval $(call gb_StaticLibrary_add_package_headers,LIB,MODULE_inc))
+
+$(eval $(call gb_StaticLibrary_add_exception_objects,LIB,\
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/soltools/HIDCompiler/makefile.mk b/solenv/gbuild/templates/makefile.mk
index 8c65fc09cd21..e312a7ccab65 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 f8ed465f2168..6c1777349d39 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"
@@ -535,5 +534,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/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/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 99226cd6348f..de93a62e9c75 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*=$(SOURCE_ROOT_DIR)/l10n/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/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..cafa0b759be0 100644
--- a/soltools/mkdepend/def.h
+++ b/soltools/mkdepend/def.h
@@ -61,8 +61,9 @@ 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 ( 1<<16 ) /* Increased from 512. -mcafee */
+ /* Increased from 1024. -mh */
+ /* Increased from 2048. -b_michaelsen */
#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/stlport/prj/d.lst b/stlport/prj/d.lst
index fe7c6f3aab0d..9f9c087885dd 100644
--- a/stlport/prj/d.lst
+++ b/stlport/prj/d.lst
@@ -1,3 +1,4 @@
+..\systemstlguards\*.h %_DEST%\inc%_EXT%\stl\*.h
..\%__SRC%\lib\lib*.so %_DEST%\lib%_EXT%\lib*.so
..\%__SRC%\bin\*.dll %_DEST%\bin%_EXT%\*.dll
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;