comparison 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
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=libtango-cc-tango.a 13 LIB_TARGET_FULL=libtango-cc-tango.a
14 LIB_TARGET_BC_ONLY=libtango-cc-tango-bc-only.a 14 LIB_TARGET_BC_ONLY=libtango-cc-tango-bc-only.a
15 LIB_TARGET_C_ONLY=libtango-cc-tango-c-only.a 15 LIB_TARGET_C_ONLY=libtango-cc-tango-c-only.a
16 LIB_MASK=libtango-cc-tango*.a 16 LIB_TARGET_SHARED=libtango-cc-tango-shared.so
17 LIB_MASK=libtango-cc-tango*.*
17 18
18 CP=cp -f 19 CP=cp -f
19 RM=rm -f 20 RM=rm -f
20 MD=mkdir -p 21 MD=mkdir -p
21 22
68 69
69 .d.html: 70 .d.html:
70 $(DC) -c -o- $(DOCFLAGS) -Df$*.html $< 71 $(DC) -c -o- $(DOCFLAGS) -Df$*.html $<
71 # $(DC) -c -o- $(DOCFLAGS) -Df$*.html tango.ddoc $< 72 # $(DC) -c -o- $(DOCFLAGS) -Df$*.html tango.ddoc $<
72 73
73 targets : lib doc 74 targets : lib sharedlib doc
74 all : lib doc 75 all : lib sharedlib doc
75 tango : lib 76 tango : lib
76 lib : tango.lib tango.bclib tango.clib 77 lib : tango.lib tango.bclib tango.clib
78 sharedlib : tango.sharedlib
77 doc : tango.doc 79 doc : tango.doc
78 80
79 ###################################################### 81 ######################################################
80 82
81 OBJ_CORE= \ 83 OBJ_CORE= \
113 ###################################################### 115 ######################################################
114 116
115 tango.bclib : $(LIB_TARGET_BC_ONLY) 117 tango.bclib : $(LIB_TARGET_BC_ONLY)
116 tango.lib : $(LIB_TARGET_FULL) 118 tango.lib : $(LIB_TARGET_FULL)
117 tango.clib : $(LIB_TARGET_C_ONLY) 119 tango.clib : $(LIB_TARGET_C_ONLY)
120 tango.sharedlib : $(LIB_TARGET_SHARED)
118 121
119 $(LIB_TARGET_BC_ONLY) : $(ALL_OBJS) 122 $(LIB_TARGET_BC_ONLY) : $(ALL_OBJS)
120 $(RM) $@ 123 $(RM) $@
121 $(LC) $@ $(ALL_OBJS) 124 $(LC) $@ $(ALL_OBJS)
122 125
130 133
131 134
132 $(LIB_TARGET_C_ONLY) : $(OBJ_STDC) 135 $(LIB_TARGET_C_ONLY) : $(OBJ_STDC)
133 $(RM) $@ 136 $(RM) $@
134 $(CLC) $@ $(OBJ_STDC) 137 $(CLC) $@ $(OBJ_STDC)
138
139
140 $(LIB_TARGET_SHARED) : $(ALL_OBJS) $(OBJ_STDC)
141 $(RM) $@ $@.bc $@.s $@.o
142 $(LLINK) -o=$@.bc $(ALL_OBJS)
143 $(LCC) -relocation-model=pic -o=$@.s $@.bc
144 $(CC) -c -o $@.o $@.s
145 $(CC) -shared -o $@ $@.o $(OBJ_STDC)
135 146
136 147
137 tango.doc : $(ALL_DOCS) 148 tango.doc : $(ALL_DOCS)
138 echo Documentation generated. 149 echo Documentation generated.
139 150