coup de grace for Env.Host.sh and associated files

This commit is contained in:
Norbert Thiebaud
2012-01-21 19:40:28 -06:00
parent b5c7a1ea72
commit 909cd34b7b
13 changed files with 161 additions and 864 deletions

5
.gitignore vendored
View File

@@ -56,11 +56,11 @@
/config.status
/config.parms
/config_host.mk
/config_host.mk.last
/config_build.mk
/configure
/desktop/scripts/soffice.sh
/makefile.mk
/set_soenv
/post_download
/bin/repo-list
/src.downloaded
@@ -77,7 +77,6 @@
# misc
/file-lists
/cross-build-toolset.built
/set_soenv.last
/set_soenv.stamp
/warn
/build.log
@@ -85,8 +84,6 @@
/post_download.log
/install
/downloaded
/Env.Build.sh
/Env.Host.sh
/ID
/tags
/docs

View File

@@ -9,26 +9,11 @@ if test -z "${SRC_ROOT}"; then
fi
fi
fi
if test -z "${SOLARENV}"; then
if test -f ./Env.Build.sh ; then
. ./Env.Build.sh
else
if test -f ./Env.Host.sh ; then
. ./Env.Host.sh
fi
fi
fi
if test -z "${SOLARENV}"; then
echo "bootstrap: No environment set!"
exit 1
fi
# remove aliases set by Env.Host.sh
unalias mkout 2> /dev/null
unalias deliver 2> /dev/null
unalias build 2> /dev/null
unalias zipdep 2> /dev/null
# executables are *.exe for WNT. This variable is necessary since Cygwin 1.5.x
# Use spawn instead of fork when building dmake on cygwin.
if test "$GUI_FOR_BUILD" = "WNT"; then

View File

@@ -17,7 +17,6 @@ export ANCIENT_BISON="@ANCIENT_BISON@"
export ANDROID_NDK_HOME="@ANDROID_NDK_HOME@"
export ANDROID_SDK_HOME="@ANDROID_SDK_HOME@"
export AR="@AR@"
export ASM_PATH="@ASM_PATH@"
export ATL_INCLUDE="@ATL_INCLUDE@"
export ATL_LIB="@ATL_LIB@"
export AWTLIB='@AWTLIB@'
@@ -58,7 +57,6 @@ export CPUNAME="@CPUNAME@"
export CPUNAME_FOR_BUILD="@CPUNAME_FOR_BUILD@"
export CPU_FOR_BUILD="@CPU_FOR_BUILD@"
export CROSS_COMPILING="@CROSS_COMPILING@"
export CSC_PATH="@CSC_PATH@"
export CT2N_EXTENSION_PACK="@CT2N_EXTENSION_PACK@"
export CURL_CFLAGS="@CURL_CFLAGS@"
export CURL_LIBS="@CURL_LIBS@"
@@ -87,7 +85,6 @@ export DISABLE_STRIP="@DISABLE_STRIP@"
export DLLTOOL="@DLLTOOL@"
export DMAKEROOT="@SRC_ROOT@/solenv/inc/startup"
export DOCDIR="@DOCDIR@"
export DOTNET_FRAMEWORK_HOME="@DOTNET_FRAMEWORK_HOME@"
export DOXYGEN="@DOXYGEN@"
export DO_FETCH_TARBALLS="@DO_FETCH_TARBALLS@"
export DPKG="@DPKG@"
@@ -270,7 +267,6 @@ export MDDS_CPPFLAGS="@MDDS_CPPFLAGS@"
export MERGELIBS="@MERGELIBS@"
export MFC_INCLUDE="@MFC_INCLUDE@"
export MFC_LIB="@MFC_LIB@"
export MIDL_PATH="@MIDL_PATH@"
export MINGWCXX="@MINGWCXX@"
export MINGWSTRIP="@MINGWSTRIP@"
export MINGW_CLIB_DIR="@MINGW_CLIB_DIR@"
@@ -292,7 +288,6 @@ export MOZ_INC="@MOZ_INC@"
export MOZ_LDAP_CFLAGS="@MOZ_LDAP_CFLAGS@"
export MOZ_LIB="@MOZ_LIB@"
export MOZ_LIB_XPCOM="@MOZ_LIB_XPCOM@"
export MSPDB_PATH="@MSPDB_PATH@"
export MYSQL_DEFINES="@MYSQL_DEFINES@"
export MYSQL_INC="@MYSQL_INC@"
export MYSQL_LIB="@MYSQL_LIB@"
@@ -326,6 +321,8 @@ export OUTDIR_FOR_BUILD="@OUTDIR_FOR_BUILD@"
export OUTPATH="@OUTPATH@"
export OUTPATH_FOR_BUILD="@OUTPATH_FOR_BUILD@"
export OXYGENOFFICE_PACK="@OXYGENOFFICE_PACK@"
export PATH="@LO_PATH@"
export PATH_FOR_BUILD="@LO_PATH_FOR_BUILD@"
export PATH_SEPERATOR="@P_SEP@"
export PERL="@PERL@"
export PKGFORMAT="@PKGFORMAT@"
@@ -369,14 +366,15 @@ export SIZEOF_LONG="@SIZEOF_LONG@"
export SIZEOF_LONGLONG="@SIZEOF_LONGLONG@"
export SIZEOF_POINTER="@SIZEOF_POINTER@"
export SIZEOF_SHORT="@SIZEOF_SHORT@"
export SOLARENV="@SRC_ROOT@/solenv"
export SOLAREXTRALIB="@SOLAREXTRALIB@"
export SOLARINC="@SOLARINC@"
export SOLARINC_FOR_BUILD="@SOLARINC_FOR_BUILD@"
export SOLARLIB="@SOLARLIB@"
export SOLARLIB_FOR_BUILD="@SOLARLIB_FOR_BUILD@"
export SOLAR_JAVA="@SOLAR_JAVA@"
export SOLARVER="@SRC_ROOT@/solver"
export SOLARVERSION="@SRC_ROOT@/solver"
export SOLAR_JAVA="@SOLAR_JAVA@"
export SPLIT_APP_MODULES="@SPLIT_APP_MODULES@"
export SPLIT_OPT_FEATURES="@SPLIT_OPT_FEATURES@"
export SRCDIR="@SRC_ROOT@"

View File

@@ -12,6 +12,7 @@ BUILD_TYPE="LibO"
SCPDEFS=""
GIT_REPO_NAMES=""
MINGW_EXTERNAL_DLLS=""
LO_PATH= # used by path_munge to construct a PATH variable
PathFormat()
{
@@ -48,10 +49,6 @@ WinPath()
fi
}
if test -n "$SOLARENV" ; then
AC_MSG_ERROR([You have sourced Env.Host.sh in this shell. This may lead to trouble, please run in a fresh (login) shell.])
fi
echo "********************************************************************"
echo "*"
echo "* Running ${PACKAGE_NAME} build configuration."
@@ -1941,11 +1938,19 @@ AC_PROG_EGREP
pathmunge ()
{
if ! echo HOST_PATH | $EGREP -q "(^|:)$1($|:)" ; then
if test "$2" = "after" ; then
HOST_PATH="$HOST_PATH:$1"
if test -n "$1" ; then
if test "$build_os" = "cygwin" ; then
WinPath "$1"
new_path=`cygpath -u "$formatted_path"`
else
HOST_PATH="$1:$HOST_PATH"
new_path="$1"
fi
if ! echo LO_PATH | $EGREP -q "(^|:)$1($|:)" ; then
if test "$2" = "after" ; then
LO_PATH="$LO_PATH:$1"
else
LO_PATH="$1:$LO_PATH"
fi
fi
fi
}
@@ -2651,7 +2656,6 @@ fi
AC_SUBST(COMEX)
PathFormat "$MSPDB_PATH"
MSPDB_PATH="$formatted_path"
AC_SUBST(MSPDB_PATH)
AC_SUBST(SHOWINCLUDES_PREFIX)
#
@@ -3081,7 +3085,7 @@ m4_pattern_allow([PKG_CONFIG_FOR_BUILD])
if test "$cross_compiling" = "yes"; then
AC_MSG_CHECKING([for BUILD platform configuration])
echo
rm -rf CONF-FOR-BUILD Env.Build.sh
rm -rf CONF-FOR-BUILD config_build.mk
mkdir CONF-FOR-BUILD
tar cf - \
bin/repo-list.in \
@@ -3120,13 +3124,10 @@ if test "$cross_compiling" = "yes"; then
--without-doxygen \
$sub_conf_opts \
2>&1 | sed -e 's/^/ /'
test -f ./Env.Host.sh 2>/dev/null || exit
test -f ./config_host.mk 2>/dev/null || exit
cp config_host.mk ../config_build.mk
sed -e 's/config_host.mk/config_build.mk/' <Env.Host.sh >../Env.Build.sh
cp config.log ../config.Build.log
. ./config_host.mk
. ./Env.Host.sh
for V in COM GUI GUIBASE OS CPU CPUNAME CC CXX GXX_INCLUDE_PATH MACOSX_DEPLOYMENT_TARGET INPATH OUTPATH \
SYSTEM_LIBXSLT; do
VV='$'$V
@@ -3137,7 +3138,7 @@ if test "$cross_compiling" = "yes"; then
fi
done
for V in OUTDIR PATH SOLARINC SOLARLIB WORKDIR; do
for V in OUTDIR LO_PATH SOLARINC SOLARLIB WORKDIR; do
VV='$'$V
VV=`eval "echo $VV"`
VV=`echo $VV | sed -e 's,/CONF-FOR-BUILD,,g'`
@@ -3149,8 +3150,6 @@ if test "$cross_compiling" = "yes"; then
)
test -f CONF-FOR-BUILD/build-config || AC_MSG_ERROR([Running configure script for BUILD system failed, see CONF-FOR-BUILD/config.log])
test -f config_build.mk || AC_MSG_ERROR([A file called config_build.mk was supposed to have been copied here, but it isn't found])
test -f Env.Build.sh || AC_MSG_ERROR([A file called Env.Build.sh was supposed to have been copied here, but it isn't found])
perl -pi -e 's,/CONF-FOR-BUILD,,g' Env.Build.sh
perl -pi -e 's,/CONF-FOR-BUILD,,g' config_build.mk
eval `cat CONF-FOR-BUILD/build-config`
AC_MSG_RESULT([checking for BUILD platform configuration... done])
@@ -3498,7 +3497,6 @@ make_warning=
if test "z$_make_ver_check" = "z"; then
STALE_MAKE=TRUE
fi
AC_SUBST(STALE_MAKE)
HAVE_LD_HASH_STYLE=FALSE
WITH_LINKER_HASH_STYLE=
@@ -3734,9 +3732,6 @@ if test "$build_os" = "cygwin"; then
PathFormat "$CSC_PATH"
CSC_PATH="$formatted_path"
AC_SUBST(MIDL_PATH)
AC_SUBST(CSC_PATH)
AC_SUBST(DOTNET_FRAMEWORK_HOME)
fi
dnl ===================================================================
@@ -7349,8 +7344,8 @@ fi
if test "$XLIB" != "no_x_libraries" -a "$XLIB" != "/usr/lib" -a "$XLIB" != "/usr/lib64" ; then
SOLARLIB="$SOLARLIB -L$XLIB"
fi
if test "$XiNC" != "no_x_include" -a "$XINC" != "/usr/include" ; then
SOLARLIB="$SOLARLIB -I$XINC"
if test "$XINC" != "no_x_includes" -a "$XINC" != "/usr/include" ; then
SOLARINC="$SOLARINC -I$XINC"
fi
AC_SUBST(XLIB)
@@ -7746,7 +7741,9 @@ the Windows SDK are installed.])
fi
PathFormat "$WINDOWS_SDK_HOME"
WINDOWS_SDK_HOME="$formatted_path"
SOLARINC="$SOLARINC -I$WINDOWS_SDK_HOME/include -I$COMPATH/include"
if test "$build_os" = "cygwin"; then
SOLARINC="$SOLARINC -I$WINDOWS_SDK_HOME/include -I$COMPATH/include"
fi
fi
AC_SUBST(WINDOWS_SDK_HOME)
@@ -7945,13 +7942,12 @@ if test "$_os" = "WINNT" -a "$WITH_MINGW" != "yes"; then
ML_EXE="$assembler"
fi
fi
FormatPath "$with_asm_home"
ASM_HOME="$formatted_path"
else
with_asm_home="NO_ASM_HOME"
ASM_HOME=""
fi
FormatPath "$with_asm_home"
ASM_HOME="$formatted_path"
AC_SUBST(ASM_HOME)
AC_SUBST(ML_EXE)
dnl ===================================================================
@@ -10803,6 +10799,61 @@ else
TEMP_DIRECTORY="/tmp"
fi
fi
AC_SUBST(TEMP_DIRECTORY)
AC_SUBST(TMP_DIRECTORY)
# setup the PATH for the environment
LO_PATH="$PATH"
case "$host_os" in
aix*|dragonfly*|freebsd*|linux-gnu*|*netbsd*|openbsd*)
if test "$SOLAR_JAVA" != "" -a "$JDK"!="gcj"; then
pathmunge "$JAVA_HOME/bin" "after"
fi
;;
cygwin*)
if test "$SOLAR_JAVA" != "" -a "$JDK"!="gcj"; then
pathmunge "$DOTNET_FRAMEWORK_HOME" "before"
pathmunge "$ASM_HOME" "before"
pathmunge "$WINDOWS_SDK_HOME" "before"
pathmunge "$CSC_PATH" "before"
pathmunge "$MIDL_PATH" "before"
pathmunge "$MSPDB_PATH" "before"
if test "$CL_X64"="TRUE" ; then
pathmunge "$COMPATH/bin/amd64" "before"
else
pathmunge "$COMPATH/bin" "before"
fi
if test -d "$JAVA_HOME/jre/bin/client" ; then
pathmunge "$JAVA_HOME/jre/bin/client" "before"
fi
if test -d "$JAVA_HOME/jre/bin/hotspot" ; then
pathmunge "$JAVA_HOME/jre/bin/hotspot" "before"
fi
pathmunge "$JAVA_HOME/bin" "before"
fi
;;
solaris*)
pathmunge "/usr/css/bin" "before"
if test "$SOLAR_JAVA" != "" -a "$JDK"!="gcj"; then
pathmunge "$JAVA_HOME/bin" "after"
fi
;;
esac
pathmunge "$SRC_ROOT/solenv/$OUTPATH/bin" "before"
pathmunge "$SRC_ROOT/solenv/bin" "before"
pathmunge "." "before"
AC_SUBST(LO_PATH)
if test -z "$LO_PATH_FOR_BUILD" ; then
LO_PATH_FOR_BUILD="$SOLARLIB"
fi
AC_SUBST(LO_PATH_FOR_BUILD)
# make sure config.guess is +x; we execute config.guess, so it has to be so;
chmod +x ./config.guess
@@ -10816,28 +10867,78 @@ autoconf post_download.in > post_download
chmod +x post_download
# Generate a configuration timestamp we can use for deps
if test -f set_soenv; then
mv -f set_soenv set_soenv.last
if test -f config_host.mk; then
mv -f config_host.mk config_host.mk.last
else
echo > set_soenv.last
echo > config_host.mk.last
fi
AC_CONFIG_FILES([config_host.mk ooo.lst set_soenv bin/repo-list build_env android/qa/sc/local.properties android/qa/desktop/local.properties])
AC_CONFIG_FILES([config_host.mk ooo.lst bin/repo-list build_env android/qa/sc/local.properties android/qa/desktop/local.properties])
AC_OUTPUT
# touch the config timestamp file set_soenv.stamp
if test ! -f set_soenv.stamp; then
echo > set_soenv.stamp
elif diff set_soenv set_soenv.last >/dev/null 2>&1; then
elif diff config_host.mk config_host.mk.last >/dev/null 2>&1; then
echo "Configuration unchanged - avoiding scp2 stamp update"
else
echo > set_soenv.stamp
fi
dnl Run the set_soenv script to setup the Env.Host.sh script that sets
dnl environment variables for the build.
chmod +x set_soenv
. ./config_host.mk && ./set_soenv
if test "STALE_MAKE"="TRUE" -a "$build_os"="cygwin" ; then
cat << _EOS
****************************************************************************
WARNING:
Your make version is known to be horribly slow, and hard to debug
problems with. To get a reasonably functional make please do:
to install a pre-compiled binary make for cygwin
mkdir -p /opt/lo/bin
cd /opt/lo/bin
wget http://dev-www.libreoffice.org/bin/cygwin/make
chmod +x make
to install from source:
place yourself in a working directory of you choice.
git clone git://anongit.freedesktop.org/libreoffice/contrib/dev-tools
cd dev-tools/make-3.82-gbuild
./configure --prefix=/opt/lo
make
sudo make install
Then re-run autogen.sh
Note: autogen.sh will try to use /opt/lo/bin/make if the environment variable GNUMAKE is not already defined.
Alternatively, you can install the 'new' make where ever you want and make sure that `which make` finds it.
_EOS
fi
cat << _EOF
****************************************************************************
To build, issue:
$GNUMAKE
To install when the build is finished, issue:
$GNUMAKE install
If you want to develop LibreOffice, you might prefer:
$GNUMAKE dev-install
If you want to run the smoketest, issue:
$GNUMAKE check
ATTENTION: Env.Host.sh and Env.Build.sh are no more.
The environment is now in config_host.mk and config_build.mk (for cross-compile)
You do not need to source them, even for partial build.
In order to have 'build' and 'deliver' alias, source build_env instead.
(you need to do that only once in a session. this is not impacted by
autogen, clean etc...)
_EOF
dnl vim:set shiftwidth=4 softtabstop=4 expandtab:

View File

@@ -28,7 +28,7 @@
# environment setup yet?
if [ -z "$TARFILE_LOCATION" ]; then
. ./config_host.mk && . ./Env.Host.sh
. ./config_host.mk
fi
# we want to clone if we are in the bootstrap git repo and clone does not exist yet

View File

@@ -1,779 +0,0 @@
#!@PERL@ -w # -*- Mode: perl; tab-width: 4; indent-tabs-mode: nil; -*-
#
# Program: set_soenv.in
# Author: Willem van Dorp, Ross Nicholson, Oisin Boydell - Sun Microsystems, Ireland.
#
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
# Description:
# set_soenv generates a file that contains all necessary
# environment variables for the build proces of OpenOffice
# on Linux, NetBSD, Solaris, Windows, Mac OS X and iOS.
#
# Program steps.
#
# I. Checking the command-line arguments.
# IIa. Declaring variables for the system commands, etc.
# IIb. Declaring the environment variables.
# III. Initialising the variables for the system commands, etc.
# IV. Print out some important messages etc.
# V. Initialising the environment variables.
# VI. Open the output file.
# VII. Writing the data to the output file.
# VIII. Closing output file.
#
#---------------------------------------------------------------------------
#
use strict; # pragma
use File::Basename;
#
#--------------------------------------------------------
# IIa. Declaring variables for the system commands, etc.
#--------------------------------------------------------
#
my ( $outfile, $newline, $comment,
$ds, $ps,
$wps, $cur_dir, $par_dir, $tmp,
$platform,
$empty,
$warnfile, $Warning, $result, $unsetvars, $exportvars);
#
#-------------------------------------------------
# IIb. Declaring environment values (constants).
#-------------------------------------------------
#
# Platform independent constant values.
my ( $CC );
#
# Platform dependent constant values.
my (
$OUTPATH,
);
#
#-------------------------------------------
# IIc. Declaring the environment variables.
#-------------------------------------------
#
# Help variables.
my ( $BIN, $LIB,
$ASM_PATH, $PERL_PATH, $CL_X64 );
# Environment variables.
my ( $oldPATH, $SRC_ROOT, $JAVA_HOME, $JDK,
$UPD,
$SOLARENV,
$COMPATH,
$PATH,
$PERL,
$WINDOWS_SDK_HOME, $DOTNET_FRAMEWORK_HOME,
$GNUMAKE,
);
#
#-------------------------------------------
# IId. Declaring the aliases.
#-------------------------------------------
#
my ( $dmake, $build, $mkout, $deliver, $zipdep );
#
$OUTPATH="@OUTPATH@";
$COMPATH="@COMPATH@";
#-------------------------------------------------------------
# IIIa. Initialising constants.
#-------------------------------------------------------------
#
$platform = '@host@';
$UPD = '@UPD@'; # the project's UPD
$newline = "\n"; # Perl newline character
$ds = "/"; # directory separator
$ps = ":"; # path separator
$wps = ":"; # path separator, will be set to ';' for windows later.
$cur_dir = "."; # current directory
$par_dir = ".."; # parrent directory
$empty = ""; # used as argument
$warnfile = "warn"; # logfile configure warnings.
$Warning = ""; # container for warning messages
$JDK = '@JDK@';
$CC = '@CC@'; # C compiler
$CL_X64 = '@CL_X64@';
$GNUMAKE = "@GNUMAKE@";
# JAVA_HOME as argument from autoconf.
$JAVA_HOME = "@JAVA_HOME@" ;
if ( $platform =~ m/cygwin/ ) {
$JAVA_HOME =~ s/[\s\/]+$//; # remove trailing \n or \/ if there is any.
}
#
#--------------------------------------------------------------------
# IV. Initialise the warning container and print a note to the user.
#--------------------------------------------------------------------
#
# Add the configure (pre-requisite) warnings to the warning container
# , $Warning.
AddWarning( "configure", "" );
#
print ("Setting up the environment for building LibreOffice $newline");
#
#--------------------------------------------------
# V. Setting the environment variables/values.
#--------------------------------------------------
#
#
# B. Gathering information from the system.
#
# 1. Path
$oldPATH = $ENV{"PATH"};
chomp( $oldPATH ); # cut off new line
#
# C. Setting the constant values.
#
# Setting platform independent constant values.
$comment = "#"; # UNIX script comment character
# Setting platform dependent constant values.
if ( $platform =~ m/cygwin|mingw32/ )
{
$wps = ';' if '@build_os@' eq 'cygwin'; # Windows style path seperator
}
print "done\n";
#
# D. Gathering directory information from the user.
#
# If the directory does not exist something is strange.
# 1. LibreOffice build home directory.
# SRC_ROOT should already be in the env due to config_host.mk
$SRC_ROOT = $ENV{"SRC_ROOT"};
CheckPathExist( $SRC_ROOT );
#
# E. Determining the envionment values based on the information
# that was gathered earlier on.
$BIN = $ds."bin";
$LIB = $ds."lib";
$PERL = '@PERL@';
$PERL_PATH = dirname('@PERL@'); # Perl Path
#
$SOLARENV = "$SRC_ROOT/solenv";
# The general environment path.
if ($platform =~ m/linux|netbsd|freebsd|aix|solaris|openbsd|dragonfly/)
{ $PATH = $cur_dir.
$ps.'$SOLARENV'.$ds.'$OUTPATH'.$BIN.
$ps.'$SOLARENV'.$BIN;
if ($platform =~ m/solaris/) {
$PATH .= $ps."/usr/ccs/bin";
}
$PATH .= $ps.$oldPATH;
my @javaBits;
if ( $JAVA_HOME ne "" && $JAVA_HOME ne "NO_JAVA_HOME" && $JDK ne "gcj" ) {
@javaBits = ( $JAVA_HOME.$BIN, 'javac' );
} else {
@javaBits = ();
}
$PATH = GetCorrectPath ($PATH,
$COMPATH, $CC,
$PERL_PATH, 'perl',
@javaBits);
}
elsif ($platform =~ m/cygwin/)
{ # The PATH variable is completely created from scratch. Elements
# from oldPATH that are not yet included are appended to PATH at
# the end.
my ( $tmppath );
$PATH = $cur_dir.
$ps.CygFormat($SOLARENV).$ds."bin".
$ps.CygFormat($SOLARENV).$ds.$OUTPATH.$BIN;
if ( $JAVA_HOME ne "" && $JAVA_HOME ne "NO_JAVA_HOME" )
{
# hack either "hotspot" or "client" should be used, depending on the jdk version:
# 1.2.x - no such directory, unsupported
# 1.3.x - hotspot, client missing
# 1.4.x - client, hotspot missing
$PATH .= $ps.CygFormat($JAVA_HOME).$BIN;
if ( -d $JAVA_HOME.$ds."jre".$ds."bin".$ds."hotspot" ) {
$PATH .= $ps.CygFormat($JAVA_HOME).$ds."jre".$ds."bin".$ds."hotspot";
}
if ( -d $JAVA_HOME.$ds."jre".$ds."bin".$ds."client" ) {
$PATH .= $ps.CygFormat($JAVA_HOME).$ds."jre".$ds."bin".$ds."client";
}
}
# Add path to compiler
$tmppath = CygFormat($COMPATH).$BIN;
$tmppath .= $ds."amd64" if $CL_X64;
$tmppath =~ s/^\/\//\//;
if ( "$PATH:$oldPATH" !~ /(?:[:]|\A)(?:$tmppath)(?:[:]|\Z)/ ) {
$PATH .= $ps.$tmppath;
}
$tmppath = CygFormat("@MSPDB_PATH@");
# for MSVC to find mspdb*.dll
if ( "$PATH:$oldPATH" !~ /(?:[:]|\A)(?:$tmppath)(?:[:]|\Z)/ ) {
$PATH .= $ps.$tmppath;
}
# need midl.exe
$tmppath = CygFormat("@MIDL_PATH@");
if ( "$PATH:$oldPATH" !~ /(?:[:]|\A)(?:$tmppath)(?:[:]|\Z)/ ) {
$PATH .= $ps.$tmppath;
}
# needs csc.exe
$tmppath = CygFormat("@CSC_PATH@");
if ( "$PATH:$oldPATH" !~ /(?:[:]|\A)(?:$tmppath)(?:[:]|\Z)/ ) {
$PATH .= $ps.$tmppath;
}
# Installer needs some files if the Windows Installer SDK
$tmppath = CygFormat("@WINDOWS_SDK_HOME@");
if ( "$PATH:$oldPATH" !~ /(?:[:]|\A)(?:$tmppath\/bin)(?:[:]|\Z)/i ) {
$PATH .= $ps.$tmppath.$BIN;
}
if ( "@ASM_HOME@" ne "ASM_IN_PATH" )
{ $PATH .= $ps.CygFormat("@ASM_HOME@");
}
# Possible cygwin paths must follow behind the OOo and MS paths.
# What the above comment means I have no idea.
# Check if $PERL_PATH is already set in PATH
$tmppath = CygFormat($PERL_PATH);
if ( "$PATH:$oldPATH" !~ /(?:[:]|\A)(?:$tmppath)(?:[:]|\Z)/ ) {
$PATH .= $ps.$tmppath;
}
# path to sn.exe (signing) for Windows users.
my $sn_path = "@DOTNET_FRAMEWORK_HOME@/bin";
$tmppath = CygFormat($sn_path);
if ( "$PATH:$oldPATH" !~ /(?:[:]|\A)(?:$tmppath)(?:[:]|\Z)/ ) {
$PATH .= $ps.$tmppath;
}
# Add the rest of the original path if it is still missing.
my $expandedPATH = $PATH;
$expandedPATH =~ s/(\$\w+)/$1/eeg;
# fix situations where PATH may look like /bin:"C:\blah\bleh":/ugh
my $fixedPATH = $oldPATH;
if ( $oldPATH =~ /"/ ) {
$fixedPATH = "";
foreach my $pathentry ( split( '"',$oldPATH ) ) {
if ( ( $pathentry =~ /^$ps/ ) || ( $pathentry =~ /$ps$/ ) ) {
$fixedPATH .= $pathentry;
} else {
chomp( $pathentry = qx{cygpath -d "$pathentry"} ) ;
chomp( $pathentry = qx{cygpath -u "$pathentry"} ) ;
$fixedPATH .= $pathentry;
}
}
}
foreach my $pathentry (split($ps,$fixedPATH)) {
if ( ! ( $expandedPATH =~ /(?:$ps|\A)(?:$pathentry)(?:$ps|\Z)/ ) ) {
$PATH .= $ps.$pathentry;
$expandedPATH .= $ps.$pathentry;
}
}
# The path now is in cygwin posix format
}
elsif ($platform =~ m/mingw32/)
{
my ( $tmppath );
$PATH = $cur_dir.
$ps.CygFormat($SOLARENV).$ds."bin".
$ps.CygFormat($SOLARENV).$ds.$OUTPATH.$BIN;
$PATH .= $ps.$oldPATH;
}
elsif ($platform =~ m/darwin/)
{ $PATH = $cur_dir.
$ps.'$SOLARENV'.$ds.'$OUTPATH'.$BIN.
$ps.'$SOLARENV'.$BIN;
# Append old PATH
$PATH .= $ps.$oldPATH;
}
else
{ AddWarning( "set_soenv", "$platform not configured for general environment paths" );
}
#
# F. Setting the different aliases.
#
# 1. alias for a full product make.
$mkout = '"perl $SOLARENV/bin/mkout.pl"';
$deliver = '"perl $SOLARENV/bin/deliver.pl"';
$build = '"perl $SOLARENV/bin/build.pl"';
$zipdep = '"perl $SOLARENV/bin/zipdep.pl"';
#
#--------------------------
# VI. Open the output file.
#--------------------------
#
$outfile = 'Env.Host.sh';
open( OUT, ">$SRC_ROOT/$outfile" ) ||
die "Cannot open $SRC_ROOT/$outfile: $!\n";
#
#------------------------------------------
# VII. Writing the data to the output file.
#------------------------------------------
#
# Write file header.
CreateFileHeader( *OUT, $UPD, $platform, "sh/bash/ksh", "#" );
ToFile( "SOLARENV", $SOLARENV, "e" );
if ( '@CROSS_COMPILING@' eq 'YES' )
{
# Obviously we shouldn't set PATH to contain host binaries
ToFile( "PATH", "@PATH_FOR_BUILD@", "e" );
}
else
{
ToFile( "PATH", $PATH, "e" );
ToFile( "PATH_FOR_BUILD", $PATH, "e" );
}
#
# Writing the aliases to file.
ToFile( "Aliases.", $empty, "c" );
ToFile( "Don't set aliases when bootstrapping", $empty, "c" );
ToFile( "alias mkout", $mkout, "a" );
ToFile( "alias deliver", $deliver, "a" );
ToFile( "alias build", $build, "a" );
ToFile( "alias zipdep", $zipdep, "a" );
#
# Writing unset variables you might not need to file.
#
print OUT "export $exportvars$newline";
print OUT "unset $unsetvars$newline";
# unset may return a non-zero value and make the initial
# make(1) processes terminate with an error
print OUT "true $newline";
#
#---------------------------
# VIII. Closing output file.
#---------------------------
#
close( OUT ) || print "Can't close $SRC_ROOT/$outfile: $!";
#--------------------------------------------------------
# XII. Message at the end.
#--------------------------------------------------------
#
#
print "$newline";
print "*********************************************************".
"*******************$newline*$newline";
print "* LibreOffice configuration finished. $newline*$newline";
if ( $Warning ne "" )
{ print "$Warning*$newline";
}
print "*********************************************************".
"******************* $newline";
print "To build, issue:\n$GNUMAKE\n\n";
print "To install when the build is finished, issue:\n$GNUMAKE install\n\n";
print "If you want to develop LibreOffice, you might prefer:\n$GNUMAKE dev-install\n\n";
print "If you want to run the smoketest, issue:\n$GNUMAKE check\n\n";
if ("@STALE_MAKE@" eq "TRUE" && $platform =~ m/cygwin/ ) {
print << 'EOS'
WARNING:
Your make version is known to be horribly slow, and hard to debug
problems with. To get a reasonably functional make please do:
to install a pre-compiled binary make for cygwin
mkdir -p /opt/lo/bin
cd /opt/lo/bin
wget http://dev-www.libreoffice.org/bin/cygwin/make
chmod +x make
to install from source:
place yourself in a working directory of you choice.
git clone git://anongit.freedesktop.org/libreoffice/contrib/dev-tools
cd dev-tools/make-3.82-gbuild
./configure --prefix=/opt/lo
make
sudo make install
Then re-run autogen.sh
Note: autogen.sh will try to use /opt/lo/bin/make if the environment variable GNUMAKE is not already defined.
Alternatively, you can install the 'new' make where ever you want and make sure that `which make` finds it.
EOS
}
if ( $Warning ne "" ) {
print "***** WARNINGS ISSUED *****\n";
}
#
#-----------------
# XII. Functions.
#-----------------
#
#-------------------------------------------------------------
# Function name: CheckPathName
# Description: chops off the '/' character if it's the last
# character in a pathname. also adds the '/'
# character if it's not the first character
# in a path.
# Arguments: 1. Path (string)
# Return value: Path (string)
#-------------------------------------------------------------
sub CheckPathName
{ my $retrn = $_[ 0 ];
if ($platform =~ m/cygwin/)
{ # Check if the first character is not a '/'.
if ( !( $_[ 0 ] =~ /^\// ) )
{ $retrn = $ds.$_[ 0 ];
}
}
# kill the last '/','\','\n' if they exists.
$retrn =~ s![\s/\\]+$!!;
# Done!
return( $retrn );
}
#-------------------------------------------------------------
# Function name: CheckPathExist
# Description: Checks whether the directory that is given
# as an argument exists. If not abort.
# Arguments: 1. Path (string)
# Return value: void
#-------------------------------------------------------------
sub CheckPathExist
{ my $dir = $_[ 0 ];
if ( !( -d $dir ) )
{ print ( "The directory $_[ 0 ] does not exist. Please create first.\n" );
exit 1;
}
else
{ # Don't check under ActiveState Perl (Windows). The path is possibly
# posix and it cannot handle it.
# Hmm, but the above test also checks for existance, so presumably
# the mention of ActiveState in the above comment is just a red
# herring.
return "true";
}
}
#------------------------------------------------------------
# Function name: CreateFileHeader
# Description: Creates a header for the outfile.
# Arguments: 1. File to write to
# 2. UPD (string)
# 3. Platform (string)
# 4. name of shell for this file
# 5. comment to use for this file
# Return value: void
#------------------------------------------------------------
sub CreateFileHeader
{ my $timestamp = `date`;
chomp( $timestamp );
my $filehandle = $_[0];
my $comment = $_[4];
print { $filehandle } "$comment #################################################################";
print { $filehandle } $newline;
print { $filehandle } "$comment LibreOffice $_[ 1 ] build environment file for: $_[ 2 ]. $newline";
print { $filehandle } "$comment Generated on: $timestamp $newline";
print { $filehandle } "$comment Source this file to set up the build environment. $newline";
print { $filehandle } "$comment 1. exec $_[3] $newline";
print { $filehandle } "$comment 2. source $outfile $newline";
print { $filehandle } "$comment #################################################################";
print { $filehandle } $newline;
print { $filehandle } 'if test -z "$SRC_ROOT" ; then';
print { $filehandle } $newline;
print { $filehandle } " . $SRC_ROOT/config_host.mk $newline";
print { $filehandle } "fi $newline";
print { $filehandle } $newline;
}
#---------------------------------------------------------
# Function name: ToFile
# Description: Writes the environment variable in the
# output file.
# Arguments: 1. Name of environment variable (string)
# 2. Value of environment variable (string)
# 3. e - env. var
# a - alias
# c - comment
# n - newline
# z - raw, write as is to OUT
# Return value: void
#---------------------------------------------------------
sub ToFile {
if ( $_[ 2 ] eq "e" ) {
# Write an environment variable to file.
if (defined $_[ 1 ] && $_[ 1 ] ne "" ) {
my $envvar = $_[ 1 ];
# Tcsh/bash needs backslashes quoted
$envvar =~ s/\\/\\\\/g;
printf("%-12s %-17s %-10s %s\n", "The variable", $_[ 0 ], "is set to:", $envvar) if ( '@VERBOSE@' eq 'TRUE' );
print OUT "$_[ 0 ]=\"$envvar\"$newline"; # to sh file
$exportvars .= " $_[ 0 ]"; # add to export list for sh file
} else {
printf("%-12s %-17s %-10s %s\n", "The variable", $_[ 0 ], "is set to:", "unset") if ( '@VERBOSE@' eq 'TRUE' );
$unsetvars .= " $_[ 0 ]"; # for sh file
}
}
elsif ( $_[ 2 ] eq "a" )
{ # Write an alias to file.
print "The $_[ 0 ] is set to: $_[ 1 ]\n" if ( '@VERBOSE@' eq 'TRUE' ); # to stdout
print OUT "$_[ 0 ]=$_[ 1 ]$newline"; # to sh file
}
elsif ( $_[ 2 ] eq "c" )
{ # Write a comment to file.
if ( '@VERBOSE@' eq 'TRUE' )
{
print "$newline";
print "$comment$newline";
print "$comment $_[ 0 ]$newline";
print "$comment$newline";
}
print OUT "$newline";
print OUT "$comment$newline";
print OUT "$comment $_[ 0 ]$newline";
print OUT "$comment$newline";
}
elsif ( $_[ 2 ] eq "n" )
{ #Write a newline to a file
print OUT "$newline";
}
elsif ( $_[ 2 ] eq "z" )
{
#Write first argument as is, and nothing else
print OUT "$_[ 0 ]$newline";
}
else
{ print "Unknown type!$newline";
}
}
#----------------------------------------------------------
# Function name: CygFormat
# Description: Format variables to cygwin posix style path
# unless .
# Arguments: 1. Variable (string)
# Return value: Reformatted String
#----------------------------------------------------------
sub CygFormat
{ my ( $variable, $d1, $d2 );
$variable = $_[ 0 ];
# ToDo: Do the replacement only if Windows and var contains "\" and ":"
if ( $platform =~ m/cygwin/ )
{
# Complain if PosixPath is used on a PATH-like string
if ( $variable =~ m/;/ ) {
die( "Do not use on PATH lists (i.e., 'c:\\foo;d:\\bar')");
}
# Replace DOS paths with posix paths
if ( ( $variable =~ m/\\/ ) or ( $variable =~ m/:/ ) ) {
chomp( $variable = qx{cygpath -u "$variable"} );
}
}
return $variable;
}
#----------------------------------------------------------
# Function name: WinPath
# Description: Reformat a $sep seperated path using DOS paths.
# Arguments: 1. Variable (string)
# 2. Separaror (string)
# Return value: Reformatted String
#----------------------------------------------------------
sub WinPath
{
my ( $variable, $d1, $sep, @split_var );
if ( $platform =~ m/cygwin/ ) {
$variable = $_[ 0 ];
$sep = $_[ 1 ];
$variable =~ s/^\s+//g ; #remove leading spaces
$variable =~ s/\s+$//g ; #remove trailing spaces
$variable =~ s/(\$\{?\w+\}?)/$1/eeg ; # expand the variables
$variable =~ s/(\$\{?\w+\}?)/$1/eeg ; # expand the variables twice!
@split_var = split(/$sep/,$variable);
foreach $d1 ( @split_var ) {
if ( $d1 =~ /(?:^\/[\w\.~ ]+)+/ ) {
if ( $d1 =~ / / ) {
# Use DOS 8.3 style to avoid quoting
chomp( $d1 = qx{cygpath -d "$d1"} );
} else {
# Use "normal" filenames
chomp( $d1 = qx{cygpath -w "$d1"} );
}
}
}
$variable = join(';',@split_var);
$variable =~ s/\//\\/g; # Remaining \ come from e.g.: ../foo/baa
}
return $variable;
}
#--------------------------------------------------------
# Function name: GetCorrectPath
# Description: Creates the build environment.
# Arguments: 1. existing / original path
# 2... pairs of <path, executable>
# Return value: String - Correct Path
#--------------------------------------------------------
sub GetCorrectPath
{
sub PathLookup
{
my $cmd = shift;
while (@_) {
my $elem = shift;
-x "$elem/$cmd" && return $elem;
}
return '';
}
sub SaneGrep
{
# Perl grep is unbelievably strange.
my $needle = shift;
while (@_) {
my $haystack = shift;
if ($needle eq $haystack) {
return 1;
}
}
return 0;
}
sub CleanupPath
{
my @elements = @_;
my @cleanName = ();
while (@elements) {
my $elem = shift @elements;
if (!SaneGrep ($elem, @cleanName)) {
push @cleanName, $elem;
}
}
return @cleanName;
}
my $oldPath = shift;
my @originalPairs = @_;
my @pairs = @originalPairs;
my @Path = split /$ps/, $oldPath;
while (@pairs) {
my $path = shift @pairs;
my $cmd = shift @pairs;
my $to_append = 1;
my $elem;
if (! -x "$path/$cmd") {
AddWarning ("Missing executable $path/$cmd\n");
}
for $elem (@Path) {
if ($elem eq $path) {
# print "Hit duplicate path in path; break\n";
$to_append = 0;
last;
}
if (-f "$elem/$cmd") {
# print "Element already in path ...\n";
unshift @Path, $path;
$to_append = 0;
last;
} else {
# print "No file $elem/$cmd\n";
}
}
if ($to_append) {
push @Path, $path;
}
}
@pairs = @originalPairs;
while (@pairs) {
my $path = shift @pairs;
my $cmd = shift @pairs;
my $realpath;
$realpath = PathLookup ($cmd, @Path);
if (!($realpath eq $path)) {
AddWarning ("Path conflict for executables " .
"$path/$cmd against $realpath");
}
}
return join $ps, CleanupPath (@Path);
}
#------------------------------------------------------------
# Function name: AddWarning
# Description: Adds any kind of warning for the user.
# The warning will be shown at the end
# of this script.
# Arguments: 1. Add the configure warnings or the set_soenv
# warning (string).
# 2. Warning (string).
# Return value: void
#------------------------------------------------------------
sub AddWarning
{ if ( $_[ 0 ] eq "configure" )
{ open( IN, $warnfile );
while ( <IN> )
{ $Warning = $Warning."* - ".$_;
}
close( IN );
# Remove the temporary warning file.
# unlink ( $warnfile );
}
elsif ( $_[ 0 ] eq "set_soenv" )
{ my ( $arg1 );
$arg1 = $_[ 1 ];
chomp( $arg1 ); # cut off new line
$Warning = $Warning."* - set_soenv: warning: $arg1 $newline"; # add the warning
}
}
# vim:set shiftwidth=4 softtabstop=4 expandtab: #

View File

@@ -1510,7 +1510,6 @@ sub cancel_build {
}
print STDERR "-----------------------------------------------------------------------\n";
print STDERR "\n";
print STDERR "" . $ENV{'OOO_SHELL'} . "\n";
print STDERR "cd " . $ENV{'SRC_ROOT'} . "\n";
print STDERR "source ./build_env\n";
print STDERR "cd $module\n";

View File

@@ -2,7 +2,7 @@
# create ID file for the whole LibO tree. run it in toplevel dir
. ./config_host.mk && . ./Env.Host.sh
. ./config_host.mk
# --with-outpath includes projects/$INPATH/inc (also solver/$INPATH/inc)
if [ "$1" = "--with-outpath" ]; then

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env sh
. ./config_host.mk && . ./Env.Host.sh
. ./config_host.mk
omnicppoptions="--c++-kinds=+p --fields=+iaS --extra=+q"
ctags -h "+.hdl.hrc" --langmap=c:+.hdl.hrc.src $omnicppoptions \

View File

@@ -61,8 +61,8 @@ fetch:
@true
# fixme: can we prevent these exports in the first place?
$(SRCDIR)/Env.Host.sh: autogen.lastrun configure.in ooo.lst.in set_soenv.in
$(if $(filter reconfigure,$(gb_SourceEnvAndRecurse_STAGE)),$(SRCDIR)/autogen.sh,@echo "cannot reconfigure from within solarenv" && rm -f $(SRCDIR)/Env.Host.sh && exit 2)
$(SRCDIR)/config_host.mk: autogen.lastrun configure.in ooo.lst.in config_host.mk.in
$(if $(filter reconfigure,$(gb_SourceEnvAndRecurse_STAGE)),$(SRCDIR)/autogen.sh,@echo "cannot reconfigure from within solarenv" && rm -f $(SRCDIR)/config.host.mk && exit 2)
ifeq ($(strip $(gb_PARTIALBUILD)),)
@@ -110,7 +110,7 @@ docs:
distro-pack-install:
@true
$(SRCDIR)/Env.Host.sh:
$(SRCDIR)/config_host.mk:
@true
clean-host:

View File

@@ -1,24 +1,24 @@
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
#
#
# Version: MPL 1.1 / GPLv3+ / LGPLv3+
#
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License or as specified alternatively below. You may obtain a copy of
# the License at http://www.mozilla.org/MPL/
#
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
#
# Major Contributor(s):
# [ Copyright (C) 2011 Bjoern Michaelsen <bjoern.michaelsen@canonical.com> (initial developer) ]
#
#
# All Rights Reserved.
#
#
# For minor contributions see the git repository.
#
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
@@ -117,7 +117,7 @@ build: $(WORKDIR)/bootstrap $(SRCDIR)/src.downloaded $(if $(filter $(INPATH),$(I
$(call gb_BuildplTarget_command,instsetoo_native,--all)
cross_toolset: $(WORKDIR)/bootstrap $(SRCDIR)/src.downloaded
source $(SRCDIR)/config_build.mk && source $(SRCDIR)/Env.Build.sh && $(call gb_BuildplTarget_command,$@,--all)
source $(SRCDIR)/config_build.mk && $(call gb_BuildplTarget_command,$@,--all)
# experimental callcatcher target
# http://www.skynet.ie/~caolan/Packages/callcatcher.html
@@ -125,16 +125,13 @@ findunusedcode:
@which callcatcher > /dev/null 2>&1 || \
(echo "callcatcher not installed" && false)
@sed -e s,$(INPATH),callcatcher,g $(SRCDIR)/config_host.mk > $(SRCDIR)/config_host_callcatcher.mk
@sed -e s,config_host,config_host_callcatcher,g $(SRCDIR)/Env.Host.sh > $(SRCDIR)/Env.callcatcher.sh
@mkdir -p $(SRCDIR)/solenv/callcatcher/bin && \
ln -sf $(SRCDIR)/solenv/$(INPATH)/bin/dmake \
$(SRCDIR)/solenv/callcatcher/bin/dmake && \
source $(SRCDIR)/config_host_callcatcher.mk && \
source $(SRCDIR)/Env.callcatcher.sh && \
source $(SRCDIR)/solenv/bin/callcatchEnv.Set.sh && \
$(call gb_BuildplTarget_command,instsetoo_native,--all)
@source $(SRCDIR)/config_host_callcatcher.mk && \
source $(SRCDIR)/Env.callcatcher.sh && \
callanalyse \
$$WORKDIR/LinkTarget/*/* \
*/$$OUTPATH/bin/* \

View File

@@ -1,4 +1,4 @@
# -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
#
# Version: MPL 1.1 / GPLv3+ / LGPLv3+
#
@@ -29,14 +29,14 @@
# speed up if no target need to parse all modules
gb_SpeedUpTargets_WRAPPEDBUILD:=
ifneq ($(strip $(MAKECMDGOALS)),)
ifeq ($(filter-out id tags docs distro-pack-install fetch help debugrun $(SRCDIR)/Env.Host.sh,$(MAKECMDGOALS)),)
ifeq ($(filter-out id tags docs distro-pack-install fetch help debugrun $(SRCDIR)/config_host.mk,$(MAKECMDGOALS)),)
gb_SpeedUpTargets_WRAPPEDBUILD:=T
endif
endif
ifeq ($(strip $(gb_PARTIALBUILD)),)
ifneq ($(strip $(MAKECMDGOALS)),)
ifeq ($(filter-out clean distclean id tags docs distro-pack-install fetch help debugrun $(SRCDIR)/Env.Host.sh,$(MAKECMDGOALS)),)
ifeq ($(filter-out clean distclean id tags docs distro-pack-install fetch help debugrun $(SRCDIR)/config_host.mk,$(MAKECMDGOALS)),)
gb_SpeedUpTargets_WRAPPEDBUILD:=T
endif
endif

View File

@@ -14,7 +14,7 @@ gb_SourceEnvAndRecurse_buildpl=true
else
SRCDIR:=$(realpath $(gb_MAKEFILEDIR))
gb_SourceEnvAndRecurse_reconfigure=$(call gb_SourceEnvAndRecurse_recurse,$(SRCDIR)/Env.Host.sh,reconfigure)
gb_SourceEnvAndRecurse_reconfigure=$(call gb_SourceEnvAndRecurse_recurse,$(SRCDIR)/config_host.mk,reconfigure)
gb_SourceEnvAndRecurse_buildpl=$(call gb_SourceEnvAndRecurse_recurse,$(MAKECMDGOALS),buildpl)
endif
@@ -22,14 +22,13 @@ endif
source-env-and-recurse:
@$(gb_SourceEnvAndRecurse_reconfigure) && \
if test -f $(SRCDIR)/config_host.mk ; then . $(SRCDIR)/config_host.mk; fi && \
if test -f $(SRCDIR)/Env.Host.sh; then . $(SRCDIR)/Env.Host.sh; fi && \
if test -z "$${SOLARENV}"; then echo "no configuration found and could not create one" && exit 1; fi && \
$(gb_SourceEnvAndRecurse_buildpl) && \
$(call gb_SourceEnvAndRecurse_recurse,$(MAKECMDGOALS),gbuild) \
ifneq ($(strip $(MAKECMDGOALS)),)
ifneq ($(MAKECMDGOALS),$(SRCDIR)/Env.Host.sh)
ifneq ($(MAKECMDGOALS),$(SRCDIR)/config_host.mk)
$(eval $(MAKECMDGOALS) : source-env-and-recurse)
endif
endif