Mercurial > projects > ldc
diff runtime/lib/common/tango/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 | 6d9cf3f74f93 |
children | 6aaa3d3c1183 |
line wrap: on
line diff
--- a/runtime/lib/common/tango/llvmdc.mak Thu Sep 04 20:58:25 2008 +0200 +++ b/runtime/lib/common/tango/llvmdc.mak Fri Sep 05 23:02:18 2008 +0200 @@ -13,7 +13,8 @@ LIB_TARGET_FULL=libtango-cc-tango.a LIB_TARGET_BC_ONLY=libtango-cc-tango-bc-only.a LIB_TARGET_C_ONLY=libtango-cc-tango-c-only.a -LIB_MASK=libtango-cc-tango*.a +LIB_TARGET_SHARED=libtango-cc-tango-shared.so +LIB_MASK=libtango-cc-tango*.* CP=cp -f RM=rm -f @@ -70,10 +71,11 @@ $(DC) -c -o- $(DOCFLAGS) -Df$*.html $< # $(DC) -c -o- $(DOCFLAGS) -Df$*.html tango.ddoc $< -targets : lib doc -all : lib doc +targets : lib sharedlib doc +all : lib sharedlib doc tango : lib lib : tango.lib tango.bclib tango.clib +sharedlib : tango.sharedlib doc : tango.doc ###################################################### @@ -115,6 +117,7 @@ tango.bclib : $(LIB_TARGET_BC_ONLY) tango.lib : $(LIB_TARGET_FULL) tango.clib : $(LIB_TARGET_C_ONLY) +tango.sharedlib : $(LIB_TARGET_SHARED) $(LIB_TARGET_BC_ONLY) : $(ALL_OBJS) $(RM) $@ @@ -134,6 +137,14 @@ $(CLC) $@ $(OBJ_STDC) +$(LIB_TARGET_SHARED) : $(ALL_OBJS) $(OBJ_STDC) + $(RM) $@ $@.bc $@.s $@.o + $(LLINK) -o=$@.bc $(ALL_OBJS) + $(LCC) -relocation-model=pic -o=$@.s $@.bc + $(CC) -c -o $@.o $@.s + $(CC) -shared -o $@ $@.o $(OBJ_STDC) + + tango.doc : $(ALL_DOCS) echo Documentation generated.