Mercurial > projects > ldc
comparison runtime/internal/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 | c7fbcb6b923e |
comparison
equal
deleted
inserted
replaced
578:8caa9adce5ae | 579:20c065c46b38 |
---|---|
11 # Delete unneeded files created by build process | 11 # Delete unneeded files created by build process |
12 | 12 |
13 LIB_TARGET_FULL=libllvmdc-runtime.a | 13 LIB_TARGET_FULL=libllvmdc-runtime.a |
14 LIB_TARGET_BC_ONLY=libllvmdc-runtime-bc-only.a | 14 LIB_TARGET_BC_ONLY=libllvmdc-runtime-bc-only.a |
15 LIB_TARGET_C_ONLY=libllvmdc-runtime-c-only.a | 15 LIB_TARGET_C_ONLY=libllvmdc-runtime-c-only.a |
16 LIB_MASK=libllvmdc-runtime*.a | 16 LIB_TARGET_SHARED=libllvmdc-runtime-shared.so |
17 LIB_MASK=libllvmdc-runtime*.* | |
17 | 18 |
18 | 19 |
19 CP=cp -f | 20 CP=cp -f |
20 RM=rm -f | 21 RM=rm -f |
21 MD=mkdir -p | 22 MD=mkdir -p |
59 $(DC) -c $(DFLAGS) $< -of$@ | 60 $(DC) -c $(DFLAGS) $< -of$@ |
60 | 61 |
61 .d.html: | 62 .d.html: |
62 $(DC) -c -o- $(DOCFLAGS) -Df$*.html llvmdc.ddoc $< | 63 $(DC) -c -o- $(DOCFLAGS) -Df$*.html llvmdc.ddoc $< |
63 | 64 |
64 targets : lib doc | 65 targets : lib sharedlib doc |
65 all : lib doc | 66 all : lib sharedlib doc |
66 lib : llvmdc.lib llvmdc.bclib llvmdc.clib | 67 lib : llvmdc.lib llvmdc.bclib llvmdc.clib |
68 sharedlib : llvmdc.sharedlib | |
67 doc : llvmdc.doc | 69 doc : llvmdc.doc |
68 | 70 |
69 ###################################################### | 71 ###################################################### |
70 OBJ_C= \ | 72 OBJ_C= \ |
71 monitor.o \ | 73 monitor.o \ |
147 ###################################################### | 149 ###################################################### |
148 | 150 |
149 llvmdc.bclib : $(LIB_TARGET_BC_ONLY) | 151 llvmdc.bclib : $(LIB_TARGET_BC_ONLY) |
150 llvmdc.clib : $(LIB_TARGET_C_ONLY) | 152 llvmdc.clib : $(LIB_TARGET_C_ONLY) |
151 llvmdc.lib : $(LIB_TARGET_FULL) | 153 llvmdc.lib : $(LIB_TARGET_FULL) |
154 llvmdc.sharedlib : $(LIB_TARGET_SHARED) | |
152 | 155 |
153 $(LIB_TARGET_BC_ONLY) : $(ALL_OBJS) | 156 $(LIB_TARGET_BC_ONLY) : $(ALL_OBJS) |
154 $(RM) $@ | 157 $(RM) $@ |
155 $(LC) $@ $(ALL_OBJS) | 158 $(LC) $@ $(ALL_OBJS) |
156 | 159 |
165 | 168 |
166 $(LIB_TARGET_C_ONLY) : $(OBJ_C) | 169 $(LIB_TARGET_C_ONLY) : $(OBJ_C) |
167 $(RM) $@ | 170 $(RM) $@ |
168 $(CLC) $@ $(OBJ_C) | 171 $(CLC) $@ $(OBJ_C) |
169 | 172 |
173 | |
174 $(LIB_TARGET_SHARED) : $(ALL_OBJS) $(OBJ_C) | |
175 $(RM) $@ $@.bc $@.s $@.o | |
176 $(LLINK) -o=$@.bc $(ALL_OBJS) | |
177 $(LCC) -relocation-model=pic -o=$@.s $@.bc | |
178 $(CC) -c -o $@.o $@.s | |
179 $(CC) -shared -o $@ $@.o $(OBJ_C) | |
180 | |
181 | |
170 llvmdc.doc : $(ALL_DOCS) | 182 llvmdc.doc : $(ALL_DOCS) |
171 echo No documentation available. | 183 echo No documentation available. |
172 | 184 |
173 ###################################################### | 185 ###################################################### |
174 | 186 |