Mercurial > projects > ldc
comparison runtime/lib/gc/basic/llvmdc.mak @ 579:20c065c46b38
Basic support for runtime in shared library.
Needs to be built with runtime/build-sharedlibs.sh and activated manually by
providing -defaultlib=llvmdc-runtime-shared -defaultlib=tango-cc-tango-shared
-defaultlib=tango-gc-basic-shared on llvmdc call at the moment.
To support D shared libraries in non-D code, we need to remove the main() from
libllvmdc-runtime-shared.
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Fri, 05 Sep 2008 23:02:18 +0200 |
parents | 926a03711ca8 |
children | 6aaa3d3c1183 |
comparison
equal
deleted
inserted
replaced
578:8caa9adce5ae | 579:20c065c46b38 |
---|---|
10 # make clean | 10 # make clean |
11 # Delete unneeded files created by build process | 11 # Delete unneeded files created by build process |
12 | 12 |
13 LIB_TARGET_BC=libtango-gc-basic-bc.a | 13 LIB_TARGET_BC=libtango-gc-basic-bc.a |
14 LIB_TARGET_NATIVE=libtango-gc-basic.a | 14 LIB_TARGET_NATIVE=libtango-gc-basic.a |
15 LIB_MASK=libtango-gc-basic*.a | 15 LIB_TARGET_SHARED=libtango-gc-basic-shared.so |
16 LIB_MASK=libtango-gc-basic*.* | |
16 | 17 |
17 CP=cp -f | 18 CP=cp -f |
18 RM=rm -f | 19 RM=rm -f |
19 MD=mkdir -p | 20 MD=mkdir -p |
20 | 21 |
61 | 62 |
62 .d.html: | 63 .d.html: |
63 $(DC) -c -o- $(DOCFLAGS) -Df$*.html $< | 64 $(DC) -c -o- $(DOCFLAGS) -Df$*.html $< |
64 # $(DC) -c -o- $(DOCFLAGS) -Df$*.html dmd.ddoc $< | 65 # $(DC) -c -o- $(DOCFLAGS) -Df$*.html dmd.ddoc $< |
65 | 66 |
66 targets : lib doc | 67 targets : lib sharedlib doc |
67 all : lib doc | 68 all : lib sharedlib doc |
68 lib : basic.lib basic.nlib | 69 lib : basic.lib basic.nlib |
70 sharedlib : basic.sharedlib | |
69 doc : basic.doc | 71 doc : basic.doc |
70 | 72 |
71 ###################################################### | 73 ###################################################### |
72 | 74 |
73 ALL_OBJS= \ | 75 ALL_OBJS= \ |
83 | 85 |
84 ###################################################### | 86 ###################################################### |
85 | 87 |
86 basic.lib : $(LIB_TARGET_BC) | 88 basic.lib : $(LIB_TARGET_BC) |
87 basic.nlib : $(LIB_TARGET_NATIVE) | 89 basic.nlib : $(LIB_TARGET_NATIVE) |
90 basic.sharedlib : $(LIB_TARGET_SHARED) | |
88 | 91 |
89 $(LIB_TARGET_BC) : $(ALL_OBJS) | 92 $(LIB_TARGET_BC) : $(ALL_OBJS) |
90 $(RM) $@ | 93 $(RM) $@ |
91 $(LC) $@ $(ALL_OBJS) | 94 $(LC) $@ $(ALL_OBJS) |
92 | 95 |
95 $(RM) $@ $@.bc $@.s $@.o | 98 $(RM) $@ $@.bc $@.s $@.o |
96 $(LLINK) -o=$@.bc $(ALL_OBJS) | 99 $(LLINK) -o=$@.bc $(ALL_OBJS) |
97 $(LCC) -o=$@.s $@.bc | 100 $(LCC) -o=$@.s $@.bc |
98 $(CC) -c -o $@.o $@.s | 101 $(CC) -c -o $@.o $@.s |
99 $(CLC) $@ $@.o | 102 $(CLC) $@ $@.o |
103 | |
104 | |
105 $(LIB_TARGET_SHARED) : $(ALL_OBJS) | |
106 $(RM) $@ $@.bc $@.s $@.o | |
107 $(LLINK) -o=$@.bc $(ALL_OBJS) | |
108 $(LCC) -relocation-model=pic -o=$@.s $@.bc | |
109 $(CC) -shared -o $@ $@.s | |
100 | 110 |
101 basic.doc : $(ALL_DOCS) | 111 basic.doc : $(ALL_DOCS) |
102 echo No documentation available. | 112 echo No documentation available. |
103 | 113 |
104 ###################################################### | 114 ###################################################### |