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