#!/bin/sh

#
# See setup for user tweakables.
#
. ./setup

if test "z$BUILD_WIN32" = "z"; then
    if ! test -f /proc/kcore; then
        echo "Looks like proc isn't mounted - this means almost certain"
        echo "Java related weird build failure: please check /proc"
        exit 1;
    fi
fi

# configure

#  dmake security patch
cd $OOBUILDDIR/dmake
autoconf || exit 1;

#  main configure
cd $OOBUILDDIR/config_office
rm -f config.cache
echo "configuring ...";
autoconf || exit 1;

# If we are forcing gcc33, make sure configure knows
if test "z$FORCE_GCC33" = "zYES"; then
CONFIGURE_OPTIONS="$CONFIGURE_OPTIONS CFLAGS= CXXFLAGS= CC=gcc33 CXX=g++33"
fi

echo "Env for configure:"
set
echo "Env for configure ends"

eval ./configure "$CONFIGURE_OPTIONS" || exit 1;

# Unfortunately, on when forcing gcc33 on x86, RPM attempts to
# inject its %{optflags} everywhere.  Since gcc33 doesn't support
# -mtune, override that here
if test "z$FORCE_GCC33" = "zYES"; then
	if test "z$DISTRO" = "zRHFedora"; then
		# Set up x86 optimization flags that gcc33 can deal with
		ARCH_FLAGS=""
		if test "z$INPATH" = "zunxlngi4.pro"; then
			ARCH_FLAGS="-march=i386 -mcpu=i686"
		fi
		export ARCH_FLAGS
		FOOBAR=`ls $OOBUILDDIR/*.Set.sh`
		echo 'ARCH_FLAGS="$ARCH_FLAGS"' >> $FOOBAR
	fi
fi

# Final build preparation

# tcsh sucks great rocks, and refuses to re-direct it's output otherwise
export TERM=
# Many Java files have 8bit char-set comments, javac barfs on them in utf8 locales
export LANG="C";

if test "z$ENABLE_JAVA" = "zyes"; then
	# Many Java's can't cope with the NPTL on Linux.
	LD_ASSUME_KERNEL=2.2.5 /bin/true 2> /dev/null || LD_ASSUME_KERNEL=2.4.10 /bin/true 2> /dev/null || LD_ASSUME_KERNEL=2.6.0 2> /dev/null || unset LD_ASSUME_KERNEL
	export LD_ASSUME_KERNEL
fi
# Don't do a massive painful install
export BUILD_MINIMAL="01";
# Embedded python dies without Home set
if test "z$HOME" = "z"; then
    export HOME="";
fi
cd $OOBUILDDIR
# Import all of the OO.o environment
if test "z$DISTRO" = "zWin32"; then
    . $OOBUILDDIR/*.set.sh
else
    . $OOBUILDDIR/*.Set.sh
fi
# Copy in missing libraries if we just built them
if test "z$SYSTEM_GCC" = "z"; then
    echo "Copying libraries to $SOLARVER/$UPD/$INPATH/lib";
    mkdir -p $SOLARVER/$UPD/$INPATH/lib || exit 1;
    cp -avf $BUILDDIR/lib/libgcc* $BUILDDIR/lib/libstdc* $SOLARVER/$UPD/$INPATH/lib || exit 1;
    cp -vf $BUILDDIR/lib/libstdc++* $SOLARVER/$UPD/$INPATH/lib/ || exit 1;
fi
echo 'Verifying environment'
echo "Path:  \'$PATH\'"
echo "Shell: \'$SHELL\'"
echo "Lang:  \'$OOO_LANGS\'"
if test "z$DISTRO" != "zWin32"; then
    echo "Gcc: "
    gcc -dumpversion
fi
bison --version
flex --version
echo 'Bootstrapping'
./bootstrap || ./bootstrap || ./bootstrap || exit 1;
echo 'Commencing main build'
cd instsetoo_native || exit 1;
EXTRA_BUILD_FLAGS=
if test "$BUILD_NCPUS" -gt 1; then
    EXTRA_BUILD_FLAGS="-P$BUILD_NCPUS"
fi
if test "z$BUILD_WIN32" = "z"; then
    EXTRA_BUILD_FLAGS="--dlv_switch link $EXTRA_BUILD_FLAGS"
fi

EXTRA_DMAKE_FLAGS=
if test "$ENABLE_ICECREAM" = "yes" -a "$ICECREAM_JOBS" -gt 1; then
    EXTRA_DMAKE_FLAGS="-- -P$ICECREAM_JOBS"
fi

# Automake exports MAKEFLAGS= --unix or something
# similar that gives child nmake's pain.
unset MAKEFLAGS

# Accelerate straight-through compiles by not building / using dependencies
#export nodep=1
echo "Env:"
set

cd $OOBUILDDIR/instsetoo_native || exit 1;
perl $SOLARENV/bin/build.pl --all $EXTRA_BUILD_FLAGS $EXTRA_DMAKE_FLAGS || exit 1;
OOO_REBUILD_NEEDED="no"
    
echo "Build succeeded ...!"
exit 0;
