提交 8f6c0fdf 编写于 作者: P Povilas Kanapickas

Compile most platforms out of source

上级 a471635d
......@@ -2756,7 +2756,7 @@ AC_CONFIG_COMMANDS([runtime/etc/mono/4.0/web.config],
],[LN_S='$LN_S'])
if test x$enable_quiet_build = xyes; then
AC_CONFIG_COMMANDS([quiet], [for i in `find mono libgc support -name Makefile.in | sed -e 's/Makefile.in/Makefile/g'`; do if test -f $i; then $srcdir/scripts/patch-quiet.sh $i; fi; done], [shell=$SHELL])
AC_CONFIG_COMMANDS([quiet], [for i in `find $srcdir/mono $srcdir/libgc $srcdir/support -name Makefile.in | sed -e 's/Makefile.in/Makefile/g'`; do if test -f $i; then $srcdir/scripts/patch-quiet.sh $i; fi; done], [shell=$SHELL])
AC_CONFIG_COMMANDS([quiet-libtool], [sed -e 's/$echo "copying selected/$show "copying selected/g' < libtool > libtool.tmp && mv libtool.tmp libtool && chmod a+x libtool; sed -e 's/$ECHO "copying selected/# "copying selected/g' < libtool > libtool.tmp && mv libtool.tmp libtool && chmod a+x libtool])
fi
......
......@@ -13,16 +13,17 @@ my $root = getcwd();
my $monodistro = "$root/builds/monodistribution";
my $lib = "$monodistro/lib";
my $libmono = "$lib/mono";
my $monoprefix = "$root/tmp/monoprefix";
my $builddir = "$root/builddir/osx-classlibs";
my $monoprefix = "$builddir/tmp/monoprefix";
my $xcodePath = '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform';
my $macversion = '10.5';
my $sdkversion = '10.6';
my $dependencyBranchToUse = "unity3.0";
my $booCheckout = "external/boo";
my $cecilCheckout = "mcs/class/Mono.Cecil";
my $usCheckout = "external/unityscript";
my $booCheckout = "$root/external/boo";
my $cecilCheckout = "$root/mcs/class/Mono.Cecil";
my $usCheckout = "$root/external/unityscript";
if ($ENV{UNITY_THISISABUILDMACHINE}) {
print "rmtree-ing $root/builds because we're on a buildserver, and want to make sure we don't include old artifacts\n";
......@@ -90,11 +91,17 @@ if (not $skipbuild)
chdir("$root") eq 1 or die("failed to chdir4");
print(">>>Calling autoreconf in mono\n");
system("autoreconf -i");
rmtree("$builddir");
mkpath("$builddir");
chdir("$builddir") eq 1 or die("failed to chdir buildir");
print(">>>Calling configure in mono\n");
system("./configure","--prefix=$monoprefix","--with-monotouch=$withMonotouch","-with-unity=$withUnity", "--with-glib=embedded","--with-mcs-docs=no","--with-macversion=10.5", "--disable-nls") eq 0 or die ("failing autogenning mono");
system("../../configure","--prefix=$monoprefix","--with-monotouch=$withMonotouch","-with-unity=$withUnity", "--with-glib=embedded","--with-mcs-docs=no","--with-macversion=10.5", "--disable-nls") eq 0 or die ("failing autogenning mono");
print("calling make clean in mono\n");
system("make","clean");
chdir("$root");
}
chdir("$builddir");
system("make") eq 0 or die ("Failed running make");
system("make install") eq 0 or die ("Failed running make install");
# Couldn't get automake to Just Do The Right Thing
......
......@@ -7,6 +7,7 @@ export ANDROID_PLATFORM=android-9
GCC_PREFIX=arm-linux-androideabi-
GCC_VERSION=4.8
OUTDIR=builds/embedruntimes/android
BUILDDIR="builddir/android"
CWD="$(pwd)"
PREFIX="$CWD/builds/android"
BUILDSCRIPTSDIR=external/buildscripts
......@@ -76,7 +77,6 @@ LDFLAGS="\
CONFIG_OPTS="\
--prefix=$PREFIX \
--cache-file=android_cross.cache \
--host=arm-eabi-linux \
--disable-mcs-build \
--disable-parallel-mark \
......@@ -108,14 +108,19 @@ function clean_build_krait_patch
function clean_build
{
make clean && make distclean
rm android_cross.cache
pushd eglib
autoreconf -i
popd
autoreconf -i
./configure $CONFIG_OPTS \
CURR_BUILDDIR="$BUILDDIR-$3"
CURR_OUTDIR="$OUTDIR/$3"
rm -rf $CURR_BUILDDIR
mkdir -p $CURR_BUILDDIR
pushd $CURR_BUILDDIR
../../configure $CONFIG_OPTS \
PATH="$PATH" CC="$CC" CXX="$CXX" CPP="$CPP" CXXCPP="$CXXCPP" \
CFLAGS="$CFLAGS $1" CPPFLAGS="$CPPFLAGS $1" CXXFLAGS="$CXXFLAGS $1" LDFLAGS="$LDFLAGS $2" \
LD=$LD AR=$AR AS=$AS RANLIB=$RANLIB STRIP=$STRIP CPATH="$CPATH"
......@@ -126,10 +131,11 @@ function clean_build
fi
make && echo "Build SUCCESS!" || exit 1
popd
mkdir -p $3
cp mono/mini/.libs/libmono.a $3
cp mono/mini/.libs/libmono.so $3
mkdir -p $CURR_OUTDIR
cp $CURR_BUILDDIR/mono/mini/.libs/libmono.a $CURR_OUTDIR
cp $CURR_BUILDDIR/mono/mini/.libs/libmono.so $CURR_OUTDIR
}
CCFLAGS_ARMv5_CPU="-DARM_FPU_NONE=1 -march=armv5te -mtune=xscale -msoft-float"
......@@ -142,9 +148,9 @@ rm -rf $OUTDIR
clean_build_krait_patch
clean_build "$CCFLAGS_ARMv5_CPU" "$LDFLAGS_ARMv5" "$OUTDIR/armv5"
clean_build "$CCFLAGS_ARMv6_VFP" "$LDFLAGS_ARMv5" "$OUTDIR/armv6_vfp"
clean_build "$CCFLAGS_ARMv7_VFP" "$LDFLAGS_ARMv7" "$OUTDIR/armv7a"
clean_build "$CCFLAGS_ARMv5_CPU" "$LDFLAGS_ARMv5" "armv5"
clean_build "$CCFLAGS_ARMv6_VFP" "$LDFLAGS_ARMv5" "armv6_vfp"
clean_build "$CCFLAGS_ARMv7_VFP" "$LDFLAGS_ARMv7" "armv7a"
# works only with ndk-r6b and later
source ${BUILDSCRIPTSDIR}/build_runtime_android_x86.sh dontclean
......
......@@ -7,6 +7,7 @@ export ANDROID_PLATFORM=android-9
GCC_PREFIX=i686-linux-android-
GCC_VERSION=4.8
OUTDIR=builds/embedruntimes/android
BUILDDIR="builddir/android"
PREFIX=`pwd`/builds/android
NDK_ROOT=`cd $ANDROID_NDK_ROOT && pwd`
......@@ -90,7 +91,13 @@ function clean_build
popd
autoreconf -i
./configure $CONFIG_OPTS \
CURR_BUILDDIR="$BUILDDIR-$3"
CURR_OUTDIR="$OUTDIR/$3"
rm -rf $CURR_BUILDDIR
mkdir -p $CURR_BUILDDIR
pushd $CURR_BUILDDIR
../../configure $CONFIG_OPTS \
PATH="$PATH" CC="$CC" CXX="$CXX" CPP="$CPP" CXXCPP="$CXXCPP" \
CFLAGS="$CFLAGS $1" CXXFLAGS="$CXXFLAGS $1" CPPFLAGS="$CPPFLAGS $1" LDFLAGS="$LDFLAGS $2" \
LD=$LD AR=$AR AS=$AS RANLIB=$RANLIB STRIP=$STRIP CPATH="$CPATH"
......@@ -101,17 +108,18 @@ function clean_build
fi
make && echo "Build SUCCESS!" || exit 1
popd
mkdir -p $3
cp mono/mini/.libs/libmono.a $3
cp mono/mini/.libs/libmono.so $3
mkdir -p $CURR_OUTDIR
cp $CURR_BUILDDIR/mono/mini/.libs/libmono.a $CURR_OUTDIR
cp $CURR_BUILDDIR/mono/mini/.libs/libmono.so $CURR_OUTDIR
}
if [ x$1 != x"dontclean" ]; then
rm -rf $OUTDIR
fi
clean_build "" "" "$OUTDIR/x86"
clean_build "" "" "x86"
if [ x$1 != x"dontclean" ]; then
NUM_LIBS_BUILT=`ls -AlR $OUTDIR | grep libmono | wc -l`
......
#!/bin/sh
#!/bin/bash
SDK_VERSION=7.1
MAC_SDK_VERSION=10.6
ASPEN_ROOT=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
......@@ -21,8 +21,7 @@ SIMULATOR_ASPEN_SDK=$SIMULATOR_ASPEN_ROOT/SDKs/iPhoneSimulator${SDK_VERSION}.sdk
ORIG_PATH=$PATH
PRFX=$PWD/tmp
MAKE_JOBS=4
MAKE_JOBS=1
if [ ${UNITY_THISISABUILDMACHINE:+1} ]; then
echo "Erasing builds folder to make sure we start with a clean slate"
......@@ -80,30 +79,37 @@ build_arm_mono ()
{
setenv "$1"
BUILDDIR=buildir/ios-arm
if [ $2 -eq 0 ]; then
make clean
rm -f config.h*
pushd eglib
LIBTOOL=$LIBTOOL ./autogen.sh --host=arm-apple-darwin9 --prefix=$PRFX
make clean
make distclean
LIBTOOL=$LIBTOOL NOCONFIGURE=1 ./autogen.sh
pushd eglib
LIBTOOL=$LIBTOOL NOCONFIGURE=1 ./autogen.sh
popd
LIBTOOL=$LIBTOOL ./autogen.sh --prefix=$PRFX --disable-mcs-build --host=arm-apple-darwin9 --disable-shared-handles --with-tls=pthread --with-sigaltstack=no --with-glib=embedded --enable-minimal=jit,profiler,com --disable-nls || exit 1
rm -rf $BUILDDIR
mkdir -p $BUILDDIR
pushd $BUILDDIR
LIBTOOL=$LIBTOOL ../../configure --prefix=$PRFX --disable-mcs-build --host=arm-apple-darwin9 --disable-shared-handles --with-tls=pthread --with-sigaltstack=no --with-glib=embedded --enable-minimal=jit,profiler,com --disable-nls || exit 1
perl -pi -e 's/MONO_SIZEOF_SUNPATH 0/MONO_SIZEOF_SUNPATH 104/' config.h
perl -pi -e 's/#define HAVE_FINITE 1//' config.h
#perl -pi -e 's/#define HAVE_MMAP 1//' config.h
perl -pi -e 's/#define HAVE_CURSES_H 1//' config.h
perl -pi -e 's/#define HAVE_STRNDUP 1//' eglib/config.h
make $MAKE_JOBS
popd
else
echo "Skipping autogen.sh for incremental build"
echo "Skipping ./autogen.sh for incremental build"
fi
pushd $BUILDDIR
make || exit 1
popd
mkdir -p builds/embedruntimes/iphone
cp mono/mini/.libs/libmono.a "builds/embedruntimes/iphone/libmono-$1.a" || exit 1
cp $BUILDDIR/mono/mini/.libs/libmono.a "builds/embedruntimes/iphone/libmono-$1.a" || exit 1
}
build_iphone_runtime ()
......@@ -131,22 +137,34 @@ build_iphone_crosscompiler ()
export PLATFORM_IPHONE_XCOMP=1
BUILDDIR=builddir/ios-xcomp
if [ $1 -eq 0 ]; then
pushd eglib
LIBTOOL=$LIBTOOL ./autogen.sh --prefix=$PRFX || exit 1
make clean
make distclean
LIBTOOL=$LIBTOOL NOCONFIGURE=1 ./autogen.sh
pushd eglib
LIBTOOL=$LIBTOOL NOCONFIGURE=1 ./autogen.sh
popd
rm -rf $BUILDDIR
mkdir -p $BUILDDIR
pushd $BUILDDIR
LIBTOOL=$LIBTOOL ./autogen.sh --prefix=$PRFX --with-macversion=$MAC_SDK_VERSION --disable-mcs-build --disable-shared-handles --with-tls=pthread --with-signalstack=no --with-glib=embedded --target=arm-darwin --disable-nls || exit 1
LIBTOOL=$LIBTOOL ../../configure --prefix=$PRFX --with-macversion=$MAC_SDK_VERSION --disable-mcs-build --disable-shared-handles --with-tls=pthread --with-signalstack=no --with-glib=embedded --target=arm-darwin --disable-nls || exit 1
perl -pi -e 's/#define HAVE_STRNDUP 1//' eglib/config.h
make clean || exit 1
popd
else
echo "Skipping autogen.sh for incremental build"
echo "Skipping ./autogen.sh for incremental build"
fi
pushd $BUILDDIR
make $MAKE_JOBS || exit 1
popd
mkdir -p builds/crosscompiler/iphone
cp mono/mini/mono builds/crosscompiler/iphone/mono-xcompiler
cp $BUILDDIR/mono/mini/mono builds/crosscompiler/iphone/mono-xcompiler
unsetenv
echo "iPhone cross compiler build done"
}
......@@ -179,16 +197,16 @@ build_iphone_simulator ()
make distclean
#were going to tell autogen to use a specific cache file, that we purposely remove before starting.
#that way, autogen is forced to do all its config stuff again, which should make this buildscript
#more robust if other targetplatforms have been built from this same workincopy
rm osx.cache
LIBTOOL=$LIBTOOL NOCONFIGURE=1 ./autogen.sh
pushd eglib
make distclean
autoreconf -i
LIBTOOL=$LIBTOOL NOCONFIGURE=1 ./autogen.sh
popd
BUILDDIR=builddir/ios-simulator
rm -rf $BUILDDIR
mkdir -p $BUILDDIR
pushd $BUILDDIR
# From Massi: I was getting failures in install_name_tool about space
# for the commands being too small, and adding here things like
# $ENV{LDFLAGS} = '-headerpad_max_install_names' and
......@@ -197,19 +215,19 @@ build_iphone_simulator ()
# Lucas noticed that I was lacking a Mono prefix, and having a long
# one would give us space, so here is this silly looong prefix.
LONG_PREFIX="/scripting/scripting/scripting/scripting/scripting/scripting/scripting/scripting/scripting/scripting/scripting/scripting/scripting/scripting/scripting/scripting/scripting/scripting/scripting/scripting"
./autogen.sh --cache-file=osx.cache --disable-mcs-build --with-glib=embedded --disable-nls \
LIBTOOL=$LIBTOOL ../../configure --disable-mcs-build --with-glib=embedded --disable-nls \
--prefix=$LONG_PREFIX || { echo "failing configuring mono"; exit 1; }
make clean || echo "failed make cleaning"
perl -pi -e 's/#define HAVE_STRNDUP 1//' eglib/config.h
make $MAKE_JOBS || { echo "failing running make for mono"; exit 1; }
popd
echo "Copying iPhone simulator static lib to final destination";
mkdir -p builds/embedruntimes/iphone
cp mono/mini/.libs/libmono.a builds/embedruntimes/iphone/libmono-i386.a
cp $BUILDDIR/mono/mini/.libs/libmono.a builds/embedruntimes/iphone/libmono-i386.a
unsetenv
}
......
......@@ -39,6 +39,7 @@ my $platform = $build64 ? 'linux64' : $build_armel ? 'linux-armel' : 'linux32' ;
my $bintarget = "$root/builds/monodistribution/bin-$platform";
my $libtarget = "$root/builds/embedruntimes/$platform";
my $etctarget = "$root/builds/monodistribution/etc-$platform";
my $builddir = "$root/builddir/linux-$platform";
if ($minimal)
{
......@@ -78,10 +79,6 @@ if (not $skipbuild)
#this will fail on a fresh working copy, so don't die on it.
system("make distclean");
#were going to tell autogen to use a specific cache file, that we purposely remove before starting.
#that way, autogen is forced to do all its config stuff again, which should make this buildscript
#more robust if other targetplatforms have been built from this same workincopy
system("rm linux.cache");
chdir("$root/eglib") eq 1 or die ("Failed chdir 1");
#this will fail on a fresh working copy, so don't die on it.
......@@ -91,7 +88,6 @@ if (not $skipbuild)
system("autoreconf -i") eq 0 or die ("Failed autoreconfing mono");
my @autogenparams = ();
unshift(@autogenparams, "--cache-file=linux.cache");
unshift(@autogenparams, "--disable-mcs-build");
unshift(@autogenparams, "--with-glib=embedded");
unshift(@autogenparams, "--disable-nls"); #this removes the dependency on gettext package
......@@ -118,11 +114,16 @@ if (not $skipbuild)
print("\n\n\n\nCalling configure with these parameters: ");
system("echo", @autogenparams);
print("\n\n\n\n\n");
system("calling ./configure",@autogenparams);
system("./configure", @autogenparams) eq 0 or die ("failing configuring mono");
rmtree("$builddir");
mkpath("$builddir");
chdir("$builddir") eq 1 or die("Failed chdir 3");
system("calling configure in builddir/linux",@autogenparams);
system("../../configure", @autogenparams) eq 0 or die ("failing configuring mono");
system("make clean") eq 0 or die ("failed make cleaning");
system("make") eq 0 or die ("failing running make for mono");
chdir("$root");
}
mkpath($bintarget);
......@@ -130,13 +131,13 @@ mkpath($libtarget);
mkpath("$etctarget/mono");
print "Copying libmono.so\n";
system("cp", "$root/mono/mini/.libs/libmono.so.0","$libtarget/libmono.so") eq 0 or die ("failed copying libmono.so.0");
system("cp", "$builddir/mono/mini/.libs/libmono.so.0","$libtarget/libmono.so") eq 0 or die ("failed copying libmono.so.0");
print "Copying libmono.a\n";
system("cp", "$root/mono/mini/.libs/libmono.a","$libtarget/libmono-static.a") eq 0 or die ("failed copying libmono.a");
system("cp", "$builddir/mono/mini/.libs/libmono.a","$libtarget/libmono-static.a") eq 0 or die ("failed copying libmono.a");
print "Copying libMonoPosixHelper.so\n";
system("cp", "$root/support/.libs/libMonoPosixHelper.so","$libtarget/libMonoPosixHelper.so") eq 0 or die ("failed copying libMonoPosixHelper.so");
system("cp", "$builddir/support/.libs/libMonoPosixHelper.so","$libtarget/libMonoPosixHelper.so") eq 0 or die ("failed copying libMonoPosixHelper.so");
if ($ENV{"UNITY_THISISABUILDMACHINE"})
{
......@@ -145,7 +146,7 @@ if ($ENV{"UNITY_THISISABUILDMACHINE"})
system("git log --pretty=format:'mono-runtime-$platform = %H %d %ad' --no-abbrev-commit --date=short -1 > $root/builds/versions.txt");
}
system("ln","-f","$root/mono/mini/mono","$bintarget/mono") eq 0 or die("failed symlinking mono executable");
system("ln","-f","$root/mono/metadata/pedump","$bintarget/pedump") eq 0 or die("failed symlinking pedump executable");
system('cp',"$root/data/config","$etctarget/mono/config");
system("ln","-f","$builddir/mono/mini/mono","$bintarget/mono") eq 0 or die("failed symlinking mono executable");
system("ln","-f","$builddir/mono/metadata/pedump","$bintarget/pedump") eq 0 or die("failed symlinking pedump executable");
system('cp',"$builddir/data/config","$etctarget/mono/config");
system("chmod","-R","755",$bintarget);
......@@ -8,7 +8,7 @@ my $root = getcwd();
my $skipbuild=0;
my $debug = 0;
my $minimal = 0;
my $jobs = 4;
my $jobs = 1;
my $xcodePath = '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform';
my $unityPath = "$root/../../unity/build";
......@@ -59,7 +59,7 @@ if ($ENV{UNITY_THISISABUILDMACHINE})
}
my @arches = ('i386','x86_64');
if ($iphone_simulator || $minimal) {
if ($minimal) {
@arches = ('i386');
}
......@@ -90,6 +90,8 @@ for my $arch (@arches)
# Make architecture-specific targets and lipo at the end
my $bintarget = "$root/builds/monodistribution/bin-$arch";
my $libtarget = "$root/builds/embedruntimes/osx-$arch";
my $builddir = "$root/builddir/osx";
my $sdkoptions = '';
if ($minimal)
......@@ -126,10 +128,6 @@ for my $arch (@arches)
#this will fail on a fresh working copy, so don't die on it.
system("make distclean");
#were going to tell autogen to use a specific cache file, that we purposely remove before starting.
#that way, autogen is forced to do all its config stuff again, which should make this buildscript
#more robust if other targetplatforms have been built from this same workincopy
system("rm osx.cache");
chdir("$root/eglib") eq 1 or die ("Failed chdir 1");
......@@ -139,7 +137,6 @@ for my $arch (@arches)
chdir("$root") eq 1 or die ("failed to chdir 2");
system("autoreconf -i");
my @autogenparams = ();
unshift(@autogenparams, "--cache-file=osx.cache");
unshift(@autogenparams, "--disable-mcs-build");
unshift(@autogenparams, "--with-glib=embedded");
unshift(@autogenparams, "--disable-nls"); #this removes the dependency on gettext package
......@@ -161,11 +158,17 @@ for my $arch (@arches)
print("\n\n\n\nCalling configure with these parameters: ");
system("echo", @autogenparams);
print("\n\n\n\n\n");
system("calling ./configure",@autogenparams);
system("./configure", @autogenparams) eq 0 or die ("failing configuring mono");
rmtree("$builddir");
mkpath("$builddir");
chdir("$builddir") eq 1 or die("failed to chdir 3");
system("calling ./configure in builddir/osx",@autogenparams);
system("../../configure", @autogenparams) eq 0 or die ("failing configuring mono");
system("make clean") eq 0 or die ("failed make cleaning");
system("make $jobs") eq 0 or die ("failing runnig make for mono");
chdir("$root");
}
chdir($root);
......@@ -173,23 +176,23 @@ for my $arch (@arches)
mkpath($bintarget);
mkpath($libtarget);
my $cmdline = "gcc -arch $arch $sdkoptions -bundle -Wl,-reexport_library mono/mini/.libs/libmono.a $sdkOptions -all_load -liconv -o $libtarget/MonoBundleBinary";
my $cmdline = "gcc -arch $arch $sdkoptions -bundle -Wl,-reexport_library $builddir/mono/mini/.libs/libmono.a $sdkOptions -all_load -liconv -o $libtarget/MonoBundleBinary";
print "About to call this cmdline to make a bundle:\n$cmdline\n";
system($cmdline) eq 0 or die("failed to link libmono.a into mono bundle");
print "Symlinking libmono.dylib\n";
system("ln","-f", "$root/mono/mini/.libs/libmono.0.dylib","$libtarget/libmono.0.dylib") eq 0 or die ("failed symlinking libmono.0.dylib");
system("ln","-f", "$builddir/mono/mini/.libs/libmono.0.dylib","$libtarget/libmono.0.dylib") eq 0 or die ("failed symlinking libmono.0.dylib");
print "Symlinking libmono.a\n";
system("ln", "-f", "$root/mono/mini/.libs/libmono.a","$libtarget/libmono.a") eq 0 or die ("failed symlinking libmono.a");
system("ln", "-f", "$builddir/mono/mini/.libs/libmono.a","$libtarget/libmono.a") eq 0 or die ("failed symlinking libmono.a");
print "Symlinking libMonoPosixHelper.dylib\n";
system("ln", "-f", "$root/support/.libs/libMonoPosixHelper.dylib","$libtarget/libMonoPosixHelper.dylib") eq 0 or die ("failed symlinking libMonoPosixHelper.dylib");
system("ln", "-f", "$builddir/support/.libs/libMonoPosixHelper.dylib","$libtarget/libMonoPosixHelper.dylib") eq 0 or die ("failed symlinking libMonoPosixHelper.dylib");
if (not $ENV{"UNITY_THISISABUILDMACHINE"})
{
rmtree ("$libtarget/libmono.0.dylib.dSYM");
system ('cp', '-R', "$root/mono/mini/.libs/libmono.0.dylib.dSYM","$libtarget/libmono.0.dylib.dSYM") eq 0 or warn ("Failed copying libmono.0.dylib.dSYM");
system ('cp', '-R', "$builddir/mono/mini/.libs/libmono.0.dylib.dSYM","$libtarget/libmono.0.dylib.dSYM") eq 0 or warn ("Failed copying libmono.0.dylib.dSYM");
}
if ($ENV{"UNITY_THISISABUILDMACHINE"})
......@@ -202,8 +205,8 @@ for my $arch (@arches)
InstallNameTool("$libtarget/libmono.0.dylib", "\@executable_path/../Frameworks/MonoEmbedRuntime/osx/libmono.0.dylib");
InstallNameTool("$libtarget/libMonoPosixHelper.dylib", "\@executable_path/../Frameworks/MonoEmbedRuntime/osx/libMonoPosixHelper.dylib");
system("ln","-f","$root/mono/mini/mono","$bintarget/mono") eq 0 or die("failed symlinking mono executable");
system("ln","-f","$root/mono/metadata/pedump","$bintarget/pedump") eq 0 or die("failed symlinking pedump executable");
system("ln","-f","$builddir/mono/mini/mono","$bintarget/mono") eq 0 or die("failed symlinking mono executable");
system("ln","-f","$builddir/mono/metadata/pedump","$bintarget/pedump") eq 0 or die("failed symlinking pedump executable");
}
# Create universal binaries
......
......@@ -5,7 +5,7 @@
PREFIX=`pwd`/../builds/qnx
OUTDIR=../builds/embedruntimes/qnx
OUTDIR=builds/embedruntimes/qnx
BUILDSCRIPTSDIR=external/buildscripts
perl ${BUILDSCRIPTSDIR}/PrepareBB10NDK.pl -ndk=r09 -env=envsetup.sh && source envsetup.sh
......@@ -17,26 +17,28 @@ make clean && make distclean
rm -r *.cache config.status nto-arm-le-v7 libgc/config.status autom4te.cache Makefile
NOCONFIGURE=1 ./autogen.sh
cd eglib; NOCONFIGURE=1 ./autogen.sh
pushd eglib
NOCONFIGURE=1 ./autogen.sh
popd
cd ..
addvariant nto arm le-v7
cd nto-arm-le-v7
BUILDDIR=nto-arm-le-v7
pushd $BUILDDIR
# Run Make
make && echo "Build SUCCESS!" || exit 1
rm -rf ../builds
popd
rm -rf builds
mkdir -p $OUTDIR
cp -f mono/mini/.libs/libmono.a $OUTDIR
cp -f $BUILDDIR/mono/mini/.libs/libmono.a $OUTDIR
if [ -d ../builds/monodistribution ] ; then
rm -r ../builds/monodistribution
if [ -d builds/monodistribution ] ; then
rm -r builds/monodistribution
fi
# Clean up for next build
cd ..
make clean && make distclean
rm Makefile
......@@ -10,6 +10,7 @@ rm -rf builds
for STV_TARGET in ${STV_TARGETS}; do
echo "BUILDING FOR $STV_TARGET"
OUTDIR=builds/embedruntimes/stv/$STV_TARGET
BUILDDIR="builddir/stv-$STV_TARGET"
if [[ $STV_TARGET == *_15 ]]; then
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${STV_STANDARD_15}/i386Libs";export LD_LIBRARY_PATH
......@@ -36,7 +37,6 @@ for STV_TARGET in ${STV_TARGETS}; do
CONFIG_OPTS="\
--prefix=$PREFIX \
--cache-file=stv_cross.cache \
--host=arm-unknown-linux-gnueabi \
--disable-mcs-build \
--disable-parallel-mark \
......@@ -48,21 +48,24 @@ for STV_TARGET in ${STV_TARGETS}; do
mono_cv_uscore=yes"
make clean && make distclean
rm stv_cross.cache
pushd eglib
autoreconf -i
popd
autoreconf -i
rm -rf $BUILDDIR
mkdir -p $BUILDDIR
pushd $BUILDDIR
# Run configure
./configure $CONFIG_OPTS CFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" CC="$CC" CXX="$CXX" AR="$AR" LD="$LD"
../../configure $CONFIG_OPTS CFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" CC="$CC" CXX="$CXX" AR="$AR" LD="$LD"
# Run Make
make && echo "Build SUCCESS!" || exit 1
popd
mkdir -p $OUTDIR
cp -f mono/mini/.libs/libmono.a $OUTDIR
cp -f $BUILDDIR/mono/mini/.libs/libmono.a $OUTDIR
if [ -d builds/monodistribution ] ; then
rm -r builds/monodistribution
......
......@@ -4,6 +4,7 @@ PREFIX="$PWD/builds/tizen"
BUILDDIR=/$PWD
OUTDIR=builds/embedruntimes/tizen
BUILDDIR=builddir/tizen
BUILDSCRIPTSDIR=external/buildscripts
# perl ${BUILDSCRIPTSDIR}/SDKDownloader.pm --repo_name=tizen-sdk --artifacts_folder=artifacts && source ${TIZEN_SDK}/tizen-ndk-env.sh
......@@ -25,7 +26,6 @@ STRIP="${TIZEN_PREFIX}strip"
CONFIG_OPTS="\
--prefix=$PREFIX \
--with-sysroot=${TIZEN_SDK}/platforms/${TIZEN_PLATFORM}/rootstraps/${TIZEN_ROOTSTRAP} \
--cache-file=tizen_cross.cache \
--host=arm-linux-gnueabi \
--disable-mcs-build \
--disable-parallel-mark \
......@@ -39,23 +39,27 @@ mono_cv_uscore=yes"
LDFLAGS="-ldlog"
make clean && make distclean
rm tizen_cross.cache
pushd eglib
autoreconf -i
popd
autoreconf -i
rm -rf $BUILDDIR
mkdir -p $BUILDDIR
pushd $BUILDDIR
# Run configure
./configure $CONFIG_OPTS CFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" CC="$CC" CXX="$CXX" AR="$AR" LD="$LD" RANLIB="$RANLIB" STRIP="$STRIP"
../../configure $CONFIG_OPTS CFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" CC="$CC" CXX="$CXX" AR="$AR" LD="$LD" RANLIB="$RANLIB" STRIP="$STRIP"
# Run Make
make -j6 && echo "Build SUCCESS!" || exit 1
popd
rm -rf $PWD/builds
mkdir -p $OUTDIR
cp -f mono/mini/.libs/libmono.a $OUTDIR
cp -f $BUILDDIR/mono/mini/.libs/libmono.a $OUTDIR
# Clean up for next build
make clean && make distclean
......
......@@ -12,15 +12,23 @@ if ($ENV{UNITY_THISISABUILDMACHINE}) {
}
#do build
chdir("$root/mono/tests") eq 1 or die("failed to chdir tests");
if ($teamcity) {
print("##teamcity[testSuiteStarted name='mono runtime tests']\n");
}
my $result = 0;
if($^O eq 'MSWin32') {
chdir("$root/mono/tests") eq 1 or die("failed to chdir tests");
$result = system("msbuild build.proj /t:Test");
} else {
$result = system("make test");
(@dirs) = glob("builddir/*");
foreach $dir (@dirs) {
print("Running tests in directory $dir \n");
chdir("$dir/mono/tests") eq 1 or die("failed to chdir $dir/mono/tests");
$result = system("make test");
if ($result != 0) {
last;
}
}
}
if ($teamcity) {
print("##teamcity[testSuiteFinished name='mono runtime tests']\n");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册