#!/bin/sh

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

# 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

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" = "zFedoraCore3" -o "z$DISTRO" = "zRHEL4"; 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 /bin/true 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$BUILD_WIN32" = "zyes"; 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:  \'$LANGS\'"
if test "z$BUILD_WIN32" != "zyes"; then
    echo "Gcc: "
    gcc -dumpversion
fi
bison --version
flex --version
echo 'Bootstrapping'
./bootstrap || ./bootstrap || ./bootstrap || exit 1;
echo 'Commencing main build'
cd instsetoo || 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 $BUILD_JOBS -gt 1; then
    EXTRA_DMAKE_FLAGS="-- -P$BUILD_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

# run built.pl at least ones
OOO_REBUILD_NEEDED="yes"
OOO_ICONS_VERS_TO_BUILD="$OOO_ICONS_VERS"
for ooo_icons_name in $OOO_ICONS_NAMES ; do
    ooo_icons_ver=${OOO_ICONS_VERS_TO_BUILD%% *}

    # reinstall artwork and force rebuild of resources if needed
    if (echo "${OOO_ICONS_NAMES}" | grep -q " ") &&
	test ! -d $SOLARVER/$UPD/$INPATH/bin.$ooo_icons_name/ ; then
	# reinstall artwork
	cd $TOOLSDIR/bin
 	./scale-icons ${OOBUILDDIR} --remove
	export OOO_ICONS_VER_TO_INSTALL=$ooo_icons_ver
	./install-artwork
	./fix-deps ${OOBUILDDIR}
	OOO_REBUILD_NEEDED="yes"
    fi
    
    # rebuild if needed
    if test "z$OOO_REBUILD_NEEDED" = "zyes" ; then
	cd $OOBUILDDIR/instsetoo || exit 1;
	perl $SOLARENV/bin/build.pl --all $EXTRA_BUILD_FLAGS $EXTRA_DMAKE_FLAGS || exit 1;
	OOO_REBUILD_NEEDED="no"
    fi

    # save resources if needed
    if (echo "${OOO_ICONS_NAMES}" | grep -q " ") &&
      test ! -d $SOLARVER/$UPD/$INPATH/bin.$ooo_icons_name/ ; then
	mkdir -p $SOLARVER/$UPD/$INPATH/bin.$ooo_icons_name/ || exit 1;
	for file in $SOLARVER/$UPD/$INPATH/bin/*.res ; do
	    cp -vf $file $SOLARVER/$UPD/$INPATH/bin.$ooo_icons_name/ || exit 1;
	done
    fi
    
    # remove the processed icons set from the list
    OOO_ICONS_VERS_TO_BUILD=${OOO_ICONS_VERS_TO_BUILD#* }
done
    
echo "Build succeeded ...!"
exit 0;
