diff lphobos/build.sh @ 473:373489eeaf90

Applied downs' lphobos update
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Mon, 04 Aug 2008 19:28:49 +0200
parents 5825d48b27d1
children 074e74c1a72b
line wrap: on
line diff
--- a/lphobos/build.sh	Mon Aug 04 19:08:39 2008 +0200
+++ b/lphobos/build.sh	Mon Aug 04 19:28:49 2008 +0200
@@ -5,69 +5,96 @@
 rm -f obj/*.bc
 rm -f ../lib/*.bc
 
-LLVMDCFLAGS="-c -odobj -g"
-REBUILDFLAGS="-dc=llvmdc-posix-internal -c -oqobj -g"
+LLVMDCFLAGS="-c -odobj -oq -gc -noasm"
+LLVMDCFLAGS_ASM="-c -odobj -oq -gc"
 
 echo "compiling contract runtime"
-llvmdc internal/contract.d -c -of../lib/llvmdcore.bc -noruntime || exit 1
+llvmdc internal/contract.d -c -of../lib/llvmdcore.bc || exit 1 #-noruntime || exit 1
 
 echo "compiling common runtime"
-rebuild internal/arrays.d \
+llvmdc-build internal/arrays.d \
         internal/mem.d \
-        $REBUILDFLAGS || exit 1
+        internal/critical.d \
+        internal/dmain2.d \
+        $LLVMDCFLAGS_ASM || exit 1
+mv *.bc obj
 
 echo "compiling module init backend"
 llvm-as -f -o=obj/moduleinit_backend.bc internal/moduleinit_backend.ll || exit 1
 llvm-link -f -o=../lib/llvmdcore.bc `ls obj/internal.*.bc` ../lib/llvmdcore.bc obj/moduleinit_backend.bc || exit 1
 
 echo "compiling typeinfo 1"
-rebuild typeinfos1.d $REBUILDFLAGS || exit 1
+llvmdc-build typeinfos1.d $LLVMDCFLAGS || exit 1
+mv *.bc obj
 llvm-link -f -o=../lib/llvmdcore.bc `ls obj/typeinfo1.*.bc` ../lib/llvmdcore.bc || exit 1
 
 echo "compiling typeinfo 2"
-rebuild typeinfos2.d $REBUILDFLAGS || exit 1
+llvmdc-build typeinfos2.d $LLVMDCFLAGS || exit 1
+mv *.bc obj
 llvm-link -f -o=../lib/llvmdcore.bc `ls obj/typeinfo2.*.bc` ../lib/llvmdcore.bc || exit 1
 
+echo "compiling exceptions"
+llvmdc-build internal/eh.d $LLVMDCFLAGS -debug || exit 1
+mv *.bc obj
+llvm-link -f -o=../lib/llvmdcore.bc obj/*eh.bc ../lib/llvmdcore.bc || exit 1
+
 echo "compiling object/interface casting runtime support"
 llvmdc internal/cast.d $LLVMDCFLAGS || exit 1
+mv *.bc obj
 llvm-link -f -o=../lib/llvmdcore.bc obj/cast.bc ../lib/llvmdcore.bc || exit 1
 
 echo "compiling string foreach/switch runtime support"
 llvmdc internal/aApply.d $LLVMDCFLAGS || exit 1
 llvmdc internal/aApplyR.d $LLVMDCFLAGS || exit 1
 llvmdc internal/switch.d $LLVMDCFLAGS || exit 1
+mv *.bc obj
 llvm-link -f -o=../lib/llvmdcore.bc obj/aApply.bc obj/aApplyR.bc obj/switch.bc ../lib/llvmdcore.bc || exit 1
 
 echo "compiling array runtime support"
 llvmdc internal/qsort2.d $LLVMDCFLAGS || exit 1
+mv *.bc obj
 llvm-link -f -o=../lib/llvmdcore.bc obj/qsort2.bc ../lib/llvmdcore.bc || exit 1
 llvmdc internal/adi.d $LLVMDCFLAGS || exit 1
+mv *.bc obj
 llvm-link -f -o=../lib/llvmdcore.bc obj/adi.bc ../lib/llvmdcore.bc || exit 1
 llvmdc internal/aaA.d $LLVMDCFLAGS || exit 1
+mv *.bc obj
 llvm-link -f -o=../lib/llvmdcore.bc obj/aaA.bc ../lib/llvmdcore.bc || exit 1
 
 echo "compiling object implementation"
-llvmdc internal/objectimpl.d $LLVMDCFLAGS || exit 1
+llvmdc internal/objectimpl.d -c -odobj -g || exit 1
 llvm-link -f -o=../lib/llvmdcore.bc obj/objectimpl.bc ../lib/llvmdcore.bc || exit 1
 
 echo "compiling llvm runtime support"
-rebuild llvmsupport.d $REBUILDFLAGS || exit 1
+llvmdc-build llvmsupport.d $LLVMDCFLAGS || exit 1
+mv *.bc obj
 llvm-link -f -o=../lib/llvmdcore.bc `ls obj/llvm.*.bc` ../lib/llvmdcore.bc || exit 1
 
 echo "compiling garbage collector"
-llvmdc gc/gclinux.d $LLVMDCFLAGS || exit 1
-llvmdc gc/gcx.d $LLVMDCFLAGS -Igc || exit 1
-llvmdc gc/gcbits.d $LLVMDCFLAGS -Igc || exit 1
-llvmdc gc/gc.d $LLVMDCFLAGS -Igc || exit 1
+cd gc
+llvmdc $(ls *.d |grep -v win32) $LLVMDCFLAGS_ASM -I.. ||exit 1
+# llvmdc gclinux.d $LLVMDCFLAGS -I.. || exit 1
+# llvmdc gcx.d $LLVMDCFLAGS -I.. || exit 1
+# llvmdc gcbits.d $LLVMDCFLAGS -I.. || exit 1
+# llvmdc gc.d $LLVMDCFLAGS -I.. || exit 1
+mv std.gc.bc gc.bc
+mv *.bc ../obj
+cd ..
 llvm-link -f -o=../lib/llvmdcore.bc obj/gclinux.bc obj/gcx.bc obj/gcbits.bc obj/gc.bc ../lib/llvmdcore.bc || exit 1
 
 echo "compiling phobos"
-rebuild phobos.d $REBUILDFLAGS || exit 1
+llvmdc-build phobos.d $LLVMDCFLAGS || exit 1
+mv *.bc obj
 echo "linking phobos"
 llvm-link -f -o=../lib/llvmdcore.bc `ls obj/std.*.bc` ../lib/llvmdcore.bc || exit 1
 
+echo "Compiling auxiliary"
+llvmdc-build etc/c/zlib.d $LLVMDCFLAGS || exit 1
+mv *.bc obj
+llvm-link -f -o=../lib/llvmdcore.bc `ls obj/etc.*.bc` ../lib/llvmdcore.bc || exit 1
+
 echo "optimizing"
-opt -f -std-compile-opts -o=../lib/llvmdcore.bc ../lib/llvmdcore.bc || exit 1
+opt -stats -p -f -std-compile-opts -disable-inlining -o=../lib/llvmdcore.bc ../lib/llvmdcore.bc || exit 1
 
 
 echo "SUCCESS"