summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-05-02 19:39:41 +0200
committerMichael Stahl <mstahl@redhat.com>2012-05-02 19:51:38 +0200
commitf33ba93baddca139ab900b79cfeffd69e318aa6b (patch)
tree161139b68e0b5aadff375c097ece66642cf25a2f
parentbd5da80befbd1f7f09aadf4b02122414c010d65b (diff)
allow custom solver/workdir location: --with-solver-and-workdir-root
-rw-r--r--config_host.mk.in4
-rw-r--r--configure.in52
-rwxr-xr-xsolenv/bin/linkoo6
3 files changed, 41 insertions, 21 deletions
diff --git a/config_host.mk.in b/config_host.mk.in
index c7b2075219a8..4d0d5cf879f7 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -434,8 +434,8 @@ export SOLARINC=@SOLARINC@
export SOLARINC_FOR_BUILD=@SOLARINC_FOR_BUILD@
export SOLARLIB=@SOLARLIB@
export SOLARLIB_FOR_BUILD=@SOLARLIB_FOR_BUILD@
-export SOLARVER=@SRC_ROOT@/solver
-export SOLARVERSION=@SRC_ROOT@/solver
+export SOLARVER=@SOLARVER@
+export SOLARVERSION=@SOLARVER@
export SOLAR_JAVA=@SOLAR_JAVA@
export SPLIT_APP_MODULES=@SPLIT_APP_MODULES@
export SPLIT_OPT_FEATURES=@SPLIT_OPT_FEATURES@
diff --git a/configure.in b/configure.in
index 1d67570521b0..8daf62f9831b 100644
--- a/configure.in
+++ b/configure.in
@@ -937,6 +937,11 @@ AC_ARG_WITH(external-tar,
TARFILE_LOCATION=$withval ,
)
+AC_ARG_WITH(solver-and-workdir-root,
+ AS_HELP_STRING([--with-solver-and-workdir-root=<PATH>],
+ [Specify path that contains SOLARVER and WORKDIR directories manually.])
+)
+
AC_ARG_WITH(linked-git,
AS_HELP_STRING([--with-linked-git=<OTHER_CLONE_DIR>],
[Specify another checkout's clonedir to re-use. This makes use of
@@ -2135,6 +2140,15 @@ else
fi
AC_SUBST(DISABLE_DYNLOADING)
+if test -n "${with_solver_and_workdir_root}"; then
+ if ! test -d ${with_solver_and_workdir_root}; then
+ AC_MSG_ERROR([directory does not exist: ${with_solver_and_workdir_root}])
+ fi
+ SOLARVER=${with_solver_and_workdir_root}/solver
+else
+ SOLARVER=${SRC_ROOT}/solver
+fi
+
dnl ===================================================================
dnl Extra check for Windows. Cygwin builds need gcc to build dmake
dnl although MSVC is used to build other build-time tools and
@@ -2909,7 +2923,7 @@ aix*)
OUTPATH=unxaigppc
P_SEP=:
SOLARLIB="-L../lib -L$SRC_ROOT/solenv/$OUTPATH/lib"
- SOLARLIB="$SOLARLIB -L$SRC_ROOT/solver/${OUTPATH}${PROEXT}/lib"
+ SOLARLIB="$SOLARLIB -L${SOLARVER}/${OUTPATH}${PROEXT}/lib"
SOLARLIB="$SOLARLIB -L$SRC_ROOT/solenv/$OUTPATH/lib"
;;
@@ -2939,7 +2953,7 @@ cygwin*)
esac
SCPDEFS="$SCPDEFS -D_MSC_VER"
SOLARLIB="-L../lib -L$SRC_ROOT/solenv/$OUTPATH/lib"
- SOLARLIB="$SOLARLIB -L$SRC_ROOT/solver/${OUTPATH}${PROEXT}/lib"
+ SOLARLIB="$SOLARLIB -L${SOLARVER}/${OUTPATH}${PROEXT}/lib"
;;
darwin*)
@@ -2972,7 +2986,7 @@ darwin*)
AC_MSG_ERROR([Unsupported host_cpu $host_cpu for host_os $host_os])
;;
esac
- SOLARLIB="-L$SRC_ROOT/solver/${OUTPATH}${PROEXT}/lib"
+ SOLARLIB="-L${SOLARVER}/${OUTPATH}${PROEXT}/lib"
;;
dragonfly*)
@@ -2997,7 +3011,7 @@ dragonfly*)
;;
esac
SOLARLIB="-L../lib -L$SRC_ROOT/solenv/$OUTPATH/lib"
- SOLARLIB="$SOLARLIB -L$SRC_ROOT/solver/${OUTPATH}${PROEXT}/lib"
+ SOLARLIB="$SOLARLIB -L${SOLARVER}/${OUTPATH}${PROEXT}/lib"
SOLARLIB="$SOLARLIB -L$SRC_ROOT/solenv/$OUTPATH/lib"
;;
@@ -3024,7 +3038,7 @@ freebsd*)
;;
esac
SOLARLIB="-L../lib -L$SRC_ROOT/solenv/$OUTPATH/lib"
- SOLARLIB="$SOLARLIB -L$SRC_ROOT/solver/${OUTPATH}${PROEXT}/lib"
+ SOLARLIB="$SOLARLIB -L${SOLARVER}/${OUTPATH}${PROEXT}/lib"
SOLARLIB="$SOLARLIB -L$SRC_ROOT/solenv/$OUTPATH/lib"
;;
@@ -3052,7 +3066,7 @@ kfreebsd*)
;;
esac
SOLARLIB="-L../lib -L$SRC_ROOT/solenv/$OUTPATH/lib"
- SOLARLIB="$SOLARLIB -L$SRC_ROOT/solver/${OUTPATH}${PROEXT}/lib"
+ SOLARLIB="$SOLARLIB -L${SOLARVER}/${OUTPATH}${PROEXT}/lib"
SOLARLIB="$SOLARLIB -L$SRC_ROOT/solenv/$OUTPATH/lib"
;;
@@ -3159,7 +3173,7 @@ linux-gnu*)
;;
esac
SOLARLIB="-L../lib -L$SRC_ROOT/solenv/$OUTPATH/lib"
- SOLARLIB="$SOLARLIB -L$SRC_ROOT/solver/${OUTPATH}${PROEXT}/lib"
+ SOLARLIB="$SOLARLIB -L${SOLARVER}/${OUTPATH}${PROEXT}/lib"
SOLARLIB="$SOLARLIB -L$SRC_ROOT/solenv/$OUTPATH/lib"
;;
@@ -3182,7 +3196,7 @@ linux-androideabi*)
;;
esac
SOLARINC="$SOLARINC -I$SRC_ROOT/solenv/inc/$OUTPATH"
- SOLARLIB="-L$SRC_ROOT/solver/${OUTPATH}${PROEXT}/lib"
+ SOLARLIB="-L${SOLARVER}/${OUTPATH}${PROEXT}/lib"
;;
mingw*)
@@ -3210,7 +3224,7 @@ mingw*)
esac
SOLARINC="$SOLARINC -I$SRC_ROOT/solenv/inc/win32 -I$SRC_ROOT/solenv/inc/$OUTPATH"
SOLARLIB="-L../lib -L$SRC_ROOT/solenv/$OUTPATH/lib"
- SOLARLIB="$SOLARLIB -L$SRC_ROOT/solver/${OUTPATH}${PROEXT}/lib"
+ SOLARLIB="$SOLARLIB -L${SOLARVER}/${OUTPATH}${PROEXT}/lib"
;;
*netbsd*)
@@ -3244,7 +3258,7 @@ mingw*)
;;
esac
SOLARLIB="-L../lib -L$SRC_ROOT/solenv/$OUTPATH/lib"
- SOLARLIB="$SOLARLIB -L$SRC_ROOT/solver/${OUTPATH}${PROEXT}/lib"
+ SOLARLIB="$SOLARLIB -L${SOLARVER}/${OUTPATH}${PROEXT}/lib"
SOLARLIB="$SOLARLIB -L$SRC_ROOT/solenv/$OUTPATH/lib"
;;
@@ -3271,7 +3285,7 @@ openbsd*)
esac
SOLARINC="$SOLARINC -I/usr/local/include"
SOLARLIB="-L../lib -L$SRC_ROOT/solenv/$OUTPATH/lib"
- SOLARLIB="$SOLARLIB -L$SRC_ROOT/solver/${OUTPATH}${PROEXT}/lib"
+ SOLARLIB="$SOLARLIB -L${SOLARVER}/${OUTPATH}${PROEXT}/lib"
SOLARLIB="$SOLARLIB -L$SRC_ROOT/solenv/$OUTPATH/lib"
SOLARLIB="$SOLARLIB -L/usr/local/lib"
@@ -3302,7 +3316,7 @@ solaris*)
esac
SOLARINC="$SOLARINC -I/usr/local/include"
SOLARLIB="-L../lib -L$SRC_ROOT/solenv/$OUTPATH/lib"
- SOLARLIB="$SOLARLIB -L$SRC_ROOT/solver/${OUTPATH}${PROEXT}/lib"
+ SOLARLIB="$SOLARLIB -L${SOLARVER}/${OUTPATH}${PROEXT}/lib"
SOLARLIB="$SOLARLIB -L$SRC_ROOT/solenv/$OUTPATH/lib"
SOLARLIB="$SOLARLIB -L$COMPATH/lib"
SOLARLIB="$SOLARLIB -L/usr/local/bin -L/usr/dt/lib -L/usr/openwin/lib"
@@ -3318,9 +3332,13 @@ if test "$enable_headless" = "yes"; then
fi
INPATH="${OUTPATH}${PROEXT}"
-OUTDIR="$SRC_ROOT/solver/$INPATH"
-SOLARINC="-I. -I$SRC_ROOT/solver/$INPATH/inc/external -I$SRC_ROOT/solver/$INPATH/inc -I$SRC_ROOT/solenv/inc $SOLARINC"
-WORKDIR="$SRC_ROOT/workdir/$INPATH"
+if test -n "${with_solver_and_workdir_root}"; then
+ WORKDIR=${with_solver_and_workdir_root}/workdir/${INPATH}
+else
+ WORKDIR=${SRC_ROOT}/workdir/${INPATH}
+fi
+OUTDIR="${SOLARVER}/${INPATH}"
+SOLARINC="-I. -I${SOLARVER}/$INPATH/inc/external -I${SOLARVER}/$INPATH/inc -I$SRC_ROOT/solenv/inc $SOLARINC"
AC_SUBST(COM)
AC_SUBST(CPU)
AC_SUBST(CPUNAME)
@@ -3332,6 +3350,7 @@ AC_SUBST(OS)
AC_SUBST(OUTDIR)
AC_SUBST(OUTPATH)
AC_SUBST(P_SEP)
+AC_SUBST(SOLARVER)
AC_SUBST(WORKDIR)
dnl ===================================================================
@@ -3378,6 +3397,7 @@ if test "$cross_compiling" = "yes"; then
test $with_java = no && sub_conf_opts="$sub_conf_opts --without-java"
test $with_junit = no && sub_conf_opts="$sub_conf_opts --without-junit"
test -n "$TARFILE_LOCATION" && sub_conf_opts="$sub_conf_opts --with-external-tar=$TARFILE_LOCATION"
+ test -n "${with_solver_and_workdir_root}" && sub_conf_opts="$sub_conf_opts --with-solver-and-workdir-root=${with_solver_and_workdir_root}"
test -n "$with_system_boost_for_build" && sub_conf_opts="$sub_conf_opts --with-system-boost"
test -n "$with_system_cppunit_for_build" && sub_conf_opts="$sub_conf_opts --with-system-cppunit"
test -n "$with_system_db_for_build" && sub_conf_opts="$sub_conf_opts --with-system-db"
@@ -11253,7 +11273,7 @@ AC_SUBST(BUILD_NCPUS)
# Set up ILIB for MSVC build
#
if test "$build_os" = "cygwin"; then
- ILIB=".;$SRC_ROOT/solver/$INPATH/lib"
+ ILIB=".;${SOLARVER}/$INPATH/lib"
if test -n "$JAVA_HOME" -a "$JAVA_HOME" != "NO_JAVA_HOME"; then
ILIB="$ILIB;$JAVA_HOME/lib"
fi
diff --git a/solenv/bin/linkoo b/solenv/bin/linkoo
index f825e3083762..ae9794409005 100755
--- a/solenv/bin/linkoo
+++ b/solenv/bin/linkoo
@@ -325,7 +325,7 @@ sub scan_and_link_files($$$)
}
# Now scan the solver
- scan_one_dir ($installed_files, \%build_files, "$build_path/solver/$target", 1);
+ scan_one_dir ($installed_files, \%build_files, "$ENV{'SOLARVER'}/$target", 1);
for my $file (keys %build_files) {
my $src = $build_files{$file};
@@ -389,7 +389,7 @@ sub link_gdb_py()
my $dirh;
my @basis;
my @ure;
- my $src = "$OOO_BUILD/solver/$TARGET/lib";
+ my $src = "$ENV{'SOLARVER'}/$TARGET/lib";
opendir ($dirh, $src) || die "can't open solver: $src: $!";
while (my $dent = readdir ($dirh)) {
$dent =~ /^\./ && next;
@@ -419,7 +419,7 @@ sub link_pagein_files()
return if ($windows);
print "pagein case:";
- my $src = "$OOO_BUILD/solver/$TARGET/bin";
+ my $src = "$ENV{'SOLARVER'}/$TARGET/bin";
my $dest = "$OOO_INSTALL/" . $brand_program_dir;
for my $c ('calc', 'draw', 'impress', 'writer', 'common') {
do_link ($src, $dest, "pagein-$c", "pagein-$c");