Mercurial > projects > ldc
comparison runtime/lib/llvmdc-posix.mak @ 443:44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Reworked the LLVMDC specific pragmas.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Fri, 01 Aug 2008 00:32:06 +0200 |
parents | |
children | 2b28fd92bab8 |
comparison
equal
deleted
inserted
replaced
442:76078c8ab5b9 | 443:44f08170f4ef |
---|---|
1 # Makefile to build the composite D runtime library for Linux | |
2 # Designed to work with GNU make | |
3 # Targets: | |
4 # make | |
5 # Same as make all | |
6 # make lib | |
7 # Build the runtime library | |
8 # make doc | |
9 # Generate documentation | |
10 # make clean | |
11 # Delete unneeded files created by build process | |
12 | |
13 LIB_TARGET=libtango-base-llvmdc.a | |
14 LIB_MASK=libtango-base-llvmdc*.a | |
15 LIB_TARGET_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 | |
19 | |
20 DIR_CC=./common/tango | |
21 DIR_RT=../../runtime/internal | |
22 DIR_GC=./gc/basic | |
23 #DIR_GC=./gc/stub | |
24 | |
25 CP=cp -f | |
26 RM=rm -f | |
27 MD=mkdir -p | |
28 | |
29 CC=gcc | |
30 LC=llvm-ar rsv | |
31 CLC=ar rsv | |
32 DC=llvmdc | |
33 LLVMLINK=llvm-link | |
34 LLC=llc | |
35 | |
36 ADD_CFLAGS= | |
37 #ADD_DFLAGS= | |
38 ADD_DFLAGS=-I`pwd`/common -I`pwd`/.. -I`pwd`/compiler/llvmdc | |
39 | |
40 targets : nativelib doc | |
41 all : nativelib lib doc | |
42 | |
43 ###################################################### | |
44 | |
45 ALL_OBJS= | |
46 | |
47 ###################################################### | |
48 | |
49 ALL_DOCS= | |
50 | |
51 ###################################################### | |
52 | |
53 lib : $(ALL_OBJS) | |
54 make -C $(DIR_CC) -fllvmdc.mak lib DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)" | |
55 make -C $(DIR_RT) -fllvmdc.mak lib | |
56 make -C $(DIR_GC) -fllvmdc.mak lib DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)" | |
57 find . -name $(LIB_MASK) | xargs $(RM) | |
58 $(LC) $(LIB_TARGET) `find $(DIR_CC) -name "*.bc" | xargs echo` | |
59 $(LC) $(LIB_TARGET) `find $(DIR_RT) -name "*.bc" | xargs echo` | |
60 $(LC) $(LIB_TARGET) `find $(DIR_GC) -name "*.bc" | xargs echo` | |
61 $(CLC) $(LIB_TARGET_C) `find $(DIR_CC) -name "*.o" | xargs echo` | |
62 $(CLC) $(LIB_TARGET_C) `find $(DIR_RT) -name "*.o" | xargs echo` | |
63 | |
64 nativelib: $(ALL_OBJS) | |
65 make -C $(DIR_CC) -fllvmdc.mak lib DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)" | |
66 make -C $(DIR_RT) -fllvmdc.mak lib | |
67 make -C $(DIR_GC) -fllvmdc.mak lib DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)" | |
68 | |
69 $(RM) $(LIB_NAME_NATIVE)* | |
70 | |
71 # first link all bcs together to a single bitcode file | |
72 $(LLVMLINK) -o=$(LIB_NAME_NATIVE)-llvm.bc `find $(DIR_CC) $(DIR_RT) $(DIR_GC) -name "*.bc"` | |
73 # then compile to assembler | |
74 $(LLC) -o=$(LIB_NAME_NATIVE)-llvm.s $(LIB_NAME_NATIVE)-llvm.bc | |
75 # assemble native code | |
76 $(CC) -c -o $(LIB_NAME_NATIVE)-llvm.o $(LIB_NAME_NATIVE)-llvm.s | |
77 # make an archive containing it and the other native object files | |
78 $(CLC) $(LIB_TARGET_NATIVE) $(LIB_NAME_NATIVE)-llvm.o `find $(DIR_CC) $(DIR_RT) -name "*.o"` | |
79 | |
80 | |
81 doc : $(ALL_DOCS) | |
82 make -C $(DIR_CC) -fllvmdc.mak doc | |
83 make -C $(DIR_RT) -fllvmdc.mak doc | |
84 make -C $(DIR_GC) -fllvmdc.mak doc | |
85 | |
86 ###################################################### | |
87 | |
88 clean : | |
89 find . -name "*.di" | xargs $(RM) | |
90 $(RM) $(ALL_OBJS) | |
91 $(RM) $(ALL_DOCS) | |
92 make -C $(DIR_CC) -fllvmdc.mak clean | |
93 make -C $(DIR_RT) -fllvmdc.mak clean | |
94 make -C $(DIR_GC) -fllvmdc.mak clean | |
95 $(RM) $(LIB_MASK) | |
96 $(RM) $(LIB_MASK_C) | |
97 $(RM) $(LIB_NAME_NATIVE)* | |
98 | |
99 install : | |
100 make -C $(DIR_CC) -fllvmdc.mak install | |
101 make -C $(DIR_RT) -fllvmdc.mak install | |
102 make -C $(DIR_GC) -fllvmdc.mak install | |
103 $(CP) $(LIB_MASK) $(LIB_DEST)/. | |
104 $(CP) $(LIB_MASK_C) $(LIB_DEST)/. |