summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRene Engelhard <rene@debian.org>2012-09-27 19:51:33 +0200
committerRene Engelhard <rene@debian.org>2012-09-27 22:45:03 +0200
commitc0fb5ed758c9ed8c1bb6b8344592c4781f475443 (patch)
tree92537d1c439601a5360115c2a31b86f9c289eb3e
parent4e6907b5d526241c93767fd25d8c2866c034a8d8 (diff)
add --with-system-ucpp
Change-Id: Ic322d1be23033049fa3b5cd60c00479bb6cae3ca
-rw-r--r--Module_cross_tail_build.mk4
-rw-r--r--Module_tail_build.mk4
-rw-r--r--Repository.mk4
-rw-r--r--config_host.mk.in1
-rw-r--r--configure.in15
-rw-r--r--idlc/Executable_idlc.mk7
-rw-r--r--idlc/prj/build.lst2
-rw-r--r--idlc/source/idlccompile.cxx5
-rw-r--r--odk/pack/copying/makefile.mk6
-rw-r--r--odk/util/check.pl5
-rw-r--r--solenv/gbuild/UnoApiTarget.mk2
11 files changed, 48 insertions, 7 deletions
diff --git a/Module_cross_tail_build.mk b/Module_cross_tail_build.mk
index 61b5145d83bc..e15848ba47ad 100644
--- a/Module_cross_tail_build.mk
+++ b/Module_cross_tail_build.mk
@@ -84,7 +84,9 @@ $(eval $(call gb_Module_add_moduledirs,cross_tail_build,\
translations \
) \
ucbhelper \
- ucpp \
+ $(if $(filter UCPP,$(BUILD_TYPE)),\
+ ucpp \
+ ) \
udkapi \
udm \
unoil \
diff --git a/Module_tail_build.mk b/Module_tail_build.mk
index 8e5c1c1ce544..3155b7b419e0 100644
--- a/Module_tail_build.mk
+++ b/Module_tail_build.mk
@@ -187,7 +187,9 @@ $(eval $(call gb_Module_add_moduledirs,tail_end,\
twain \
ucb \
ucbhelper \
- ucpp \
+ $(if $(filter UCPP,$(BUILD_TYPE)),\
+ ucpp \
+ ) \
udkapi \
udm \
unixODBC \
diff --git a/Repository.mk b/Repository.mk
index 79f2004923c9..68ddbfcd0a9e 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -62,7 +62,9 @@ $(eval $(call gb_Helper_register_executables,NONE, \
svidl \
transex3 \
typesconfig \
- ucpp \
+ $(if $(filter UCPP,$(BUILD_TYPE)),\
+ ucpp \
+ ) \
ulfconv \
ulfex \
xml2cmp \
diff --git a/config_host.mk.in b/config_host.mk.in
index 6b0a4e8ade8f..81890c69a363 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -594,6 +594,7 @@ export THES_SYSTEM_DIR=@THES_SYSTEM_DIR@
@x_Cygwin@ export TMP=@TMP_DIRECTORY@
export TMPDIR=@TEMP_DIRECTORY@
export TYPO_EXTENSION_PACK=@TYPO_EXTENSION_PACK@
+export SYSTEM_UCPP=@SYSTEM_UCPP@
export UNIXWRAPPERNAME=@UNIXWRAPPERNAME@
export UPD=@UPD@
export USE_FT_EMBOLDEN=@USE_FT_EMBOLDEN@
diff --git a/configure.in b/configure.in
index 37c5f0991d84..09fb9cb6a186 100644
--- a/configure.in
+++ b/configure.in
@@ -1383,6 +1383,11 @@ AC_ARG_WITH(system-icu,
[Use icu already on system.]),,
[with_system_icu="$with_system_libs"])
+AC_ARG_WITH(system-ucpp,
+ AS_HELP_STRING([--with-system-ucpp],
+ [Use ucpp already on system.]),,
+ [])
+
AC_ARG_WITH(system-openldap,
AS_HELP_STRING([--with-system-openldap],
[Use the OpenLDAP LDAP SDK already on system.]),,
@@ -6313,6 +6318,16 @@ else
fi
AC_SUBST(BUILD_DMAKE)
+AC_MSG_CHECKING([which ucpp tp use])
+if test -n "$with_system_ucpp" -a "$with_system_ucpp" != "no"; then
+ AC_MSG_RESULT([external])
+ AC_PATH_PROG(SYSTEM_UCPP, ucpp)
+else
+ AC_MSG_RESULT([internal])
+ BUILD_TYPE="$BUILD_TYPE UCPP"
+fi
+AC_SUBST(SYSTEM_UCPP)
+
dnl ===================================================================
dnl Check for epm (not needed for Windows)
dnl ===================================================================
diff --git a/idlc/Executable_idlc.mk b/idlc/Executable_idlc.mk
index 32ecda6777ab..ef2df8956161 100644
--- a/idlc/Executable_idlc.mk
+++ b/idlc/Executable_idlc.mk
@@ -46,6 +46,13 @@ $(eval $(call gb_Executable_add_scanners,idlc,\
idlc/source/scanner \
))
+ifneq (,$(SYSTEM_UCPP))
+$(eval $(call gb_Executable_add_defs,idlc,\
+ -DSYSTEM_UCPP \
+ -DUCPP=\"file:$(SYSTEM_UCPP)\" \
+))
+endif
+
$(eval $(call gb_Executable_add_exception_objects,idlc,\
idlc/source/idlcmain \
idlc/source/idlc \
diff --git a/idlc/prj/build.lst b/idlc/prj/build.lst
index 5113694b67dc..e2c515a8e6e7 100644
--- a/idlc/prj/build.lst
+++ b/idlc/prj/build.lst
@@ -1,3 +1,3 @@
-ic idlc : ucpp registry NULL
+ic idlc : UCPP:ucpp registry NULL
ic idlc usr1 - all ic_mkout NULL
ic idlc\prj nmake - all ic_prj NULL
diff --git a/idlc/source/idlccompile.cxx b/idlc/source/idlccompile.cxx
index 0491046560a7..1acbf8440ede 100644
--- a/idlc/source/idlccompile.cxx
+++ b/idlc/source/idlccompile.cxx
@@ -299,6 +299,7 @@ sal_Int32 compileFile(const OString * pathname)
OUString cpp;
OUString startDir;
+#ifndef SYSTEM_UCPP
if (osl_getExecutableFile(&cpp.pData) != osl_Process_E_None) {
OSL_ASSERT(false);
}
@@ -311,7 +312,9 @@ sal_Int32 compileFile(const OString * pathname)
#else
cpp += OUString( RTL_CONSTASCII_USTRINGPARAM("ucpp"));
#endif
-
+#else // SYSTEM_UCPP
+ cpp = OUString( RTL_CONSTASCII_USTRINGPARAM(UCPP));
+#endif
oslProcess hProcess = NULL;
oslProcessError procError = osl_Process_E_None;
diff --git a/odk/pack/copying/makefile.mk b/odk/pack/copying/makefile.mk
index f9f4d85aacec..8e6cbb461c84 100644
--- a/odk/pack/copying/makefile.mk
+++ b/odk/pack/copying/makefile.mk
@@ -50,13 +50,17 @@ IDL_CHAPTER_REFS=idl_chapter_refs.txt
EXELIST = \
$(DESTDIRBIN)/cppumaker$(EXEPOSTFIX) \
$(DESTDIRBIN)/regcompare$(EXEPOSTFIX) \
- $(DESTDIRBIN)/ucpp$(EXEPOSTFIX) \
$(DESTDIRBIN)/idlc$(EXEPOSTFIX) \
$(DESTDIRBIN)/javamaker$(EXEPOSTFIX) \
$(DESTDIRBIN)/autodoc$(EXEPOSTFIX) \
$(DESTDIRBIN)/unoapploader$(EXEPOSTFIX) \
$(DESTDIRBIN)/uno-skeletonmaker$(EXEPOSTFIX)
+.IF "$(SYSTEM_UCPP)" == ""
+EXELIST += \
+ $(DESTDIRBIN)/ucpp$(EXEPOSTFIX)
+.ENDIF
+
.IF "$(GUI)"=="WNT"
EXELIST += \
$(DESTDIRBIN)/climaker$(EXEPOSTFIX)
diff --git a/odk/util/check.pl b/odk/util/check.pl
index a685b7f4ae0f..0840713cb617 100644
--- a/odk/util/check.pl
+++ b/odk/util/check.pl
@@ -43,9 +43,12 @@ if (-d "$StartDir") {
# check binaries
print "check binaries: ";
if (-d "$StartDir/bin") {
- my @binarylist = ( "idlc","ucpp","cppumaker","javamaker",
+ my @binarylist = ( "idlc","cppumaker","javamaker",
"regcompare","autodoc",
"unoapploader", "uno-skeletonmaker" );
+ if ($ENV{SYSTEM_UCPP} eq "") {
+ push @binarylist,"ucpp";
+ }
foreach $i (@binarylist)
{
diff --git a/solenv/gbuild/UnoApiTarget.mk b/solenv/gbuild/UnoApiTarget.mk
index c085c4c4dff7..7e2ea1370f85 100644
--- a/solenv/gbuild/UnoApiTarget.mk
+++ b/solenv/gbuild/UnoApiTarget.mk
@@ -30,7 +30,9 @@
gb_UnoApiPartTarget_IDLCTARGET := $(call gb_Executable_get_target_for_build,idlc)
gb_UnoApiPartTarget_IDLCCOMMAND := $(gb_Helper_set_ld_path) SOLARBINDIR=$(OUTDIR_FOR_BUILD)/bin $(gb_UnoApiPartTarget_IDLCTARGET)
+ifeq (,$(SYSTEM_UCPP))
gb_UnoApiPartTarget_UCPPTARGET := $(call gb_Executable_get_target_for_build,ucpp)
+endif
# The .urd files are actually created by the gb_UnoApiPartTarget__command,
# invoked for the per-directory .done files.