Itms
5c1195f66a
Getting and building libraries is now clearly separated from preparing workspaces. Some disk space is automatically reclaimed and cleanup is streamlined.
88 lines
2.6 KiB
Bash
Executable File
88 lines
2.6 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
if [ "$(id -u)" = "0" ]; then
|
|
echo "Running as root will mess up file permissions. Aborting ..." 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
die()
|
|
{
|
|
echo ERROR: $*
|
|
exit 1
|
|
}
|
|
|
|
cd "$(dirname $0)"
|
|
# Now in build/workspaces/ (where we assume this script resides)
|
|
|
|
# Parse command-line options:
|
|
premake_args=""
|
|
|
|
with_system_premake5=false
|
|
enable_atlas=true
|
|
|
|
JOBS=${JOBS:="-j2"}
|
|
|
|
for i in "$@"
|
|
do
|
|
case $i in
|
|
--with-system-premake5 ) with_system_premake5=true ;;
|
|
--enable-atlas ) enable_atlas=true ;;
|
|
--disable-atlas ) enable_atlas=false ;;
|
|
-j* ) JOBS=$i ;;
|
|
# Assume any other --options are for Premake
|
|
--* ) premake_args="${premake_args} $i" ;;
|
|
esac
|
|
done
|
|
|
|
if [ "$enable_atlas" = "true" ]; then
|
|
premake_args="${premake_args} --atlas"
|
|
if [ "$(uname -s)" = "Darwin" ]; then
|
|
# Provide path to wx-config on OS X (as wxwidgets doesn't support pkgconfig)
|
|
export WX_CONFIG="${WX_CONFIG:="$(pwd)/../../libraries/osx/wxwidgets/bin/wx-config"}"
|
|
else
|
|
export WX_CONFIG="${WX_CONFIG:="wx-config"}"
|
|
fi
|
|
|
|
if [ ! -x "$(command -v $WX_CONFIG)" ]
|
|
then
|
|
echo 'WX_CONFIG must be set and valid or wx-config must be present when --atlas is passed as argument.'
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
if [ "`uname -s`" = "Darwin" ]; then
|
|
# Set minimal SDK version
|
|
export MIN_OSX_VERSION=${MIN_OSX_VERSION:="10.12"}
|
|
fi
|
|
|
|
# Now build Premake or use system's.
|
|
|
|
cd ../premake
|
|
premake_command="premake5"
|
|
|
|
if [ "$with_system_premake5" = "false" ]; then
|
|
# Build bundled premake
|
|
MAKE=${MAKE} JOBS=${JOBS} ./build.sh || die "Premake 5 build failed"
|
|
|
|
premake_command="premake5/bin/release/premake5"
|
|
fi
|
|
|
|
echo
|
|
|
|
# If we're in bash then make HOSTTYPE available to Premake, for primitive arch-detection
|
|
export HOSTTYPE="$HOSTTYPE"
|
|
# Now run Premake to create the makefiles
|
|
echo "Premake args: ${premake_args}"
|
|
if [ "`uname -s`" != "Darwin" ]; then
|
|
${premake_command} --file="premake5.lua" --outpath="../workspaces/gcc/" ${premake_args} gmake || die "Premake failed"
|
|
else
|
|
${premake_command} --file="premake5.lua" --outpath="../workspaces/gcc/" --macosx-version-min="${MIN_OSX_VERSION}" ${premake_args} gmake || die "Premake failed"
|
|
# Also generate xcode workspaces if on OS X
|
|
${premake_command} --file="premake5.lua" --outpath="../workspaces/xcode4" --macosx-version-min="${MIN_OSX_VERSION}" ${premake_args} xcode4 || die "Premake failed"
|
|
fi
|
|
|
|
# test_root.cpp gets generated by cxxtestgen and passing different arguments to premake could require a regeneration of this file.
|
|
# It doesn't depend on anything in the makefiles, so make won't notice that the prebuild command for creating test_root.cpp needs to be triggered.
|
|
# We force this by deleting the file.
|
|
rm -f ../../source/test_root.cpp
|