Mercurial > projects > ldc
diff 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 |
line wrap: on
line diff
--- a/runtime/lib/gc/basic/llvmdc.mak Thu Sep 04 20:58:25 2008 +0200 +++ b/runtime/lib/gc/basic/llvmdc.mak Fri Sep 05 23:02:18 2008 +0200 @@ -12,7 +12,8 @@ LIB_TARGET_BC=libtango-gc-basic-bc.a LIB_TARGET_NATIVE=libtango-gc-basic.a -LIB_MASK=libtango-gc-basic*.a +LIB_TARGET_SHARED=libtango-gc-basic-shared.so +LIB_MASK=libtango-gc-basic*.* CP=cp -f RM=rm -f @@ -63,9 +64,10 @@ $(DC) -c -o- $(DOCFLAGS) -Df$*.html $< # $(DC) -c -o- $(DOCFLAGS) -Df$*.html dmd.ddoc $< -targets : lib doc -all : lib doc +targets : lib sharedlib doc +all : lib sharedlib doc lib : basic.lib basic.nlib +sharedlib : basic.sharedlib doc : basic.doc ###################################################### @@ -85,6 +87,7 @@ basic.lib : $(LIB_TARGET_BC) basic.nlib : $(LIB_TARGET_NATIVE) +basic.sharedlib : $(LIB_TARGET_SHARED) $(LIB_TARGET_BC) : $(ALL_OBJS) $(RM) $@ @@ -98,6 +101,13 @@ $(CC) -c -o $@.o $@.s $(CLC) $@ $@.o + +$(LIB_TARGET_SHARED) : $(ALL_OBJS) + $(RM) $@ $@.bc $@.s $@.o + $(LLINK) -o=$@.bc $(ALL_OBJS) + $(LCC) -relocation-model=pic -o=$@.s $@.bc + $(CC) -shared -o $@ $@.s + basic.doc : $(ALL_DOCS) echo No documentation available.