2002-07-09 14:24:59 +02:00
|
|
|
#!/bin/sh
|
|
|
|
#
|
2005-10-29 18:27:43 +02:00
|
|
|
# configure [ <options> ]
|
2004-10-18 03:59:54 +02:00
|
|
|
|
2002-07-15 00:09:44 +02:00
|
|
|
# usage
|
|
|
|
#
|
|
|
|
# Prints usage.
|
|
|
|
#
|
|
|
|
usage()
|
|
|
|
{
|
|
|
|
cat << EOF
|
|
|
|
|
|
|
|
Usage: $0 <options>
|
|
|
|
options:
|
2013-07-21 04:10:48 +02:00
|
|
|
--bootstrap <haikuporter> <HaikuPorts cross repo> <HaikuPorts repo>
|
|
|
|
Prepare for a bootstrap build. No pre-built
|
|
|
|
packages will be used, instead they will be built
|
|
|
|
from the sources (in several phases).
|
|
|
|
<haikuporter> is the path to the haikuporter tool
|
|
|
|
suitable for the host platform.
|
|
|
|
<HaikuPorts cross repo> is the path to a checked
|
|
|
|
out HaikuPorts cross-compilation repository.
|
|
|
|
<HaikuPorts repo> is the path to a checked out
|
|
|
|
HaikuPorts repository.
|
2005-10-29 18:27:43 +02:00
|
|
|
--build-cross-tools <build tools dir>
|
|
|
|
Assume cross compilation. <build tools dir>
|
|
|
|
defines the location of the build tools sources.
|
|
|
|
They will be compiled and placed in the output
|
2006-10-04 01:41:59 +02:00
|
|
|
directory under "cross-tools". The HAIKU_* tools
|
|
|
|
variables will be set accordingly.
|
2005-12-06 23:45:11 +01:00
|
|
|
--build-cross-tools-gcc4 <arch> <build tools dir>
|
2005-11-18 15:17:04 +01:00
|
|
|
Like "--build-cross-tools" just that gcc 4 will
|
2006-10-04 01:41:59 +02:00
|
|
|
be used for cross-compilation. Note, that the
|
|
|
|
resulting Haiku installation built with gcc 4
|
|
|
|
will not be binary compatible with BeOS R5.
|
2005-12-06 23:45:11 +01:00
|
|
|
<arch> specifies the target architecture, either
|
2010-05-11 21:40:06 +02:00
|
|
|
"x86", "x86_64", "ppc", "m68k", "arm" or "mipsel".
|
2007-02-04 15:03:21 +01:00
|
|
|
--cross-tools-prefix <prefix>
|
|
|
|
Assume cross compilation. <prefix> should be a
|
|
|
|
path to the directory where the cross
|
|
|
|
compilation tools are located, plus the platform
|
2008-03-24 00:06:23 +01:00
|
|
|
prefix, e.g. "/path/to/tools/i586-pc-haiku-".
|
2007-02-04 15:03:21 +01:00
|
|
|
This overrides the HAIKU_* tool variables.
|
2007-05-20 19:50:11 +02:00
|
|
|
--distro-compatibility <level>
|
|
|
|
The distribution's level of compatibility with
|
|
|
|
the official Haiku distribution. The generated
|
|
|
|
files will contain the respective trademarks
|
|
|
|
accordingly.
|
|
|
|
official -- the official Haiku distribution.
|
|
|
|
compatible -- a Haiku Compatible (tm) distro.
|
|
|
|
default -- any other distro (default value).
|
2009-11-23 20:34:55 +01:00
|
|
|
--enable-multiuser Enable experimental multiuser support.
|
2007-02-04 15:03:21 +01:00
|
|
|
--help Prints out this help.
|
2013-07-03 23:19:00 +02:00
|
|
|
--host-only Configure for building tools for the build host
|
|
|
|
only. Haiku cannot be built when configured like
|
|
|
|
this.
|
2007-02-04 15:03:21 +01:00
|
|
|
--include-gpl-addons Include GPL licensed add-ons.
|
2009-08-21 19:20:23 +02:00
|
|
|
--include-patented-code Enable code that is known to implemented patented
|
|
|
|
ideas and techniques. If this option is not
|
|
|
|
specified, the resulting distribution may still
|
|
|
|
implement patented ideas and techniques. This
|
|
|
|
option only disables code that is currently known
|
|
|
|
to be problematic.
|
2010-02-25 17:13:22 +01:00
|
|
|
--include-sources Includes the source code of projects that require
|
|
|
|
either an offer of source code or a copy of the
|
|
|
|
patched sources. This is preferable when
|
|
|
|
distributing on physical mediums.
|
2008-01-25 15:48:51 +01:00
|
|
|
--include-3rdparty Include 3rdparty/ in the build system.
|
2009-11-23 20:34:55 +01:00
|
|
|
-j<n> Only relevant for --build-cross-tools and
|
|
|
|
--build-cross-tools-gcc4. Is passed on to the
|
|
|
|
make building the build tools.
|
2010-01-11 03:55:41 +01:00
|
|
|
--target=TARGET Select build target platform.
|
2010-01-04 20:36:58 +01:00
|
|
|
[default=${TARGET_PLATFORM}]
|
2004-10-25 10:44:06 +02:00
|
|
|
valid targets=r5,bone,dano,haiku
|
2010-01-11 03:55:41 +01:00
|
|
|
--update re-runs last configure invocation [must be given
|
2010-01-04 20:36:58 +01:00
|
|
|
as first option!]
|
2007-02-04 15:03:21 +01:00
|
|
|
--use-gcc-pipe Build with GCC option -pipe. Speeds up the build
|
2007-02-15 10:10:31 +01:00
|
|
|
process, but uses more memory.
|
2013-04-06 14:07:24 +02:00
|
|
|
--use-gcc-graphite Build with GCC Graphite engine for loop
|
|
|
|
optimizations. Only for gcc 4.
|
2007-08-23 00:07:03 +02:00
|
|
|
--use-32bit Use -m32 flag on 64bit host gcc compiler.
|
2013-06-07 02:27:48 +02:00
|
|
|
--use-xattr Use Linux xattr respectively *BSD extattr support
|
|
|
|
for BeOS attribute emulation. Warning: Make sure
|
|
|
|
your file system supports sufficient attribute
|
|
|
|
sizes (4 KB per file for all attributes won't
|
|
|
|
suffice).
|
|
|
|
--use-xattr-ref Use the generic BeOS attribute emulation, but use
|
|
|
|
Linux xattr respectively *BSD extattr support to
|
|
|
|
make it more robust (i.e. attribute mix-ups become
|
|
|
|
less likely).
|
2005-10-29 18:27:43 +02:00
|
|
|
|
|
|
|
environment variables:
|
|
|
|
HAIKU_AR The static library archiver. Defaults to "ar".
|
|
|
|
HAIKU_CC The compiler. Defaults to "gcc".
|
|
|
|
HAIKU_LD The linker. Defaults to "ld".
|
|
|
|
HAIKU_OBJCOPY The objcopy to be used. Defaults to "objcopy".
|
|
|
|
HAIKU_RANLIB The static library indexer. Defaults to "ranlib".
|
2009-04-13 12:50:17 +02:00
|
|
|
HAIKU_YASM The yasm assembler (x86 only).
|
2013-01-04 13:40:20 +01:00
|
|
|
HAIKU_STRIP The strip command. Defaults to "strip".
|
2005-10-29 18:27:43 +02:00
|
|
|
HAIKU_CPPFLAGS The preprocessor flags. Defaults to "".
|
|
|
|
HAIKU_CCFLAGS The C flags. Defaults to "".
|
|
|
|
HAIKU_CXXFLAGS The C++ flags. Defaults to "".
|
|
|
|
HAIKU_LDFLAGS The linker flags. Defaults to "".
|
|
|
|
HAIKU_ARFLAGS The flags passed to HAIKU_AR for archiving.
|
2009-06-29 13:01:46 +02:00
|
|
|
Defaults to "cru".
|
2005-10-29 18:27:43 +02:00
|
|
|
HAIKU_UNARFLAGS The flags passed to HAIKU_AR for unarchiving.
|
|
|
|
Defaults to "x".
|
2009-02-24 15:20:24 +01:00
|
|
|
|
2009-02-03 02:08:40 +01:00
|
|
|
Non-standard output directories:
|
2009-02-24 15:20:24 +01:00
|
|
|
By default all objects, build configuration, and other related files are
|
2009-02-03 02:08:40 +01:00
|
|
|
stored in /path/to/haiku_source/generated. To store objects in a non-default
|
2009-02-24 15:20:24 +01:00
|
|
|
location, run "../../relative/path/to/haiku_source/configure <options>" from
|
|
|
|
within your non-default location. "jam [ options ] targets" can then be run
|
|
|
|
directly inside your non-default location. Another option is to invoke "jam
|
|
|
|
[ options ] targets" from within haiku_source. This can be accomplished by
|
|
|
|
either "export HAIKU_OUTPUT_DIR=your non-default location" before invoking
|
|
|
|
jam or by creating a symlink of haiku_source/generated pointing to your
|
2009-02-03 02:08:40 +01:00
|
|
|
non-default location and running jam.
|
|
|
|
|
|
|
|
|
2002-07-15 00:09:44 +02:00
|
|
|
EOF
|
|
|
|
}
|
|
|
|
|
|
|
|
# assertparam
|
|
|
|
#
|
|
|
|
# Checks whether at least one parameter is left.
|
|
|
|
#
|
|
|
|
assertparam()
|
|
|
|
{
|
2005-12-06 23:45:11 +01:00
|
|
|
if [ $2 -lt 2 ]; then
|
2002-07-15 00:09:44 +02:00
|
|
|
echo $0: \`$1\': Parameter expected.
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2005-12-06 23:45:11 +01:00
|
|
|
# assertparams
|
|
|
|
#
|
|
|
|
# Checks whether at least a certain number of parameters is left.
|
|
|
|
#
|
|
|
|
assertparams()
|
|
|
|
{
|
|
|
|
if [ $3 -le $2 ]; then
|
|
|
|
echo $0: \`$1\': Not enough parameters.
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2013-07-21 04:10:48 +02:00
|
|
|
# absolute_path
|
|
|
|
#
|
|
|
|
# returns the absolute path of a given path.
|
|
|
|
#
|
|
|
|
absolute_path()
|
|
|
|
{
|
|
|
|
if [[ "$1" == /* ]]; then
|
|
|
|
echo "$1"
|
|
|
|
else
|
|
|
|
echo "`pwd`/$1"
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2010-08-30 18:17:36 +02:00
|
|
|
# real_path
|
|
|
|
#
|
|
|
|
# returns the realpath of a symbolic link.
|
|
|
|
#
|
|
|
|
real_path()
|
|
|
|
{
|
|
|
|
perl -MCwd=realpath -e'print realpath($ARGV[0]), "\n"' "$1"
|
|
|
|
}
|
|
|
|
|
2003-05-06 00:07:33 +02:00
|
|
|
# standard_gcc_settings
|
|
|
|
#
|
|
|
|
# Sets the variables for a GCC platform.
|
|
|
|
#
|
|
|
|
standard_gcc_settings()
|
|
|
|
{
|
2010-04-20 21:01:53 +02:00
|
|
|
if which greadlink > /dev/null 2>&1; then
|
2010-04-20 05:16:36 +02:00
|
|
|
readlink="greadlink -e"
|
2010-04-20 21:01:53 +02:00
|
|
|
elif which realpath > /dev/null 2>&1; then
|
2010-04-20 05:16:36 +02:00
|
|
|
readlink=realpath
|
2010-08-30 18:17:36 +02:00
|
|
|
elif readlink -e / > /dev/null 2>&1; then
|
2010-04-20 05:16:36 +02:00
|
|
|
readlink="readlink -e"
|
2010-08-30 18:17:36 +02:00
|
|
|
else
|
|
|
|
readlink=real_path
|
2010-04-20 04:36:56 +02:00
|
|
|
fi
|
2010-04-20 21:01:53 +02:00
|
|
|
|
2003-05-06 00:07:33 +02:00
|
|
|
# PLATFORM_LINKLIBS
|
2005-10-29 18:27:43 +02:00
|
|
|
gcclib=`$HAIKU_CC -print-libgcc-file-name`
|
2003-05-06 00:07:33 +02:00
|
|
|
gccdir=`dirname ${gcclib}`
|
2006-09-03 19:22:48 +02:00
|
|
|
|
2010-01-04 20:36:58 +01:00
|
|
|
HAIKU_GCC_RAW_VERSION=`$HAIKU_CC -dumpversion`
|
|
|
|
HAIKU_GCC_MACHINE=`$HAIKU_CC -dumpmachine`
|
2013-04-06 13:42:24 +02:00
|
|
|
if [ "$HAIKU_USE_GCC_GRAPHITE" != 0 ]; then
|
|
|
|
UNUSED=`echo "int main() {}" | $HAIKU_CC -xc -c -floop-block - 2>&1`
|
|
|
|
if [ $? != 0 ]; then
|
|
|
|
echo "GCC Graphite loop optimizations cannot be used"
|
|
|
|
HAIKU_USE_GCC_GRAPHITE=0
|
|
|
|
fi
|
|
|
|
fi
|
2007-08-23 00:07:03 +02:00
|
|
|
|
2005-10-29 18:27:43 +02:00
|
|
|
HAIKU_GCC_LIB_DIR=${gccdir}
|
|
|
|
HAIKU_GCC_LIBGCC=${gccdir}/libgcc.a
|
|
|
|
HAIKU_GCC_GLUE_CODE="crtbegin.o crtend.o"
|
2009-01-28 03:08:39 +01:00
|
|
|
HAIKU_GCC_HEADERS_DIR="${gccdir}/include
|
|
|
|
${gccdir}/include-fixed"
|
2005-12-09 15:08:20 +01:00
|
|
|
HAIKU_GCC_LIBGCC_OBJECTS=`$HAIKU_AR t ${HAIKU_GCC_LIBGCC} | grep -v eabi.o`
|
|
|
|
# Note: We filter out eabi.o. It's present in gcc's libgcc for PPC and
|
|
|
|
# neither needed nor wanted.
|
2005-11-12 23:58:54 +01:00
|
|
|
|
2013-07-20 01:01:21 +02:00
|
|
|
# determine architecture from machine triple
|
|
|
|
case $HAIKU_GCC_MACHINE in
|
|
|
|
arm-*) HAIKU_CPU=arm;;
|
|
|
|
i?86-*) HAIKU_CPU=x86;;
|
|
|
|
m68k-*) HAIKU_CPU=m68k;;
|
|
|
|
mipsel-*) HAIKU_CPU=mipsel;;
|
|
|
|
powerpc-*) HAIKU_CPU=ppc;;
|
|
|
|
x86_64-*) HAIKU_CPU=x86_64;;
|
|
|
|
*)
|
|
|
|
echo "Unsupported gcc target machine: $HAIKU_GCC_MACHINE" >&2
|
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
HAIKU_PACKAGING_ARCH=$HAIKU_CPU
|
|
|
|
|
2010-01-04 20:36:58 +01:00
|
|
|
case $HAIKU_GCC_RAW_VERSION in
|
2005-11-12 23:58:54 +01:00
|
|
|
4.*)
|
2006-09-03 19:22:48 +02:00
|
|
|
# for gcc 4 we use the libstdc++ and libsupc++ that come with the
|
|
|
|
# compiler
|
2010-01-04 20:36:58 +01:00
|
|
|
HAIKU_STATIC_LIBSTDCXX=`$HAIKU_CC -print-file-name=libstdc++.a`
|
|
|
|
HAIKU_SHARED_LIBSTDCXX=`$HAIKU_CC -print-file-name=libstdc++.so`
|
|
|
|
HAIKU_STATIC_LIBSUPCXX=`$HAIKU_CC -print-file-name=libsupc++.a`
|
|
|
|
HAIKU_SHARED_LIBSUPCXX=`$HAIKU_CC -print-file-name=libsupc++.so`
|
2009-01-28 23:24:13 +01:00
|
|
|
|
2012-08-16 18:38:01 +02:00
|
|
|
# If the architecture has separate runtime libraries for the
|
|
|
|
# kernel, use them.
|
|
|
|
HAIKU_KERNEL_LIBGCC=`$HAIKU_CC -print-file-name=libgcc-kernel.a`
|
|
|
|
if [ $HAIKU_KERNEL_LIBGCC = libgcc-kernel.a ]; then
|
|
|
|
HAIKU_KERNEL_LIBGCC=$HAIKU_GCC_LIBGCC
|
|
|
|
fi
|
|
|
|
HAIKU_KERNEL_LIBSUPCXX=`$HAIKU_CC -print-file-name=libsupc++-kernel.a`
|
|
|
|
if [ $HAIKU_KERNEL_LIBSUPCXX = libsupc++-kernel.a ]; then
|
|
|
|
HAIKU_KERNEL_LIBSUPCXX=$HAIKU_STATIC_LIBSUPCXX
|
|
|
|
fi
|
|
|
|
|
2009-01-28 23:24:13 +01:00
|
|
|
local headers
|
2010-01-04 20:36:58 +01:00
|
|
|
if [ -d $gccdir/../../../../$HAIKU_GCC_MACHINE/include/c++/$HAIKU_GCC_RAW_VERSION ]; then
|
|
|
|
headers=$gccdir/../../../../$HAIKU_GCC_MACHINE/include/c++/$HAIKU_GCC_RAW_VERSION
|
2009-01-28 23:24:13 +01:00
|
|
|
else
|
2010-01-04 20:36:58 +01:00
|
|
|
headers=$gccdir/../../../../include/c++/$HAIKU_GCC_RAW_VERSION
|
2009-01-28 23:24:13 +01:00
|
|
|
fi
|
|
|
|
|
2010-01-04 20:36:58 +01:00
|
|
|
HAIKU_CXX_HEADERS_DIR=$headers
|
|
|
|
for d in $HAIKU_GCC_MACHINE backward ext; do
|
2006-09-17 00:25:49 +02:00
|
|
|
# Note: We need the line break, otherwise the line might become
|
|
|
|
# too long for jam (512 bytes max).
|
2010-01-04 20:36:58 +01:00
|
|
|
HAIKU_CXX_HEADERS_DIR="$HAIKU_CXX_HEADERS_DIR
|
2006-09-17 00:25:49 +02:00
|
|
|
$headers/$d"
|
|
|
|
done
|
|
|
|
|
2010-04-19 18:29:23 +02:00
|
|
|
# Unset the HAIKU_{SHARED,STATIC}_LIB{STD,SUP}CXX variables, if the
|
|
|
|
# compiler didn't give us actual file names. Otherwise resolve
|
|
|
|
# symlinks to avoid problems when copying the libraries to the
|
|
|
|
# image.
|
2006-09-17 00:25:49 +02:00
|
|
|
|
2010-01-04 20:36:58 +01:00
|
|
|
if [ $HAIKU_STATIC_LIBSTDCXX = libstdc++.a ]; then
|
|
|
|
HAIKU_STATIC_LIBSTDCXX=
|
2010-04-19 18:29:23 +02:00
|
|
|
else
|
2010-04-20 05:16:36 +02:00
|
|
|
HAIKU_STATIC_LIBSTDCXX=`$readlink $HAIKU_STATIC_LIBSTDCXX`
|
2005-11-12 23:58:54 +01:00
|
|
|
fi
|
2010-04-19 18:29:23 +02:00
|
|
|
|
2010-02-03 21:37:23 +01:00
|
|
|
if [ $HAIKU_SHARED_LIBSTDCXX = libstdc++.so ]; then
|
|
|
|
HAIKU_SHARED_LIBSTDCXX=
|
2010-04-19 18:29:23 +02:00
|
|
|
else
|
2010-04-20 05:16:36 +02:00
|
|
|
HAIKU_SHARED_LIBSTDCXX=`$readlink $HAIKU_SHARED_LIBSTDCXX`
|
2010-02-03 21:37:23 +01:00
|
|
|
fi
|
2010-04-19 18:29:23 +02:00
|
|
|
|
2010-01-04 20:36:58 +01:00
|
|
|
if [ $HAIKU_STATIC_LIBSUPCXX = libsupc++.a ]; then
|
|
|
|
HAIKU_STATIC_LIBSUPCXX=
|
2010-04-19 18:29:23 +02:00
|
|
|
else
|
2010-04-20 05:16:36 +02:00
|
|
|
HAIKU_STATIC_LIBSUPCXX=`$readlink $HAIKU_STATIC_LIBSUPCXX`
|
2005-11-14 14:47:52 +01:00
|
|
|
fi
|
2010-04-19 18:29:23 +02:00
|
|
|
|
2010-02-03 21:37:23 +01:00
|
|
|
if [ $HAIKU_SHARED_LIBSUPCXX = libsupc++.so ]; then
|
|
|
|
HAIKU_SHARED_LIBSUPCXX=
|
2010-04-19 18:29:23 +02:00
|
|
|
else
|
2010-04-20 05:16:36 +02:00
|
|
|
HAIKU_SHARED_LIBSUPCXX=`$readlink $HAIKU_SHARED_LIBSUPCXX`
|
2010-02-03 21:37:23 +01:00
|
|
|
fi
|
2013-07-20 01:01:21 +02:00
|
|
|
;;
|
2006-11-16 20:52:27 +01:00
|
|
|
2.9*)
|
2006-09-03 19:22:48 +02:00
|
|
|
# check for correct (most up-to-date) legacy compiler and complain
|
|
|
|
# if an older one is installed
|
2010-01-04 20:36:58 +01:00
|
|
|
if [ $HAIKU_GCC_RAW_VERSION != $haikuRequiredLegacyGCCVersion ]; then
|
2006-09-03 19:22:48 +02:00
|
|
|
echo "GCC version $haikuRequiredLegacyGCCVersion is required!";
|
|
|
|
echo "Please download it from www.haiku-os.org...";
|
|
|
|
exit 1;
|
|
|
|
fi
|
2012-08-16 18:38:01 +02:00
|
|
|
|
|
|
|
HAIKU_KERNEL_LIBGCC=$HAIKU_GCC_LIBGCC
|
|
|
|
HAIKU_KERNEL_LIBSUPCXX=
|
2013-07-20 01:01:21 +02:00
|
|
|
HAIKU_PACKAGING_ARCH=x86_gcc2
|
|
|
|
;;
|
2005-11-12 23:58:54 +01:00
|
|
|
esac
|
2012-05-26 22:47:27 +02:00
|
|
|
|
2012-08-18 20:48:55 +02:00
|
|
|
case $HAIKU_GCC_MACHINE in
|
|
|
|
x86_64-*)
|
|
|
|
# Boot loader is 32-bit, need the 32-bit libs.
|
|
|
|
HAIKU_BOOT_LIBGCC=`$HAIKU_CC -m32 -print-libgcc-file-name`
|
|
|
|
HAIKU_BOOT_LIBSUPCXX=`$HAIKU_CC -m32 -print-file-name=libsupc++.a`
|
2013-07-20 01:01:21 +02:00
|
|
|
;;
|
2012-08-18 20:48:55 +02:00
|
|
|
*)
|
|
|
|
HAIKU_BOOT_LIBGCC=$HAIKU_GCC_LIBGCC
|
|
|
|
HAIKU_BOOT_LIBSUPCXX=$HAIKU_STATIC_LIBSUPCXX
|
2013-07-20 01:01:21 +02:00
|
|
|
;;
|
2005-11-12 23:58:54 +01:00
|
|
|
esac
|
2005-10-29 18:27:43 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
# set_default_value
|
|
|
|
#
|
|
|
|
# Set the value for a variable, if no value is set yet.
|
|
|
|
#
|
|
|
|
set_default_value()
|
|
|
|
{
|
2006-01-11 09:36:21 +01:00
|
|
|
eval "$1=\${$1-$2}"
|
2005-10-29 18:27:43 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
# get_build_tool_path
|
|
|
|
#
|
|
|
|
# Gets a usable absolute path of a build tool.
|
|
|
|
#
|
|
|
|
get_build_tool_path()
|
|
|
|
{
|
|
|
|
local var="HAIKU_$1"
|
|
|
|
local tool=$2
|
|
|
|
local path="${crossToolsPrefix}$tool"
|
2007-08-23 00:07:03 +02:00
|
|
|
|
2005-10-29 18:27:43 +02:00
|
|
|
if [ -f "$path" ]; then
|
|
|
|
# get absolute path
|
2008-04-12 04:40:10 +02:00
|
|
|
local oldPwd="`pwd`"
|
|
|
|
cd "`dirname "$path"`"
|
|
|
|
path="`pwd`/`basename "$path"`"
|
2005-10-29 18:27:43 +02:00
|
|
|
cd $oldPwd
|
|
|
|
else
|
2010-04-20 04:18:54 +02:00
|
|
|
which "$path" > /dev/null 2>&1 || {
|
2005-10-29 18:27:43 +02:00
|
|
|
echo "Build tool \"$path\" not found." >&2
|
|
|
|
exit 1
|
|
|
|
}
|
2004-07-05 20:35:35 +02:00
|
|
|
fi
|
2007-08-23 00:07:03 +02:00
|
|
|
|
2005-10-29 18:27:43 +02:00
|
|
|
eval "$var=$path"
|
2003-05-06 00:07:33 +02:00
|
|
|
}
|
|
|
|
|
2005-10-29 18:27:43 +02:00
|
|
|
# get cwd and the source directory
|
|
|
|
currentDir=`pwd`
|
2006-08-03 19:57:34 +02:00
|
|
|
cd `dirname "$0"`
|
2005-10-29 18:27:43 +02:00
|
|
|
sourceDir=`pwd`
|
2006-08-03 19:57:34 +02:00
|
|
|
cd "$currentDir"
|
2005-10-29 18:27:43 +02:00
|
|
|
|
2010-01-03 04:05:12 +01:00
|
|
|
# backup the passed arguments
|
|
|
|
configureArgs="$@"
|
|
|
|
|
2010-01-04 20:36:58 +01:00
|
|
|
# internal default parameter values
|
2002-07-15 00:09:44 +02:00
|
|
|
#
|
2002-07-09 14:24:59 +02:00
|
|
|
platform=`uname`
|
2009-02-24 15:20:24 +01:00
|
|
|
platformMachine=`uname -m`
|
2005-10-29 18:27:43 +02:00
|
|
|
crossToolsPrefix=
|
|
|
|
buildCrossTools=
|
2005-11-18 15:17:04 +01:00
|
|
|
buildCrossToolsScript="$sourceDir/build/scripts/build_cross_tools"
|
2005-12-06 23:45:11 +01:00
|
|
|
buildCrossToolsMachine=
|
2009-11-23 20:34:55 +01:00
|
|
|
buildCrossToolsJobs=
|
2010-01-04 20:36:58 +01:00
|
|
|
|
|
|
|
# exported (BuildSetup) default parameter values
|
|
|
|
#
|
|
|
|
HAIKU_GCC_RAW_VERSION=
|
2013-07-20 01:01:21 +02:00
|
|
|
HAIKU_CPU=x86
|
|
|
|
HAIKU_PACKAGING_ARCH=x86_gcc2
|
2010-01-04 20:36:58 +01:00
|
|
|
HAIKU_GCC_MACHINE=i586-pc-haiku
|
|
|
|
HAIKU_STATIC_LIBSTDCXX=
|
|
|
|
HAIKU_SHARED_LIBSTDCXX=
|
|
|
|
HAIKU_STATIC_LIBSUPCXX=
|
|
|
|
HAIKU_SHARED_LIBSUPCXX=
|
|
|
|
HAIKU_CXX_HEADERS_DIR=
|
|
|
|
HOST_GCC_RAW_VERSION=`gcc -dumpversion`
|
|
|
|
HOST_GCC_MACHINE=`gcc -dumpmachine`
|
|
|
|
HAIKU_INCLUDE_GPL_ADDONS=0
|
|
|
|
HAIKU_INCLUDE_PATENTED_CODE=0
|
2010-02-25 17:13:22 +01:00
|
|
|
HAIKU_INCLUDE_SOURCES=0
|
2010-01-04 20:36:58 +01:00
|
|
|
HAIKU_INCLUDE_3RDPARTY=0
|
|
|
|
HAIKU_ENABLE_MULTIUSER=0
|
|
|
|
HAIKU_DISTRO_COMPATIBILITY=default
|
|
|
|
TARGET_PLATFORM=haiku
|
|
|
|
HAIKU_USE_GCC_PIPE=0
|
2013-04-06 13:42:24 +02:00
|
|
|
HAIKU_USE_GCC_GRAPHITE=0
|
2010-02-03 22:21:39 +01:00
|
|
|
HAIKU_HOST_USE_32BIT=0
|
|
|
|
HAIKU_HOST_USE_XATTR=0
|
2013-06-07 02:27:48 +02:00
|
|
|
HAIKU_HOST_USE_XATTR_REF=0
|
2013-07-03 23:19:00 +02:00
|
|
|
HAIKU_HOST_BUILD_ONLY=0
|
2010-01-04 20:36:58 +01:00
|
|
|
HOST_GCC_LD=`gcc -print-prog-name=ld`
|
|
|
|
HOST_GCC_OBJCOPY=`gcc -print-prog-name=objcopy`
|
2010-01-07 23:08:12 +01:00
|
|
|
SFDISK_BINARY=sfdisk
|
|
|
|
HOST_SFDISK=$SFDISK_BINARY
|
2013-07-06 02:17:15 +02:00
|
|
|
HOST_SHA256=
|
2013-07-21 04:10:48 +02:00
|
|
|
HOST_HAIKU_PORTER=
|
|
|
|
HAIKU_PORTS=
|
|
|
|
HAIKU_PORTS_CROSS=
|
2013-07-06 02:17:15 +02:00
|
|
|
|
2013-07-06 12:19:46 +02:00
|
|
|
if sha256sum < /dev/null > /dev/null 2>&1; then
|
2013-07-06 02:17:15 +02:00
|
|
|
HOST_SHA256=sha256sum
|
2013-07-06 12:19:46 +02:00
|
|
|
elif sha256 < /dev/null > /dev/null 2>&1; then
|
2013-07-06 02:17:15 +02:00
|
|
|
HOST_SHA256="sha256 -q"
|
|
|
|
else
|
|
|
|
echo "Error: Neither sha256sum nor sha256 seem to be available!" >&2
|
|
|
|
exit 1
|
|
|
|
fi
|
2005-10-29 18:27:43 +02:00
|
|
|
|
2013-07-15 17:32:44 +02:00
|
|
|
haikuRequiredLegacyGCCVersion="2.95.3-haiku-2013_07_15"
|
2008-04-12 04:40:10 +02:00
|
|
|
export haikuRequiredLegacyGCCVersion
|
2006-09-16 17:40:36 +02:00
|
|
|
# version of legacy gcc required to build haiku
|
|
|
|
|
2005-10-29 18:27:43 +02:00
|
|
|
set_default_value HAIKU_AR ar
|
|
|
|
set_default_value HAIKU_CC gcc
|
|
|
|
set_default_value HAIKU_LD ld
|
|
|
|
set_default_value HAIKU_OBJCOPY objcopy
|
|
|
|
set_default_value HAIKU_RANLIB ranlib
|
2012-07-19 18:53:46 +02:00
|
|
|
set_default_value HAIKU_ELFEDIT elfedit
|
2009-04-13 12:50:17 +02:00
|
|
|
set_default_value HAIKU_YASM yasm
|
2013-01-04 13:40:20 +01:00
|
|
|
set_default_value HAIKU_STRIP strip
|
2005-10-29 18:27:43 +02:00
|
|
|
set_default_value HAIKU_CPPFLAGS ""
|
|
|
|
set_default_value HAIKU_CCFLAGS ""
|
|
|
|
set_default_value HAIKU_CXXFLAGS ""
|
|
|
|
set_default_value HAIKU_LDFLAGS ""
|
2009-06-29 13:01:46 +02:00
|
|
|
set_default_value HAIKU_ARFLAGS cru
|
2005-10-29 18:27:43 +02:00
|
|
|
set_default_value HAIKU_UNARFLAGS x
|
2005-06-01 16:33:46 +02:00
|
|
|
|
2010-01-04 20:36:58 +01:00
|
|
|
# determine output directory
|
|
|
|
if [ "$currentDir" = "$sourceDir" ]; then
|
|
|
|
outputDir=$currentDir/generated
|
|
|
|
else
|
|
|
|
outputDir=$currentDir
|
|
|
|
fi
|
|
|
|
buildOutputDir="$outputDir/build"
|
|
|
|
HAIKU_BUILD_ATTRIBUTES_DIR="$outputDir/attributes"
|
|
|
|
buildConfigFile="$buildOutputDir/BuildConfig"
|
|
|
|
|
|
|
|
# check for update request
|
|
|
|
if [ "$1" = "--update" ]; then
|
|
|
|
if ! [ -e "$buildConfigFile" ]; then
|
|
|
|
echo $0 --update: \'$buildConfigFile\' not found - updating not possible.
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
if ! type perl >/dev/null 2>&1; then
|
|
|
|
echo $0 --update: \'perl\' not found - updating not possible.
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
# convert BuildConfig from jam format to shell format and evaluate it
|
|
|
|
shellConfigFile="${buildConfigFile}.shell"
|
|
|
|
perl "$sourceDir/build/scripts/convert_build_config_to_shell_format.pl" \
|
|
|
|
<"$buildConfigFile" >"$shellConfigFile"
|
|
|
|
. "$shellConfigFile"
|
|
|
|
rm "$shellConfigFile"
|
|
|
|
shift
|
|
|
|
fi
|
|
|
|
|
2002-07-15 00:09:44 +02:00
|
|
|
# parse parameters
|
|
|
|
#
|
2005-12-06 23:45:11 +01:00
|
|
|
while [ $# -gt 0 ] ; do
|
2002-07-15 00:09:44 +02:00
|
|
|
case "$1" in
|
2013-07-21 04:10:48 +02:00
|
|
|
--bootstrap)
|
|
|
|
assertparams "$1" 3 $#
|
|
|
|
HOST_HAIKU_PORTER="`absolute_path $2`"
|
|
|
|
HAIKU_PORTS_CROSS="`absolute_path $3`"
|
|
|
|
HAIKU_PORTS="`absolute_path $4`"
|
|
|
|
shift 4
|
|
|
|
;;
|
2006-10-04 01:41:59 +02:00
|
|
|
--build-cross-tools) assertparam "$1" $#; buildCrossTools=$2; shift 2;;
|
2008-05-18 01:47:39 +02:00
|
|
|
--build-cross-tools-gcc4)
|
|
|
|
assertparams "$1" 2 $#
|
|
|
|
buildCrossTools=$3
|
|
|
|
buildCrossToolsScript="${buildCrossToolsScript}_gcc4"
|
|
|
|
case "$2" in
|
2010-01-04 20:36:58 +01:00
|
|
|
x86) HAIKU_GCC_MACHINE=i586-pc-haiku;;
|
2013-07-20 01:01:21 +02:00
|
|
|
x86_64) HAIKU_GCC_MACHINE=x86_64-unknown-haiku;;
|
|
|
|
ppc) HAIKU_GCC_MACHINE=powerpc-apple-haiku;;
|
|
|
|
m68k) HAIKU_GCC_MACHINE=m68k-unknown-haiku;;
|
|
|
|
arm) HAIKU_GCC_MACHINE=arm-unknown-haiku;;
|
2013-07-21 04:10:48 +02:00
|
|
|
mipsel) HAIKU_GCC_MACHINE=mipsel-unknown-haiku;;
|
2008-05-18 01:47:39 +02:00
|
|
|
*) echo "Unsupported target architecture: $2"
|
|
|
|
exit 1;;
|
|
|
|
esac
|
2010-01-04 20:36:58 +01:00
|
|
|
buildCrossToolsMachine=$HAIKU_GCC_MACHINE
|
2008-05-18 01:47:39 +02:00
|
|
|
shift 3
|
|
|
|
;;
|
|
|
|
--cross-tools-prefix)
|
|
|
|
assertparam "$1" $#
|
|
|
|
crossToolsPrefix=$2
|
|
|
|
shift 2
|
|
|
|
;;
|
2007-05-20 19:50:11 +02:00
|
|
|
--distro-compatibility)
|
2008-05-18 01:47:39 +02:00
|
|
|
assertparam "$1" $#
|
2010-01-04 20:36:58 +01:00
|
|
|
HAIKU_DISTRO_COMPATIBILITY=$2
|
|
|
|
case "$HAIKU_DISTRO_COMPATIBILITY" in
|
2008-05-18 01:47:39 +02:00
|
|
|
official) ;;
|
|
|
|
compatible) ;;
|
|
|
|
default) ;;
|
|
|
|
*) echo "Invalid distro compatibility" \
|
2010-01-04 20:36:58 +01:00
|
|
|
"level: $HAIKU_DISTRO_COMPATIBILITY"
|
2008-05-18 01:47:39 +02:00
|
|
|
exit 1;;
|
|
|
|
esac
|
|
|
|
shift 2
|
|
|
|
;;
|
2010-01-04 20:36:58 +01:00
|
|
|
--enable-multiuser) HAIKU_ENABLE_MULTIUSER=1; shift 1;;
|
2009-11-23 20:34:55 +01:00
|
|
|
--help | -h) usage; exit 0;;
|
2013-07-03 23:19:00 +02:00
|
|
|
--host-only) HAIKU_HOST_BUILD_ONLY=1; shift 1;;
|
2010-01-04 20:36:58 +01:00
|
|
|
--include-gpl-addons) HAIKU_INCLUDE_GPL_ADDONS=1; shift 1;;
|
|
|
|
--include-patented-code) HAIKU_INCLUDE_PATENTED_CODE=1; shift 1;;
|
2010-02-25 17:13:22 +01:00
|
|
|
--include-sources) HAIKU_INCLUDE_SOURCES=1; shift 1;;
|
2010-01-04 20:36:58 +01:00
|
|
|
--include-3rdparty) HAIKU_INCLUDE_3RDPARTY=1; shift 1;;
|
2009-11-23 20:34:55 +01:00
|
|
|
-j*) buildCrossToolsJobs="$1"; shift 1;;
|
2010-01-04 20:36:58 +01:00
|
|
|
--target=*) TARGET_PLATFORM=`echo $1 | cut -d'=' -f2-`; shift 1;;
|
|
|
|
--use-gcc-pipe) HAIKU_USE_GCC_PIPE=1; shift 1;;
|
2013-04-06 13:42:24 +02:00
|
|
|
--use-gcc-graphite) HAIKU_USE_GCC_GRAPHITE=1; shift 1;;
|
2010-02-03 22:21:39 +01:00
|
|
|
--use-32bit) HAIKU_HOST_USE_32BIT=1; shift 1;;
|
|
|
|
--use-xattr) HAIKU_HOST_USE_XATTR=1; shift 1;;
|
2013-06-07 02:27:48 +02:00
|
|
|
--use-xattr-ref) HAIKU_HOST_USE_XATTR_REF=1; shift 1;;
|
2002-07-15 00:09:44 +02:00
|
|
|
*) echo Invalid argument: \`$1\'; exit 1;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
2005-10-31 01:00:27 +01:00
|
|
|
# detect the build platform
|
2005-10-29 18:27:43 +02:00
|
|
|
case "${platform}" in
|
2010-01-04 20:36:58 +01:00
|
|
|
Darwin) HOST_PLATFORM=darwin ;;
|
|
|
|
FreeBSD) HOST_PLATFORM=freebsd
|
2010-01-07 23:08:12 +01:00
|
|
|
SFDISK_BINARY=sfdisk-linux
|
2010-02-03 22:21:39 +01:00
|
|
|
if [ "$HAIKU_HOST_USE_32BIT" = 1 ] ; then
|
2009-02-24 15:20:24 +01:00
|
|
|
echo Unsupported platform: FreeBSD ${platformMachine}
|
|
|
|
exit 1
|
2009-02-24 15:14:40 +01:00
|
|
|
fi ;;
|
2010-01-04 20:36:58 +01:00
|
|
|
Haiku) HOST_PLATFORM=haiku_host ;;
|
|
|
|
Linux) HOST_PLATFORM=linux ;;
|
|
|
|
OpenBSD) HOST_PLATFORM=openbsd ;;
|
|
|
|
SunOS) HOST_PLATFORM=sunos ;;
|
|
|
|
CYGWIN_NT-*) HOST_PLATFORM=cygwin ;;
|
2005-10-29 18:27:43 +02:00
|
|
|
*) echo Unsupported platform: ${platform}
|
|
|
|
exit 1 ;;
|
2005-09-02 15:23:51 +02:00
|
|
|
esac
|
2002-07-09 14:24:59 +02:00
|
|
|
|
2010-01-07 23:08:12 +01:00
|
|
|
# check common locations for sfdisk
|
|
|
|
for sfdiskDir in /sbin /usr/sbin /usr/local/sbin ; do
|
|
|
|
if [ -e ${sfdiskDir}/${SFDISK_BINARY} ]; then
|
|
|
|
HOST_SFDISK=${sfdiskDir}/${SFDISK_BINARY}
|
|
|
|
fi
|
2010-01-11 03:55:41 +01:00
|
|
|
done
|
2010-01-07 23:08:12 +01:00
|
|
|
|
2012-07-10 20:33:39 +02:00
|
|
|
# check for case-sensitive filesystem
|
|
|
|
mkdir haikuCaseTest 2>/dev/null
|
|
|
|
mkdir haikucasetest 2>/dev/null
|
|
|
|
caseInsensitive=$?
|
2012-07-11 18:41:52 +02:00
|
|
|
rmdir haikuCaseTest haikucasetest 2>/dev/null
|
2012-07-10 20:33:39 +02:00
|
|
|
if [ $caseInsensitive != 0 ]; then
|
|
|
|
echo "You need a case-sensitive file-system to build Haiku."
|
|
|
|
if [ $HOST_PLATFORM = "darwin" ]; then
|
|
|
|
echo "You can create a case-sensitive disk image using Disk Utility and use"
|
|
|
|
echo "it to store the Haiku sources on."
|
2009-05-30 02:38:43 +02:00
|
|
|
fi
|
2012-07-10 20:33:39 +02:00
|
|
|
exit 1
|
2009-05-30 02:38:43 +02:00
|
|
|
fi
|
|
|
|
|
2005-10-29 18:27:43 +02:00
|
|
|
# create output directory
|
2006-08-03 19:57:34 +02:00
|
|
|
mkdir -p "$buildOutputDir" || exit 1
|
2005-10-29 18:27:43 +02:00
|
|
|
|
2013-07-03 23:19:00 +02:00
|
|
|
if [ "$HAIKU_HOST_BUILD_ONLY" = 1 ]; then
|
|
|
|
invalidCommand=$sourceDir/build/scripts/host_build_only
|
|
|
|
HAIKU_AR=$invalidCommand
|
|
|
|
HAIKU_CC=$invalidCommand
|
|
|
|
HAIKU_LD=$invalidCommand
|
|
|
|
HAIKU_OBJCOPY=$invalidCommand
|
|
|
|
HAIKU_RANLIB=$invalidCommand
|
|
|
|
HAIKU_ELFEDIT=$invalidCommand
|
|
|
|
HAIKU_YASM=$invalidCommand
|
|
|
|
HAIKU_STRIP=$invalidCommand
|
|
|
|
else
|
|
|
|
# build cross tools from sources
|
|
|
|
if [ -n "$buildCrossTools" ]; then
|
|
|
|
export HAIKU_USE_GCC_GRAPHITE
|
|
|
|
"$buildCrossToolsScript" $buildCrossToolsMachine "$sourceDir" \
|
|
|
|
"$buildCrossTools" "$outputDir" $buildCrossToolsJobs || exit 1
|
|
|
|
crossToolsPrefix="$outputDir/cross-tools/bin/${HAIKU_GCC_MACHINE}-"
|
|
|
|
fi
|
2005-10-29 18:27:43 +02:00
|
|
|
|
2013-07-03 23:19:00 +02:00
|
|
|
# cross tools
|
|
|
|
if [ -n "$crossToolsPrefix" ]; then
|
|
|
|
get_build_tool_path AR ar
|
|
|
|
get_build_tool_path CC gcc
|
|
|
|
get_build_tool_path LD ld
|
|
|
|
get_build_tool_path OBJCOPY objcopy
|
|
|
|
get_build_tool_path RANLIB ranlib
|
|
|
|
get_build_tool_path STRIP strip
|
|
|
|
fi
|
2005-10-29 18:27:43 +02:00
|
|
|
|
2013-07-03 23:19:00 +02:00
|
|
|
# prepare gcc settings
|
|
|
|
standard_gcc_settings
|
2005-10-29 18:27:43 +02:00
|
|
|
|
2013-07-03 23:19:00 +02:00
|
|
|
# cross tools for gcc4 builds
|
|
|
|
if [ -n "$crossToolsPrefix" ]; then
|
|
|
|
case $HAIKU_GCC_RAW_VERSION in
|
|
|
|
4.*)
|
|
|
|
get_build_tool_path ELFEDIT elfedit
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
fi
|
|
|
|
|
2013-07-25 00:31:25 +02:00
|
|
|
# check whether the Haiku compiler really targets Haiku
|
2013-07-03 23:19:00 +02:00
|
|
|
case "$HAIKU_GCC_MACHINE" in
|
|
|
|
*-*-haiku) ;;
|
|
|
|
*) echo The compiler specified as Haiku target compiler is not a valid \
|
|
|
|
Haiku cross-compiler. Please see ReadMe.cross-compile. >&2
|
|
|
|
echo compiler: $HAIKU_CC
|
|
|
|
echo compiler is configured for target: $HAIKU_GCC_MACHINE
|
|
|
|
exit 1 ;;
|
2012-07-30 09:25:16 +02:00
|
|
|
esac
|
2005-10-29 18:27:43 +02:00
|
|
|
fi
|
|
|
|
|
2002-07-09 14:24:59 +02:00
|
|
|
# Generate BuildConfig
|
2010-01-04 20:36:58 +01:00
|
|
|
cat << EOF > "$buildConfigFile"
|
2002-07-09 14:24:59 +02:00
|
|
|
# BuildConfig
|
2010-02-03 22:23:52 +01:00
|
|
|
# Note: This file has been automatically generated by configure with the
|
|
|
|
# following arguments:
|
2010-01-03 04:05:12 +01:00
|
|
|
# ${configureArgs}
|
2002-07-09 14:24:59 +02:00
|
|
|
|
2010-01-04 20:36:58 +01:00
|
|
|
TARGET_PLATFORM ?= "${TARGET_PLATFORM}" ;
|
|
|
|
HOST_PLATFORM ?= "${HOST_PLATFORM}" ;
|
|
|
|
|
|
|
|
HAIKU_INCLUDE_GPL_ADDONS ?= "${HAIKU_INCLUDE_GPL_ADDONS}" ;
|
|
|
|
HAIKU_INCLUDE_PATENTED_CODE ?= "${HAIKU_INCLUDE_PATENTED_CODE}" ;
|
2010-02-25 17:13:22 +01:00
|
|
|
HAIKU_INCLUDE_SOURCES ?= "${HAIKU_INCLUDE_SOURCES}" ;
|
2010-01-04 20:36:58 +01:00
|
|
|
HAIKU_INCLUDE_3RDPARTY ?= "${HAIKU_INCLUDE_3RDPARTY}" ;
|
|
|
|
HAIKU_ENABLE_MULTIUSER ?= "${HAIKU_ENABLE_MULTIUSER}" ;
|
|
|
|
HAIKU_DISTRO_COMPATIBILITY ?= "${HAIKU_DISTRO_COMPATIBILITY}" ;
|
|
|
|
HAIKU_USE_GCC_PIPE ?= "${HAIKU_USE_GCC_PIPE}" ;
|
2013-04-06 13:42:24 +02:00
|
|
|
HAIKU_USE_GCC_GRAPHITE ?= "${HAIKU_USE_GCC_GRAPHITE}" ;
|
2010-02-03 22:21:39 +01:00
|
|
|
HAIKU_HOST_USE_32BIT ?= "${HAIKU_HOST_USE_32BIT}" ;
|
|
|
|
HAIKU_HOST_USE_XATTR ?= "${HAIKU_HOST_USE_XATTR}" ;
|
2013-06-07 02:27:48 +02:00
|
|
|
HAIKU_HOST_USE_XATTR_REF ?= "${HAIKU_HOST_USE_XATTR_REF}" ;
|
2013-07-03 23:19:00 +02:00
|
|
|
HAIKU_HOST_BUILD_ONLY ?= "${HAIKU_HOST_BUILD_ONLY}" ;
|
2010-01-04 20:36:58 +01:00
|
|
|
|
|
|
|
HAIKU_GCC_RAW_VERSION ?= ${HAIKU_GCC_RAW_VERSION} ;
|
|
|
|
HAIKU_GCC_MACHINE ?= ${HAIKU_GCC_MACHINE} ;
|
2007-05-20 19:50:11 +02:00
|
|
|
HAIKU_GCC_LIB_DIR ?= ${HAIKU_GCC_LIB_DIR} ;
|
|
|
|
HAIKU_GCC_HEADERS_DIR ?= ${HAIKU_GCC_HEADERS_DIR} ;
|
|
|
|
HAIKU_GCC_LIBGCC ?= ${HAIKU_GCC_LIBGCC} ;
|
2005-10-29 18:27:43 +02:00
|
|
|
|
2013-07-20 01:01:21 +02:00
|
|
|
HAIKU_CPU ?= ${HAIKU_CPU} ;
|
|
|
|
HAIKU_PACKAGING_ARCH ?= ${HAIKU_PACKAGING_ARCH} ;
|
|
|
|
|
2010-01-04 20:36:58 +01:00
|
|
|
HAIKU_STATIC_LIBSTDC++ ?= ${HAIKU_STATIC_LIBSTDCXX} ;
|
|
|
|
HAIKU_SHARED_LIBSTDC++ ?= ${HAIKU_SHARED_LIBSTDCXX} ;
|
|
|
|
HAIKU_STATIC_LIBSUPC++ ?= ${HAIKU_STATIC_LIBSUPCXX} ;
|
|
|
|
HAIKU_SHARED_LIBSUPC++ ?= ${HAIKU_SHARED_LIBSUPCXX} ;
|
|
|
|
HAIKU_C++_HEADERS_DIR ?= ${HAIKU_CXX_HEADERS_DIR} ;
|
2005-11-12 23:58:54 +01:00
|
|
|
|
2012-08-16 14:47:49 +02:00
|
|
|
HAIKU_KERNEL_LIBGCC ?= ${HAIKU_KERNEL_LIBGCC} ;
|
|
|
|
HAIKU_KERNEL_LIBSUPC++ ?= ${HAIKU_KERNEL_LIBSUPCXX} ;
|
2012-05-26 22:47:27 +02:00
|
|
|
HAIKU_BOOT_LIBGCC ?= ${HAIKU_BOOT_LIBGCC} ;
|
|
|
|
HAIKU_BOOT_LIBSUPC++ ?= ${HAIKU_BOOT_LIBSUPCXX} ;
|
|
|
|
|
2010-01-04 20:36:58 +01:00
|
|
|
HAIKU_BUILD_ATTRIBUTES_DIR ?= ${HAIKU_BUILD_ATTRIBUTES_DIR} ;
|
2005-10-29 18:27:43 +02:00
|
|
|
|
2007-05-20 19:50:11 +02:00
|
|
|
HAIKU_AR ?= ${HAIKU_AR} ;
|
|
|
|
HAIKU_CC ?= ${HAIKU_CC} ;
|
|
|
|
HAIKU_LD ?= ${HAIKU_LD} ;
|
|
|
|
HAIKU_OBJCOPY ?= ${HAIKU_OBJCOPY} ;
|
|
|
|
HAIKU_RANLIB ?= ${HAIKU_RANLIB} ;
|
2012-07-19 18:53:46 +02:00
|
|
|
HAIKU_ELFEDIT ?= ${HAIKU_ELFEDIT} ;
|
2009-04-13 12:50:17 +02:00
|
|
|
HAIKU_YASM ?= ${HAIKU_YASM} ;
|
2013-01-04 13:40:20 +01:00
|
|
|
HAIKU_STRIP ?= ${HAIKU_STRIP} ;
|
2007-05-20 19:50:11 +02:00
|
|
|
HAIKU_CPPFLAGS ?= ${HAIKU_CPPFLAGS} ;
|
|
|
|
HAIKU_CCFLAGS ?= ${HAIKU_CCFLAGS} ;
|
2012-07-28 17:26:07 +02:00
|
|
|
HAIKU_C++FLAGS ?= ${HAIKU_CXXFLAGS} ;
|
2007-05-20 19:50:11 +02:00
|
|
|
HAIKU_LDFLAGS ?= ${HAIKU_LDFLAGS} ;
|
|
|
|
HAIKU_ARFLAGS ?= ${HAIKU_ARFLAGS} ;
|
|
|
|
HAIKU_UNARFLAGS ?= ${HAIKU_UNARFLAGS} ;
|
|
|
|
|
2010-01-04 20:36:58 +01:00
|
|
|
HOST_GCC_RAW_VERSION ?= ${HOST_GCC_RAW_VERSION} ;
|
|
|
|
HOST_GCC_MACHINE ?= ${HOST_GCC_MACHINE} ;
|
|
|
|
HOST_LD ?= ${HOST_GCC_LD} ;
|
|
|
|
HOST_OBJCOPY ?= ${HOST_GCC_OBJCOPY} ;
|
2010-01-07 23:08:12 +01:00
|
|
|
HOST_SFDISK ?= ${HOST_SFDISK} ;
|
2013-07-06 02:17:15 +02:00
|
|
|
HOST_SHA256 ?= ${HOST_SHA256} ;
|
2005-11-12 23:58:54 +01:00
|
|
|
|
2013-07-21 04:10:48 +02:00
|
|
|
HOST_HAIKU_PORTER ?= ${HOST_HAIKU_PORTER} ;
|
|
|
|
HAIKU_PORTS ?= ${HAIKU_PORTS} ;
|
|
|
|
HAIKU_PORTS_CROSS ?= ${HAIKU_PORTS_CROSS} ;
|
|
|
|
|
2002-07-16 01:42:06 +02:00
|
|
|
EOF
|
|
|
|
|
2005-01-26 02:34:37 +01:00
|
|
|
# Libgcc.a objects
|
|
|
|
|
2006-08-03 19:57:34 +02:00
|
|
|
cat << EOF > "$buildOutputDir/libgccObjects"
|
2005-01-26 02:34:37 +01:00
|
|
|
# libgcc.a objects to be linked against libroot.so
|
|
|
|
# Note: This file has been automatically generated by configure.
|
|
|
|
|
2005-10-29 18:27:43 +02:00
|
|
|
HAIKU_GCC_LIBGCC_OBJECTS ?= ${HAIKU_GCC_LIBGCC_OBJECTS} ;
|
2005-01-26 02:34:37 +01:00
|
|
|
EOF
|
|
|
|
|
2008-05-18 01:47:39 +02:00
|
|
|
# Generate a boot strap Jamfile in the output directory.
|
2005-10-29 18:27:43 +02:00
|
|
|
|
|
|
|
cat << EOF > $outputDir/Jamfile
|
|
|
|
# automatically generated Jamfile
|
|
|
|
|
|
|
|
HAIKU_TOP = ${sourceDir} ;
|
|
|
|
HAIKU_OUTPUT_DIR = ${outputDir} ;
|
|
|
|
|
|
|
|
include [ FDirName \$(HAIKU_TOP) Jamfile ] ;
|
|
|
|
|
|
|
|
EOF
|