summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--Makefile.in4
-rwxr-xr-xbuild_env.in11
-rw-r--r--configure.in7
-rwxr-xr-xsolenv/bin/lo_find_src_root23
-rwxr-xr-xsolenv/bin/lo_proxy_start31
6 files changed, 74 insertions, 3 deletions
diff --git a/.gitignore b/.gitignore
index 1886dd283801..3fc92e476dec 100644
--- a/.gitignore
+++ b/.gitignore
@@ -45,6 +45,7 @@
/aclocal.m4
/autom4te.cache
/autogen.lastrun
+/build_env
/ChangeLog
/config.guess
/config.log
diff --git a/Makefile.in b/Makefile.in
index 24a73b79d089..716aad7ce2f9 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -86,9 +86,9 @@ ifeq (@BUILD_DMAKE@,YES)
-test -f dmake/Makefile && $(MAKE) -C dmake distclean
endif
rm -rf Env.Host.sh Makefile aclocal.m4 autogen.lastrun autom4te.cache \
- bin/repo-list config.log config.status configure \
+ bin/repo-list build_env config.log config.status configure \
desktop/scripts/soffice.sh ooo.lst post_download post_download.log \
- set_soenv set_soenv.last set_soenv.stamp src.downloaded warn
+ set_soenv set_soenv.last set_soenv.stamp src.downloaded warn
clean: clean-host clean-build
diff --git a/build_env.in b/build_env.in
new file mode 100755
index 000000000000..bf1ace6985dc
--- /dev/null
+++ b/build_env.in
@@ -0,0 +1,11 @@
+
+if hash lo_proxy_start 2>&- ; then
+ base_alias="lo_proxy_start"
+else
+ base_alias="@SRC_ROOT@/solenv/bin/lo_proxy_start"
+fi
+
+alias build="$base_alias build"
+alias deliver="$base_alias deliver"
+
+unset base_alias
diff --git a/configure.in b/configure.in
index 19beb9ae6c8b..17df05396acc 100644
--- a/configure.in
+++ b/configure.in
@@ -40,9 +40,14 @@ AC_SUBST(CROSS_COMPILING)
if test "$build_os" = "cygwin"; then
EXEEXT_FOR_BUILD=.exe
+ SRC_ROOT=`pwd`
+ SRC_ROOT=`cygpath -d "$SRC_ROOT"`
+ SRC_ROOT=`cygpath -u "$SRC_ROOT"`
else
EXEEXT_FOR_BUILD=
+ SRC_ROOT=`pwd`
fi
+AC_SUBST(SRC_ROOT)
AC_SUBST(EXEEXT_FOR_BUILD)
cat /dev/null > warn
@@ -9548,7 +9553,7 @@ else
echo > set_soenv.last
fi
-AC_CONFIG_FILES([ooo.lst set_soenv Makefile bin/repo-list desktop/scripts/soffice.sh])
+AC_CONFIG_FILES([ooo.lst set_soenv Makefile bin/repo-list desktop/scripts/soffice.sh build_env])
AC_OUTPUT
# make sure this is executable
diff --git a/solenv/bin/lo_find_src_root b/solenv/bin/lo_find_src_root
new file mode 100755
index 000000000000..a91c84759822
--- /dev/null
+++ b/solenv/bin/lo_find_src_root
@@ -0,0 +1,23 @@
+#!/usr/bin/env bash
+#
+# (c) 2011 Norbert Thiebaud. License : GPLv3
+#
+# try to locate the SRC_ROOT based on the working directory
+# we search for first Repository.mk
+# in the current directoyr or its parent, all teh way to /
+# Ths is a heuristic. it works 'most of the times
+# but it could give false positive if you try hard enough
+#
+
+current=$(pwd)
+
+while [ "${current}" != "/" ] ; do
+ if [ -f ${current}/.src_root ] ; then
+ echo "${current}"
+ exit 0;
+ fi
+ current=$(dirname "${current}")
+done
+
+echo "Error cannot determine SRC_ROOT" 1>&2
+exit 1;
diff --git a/solenv/bin/lo_proxy_start b/solenv/bin/lo_proxy_start
new file mode 100755
index 000000000000..67dcabf5c18a
--- /dev/null
+++ b/solenv/bin/lo_proxy_start
@@ -0,0 +1,31 @@
+#!/usr/bin/env bash
+
+bin_dir=$(dirname $0)
+action=$(basename $0)
+
+if [ "$action" = "lo_proxy_start" ] ; then
+ action=$1
+ shift
+fi
+
+if [ -z "$SRC_ROOT" ] ; then
+ SRC_ROOT=$($bin_dir/lo_find_src_root) || exit 1
+fi
+if [ -z "$SOLARINC" ] ; then
+ if [ -e "$SRC_ROOT/config.mk" ] ; then
+ . "$SRC_ROOT/config.mk"
+ fi
+ if [ -e "$SRC_ROOT/Env.Host.sh" ] ; then
+ . "$SRC_ROOT/Env.Host.sh"
+ fi
+fi
+
+if [ -e $SRC_ROOT/solenv/bin/$action.pl ] ; then
+ $SRC_ROOT/solenv/bin/$action.pl "$@"
+elif [ -e $SRC_ROOT/solenv/bin/$action.sh ] ; then
+ $SRC_ROOT/solenv/bin/$action.sh "$@"
+else
+ echo "$action.[pl|sh] not found" 2>&1
+ exit 1
+fi
+