mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-22 05:21:13 +00:00
Allow cross target build
llvm-svn: 85611
This commit is contained in:
parent
94d79c1f43
commit
16b4042036
@ -59,6 +59,9 @@ echo DARWIN_VERS = $DARWIN_VERS
|
|||||||
if [ "x$RC_ProjectName" = "xllvmCore_Embedded" ]; then
|
if [ "x$RC_ProjectName" = "xllvmCore_Embedded" ]; then
|
||||||
DT_HOME=$DEST_DIR/Developer/Platforms/iPhoneOS.platform/Developer/usr
|
DT_HOME=$DEST_DIR/Developer/Platforms/iPhoneOS.platform/Developer/usr
|
||||||
DEST_ROOT="/Developer/Platforms/iPhoneOS.platform/Developer$DEST_ROOT"
|
DEST_ROOT="/Developer/Platforms/iPhoneOS.platform/Developer$DEST_ROOT"
|
||||||
|
elif [ "x$RC_ProjectName" = "xllvmCore_EmbeddedHosted" ]; then
|
||||||
|
DT_HOME=$DEST_DIR/usr
|
||||||
|
DEST_ROOT="/Developer$DEST_ROOT"
|
||||||
else
|
else
|
||||||
DT_HOME=$DEST_DIR/Developer/usr
|
DT_HOME=$DEST_DIR/Developer/usr
|
||||||
DEST_ROOT="/Developer$DEST_ROOT"
|
DEST_ROOT="/Developer$DEST_ROOT"
|
||||||
@ -91,24 +94,69 @@ sed -e '/[Aa]pple-style/d' -e '/include.*GNUmakefile/d' $ORIG_SRC_DIR/Makefile >
|
|||||||
mkdir -p $DIR/obj-llvm || exit 1
|
mkdir -p $DIR/obj-llvm || exit 1
|
||||||
cd $DIR/obj-llvm || exit 1
|
cd $DIR/obj-llvm || exit 1
|
||||||
|
|
||||||
# If the user has set CC or CXX, respect their wishes. If not,
|
|
||||||
# compile with LLVM-GCC/LLVM-G++ if available; if LLVM is not
|
|
||||||
# available, fall back to usual GCC/G++ default.
|
|
||||||
savedPATH=$PATH ; PATH="$PATH:/Developer/usr/bin"
|
|
||||||
XTMPCC=$(which llvm-gcc)
|
|
||||||
if [ x$CC = x -a x$XTMPCC != x ] ; then export CC=$XTMPCC ; fi
|
|
||||||
XTMPCC=$(which llvm-g++)
|
|
||||||
if [ x$CXX = x -a x$XTMPCC != x ] ; then export CXX=$XTMPCC ; fi
|
|
||||||
PATH=$savedPATH
|
|
||||||
unset XTMPCC savedPATH
|
|
||||||
|
|
||||||
if [ \! -f Makefile.config ]; then
|
if [ "x$RC_ProjectName" = "xllvmCore_EmbeddedHosted" ]; then
|
||||||
$SRC_DIR/configure --prefix=$DT_HOME/local \
|
# The cross-tools' build process expects to find an existing cross toolchain
|
||||||
--enable-targets=arm,x86,powerpc,cbe \
|
# under names like 'arm-apple-darwin$DARWIN_VERS-as'; so make them.
|
||||||
--enable-assertions=$LLVM_ASSERTIONS \
|
rm -rf $DIR/bin || exit 1
|
||||||
--enable-optimized=$LLVM_OPTIMIZED \
|
mkdir $DIR/bin || exit 1
|
||||||
--disable-bindings \
|
for prog in ar nm ranlib strip lipo ld as ; do
|
||||||
|| exit 1
|
P=$DIR/bin/arm-apple-darwin$DARWIN_VERS-${prog}
|
||||||
|
T=`xcrun -sdk $SDKROOT -find ${prog}`
|
||||||
|
echo '#!/bin/sh' > $P || exit 1
|
||||||
|
echo 'exec '$T' "$@"' >> $P || exit 1
|
||||||
|
chmod a+x $P || exit 1
|
||||||
|
done
|
||||||
|
# Try to use the platform llvm-gcc. Fall back to gcc if it's not available.
|
||||||
|
for prog in gcc g++ ; do
|
||||||
|
P=$DIR/bin/arm-apple-darwin$DARWIN_VERS-${prog}
|
||||||
|
# FIXME: Uncomment once llvm-gcc works for this
|
||||||
|
# T=`xcrun -find llvm-${prog}`
|
||||||
|
# if [ "x$T" = "x" ] ; then
|
||||||
|
T=`xcrun -sdk $SDKROOT -find ${prog}`
|
||||||
|
# fi
|
||||||
|
echo '#!/bin/sh' > $P || exit 1
|
||||||
|
echo 'exec '$T' -arch armv6 -isysroot '${SDKROOT}' "$@"' >> $P || exit 1
|
||||||
|
chmod a+x $P || exit 1
|
||||||
|
done
|
||||||
|
|
||||||
|
PATH=$DIR/bin:$PATH
|
||||||
|
# otherwise, try to use llvm-gcc if it's available
|
||||||
|
else
|
||||||
|
# If the user has set CC or CXX, respect their wishes. If not,
|
||||||
|
# compile with LLVM-GCC/LLVM-G++ if available; if LLVM is not
|
||||||
|
# available, fall back to usual GCC/G++ default.
|
||||||
|
savedPATH=$PATH ; PATH="$PATH:/Developer/usr/bin"
|
||||||
|
XTMPCC=$(which llvm-gcc)
|
||||||
|
if [ x$CC = x -a x$XTMPCC != x ] ; then export CC=$XTMPCC ; fi
|
||||||
|
XTMPCC=$(which llvm-g++)
|
||||||
|
if [ x$CXX = x -a x$XTMPCC != x ] ; then export CXX=$XTMPCC ; fi
|
||||||
|
PATH=$savedPATH
|
||||||
|
unset XTMPCC savedPATH
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ "x$RC_ProjectName" = "xllvmCore_EmbeddedHosted" ]; then
|
||||||
|
if [ \! -f Makefile.config ]; then
|
||||||
|
$SRC_DIR/configure --prefix=$DT_HOME \
|
||||||
|
--enable-targets=arm \
|
||||||
|
--host=arm-apple-darwin10 \
|
||||||
|
--target=arm-apple-darwin10 \
|
||||||
|
--build=i686-apple-darwin10 \
|
||||||
|
--enable-assertions=$LLVM_ASSERTIONS \
|
||||||
|
--enable-optimized=$LLVM_OPTIMIZED \
|
||||||
|
--disable-bindings \
|
||||||
|
|| exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ \! -f Makefile.config ]; then
|
||||||
|
$SRC_DIR/configure --prefix=$DT_HOME/local \
|
||||||
|
--enable-targets=arm,x86,powerpc,cbe \
|
||||||
|
--enable-assertions=$LLVM_ASSERTIONS \
|
||||||
|
--enable-optimized=$LLVM_OPTIMIZED \
|
||||||
|
--disable-bindings \
|
||||||
|
|| exit 1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
SUBVERSION=`echo $RC_ProjectSourceVersion | sed -e 's/[^.]*\.\([0-9]*\).*/\1/'`
|
SUBVERSION=`echo $RC_ProjectSourceVersion | sed -e 's/[^.]*\.\([0-9]*\).*/\1/'`
|
||||||
@ -158,6 +206,7 @@ if [ "x$MAJ_VER" != "x4" -o "x$MIN_VER" != "x0" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
make $JOBS_FLAG $OPTIMIZE_OPTS UNIVERSAL=1 UNIVERSAL_ARCH="$TARGETS" \
|
make $JOBS_FLAG $OPTIMIZE_OPTS UNIVERSAL=1 UNIVERSAL_ARCH="$TARGETS" \
|
||||||
|
UNIVERSAL_SDK_PATH=$SDKROOT \
|
||||||
NO_RUNTIME_LIBS=1 \
|
NO_RUNTIME_LIBS=1 \
|
||||||
LLVM_SUBMIT_VERSION=$LLVM_SUBMIT_VERSION \
|
LLVM_SUBMIT_VERSION=$LLVM_SUBMIT_VERSION \
|
||||||
LLVM_SUBMIT_SUBVERSION=$LLVM_SUBMIT_SUBVERSION \
|
LLVM_SUBMIT_SUBVERSION=$LLVM_SUBMIT_SUBVERSION \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user