diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Makefile.in | 4 | ||||
-rwxr-xr-x | build_env.in | 11 | ||||
-rw-r--r-- | configure.in | 7 | ||||
-rwxr-xr-x | solenv/bin/lo_find_src_root | 23 | ||||
-rwxr-xr-x | solenv/bin/lo_proxy_start | 31 |
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 + |