comparison lphobos/build.sh @ 662:88e23f8c2354

Applied downs' latest Phobos patch
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Mon, 06 Oct 2008 21:40:33 +0200
parents 526385b6d1fd
children 6aaa3d3c1183
comparison
equal deleted inserted replaced
661:99f32e967746 662:88e23f8c2354
3 echo "removing old objects" 3 echo "removing old objects"
4 mkdir -p obj 4 mkdir -p obj
5 rm -f obj/*.bc 5 rm -f obj/*.bc
6 rm -f ../lib/*.bc 6 rm -f ../lib/*.bc
7 7
8 LLVMDCFLAGS="-c -odobj -oq -gc -noasm" 8 LLVMDCFLAGS_ASM="-c -oq -release"
9 LLVMDCFLAGS_ASM="-c -odobj -oq -gc" 9 LLVMDCFLAGS="$LLVMDCFLAGS_ASM -noasm"
10 10
11 echo "compiling contract runtime" 11 echo "compiling contract runtime"
12 llvmdc internal/contract.d -c -of../lib/llvmdcore.bc || exit 1 #-noruntime || exit 1 12 llvmdc internal/contract.d -c -of../lib/llvmdcore.bc || exit 1 #-noruntime || exit 1
13 13
14 echo "compiling common runtime" 14 echo "compiling common runtime"
15 ./llvmdc-build internal/arrays.d \ 15 ./llvmdc-build internal/arrays.d \
16 internal/mem.d \ 16 internal/mem.d \
17 internal/critical.d \ 17 internal/critical.d \
18 internal/dmain2.d \ 18 internal/dmain2.d \
19 internal/inv.d \
19 $LLVMDCFLAGS_ASM || exit 1 20 $LLVMDCFLAGS_ASM || exit 1
20 mv *.bc obj 21 mv *.bc obj
22 llvm-link -f -o=../lib/llvmdcore.bc obj/internal.*.bc ../lib/llvmdcore.bc
21 23
22 echo "compiling typeinfo 1" 24 echo "compiling typeinfo 1"
23 ./llvmdc-build typeinfos1.d $LLVMDCFLAGS || exit 1 25 ./llvmdc-build typeinfos1.d $LLVMDCFLAGS || exit 1
24 mv *.bc obj 26 mv *.bc obj
25 llvm-link -f -o=../lib/llvmdcore.bc `ls obj/typeinfo1.*.bc` ../lib/llvmdcore.bc || exit 1 27 llvm-link -f -o=../lib/llvmdcore.bc `ls obj/typeinfo1.*.bc` ../lib/llvmdcore.bc || exit 1
45 llvmdc internal/switch.d $LLVMDCFLAGS || exit 1 47 llvmdc internal/switch.d $LLVMDCFLAGS || exit 1
46 mv *.bc obj 48 mv *.bc obj
47 llvm-link -f -o=../lib/llvmdcore.bc obj/aApply.bc obj/aApplyR.bc obj/switch.bc ../lib/llvmdcore.bc || exit 1 49 llvm-link -f -o=../lib/llvmdcore.bc obj/aApply.bc obj/aApplyR.bc obj/switch.bc ../lib/llvmdcore.bc || exit 1
48 50
49 echo "compiling array runtime support" 51 echo "compiling array runtime support"
50 llvmdc internal/qsort2.d $LLVMDCFLAGS || exit 1 52 llvmdc internal/qsort2.d internal/adi.d internal/aaA.d $LLVMDCFLAGS || exit 1
51 mv *.bc obj 53 mv *.bc obj
52 llvm-link -f -o=../lib/llvmdcore.bc obj/qsort2.bc ../lib/llvmdcore.bc || exit 1 54 llvm-link -f -o=../lib/llvmdcore.bc obj/qsort2.bc obj/adi.bc obj/aaA.bc ../lib/llvmdcore.bc || exit 1
53 llvmdc internal/adi.d $LLVMDCFLAGS || exit 1
54 mv *.bc obj
55 llvm-link -f -o=../lib/llvmdcore.bc obj/adi.bc ../lib/llvmdcore.bc || exit 1
56 llvmdc internal/aaA.d $LLVMDCFLAGS || exit 1
57 mv *.bc obj
58 llvm-link -f -o=../lib/llvmdcore.bc obj/aaA.bc ../lib/llvmdcore.bc || exit 1
59 55
60 echo "compiling object implementation" 56 echo "compiling object implementation"
61 llvmdc internal/objectimpl.d -c -odobj -g || exit 1 57 llvmdc internal/objectimpl.d $LLVMDCFLAGS || exit 1
58 mv object.bc objectimpl.bc
59 mv *.bc obj
62 llvm-link -f -o=../lib/llvmdcore.bc obj/objectimpl.bc ../lib/llvmdcore.bc || exit 1 60 llvm-link -f -o=../lib/llvmdcore.bc obj/objectimpl.bc ../lib/llvmdcore.bc || exit 1
63 61
62 echo "compiling crc32"
63 llvmdc crc32.d $LLVMDCFLAGS || exit 1
64 mv *.bc obj
65 llvm-link -f -o=../lib/llvmdcore.bc ../lib/llvmdcore.bc obj/crc32.bc || exit 1
66
64 echo "compiling llvm runtime support" 67 echo "compiling llvm runtime support"
65 ./llvmdc-build llvmsupport.d $LLVMDCFLAGS || exit 1 68 # ./llvmdc-build llvmsupport.d $LLVMDCFLAGS || exit 1
69 llvmdc llvmsupport.d -oq -c || exit 1
66 mv *.bc obj 70 mv *.bc obj
67 llvm-link -f -o=../lib/llvmdcore.bc `ls obj/llvm.*.bc` ../lib/llvmdcore.bc || exit 1 71 llvm-link -f -o=../lib/llvmdcore.bc `ls obj/llvm*.bc` ../lib/llvmdcore.bc || exit 1
68 72
69 echo "compiling garbage collector" 73 echo "compiling garbage collector"
70 cd gc 74 cd gc
71 llvmdc $(ls *.d |grep -v win32) $LLVMDCFLAGS_ASM -I.. ||exit 1 75 llvmdc $(ls *.d |grep -v win32) $LLVMDCFLAGS_ASM -I.. ||exit 1
72 # llvmdc gclinux.d $LLVMDCFLAGS -I.. || exit 1 76 # llvmdc gclinux.d $LLVMDCFLAGS -I.. || exit 1
73 # llvmdc gcx.d $LLVMDCFLAGS -I.. || exit 1 77 # llvmdc gcx.d $LLVMDCFLAGS -I.. || exit 1
74 # llvmdc gcbits.d $LLVMDCFLAGS -I.. || exit 1 78 # llvmdc gcbits.d $LLVMDCFLAGS -I.. || exit 1
75 # llvmdc gc.d $LLVMDCFLAGS -I.. || exit 1 79 # llvmdc gc.d -oq -c -I.. || exit 1
76 mv std.gc.bc gc.bc 80 mv std.gc.bc std_gc.bc
77 mv *.bc ../obj 81 mv *.bc ../obj
82 # mv -v obj/*.bc ../obj
78 cd .. 83 cd ..
79 llvm-link -f -o=../lib/llvmdcore.bc obj/gclinux.bc obj/gcx.bc obj/gcbits.bc obj/gc.bc ../lib/llvmdcore.bc || exit 1 84 llvm-link -f -o=../lib/llvmdcore.bc obj/gclinux.bc obj/gcx.bc obj/gcbits.bc obj/std_gc.bc ../lib/llvmdcore.bc || exit 1
80 85
81 echo "compiling phobos" 86 echo "compiling phobos"
82 ./llvmdc-build phobos.d $LLVMDCFLAGS || exit 1 87 ./llvmdc-build phobos.d $LLVMDCFLAGS || exit 1
83 mv *.bc obj 88 mv *.bc obj
84 echo "linking phobos" 89 echo "linking phobos"
85 llvm-link -f -o=../lib/llvmdcore.bc `ls obj/std.*.bc` ../lib/llvmdcore.bc || exit 1 90 # llvm-link -f -o=../lib/llvmdcore.bc `ls obj/std.*.bc` ../lib/llvmdcore.bc || exit 1
91 for i in $(ls obj/std.*.bc); do
92 echo $i
93 llvm-link -f -o=../lib/llvmdcore.bc ../lib/llvmdcore.bc $i || exit 1
94 done
86 95
87 echo "Compiling auxiliary" 96 echo "Compiling auxiliary"
88 ./llvmdc-build etc/c/zlib.d $LLVMDCFLAGS || exit 1 97 ./llvmdc-build etc/c/zlib.d $LLVMDCFLAGS || exit 1
89 mv *.bc obj 98 mv *.bc obj
90 llvm-link -f -o=../lib/llvmdcore.bc `ls obj/etc.*.bc` ../lib/llvmdcore.bc || exit 1 99 llvm-link -f -o=../lib/llvmdcore.bc `ls obj/etc.*.bc` ../lib/llvmdcore.bc || exit 1
91 100
92 echo "optimizing" 101 echo "optimizing"
93 opt -stats -p -f -std-compile-opts -disable-inlining -o=../lib/llvmdcore.bc ../lib/llvmdcore.bc || exit 1 102 opt -stats -p -f -std-compile-opts -o=../lib/llvmdcore.bc ../lib/llvmdcore.bc || exit 1
94
95 103
96 echo "SUCCESS" 104 echo "SUCCESS"