Mercurial > projects > ldc
comparison tango/lib/llvmdc-posix.mak @ 325:3c8c58c24aa8 trunk
[svn r346] Fixed #55 - llvmdc can link as fast as dmd now!
Made runtime to compile to native by default. Changed linker.cpp to link in native runtime library.
This change requires a runtime rebuild as well as a new symbolic link in lib/ to tango/lib/libtango-base-llvmdc-native.a.
author | ChristianK |
---|---|
date | Thu, 10 Jul 2008 19:38:34 +0200 |
parents | 4c2689d57ba4 |
children |
comparison
equal
deleted
inserted
replaced
324:c542d12017e5 | 325:3c8c58c24aa8 |
---|---|
12 | 12 |
13 LIB_TARGET=libtango-base-llvmdc.a | 13 LIB_TARGET=libtango-base-llvmdc.a |
14 LIB_MASK=libtango-base-llvmdc*.a | 14 LIB_MASK=libtango-base-llvmdc*.a |
15 LIB_TARGET_C=libtango-base-c-llvmdc.a | 15 LIB_TARGET_C=libtango-base-c-llvmdc.a |
16 LIB_MASK_C=libtango-base-c-llvmdc*.a | 16 LIB_MASK_C=libtango-base-c-llvmdc*.a |
17 LIB_NAME_NATIVE=libtango-base-llvmdc-native | |
18 LIB_TARGET_NATIVE=$(LIB_NAME_NATIVE).a | |
17 | 19 |
18 DIR_CC=./common/tango | 20 DIR_CC=./common/tango |
19 DIR_RT=./compiler/llvmdc | 21 DIR_RT=./compiler/llvmdc |
20 DIR_GC=./gc/basic | 22 DIR_GC=./gc/basic |
21 #DIR_GC=./gc/stub | 23 #DIR_GC=./gc/stub |
26 | 28 |
27 CC=gcc | 29 CC=gcc |
28 LC=llvm-ar rsv | 30 LC=llvm-ar rsv |
29 CLC=ar rsv | 31 CLC=ar rsv |
30 DC=llvmdc | 32 DC=llvmdc |
33 LLVMLINK=llvm-link | |
34 LLC=llc | |
31 | 35 |
32 ADD_CFLAGS= | 36 ADD_CFLAGS= |
33 ADD_DFLAGS= | 37 ADD_DFLAGS= |
34 | 38 |
35 targets : lib doc | 39 targets : nativelib doc |
36 all : lib doc | 40 all : nativelib lib doc |
37 | 41 |
38 ###################################################### | 42 ###################################################### |
39 | 43 |
40 ALL_OBJS= | 44 ALL_OBJS= |
41 | 45 |
54 $(LC) $(LIB_TARGET) `find $(DIR_RT) -name "*.bc" | xargs echo` | 58 $(LC) $(LIB_TARGET) `find $(DIR_RT) -name "*.bc" | xargs echo` |
55 $(LC) $(LIB_TARGET) `find $(DIR_GC) -name "*.bc" | xargs echo` | 59 $(LC) $(LIB_TARGET) `find $(DIR_GC) -name "*.bc" | xargs echo` |
56 $(CLC) $(LIB_TARGET_C) `find $(DIR_CC) -name "*.o" | xargs echo` | 60 $(CLC) $(LIB_TARGET_C) `find $(DIR_CC) -name "*.o" | xargs echo` |
57 $(CLC) $(LIB_TARGET_C) `find $(DIR_RT) -name "*.o" | xargs echo` | 61 $(CLC) $(LIB_TARGET_C) `find $(DIR_RT) -name "*.o" | xargs echo` |
58 | 62 |
63 nativelib: $(ALL_OBJS) | |
64 make -C $(DIR_CC) -fllvmdc.mak lib DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)" | |
65 make -C $(DIR_RT) -fllvmdc.mak lib | |
66 make -C $(DIR_GC) -fllvmdc.mak lib DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)" | |
67 | |
68 $(RM) $(LIB_NAME_NATIVE)* | |
69 | |
70 # first link all bcs together to a single bitcode file | |
71 $(LLVMLINK) -o=$(LIB_NAME_NATIVE)-llvm.bc `find $(DIR_CC) $(DIR_RT) $(DIR_GC) -name "*.bc"` | |
72 # then compile to assembler | |
73 $(LLC) -o=$(LIB_NAME_NATIVE)-llvm.s $(LIB_NAME_NATIVE)-llvm.bc | |
74 # assemble native code | |
75 $(CC) -c -o $(LIB_NAME_NATIVE)-llvm.o $(LIB_NAME_NATIVE)-llvm.s | |
76 # make an archive containing it and the other native object files | |
77 $(CLC) $(LIB_TARGET_NATIVE) $(LIB_NAME_NATIVE)-llvm.o `find $(DIR_CC) $(DIR_RT) -name "*.o"` | |
78 | |
79 | |
59 doc : $(ALL_DOCS) | 80 doc : $(ALL_DOCS) |
60 make -C $(DIR_CC) -fllvmdc.mak doc | 81 make -C $(DIR_CC) -fllvmdc.mak doc |
61 make -C $(DIR_RT) -fllvmdc.mak doc | 82 make -C $(DIR_RT) -fllvmdc.mak doc |
62 make -C $(DIR_GC) -fllvmdc.mak doc | 83 make -C $(DIR_GC) -fllvmdc.mak doc |
63 | 84 |
70 make -C $(DIR_CC) -fllvmdc.mak clean | 91 make -C $(DIR_CC) -fllvmdc.mak clean |
71 make -C $(DIR_RT) -fllvmdc.mak clean | 92 make -C $(DIR_RT) -fllvmdc.mak clean |
72 make -C $(DIR_GC) -fllvmdc.mak clean | 93 make -C $(DIR_GC) -fllvmdc.mak clean |
73 $(RM) $(LIB_MASK) | 94 $(RM) $(LIB_MASK) |
74 $(RM) $(LIB_MASK_C) | 95 $(RM) $(LIB_MASK_C) |
96 $(RM) $(LIB_NAME_NATIVE)* | |
75 | 97 |
76 install : | 98 install : |
77 make -C $(DIR_CC) -fllvmdc.mak install | 99 make -C $(DIR_CC) -fllvmdc.mak install |
78 make -C $(DIR_RT) -fllvmdc.mak install | 100 make -C $(DIR_RT) -fllvmdc.mak install |
79 make -C $(DIR_GC) -fllvmdc.mak install | 101 make -C $(DIR_GC) -fllvmdc.mak install |