merge the formfield patch from ooo-build
[ooovba.git] / solenv / inc / _tg_shl.mk
blobe4cb05ff7b983a7512589ba0b06f48dca615bb0d
1 # unroll begin
3 .IF "$(SHL1TARGETN)"!=""
5 .IF "$(OS)"=="AIX"
6 SHL1STDLIBS=
7 .ENDIF
9 .IF "$(SHLLINKARCONLY)" != ""
10 SHL1STDLIBS=
11 STDSHL=
12 .ELSE
13 SHL1ARCHIVES=
14 .ENDIF
16 # decide how to link
17 .IF "$(SHL1CODETYPE)"=="C"
18 SHL1LINKER=$(LINKC)
19 SHL1STDSHL=$(subst,CPPRUNTIME, $(STDSHL))
20 SHL1LINKFLAGS+=$(LINKCFLAGS)
21 .ELSE # "$(SHL1CODETYPE)"=="C"
22 SHL1LINKER=$(LINK)
23 SHL1STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL))
24 SHL1LINKFLAGS+=$(LINKFLAGS)
25 .ENDIF # "$(SHL1CODETYPE)"=="C"
27 SHL1RPATH*=OOO
28 LINKFLAGSRUNPATH_$(SHL1RPATH)*=/ERROR:/Bad_SHL1RPATH_value
29 SHL1LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL1RPATH))
31 .IF "$(SHL1USE_EXPORTS)"==""
32 SHL1DEF*=$(MISC)/$(SHL1TARGET).def
33 .ENDIF # "$(SHL1USE_EXPORTS)"==""
35 EXTRALIBPATHS1=$(EXTRALIBPATHS)
36 .IF "$(UPDATER)"=="YES"
37 .IF "$(SHL1NOCHECK)"==""
38 .IF "$(SOLAR_STLLIBPATH)"!=""
39 EXTRALIBPATHS1+=-L$(SOLAR_STLLIBPATH)
40 .ENDIF
41 .ENDIF # "$(SHL1NOCHECK)"!=""
42 .ENDIF
43 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
44 #+++++++++++ version object ++++++++++++++++++++++++++++++++++++++++
45 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
47 .IF "$(L10N_framework)"==""
48 .IF "$(VERSIONOBJ)"!=""
49 SHL1VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL1TARGET))}$(VERSIONOBJ:f)
50 USE_VERSIONH:=$(INCCOM)/$(SHL1VERSIONOBJ:b).h
51 .IF "$(GUI)" == "UNX"
52 SHL1VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL1TARGET))}$(VERSIONOBJ:f:s/.o/.obj/)
53 .ELSE # "$(GUI)" == "UNX"
54 SHL1VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL1TARGET))}$(VERSIONOBJ:f)
55 .ENDIF # "$(GUI)" == "UNX"
56 $(MISC)/$(SHL1VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL1VERSIONOBJ:b).h
57 # $(COPY) $(SOLARENV)/src/version.c $@
58 $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL1VERSIONOBJ:b).h/ > $@
60 .INIT : $(SHL1VERSIONOBJDEP)
61 .ENDIF # "$(VERSIONOBJ)"!=""
62 .ENDIF
64 .IF "$(GUI)" != "UNX"
65 .IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
66 .IF "$(SHL1IMPLIB)" == ""
67 SHL1IMPLIB=i$(TARGET)_t1
68 .ENDIF # "$(SHL1IMPLIB)" == ""
69 .IF "$(COM)" != "GCC"
70 USE_1IMPLIB=-implib:$(LB)/$(SHL1IMPLIB).lib
71 .ENDIF # "$(COM)" != "GCC"
72 SHL1IMPLIBN=$(LB)/$(SHL1IMPLIB).lib
73 ALLTAR : $(SHL1IMPLIBN)
75 .IF "$(USE_DEFFILE)"==""
76 USE_1IMPLIB_DEPS=$(LB)/$(SHL1IMPLIB).lib
77 .ENDIF # "$(USE_DEFFILE)"==""
78 .ENDIF # "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
79 USE_SHL1DEF=$(SHL1DEF)
80 .ELSE # "$(GUI)" != "UNX"
81 USE_SHL1DEF=
82 SHL1DEPN+:=$(SHL1DEPNU)
84 .IF "$(SHL1VERSIONMAP)"==""
85 # to activate vmaps remove "#"
86 USE_SHL1VERSIONMAP=$(MISC)/$(SHL1TARGET).vmap
87 .ENDIF # "$(SHL1VERSIONMAP)"==""
89 .IF "$(USE_SHL1VERSIONMAP)"!=""
91 .IF "$(SHL1FILTERFILE)"!=""
92 .IF "$(SHL1VERSIONMAP)"!=""
93 #eine von beiden ist zuviel
94 USE_SHL1VERSIONMAP=$(MISC)/$(SHL1TARGET).vmap
95 $(USE_SHL1VERSIONMAP) .PHONY:
96 @echo -----------------------------
97 @echo you should only use versionmap OR exportfile
98 @echo -----------------------------
99 # force_dmake_to_error
101 .ENDIF # "$(SHL1VERSIONMAP)"!=""
103 .IF "$(OS)"!="IRIX"
104 SHL1VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL1VERSIONMAP)
105 .ENDIF
107 $(USE_SHL1VERSIONMAP): \
108 $(SHL1OBJS)\
109 $(SHL1LIBS)\
110 $(SHL1FILTERFILE)
111 @$(RM) $@.dump
112 .IF "$(SHL1OBJS)"!=""
113 # dump remaining objects on the fly
114 .IF "$(OS)"=="MACOSX"
115 @-nm $(SHL1OBJS:s/.obj/.o/) > $@.dump
116 .ELSE
117 @nm $(SHL1OBJS:s/.obj/.o/) > $@.dump
118 .ENDIF
119 .ENDIF # "$(SHL1OBJS)!"=""
120 @$(TYPE) /dev/null $(SHL1LIBS:s/.lib/.dump/) >> $@.dump
121 $(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL1INTERFACE) -f $(SHL1FILTERFILE) -m $@
123 .ELSE # "$(SHL1FILTERFILE)"!=""
124 USE_SHL1VERSIONMAP=$(MISC)/$(SHL1TARGET).vmap
125 $(USE_SHL1VERSIONMAP) :
126 .IF "$(VERBOSE)" == "TRUE"
127 @echo -----------------------------
128 @echo SHL1FILTERFILE not set!
129 @echo -----------------------------
130 @$(TOUCH) $@
131 @echo dummy file to keep the dependencies for later use.
132 .ELSE
133 @$(TOUCH) $@
134 .ENDIF
135 # force_dmake_to_error
136 .ENDIF # "$(SHL1FILTERFILE)"!=""
137 .ELSE # "$(USE_SHL1VERSIONMAP)"!=""
139 #and now for the plain non-generic way...
140 .IF "$(SHL1VERSIONMAP)"!=""
141 USE_SHL1VERSIONMAP=$(MISC)/$(SHL1VERSIONMAP:b)_$(SHL1TARGET)$(SHL1VERSIONMAP:e)
142 .IF "$(OS)"!="IRIX"
143 SHL1VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL1VERSIONMAP)
144 .ENDIF
146 .IF "$(OS)"=="MACOSX"
147 $(USE_SHL1VERSIONMAP): $(SHL1OBJS) $(SHL1LIBS)
148 .ENDIF
150 $(USE_SHL1VERSIONMAP): $(SHL1VERSIONMAP)
151 @@-$(RM) -f $@
152 # The following files will only be generated and needed on Mac OS X as temporary files
153 # in order to generate exported symbols list out of Linux/Solaris map files
154 .IF "$(OS)"=="MACOSX"
155 @-$(RM) -f $@.symregexp >& $(NULLDEV)
156 @-$(RM) -f $@.expsymlist >& $(NULLDEV)
157 .ENDIF
158 # Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what
159 # happens if somebody will change it in the future
160 .IF "$(COMID)"=="gcc3"
161 $(COMMAND_ECHO) tr -d "\015" < $(SHL1VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@
162 .ELIF "$(COMNAME)"=="sunpro5"
163 $(COMMAND_ECHO) tr -d "\015" < $(SHL1VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@
164 .ELSE # "$(COMID)"=="gcc3"
165 $(COMMAND_ECHO) tr -d "\015" < $(SHL1VERSIONMAP) > $@
166 .ENDIF # "$(COMID)"=="gcc3"
167 @chmod a+w $@
168 # Mac OS X post-processing generate an exported symbols list from the generated map file
169 # for details on exported symbols list see man ld on Mac OS X
170 .IF "$(OS)"=="MACOSX"
171 @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols
172 @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp
173 # Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
174 # Extract RTTI symbols from all the objects that will be used to build a shared library
175 .IF "$(SHL1OBJS)"!=""
176 -echo $(foreach,i,$(SHL1OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
177 .ENDIF
178 .IF "$(SHL1LIBS)"!=""
179 $(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL1LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
180 .ENDIF
181 # overwrite the map file generate into the local output tree with the generated
182 # exported symbols list
183 cp $@.exported-symbols $@
184 .ENDIF # .IF "$(OS)"=="MACOSX"
185 .ENDIF # "$(SHL1VERSIONMAP)"!=""
186 .ENDIF # "$(USE_SHL1VERSIONMAP)"!=""
187 .ENDIF # "$(GUI)" != "UNX"
189 .IF "$(UNIXVERSIONNAMES)"!=""
190 .IF "$(OS)"!="MACOSX"
191 .IF "$(GUI)"=="UNX"
192 .IF "$(OS)"=="IRIX"
193 SHL1SONAME=$(SONAME_SWITCH)$(SHL1TARGETN:f)
194 .ELSE
195 SHL1SONAME=\"$(SONAME_SWITCH)$(SHL1TARGETN:f)\"
196 .ENDIF
197 .ENDIF # "$(GUI)"!="UNX"
198 .ENDIF # "$(OS)"!="MACOSX"
199 .ENDIF # "$(UNIXVERSIONNAMES)"!=""
201 .IF "$(SHL1RES)"!=""
202 SHL1ALLRES+=$(SHL1RES)
203 SHL1LINKRES*=$(MISC)/$(SHL1TARGET).res
204 SHL1LINKRESO*=$(MISC)/$(SHL1TARGET)_res.o
205 .ENDIF # "$(SHL1RES)"!=""
207 .IF "$(SHL1DEFAULTRES)$(use_shl_versions)"!=""
208 SHL1DEFAULTRES*=$(MISC)/$(SHL1TARGET)_def.res
209 SHL1ALLRES+=$(SHL1DEFAULTRES)
210 SHL1LINKRES*=$(MISC)/$(SHL1TARGET).res
211 SHL1LINKRESO*=$(MISC)/$(SHL1TARGET)_res.o
212 .ENDIF # "$(SHL1DEFAULTRES)$(use_shl_versions)"!=""
214 #.IF "$(SHL1TARGETN)"!=""
216 .IF "$(linkinc)"!=""
217 .IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
218 .IF "$(SHL1LIBS)"!=""
219 $(MISC)/$(SHL1TARGET)_linkinc.ls .PHONY:
220 @@-$(RM) $@
221 $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL1LIBS) $(i:s/.lib/.lin/)) >> $@
222 .ENDIF # "$(SHL1LIBS)"!=""
223 .ENDIF
225 LINKINCTARGETS+=$(MISC)/$(SHL1TARGETN:b)_linkinc.ls
226 $(SHL1TARGETN) : $(LINKINCTARGETS)
228 .ELSE
229 .IF "$(SHL1USE_EXPORTS)"=="name"
230 .IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
231 .IF "$(COM)"!="GCC"
232 .IF "$(SHL1LIBS)"!=""
233 SHL1LINKLIST=$(MISC)/$(SHL1TARGET)_link.lst
234 SHL1LINKLISTPARAM=@$(SHL1LINKLIST)
235 $(SHL1LINKLIST) : $(SHL1LIBS)
236 @@-$(RM) $@
237 $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL1LIBS) $(i:s/.lib/.lin/)) >> $@
238 .ENDIF # "$(SHL1LIBS)"!=""
239 .ENDIF # "$(COM)"!="GCC"
240 .ENDIF
241 .ENDIF # "$(SHL1USE_EXPORTS)"=="name"
243 $(MISC)/%linkinc.ls:
244 @echo . > $@
245 .ENDIF # "$(linkinc)"!=""
247 .IF "$(GUI)" == "OS2"
248 #21/02/2006 YD dll names must be 8.3, invoke fix script
249 #check osl/os2/module.c/osl_loadModule()
250 SHL1TARGET8=$(shell @fix_shl $(SHL1TARGET))
251 .ENDIF
253 .IF "$(GUI)" == "OS2"
254 _SHL1IMP_ORD = $(SHL1STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(SHL1STDLIBS:^"$(LB)/")
255 SHL1IMP_ORD = $(foreach,i,$(_SHL1IMP_ORD) $(shell @-ls $i))
256 .ELSE
257 SHL1IMP_ORD =
258 .ENDIF
261 $(SHL1TARGETN) : \
262 $(SHL1OBJS)\
263 $(SHL1LIBS)\
264 $(USE_1IMPLIB_DEPS)\
265 $(USE_SHL1DEF)\
266 $(USE_SHL1VERSIONMAP)\
267 $(SHL1RES)\
268 $(SHL1DEPN) \
269 $(SHL1IMP_ORD) \
270 $(SHL1LINKLIST)
271 .IF "$(VERBOSE)" == "TRUE"
272 @echo ------------------------------
273 .ENDIF
274 @echo "Making: " $(@:f)
275 .IF "$(GUI)" == "WNT"
276 .IF "$(SHL1DEFAULTRES)"!=""
277 @@-$(RM) $(MISC)/$(SHL1DEFAULTRES:b).rc
278 .IF "$(SHL1ICON)" != ""
279 @echo 1 ICON $(SHL1ICON) >> $(MISC)/$(SHL1DEFAULTRES:b).rc
280 .ENDIF
281 .IF "$(use_shl_versions)" != ""
282 .IF "$(SHL1ADD_VERINFO)"!=""
283 @echo $(EMQ)#include $(EMQ)"$(SHL1ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL1DEFAULTRES:b).rc
284 .ELSE # "$(SHL1ADD_VERINFO)"!=""
285 @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL1DEFAULTRES:b).rc
286 @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL1DEFAULTRES:b).rc
287 @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL1DEFAULTRES:b).rc
288 .ENDIF # "$(SHL1ADD_VERINFO)"!=""
289 @echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(SHL1DEFAULTRES:b).rc
290 @echo $(EMQ)#define ORG_NAME $(SHL1TARGET)$(DLLPOST) >> $(MISC)/$(SHL1DEFAULTRES:b).rc
291 @echo $(EMQ)#define INTERNAL_NAME $(SHL1TARGET:b) >> $(MISC)/$(SHL1DEFAULTRES:b).rc
292 @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL1DEFAULTRES:b).rc
293 .ENDIF # "$(use_shl_versions)" != ""
294 $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL1DEFAULTRES:b).rc
295 .ENDIF # "$(SHL1DEFAULTRES)"!=""
296 .IF "$(SHL1ALLRES)"!=""
297 $(COMMAND_ECHO)$(TYPE) $(SHL1ALLRES) > $(SHL1LINKRES)
298 .IF "$(COM)"=="GCC"
299 windres $(SHL1LINKRES) $(SHL1LINKRESO)
300 .ENDIF # "$(COM)"=="GCC"
301 .ENDIF # "$(SHL1ALLRES)"!=""
302 .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def
303 @echo dlltool --input-def $(SHL1DEF) \
304 --dllname $(SHL1TARGET)$(DLLPOST) \
305 --kill-at \\ > $(MISC)/$(TARGET).$(@:b)_1.cmd
306 @noop $(assign ALL1OBJLIST:=$(STDOBJ) $(SHL1OBJS) $(SHL1LINKRESO) $(shell $(TYPE) /dev/null $(SHL1LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g))
307 .IF "$(DEFLIB1NAME)"!="" # do not have to include objs
308 @noop $(assign DEF1OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB1NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g))
309 @noop $(foreach,i,$(DEF1OBJLIST) $(assign ALL1OBJLIST:=$(ALL1OBJLIST:s?$i??)))
310 .ENDIF # "$(DEFLIB1NAME)"!=""
311 @echo --output-exp $(MISC)/$(@:b)_exp.o \
312 $(ALL1OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_1.cmd
313 @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \
314 $(STDOBJ) $(SHL1VERSIONOBJ) $(SHL1DESCRIPTIONOBJ) $(SHL1OBJS) $(SHL1LINKRESO) \
315 `$(TYPE) /dev/null $(SHL1LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
316 -Wl,--exclude-libs,ALL,--start-group $(SHL1STDLIBS) -Wl,--end-group \
317 $(SHL1STDSHL) $(STDSHL1) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \
318 -Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_1.cmd
319 @$(TYPE) $(MISC)/$(TARGET).$(@:b)_1.cmd
320 @+source $(MISC)/$(TARGET).$(@:b)_1.cmd
321 .ELSE
322 .IF "$(linkinc)"==""
323 .IF "$(SHL1USE_EXPORTS)"!="name"
324 .IF "$(USE_DEFFILE)"!=""
325 $(SHL1LINKER) @$(mktmp \
326 $(SHL1LINKFLAGS) \
327 $(LINKFLAGSSHL) \
328 $(SHL1STACK) $(SHL1BASEX) \
329 -out:$@ \
330 -map:$(MISC)/$(@:b).map \
331 -def:$(SHL1DEF) \
332 $(USE_1IMPLIB) \
333 $(STDOBJ) \
334 $(SHL1VERSIONOBJ) $(SHL1OBJS) \
335 $(SHL1LIBS) \
336 $(SHL1STDLIBS) \
337 $(SHL1STDSHL) $(STDSHL1) \
338 $(SHL1LINKRES) \
339 ) $(LINKOUTPUTFILTER)
340 # double check if target was really written... still making sense?
341 @@$(LS) $@
342 @echo linking $@.manifest ...
343 .IF "$(VISTA_MANIFEST)"!=""
344 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
345 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
346 .ELSE
347 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
348 .ENDIF # "$(VISTA_MANIFEST)"!=""
349 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
350 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
351 .ELSE # "$(USE_DEFFILE)"!=""
352 $(COMMAND_ECHO)$(SHL1LINKER) @$(mktmp $(SHL1LINKFLAGS) \
353 $(LINKFLAGSSHL) $(SHL1BASEX) \
354 $(SHL1STACK) -out:$(SHL1TARGETN) \
355 -map:$(MISC)/$(@:B).map \
356 $(LB)/$(SHL1IMPLIB).exp \
357 $(STDOBJ) \
358 $(SHL1OBJS) $(SHL1VERSIONOBJ) \
359 $(SHL1LIBS) \
360 $(SHL1STDLIBS) \
361 $(SHL1STDSHL) $(STDSHL1) \
362 $(SHL1LINKRES) \
363 ) $(LINKOUTPUTFILTER)
364 # double check if target was really written... still making sense?
365 @@$(LS) $@
366 @echo linking $@.manifest ...
367 .IF "$(VISTA_MANIFEST)"!=""
368 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
369 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
370 .ELSE
371 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
372 .ENDIF # "$(VISTA_MANIFEST)"!=""
373 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
374 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
375 .ENDIF # "$(USE_DEFFILE)"!=""
376 .ELSE # "$(SHL1USE_EXPORTS)"!="name"
377 $(COMMAND_ECHO)$(SHL1LINKER) @$(mktmp $(SHL1LINKFLAGS) \
378 $(LINKFLAGSSHL) $(SHL1BASEX) \
379 $(SHL1STACK) -out:$(SHL1TARGETN) \
380 -map:$(MISC)/$(@:B).map \
381 $(USE_1IMPLIB) \
382 $(STDOBJ) \
383 $(SHL1OBJS) $(SHL1VERSIONOBJ)) \
384 $(SHL1LINKLISTPARAM) \
385 @$(mktmp $(SHL1STDLIBS) \
386 $(SHL1STDSHL) $(STDSHL1) \
387 $(SHL1LINKRES) \
389 @echo linking $@.manifest ...
390 .IF "$(VISTA_MANIFEST)"!=""
391 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
392 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
393 .ELSE
394 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
395 .ENDIF # "$(VISTA_MANIFEST)"!=""
396 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
397 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
398 .ENDIF # "$(SHL1USE_EXPORTS)"!="name"
399 .ELSE # "$(linkinc)"==""
400 $(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL1TARGET).lnk
401 $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL1TARGET).lst
402 $(COMMAND_ECHO)$(TYPE) $(mktmp \
403 $(SHL1LINKFLAGS) \
404 $(LINKFLAGSSHL) $(SHL1BASEX) \
405 $(SHL1STACK) $(MAPFILE) \
406 -out:$@ \
407 $(LB)/$(SHL1IMPLIB).exp \
408 $(STDOBJ) \
409 $(SHL1OBJS) \
410 $(SHL1STDLIBS) \
411 $(SHL1STDSHL) $(STDSHL1) \
412 $(SHL1LINKRES) \
413 ) >> $(MISC)/$(SHL1TARGET).lnk
414 $(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL1TARGETN:b)_linkinc.ls >> $(MISC)/$(SHL1TARGET).lnk
415 $(COMMAND_ECHO)$(SHL1LINKER) @$(MISC)/$(SHL1TARGET).lnk
416 @echo linking $@.manifest ...
417 .IF "$(VISTA_MANIFEST)"!=""
418 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
419 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
420 .ELSE
421 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
422 .ENDIF # "$(VISTA_MANIFEST)"!=""
423 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
424 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
425 .ENDIF # "$(linkinc)"==""
426 .ENDIF # "$(COM)"=="GCC"
427 .ENDIF # "$(GUI)" == "WNT"
428 .IF "$(GUI)"=="UNX"
429 .IF "$(OS)"=="MACOSX"
430 @-$(RM) $(MISC)/$(@:b).list
431 @-$(RM) $(MISC)/$(TARGET).$(@:b)_1.cmd
432 @echo $(STDSLO) $(SHL1OBJS:s/.obj/.o/) \
433 $(SHL1VERSIONOBJ) \
434 `cat /dev/null $(SHL1LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list
435 @echo -n $(SHL1LINKER) $(SHL1LINKFLAGS) $(SHL1VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \
436 $(SHL1STDLIBS) $(SHL1ARCHIVES) $(SHL1STDSHL) $(STDSHL1) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_1.cmd
437 @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \
438 `cat $(MISC)/$(TARGET).$(@:b)_1.cmd` \
439 >> $(MISC)/$(TARGET).$(@:b)_1.cmd
440 .IF "$(VERBOSE)" == "TRUE"
441 @cat $(MISC)/$(TARGET).$(@:b)_1.cmd
442 .ENDIF
443 @+source $(MISC)/$(TARGET).$(@:b)_1.cmd
444 @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \
445 shl $(SHL1RPATH) $@
446 @echo "Making: " $(@:f).jnilib
447 @macosx-create-bundle $@
448 .IF "$(UPDATER)"=="YES"
449 .IF "$(SHL1NOCHECK)"==""
450 $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS1) $(SHL1TARGETN)
451 .ENDIF # "$(SHL1NOCHECK)"!=""
452 .ENDIF
453 .ELSE # "$(OS)"=="MACOSX"
454 @-$(RM) $(MISC)/$(TARGET).$(@:b)_1.cmd
455 @echo $(SHL1LINKER) $(SHL1LINKFLAGS) $(SHL1SONAME) $(LINKFLAGSSHL) $(SHL1VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL1OBJS:s/.obj/.o/) \
456 $(SHL1VERSIONOBJ) -o $@ \
457 `cat /dev/null $(SHL1LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
458 $(SHL1STDLIBS) $(SHL1ARCHIVES) $(SHL1STDSHL) $(STDSHL1) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_1.cmd
459 .IF "$(VERBOSE)" == "TRUE"
460 @cat $(MISC)/$(TARGET).$(@:b)_1.cmd
461 .ENDIF
462 @+source $(MISC)/$(TARGET).$(@:b)_1.cmd
463 .IF "$(UPDATER)"=="YES"
464 .IF "$(SHL1NOCHECK)"==""
465 $(COMMAND_ECHO)-$(RM) $(SHL1TARGETN:d)check_$(SHL1TARGETN:f)
466 $(COMMAND_ECHO)$(RENAME) $(SHL1TARGETN) $(SHL1TARGETN:d)check_$(SHL1TARGETN:f)
467 .IF "$(VERBOSE)"=="TRUE"
468 $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS1) $(SHL1TARGETN:d)check_$(SHL1TARGETN:f)
469 .ELSE
470 $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS1) -- -s $(SHL1TARGETN:d)check_$(SHL1TARGETN:f)
471 .ENDIF
472 .ENDIF # "$(SHL1NOCHECK)"!=""
473 .ENDIF # "$(UPDATER)"=="YES"
474 .ENDIF # "$(OS)"=="MACOSX"
475 .IF "$(UNIXVERSIONNAMES)"!=""
476 $(COMMAND_ECHO)$(RM) $(LB)/$(SHL1TARGETN:b)
477 $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL1TARGETN:f) $(SHL1TARGETN:b)
478 .ENDIF # "$(UNIXVERSIONNAMES)"!=""
479 .IF "$(VERBOSE)" == "TRUE"
480 @ls -l $@
481 .ENDIF
482 .ENDIF # "$(GUI)" == "UNX"
484 .IF "$(GUI)" == "OS2"
486 .IF "$(SHL1DEFAULTRES)"!=""
487 @+-$(RM) $(MISC)/$(SHL1DEFAULTRES:b).rc >& $(NULLDEV)
488 .IF "$(SHL1ICON)" != ""
489 @-+echo 1 ICON $(SHL1ICON) >> $(MISC)/$(SHL1DEFAULTRES:b).rc
490 .ENDIF
491 .IF "$(use_shl_versions)" != ""
492 .IF "$(SHL1ADD_VERINFO)"!=""
493 @-+echo $(EMQ)#include $(EMQ)"$(SHL1ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL1DEFAULTRES:b).rc
494 .ENDIF # "$(SHL1ADD_VERINFO)"!=""
495 @-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL1DEFAULTRES:b).rc
496 # @-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL1DEFAULTRES:b).rc
497 .ENDIF # "$(use_shl_versions)" != ""
498 # YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR)
499 $(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL1DEFAULTRES:b).rc
500 .ENDIF # "$(SHL1DEFAULTRES)"!=""
502 .IF "$(SHL1ALLRES)"!=""
503 $(COMMAND_ECHO)+$(TYPE) $(SHL1ALLRES) > $(SHL1LINKRES)
504 .ENDIF # "$(SHL1ALLRES)"!=""
506 .IF "$(USE_DEFFILE)"!=""
508 $(COMMAND_ECHO)$(SHL1LINKER) $(SHL1LINKFLAGS) $(LINKFLAGSSHL) -o $@ \
509 $(SHL1DEF) \
510 $(STDOBJ) \
511 -L$(LB) \
512 -L$(SOLARVERSION)/$(INPATH)/lib \
513 $(SHL1OBJS) $(SHL1VERSIONOBJ) \
514 $(SHL1LIBS) \
515 $(SHL1STDLIBS:^"-l") \
516 $(SHL1LINKRES) \
517 $(SHL1STDSHL:^"-l") $(STDSHL1:^"-l")
519 .ELSE # "$(USE_DEFFILE)"!=""
521 $(COMMAND_ECHO)$(SHL1LINKER) -v $(SHL1LINKFLAGS) \
522 $(LINKFLAGSSHL) $(SHL1BASEX) \
523 $(SHL1STACK) -o $(SHL1TARGETN) \
524 $(SHL1DEF) \
525 $(STDOBJ) \
526 -L$(LB) \
527 -L$(SOLARVERSION)/$(INPATH)/lib \
528 $(SHL1OBJS) $(SHL1VERSIONOBJ) \
529 $(SHL1LIBS) \
530 $(SHL1STDLIBS:^"-l") \
531 $(SHL1LINKRES) \
532 $(SHL1STDSHL:^"-l") $(STDSHL1:^"-l") \
533 $(LINKOUTPUTFILTER)
534 @$(LS) $@ >& $(NULLDEV)
536 .ENDIF # "$(USE_DEFFILE)"!=""
538 .IF "$(SHL1TARGET8)" != "$(SHL1TARGET)"
539 $(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL1TARGET8).dll
540 .ENDIF
542 .ENDIF # "$(GUI)" == "OS2"
545 .IF "$(TESTDIR)"!=""
546 .IF "$(NO_TESTS)"==""
548 ALLTAR : runtest_$(SHL1TARGET)
550 runtest_$(SHL1TARGET) : $(SHL1TARGETN)
551 testshl $(SHL1TARGETN) sce/$(SHL1TARGET).sce -msg -skip
552 .ENDIF # "$(NO_TESTS)"==""
553 .ENDIF # "$(TESTDIR)"!=""
554 .ENDIF # "$(SHL1TARGETN)"!=""
556 # unroll begin
558 .IF "$(SHL2TARGETN)"!=""
560 .IF "$(OS)"=="AIX"
561 SHL2STDLIBS=
562 .ENDIF
564 .IF "$(SHLLINKARCONLY)" != ""
565 SHL2STDLIBS=
566 STDSHL=
567 .ELSE
568 SHL2ARCHIVES=
569 .ENDIF
571 # decide how to link
572 .IF "$(SHL2CODETYPE)"=="C"
573 SHL2LINKER=$(LINKC)
574 SHL2STDSHL=$(subst,CPPRUNTIME, $(STDSHL))
575 SHL2LINKFLAGS+=$(LINKCFLAGS)
576 .ELSE # "$(SHL2CODETYPE)"=="C"
577 SHL2LINKER=$(LINK)
578 SHL2STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL))
579 SHL2LINKFLAGS+=$(LINKFLAGS)
580 .ENDIF # "$(SHL2CODETYPE)"=="C"
582 SHL2RPATH*=OOO
583 LINKFLAGSRUNPATH_$(SHL2RPATH)*=/ERROR:/Bad_SHL2RPATH_value
584 SHL2LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL2RPATH))
586 .IF "$(SHL2USE_EXPORTS)"==""
587 SHL2DEF*=$(MISC)/$(SHL2TARGET).def
588 .ENDIF # "$(SHL2USE_EXPORTS)"==""
590 EXTRALIBPATHS2=$(EXTRALIBPATHS)
591 .IF "$(UPDATER)"=="YES"
592 .IF "$(SHL2NOCHECK)"==""
593 .IF "$(SOLAR_STLLIBPATH)"!=""
594 EXTRALIBPATHS2+=-L$(SOLAR_STLLIBPATH)
595 .ENDIF
596 .ENDIF # "$(SHL2NOCHECK)"!=""
597 .ENDIF
598 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
599 #+++++++++++ version object ++++++++++++++++++++++++++++++++++++++++
600 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
602 .IF "$(L10N_framework)"==""
603 .IF "$(VERSIONOBJ)"!=""
604 SHL2VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL2TARGET))}$(VERSIONOBJ:f)
605 USE_VERSIONH:=$(INCCOM)/$(SHL2VERSIONOBJ:b).h
606 .IF "$(GUI)" == "UNX"
607 SHL2VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL2TARGET))}$(VERSIONOBJ:f:s/.o/.obj/)
608 .ELSE # "$(GUI)" == "UNX"
609 SHL2VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL2TARGET))}$(VERSIONOBJ:f)
610 .ENDIF # "$(GUI)" == "UNX"
611 $(MISC)/$(SHL2VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL2VERSIONOBJ:b).h
612 # $(COPY) $(SOLARENV)/src/version.c $@
613 $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL2VERSIONOBJ:b).h/ > $@
615 .INIT : $(SHL2VERSIONOBJDEP)
616 .ENDIF # "$(VERSIONOBJ)"!=""
617 .ENDIF
619 .IF "$(GUI)" != "UNX"
620 .IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
621 .IF "$(SHL2IMPLIB)" == ""
622 SHL2IMPLIB=i$(TARGET)_t2
623 .ENDIF # "$(SHL2IMPLIB)" == ""
624 .IF "$(COM)" != "GCC"
625 USE_2IMPLIB=-implib:$(LB)/$(SHL2IMPLIB).lib
626 .ENDIF # "$(COM)" != "GCC"
627 SHL2IMPLIBN=$(LB)/$(SHL2IMPLIB).lib
628 ALLTAR : $(SHL2IMPLIBN)
630 .IF "$(USE_DEFFILE)"==""
631 USE_2IMPLIB_DEPS=$(LB)/$(SHL2IMPLIB).lib
632 .ENDIF # "$(USE_DEFFILE)"==""
633 .ENDIF # "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
634 USE_SHL2DEF=$(SHL2DEF)
635 .ELSE # "$(GUI)" != "UNX"
636 USE_SHL2DEF=
637 SHL2DEPN+:=$(SHL2DEPNU)
639 .IF "$(SHL2VERSIONMAP)"==""
640 # to activate vmaps remove "#"
641 USE_SHL2VERSIONMAP=$(MISC)/$(SHL2TARGET).vmap
642 .ENDIF # "$(SHL2VERSIONMAP)"==""
644 .IF "$(USE_SHL2VERSIONMAP)"!=""
646 .IF "$(SHL2FILTERFILE)"!=""
647 .IF "$(SHL2VERSIONMAP)"!=""
648 #eine von beiden ist zuviel
649 USE_SHL2VERSIONMAP=$(MISC)/$(SHL2TARGET).vmap
650 $(USE_SHL2VERSIONMAP) .PHONY:
651 @echo -----------------------------
652 @echo you should only use versionmap OR exportfile
653 @echo -----------------------------
654 # force_dmake_to_error
656 .ENDIF # "$(SHL2VERSIONMAP)"!=""
658 .IF "$(OS)"!="IRIX"
659 SHL2VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL2VERSIONMAP)
660 .ENDIF
662 $(USE_SHL2VERSIONMAP): \
663 $(SHL2OBJS)\
664 $(SHL2LIBS)\
665 $(SHL2FILTERFILE)
666 @$(RM) $@.dump
667 .IF "$(SHL2OBJS)"!=""
668 # dump remaining objects on the fly
669 .IF "$(OS)"=="MACOSX"
670 @-nm $(SHL2OBJS:s/.obj/.o/) > $@.dump
671 .ELSE
672 @nm $(SHL2OBJS:s/.obj/.o/) > $@.dump
673 .ENDIF
674 .ENDIF # "$(SHL2OBJS)!"=""
675 @$(TYPE) /dev/null $(SHL2LIBS:s/.lib/.dump/) >> $@.dump
676 $(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL2INTERFACE) -f $(SHL2FILTERFILE) -m $@
678 .ELSE # "$(SHL2FILTERFILE)"!=""
679 USE_SHL2VERSIONMAP=$(MISC)/$(SHL2TARGET).vmap
680 $(USE_SHL2VERSIONMAP) :
681 .IF "$(VERBOSE)" == "TRUE"
682 @echo -----------------------------
683 @echo SHL2FILTERFILE not set!
684 @echo -----------------------------
685 @$(TOUCH) $@
686 @echo dummy file to keep the dependencies for later use.
687 .ELSE
688 @$(TOUCH) $@
689 .ENDIF
690 # force_dmake_to_error
691 .ENDIF # "$(SHL2FILTERFILE)"!=""
692 .ELSE # "$(USE_SHL2VERSIONMAP)"!=""
694 #and now for the plain non-generic way...
695 .IF "$(SHL2VERSIONMAP)"!=""
696 USE_SHL2VERSIONMAP=$(MISC)/$(SHL2VERSIONMAP:b)_$(SHL2TARGET)$(SHL2VERSIONMAP:e)
697 .IF "$(OS)"!="IRIX"
698 SHL2VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL2VERSIONMAP)
699 .ENDIF
701 .IF "$(OS)"=="MACOSX"
702 $(USE_SHL2VERSIONMAP): $(SHL2OBJS) $(SHL2LIBS)
703 .ENDIF
705 $(USE_SHL2VERSIONMAP): $(SHL2VERSIONMAP)
706 @@-$(RM) -f $@
707 # The following files will only be generated and needed on Mac OS X as temporary files
708 # in order to generate exported symbols list out of Linux/Solaris map files
709 .IF "$(OS)"=="MACOSX"
710 @-$(RM) -f $@.symregexp >& $(NULLDEV)
711 @-$(RM) -f $@.expsymlist >& $(NULLDEV)
712 .ENDIF
713 # Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what
714 # happens if somebody will change it in the future
715 .IF "$(COMID)"=="gcc3"
716 $(COMMAND_ECHO) tr -d "\015" < $(SHL2VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@
717 .ELIF "$(COMNAME)"=="sunpro5"
718 $(COMMAND_ECHO) tr -d "\015" < $(SHL2VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@
719 .ELSE # "$(COMID)"=="gcc3"
720 $(COMMAND_ECHO) tr -d "\015" < $(SHL2VERSIONMAP) > $@
721 .ENDIF # "$(COMID)"=="gcc3"
722 @chmod a+w $@
723 # Mac OS X post-processing generate an exported symbols list from the generated map file
724 # for details on exported symbols list see man ld on Mac OS X
725 .IF "$(OS)"=="MACOSX"
726 @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols
727 @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp
728 # Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
729 # Extract RTTI symbols from all the objects that will be used to build a shared library
730 .IF "$(SHL2OBJS)"!=""
731 -echo $(foreach,i,$(SHL2OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
732 .ENDIF
733 .IF "$(SHL2LIBS)"!=""
734 $(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL2LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
735 .ENDIF
736 # overwrite the map file generate into the local output tree with the generated
737 # exported symbols list
738 cp $@.exported-symbols $@
739 .ENDIF # .IF "$(OS)"=="MACOSX"
740 .ENDIF # "$(SHL2VERSIONMAP)"!=""
741 .ENDIF # "$(USE_SHL2VERSIONMAP)"!=""
742 .ENDIF # "$(GUI)" != "UNX"
744 .IF "$(UNIXVERSIONNAMES)"!=""
745 .IF "$(OS)"!="MACOSX"
746 .IF "$(GUI)"=="UNX"
747 .IF "$(OS)"=="IRIX"
748 SHL2SONAME=$(SONAME_SWITCH)$(SHL2TARGETN:f)
749 .ELSE
750 SHL2SONAME=\"$(SONAME_SWITCH)$(SHL2TARGETN:f)\"
751 .ENDIF
752 .ENDIF # "$(GUI)"!="UNX"
753 .ENDIF # "$(OS)"!="MACOSX"
754 .ENDIF # "$(UNIXVERSIONNAMES)"!=""
756 .IF "$(SHL2RES)"!=""
757 SHL2ALLRES+=$(SHL2RES)
758 SHL2LINKRES*=$(MISC)/$(SHL2TARGET).res
759 SHL2LINKRESO*=$(MISC)/$(SHL2TARGET)_res.o
760 .ENDIF # "$(SHL2RES)"!=""
762 .IF "$(SHL2DEFAULTRES)$(use_shl_versions)"!=""
763 SHL2DEFAULTRES*=$(MISC)/$(SHL2TARGET)_def.res
764 SHL2ALLRES+=$(SHL2DEFAULTRES)
765 SHL2LINKRES*=$(MISC)/$(SHL2TARGET).res
766 SHL2LINKRESO*=$(MISC)/$(SHL2TARGET)_res.o
767 .ENDIF # "$(SHL2DEFAULTRES)$(use_shl_versions)"!=""
769 #.IF "$(SHL2TARGETN)"!=""
771 .IF "$(linkinc)"!=""
772 .IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
773 .IF "$(SHL2LIBS)"!=""
774 $(MISC)/$(SHL2TARGET)_linkinc.ls .PHONY:
775 @@-$(RM) $@
776 $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL2LIBS) $(i:s/.lib/.lin/)) >> $@
777 .ENDIF # "$(SHL2LIBS)"!=""
778 .ENDIF
780 LINKINCTARGETS+=$(MISC)/$(SHL2TARGETN:b)_linkinc.ls
781 $(SHL2TARGETN) : $(LINKINCTARGETS)
783 .ELSE
784 .IF "$(SHL2USE_EXPORTS)"=="name"
785 .IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
786 .IF "$(COM)"!="GCC"
787 .IF "$(SHL2LIBS)"!=""
788 SHL2LINKLIST=$(MISC)/$(SHL2TARGET)_link.lst
789 SHL2LINKLISTPARAM=@$(SHL2LINKLIST)
790 $(SHL2LINKLIST) : $(SHL2LIBS)
791 @@-$(RM) $@
792 $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL2LIBS) $(i:s/.lib/.lin/)) >> $@
793 .ENDIF # "$(SHL2LIBS)"!=""
794 .ENDIF # "$(COM)"!="GCC"
795 .ENDIF
796 .ENDIF # "$(SHL2USE_EXPORTS)"=="name"
798 $(MISC)/%linkinc.ls:
799 @echo . > $@
800 .ENDIF # "$(linkinc)"!=""
802 .IF "$(GUI)" == "OS2"
803 #21/02/2006 YD dll names must be 8.3, invoke fix script
804 #check osl/os2/module.c/osl_loadModule()
805 SHL2TARGET8=$(shell @fix_shl $(SHL2TARGET))
806 .ENDIF
808 .IF "$(GUI)" == "OS2"
809 _SHL2IMP_ORD = $(SHL2STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(SHL2STDLIBS:^"$(LB)/")
810 SHL2IMP_ORD = $(foreach,i,$(_SHL2IMP_ORD) $(shell @-ls $i))
811 .ELSE
812 SHL2IMP_ORD =
813 .ENDIF
816 $(SHL2TARGETN) : \
817 $(SHL2OBJS)\
818 $(SHL2LIBS)\
819 $(USE_2IMPLIB_DEPS)\
820 $(USE_SHL2DEF)\
821 $(USE_SHL2VERSIONMAP)\
822 $(SHL2RES)\
823 $(SHL2DEPN) \
824 $(SHL2IMP_ORD) \
825 $(SHL2LINKLIST)
826 .IF "$(VERBOSE)" == "TRUE"
827 @echo ------------------------------
828 .ENDIF
829 @echo "Making: " $(@:f)
830 .IF "$(GUI)" == "WNT"
831 .IF "$(SHL2DEFAULTRES)"!=""
832 @@-$(RM) $(MISC)/$(SHL2DEFAULTRES:b).rc
833 .IF "$(SHL2ICON)" != ""
834 @echo 1 ICON $(SHL2ICON) >> $(MISC)/$(SHL2DEFAULTRES:b).rc
835 .ENDIF
836 .IF "$(use_shl_versions)" != ""
837 .IF "$(SHL2ADD_VERINFO)"!=""
838 @echo $(EMQ)#include $(EMQ)"$(SHL2ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL2DEFAULTRES:b).rc
839 .ELSE # "$(SHL2ADD_VERINFO)"!=""
840 @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL2DEFAULTRES:b).rc
841 @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL2DEFAULTRES:b).rc
842 @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL2DEFAULTRES:b).rc
843 .ENDIF # "$(SHL2ADD_VERINFO)"!=""
844 @echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(SHL2DEFAULTRES:b).rc
845 @echo $(EMQ)#define ORG_NAME $(SHL2TARGET)$(DLLPOST) >> $(MISC)/$(SHL2DEFAULTRES:b).rc
846 @echo $(EMQ)#define INTERNAL_NAME $(SHL2TARGET:b) >> $(MISC)/$(SHL2DEFAULTRES:b).rc
847 @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL2DEFAULTRES:b).rc
848 .ENDIF # "$(use_shl_versions)" != ""
849 $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL2DEFAULTRES:b).rc
850 .ENDIF # "$(SHL2DEFAULTRES)"!=""
851 .IF "$(SHL2ALLRES)"!=""
852 $(COMMAND_ECHO)$(TYPE) $(SHL2ALLRES) > $(SHL2LINKRES)
853 .IF "$(COM)"=="GCC"
854 windres $(SHL2LINKRES) $(SHL2LINKRESO)
855 .ENDIF # "$(COM)"=="GCC"
856 .ENDIF # "$(SHL2ALLRES)"!=""
857 .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def
858 @echo dlltool --input-def $(SHL2DEF) \
859 --dllname $(SHL2TARGET)$(DLLPOST) \
860 --kill-at \\ > $(MISC)/$(TARGET).$(@:b)_2.cmd
861 @noop $(assign ALL2OBJLIST:=$(STDOBJ) $(SHL2OBJS) $(SHL2LINKRESO) $(shell $(TYPE) /dev/null $(SHL2LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g))
862 .IF "$(DEFLIB2NAME)"!="" # do not have to include objs
863 @noop $(assign DEF2OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB2NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g))
864 @noop $(foreach,i,$(DEF2OBJLIST) $(assign ALL2OBJLIST:=$(ALL2OBJLIST:s?$i??)))
865 .ENDIF # "$(DEFLIB2NAME)"!=""
866 @echo --output-exp $(MISC)/$(@:b)_exp.o \
867 $(ALL2OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_2.cmd
868 @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \
869 $(STDOBJ) $(SHL2VERSIONOBJ) $(SHL2DESCRIPTIONOBJ) $(SHL2OBJS) $(SHL2LINKRESO) \
870 `$(TYPE) /dev/null $(SHL2LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
871 -Wl,--exclude-libs,ALL,--start-group $(SHL2STDLIBS) -Wl,--end-group \
872 $(SHL2STDSHL) $(STDSHL2) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \
873 -Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_2.cmd
874 @$(TYPE) $(MISC)/$(TARGET).$(@:b)_2.cmd
875 @+source $(MISC)/$(TARGET).$(@:b)_2.cmd
876 .ELSE
877 .IF "$(linkinc)"==""
878 .IF "$(SHL2USE_EXPORTS)"!="name"
879 .IF "$(USE_DEFFILE)"!=""
880 $(SHL2LINKER) @$(mktmp \
881 $(SHL2LINKFLAGS) \
882 $(LINKFLAGSSHL) \
883 $(SHL2STACK) $(SHL2BASEX) \
884 -out:$@ \
885 -map:$(MISC)/$(@:b).map \
886 -def:$(SHL2DEF) \
887 $(USE_2IMPLIB) \
888 $(STDOBJ) \
889 $(SHL2VERSIONOBJ) $(SHL2OBJS) \
890 $(SHL2LIBS) \
891 $(SHL2STDLIBS) \
892 $(SHL2STDSHL) $(STDSHL2) \
893 $(SHL2LINKRES) \
894 ) $(LINKOUTPUTFILTER)
895 # double check if target was really written... still making sense?
896 @@$(LS) $@
897 @echo linking $@.manifest ...
898 .IF "$(VISTA_MANIFEST)"!=""
899 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
900 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
901 .ELSE
902 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
903 .ENDIF # "$(VISTA_MANIFEST)"!=""
904 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
905 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
906 .ELSE # "$(USE_DEFFILE)"!=""
907 $(COMMAND_ECHO)$(SHL2LINKER) @$(mktmp $(SHL2LINKFLAGS) \
908 $(LINKFLAGSSHL) $(SHL2BASEX) \
909 $(SHL2STACK) -out:$(SHL2TARGETN) \
910 -map:$(MISC)/$(@:B).map \
911 $(LB)/$(SHL2IMPLIB).exp \
912 $(STDOBJ) \
913 $(SHL2OBJS) $(SHL2VERSIONOBJ) \
914 $(SHL2LIBS) \
915 $(SHL2STDLIBS) \
916 $(SHL2STDSHL) $(STDSHL2) \
917 $(SHL2LINKRES) \
918 ) $(LINKOUTPUTFILTER)
919 # double check if target was really written... still making sense?
920 @@$(LS) $@
921 @echo linking $@.manifest ...
922 .IF "$(VISTA_MANIFEST)"!=""
923 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
924 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
925 .ELSE
926 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
927 .ENDIF # "$(VISTA_MANIFEST)"!=""
928 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
929 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
930 .ENDIF # "$(USE_DEFFILE)"!=""
931 .ELSE # "$(SHL2USE_EXPORTS)"!="name"
932 $(COMMAND_ECHO)$(SHL2LINKER) @$(mktmp $(SHL2LINKFLAGS) \
933 $(LINKFLAGSSHL) $(SHL2BASEX) \
934 $(SHL2STACK) -out:$(SHL2TARGETN) \
935 -map:$(MISC)/$(@:B).map \
936 $(USE_2IMPLIB) \
937 $(STDOBJ) \
938 $(SHL2OBJS) $(SHL2VERSIONOBJ)) \
939 $(SHL2LINKLISTPARAM) \
940 @$(mktmp $(SHL2STDLIBS) \
941 $(SHL2STDSHL) $(STDSHL2) \
942 $(SHL2LINKRES) \
944 @echo linking $@.manifest ...
945 .IF "$(VISTA_MANIFEST)"!=""
946 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
947 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
948 .ELSE
949 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
950 .ENDIF # "$(VISTA_MANIFEST)"!=""
951 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
952 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
953 .ENDIF # "$(SHL2USE_EXPORTS)"!="name"
954 .ELSE # "$(linkinc)"==""
955 $(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL2TARGET).lnk
956 $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL2TARGET).lst
957 $(COMMAND_ECHO)$(TYPE) $(mktmp \
958 $(SHL2LINKFLAGS) \
959 $(LINKFLAGSSHL) $(SHL2BASEX) \
960 $(SHL2STACK) $(MAPFILE) \
961 -out:$@ \
962 $(LB)/$(SHL2IMPLIB).exp \
963 $(STDOBJ) \
964 $(SHL2OBJS) \
965 $(SHL2STDLIBS) \
966 $(SHL2STDSHL) $(STDSHL2) \
967 $(SHL2LINKRES) \
968 ) >> $(MISC)/$(SHL2TARGET).lnk
969 $(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL2TARGETN:b)_linkinc.ls >> $(MISC)/$(SHL2TARGET).lnk
970 $(COMMAND_ECHO)$(SHL2LINKER) @$(MISC)/$(SHL2TARGET).lnk
971 @echo linking $@.manifest ...
972 .IF "$(VISTA_MANIFEST)"!=""
973 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
974 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
975 .ELSE
976 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
977 .ENDIF # "$(VISTA_MANIFEST)"!=""
978 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
979 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
980 .ENDIF # "$(linkinc)"==""
981 .ENDIF # "$(COM)"=="GCC"
982 .ENDIF # "$(GUI)" == "WNT"
983 .IF "$(GUI)"=="UNX"
984 .IF "$(OS)"=="MACOSX"
985 @-$(RM) $(MISC)/$(@:b).list
986 @-$(RM) $(MISC)/$(TARGET).$(@:b)_2.cmd
987 @echo $(STDSLO) $(SHL2OBJS:s/.obj/.o/) \
988 $(SHL2VERSIONOBJ) \
989 `cat /dev/null $(SHL2LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list
990 @echo -n $(SHL2LINKER) $(SHL2LINKFLAGS) $(SHL2VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \
991 $(SHL2STDLIBS) $(SHL2ARCHIVES) $(SHL2STDSHL) $(STDSHL2) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_2.cmd
992 @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \
993 `cat $(MISC)/$(TARGET).$(@:b)_2.cmd` \
994 >> $(MISC)/$(TARGET).$(@:b)_2.cmd
995 .IF "$(VERBOSE)" == "TRUE"
996 @cat $(MISC)/$(TARGET).$(@:b)_2.cmd
997 .ENDIF
998 @+source $(MISC)/$(TARGET).$(@:b)_2.cmd
999 @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \
1000 shl $(SHL2RPATH) $@
1001 @echo "Making: " $(@:f).jnilib
1002 @macosx-create-bundle $@
1003 .IF "$(UPDATER)"=="YES"
1004 .IF "$(SHL2NOCHECK)"==""
1005 $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS2) $(SHL2TARGETN)
1006 .ENDIF # "$(SHL2NOCHECK)"!=""
1007 .ENDIF
1008 .ELSE # "$(OS)"=="MACOSX"
1009 @-$(RM) $(MISC)/$(TARGET).$(@:b)_2.cmd
1010 @echo $(SHL2LINKER) $(SHL2LINKFLAGS) $(SHL2SONAME) $(LINKFLAGSSHL) $(SHL2VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL2OBJS:s/.obj/.o/) \
1011 $(SHL2VERSIONOBJ) -o $@ \
1012 `cat /dev/null $(SHL2LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
1013 $(SHL2STDLIBS) $(SHL2ARCHIVES) $(SHL2STDSHL) $(STDSHL2) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_2.cmd
1014 .IF "$(VERBOSE)" == "TRUE"
1015 @cat $(MISC)/$(TARGET).$(@:b)_2.cmd
1016 .ENDIF
1017 @+source $(MISC)/$(TARGET).$(@:b)_2.cmd
1018 .IF "$(UPDATER)"=="YES"
1019 .IF "$(SHL2NOCHECK)"==""
1020 $(COMMAND_ECHO)-$(RM) $(SHL2TARGETN:d)check_$(SHL2TARGETN:f)
1021 $(COMMAND_ECHO)$(RENAME) $(SHL2TARGETN) $(SHL2TARGETN:d)check_$(SHL2TARGETN:f)
1022 .IF "$(VERBOSE)"=="TRUE"
1023 $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS2) $(SHL2TARGETN:d)check_$(SHL2TARGETN:f)
1024 .ELSE
1025 $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS2) -- -s $(SHL2TARGETN:d)check_$(SHL2TARGETN:f)
1026 .ENDIF
1027 .ENDIF # "$(SHL2NOCHECK)"!=""
1028 .ENDIF # "$(UPDATER)"=="YES"
1029 .ENDIF # "$(OS)"=="MACOSX"
1030 .IF "$(UNIXVERSIONNAMES)"!=""
1031 $(COMMAND_ECHO)$(RM) $(LB)/$(SHL2TARGETN:b)
1032 $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL2TARGETN:f) $(SHL2TARGETN:b)
1033 .ENDIF # "$(UNIXVERSIONNAMES)"!=""
1034 .IF "$(VERBOSE)" == "TRUE"
1035 @ls -l $@
1036 .ENDIF
1037 .ENDIF # "$(GUI)" == "UNX"
1039 .IF "$(GUI)" == "OS2"
1041 .IF "$(SHL2DEFAULTRES)"!=""
1042 @+-$(RM) $(MISC)/$(SHL2DEFAULTRES:b).rc >& $(NULLDEV)
1043 .IF "$(SHL2ICON)" != ""
1044 @-+echo 1 ICON $(SHL2ICON) >> $(MISC)/$(SHL2DEFAULTRES:b).rc
1045 .ENDIF
1046 .IF "$(use_shl_versions)" != ""
1047 .IF "$(SHL2ADD_VERINFO)"!=""
1048 @-+echo $(EMQ)#include $(EMQ)"$(SHL2ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL2DEFAULTRES:b).rc
1049 .ENDIF # "$(SHL2ADD_VERINFO)"!=""
1050 @-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL2DEFAULTRES:b).rc
1051 # @-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL2DEFAULTRES:b).rc
1052 .ENDIF # "$(use_shl_versions)" != ""
1053 # YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR)
1054 $(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL2DEFAULTRES:b).rc
1055 .ENDIF # "$(SHL2DEFAULTRES)"!=""
1057 .IF "$(SHL2ALLRES)"!=""
1058 $(COMMAND_ECHO)+$(TYPE) $(SHL2ALLRES) > $(SHL2LINKRES)
1059 .ENDIF # "$(SHL2ALLRES)"!=""
1061 .IF "$(USE_DEFFILE)"!=""
1063 $(COMMAND_ECHO)$(SHL2LINKER) $(SHL2LINKFLAGS) $(LINKFLAGSSHL) -o $@ \
1064 $(SHL2DEF) \
1065 $(STDOBJ) \
1066 -L$(LB) \
1067 -L$(SOLARVERSION)/$(INPATH)/lib \
1068 $(SHL2OBJS) $(SHL2VERSIONOBJ) \
1069 $(SHL2LIBS) \
1070 $(SHL2STDLIBS:^"-l") \
1071 $(SHL2LINKRES) \
1072 $(SHL2STDSHL:^"-l") $(STDSHL2:^"-l")
1074 .ELSE # "$(USE_DEFFILE)"!=""
1076 $(COMMAND_ECHO)$(SHL2LINKER) -v $(SHL2LINKFLAGS) \
1077 $(LINKFLAGSSHL) $(SHL2BASEX) \
1078 $(SHL2STACK) -o $(SHL2TARGETN) \
1079 $(SHL2DEF) \
1080 $(STDOBJ) \
1081 -L$(LB) \
1082 -L$(SOLARVERSION)/$(INPATH)/lib \
1083 $(SHL2OBJS) $(SHL2VERSIONOBJ) \
1084 $(SHL2LIBS) \
1085 $(SHL2STDLIBS:^"-l") \
1086 $(SHL2LINKRES) \
1087 $(SHL2STDSHL:^"-l") $(STDSHL2:^"-l") \
1088 $(LINKOUTPUTFILTER)
1089 @$(LS) $@ >& $(NULLDEV)
1091 .ENDIF # "$(USE_DEFFILE)"!=""
1093 .IF "$(SHL2TARGET8)" != "$(SHL2TARGET)"
1094 $(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL2TARGET8).dll
1095 .ENDIF
1097 .ENDIF # "$(GUI)" == "OS2"
1100 .IF "$(TESTDIR)"!=""
1101 .IF "$(NO_TESTS)"==""
1103 ALLTAR : runtest_$(SHL2TARGET)
1105 runtest_$(SHL2TARGET) : $(SHL2TARGETN)
1106 testshl $(SHL2TARGETN) sce/$(SHL2TARGET).sce -msg -skip
1107 .ENDIF # "$(NO_TESTS)"==""
1108 .ENDIF # "$(TESTDIR)"!=""
1109 .ENDIF # "$(SHL2TARGETN)"!=""
1111 # unroll begin
1113 .IF "$(SHL3TARGETN)"!=""
1115 .IF "$(OS)"=="AIX"
1116 SHL3STDLIBS=
1117 .ENDIF
1119 .IF "$(SHLLINKARCONLY)" != ""
1120 SHL3STDLIBS=
1121 STDSHL=
1122 .ELSE
1123 SHL3ARCHIVES=
1124 .ENDIF
1126 # decide how to link
1127 .IF "$(SHL3CODETYPE)"=="C"
1128 SHL3LINKER=$(LINKC)
1129 SHL3STDSHL=$(subst,CPPRUNTIME, $(STDSHL))
1130 SHL3LINKFLAGS+=$(LINKCFLAGS)
1131 .ELSE # "$(SHL3CODETYPE)"=="C"
1132 SHL3LINKER=$(LINK)
1133 SHL3STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL))
1134 SHL3LINKFLAGS+=$(LINKFLAGS)
1135 .ENDIF # "$(SHL3CODETYPE)"=="C"
1137 SHL3RPATH*=OOO
1138 LINKFLAGSRUNPATH_$(SHL3RPATH)*=/ERROR:/Bad_SHL3RPATH_value
1139 SHL3LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL3RPATH))
1141 .IF "$(SHL3USE_EXPORTS)"==""
1142 SHL3DEF*=$(MISC)/$(SHL3TARGET).def
1143 .ENDIF # "$(SHL3USE_EXPORTS)"==""
1145 EXTRALIBPATHS3=$(EXTRALIBPATHS)
1146 .IF "$(UPDATER)"=="YES"
1147 .IF "$(SHL3NOCHECK)"==""
1148 .IF "$(SOLAR_STLLIBPATH)"!=""
1149 EXTRALIBPATHS3+=-L$(SOLAR_STLLIBPATH)
1150 .ENDIF
1151 .ENDIF # "$(SHL3NOCHECK)"!=""
1152 .ENDIF
1153 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1154 #+++++++++++ version object ++++++++++++++++++++++++++++++++++++++++
1155 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1157 .IF "$(L10N_framework)"==""
1158 .IF "$(VERSIONOBJ)"!=""
1159 SHL3VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL3TARGET))}$(VERSIONOBJ:f)
1160 USE_VERSIONH:=$(INCCOM)/$(SHL3VERSIONOBJ:b).h
1161 .IF "$(GUI)" == "UNX"
1162 SHL3VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL3TARGET))}$(VERSIONOBJ:f:s/.o/.obj/)
1163 .ELSE # "$(GUI)" == "UNX"
1164 SHL3VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL3TARGET))}$(VERSIONOBJ:f)
1165 .ENDIF # "$(GUI)" == "UNX"
1166 $(MISC)/$(SHL3VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL3VERSIONOBJ:b).h
1167 # $(COPY) $(SOLARENV)/src/version.c $@
1168 $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL3VERSIONOBJ:b).h/ > $@
1170 .INIT : $(SHL3VERSIONOBJDEP)
1171 .ENDIF # "$(VERSIONOBJ)"!=""
1172 .ENDIF
1174 .IF "$(GUI)" != "UNX"
1175 .IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
1176 .IF "$(SHL3IMPLIB)" == ""
1177 SHL3IMPLIB=i$(TARGET)_t3
1178 .ENDIF # "$(SHL3IMPLIB)" == ""
1179 .IF "$(COM)" != "GCC"
1180 USE_3IMPLIB=-implib:$(LB)/$(SHL3IMPLIB).lib
1181 .ENDIF # "$(COM)" != "GCC"
1182 SHL3IMPLIBN=$(LB)/$(SHL3IMPLIB).lib
1183 ALLTAR : $(SHL3IMPLIBN)
1185 .IF "$(USE_DEFFILE)"==""
1186 USE_3IMPLIB_DEPS=$(LB)/$(SHL3IMPLIB).lib
1187 .ENDIF # "$(USE_DEFFILE)"==""
1188 .ENDIF # "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
1189 USE_SHL3DEF=$(SHL3DEF)
1190 .ELSE # "$(GUI)" != "UNX"
1191 USE_SHL3DEF=
1192 SHL3DEPN+:=$(SHL3DEPNU)
1194 .IF "$(SHL3VERSIONMAP)"==""
1195 # to activate vmaps remove "#"
1196 USE_SHL3VERSIONMAP=$(MISC)/$(SHL3TARGET).vmap
1197 .ENDIF # "$(SHL3VERSIONMAP)"==""
1199 .IF "$(USE_SHL3VERSIONMAP)"!=""
1201 .IF "$(SHL3FILTERFILE)"!=""
1202 .IF "$(SHL3VERSIONMAP)"!=""
1203 #eine von beiden ist zuviel
1204 USE_SHL3VERSIONMAP=$(MISC)/$(SHL3TARGET).vmap
1205 $(USE_SHL3VERSIONMAP) .PHONY:
1206 @echo -----------------------------
1207 @echo you should only use versionmap OR exportfile
1208 @echo -----------------------------
1209 # force_dmake_to_error
1211 .ENDIF # "$(SHL3VERSIONMAP)"!=""
1213 .IF "$(OS)"!="IRIX"
1214 SHL3VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL3VERSIONMAP)
1215 .ENDIF
1217 $(USE_SHL3VERSIONMAP): \
1218 $(SHL3OBJS)\
1219 $(SHL3LIBS)\
1220 $(SHL3FILTERFILE)
1221 @$(RM) $@.dump
1222 .IF "$(SHL3OBJS)"!=""
1223 # dump remaining objects on the fly
1224 .IF "$(OS)"=="MACOSX"
1225 @-nm $(SHL3OBJS:s/.obj/.o/) > $@.dump
1226 .ELSE
1227 @nm $(SHL3OBJS:s/.obj/.o/) > $@.dump
1228 .ENDIF
1229 .ENDIF # "$(SHL3OBJS)!"=""
1230 @$(TYPE) /dev/null $(SHL3LIBS:s/.lib/.dump/) >> $@.dump
1231 $(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL3INTERFACE) -f $(SHL3FILTERFILE) -m $@
1233 .ELSE # "$(SHL3FILTERFILE)"!=""
1234 USE_SHL3VERSIONMAP=$(MISC)/$(SHL3TARGET).vmap
1235 $(USE_SHL3VERSIONMAP) :
1236 .IF "$(VERBOSE)" == "TRUE"
1237 @echo -----------------------------
1238 @echo SHL3FILTERFILE not set!
1239 @echo -----------------------------
1240 @$(TOUCH) $@
1241 @echo dummy file to keep the dependencies for later use.
1242 .ELSE
1243 @$(TOUCH) $@
1244 .ENDIF
1245 # force_dmake_to_error
1246 .ENDIF # "$(SHL3FILTERFILE)"!=""
1247 .ELSE # "$(USE_SHL3VERSIONMAP)"!=""
1249 #and now for the plain non-generic way...
1250 .IF "$(SHL3VERSIONMAP)"!=""
1251 USE_SHL3VERSIONMAP=$(MISC)/$(SHL3VERSIONMAP:b)_$(SHL3TARGET)$(SHL3VERSIONMAP:e)
1252 .IF "$(OS)"!="IRIX"
1253 SHL3VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL3VERSIONMAP)
1254 .ENDIF
1256 .IF "$(OS)"=="MACOSX"
1257 $(USE_SHL3VERSIONMAP): $(SHL3OBJS) $(SHL3LIBS)
1258 .ENDIF
1260 $(USE_SHL3VERSIONMAP): $(SHL3VERSIONMAP)
1261 @@-$(RM) -f $@
1262 # The following files will only be generated and needed on Mac OS X as temporary files
1263 # in order to generate exported symbols list out of Linux/Solaris map files
1264 .IF "$(OS)"=="MACOSX"
1265 @-$(RM) -f $@.symregexp >& $(NULLDEV)
1266 @-$(RM) -f $@.expsymlist >& $(NULLDEV)
1267 .ENDIF
1268 # Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what
1269 # happens if somebody will change it in the future
1270 .IF "$(COMID)"=="gcc3"
1271 $(COMMAND_ECHO) tr -d "\015" < $(SHL3VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@
1272 .ELIF "$(COMNAME)"=="sunpro5"
1273 $(COMMAND_ECHO) tr -d "\015" < $(SHL3VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@
1274 .ELSE # "$(COMID)"=="gcc3"
1275 $(COMMAND_ECHO) tr -d "\015" < $(SHL3VERSIONMAP) > $@
1276 .ENDIF # "$(COMID)"=="gcc3"
1277 @chmod a+w $@
1278 # Mac OS X post-processing generate an exported symbols list from the generated map file
1279 # for details on exported symbols list see man ld on Mac OS X
1280 .IF "$(OS)"=="MACOSX"
1281 @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols
1282 @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp
1283 # Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
1284 # Extract RTTI symbols from all the objects that will be used to build a shared library
1285 .IF "$(SHL3OBJS)"!=""
1286 -echo $(foreach,i,$(SHL3OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
1287 .ENDIF
1288 .IF "$(SHL3LIBS)"!=""
1289 $(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL3LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
1290 .ENDIF
1291 # overwrite the map file generate into the local output tree with the generated
1292 # exported symbols list
1293 cp $@.exported-symbols $@
1294 .ENDIF # .IF "$(OS)"=="MACOSX"
1295 .ENDIF # "$(SHL3VERSIONMAP)"!=""
1296 .ENDIF # "$(USE_SHL3VERSIONMAP)"!=""
1297 .ENDIF # "$(GUI)" != "UNX"
1299 .IF "$(UNIXVERSIONNAMES)"!=""
1300 .IF "$(OS)"!="MACOSX"
1301 .IF "$(GUI)"=="UNX"
1302 .IF "$(OS)"=="IRIX"
1303 SHL3SONAME=$(SONAME_SWITCH)$(SHL3TARGETN:f)
1304 .ELSE
1305 SHL3SONAME=\"$(SONAME_SWITCH)$(SHL3TARGETN:f)\"
1306 .ENDIF
1307 .ENDIF # "$(GUI)"!="UNX"
1308 .ENDIF # "$(OS)"!="MACOSX"
1309 .ENDIF # "$(UNIXVERSIONNAMES)"!=""
1311 .IF "$(SHL3RES)"!=""
1312 SHL3ALLRES+=$(SHL3RES)
1313 SHL3LINKRES*=$(MISC)/$(SHL3TARGET).res
1314 SHL3LINKRESO*=$(MISC)/$(SHL3TARGET)_res.o
1315 .ENDIF # "$(SHL3RES)"!=""
1317 .IF "$(SHL3DEFAULTRES)$(use_shl_versions)"!=""
1318 SHL3DEFAULTRES*=$(MISC)/$(SHL3TARGET)_def.res
1319 SHL3ALLRES+=$(SHL3DEFAULTRES)
1320 SHL3LINKRES*=$(MISC)/$(SHL3TARGET).res
1321 SHL3LINKRESO*=$(MISC)/$(SHL3TARGET)_res.o
1322 .ENDIF # "$(SHL3DEFAULTRES)$(use_shl_versions)"!=""
1324 #.IF "$(SHL3TARGETN)"!=""
1326 .IF "$(linkinc)"!=""
1327 .IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
1328 .IF "$(SHL3LIBS)"!=""
1329 $(MISC)/$(SHL3TARGET)_linkinc.ls .PHONY:
1330 @@-$(RM) $@
1331 $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL3LIBS) $(i:s/.lib/.lin/)) >> $@
1332 .ENDIF # "$(SHL3LIBS)"!=""
1333 .ENDIF
1335 LINKINCTARGETS+=$(MISC)/$(SHL3TARGETN:b)_linkinc.ls
1336 $(SHL3TARGETN) : $(LINKINCTARGETS)
1338 .ELSE
1339 .IF "$(SHL3USE_EXPORTS)"=="name"
1340 .IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
1341 .IF "$(COM)"!="GCC"
1342 .IF "$(SHL3LIBS)"!=""
1343 SHL3LINKLIST=$(MISC)/$(SHL3TARGET)_link.lst
1344 SHL3LINKLISTPARAM=@$(SHL3LINKLIST)
1345 $(SHL3LINKLIST) : $(SHL3LIBS)
1346 @@-$(RM) $@
1347 $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL3LIBS) $(i:s/.lib/.lin/)) >> $@
1348 .ENDIF # "$(SHL3LIBS)"!=""
1349 .ENDIF # "$(COM)"!="GCC"
1350 .ENDIF
1351 .ENDIF # "$(SHL3USE_EXPORTS)"=="name"
1353 $(MISC)/%linkinc.ls:
1354 @echo . > $@
1355 .ENDIF # "$(linkinc)"!=""
1357 .IF "$(GUI)" == "OS2"
1358 #21/02/2006 YD dll names must be 8.3, invoke fix script
1359 #check osl/os2/module.c/osl_loadModule()
1360 SHL3TARGET8=$(shell @fix_shl $(SHL3TARGET))
1361 .ENDIF
1363 .IF "$(GUI)" == "OS2"
1364 _SHL3IMP_ORD = $(SHL3STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(SHL3STDLIBS:^"$(LB)/")
1365 SHL3IMP_ORD = $(foreach,i,$(_SHL3IMP_ORD) $(shell @-ls $i))
1366 .ELSE
1367 SHL3IMP_ORD =
1368 .ENDIF
1371 $(SHL3TARGETN) : \
1372 $(SHL3OBJS)\
1373 $(SHL3LIBS)\
1374 $(USE_3IMPLIB_DEPS)\
1375 $(USE_SHL3DEF)\
1376 $(USE_SHL3VERSIONMAP)\
1377 $(SHL3RES)\
1378 $(SHL3DEPN) \
1379 $(SHL3IMP_ORD) \
1380 $(SHL3LINKLIST)
1381 .IF "$(VERBOSE)" == "TRUE"
1382 @echo ------------------------------
1383 .ENDIF
1384 @echo "Making: " $(@:f)
1385 .IF "$(GUI)" == "WNT"
1386 .IF "$(SHL3DEFAULTRES)"!=""
1387 @@-$(RM) $(MISC)/$(SHL3DEFAULTRES:b).rc
1388 .IF "$(SHL3ICON)" != ""
1389 @echo 1 ICON $(SHL3ICON) >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1390 .ENDIF
1391 .IF "$(use_shl_versions)" != ""
1392 .IF "$(SHL3ADD_VERINFO)"!=""
1393 @echo $(EMQ)#include $(EMQ)"$(SHL3ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1394 .ELSE # "$(SHL3ADD_VERINFO)"!=""
1395 @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1396 @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1397 @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1398 .ENDIF # "$(SHL3ADD_VERINFO)"!=""
1399 @echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1400 @echo $(EMQ)#define ORG_NAME $(SHL3TARGET)$(DLLPOST) >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1401 @echo $(EMQ)#define INTERNAL_NAME $(SHL3TARGET:b) >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1402 @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1403 .ENDIF # "$(use_shl_versions)" != ""
1404 $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL3DEFAULTRES:b).rc
1405 .ENDIF # "$(SHL3DEFAULTRES)"!=""
1406 .IF "$(SHL3ALLRES)"!=""
1407 $(COMMAND_ECHO)$(TYPE) $(SHL3ALLRES) > $(SHL3LINKRES)
1408 .IF "$(COM)"=="GCC"
1409 windres $(SHL3LINKRES) $(SHL3LINKRESO)
1410 .ENDIF # "$(COM)"=="GCC"
1411 .ENDIF # "$(SHL3ALLRES)"!=""
1412 .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def
1413 @echo dlltool --input-def $(SHL3DEF) \
1414 --dllname $(SHL3TARGET)$(DLLPOST) \
1415 --kill-at \\ > $(MISC)/$(TARGET).$(@:b)_3.cmd
1416 @noop $(assign ALL3OBJLIST:=$(STDOBJ) $(SHL3OBJS) $(SHL3LINKRESO) $(shell $(TYPE) /dev/null $(SHL3LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g))
1417 .IF "$(DEFLIB3NAME)"!="" # do not have to include objs
1418 @noop $(assign DEF3OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB3NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g))
1419 @noop $(foreach,i,$(DEF3OBJLIST) $(assign ALL3OBJLIST:=$(ALL3OBJLIST:s?$i??)))
1420 .ENDIF # "$(DEFLIB3NAME)"!=""
1421 @echo --output-exp $(MISC)/$(@:b)_exp.o \
1422 $(ALL3OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_3.cmd
1423 @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \
1424 $(STDOBJ) $(SHL3VERSIONOBJ) $(SHL3DESCRIPTIONOBJ) $(SHL3OBJS) $(SHL3LINKRESO) \
1425 `$(TYPE) /dev/null $(SHL3LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
1426 -Wl,--exclude-libs,ALL,--start-group $(SHL3STDLIBS) -Wl,--end-group \
1427 $(SHL3STDSHL) $(STDSHL3) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \
1428 -Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_3.cmd
1429 @$(TYPE) $(MISC)/$(TARGET).$(@:b)_3.cmd
1430 @+source $(MISC)/$(TARGET).$(@:b)_3.cmd
1431 .ELSE
1432 .IF "$(linkinc)"==""
1433 .IF "$(SHL3USE_EXPORTS)"!="name"
1434 .IF "$(USE_DEFFILE)"!=""
1435 $(SHL3LINKER) @$(mktmp \
1436 $(SHL3LINKFLAGS) \
1437 $(LINKFLAGSSHL) \
1438 $(SHL3STACK) $(SHL3BASEX) \
1439 -out:$@ \
1440 -map:$(MISC)/$(@:b).map \
1441 -def:$(SHL3DEF) \
1442 $(USE_3IMPLIB) \
1443 $(STDOBJ) \
1444 $(SHL3VERSIONOBJ) $(SHL3OBJS) \
1445 $(SHL3LIBS) \
1446 $(SHL3STDLIBS) \
1447 $(SHL3STDSHL) $(STDSHL3) \
1448 $(SHL3LINKRES) \
1449 ) $(LINKOUTPUTFILTER)
1450 # double check if target was really written... still making sense?
1451 @@$(LS) $@
1452 @echo linking $@.manifest ...
1453 .IF "$(VISTA_MANIFEST)"!=""
1454 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
1455 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
1456 .ELSE
1457 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
1458 .ENDIF # "$(VISTA_MANIFEST)"!=""
1459 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
1460 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
1461 .ELSE # "$(USE_DEFFILE)"!=""
1462 $(COMMAND_ECHO)$(SHL3LINKER) @$(mktmp $(SHL3LINKFLAGS) \
1463 $(LINKFLAGSSHL) $(SHL3BASEX) \
1464 $(SHL3STACK) -out:$(SHL3TARGETN) \
1465 -map:$(MISC)/$(@:B).map \
1466 $(LB)/$(SHL3IMPLIB).exp \
1467 $(STDOBJ) \
1468 $(SHL3OBJS) $(SHL3VERSIONOBJ) \
1469 $(SHL3LIBS) \
1470 $(SHL3STDLIBS) \
1471 $(SHL3STDSHL) $(STDSHL3) \
1472 $(SHL3LINKRES) \
1473 ) $(LINKOUTPUTFILTER)
1474 # double check if target was really written... still making sense?
1475 @@$(LS) $@
1476 @echo linking $@.manifest ...
1477 .IF "$(VISTA_MANIFEST)"!=""
1478 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
1479 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
1480 .ELSE
1481 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
1482 .ENDIF # "$(VISTA_MANIFEST)"!=""
1483 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
1484 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
1485 .ENDIF # "$(USE_DEFFILE)"!=""
1486 .ELSE # "$(SHL3USE_EXPORTS)"!="name"
1487 $(COMMAND_ECHO)$(SHL3LINKER) @$(mktmp $(SHL3LINKFLAGS) \
1488 $(LINKFLAGSSHL) $(SHL3BASEX) \
1489 $(SHL3STACK) -out:$(SHL3TARGETN) \
1490 -map:$(MISC)/$(@:B).map \
1491 $(USE_3IMPLIB) \
1492 $(STDOBJ) \
1493 $(SHL3OBJS) $(SHL3VERSIONOBJ)) \
1494 $(SHL3LINKLISTPARAM) \
1495 @$(mktmp $(SHL3STDLIBS) \
1496 $(SHL3STDSHL) $(STDSHL3) \
1497 $(SHL3LINKRES) \
1499 @echo linking $@.manifest ...
1500 .IF "$(VISTA_MANIFEST)"!=""
1501 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
1502 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
1503 .ELSE
1504 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
1505 .ENDIF # "$(VISTA_MANIFEST)"!=""
1506 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
1507 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
1508 .ENDIF # "$(SHL3USE_EXPORTS)"!="name"
1509 .ELSE # "$(linkinc)"==""
1510 $(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL3TARGET).lnk
1511 $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL3TARGET).lst
1512 $(COMMAND_ECHO)$(TYPE) $(mktmp \
1513 $(SHL3LINKFLAGS) \
1514 $(LINKFLAGSSHL) $(SHL3BASEX) \
1515 $(SHL3STACK) $(MAPFILE) \
1516 -out:$@ \
1517 $(LB)/$(SHL3IMPLIB).exp \
1518 $(STDOBJ) \
1519 $(SHL3OBJS) \
1520 $(SHL3STDLIBS) \
1521 $(SHL3STDSHL) $(STDSHL3) \
1522 $(SHL3LINKRES) \
1523 ) >> $(MISC)/$(SHL3TARGET).lnk
1524 $(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL3TARGETN:b)_linkinc.ls >> $(MISC)/$(SHL3TARGET).lnk
1525 $(COMMAND_ECHO)$(SHL3LINKER) @$(MISC)/$(SHL3TARGET).lnk
1526 @echo linking $@.manifest ...
1527 .IF "$(VISTA_MANIFEST)"!=""
1528 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
1529 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
1530 .ELSE
1531 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
1532 .ENDIF # "$(VISTA_MANIFEST)"!=""
1533 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
1534 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
1535 .ENDIF # "$(linkinc)"==""
1536 .ENDIF # "$(COM)"=="GCC"
1537 .ENDIF # "$(GUI)" == "WNT"
1538 .IF "$(GUI)"=="UNX"
1539 .IF "$(OS)"=="MACOSX"
1540 @-$(RM) $(MISC)/$(@:b).list
1541 @-$(RM) $(MISC)/$(TARGET).$(@:b)_3.cmd
1542 @echo $(STDSLO) $(SHL3OBJS:s/.obj/.o/) \
1543 $(SHL3VERSIONOBJ) \
1544 `cat /dev/null $(SHL3LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list
1545 @echo -n $(SHL3LINKER) $(SHL3LINKFLAGS) $(SHL3VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \
1546 $(SHL3STDLIBS) $(SHL3ARCHIVES) $(SHL3STDSHL) $(STDSHL3) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_3.cmd
1547 @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \
1548 `cat $(MISC)/$(TARGET).$(@:b)_3.cmd` \
1549 >> $(MISC)/$(TARGET).$(@:b)_3.cmd
1550 .IF "$(VERBOSE)" == "TRUE"
1551 @cat $(MISC)/$(TARGET).$(@:b)_3.cmd
1552 .ENDIF
1553 @+source $(MISC)/$(TARGET).$(@:b)_3.cmd
1554 @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \
1555 shl $(SHL3RPATH) $@
1556 @echo "Making: " $(@:f).jnilib
1557 @macosx-create-bundle $@
1558 .IF "$(UPDATER)"=="YES"
1559 .IF "$(SHL3NOCHECK)"==""
1560 $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS3) $(SHL3TARGETN)
1561 .ENDIF # "$(SHL3NOCHECK)"!=""
1562 .ENDIF
1563 .ELSE # "$(OS)"=="MACOSX"
1564 @-$(RM) $(MISC)/$(TARGET).$(@:b)_3.cmd
1565 @echo $(SHL3LINKER) $(SHL3LINKFLAGS) $(SHL3SONAME) $(LINKFLAGSSHL) $(SHL3VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL3OBJS:s/.obj/.o/) \
1566 $(SHL3VERSIONOBJ) -o $@ \
1567 `cat /dev/null $(SHL3LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
1568 $(SHL3STDLIBS) $(SHL3ARCHIVES) $(SHL3STDSHL) $(STDSHL3) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_3.cmd
1569 .IF "$(VERBOSE)" == "TRUE"
1570 @cat $(MISC)/$(TARGET).$(@:b)_3.cmd
1571 .ENDIF
1572 @+source $(MISC)/$(TARGET).$(@:b)_3.cmd
1573 .IF "$(UPDATER)"=="YES"
1574 .IF "$(SHL3NOCHECK)"==""
1575 $(COMMAND_ECHO)-$(RM) $(SHL3TARGETN:d)check_$(SHL3TARGETN:f)
1576 $(COMMAND_ECHO)$(RENAME) $(SHL3TARGETN) $(SHL3TARGETN:d)check_$(SHL3TARGETN:f)
1577 .IF "$(VERBOSE)"=="TRUE"
1578 $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS3) $(SHL3TARGETN:d)check_$(SHL3TARGETN:f)
1579 .ELSE
1580 $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS3) -- -s $(SHL3TARGETN:d)check_$(SHL3TARGETN:f)
1581 .ENDIF
1582 .ENDIF # "$(SHL3NOCHECK)"!=""
1583 .ENDIF # "$(UPDATER)"=="YES"
1584 .ENDIF # "$(OS)"=="MACOSX"
1585 .IF "$(UNIXVERSIONNAMES)"!=""
1586 $(COMMAND_ECHO)$(RM) $(LB)/$(SHL3TARGETN:b)
1587 $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL3TARGETN:f) $(SHL3TARGETN:b)
1588 .ENDIF # "$(UNIXVERSIONNAMES)"!=""
1589 .IF "$(VERBOSE)" == "TRUE"
1590 @ls -l $@
1591 .ENDIF
1592 .ENDIF # "$(GUI)" == "UNX"
1594 .IF "$(GUI)" == "OS2"
1596 .IF "$(SHL3DEFAULTRES)"!=""
1597 @+-$(RM) $(MISC)/$(SHL3DEFAULTRES:b).rc >& $(NULLDEV)
1598 .IF "$(SHL3ICON)" != ""
1599 @-+echo 1 ICON $(SHL3ICON) >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1600 .ENDIF
1601 .IF "$(use_shl_versions)" != ""
1602 .IF "$(SHL3ADD_VERINFO)"!=""
1603 @-+echo $(EMQ)#include $(EMQ)"$(SHL3ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1604 .ENDIF # "$(SHL3ADD_VERINFO)"!=""
1605 @-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1606 # @-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1607 .ENDIF # "$(use_shl_versions)" != ""
1608 # YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR)
1609 $(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL3DEFAULTRES:b).rc
1610 .ENDIF # "$(SHL3DEFAULTRES)"!=""
1612 .IF "$(SHL3ALLRES)"!=""
1613 $(COMMAND_ECHO)+$(TYPE) $(SHL3ALLRES) > $(SHL3LINKRES)
1614 .ENDIF # "$(SHL3ALLRES)"!=""
1616 .IF "$(USE_DEFFILE)"!=""
1618 $(COMMAND_ECHO)$(SHL3LINKER) $(SHL3LINKFLAGS) $(LINKFLAGSSHL) -o $@ \
1619 $(SHL3DEF) \
1620 $(STDOBJ) \
1621 -L$(LB) \
1622 -L$(SOLARVERSION)/$(INPATH)/lib \
1623 $(SHL3OBJS) $(SHL3VERSIONOBJ) \
1624 $(SHL3LIBS) \
1625 $(SHL3STDLIBS:^"-l") \
1626 $(SHL3LINKRES) \
1627 $(SHL3STDSHL:^"-l") $(STDSHL3:^"-l")
1629 .ELSE # "$(USE_DEFFILE)"!=""
1631 $(COMMAND_ECHO)$(SHL3LINKER) -v $(SHL3LINKFLAGS) \
1632 $(LINKFLAGSSHL) $(SHL3BASEX) \
1633 $(SHL3STACK) -o $(SHL3TARGETN) \
1634 $(SHL3DEF) \
1635 $(STDOBJ) \
1636 -L$(LB) \
1637 -L$(SOLARVERSION)/$(INPATH)/lib \
1638 $(SHL3OBJS) $(SHL3VERSIONOBJ) \
1639 $(SHL3LIBS) \
1640 $(SHL3STDLIBS:^"-l") \
1641 $(SHL3LINKRES) \
1642 $(SHL3STDSHL:^"-l") $(STDSHL3:^"-l") \
1643 $(LINKOUTPUTFILTER)
1644 @$(LS) $@ >& $(NULLDEV)
1646 .ENDIF # "$(USE_DEFFILE)"!=""
1648 .IF "$(SHL3TARGET8)" != "$(SHL3TARGET)"
1649 $(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL3TARGET8).dll
1650 .ENDIF
1652 .ENDIF # "$(GUI)" == "OS2"
1655 .IF "$(TESTDIR)"!=""
1656 .IF "$(NO_TESTS)"==""
1658 ALLTAR : runtest_$(SHL3TARGET)
1660 runtest_$(SHL3TARGET) : $(SHL3TARGETN)
1661 testshl $(SHL3TARGETN) sce/$(SHL3TARGET).sce -msg -skip
1662 .ENDIF # "$(NO_TESTS)"==""
1663 .ENDIF # "$(TESTDIR)"!=""
1664 .ENDIF # "$(SHL3TARGETN)"!=""
1666 # unroll begin
1668 .IF "$(SHL4TARGETN)"!=""
1670 .IF "$(OS)"=="AIX"
1671 SHL4STDLIBS=
1672 .ENDIF
1674 .IF "$(SHLLINKARCONLY)" != ""
1675 SHL4STDLIBS=
1676 STDSHL=
1677 .ELSE
1678 SHL4ARCHIVES=
1679 .ENDIF
1681 # decide how to link
1682 .IF "$(SHL4CODETYPE)"=="C"
1683 SHL4LINKER=$(LINKC)
1684 SHL4STDSHL=$(subst,CPPRUNTIME, $(STDSHL))
1685 SHL4LINKFLAGS+=$(LINKCFLAGS)
1686 .ELSE # "$(SHL4CODETYPE)"=="C"
1687 SHL4LINKER=$(LINK)
1688 SHL4STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL))
1689 SHL4LINKFLAGS+=$(LINKFLAGS)
1690 .ENDIF # "$(SHL4CODETYPE)"=="C"
1692 SHL4RPATH*=OOO
1693 LINKFLAGSRUNPATH_$(SHL4RPATH)*=/ERROR:/Bad_SHL4RPATH_value
1694 SHL4LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL4RPATH))
1696 .IF "$(SHL4USE_EXPORTS)"==""
1697 SHL4DEF*=$(MISC)/$(SHL4TARGET).def
1698 .ENDIF # "$(SHL4USE_EXPORTS)"==""
1700 EXTRALIBPATHS4=$(EXTRALIBPATHS)
1701 .IF "$(UPDATER)"=="YES"
1702 .IF "$(SHL4NOCHECK)"==""
1703 .IF "$(SOLAR_STLLIBPATH)"!=""
1704 EXTRALIBPATHS4+=-L$(SOLAR_STLLIBPATH)
1705 .ENDIF
1706 .ENDIF # "$(SHL4NOCHECK)"!=""
1707 .ENDIF
1708 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1709 #+++++++++++ version object ++++++++++++++++++++++++++++++++++++++++
1710 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1712 .IF "$(L10N_framework)"==""
1713 .IF "$(VERSIONOBJ)"!=""
1714 SHL4VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL4TARGET))}$(VERSIONOBJ:f)
1715 USE_VERSIONH:=$(INCCOM)/$(SHL4VERSIONOBJ:b).h
1716 .IF "$(GUI)" == "UNX"
1717 SHL4VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL4TARGET))}$(VERSIONOBJ:f:s/.o/.obj/)
1718 .ELSE # "$(GUI)" == "UNX"
1719 SHL4VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL4TARGET))}$(VERSIONOBJ:f)
1720 .ENDIF # "$(GUI)" == "UNX"
1721 $(MISC)/$(SHL4VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL4VERSIONOBJ:b).h
1722 # $(COPY) $(SOLARENV)/src/version.c $@
1723 $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL4VERSIONOBJ:b).h/ > $@
1725 .INIT : $(SHL4VERSIONOBJDEP)
1726 .ENDIF # "$(VERSIONOBJ)"!=""
1727 .ENDIF
1729 .IF "$(GUI)" != "UNX"
1730 .IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
1731 .IF "$(SHL4IMPLIB)" == ""
1732 SHL4IMPLIB=i$(TARGET)_t4
1733 .ENDIF # "$(SHL4IMPLIB)" == ""
1734 .IF "$(COM)" != "GCC"
1735 USE_4IMPLIB=-implib:$(LB)/$(SHL4IMPLIB).lib
1736 .ENDIF # "$(COM)" != "GCC"
1737 SHL4IMPLIBN=$(LB)/$(SHL4IMPLIB).lib
1738 ALLTAR : $(SHL4IMPLIBN)
1740 .IF "$(USE_DEFFILE)"==""
1741 USE_4IMPLIB_DEPS=$(LB)/$(SHL4IMPLIB).lib
1742 .ENDIF # "$(USE_DEFFILE)"==""
1743 .ENDIF # "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
1744 USE_SHL4DEF=$(SHL4DEF)
1745 .ELSE # "$(GUI)" != "UNX"
1746 USE_SHL4DEF=
1747 SHL4DEPN+:=$(SHL4DEPNU)
1749 .IF "$(SHL4VERSIONMAP)"==""
1750 # to activate vmaps remove "#"
1751 USE_SHL4VERSIONMAP=$(MISC)/$(SHL4TARGET).vmap
1752 .ENDIF # "$(SHL4VERSIONMAP)"==""
1754 .IF "$(USE_SHL4VERSIONMAP)"!=""
1756 .IF "$(SHL4FILTERFILE)"!=""
1757 .IF "$(SHL4VERSIONMAP)"!=""
1758 #eine von beiden ist zuviel
1759 USE_SHL4VERSIONMAP=$(MISC)/$(SHL4TARGET).vmap
1760 $(USE_SHL4VERSIONMAP) .PHONY:
1761 @echo -----------------------------
1762 @echo you should only use versionmap OR exportfile
1763 @echo -----------------------------
1764 # force_dmake_to_error
1766 .ENDIF # "$(SHL4VERSIONMAP)"!=""
1768 .IF "$(OS)"!="IRIX"
1769 SHL4VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL4VERSIONMAP)
1770 .ENDIF
1772 $(USE_SHL4VERSIONMAP): \
1773 $(SHL4OBJS)\
1774 $(SHL4LIBS)\
1775 $(SHL4FILTERFILE)
1776 @$(RM) $@.dump
1777 .IF "$(SHL4OBJS)"!=""
1778 # dump remaining objects on the fly
1779 .IF "$(OS)"=="MACOSX"
1780 @-nm $(SHL4OBJS:s/.obj/.o/) > $@.dump
1781 .ELSE
1782 @nm $(SHL4OBJS:s/.obj/.o/) > $@.dump
1783 .ENDIF
1784 .ENDIF # "$(SHL4OBJS)!"=""
1785 @$(TYPE) /dev/null $(SHL4LIBS:s/.lib/.dump/) >> $@.dump
1786 $(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL4INTERFACE) -f $(SHL4FILTERFILE) -m $@
1788 .ELSE # "$(SHL4FILTERFILE)"!=""
1789 USE_SHL4VERSIONMAP=$(MISC)/$(SHL4TARGET).vmap
1790 $(USE_SHL4VERSIONMAP) :
1791 .IF "$(VERBOSE)" == "TRUE"
1792 @echo -----------------------------
1793 @echo SHL4FILTERFILE not set!
1794 @echo -----------------------------
1795 @$(TOUCH) $@
1796 @echo dummy file to keep the dependencies for later use.
1797 .ELSE
1798 @$(TOUCH) $@
1799 .ENDIF
1800 # force_dmake_to_error
1801 .ENDIF # "$(SHL4FILTERFILE)"!=""
1802 .ELSE # "$(USE_SHL4VERSIONMAP)"!=""
1804 #and now for the plain non-generic way...
1805 .IF "$(SHL4VERSIONMAP)"!=""
1806 USE_SHL4VERSIONMAP=$(MISC)/$(SHL4VERSIONMAP:b)_$(SHL4TARGET)$(SHL4VERSIONMAP:e)
1807 .IF "$(OS)"!="IRIX"
1808 SHL4VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL4VERSIONMAP)
1809 .ENDIF
1811 .IF "$(OS)"=="MACOSX"
1812 $(USE_SHL4VERSIONMAP): $(SHL4OBJS) $(SHL4LIBS)
1813 .ENDIF
1815 $(USE_SHL4VERSIONMAP): $(SHL4VERSIONMAP)
1816 @@-$(RM) -f $@
1817 # The following files will only be generated and needed on Mac OS X as temporary files
1818 # in order to generate exported symbols list out of Linux/Solaris map files
1819 .IF "$(OS)"=="MACOSX"
1820 @-$(RM) -f $@.symregexp >& $(NULLDEV)
1821 @-$(RM) -f $@.expsymlist >& $(NULLDEV)
1822 .ENDIF
1823 # Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what
1824 # happens if somebody will change it in the future
1825 .IF "$(COMID)"=="gcc3"
1826 $(COMMAND_ECHO) tr -d "\015" < $(SHL4VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@
1827 .ELIF "$(COMNAME)"=="sunpro5"
1828 $(COMMAND_ECHO) tr -d "\015" < $(SHL4VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@
1829 .ELSE # "$(COMID)"=="gcc3"
1830 $(COMMAND_ECHO) tr -d "\015" < $(SHL4VERSIONMAP) > $@
1831 .ENDIF # "$(COMID)"=="gcc3"
1832 @chmod a+w $@
1833 # Mac OS X post-processing generate an exported symbols list from the generated map file
1834 # for details on exported symbols list see man ld on Mac OS X
1835 .IF "$(OS)"=="MACOSX"
1836 @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols
1837 @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp
1838 # Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
1839 # Extract RTTI symbols from all the objects that will be used to build a shared library
1840 .IF "$(SHL4OBJS)"!=""
1841 -echo $(foreach,i,$(SHL4OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
1842 .ENDIF
1843 .IF "$(SHL4LIBS)"!=""
1844 $(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL4LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
1845 .ENDIF
1846 # overwrite the map file generate into the local output tree with the generated
1847 # exported symbols list
1848 cp $@.exported-symbols $@
1849 .ENDIF # .IF "$(OS)"=="MACOSX"
1850 .ENDIF # "$(SHL4VERSIONMAP)"!=""
1851 .ENDIF # "$(USE_SHL4VERSIONMAP)"!=""
1852 .ENDIF # "$(GUI)" != "UNX"
1854 .IF "$(UNIXVERSIONNAMES)"!=""
1855 .IF "$(OS)"!="MACOSX"
1856 .IF "$(GUI)"=="UNX"
1857 .IF "$(OS)"=="IRIX"
1858 SHL4SONAME=$(SONAME_SWITCH)$(SHL4TARGETN:f)
1859 .ELSE
1860 SHL4SONAME=\"$(SONAME_SWITCH)$(SHL4TARGETN:f)\"
1861 .ENDIF
1862 .ENDIF # "$(GUI)"!="UNX"
1863 .ENDIF # "$(OS)"!="MACOSX"
1864 .ENDIF # "$(UNIXVERSIONNAMES)"!=""
1866 .IF "$(SHL4RES)"!=""
1867 SHL4ALLRES+=$(SHL4RES)
1868 SHL4LINKRES*=$(MISC)/$(SHL4TARGET).res
1869 SHL4LINKRESO*=$(MISC)/$(SHL4TARGET)_res.o
1870 .ENDIF # "$(SHL4RES)"!=""
1872 .IF "$(SHL4DEFAULTRES)$(use_shl_versions)"!=""
1873 SHL4DEFAULTRES*=$(MISC)/$(SHL4TARGET)_def.res
1874 SHL4ALLRES+=$(SHL4DEFAULTRES)
1875 SHL4LINKRES*=$(MISC)/$(SHL4TARGET).res
1876 SHL4LINKRESO*=$(MISC)/$(SHL4TARGET)_res.o
1877 .ENDIF # "$(SHL4DEFAULTRES)$(use_shl_versions)"!=""
1879 #.IF "$(SHL4TARGETN)"!=""
1881 .IF "$(linkinc)"!=""
1882 .IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
1883 .IF "$(SHL4LIBS)"!=""
1884 $(MISC)/$(SHL4TARGET)_linkinc.ls .PHONY:
1885 @@-$(RM) $@
1886 $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL4LIBS) $(i:s/.lib/.lin/)) >> $@
1887 .ENDIF # "$(SHL4LIBS)"!=""
1888 .ENDIF
1890 LINKINCTARGETS+=$(MISC)/$(SHL4TARGETN:b)_linkinc.ls
1891 $(SHL4TARGETN) : $(LINKINCTARGETS)
1893 .ELSE
1894 .IF "$(SHL4USE_EXPORTS)"=="name"
1895 .IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
1896 .IF "$(COM)"!="GCC"
1897 .IF "$(SHL4LIBS)"!=""
1898 SHL4LINKLIST=$(MISC)/$(SHL4TARGET)_link.lst
1899 SHL4LINKLISTPARAM=@$(SHL4LINKLIST)
1900 $(SHL4LINKLIST) : $(SHL4LIBS)
1901 @@-$(RM) $@
1902 $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL4LIBS) $(i:s/.lib/.lin/)) >> $@
1903 .ENDIF # "$(SHL4LIBS)"!=""
1904 .ENDIF # "$(COM)"!="GCC"
1905 .ENDIF
1906 .ENDIF # "$(SHL4USE_EXPORTS)"=="name"
1908 $(MISC)/%linkinc.ls:
1909 @echo . > $@
1910 .ENDIF # "$(linkinc)"!=""
1912 .IF "$(GUI)" == "OS2"
1913 #21/02/2006 YD dll names must be 8.3, invoke fix script
1914 #check osl/os2/module.c/osl_loadModule()
1915 SHL4TARGET8=$(shell @fix_shl $(SHL4TARGET))
1916 .ENDIF
1918 .IF "$(GUI)" == "OS2"
1919 _SHL4IMP_ORD = $(SHL4STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(SHL4STDLIBS:^"$(LB)/")
1920 SHL4IMP_ORD = $(foreach,i,$(_SHL4IMP_ORD) $(shell @-ls $i))
1921 .ELSE
1922 SHL4IMP_ORD =
1923 .ENDIF
1926 $(SHL4TARGETN) : \
1927 $(SHL4OBJS)\
1928 $(SHL4LIBS)\
1929 $(USE_4IMPLIB_DEPS)\
1930 $(USE_SHL4DEF)\
1931 $(USE_SHL4VERSIONMAP)\
1932 $(SHL4RES)\
1933 $(SHL4DEPN) \
1934 $(SHL4IMP_ORD) \
1935 $(SHL4LINKLIST)
1936 .IF "$(VERBOSE)" == "TRUE"
1937 @echo ------------------------------
1938 .ENDIF
1939 @echo "Making: " $(@:f)
1940 .IF "$(GUI)" == "WNT"
1941 .IF "$(SHL4DEFAULTRES)"!=""
1942 @@-$(RM) $(MISC)/$(SHL4DEFAULTRES:b).rc
1943 .IF "$(SHL4ICON)" != ""
1944 @echo 1 ICON $(SHL4ICON) >> $(MISC)/$(SHL4DEFAULTRES:b).rc
1945 .ENDIF
1946 .IF "$(use_shl_versions)" != ""
1947 .IF "$(SHL4ADD_VERINFO)"!=""
1948 @echo $(EMQ)#include $(EMQ)"$(SHL4ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL4DEFAULTRES:b).rc
1949 .ELSE # "$(SHL4ADD_VERINFO)"!=""
1950 @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL4DEFAULTRES:b).rc
1951 @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL4DEFAULTRES:b).rc
1952 @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL4DEFAULTRES:b).rc
1953 .ENDIF # "$(SHL4ADD_VERINFO)"!=""
1954 @echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(SHL4DEFAULTRES:b).rc
1955 @echo $(EMQ)#define ORG_NAME $(SHL4TARGET)$(DLLPOST) >> $(MISC)/$(SHL4DEFAULTRES:b).rc
1956 @echo $(EMQ)#define INTERNAL_NAME $(SHL4TARGET:b) >> $(MISC)/$(SHL4DEFAULTRES:b).rc
1957 @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL4DEFAULTRES:b).rc
1958 .ENDIF # "$(use_shl_versions)" != ""
1959 $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL4DEFAULTRES:b).rc
1960 .ENDIF # "$(SHL4DEFAULTRES)"!=""
1961 .IF "$(SHL4ALLRES)"!=""
1962 $(COMMAND_ECHO)$(TYPE) $(SHL4ALLRES) > $(SHL4LINKRES)
1963 .IF "$(COM)"=="GCC"
1964 windres $(SHL4LINKRES) $(SHL4LINKRESO)
1965 .ENDIF # "$(COM)"=="GCC"
1966 .ENDIF # "$(SHL4ALLRES)"!=""
1967 .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def
1968 @echo dlltool --input-def $(SHL4DEF) \
1969 --dllname $(SHL4TARGET)$(DLLPOST) \
1970 --kill-at \\ > $(MISC)/$(TARGET).$(@:b)_4.cmd
1971 @noop $(assign ALL4OBJLIST:=$(STDOBJ) $(SHL4OBJS) $(SHL4LINKRESO) $(shell $(TYPE) /dev/null $(SHL4LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g))
1972 .IF "$(DEFLIB4NAME)"!="" # do not have to include objs
1973 @noop $(assign DEF4OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB4NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g))
1974 @noop $(foreach,i,$(DEF4OBJLIST) $(assign ALL4OBJLIST:=$(ALL4OBJLIST:s?$i??)))
1975 .ENDIF # "$(DEFLIB4NAME)"!=""
1976 @echo --output-exp $(MISC)/$(@:b)_exp.o \
1977 $(ALL4OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_4.cmd
1978 @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \
1979 $(STDOBJ) $(SHL4VERSIONOBJ) $(SHL4DESCRIPTIONOBJ) $(SHL4OBJS) $(SHL4LINKRESO) \
1980 `$(TYPE) /dev/null $(SHL4LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
1981 -Wl,--exclude-libs,ALL,--start-group $(SHL4STDLIBS) -Wl,--end-group \
1982 $(SHL4STDSHL) $(STDSHL4) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \
1983 -Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_4.cmd
1984 @$(TYPE) $(MISC)/$(TARGET).$(@:b)_4.cmd
1985 @+source $(MISC)/$(TARGET).$(@:b)_4.cmd
1986 .ELSE
1987 .IF "$(linkinc)"==""
1988 .IF "$(SHL4USE_EXPORTS)"!="name"
1989 .IF "$(USE_DEFFILE)"!=""
1990 $(SHL4LINKER) @$(mktmp \
1991 $(SHL4LINKFLAGS) \
1992 $(LINKFLAGSSHL) \
1993 $(SHL4STACK) $(SHL4BASEX) \
1994 -out:$@ \
1995 -map:$(MISC)/$(@:b).map \
1996 -def:$(SHL4DEF) \
1997 $(USE_4IMPLIB) \
1998 $(STDOBJ) \
1999 $(SHL4VERSIONOBJ) $(SHL4OBJS) \
2000 $(SHL4LIBS) \
2001 $(SHL4STDLIBS) \
2002 $(SHL4STDSHL) $(STDSHL4) \
2003 $(SHL4LINKRES) \
2004 ) $(LINKOUTPUTFILTER)
2005 # double check if target was really written... still making sense?
2006 @@$(LS) $@
2007 @echo linking $@.manifest ...
2008 .IF "$(VISTA_MANIFEST)"!=""
2009 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
2010 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
2011 .ELSE
2012 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
2013 .ENDIF # "$(VISTA_MANIFEST)"!=""
2014 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
2015 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
2016 .ELSE # "$(USE_DEFFILE)"!=""
2017 $(COMMAND_ECHO)$(SHL4LINKER) @$(mktmp $(SHL4LINKFLAGS) \
2018 $(LINKFLAGSSHL) $(SHL4BASEX) \
2019 $(SHL4STACK) -out:$(SHL4TARGETN) \
2020 -map:$(MISC)/$(@:B).map \
2021 $(LB)/$(SHL4IMPLIB).exp \
2022 $(STDOBJ) \
2023 $(SHL4OBJS) $(SHL4VERSIONOBJ) \
2024 $(SHL4LIBS) \
2025 $(SHL4STDLIBS) \
2026 $(SHL4STDSHL) $(STDSHL4) \
2027 $(SHL4LINKRES) \
2028 ) $(LINKOUTPUTFILTER)
2029 # double check if target was really written... still making sense?
2030 @@$(LS) $@
2031 @echo linking $@.manifest ...
2032 .IF "$(VISTA_MANIFEST)"!=""
2033 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
2034 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
2035 .ELSE
2036 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
2037 .ENDIF # "$(VISTA_MANIFEST)"!=""
2038 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
2039 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
2040 .ENDIF # "$(USE_DEFFILE)"!=""
2041 .ELSE # "$(SHL4USE_EXPORTS)"!="name"
2042 $(COMMAND_ECHO)$(SHL4LINKER) @$(mktmp $(SHL4LINKFLAGS) \
2043 $(LINKFLAGSSHL) $(SHL4BASEX) \
2044 $(SHL4STACK) -out:$(SHL4TARGETN) \
2045 -map:$(MISC)/$(@:B).map \
2046 $(USE_4IMPLIB) \
2047 $(STDOBJ) \
2048 $(SHL4OBJS) $(SHL4VERSIONOBJ)) \
2049 $(SHL4LINKLISTPARAM) \
2050 @$(mktmp $(SHL4STDLIBS) \
2051 $(SHL4STDSHL) $(STDSHL4) \
2052 $(SHL4LINKRES) \
2054 @echo linking $@.manifest ...
2055 .IF "$(VISTA_MANIFEST)"!=""
2056 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
2057 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
2058 .ELSE
2059 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
2060 .ENDIF # "$(VISTA_MANIFEST)"!=""
2061 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
2062 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
2063 .ENDIF # "$(SHL4USE_EXPORTS)"!="name"
2064 .ELSE # "$(linkinc)"==""
2065 $(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL4TARGET).lnk
2066 $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL4TARGET).lst
2067 $(COMMAND_ECHO)$(TYPE) $(mktmp \
2068 $(SHL4LINKFLAGS) \
2069 $(LINKFLAGSSHL) $(SHL4BASEX) \
2070 $(SHL4STACK) $(MAPFILE) \
2071 -out:$@ \
2072 $(LB)/$(SHL4IMPLIB).exp \
2073 $(STDOBJ) \
2074 $(SHL4OBJS) \
2075 $(SHL4STDLIBS) \
2076 $(SHL4STDSHL) $(STDSHL4) \
2077 $(SHL4LINKRES) \
2078 ) >> $(MISC)/$(SHL4TARGET).lnk
2079 $(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL4TARGETN:b)_linkinc.ls >> $(MISC)/$(SHL4TARGET).lnk
2080 $(COMMAND_ECHO)$(SHL4LINKER) @$(MISC)/$(SHL4TARGET).lnk
2081 @echo linking $@.manifest ...
2082 .IF "$(VISTA_MANIFEST)"!=""
2083 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
2084 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
2085 .ELSE
2086 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
2087 .ENDIF # "$(VISTA_MANIFEST)"!=""
2088 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
2089 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
2090 .ENDIF # "$(linkinc)"==""
2091 .ENDIF # "$(COM)"=="GCC"
2092 .ENDIF # "$(GUI)" == "WNT"
2093 .IF "$(GUI)"=="UNX"
2094 .IF "$(OS)"=="MACOSX"
2095 @-$(RM) $(MISC)/$(@:b).list
2096 @-$(RM) $(MISC)/$(TARGET).$(@:b)_4.cmd
2097 @echo $(STDSLO) $(SHL4OBJS:s/.obj/.o/) \
2098 $(SHL4VERSIONOBJ) \
2099 `cat /dev/null $(SHL4LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list
2100 @echo -n $(SHL4LINKER) $(SHL4LINKFLAGS) $(SHL4VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \
2101 $(SHL4STDLIBS) $(SHL4ARCHIVES) $(SHL4STDSHL) $(STDSHL4) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_4.cmd
2102 @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \
2103 `cat $(MISC)/$(TARGET).$(@:b)_4.cmd` \
2104 >> $(MISC)/$(TARGET).$(@:b)_4.cmd
2105 .IF "$(VERBOSE)" == "TRUE"
2106 @cat $(MISC)/$(TARGET).$(@:b)_4.cmd
2107 .ENDIF
2108 @+source $(MISC)/$(TARGET).$(@:b)_4.cmd
2109 @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \
2110 shl $(SHL4RPATH) $@
2111 @echo "Making: " $(@:f).jnilib
2112 @macosx-create-bundle $@
2113 .IF "$(UPDATER)"=="YES"
2114 .IF "$(SHL4NOCHECK)"==""
2115 $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS4) $(SHL4TARGETN)
2116 .ENDIF # "$(SHL4NOCHECK)"!=""
2117 .ENDIF
2118 .ELSE # "$(OS)"=="MACOSX"
2119 @-$(RM) $(MISC)/$(TARGET).$(@:b)_4.cmd
2120 @echo $(SHL4LINKER) $(SHL4LINKFLAGS) $(SHL4SONAME) $(LINKFLAGSSHL) $(SHL4VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL4OBJS:s/.obj/.o/) \
2121 $(SHL4VERSIONOBJ) -o $@ \
2122 `cat /dev/null $(SHL4LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
2123 $(SHL4STDLIBS) $(SHL4ARCHIVES) $(SHL4STDSHL) $(STDSHL4) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_4.cmd
2124 .IF "$(VERBOSE)" == "TRUE"
2125 @cat $(MISC)/$(TARGET).$(@:b)_4.cmd
2126 .ENDIF
2127 @+source $(MISC)/$(TARGET).$(@:b)_4.cmd
2128 .IF "$(UPDATER)"=="YES"
2129 .IF "$(SHL4NOCHECK)"==""
2130 $(COMMAND_ECHO)-$(RM) $(SHL4TARGETN:d)check_$(SHL4TARGETN:f)
2131 $(COMMAND_ECHO)$(RENAME) $(SHL4TARGETN) $(SHL4TARGETN:d)check_$(SHL4TARGETN:f)
2132 .IF "$(VERBOSE)"=="TRUE"
2133 $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS4) $(SHL4TARGETN:d)check_$(SHL4TARGETN:f)
2134 .ELSE
2135 $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS4) -- -s $(SHL4TARGETN:d)check_$(SHL4TARGETN:f)
2136 .ENDIF
2137 .ENDIF # "$(SHL4NOCHECK)"!=""
2138 .ENDIF # "$(UPDATER)"=="YES"
2139 .ENDIF # "$(OS)"=="MACOSX"
2140 .IF "$(UNIXVERSIONNAMES)"!=""
2141 $(COMMAND_ECHO)$(RM) $(LB)/$(SHL4TARGETN:b)
2142 $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL4TARGETN:f) $(SHL4TARGETN:b)
2143 .ENDIF # "$(UNIXVERSIONNAMES)"!=""
2144 .IF "$(VERBOSE)" == "TRUE"
2145 @ls -l $@
2146 .ENDIF
2147 .ENDIF # "$(GUI)" == "UNX"
2149 .IF "$(GUI)" == "OS2"
2151 .IF "$(SHL4DEFAULTRES)"!=""
2152 @+-$(RM) $(MISC)/$(SHL4DEFAULTRES:b).rc >& $(NULLDEV)
2153 .IF "$(SHL4ICON)" != ""
2154 @-+echo 1 ICON $(SHL4ICON) >> $(MISC)/$(SHL4DEFAULTRES:b).rc
2155 .ENDIF
2156 .IF "$(use_shl_versions)" != ""
2157 .IF "$(SHL4ADD_VERINFO)"!=""
2158 @-+echo $(EMQ)#include $(EMQ)"$(SHL4ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL4DEFAULTRES:b).rc
2159 .ENDIF # "$(SHL4ADD_VERINFO)"!=""
2160 @-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL4DEFAULTRES:b).rc
2161 # @-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL4DEFAULTRES:b).rc
2162 .ENDIF # "$(use_shl_versions)" != ""
2163 # YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR)
2164 $(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL4DEFAULTRES:b).rc
2165 .ENDIF # "$(SHL4DEFAULTRES)"!=""
2167 .IF "$(SHL4ALLRES)"!=""
2168 $(COMMAND_ECHO)+$(TYPE) $(SHL4ALLRES) > $(SHL4LINKRES)
2169 .ENDIF # "$(SHL4ALLRES)"!=""
2171 .IF "$(USE_DEFFILE)"!=""
2173 $(COMMAND_ECHO)$(SHL4LINKER) $(SHL4LINKFLAGS) $(LINKFLAGSSHL) -o $@ \
2174 $(SHL4DEF) \
2175 $(STDOBJ) \
2176 -L$(LB) \
2177 -L$(SOLARVERSION)/$(INPATH)/lib \
2178 $(SHL4OBJS) $(SHL4VERSIONOBJ) \
2179 $(SHL4LIBS) \
2180 $(SHL4STDLIBS:^"-l") \
2181 $(SHL4LINKRES) \
2182 $(SHL4STDSHL:^"-l") $(STDSHL4:^"-l")
2184 .ELSE # "$(USE_DEFFILE)"!=""
2186 $(COMMAND_ECHO)$(SHL4LINKER) -v $(SHL4LINKFLAGS) \
2187 $(LINKFLAGSSHL) $(SHL4BASEX) \
2188 $(SHL4STACK) -o $(SHL4TARGETN) \
2189 $(SHL4DEF) \
2190 $(STDOBJ) \
2191 -L$(LB) \
2192 -L$(SOLARVERSION)/$(INPATH)/lib \
2193 $(SHL4OBJS) $(SHL4VERSIONOBJ) \
2194 $(SHL4LIBS) \
2195 $(SHL4STDLIBS:^"-l") \
2196 $(SHL4LINKRES) \
2197 $(SHL4STDSHL:^"-l") $(STDSHL4:^"-l") \
2198 $(LINKOUTPUTFILTER)
2199 @$(LS) $@ >& $(NULLDEV)
2201 .ENDIF # "$(USE_DEFFILE)"!=""
2203 .IF "$(SHL4TARGET8)" != "$(SHL4TARGET)"
2204 $(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL4TARGET8).dll
2205 .ENDIF
2207 .ENDIF # "$(GUI)" == "OS2"
2210 .IF "$(TESTDIR)"!=""
2211 .IF "$(NO_TESTS)"==""
2213 ALLTAR : runtest_$(SHL4TARGET)
2215 runtest_$(SHL4TARGET) : $(SHL4TARGETN)
2216 testshl $(SHL4TARGETN) sce/$(SHL4TARGET).sce -msg -skip
2217 .ENDIF # "$(NO_TESTS)"==""
2218 .ENDIF # "$(TESTDIR)"!=""
2219 .ENDIF # "$(SHL4TARGETN)"!=""
2221 # unroll begin
2223 .IF "$(SHL5TARGETN)"!=""
2225 .IF "$(OS)"=="AIX"
2226 SHL5STDLIBS=
2227 .ENDIF
2229 .IF "$(SHLLINKARCONLY)" != ""
2230 SHL5STDLIBS=
2231 STDSHL=
2232 .ELSE
2233 SHL5ARCHIVES=
2234 .ENDIF
2236 # decide how to link
2237 .IF "$(SHL5CODETYPE)"=="C"
2238 SHL5LINKER=$(LINKC)
2239 SHL5STDSHL=$(subst,CPPRUNTIME, $(STDSHL))
2240 SHL5LINKFLAGS+=$(LINKCFLAGS)
2241 .ELSE # "$(SHL5CODETYPE)"=="C"
2242 SHL5LINKER=$(LINK)
2243 SHL5STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL))
2244 SHL5LINKFLAGS+=$(LINKFLAGS)
2245 .ENDIF # "$(SHL5CODETYPE)"=="C"
2247 SHL5RPATH*=OOO
2248 LINKFLAGSRUNPATH_$(SHL5RPATH)*=/ERROR:/Bad_SHL5RPATH_value
2249 SHL5LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL5RPATH))
2251 .IF "$(SHL5USE_EXPORTS)"==""
2252 SHL5DEF*=$(MISC)/$(SHL5TARGET).def
2253 .ENDIF # "$(SHL5USE_EXPORTS)"==""
2255 EXTRALIBPATHS5=$(EXTRALIBPATHS)
2256 .IF "$(UPDATER)"=="YES"
2257 .IF "$(SHL5NOCHECK)"==""
2258 .IF "$(SOLAR_STLLIBPATH)"!=""
2259 EXTRALIBPATHS5+=-L$(SOLAR_STLLIBPATH)
2260 .ENDIF
2261 .ENDIF # "$(SHL5NOCHECK)"!=""
2262 .ENDIF
2263 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2264 #+++++++++++ version object ++++++++++++++++++++++++++++++++++++++++
2265 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2267 .IF "$(L10N_framework)"==""
2268 .IF "$(VERSIONOBJ)"!=""
2269 SHL5VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL5TARGET))}$(VERSIONOBJ:f)
2270 USE_VERSIONH:=$(INCCOM)/$(SHL5VERSIONOBJ:b).h
2271 .IF "$(GUI)" == "UNX"
2272 SHL5VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL5TARGET))}$(VERSIONOBJ:f:s/.o/.obj/)
2273 .ELSE # "$(GUI)" == "UNX"
2274 SHL5VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL5TARGET))}$(VERSIONOBJ:f)
2275 .ENDIF # "$(GUI)" == "UNX"
2276 $(MISC)/$(SHL5VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL5VERSIONOBJ:b).h
2277 # $(COPY) $(SOLARENV)/src/version.c $@
2278 $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL5VERSIONOBJ:b).h/ > $@
2280 .INIT : $(SHL5VERSIONOBJDEP)
2281 .ENDIF # "$(VERSIONOBJ)"!=""
2282 .ENDIF
2284 .IF "$(GUI)" != "UNX"
2285 .IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
2286 .IF "$(SHL5IMPLIB)" == ""
2287 SHL5IMPLIB=i$(TARGET)_t5
2288 .ENDIF # "$(SHL5IMPLIB)" == ""
2289 .IF "$(COM)" != "GCC"
2290 USE_5IMPLIB=-implib:$(LB)/$(SHL5IMPLIB).lib
2291 .ENDIF # "$(COM)" != "GCC"
2292 SHL5IMPLIBN=$(LB)/$(SHL5IMPLIB).lib
2293 ALLTAR : $(SHL5IMPLIBN)
2295 .IF "$(USE_DEFFILE)"==""
2296 USE_5IMPLIB_DEPS=$(LB)/$(SHL5IMPLIB).lib
2297 .ENDIF # "$(USE_DEFFILE)"==""
2298 .ENDIF # "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
2299 USE_SHL5DEF=$(SHL5DEF)
2300 .ELSE # "$(GUI)" != "UNX"
2301 USE_SHL5DEF=
2302 SHL5DEPN+:=$(SHL5DEPNU)
2304 .IF "$(SHL5VERSIONMAP)"==""
2305 # to activate vmaps remove "#"
2306 USE_SHL5VERSIONMAP=$(MISC)/$(SHL5TARGET).vmap
2307 .ENDIF # "$(SHL5VERSIONMAP)"==""
2309 .IF "$(USE_SHL5VERSIONMAP)"!=""
2311 .IF "$(SHL5FILTERFILE)"!=""
2312 .IF "$(SHL5VERSIONMAP)"!=""
2313 #eine von beiden ist zuviel
2314 USE_SHL5VERSIONMAP=$(MISC)/$(SHL5TARGET).vmap
2315 $(USE_SHL5VERSIONMAP) .PHONY:
2316 @echo -----------------------------
2317 @echo you should only use versionmap OR exportfile
2318 @echo -----------------------------
2319 # force_dmake_to_error
2321 .ENDIF # "$(SHL5VERSIONMAP)"!=""
2323 .IF "$(OS)"!="IRIX"
2324 SHL5VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL5VERSIONMAP)
2325 .ENDIF
2327 $(USE_SHL5VERSIONMAP): \
2328 $(SHL5OBJS)\
2329 $(SHL5LIBS)\
2330 $(SHL5FILTERFILE)
2331 @$(RM) $@.dump
2332 .IF "$(SHL5OBJS)"!=""
2333 # dump remaining objects on the fly
2334 .IF "$(OS)"=="MACOSX"
2335 @-nm $(SHL5OBJS:s/.obj/.o/) > $@.dump
2336 .ELSE
2337 @nm $(SHL5OBJS:s/.obj/.o/) > $@.dump
2338 .ENDIF
2339 .ENDIF # "$(SHL5OBJS)!"=""
2340 @$(TYPE) /dev/null $(SHL5LIBS:s/.lib/.dump/) >> $@.dump
2341 $(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL5INTERFACE) -f $(SHL5FILTERFILE) -m $@
2343 .ELSE # "$(SHL5FILTERFILE)"!=""
2344 USE_SHL5VERSIONMAP=$(MISC)/$(SHL5TARGET).vmap
2345 $(USE_SHL5VERSIONMAP) :
2346 .IF "$(VERBOSE)" == "TRUE"
2347 @echo -----------------------------
2348 @echo SHL5FILTERFILE not set!
2349 @echo -----------------------------
2350 @$(TOUCH) $@
2351 @echo dummy file to keep the dependencies for later use.
2352 .ELSE
2353 @$(TOUCH) $@
2354 .ENDIF
2355 # force_dmake_to_error
2356 .ENDIF # "$(SHL5FILTERFILE)"!=""
2357 .ELSE # "$(USE_SHL5VERSIONMAP)"!=""
2359 #and now for the plain non-generic way...
2360 .IF "$(SHL5VERSIONMAP)"!=""
2361 USE_SHL5VERSIONMAP=$(MISC)/$(SHL5VERSIONMAP:b)_$(SHL5TARGET)$(SHL5VERSIONMAP:e)
2362 .IF "$(OS)"!="IRIX"
2363 SHL5VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL5VERSIONMAP)
2364 .ENDIF
2366 .IF "$(OS)"=="MACOSX"
2367 $(USE_SHL5VERSIONMAP): $(SHL5OBJS) $(SHL5LIBS)
2368 .ENDIF
2370 $(USE_SHL5VERSIONMAP): $(SHL5VERSIONMAP)
2371 @@-$(RM) -f $@
2372 # The following files will only be generated and needed on Mac OS X as temporary files
2373 # in order to generate exported symbols list out of Linux/Solaris map files
2374 .IF "$(OS)"=="MACOSX"
2375 @-$(RM) -f $@.symregexp >& $(NULLDEV)
2376 @-$(RM) -f $@.expsymlist >& $(NULLDEV)
2377 .ENDIF
2378 # Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what
2379 # happens if somebody will change it in the future
2380 .IF "$(COMID)"=="gcc3"
2381 $(COMMAND_ECHO) tr -d "\015" < $(SHL5VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@
2382 .ELIF "$(COMNAME)"=="sunpro5"
2383 $(COMMAND_ECHO) tr -d "\015" < $(SHL5VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@
2384 .ELSE # "$(COMID)"=="gcc3"
2385 $(COMMAND_ECHO) tr -d "\015" < $(SHL5VERSIONMAP) > $@
2386 .ENDIF # "$(COMID)"=="gcc3"
2387 @chmod a+w $@
2388 # Mac OS X post-processing generate an exported symbols list from the generated map file
2389 # for details on exported symbols list see man ld on Mac OS X
2390 .IF "$(OS)"=="MACOSX"
2391 @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols
2392 @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp
2393 # Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
2394 # Extract RTTI symbols from all the objects that will be used to build a shared library
2395 .IF "$(SHL5OBJS)"!=""
2396 -echo $(foreach,i,$(SHL5OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
2397 .ENDIF
2398 .IF "$(SHL5LIBS)"!=""
2399 $(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL5LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
2400 .ENDIF
2401 # overwrite the map file generate into the local output tree with the generated
2402 # exported symbols list
2403 cp $@.exported-symbols $@
2404 .ENDIF # .IF "$(OS)"=="MACOSX"
2405 .ENDIF # "$(SHL5VERSIONMAP)"!=""
2406 .ENDIF # "$(USE_SHL5VERSIONMAP)"!=""
2407 .ENDIF # "$(GUI)" != "UNX"
2409 .IF "$(UNIXVERSIONNAMES)"!=""
2410 .IF "$(OS)"!="MACOSX"
2411 .IF "$(GUI)"=="UNX"
2412 .IF "$(OS)"=="IRIX"
2413 SHL5SONAME=$(SONAME_SWITCH)$(SHL5TARGETN:f)
2414 .ELSE
2415 SHL5SONAME=\"$(SONAME_SWITCH)$(SHL5TARGETN:f)\"
2416 .ENDIF
2417 .ENDIF # "$(GUI)"!="UNX"
2418 .ENDIF # "$(OS)"!="MACOSX"
2419 .ENDIF # "$(UNIXVERSIONNAMES)"!=""
2421 .IF "$(SHL5RES)"!=""
2422 SHL5ALLRES+=$(SHL5RES)
2423 SHL5LINKRES*=$(MISC)/$(SHL5TARGET).res
2424 SHL5LINKRESO*=$(MISC)/$(SHL5TARGET)_res.o
2425 .ENDIF # "$(SHL5RES)"!=""
2427 .IF "$(SHL5DEFAULTRES)$(use_shl_versions)"!=""
2428 SHL5DEFAULTRES*=$(MISC)/$(SHL5TARGET)_def.res
2429 SHL5ALLRES+=$(SHL5DEFAULTRES)
2430 SHL5LINKRES*=$(MISC)/$(SHL5TARGET).res
2431 SHL5LINKRESO*=$(MISC)/$(SHL5TARGET)_res.o
2432 .ENDIF # "$(SHL5DEFAULTRES)$(use_shl_versions)"!=""
2434 #.IF "$(SHL5TARGETN)"!=""
2436 .IF "$(linkinc)"!=""
2437 .IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
2438 .IF "$(SHL5LIBS)"!=""
2439 $(MISC)/$(SHL5TARGET)_linkinc.ls .PHONY:
2440 @@-$(RM) $@
2441 $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL5LIBS) $(i:s/.lib/.lin/)) >> $@
2442 .ENDIF # "$(SHL5LIBS)"!=""
2443 .ENDIF
2445 LINKINCTARGETS+=$(MISC)/$(SHL5TARGETN:b)_linkinc.ls
2446 $(SHL5TARGETN) : $(LINKINCTARGETS)
2448 .ELSE
2449 .IF "$(SHL5USE_EXPORTS)"=="name"
2450 .IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
2451 .IF "$(COM)"!="GCC"
2452 .IF "$(SHL5LIBS)"!=""
2453 SHL5LINKLIST=$(MISC)/$(SHL5TARGET)_link.lst
2454 SHL5LINKLISTPARAM=@$(SHL5LINKLIST)
2455 $(SHL5LINKLIST) : $(SHL5LIBS)
2456 @@-$(RM) $@
2457 $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL5LIBS) $(i:s/.lib/.lin/)) >> $@
2458 .ENDIF # "$(SHL5LIBS)"!=""
2459 .ENDIF # "$(COM)"!="GCC"
2460 .ENDIF
2461 .ENDIF # "$(SHL5USE_EXPORTS)"=="name"
2463 $(MISC)/%linkinc.ls:
2464 @echo . > $@
2465 .ENDIF # "$(linkinc)"!=""
2467 .IF "$(GUI)" == "OS2"
2468 #21/02/2006 YD dll names must be 8.3, invoke fix script
2469 #check osl/os2/module.c/osl_loadModule()
2470 SHL5TARGET8=$(shell @fix_shl $(SHL5TARGET))
2471 .ENDIF
2473 .IF "$(GUI)" == "OS2"
2474 _SHL5IMP_ORD = $(SHL5STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(SHL5STDLIBS:^"$(LB)/")
2475 SHL5IMP_ORD = $(foreach,i,$(_SHL5IMP_ORD) $(shell @-ls $i))
2476 .ELSE
2477 SHL5IMP_ORD =
2478 .ENDIF
2481 $(SHL5TARGETN) : \
2482 $(SHL5OBJS)\
2483 $(SHL5LIBS)\
2484 $(USE_5IMPLIB_DEPS)\
2485 $(USE_SHL5DEF)\
2486 $(USE_SHL5VERSIONMAP)\
2487 $(SHL5RES)\
2488 $(SHL5DEPN) \
2489 $(SHL5IMP_ORD) \
2490 $(SHL5LINKLIST)
2491 .IF "$(VERBOSE)" == "TRUE"
2492 @echo ------------------------------
2493 .ENDIF
2494 @echo "Making: " $(@:f)
2495 .IF "$(GUI)" == "WNT"
2496 .IF "$(SHL5DEFAULTRES)"!=""
2497 @@-$(RM) $(MISC)/$(SHL5DEFAULTRES:b).rc
2498 .IF "$(SHL5ICON)" != ""
2499 @echo 1 ICON $(SHL5ICON) >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2500 .ENDIF
2501 .IF "$(use_shl_versions)" != ""
2502 .IF "$(SHL5ADD_VERINFO)"!=""
2503 @echo $(EMQ)#include $(EMQ)"$(SHL5ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2504 .ELSE # "$(SHL5ADD_VERINFO)"!=""
2505 @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2506 @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2507 @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2508 .ENDIF # "$(SHL5ADD_VERINFO)"!=""
2509 @echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2510 @echo $(EMQ)#define ORG_NAME $(SHL5TARGET)$(DLLPOST) >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2511 @echo $(EMQ)#define INTERNAL_NAME $(SHL5TARGET:b) >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2512 @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2513 .ENDIF # "$(use_shl_versions)" != ""
2514 $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL5DEFAULTRES:b).rc
2515 .ENDIF # "$(SHL5DEFAULTRES)"!=""
2516 .IF "$(SHL5ALLRES)"!=""
2517 $(COMMAND_ECHO)$(TYPE) $(SHL5ALLRES) > $(SHL5LINKRES)
2518 .IF "$(COM)"=="GCC"
2519 windres $(SHL5LINKRES) $(SHL5LINKRESO)
2520 .ENDIF # "$(COM)"=="GCC"
2521 .ENDIF # "$(SHL5ALLRES)"!=""
2522 .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def
2523 @echo dlltool --input-def $(SHL5DEF) \
2524 --dllname $(SHL5TARGET)$(DLLPOST) \
2525 --kill-at \\ > $(MISC)/$(TARGET).$(@:b)_5.cmd
2526 @noop $(assign ALL5OBJLIST:=$(STDOBJ) $(SHL5OBJS) $(SHL5LINKRESO) $(shell $(TYPE) /dev/null $(SHL5LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g))
2527 .IF "$(DEFLIB5NAME)"!="" # do not have to include objs
2528 @noop $(assign DEF5OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB5NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g))
2529 @noop $(foreach,i,$(DEF5OBJLIST) $(assign ALL5OBJLIST:=$(ALL5OBJLIST:s?$i??)))
2530 .ENDIF # "$(DEFLIB5NAME)"!=""
2531 @echo --output-exp $(MISC)/$(@:b)_exp.o \
2532 $(ALL5OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_5.cmd
2533 @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \
2534 $(STDOBJ) $(SHL5VERSIONOBJ) $(SHL5DESCRIPTIONOBJ) $(SHL5OBJS) $(SHL5LINKRESO) \
2535 `$(TYPE) /dev/null $(SHL5LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
2536 -Wl,--exclude-libs,ALL,--start-group $(SHL5STDLIBS) -Wl,--end-group \
2537 $(SHL5STDSHL) $(STDSHL5) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \
2538 -Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_5.cmd
2539 @$(TYPE) $(MISC)/$(TARGET).$(@:b)_5.cmd
2540 @+source $(MISC)/$(TARGET).$(@:b)_5.cmd
2541 .ELSE
2542 .IF "$(linkinc)"==""
2543 .IF "$(SHL5USE_EXPORTS)"!="name"
2544 .IF "$(USE_DEFFILE)"!=""
2545 $(SHL5LINKER) @$(mktmp \
2546 $(SHL5LINKFLAGS) \
2547 $(LINKFLAGSSHL) \
2548 $(SHL5STACK) $(SHL5BASEX) \
2549 -out:$@ \
2550 -map:$(MISC)/$(@:b).map \
2551 -def:$(SHL5DEF) \
2552 $(USE_5IMPLIB) \
2553 $(STDOBJ) \
2554 $(SHL5VERSIONOBJ) $(SHL5OBJS) \
2555 $(SHL5LIBS) \
2556 $(SHL5STDLIBS) \
2557 $(SHL5STDSHL) $(STDSHL5) \
2558 $(SHL5LINKRES) \
2559 ) $(LINKOUTPUTFILTER)
2560 # double check if target was really written... still making sense?
2561 @@$(LS) $@
2562 @echo linking $@.manifest ...
2563 .IF "$(VISTA_MANIFEST)"!=""
2564 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
2565 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
2566 .ELSE
2567 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
2568 .ENDIF # "$(VISTA_MANIFEST)"!=""
2569 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
2570 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
2571 .ELSE # "$(USE_DEFFILE)"!=""
2572 $(COMMAND_ECHO)$(SHL5LINKER) @$(mktmp $(SHL5LINKFLAGS) \
2573 $(LINKFLAGSSHL) $(SHL5BASEX) \
2574 $(SHL5STACK) -out:$(SHL5TARGETN) \
2575 -map:$(MISC)/$(@:B).map \
2576 $(LB)/$(SHL5IMPLIB).exp \
2577 $(STDOBJ) \
2578 $(SHL5OBJS) $(SHL5VERSIONOBJ) \
2579 $(SHL5LIBS) \
2580 $(SHL5STDLIBS) \
2581 $(SHL5STDSHL) $(STDSHL5) \
2582 $(SHL5LINKRES) \
2583 ) $(LINKOUTPUTFILTER)
2584 # double check if target was really written... still making sense?
2585 @@$(LS) $@
2586 @echo linking $@.manifest ...
2587 .IF "$(VISTA_MANIFEST)"!=""
2588 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
2589 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
2590 .ELSE
2591 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
2592 .ENDIF # "$(VISTA_MANIFEST)"!=""
2593 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
2594 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
2595 .ENDIF # "$(USE_DEFFILE)"!=""
2596 .ELSE # "$(SHL5USE_EXPORTS)"!="name"
2597 $(COMMAND_ECHO)$(SHL5LINKER) @$(mktmp $(SHL5LINKFLAGS) \
2598 $(LINKFLAGSSHL) $(SHL5BASEX) \
2599 $(SHL5STACK) -out:$(SHL5TARGETN) \
2600 -map:$(MISC)/$(@:B).map \
2601 $(USE_5IMPLIB) \
2602 $(STDOBJ) \
2603 $(SHL5OBJS) $(SHL5VERSIONOBJ)) \
2604 $(SHL5LINKLISTPARAM) \
2605 @$(mktmp $(SHL5STDLIBS) \
2606 $(SHL5STDSHL) $(STDSHL5) \
2607 $(SHL5LINKRES) \
2609 @echo linking $@.manifest ...
2610 .IF "$(VISTA_MANIFEST)"!=""
2611 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
2612 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
2613 .ELSE
2614 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
2615 .ENDIF # "$(VISTA_MANIFEST)"!=""
2616 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
2617 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
2618 .ENDIF # "$(SHL5USE_EXPORTS)"!="name"
2619 .ELSE # "$(linkinc)"==""
2620 $(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL5TARGET).lnk
2621 $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL5TARGET).lst
2622 $(COMMAND_ECHO)$(TYPE) $(mktmp \
2623 $(SHL5LINKFLAGS) \
2624 $(LINKFLAGSSHL) $(SHL5BASEX) \
2625 $(SHL5STACK) $(MAPFILE) \
2626 -out:$@ \
2627 $(LB)/$(SHL5IMPLIB).exp \
2628 $(STDOBJ) \
2629 $(SHL5OBJS) \
2630 $(SHL5STDLIBS) \
2631 $(SHL5STDSHL) $(STDSHL5) \
2632 $(SHL5LINKRES) \
2633 ) >> $(MISC)/$(SHL5TARGET).lnk
2634 $(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL5TARGETN:b)_linkinc.ls >> $(MISC)/$(SHL5TARGET).lnk
2635 $(COMMAND_ECHO)$(SHL5LINKER) @$(MISC)/$(SHL5TARGET).lnk
2636 @echo linking $@.manifest ...
2637 .IF "$(VISTA_MANIFEST)"!=""
2638 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
2639 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
2640 .ELSE
2641 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
2642 .ENDIF # "$(VISTA_MANIFEST)"!=""
2643 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
2644 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
2645 .ENDIF # "$(linkinc)"==""
2646 .ENDIF # "$(COM)"=="GCC"
2647 .ENDIF # "$(GUI)" == "WNT"
2648 .IF "$(GUI)"=="UNX"
2649 .IF "$(OS)"=="MACOSX"
2650 @-$(RM) $(MISC)/$(@:b).list
2651 @-$(RM) $(MISC)/$(TARGET).$(@:b)_5.cmd
2652 @echo $(STDSLO) $(SHL5OBJS:s/.obj/.o/) \
2653 $(SHL5VERSIONOBJ) \
2654 `cat /dev/null $(SHL5LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list
2655 @echo -n $(SHL5LINKER) $(SHL5LINKFLAGS) $(SHL5VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \
2656 $(SHL5STDLIBS) $(SHL5ARCHIVES) $(SHL5STDSHL) $(STDSHL5) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_5.cmd
2657 @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \
2658 `cat $(MISC)/$(TARGET).$(@:b)_5.cmd` \
2659 >> $(MISC)/$(TARGET).$(@:b)_5.cmd
2660 .IF "$(VERBOSE)" == "TRUE"
2661 @cat $(MISC)/$(TARGET).$(@:b)_5.cmd
2662 .ENDIF
2663 @+source $(MISC)/$(TARGET).$(@:b)_5.cmd
2664 @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \
2665 shl $(SHL5RPATH) $@
2666 @echo "Making: " $(@:f).jnilib
2667 @macosx-create-bundle $@
2668 .IF "$(UPDATER)"=="YES"
2669 .IF "$(SHL5NOCHECK)"==""
2670 $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS5) $(SHL5TARGETN)
2671 .ENDIF # "$(SHL5NOCHECK)"!=""
2672 .ENDIF
2673 .ELSE # "$(OS)"=="MACOSX"
2674 @-$(RM) $(MISC)/$(TARGET).$(@:b)_5.cmd
2675 @echo $(SHL5LINKER) $(SHL5LINKFLAGS) $(SHL5SONAME) $(LINKFLAGSSHL) $(SHL5VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL5OBJS:s/.obj/.o/) \
2676 $(SHL5VERSIONOBJ) -o $@ \
2677 `cat /dev/null $(SHL5LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
2678 $(SHL5STDLIBS) $(SHL5ARCHIVES) $(SHL5STDSHL) $(STDSHL5) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_5.cmd
2679 .IF "$(VERBOSE)" == "TRUE"
2680 @cat $(MISC)/$(TARGET).$(@:b)_5.cmd
2681 .ENDIF
2682 @+source $(MISC)/$(TARGET).$(@:b)_5.cmd
2683 .IF "$(UPDATER)"=="YES"
2684 .IF "$(SHL5NOCHECK)"==""
2685 $(COMMAND_ECHO)-$(RM) $(SHL5TARGETN:d)check_$(SHL5TARGETN:f)
2686 $(COMMAND_ECHO)$(RENAME) $(SHL5TARGETN) $(SHL5TARGETN:d)check_$(SHL5TARGETN:f)
2687 .IF "$(VERBOSE)"=="TRUE"
2688 $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS5) $(SHL5TARGETN:d)check_$(SHL5TARGETN:f)
2689 .ELSE
2690 $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS5) -- -s $(SHL5TARGETN:d)check_$(SHL5TARGETN:f)
2691 .ENDIF
2692 .ENDIF # "$(SHL5NOCHECK)"!=""
2693 .ENDIF # "$(UPDATER)"=="YES"
2694 .ENDIF # "$(OS)"=="MACOSX"
2695 .IF "$(UNIXVERSIONNAMES)"!=""
2696 $(COMMAND_ECHO)$(RM) $(LB)/$(SHL5TARGETN:b)
2697 $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL5TARGETN:f) $(SHL5TARGETN:b)
2698 .ENDIF # "$(UNIXVERSIONNAMES)"!=""
2699 .IF "$(VERBOSE)" == "TRUE"
2700 @ls -l $@
2701 .ENDIF
2702 .ENDIF # "$(GUI)" == "UNX"
2704 .IF "$(GUI)" == "OS2"
2706 .IF "$(SHL5DEFAULTRES)"!=""
2707 @+-$(RM) $(MISC)/$(SHL5DEFAULTRES:b).rc >& $(NULLDEV)
2708 .IF "$(SHL5ICON)" != ""
2709 @-+echo 1 ICON $(SHL5ICON) >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2710 .ENDIF
2711 .IF "$(use_shl_versions)" != ""
2712 .IF "$(SHL5ADD_VERINFO)"!=""
2713 @-+echo $(EMQ)#include $(EMQ)"$(SHL5ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2714 .ENDIF # "$(SHL5ADD_VERINFO)"!=""
2715 @-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2716 # @-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2717 .ENDIF # "$(use_shl_versions)" != ""
2718 # YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR)
2719 $(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL5DEFAULTRES:b).rc
2720 .ENDIF # "$(SHL5DEFAULTRES)"!=""
2722 .IF "$(SHL5ALLRES)"!=""
2723 $(COMMAND_ECHO)+$(TYPE) $(SHL5ALLRES) > $(SHL5LINKRES)
2724 .ENDIF # "$(SHL5ALLRES)"!=""
2726 .IF "$(USE_DEFFILE)"!=""
2728 $(COMMAND_ECHO)$(SHL5LINKER) $(SHL5LINKFLAGS) $(LINKFLAGSSHL) -o $@ \
2729 $(SHL5DEF) \
2730 $(STDOBJ) \
2731 -L$(LB) \
2732 -L$(SOLARVERSION)/$(INPATH)/lib \
2733 $(SHL5OBJS) $(SHL5VERSIONOBJ) \
2734 $(SHL5LIBS) \
2735 $(SHL5STDLIBS:^"-l") \
2736 $(SHL5LINKRES) \
2737 $(SHL5STDSHL:^"-l") $(STDSHL5:^"-l")
2739 .ELSE # "$(USE_DEFFILE)"!=""
2741 $(COMMAND_ECHO)$(SHL5LINKER) -v $(SHL5LINKFLAGS) \
2742 $(LINKFLAGSSHL) $(SHL5BASEX) \
2743 $(SHL5STACK) -o $(SHL5TARGETN) \
2744 $(SHL5DEF) \
2745 $(STDOBJ) \
2746 -L$(LB) \
2747 -L$(SOLARVERSION)/$(INPATH)/lib \
2748 $(SHL5OBJS) $(SHL5VERSIONOBJ) \
2749 $(SHL5LIBS) \
2750 $(SHL5STDLIBS:^"-l") \
2751 $(SHL5LINKRES) \
2752 $(SHL5STDSHL:^"-l") $(STDSHL5:^"-l") \
2753 $(LINKOUTPUTFILTER)
2754 @$(LS) $@ >& $(NULLDEV)
2756 .ENDIF # "$(USE_DEFFILE)"!=""
2758 .IF "$(SHL5TARGET8)" != "$(SHL5TARGET)"
2759 $(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL5TARGET8).dll
2760 .ENDIF
2762 .ENDIF # "$(GUI)" == "OS2"
2765 .IF "$(TESTDIR)"!=""
2766 .IF "$(NO_TESTS)"==""
2768 ALLTAR : runtest_$(SHL5TARGET)
2770 runtest_$(SHL5TARGET) : $(SHL5TARGETN)
2771 testshl $(SHL5TARGETN) sce/$(SHL5TARGET).sce -msg -skip
2772 .ENDIF # "$(NO_TESTS)"==""
2773 .ENDIF # "$(TESTDIR)"!=""
2774 .ENDIF # "$(SHL5TARGETN)"!=""
2776 # unroll begin
2778 .IF "$(SHL6TARGETN)"!=""
2780 .IF "$(OS)"=="AIX"
2781 SHL6STDLIBS=
2782 .ENDIF
2784 .IF "$(SHLLINKARCONLY)" != ""
2785 SHL6STDLIBS=
2786 STDSHL=
2787 .ELSE
2788 SHL6ARCHIVES=
2789 .ENDIF
2791 # decide how to link
2792 .IF "$(SHL6CODETYPE)"=="C"
2793 SHL6LINKER=$(LINKC)
2794 SHL6STDSHL=$(subst,CPPRUNTIME, $(STDSHL))
2795 SHL6LINKFLAGS+=$(LINKCFLAGS)
2796 .ELSE # "$(SHL6CODETYPE)"=="C"
2797 SHL6LINKER=$(LINK)
2798 SHL6STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL))
2799 SHL6LINKFLAGS+=$(LINKFLAGS)
2800 .ENDIF # "$(SHL6CODETYPE)"=="C"
2802 SHL6RPATH*=OOO
2803 LINKFLAGSRUNPATH_$(SHL6RPATH)*=/ERROR:/Bad_SHL6RPATH_value
2804 SHL6LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL6RPATH))
2806 .IF "$(SHL6USE_EXPORTS)"==""
2807 SHL6DEF*=$(MISC)/$(SHL6TARGET).def
2808 .ENDIF # "$(SHL6USE_EXPORTS)"==""
2810 EXTRALIBPATHS6=$(EXTRALIBPATHS)
2811 .IF "$(UPDATER)"=="YES"
2812 .IF "$(SHL6NOCHECK)"==""
2813 .IF "$(SOLAR_STLLIBPATH)"!=""
2814 EXTRALIBPATHS6+=-L$(SOLAR_STLLIBPATH)
2815 .ENDIF
2816 .ENDIF # "$(SHL6NOCHECK)"!=""
2817 .ENDIF
2818 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2819 #+++++++++++ version object ++++++++++++++++++++++++++++++++++++++++
2820 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2822 .IF "$(L10N_framework)"==""
2823 .IF "$(VERSIONOBJ)"!=""
2824 SHL6VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL6TARGET))}$(VERSIONOBJ:f)
2825 USE_VERSIONH:=$(INCCOM)/$(SHL6VERSIONOBJ:b).h
2826 .IF "$(GUI)" == "UNX"
2827 SHL6VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL6TARGET))}$(VERSIONOBJ:f:s/.o/.obj/)
2828 .ELSE # "$(GUI)" == "UNX"
2829 SHL6VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL6TARGET))}$(VERSIONOBJ:f)
2830 .ENDIF # "$(GUI)" == "UNX"
2831 $(MISC)/$(SHL6VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL6VERSIONOBJ:b).h
2832 # $(COPY) $(SOLARENV)/src/version.c $@
2833 $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL6VERSIONOBJ:b).h/ > $@
2835 .INIT : $(SHL6VERSIONOBJDEP)
2836 .ENDIF # "$(VERSIONOBJ)"!=""
2837 .ENDIF
2839 .IF "$(GUI)" != "UNX"
2840 .IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
2841 .IF "$(SHL6IMPLIB)" == ""
2842 SHL6IMPLIB=i$(TARGET)_t6
2843 .ENDIF # "$(SHL6IMPLIB)" == ""
2844 .IF "$(COM)" != "GCC"
2845 USE_6IMPLIB=-implib:$(LB)/$(SHL6IMPLIB).lib
2846 .ENDIF # "$(COM)" != "GCC"
2847 SHL6IMPLIBN=$(LB)/$(SHL6IMPLIB).lib
2848 ALLTAR : $(SHL6IMPLIBN)
2850 .IF "$(USE_DEFFILE)"==""
2851 USE_6IMPLIB_DEPS=$(LB)/$(SHL6IMPLIB).lib
2852 .ENDIF # "$(USE_DEFFILE)"==""
2853 .ENDIF # "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
2854 USE_SHL6DEF=$(SHL6DEF)
2855 .ELSE # "$(GUI)" != "UNX"
2856 USE_SHL6DEF=
2857 SHL6DEPN+:=$(SHL6DEPNU)
2859 .IF "$(SHL6VERSIONMAP)"==""
2860 # to activate vmaps remove "#"
2861 USE_SHL6VERSIONMAP=$(MISC)/$(SHL6TARGET).vmap
2862 .ENDIF # "$(SHL6VERSIONMAP)"==""
2864 .IF "$(USE_SHL6VERSIONMAP)"!=""
2866 .IF "$(SHL6FILTERFILE)"!=""
2867 .IF "$(SHL6VERSIONMAP)"!=""
2868 #eine von beiden ist zuviel
2869 USE_SHL6VERSIONMAP=$(MISC)/$(SHL6TARGET).vmap
2870 $(USE_SHL6VERSIONMAP) .PHONY:
2871 @echo -----------------------------
2872 @echo you should only use versionmap OR exportfile
2873 @echo -----------------------------
2874 # force_dmake_to_error
2876 .ENDIF # "$(SHL6VERSIONMAP)"!=""
2878 .IF "$(OS)"!="IRIX"
2879 SHL6VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL6VERSIONMAP)
2880 .ENDIF
2882 $(USE_SHL6VERSIONMAP): \
2883 $(SHL6OBJS)\
2884 $(SHL6LIBS)\
2885 $(SHL6FILTERFILE)
2886 @$(RM) $@.dump
2887 .IF "$(SHL6OBJS)"!=""
2888 # dump remaining objects on the fly
2889 .IF "$(OS)"=="MACOSX"
2890 @-nm $(SHL6OBJS:s/.obj/.o/) > $@.dump
2891 .ELSE
2892 @nm $(SHL6OBJS:s/.obj/.o/) > $@.dump
2893 .ENDIF
2894 .ENDIF # "$(SHL6OBJS)!"=""
2895 @$(TYPE) /dev/null $(SHL6LIBS:s/.lib/.dump/) >> $@.dump
2896 $(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL6INTERFACE) -f $(SHL6FILTERFILE) -m $@
2898 .ELSE # "$(SHL6FILTERFILE)"!=""
2899 USE_SHL6VERSIONMAP=$(MISC)/$(SHL6TARGET).vmap
2900 $(USE_SHL6VERSIONMAP) :
2901 .IF "$(VERBOSE)" == "TRUE"
2902 @echo -----------------------------
2903 @echo SHL6FILTERFILE not set!
2904 @echo -----------------------------
2905 @$(TOUCH) $@
2906 @echo dummy file to keep the dependencies for later use.
2907 .ELSE
2908 @$(TOUCH) $@
2909 .ENDIF
2910 # force_dmake_to_error
2911 .ENDIF # "$(SHL6FILTERFILE)"!=""
2912 .ELSE # "$(USE_SHL6VERSIONMAP)"!=""
2914 #and now for the plain non-generic way...
2915 .IF "$(SHL6VERSIONMAP)"!=""
2916 USE_SHL6VERSIONMAP=$(MISC)/$(SHL6VERSIONMAP:b)_$(SHL6TARGET)$(SHL6VERSIONMAP:e)
2917 .IF "$(OS)"!="IRIX"
2918 SHL6VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL6VERSIONMAP)
2919 .ENDIF
2921 .IF "$(OS)"=="MACOSX"
2922 $(USE_SHL6VERSIONMAP): $(SHL6OBJS) $(SHL6LIBS)
2923 .ENDIF
2925 $(USE_SHL6VERSIONMAP): $(SHL6VERSIONMAP)
2926 @@-$(RM) -f $@
2927 # The following files will only be generated and needed on Mac OS X as temporary files
2928 # in order to generate exported symbols list out of Linux/Solaris map files
2929 .IF "$(OS)"=="MACOSX"
2930 @-$(RM) -f $@.symregexp >& $(NULLDEV)
2931 @-$(RM) -f $@.expsymlist >& $(NULLDEV)
2932 .ENDIF
2933 # Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what
2934 # happens if somebody will change it in the future
2935 .IF "$(COMID)"=="gcc3"
2936 $(COMMAND_ECHO) tr -d "\015" < $(SHL6VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@
2937 .ELIF "$(COMNAME)"=="sunpro5"
2938 $(COMMAND_ECHO) tr -d "\015" < $(SHL6VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@
2939 .ELSE # "$(COMID)"=="gcc3"
2940 $(COMMAND_ECHO) tr -d "\015" < $(SHL6VERSIONMAP) > $@
2941 .ENDIF # "$(COMID)"=="gcc3"
2942 @chmod a+w $@
2943 # Mac OS X post-processing generate an exported symbols list from the generated map file
2944 # for details on exported symbols list see man ld on Mac OS X
2945 .IF "$(OS)"=="MACOSX"
2946 @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols
2947 @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp
2948 # Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
2949 # Extract RTTI symbols from all the objects that will be used to build a shared library
2950 .IF "$(SHL6OBJS)"!=""
2951 -echo $(foreach,i,$(SHL6OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
2952 .ENDIF
2953 .IF "$(SHL6LIBS)"!=""
2954 $(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL6LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
2955 .ENDIF
2956 # overwrite the map file generate into the local output tree with the generated
2957 # exported symbols list
2958 cp $@.exported-symbols $@
2959 .ENDIF # .IF "$(OS)"=="MACOSX"
2960 .ENDIF # "$(SHL6VERSIONMAP)"!=""
2961 .ENDIF # "$(USE_SHL6VERSIONMAP)"!=""
2962 .ENDIF # "$(GUI)" != "UNX"
2964 .IF "$(UNIXVERSIONNAMES)"!=""
2965 .IF "$(OS)"!="MACOSX"
2966 .IF "$(GUI)"=="UNX"
2967 .IF "$(OS)"=="IRIX"
2968 SHL6SONAME=$(SONAME_SWITCH)$(SHL6TARGETN:f)
2969 .ELSE
2970 SHL6SONAME=\"$(SONAME_SWITCH)$(SHL6TARGETN:f)\"
2971 .ENDIF
2972 .ENDIF # "$(GUI)"!="UNX"
2973 .ENDIF # "$(OS)"!="MACOSX"
2974 .ENDIF # "$(UNIXVERSIONNAMES)"!=""
2976 .IF "$(SHL6RES)"!=""
2977 SHL6ALLRES+=$(SHL6RES)
2978 SHL6LINKRES*=$(MISC)/$(SHL6TARGET).res
2979 SHL6LINKRESO*=$(MISC)/$(SHL6TARGET)_res.o
2980 .ENDIF # "$(SHL6RES)"!=""
2982 .IF "$(SHL6DEFAULTRES)$(use_shl_versions)"!=""
2983 SHL6DEFAULTRES*=$(MISC)/$(SHL6TARGET)_def.res
2984 SHL6ALLRES+=$(SHL6DEFAULTRES)
2985 SHL6LINKRES*=$(MISC)/$(SHL6TARGET).res
2986 SHL6LINKRESO*=$(MISC)/$(SHL6TARGET)_res.o
2987 .ENDIF # "$(SHL6DEFAULTRES)$(use_shl_versions)"!=""
2989 #.IF "$(SHL6TARGETN)"!=""
2991 .IF "$(linkinc)"!=""
2992 .IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
2993 .IF "$(SHL6LIBS)"!=""
2994 $(MISC)/$(SHL6TARGET)_linkinc.ls .PHONY:
2995 @@-$(RM) $@
2996 $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL6LIBS) $(i:s/.lib/.lin/)) >> $@
2997 .ENDIF # "$(SHL6LIBS)"!=""
2998 .ENDIF
3000 LINKINCTARGETS+=$(MISC)/$(SHL6TARGETN:b)_linkinc.ls
3001 $(SHL6TARGETN) : $(LINKINCTARGETS)
3003 .ELSE
3004 .IF "$(SHL6USE_EXPORTS)"=="name"
3005 .IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
3006 .IF "$(COM)"!="GCC"
3007 .IF "$(SHL6LIBS)"!=""
3008 SHL6LINKLIST=$(MISC)/$(SHL6TARGET)_link.lst
3009 SHL6LINKLISTPARAM=@$(SHL6LINKLIST)
3010 $(SHL6LINKLIST) : $(SHL6LIBS)
3011 @@-$(RM) $@
3012 $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL6LIBS) $(i:s/.lib/.lin/)) >> $@
3013 .ENDIF # "$(SHL6LIBS)"!=""
3014 .ENDIF # "$(COM)"!="GCC"
3015 .ENDIF
3016 .ENDIF # "$(SHL6USE_EXPORTS)"=="name"
3018 $(MISC)/%linkinc.ls:
3019 @echo . > $@
3020 .ENDIF # "$(linkinc)"!=""
3022 .IF "$(GUI)" == "OS2"
3023 #21/02/2006 YD dll names must be 8.3, invoke fix script
3024 #check osl/os2/module.c/osl_loadModule()
3025 SHL6TARGET8=$(shell @fix_shl $(SHL6TARGET))
3026 .ENDIF
3028 .IF "$(GUI)" == "OS2"
3029 _SHL6IMP_ORD = $(SHL6STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(SHL6STDLIBS:^"$(LB)/")
3030 SHL6IMP_ORD = $(foreach,i,$(_SHL6IMP_ORD) $(shell @-ls $i))
3031 .ELSE
3032 SHL6IMP_ORD =
3033 .ENDIF
3036 $(SHL6TARGETN) : \
3037 $(SHL6OBJS)\
3038 $(SHL6LIBS)\
3039 $(USE_6IMPLIB_DEPS)\
3040 $(USE_SHL6DEF)\
3041 $(USE_SHL6VERSIONMAP)\
3042 $(SHL6RES)\
3043 $(SHL6DEPN) \
3044 $(SHL6IMP_ORD) \
3045 $(SHL6LINKLIST)
3046 .IF "$(VERBOSE)" == "TRUE"
3047 @echo ------------------------------
3048 .ENDIF
3049 @echo "Making: " $(@:f)
3050 .IF "$(GUI)" == "WNT"
3051 .IF "$(SHL6DEFAULTRES)"!=""
3052 @@-$(RM) $(MISC)/$(SHL6DEFAULTRES:b).rc
3053 .IF "$(SHL6ICON)" != ""
3054 @echo 1 ICON $(SHL6ICON) >> $(MISC)/$(SHL6DEFAULTRES:b).rc
3055 .ENDIF
3056 .IF "$(use_shl_versions)" != ""
3057 .IF "$(SHL6ADD_VERINFO)"!=""
3058 @echo $(EMQ)#include $(EMQ)"$(SHL6ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL6DEFAULTRES:b).rc
3059 .ELSE # "$(SHL6ADD_VERINFO)"!=""
3060 @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL6DEFAULTRES:b).rc
3061 @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL6DEFAULTRES:b).rc
3062 @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL6DEFAULTRES:b).rc
3063 .ENDIF # "$(SHL6ADD_VERINFO)"!=""
3064 @echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(SHL6DEFAULTRES:b).rc
3065 @echo $(EMQ)#define ORG_NAME $(SHL6TARGET)$(DLLPOST) >> $(MISC)/$(SHL6DEFAULTRES:b).rc
3066 @echo $(EMQ)#define INTERNAL_NAME $(SHL6TARGET:b) >> $(MISC)/$(SHL6DEFAULTRES:b).rc
3067 @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL6DEFAULTRES:b).rc
3068 .ENDIF # "$(use_shl_versions)" != ""
3069 $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL6DEFAULTRES:b).rc
3070 .ENDIF # "$(SHL6DEFAULTRES)"!=""
3071 .IF "$(SHL6ALLRES)"!=""
3072 $(COMMAND_ECHO)$(TYPE) $(SHL6ALLRES) > $(SHL6LINKRES)
3073 .IF "$(COM)"=="GCC"
3074 windres $(SHL6LINKRES) $(SHL6LINKRESO)
3075 .ENDIF # "$(COM)"=="GCC"
3076 .ENDIF # "$(SHL6ALLRES)"!=""
3077 .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def
3078 @echo dlltool --input-def $(SHL6DEF) \
3079 --dllname $(SHL6TARGET)$(DLLPOST) \
3080 --kill-at \\ > $(MISC)/$(TARGET).$(@:b)_6.cmd
3081 @noop $(assign ALL6OBJLIST:=$(STDOBJ) $(SHL6OBJS) $(SHL6LINKRESO) $(shell $(TYPE) /dev/null $(SHL6LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g))
3082 .IF "$(DEFLIB6NAME)"!="" # do not have to include objs
3083 @noop $(assign DEF6OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB6NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g))
3084 @noop $(foreach,i,$(DEF6OBJLIST) $(assign ALL6OBJLIST:=$(ALL6OBJLIST:s?$i??)))
3085 .ENDIF # "$(DEFLIB6NAME)"!=""
3086 @echo --output-exp $(MISC)/$(@:b)_exp.o \
3087 $(ALL6OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_6.cmd
3088 @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \
3089 $(STDOBJ) $(SHL6VERSIONOBJ) $(SHL6DESCRIPTIONOBJ) $(SHL6OBJS) $(SHL6LINKRESO) \
3090 `$(TYPE) /dev/null $(SHL6LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
3091 -Wl,--exclude-libs,ALL,--start-group $(SHL6STDLIBS) -Wl,--end-group \
3092 $(SHL6STDSHL) $(STDSHL6) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \
3093 -Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_6.cmd
3094 @$(TYPE) $(MISC)/$(TARGET).$(@:b)_6.cmd
3095 @+source $(MISC)/$(TARGET).$(@:b)_6.cmd
3096 .ELSE
3097 .IF "$(linkinc)"==""
3098 .IF "$(SHL6USE_EXPORTS)"!="name"
3099 .IF "$(USE_DEFFILE)"!=""
3100 $(SHL6LINKER) @$(mktmp \
3101 $(SHL6LINKFLAGS) \
3102 $(LINKFLAGSSHL) \
3103 $(SHL6STACK) $(SHL6BASEX) \
3104 -out:$@ \
3105 -map:$(MISC)/$(@:b).map \
3106 -def:$(SHL6DEF) \
3107 $(USE_6IMPLIB) \
3108 $(STDOBJ) \
3109 $(SHL6VERSIONOBJ) $(SHL6OBJS) \
3110 $(SHL6LIBS) \
3111 $(SHL6STDLIBS) \
3112 $(SHL6STDSHL) $(STDSHL6) \
3113 $(SHL6LINKRES) \
3114 ) $(LINKOUTPUTFILTER)
3115 # double check if target was really written... still making sense?
3116 @@$(LS) $@
3117 @echo linking $@.manifest ...
3118 .IF "$(VISTA_MANIFEST)"!=""
3119 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
3120 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
3121 .ELSE
3122 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
3123 .ENDIF # "$(VISTA_MANIFEST)"!=""
3124 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
3125 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
3126 .ELSE # "$(USE_DEFFILE)"!=""
3127 $(COMMAND_ECHO)$(SHL6LINKER) @$(mktmp $(SHL6LINKFLAGS) \
3128 $(LINKFLAGSSHL) $(SHL6BASEX) \
3129 $(SHL6STACK) -out:$(SHL6TARGETN) \
3130 -map:$(MISC)/$(@:B).map \
3131 $(LB)/$(SHL6IMPLIB).exp \
3132 $(STDOBJ) \
3133 $(SHL6OBJS) $(SHL6VERSIONOBJ) \
3134 $(SHL6LIBS) \
3135 $(SHL6STDLIBS) \
3136 $(SHL6STDSHL) $(STDSHL6) \
3137 $(SHL6LINKRES) \
3138 ) $(LINKOUTPUTFILTER)
3139 # double check if target was really written... still making sense?
3140 @@$(LS) $@
3141 @echo linking $@.manifest ...
3142 .IF "$(VISTA_MANIFEST)"!=""
3143 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
3144 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
3145 .ELSE
3146 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
3147 .ENDIF # "$(VISTA_MANIFEST)"!=""
3148 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
3149 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
3150 .ENDIF # "$(USE_DEFFILE)"!=""
3151 .ELSE # "$(SHL6USE_EXPORTS)"!="name"
3152 $(COMMAND_ECHO)$(SHL6LINKER) @$(mktmp $(SHL6LINKFLAGS) \
3153 $(LINKFLAGSSHL) $(SHL6BASEX) \
3154 $(SHL6STACK) -out:$(SHL6TARGETN) \
3155 -map:$(MISC)/$(@:B).map \
3156 $(USE_6IMPLIB) \
3157 $(STDOBJ) \
3158 $(SHL6OBJS) $(SHL6VERSIONOBJ)) \
3159 $(SHL6LINKLISTPARAM) \
3160 @$(mktmp $(SHL6STDLIBS) \
3161 $(SHL6STDSHL) $(STDSHL6) \
3162 $(SHL6LINKRES) \
3164 @echo linking $@.manifest ...
3165 .IF "$(VISTA_MANIFEST)"!=""
3166 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
3167 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
3168 .ELSE
3169 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
3170 .ENDIF # "$(VISTA_MANIFEST)"!=""
3171 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
3172 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
3173 .ENDIF # "$(SHL6USE_EXPORTS)"!="name"
3174 .ELSE # "$(linkinc)"==""
3175 $(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL6TARGET).lnk
3176 $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL6TARGET).lst
3177 $(COMMAND_ECHO)$(TYPE) $(mktmp \
3178 $(SHL6LINKFLAGS) \
3179 $(LINKFLAGSSHL) $(SHL6BASEX) \
3180 $(SHL6STACK) $(MAPFILE) \
3181 -out:$@ \
3182 $(LB)/$(SHL6IMPLIB).exp \
3183 $(STDOBJ) \
3184 $(SHL6OBJS) \
3185 $(SHL6STDLIBS) \
3186 $(SHL6STDSHL) $(STDSHL6) \
3187 $(SHL6LINKRES) \
3188 ) >> $(MISC)/$(SHL6TARGET).lnk
3189 $(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL6TARGETN:b)_linkinc.ls >> $(MISC)/$(SHL6TARGET).lnk
3190 $(COMMAND_ECHO)$(SHL6LINKER) @$(MISC)/$(SHL6TARGET).lnk
3191 @echo linking $@.manifest ...
3192 .IF "$(VISTA_MANIFEST)"!=""
3193 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
3194 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
3195 .ELSE
3196 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
3197 .ENDIF # "$(VISTA_MANIFEST)"!=""
3198 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
3199 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
3200 .ENDIF # "$(linkinc)"==""
3201 .ENDIF # "$(COM)"=="GCC"
3202 .ENDIF # "$(GUI)" == "WNT"
3203 .IF "$(GUI)"=="UNX"
3204 .IF "$(OS)"=="MACOSX"
3205 @-$(RM) $(MISC)/$(@:b).list
3206 @-$(RM) $(MISC)/$(TARGET).$(@:b)_6.cmd
3207 @echo $(STDSLO) $(SHL6OBJS:s/.obj/.o/) \
3208 $(SHL6VERSIONOBJ) \
3209 `cat /dev/null $(SHL6LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list
3210 @echo -n $(SHL6LINKER) $(SHL6LINKFLAGS) $(SHL6VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \
3211 $(SHL6STDLIBS) $(SHL6ARCHIVES) $(SHL6STDSHL) $(STDSHL6) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_6.cmd
3212 @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \
3213 `cat $(MISC)/$(TARGET).$(@:b)_6.cmd` \
3214 >> $(MISC)/$(TARGET).$(@:b)_6.cmd
3215 .IF "$(VERBOSE)" == "TRUE"
3216 @cat $(MISC)/$(TARGET).$(@:b)_6.cmd
3217 .ENDIF
3218 @+source $(MISC)/$(TARGET).$(@:b)_6.cmd
3219 @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \
3220 shl $(SHL6RPATH) $@
3221 @echo "Making: " $(@:f).jnilib
3222 @macosx-create-bundle $@
3223 .IF "$(UPDATER)"=="YES"
3224 .IF "$(SHL6NOCHECK)"==""
3225 $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS6) $(SHL6TARGETN)
3226 .ENDIF # "$(SHL6NOCHECK)"!=""
3227 .ENDIF
3228 .ELSE # "$(OS)"=="MACOSX"
3229 @-$(RM) $(MISC)/$(TARGET).$(@:b)_6.cmd
3230 @echo $(SHL6LINKER) $(SHL6LINKFLAGS) $(SHL6SONAME) $(LINKFLAGSSHL) $(SHL6VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL6OBJS:s/.obj/.o/) \
3231 $(SHL6VERSIONOBJ) -o $@ \
3232 `cat /dev/null $(SHL6LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
3233 $(SHL6STDLIBS) $(SHL6ARCHIVES) $(SHL6STDSHL) $(STDSHL6) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_6.cmd
3234 .IF "$(VERBOSE)" == "TRUE"
3235 @cat $(MISC)/$(TARGET).$(@:b)_6.cmd
3236 .ENDIF
3237 @+source $(MISC)/$(TARGET).$(@:b)_6.cmd
3238 .IF "$(UPDATER)"=="YES"
3239 .IF "$(SHL6NOCHECK)"==""
3240 $(COMMAND_ECHO)-$(RM) $(SHL6TARGETN:d)check_$(SHL6TARGETN:f)
3241 $(COMMAND_ECHO)$(RENAME) $(SHL6TARGETN) $(SHL6TARGETN:d)check_$(SHL6TARGETN:f)
3242 .IF "$(VERBOSE)"=="TRUE"
3243 $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS6) $(SHL6TARGETN:d)check_$(SHL6TARGETN:f)
3244 .ELSE
3245 $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS6) -- -s $(SHL6TARGETN:d)check_$(SHL6TARGETN:f)
3246 .ENDIF
3247 .ENDIF # "$(SHL6NOCHECK)"!=""
3248 .ENDIF # "$(UPDATER)"=="YES"
3249 .ENDIF # "$(OS)"=="MACOSX"
3250 .IF "$(UNIXVERSIONNAMES)"!=""
3251 $(COMMAND_ECHO)$(RM) $(LB)/$(SHL6TARGETN:b)
3252 $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL6TARGETN:f) $(SHL6TARGETN:b)
3253 .ENDIF # "$(UNIXVERSIONNAMES)"!=""
3254 .IF "$(VERBOSE)" == "TRUE"
3255 @ls -l $@
3256 .ENDIF
3257 .ENDIF # "$(GUI)" == "UNX"
3259 .IF "$(GUI)" == "OS2"
3261 .IF "$(SHL6DEFAULTRES)"!=""
3262 @+-$(RM) $(MISC)/$(SHL6DEFAULTRES:b).rc >& $(NULLDEV)
3263 .IF "$(SHL6ICON)" != ""
3264 @-+echo 1 ICON $(SHL6ICON) >> $(MISC)/$(SHL6DEFAULTRES:b).rc
3265 .ENDIF
3266 .IF "$(use_shl_versions)" != ""
3267 .IF "$(SHL6ADD_VERINFO)"!=""
3268 @-+echo $(EMQ)#include $(EMQ)"$(SHL6ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL6DEFAULTRES:b).rc
3269 .ENDIF # "$(SHL6ADD_VERINFO)"!=""
3270 @-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL6DEFAULTRES:b).rc
3271 # @-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL6DEFAULTRES:b).rc
3272 .ENDIF # "$(use_shl_versions)" != ""
3273 # YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR)
3274 $(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL6DEFAULTRES:b).rc
3275 .ENDIF # "$(SHL6DEFAULTRES)"!=""
3277 .IF "$(SHL6ALLRES)"!=""
3278 $(COMMAND_ECHO)+$(TYPE) $(SHL6ALLRES) > $(SHL6LINKRES)
3279 .ENDIF # "$(SHL6ALLRES)"!=""
3281 .IF "$(USE_DEFFILE)"!=""
3283 $(COMMAND_ECHO)$(SHL6LINKER) $(SHL6LINKFLAGS) $(LINKFLAGSSHL) -o $@ \
3284 $(SHL6DEF) \
3285 $(STDOBJ) \
3286 -L$(LB) \
3287 -L$(SOLARVERSION)/$(INPATH)/lib \
3288 $(SHL6OBJS) $(SHL6VERSIONOBJ) \
3289 $(SHL6LIBS) \
3290 $(SHL6STDLIBS:^"-l") \
3291 $(SHL6LINKRES) \
3292 $(SHL6STDSHL:^"-l") $(STDSHL6:^"-l")
3294 .ELSE # "$(USE_DEFFILE)"!=""
3296 $(COMMAND_ECHO)$(SHL6LINKER) -v $(SHL6LINKFLAGS) \
3297 $(LINKFLAGSSHL) $(SHL6BASEX) \
3298 $(SHL6STACK) -o $(SHL6TARGETN) \
3299 $(SHL6DEF) \
3300 $(STDOBJ) \
3301 -L$(LB) \
3302 -L$(SOLARVERSION)/$(INPATH)/lib \
3303 $(SHL6OBJS) $(SHL6VERSIONOBJ) \
3304 $(SHL6LIBS) \
3305 $(SHL6STDLIBS:^"-l") \
3306 $(SHL6LINKRES) \
3307 $(SHL6STDSHL:^"-l") $(STDSHL6:^"-l") \
3308 $(LINKOUTPUTFILTER)
3309 @$(LS) $@ >& $(NULLDEV)
3311 .ENDIF # "$(USE_DEFFILE)"!=""
3313 .IF "$(SHL6TARGET8)" != "$(SHL6TARGET)"
3314 $(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL6TARGET8).dll
3315 .ENDIF
3317 .ENDIF # "$(GUI)" == "OS2"
3320 .IF "$(TESTDIR)"!=""
3321 .IF "$(NO_TESTS)"==""
3323 ALLTAR : runtest_$(SHL6TARGET)
3325 runtest_$(SHL6TARGET) : $(SHL6TARGETN)
3326 testshl $(SHL6TARGETN) sce/$(SHL6TARGET).sce -msg -skip
3327 .ENDIF # "$(NO_TESTS)"==""
3328 .ENDIF # "$(TESTDIR)"!=""
3329 .ENDIF # "$(SHL6TARGETN)"!=""
3331 # unroll begin
3333 .IF "$(SHL7TARGETN)"!=""
3335 .IF "$(OS)"=="AIX"
3336 SHL7STDLIBS=
3337 .ENDIF
3339 .IF "$(SHLLINKARCONLY)" != ""
3340 SHL7STDLIBS=
3341 STDSHL=
3342 .ELSE
3343 SHL7ARCHIVES=
3344 .ENDIF
3346 # decide how to link
3347 .IF "$(SHL7CODETYPE)"=="C"
3348 SHL7LINKER=$(LINKC)
3349 SHL7STDSHL=$(subst,CPPRUNTIME, $(STDSHL))
3350 SHL7LINKFLAGS+=$(LINKCFLAGS)
3351 .ELSE # "$(SHL7CODETYPE)"=="C"
3352 SHL7LINKER=$(LINK)
3353 SHL7STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL))
3354 SHL7LINKFLAGS+=$(LINKFLAGS)
3355 .ENDIF # "$(SHL7CODETYPE)"=="C"
3357 SHL7RPATH*=OOO
3358 LINKFLAGSRUNPATH_$(SHL7RPATH)*=/ERROR:/Bad_SHL7RPATH_value
3359 SHL7LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL7RPATH))
3361 .IF "$(SHL7USE_EXPORTS)"==""
3362 SHL7DEF*=$(MISC)/$(SHL7TARGET).def
3363 .ENDIF # "$(SHL7USE_EXPORTS)"==""
3365 EXTRALIBPATHS7=$(EXTRALIBPATHS)
3366 .IF "$(UPDATER)"=="YES"
3367 .IF "$(SHL7NOCHECK)"==""
3368 .IF "$(SOLAR_STLLIBPATH)"!=""
3369 EXTRALIBPATHS7+=-L$(SOLAR_STLLIBPATH)
3370 .ENDIF
3371 .ENDIF # "$(SHL7NOCHECK)"!=""
3372 .ENDIF
3373 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3374 #+++++++++++ version object ++++++++++++++++++++++++++++++++++++++++
3375 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3377 .IF "$(L10N_framework)"==""
3378 .IF "$(VERSIONOBJ)"!=""
3379 SHL7VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL7TARGET))}$(VERSIONOBJ:f)
3380 USE_VERSIONH:=$(INCCOM)/$(SHL7VERSIONOBJ:b).h
3381 .IF "$(GUI)" == "UNX"
3382 SHL7VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL7TARGET))}$(VERSIONOBJ:f:s/.o/.obj/)
3383 .ELSE # "$(GUI)" == "UNX"
3384 SHL7VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL7TARGET))}$(VERSIONOBJ:f)
3385 .ENDIF # "$(GUI)" == "UNX"
3386 $(MISC)/$(SHL7VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL7VERSIONOBJ:b).h
3387 # $(COPY) $(SOLARENV)/src/version.c $@
3388 $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL7VERSIONOBJ:b).h/ > $@
3390 .INIT : $(SHL7VERSIONOBJDEP)
3391 .ENDIF # "$(VERSIONOBJ)"!=""
3392 .ENDIF
3394 .IF "$(GUI)" != "UNX"
3395 .IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
3396 .IF "$(SHL7IMPLIB)" == ""
3397 SHL7IMPLIB=i$(TARGET)_t7
3398 .ENDIF # "$(SHL7IMPLIB)" == ""
3399 .IF "$(COM)" != "GCC"
3400 USE_7IMPLIB=-implib:$(LB)/$(SHL7IMPLIB).lib
3401 .ENDIF # "$(COM)" != "GCC"
3402 SHL7IMPLIBN=$(LB)/$(SHL7IMPLIB).lib
3403 ALLTAR : $(SHL7IMPLIBN)
3405 .IF "$(USE_DEFFILE)"==""
3406 USE_7IMPLIB_DEPS=$(LB)/$(SHL7IMPLIB).lib
3407 .ENDIF # "$(USE_DEFFILE)"==""
3408 .ENDIF # "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
3409 USE_SHL7DEF=$(SHL7DEF)
3410 .ELSE # "$(GUI)" != "UNX"
3411 USE_SHL7DEF=
3412 SHL7DEPN+:=$(SHL7DEPNU)
3414 .IF "$(SHL7VERSIONMAP)"==""
3415 # to activate vmaps remove "#"
3416 USE_SHL7VERSIONMAP=$(MISC)/$(SHL7TARGET).vmap
3417 .ENDIF # "$(SHL7VERSIONMAP)"==""
3419 .IF "$(USE_SHL7VERSIONMAP)"!=""
3421 .IF "$(SHL7FILTERFILE)"!=""
3422 .IF "$(SHL7VERSIONMAP)"!=""
3423 #eine von beiden ist zuviel
3424 USE_SHL7VERSIONMAP=$(MISC)/$(SHL7TARGET).vmap
3425 $(USE_SHL7VERSIONMAP) .PHONY:
3426 @echo -----------------------------
3427 @echo you should only use versionmap OR exportfile
3428 @echo -----------------------------
3429 # force_dmake_to_error
3431 .ENDIF # "$(SHL7VERSIONMAP)"!=""
3433 .IF "$(OS)"!="IRIX"
3434 SHL7VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL7VERSIONMAP)
3435 .ENDIF
3437 $(USE_SHL7VERSIONMAP): \
3438 $(SHL7OBJS)\
3439 $(SHL7LIBS)\
3440 $(SHL7FILTERFILE)
3441 @$(RM) $@.dump
3442 .IF "$(SHL7OBJS)"!=""
3443 # dump remaining objects on the fly
3444 .IF "$(OS)"=="MACOSX"
3445 @-nm $(SHL7OBJS:s/.obj/.o/) > $@.dump
3446 .ELSE
3447 @nm $(SHL7OBJS:s/.obj/.o/) > $@.dump
3448 .ENDIF
3449 .ENDIF # "$(SHL7OBJS)!"=""
3450 @$(TYPE) /dev/null $(SHL7LIBS:s/.lib/.dump/) >> $@.dump
3451 $(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL7INTERFACE) -f $(SHL7FILTERFILE) -m $@
3453 .ELSE # "$(SHL7FILTERFILE)"!=""
3454 USE_SHL7VERSIONMAP=$(MISC)/$(SHL7TARGET).vmap
3455 $(USE_SHL7VERSIONMAP) :
3456 .IF "$(VERBOSE)" == "TRUE"
3457 @echo -----------------------------
3458 @echo SHL7FILTERFILE not set!
3459 @echo -----------------------------
3460 @$(TOUCH) $@
3461 @echo dummy file to keep the dependencies for later use.
3462 .ELSE
3463 @$(TOUCH) $@
3464 .ENDIF
3465 # force_dmake_to_error
3466 .ENDIF # "$(SHL7FILTERFILE)"!=""
3467 .ELSE # "$(USE_SHL7VERSIONMAP)"!=""
3469 #and now for the plain non-generic way...
3470 .IF "$(SHL7VERSIONMAP)"!=""
3471 USE_SHL7VERSIONMAP=$(MISC)/$(SHL7VERSIONMAP:b)_$(SHL7TARGET)$(SHL7VERSIONMAP:e)
3472 .IF "$(OS)"!="IRIX"
3473 SHL7VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL7VERSIONMAP)
3474 .ENDIF
3476 .IF "$(OS)"=="MACOSX"
3477 $(USE_SHL7VERSIONMAP): $(SHL7OBJS) $(SHL7LIBS)
3478 .ENDIF
3480 $(USE_SHL7VERSIONMAP): $(SHL7VERSIONMAP)
3481 @@-$(RM) -f $@
3482 # The following files will only be generated and needed on Mac OS X as temporary files
3483 # in order to generate exported symbols list out of Linux/Solaris map files
3484 .IF "$(OS)"=="MACOSX"
3485 @-$(RM) -f $@.symregexp >& $(NULLDEV)
3486 @-$(RM) -f $@.expsymlist >& $(NULLDEV)
3487 .ENDIF
3488 # Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what
3489 # happens if somebody will change it in the future
3490 .IF "$(COMID)"=="gcc3"
3491 $(COMMAND_ECHO) tr -d "\015" < $(SHL7VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@
3492 .ELIF "$(COMNAME)"=="sunpro5"
3493 $(COMMAND_ECHO) tr -d "\015" < $(SHL7VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@
3494 .ELSE # "$(COMID)"=="gcc3"
3495 $(COMMAND_ECHO) tr -d "\015" < $(SHL7VERSIONMAP) > $@
3496 .ENDIF # "$(COMID)"=="gcc3"
3497 @chmod a+w $@
3498 # Mac OS X post-processing generate an exported symbols list from the generated map file
3499 # for details on exported symbols list see man ld on Mac OS X
3500 .IF "$(OS)"=="MACOSX"
3501 @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols
3502 @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp
3503 # Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
3504 # Extract RTTI symbols from all the objects that will be used to build a shared library
3505 .IF "$(SHL7OBJS)"!=""
3506 -echo $(foreach,i,$(SHL7OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
3507 .ENDIF
3508 .IF "$(SHL7LIBS)"!=""
3509 $(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL7LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
3510 .ENDIF
3511 # overwrite the map file generate into the local output tree with the generated
3512 # exported symbols list
3513 cp $@.exported-symbols $@
3514 .ENDIF # .IF "$(OS)"=="MACOSX"
3515 .ENDIF # "$(SHL7VERSIONMAP)"!=""
3516 .ENDIF # "$(USE_SHL7VERSIONMAP)"!=""
3517 .ENDIF # "$(GUI)" != "UNX"
3519 .IF "$(UNIXVERSIONNAMES)"!=""
3520 .IF "$(OS)"!="MACOSX"
3521 .IF "$(GUI)"=="UNX"
3522 .IF "$(OS)"=="IRIX"
3523 SHL7SONAME=$(SONAME_SWITCH)$(SHL7TARGETN:f)
3524 .ELSE
3525 SHL7SONAME=\"$(SONAME_SWITCH)$(SHL7TARGETN:f)\"
3526 .ENDIF
3527 .ENDIF # "$(GUI)"!="UNX"
3528 .ENDIF # "$(OS)"!="MACOSX"
3529 .ENDIF # "$(UNIXVERSIONNAMES)"!=""
3531 .IF "$(SHL7RES)"!=""
3532 SHL7ALLRES+=$(SHL7RES)
3533 SHL7LINKRES*=$(MISC)/$(SHL7TARGET).res
3534 SHL7LINKRESO*=$(MISC)/$(SHL7TARGET)_res.o
3535 .ENDIF # "$(SHL7RES)"!=""
3537 .IF "$(SHL7DEFAULTRES)$(use_shl_versions)"!=""
3538 SHL7DEFAULTRES*=$(MISC)/$(SHL7TARGET)_def.res
3539 SHL7ALLRES+=$(SHL7DEFAULTRES)
3540 SHL7LINKRES*=$(MISC)/$(SHL7TARGET).res
3541 SHL7LINKRESO*=$(MISC)/$(SHL7TARGET)_res.o
3542 .ENDIF # "$(SHL7DEFAULTRES)$(use_shl_versions)"!=""
3544 #.IF "$(SHL7TARGETN)"!=""
3546 .IF "$(linkinc)"!=""
3547 .IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
3548 .IF "$(SHL7LIBS)"!=""
3549 $(MISC)/$(SHL7TARGET)_linkinc.ls .PHONY:
3550 @@-$(RM) $@
3551 $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL7LIBS) $(i:s/.lib/.lin/)) >> $@
3552 .ENDIF # "$(SHL7LIBS)"!=""
3553 .ENDIF
3555 LINKINCTARGETS+=$(MISC)/$(SHL7TARGETN:b)_linkinc.ls
3556 $(SHL7TARGETN) : $(LINKINCTARGETS)
3558 .ELSE
3559 .IF "$(SHL7USE_EXPORTS)"=="name"
3560 .IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
3561 .IF "$(COM)"!="GCC"
3562 .IF "$(SHL7LIBS)"!=""
3563 SHL7LINKLIST=$(MISC)/$(SHL7TARGET)_link.lst
3564 SHL7LINKLISTPARAM=@$(SHL7LINKLIST)
3565 $(SHL7LINKLIST) : $(SHL7LIBS)
3566 @@-$(RM) $@
3567 $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL7LIBS) $(i:s/.lib/.lin/)) >> $@
3568 .ENDIF # "$(SHL7LIBS)"!=""
3569 .ENDIF # "$(COM)"!="GCC"
3570 .ENDIF
3571 .ENDIF # "$(SHL7USE_EXPORTS)"=="name"
3573 $(MISC)/%linkinc.ls:
3574 @echo . > $@
3575 .ENDIF # "$(linkinc)"!=""
3577 .IF "$(GUI)" == "OS2"
3578 #21/02/2006 YD dll names must be 8.3, invoke fix script
3579 #check osl/os2/module.c/osl_loadModule()
3580 SHL7TARGET8=$(shell @fix_shl $(SHL7TARGET))
3581 .ENDIF
3583 .IF "$(GUI)" == "OS2"
3584 _SHL7IMP_ORD = $(SHL7STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(SHL7STDLIBS:^"$(LB)/")
3585 SHL7IMP_ORD = $(foreach,i,$(_SHL7IMP_ORD) $(shell @-ls $i))
3586 .ELSE
3587 SHL7IMP_ORD =
3588 .ENDIF
3591 $(SHL7TARGETN) : \
3592 $(SHL7OBJS)\
3593 $(SHL7LIBS)\
3594 $(USE_7IMPLIB_DEPS)\
3595 $(USE_SHL7DEF)\
3596 $(USE_SHL7VERSIONMAP)\
3597 $(SHL7RES)\
3598 $(SHL7DEPN) \
3599 $(SHL7IMP_ORD) \
3600 $(SHL7LINKLIST)
3601 .IF "$(VERBOSE)" == "TRUE"
3602 @echo ------------------------------
3603 .ENDIF
3604 @echo "Making: " $(@:f)
3605 .IF "$(GUI)" == "WNT"
3606 .IF "$(SHL7DEFAULTRES)"!=""
3607 @@-$(RM) $(MISC)/$(SHL7DEFAULTRES:b).rc
3608 .IF "$(SHL7ICON)" != ""
3609 @echo 1 ICON $(SHL7ICON) >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3610 .ENDIF
3611 .IF "$(use_shl_versions)" != ""
3612 .IF "$(SHL7ADD_VERINFO)"!=""
3613 @echo $(EMQ)#include $(EMQ)"$(SHL7ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3614 .ELSE # "$(SHL7ADD_VERINFO)"!=""
3615 @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3616 @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3617 @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3618 .ENDIF # "$(SHL7ADD_VERINFO)"!=""
3619 @echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3620 @echo $(EMQ)#define ORG_NAME $(SHL7TARGET)$(DLLPOST) >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3621 @echo $(EMQ)#define INTERNAL_NAME $(SHL7TARGET:b) >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3622 @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3623 .ENDIF # "$(use_shl_versions)" != ""
3624 $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL7DEFAULTRES:b).rc
3625 .ENDIF # "$(SHL7DEFAULTRES)"!=""
3626 .IF "$(SHL7ALLRES)"!=""
3627 $(COMMAND_ECHO)$(TYPE) $(SHL7ALLRES) > $(SHL7LINKRES)
3628 .IF "$(COM)"=="GCC"
3629 windres $(SHL7LINKRES) $(SHL7LINKRESO)
3630 .ENDIF # "$(COM)"=="GCC"
3631 .ENDIF # "$(SHL7ALLRES)"!=""
3632 .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def
3633 @echo dlltool --input-def $(SHL7DEF) \
3634 --dllname $(SHL7TARGET)$(DLLPOST) \
3635 --kill-at \\ > $(MISC)/$(TARGET).$(@:b)_7.cmd
3636 @noop $(assign ALL7OBJLIST:=$(STDOBJ) $(SHL7OBJS) $(SHL7LINKRESO) $(shell $(TYPE) /dev/null $(SHL7LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g))
3637 .IF "$(DEFLIB7NAME)"!="" # do not have to include objs
3638 @noop $(assign DEF7OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB7NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g))
3639 @noop $(foreach,i,$(DEF7OBJLIST) $(assign ALL7OBJLIST:=$(ALL7OBJLIST:s?$i??)))
3640 .ENDIF # "$(DEFLIB7NAME)"!=""
3641 @echo --output-exp $(MISC)/$(@:b)_exp.o \
3642 $(ALL7OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_7.cmd
3643 @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \
3644 $(STDOBJ) $(SHL7VERSIONOBJ) $(SHL7DESCRIPTIONOBJ) $(SHL7OBJS) $(SHL7LINKRESO) \
3645 `$(TYPE) /dev/null $(SHL7LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
3646 -Wl,--exclude-libs,ALL,--start-group $(SHL7STDLIBS) -Wl,--end-group \
3647 $(SHL7STDSHL) $(STDSHL7) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \
3648 -Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_7.cmd
3649 @$(TYPE) $(MISC)/$(TARGET).$(@:b)_7.cmd
3650 @+source $(MISC)/$(TARGET).$(@:b)_7.cmd
3651 .ELSE
3652 .IF "$(linkinc)"==""
3653 .IF "$(SHL7USE_EXPORTS)"!="name"
3654 .IF "$(USE_DEFFILE)"!=""
3655 $(SHL7LINKER) @$(mktmp \
3656 $(SHL7LINKFLAGS) \
3657 $(LINKFLAGSSHL) \
3658 $(SHL7STACK) $(SHL7BASEX) \
3659 -out:$@ \
3660 -map:$(MISC)/$(@:b).map \
3661 -def:$(SHL7DEF) \
3662 $(USE_7IMPLIB) \
3663 $(STDOBJ) \
3664 $(SHL7VERSIONOBJ) $(SHL7OBJS) \
3665 $(SHL7LIBS) \
3666 $(SHL7STDLIBS) \
3667 $(SHL7STDSHL) $(STDSHL7) \
3668 $(SHL7LINKRES) \
3669 ) $(LINKOUTPUTFILTER)
3670 # double check if target was really written... still making sense?
3671 @@$(LS) $@
3672 @echo linking $@.manifest ...
3673 .IF "$(VISTA_MANIFEST)"!=""
3674 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
3675 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
3676 .ELSE
3677 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
3678 .ENDIF # "$(VISTA_MANIFEST)"!=""
3679 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
3680 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
3681 .ELSE # "$(USE_DEFFILE)"!=""
3682 $(COMMAND_ECHO)$(SHL7LINKER) @$(mktmp $(SHL7LINKFLAGS) \
3683 $(LINKFLAGSSHL) $(SHL7BASEX) \
3684 $(SHL7STACK) -out:$(SHL7TARGETN) \
3685 -map:$(MISC)/$(@:B).map \
3686 $(LB)/$(SHL7IMPLIB).exp \
3687 $(STDOBJ) \
3688 $(SHL7OBJS) $(SHL7VERSIONOBJ) \
3689 $(SHL7LIBS) \
3690 $(SHL7STDLIBS) \
3691 $(SHL7STDSHL) $(STDSHL7) \
3692 $(SHL7LINKRES) \
3693 ) $(LINKOUTPUTFILTER)
3694 # double check if target was really written... still making sense?
3695 @@$(LS) $@
3696 @echo linking $@.manifest ...
3697 .IF "$(VISTA_MANIFEST)"!=""
3698 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
3699 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
3700 .ELSE
3701 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
3702 .ENDIF # "$(VISTA_MANIFEST)"!=""
3703 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
3704 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
3705 .ENDIF # "$(USE_DEFFILE)"!=""
3706 .ELSE # "$(SHL7USE_EXPORTS)"!="name"
3707 $(COMMAND_ECHO)$(SHL7LINKER) @$(mktmp $(SHL7LINKFLAGS) \
3708 $(LINKFLAGSSHL) $(SHL7BASEX) \
3709 $(SHL7STACK) -out:$(SHL7TARGETN) \
3710 -map:$(MISC)/$(@:B).map \
3711 $(USE_7IMPLIB) \
3712 $(STDOBJ) \
3713 $(SHL7OBJS) $(SHL7VERSIONOBJ)) \
3714 $(SHL7LINKLISTPARAM) \
3715 @$(mktmp $(SHL7STDLIBS) \
3716 $(SHL7STDSHL) $(STDSHL7) \
3717 $(SHL7LINKRES) \
3719 @echo linking $@.manifest ...
3720 .IF "$(VISTA_MANIFEST)"!=""
3721 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
3722 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
3723 .ELSE
3724 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
3725 .ENDIF # "$(VISTA_MANIFEST)"!=""
3726 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
3727 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
3728 .ENDIF # "$(SHL7USE_EXPORTS)"!="name"
3729 .ELSE # "$(linkinc)"==""
3730 $(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL7TARGET).lnk
3731 $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL7TARGET).lst
3732 $(COMMAND_ECHO)$(TYPE) $(mktmp \
3733 $(SHL7LINKFLAGS) \
3734 $(LINKFLAGSSHL) $(SHL7BASEX) \
3735 $(SHL7STACK) $(MAPFILE) \
3736 -out:$@ \
3737 $(LB)/$(SHL7IMPLIB).exp \
3738 $(STDOBJ) \
3739 $(SHL7OBJS) \
3740 $(SHL7STDLIBS) \
3741 $(SHL7STDSHL) $(STDSHL7) \
3742 $(SHL7LINKRES) \
3743 ) >> $(MISC)/$(SHL7TARGET).lnk
3744 $(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL7TARGETN:b)_linkinc.ls >> $(MISC)/$(SHL7TARGET).lnk
3745 $(COMMAND_ECHO)$(SHL7LINKER) @$(MISC)/$(SHL7TARGET).lnk
3746 @echo linking $@.manifest ...
3747 .IF "$(VISTA_MANIFEST)"!=""
3748 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
3749 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
3750 .ELSE
3751 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
3752 .ENDIF # "$(VISTA_MANIFEST)"!=""
3753 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
3754 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
3755 .ENDIF # "$(linkinc)"==""
3756 .ENDIF # "$(COM)"=="GCC"
3757 .ENDIF # "$(GUI)" == "WNT"
3758 .IF "$(GUI)"=="UNX"
3759 .IF "$(OS)"=="MACOSX"
3760 @-$(RM) $(MISC)/$(@:b).list
3761 @-$(RM) $(MISC)/$(TARGET).$(@:b)_7.cmd
3762 @echo $(STDSLO) $(SHL7OBJS:s/.obj/.o/) \
3763 $(SHL7VERSIONOBJ) \
3764 `cat /dev/null $(SHL7LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list
3765 @echo -n $(SHL7LINKER) $(SHL7LINKFLAGS) $(SHL7VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \
3766 $(SHL7STDLIBS) $(SHL7ARCHIVES) $(SHL7STDSHL) $(STDSHL7) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_7.cmd
3767 @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \
3768 `cat $(MISC)/$(TARGET).$(@:b)_7.cmd` \
3769 >> $(MISC)/$(TARGET).$(@:b)_7.cmd
3770 .IF "$(VERBOSE)" == "TRUE"
3771 @cat $(MISC)/$(TARGET).$(@:b)_7.cmd
3772 .ENDIF
3773 @+source $(MISC)/$(TARGET).$(@:b)_7.cmd
3774 @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \
3775 shl $(SHL7RPATH) $@
3776 @echo "Making: " $(@:f).jnilib
3777 @macosx-create-bundle $@
3778 .IF "$(UPDATER)"=="YES"
3779 .IF "$(SHL7NOCHECK)"==""
3780 $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS7) $(SHL7TARGETN)
3781 .ENDIF # "$(SHL7NOCHECK)"!=""
3782 .ENDIF
3783 .ELSE # "$(OS)"=="MACOSX"
3784 @-$(RM) $(MISC)/$(TARGET).$(@:b)_7.cmd
3785 @echo $(SHL7LINKER) $(SHL7LINKFLAGS) $(SHL7SONAME) $(LINKFLAGSSHL) $(SHL7VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL7OBJS:s/.obj/.o/) \
3786 $(SHL7VERSIONOBJ) -o $@ \
3787 `cat /dev/null $(SHL7LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
3788 $(SHL7STDLIBS) $(SHL7ARCHIVES) $(SHL7STDSHL) $(STDSHL7) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_7.cmd
3789 .IF "$(VERBOSE)" == "TRUE"
3790 @cat $(MISC)/$(TARGET).$(@:b)_7.cmd
3791 .ENDIF
3792 @+source $(MISC)/$(TARGET).$(@:b)_7.cmd
3793 .IF "$(UPDATER)"=="YES"
3794 .IF "$(SHL7NOCHECK)"==""
3795 $(COMMAND_ECHO)-$(RM) $(SHL7TARGETN:d)check_$(SHL7TARGETN:f)
3796 $(COMMAND_ECHO)$(RENAME) $(SHL7TARGETN) $(SHL7TARGETN:d)check_$(SHL7TARGETN:f)
3797 .IF "$(VERBOSE)"=="TRUE"
3798 $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS7) $(SHL7TARGETN:d)check_$(SHL7TARGETN:f)
3799 .ELSE
3800 $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS7) -- -s $(SHL7TARGETN:d)check_$(SHL7TARGETN:f)
3801 .ENDIF
3802 .ENDIF # "$(SHL7NOCHECK)"!=""
3803 .ENDIF # "$(UPDATER)"=="YES"
3804 .ENDIF # "$(OS)"=="MACOSX"
3805 .IF "$(UNIXVERSIONNAMES)"!=""
3806 $(COMMAND_ECHO)$(RM) $(LB)/$(SHL7TARGETN:b)
3807 $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL7TARGETN:f) $(SHL7TARGETN:b)
3808 .ENDIF # "$(UNIXVERSIONNAMES)"!=""
3809 .IF "$(VERBOSE)" == "TRUE"
3810 @ls -l $@
3811 .ENDIF
3812 .ENDIF # "$(GUI)" == "UNX"
3814 .IF "$(GUI)" == "OS2"
3816 .IF "$(SHL7DEFAULTRES)"!=""
3817 @+-$(RM) $(MISC)/$(SHL7DEFAULTRES:b).rc >& $(NULLDEV)
3818 .IF "$(SHL7ICON)" != ""
3819 @-+echo 1 ICON $(SHL7ICON) >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3820 .ENDIF
3821 .IF "$(use_shl_versions)" != ""
3822 .IF "$(SHL7ADD_VERINFO)"!=""
3823 @-+echo $(EMQ)#include $(EMQ)"$(SHL7ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3824 .ENDIF # "$(SHL7ADD_VERINFO)"!=""
3825 @-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3826 # @-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3827 .ENDIF # "$(use_shl_versions)" != ""
3828 # YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR)
3829 $(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL7DEFAULTRES:b).rc
3830 .ENDIF # "$(SHL7DEFAULTRES)"!=""
3832 .IF "$(SHL7ALLRES)"!=""
3833 $(COMMAND_ECHO)+$(TYPE) $(SHL7ALLRES) > $(SHL7LINKRES)
3834 .ENDIF # "$(SHL7ALLRES)"!=""
3836 .IF "$(USE_DEFFILE)"!=""
3838 $(COMMAND_ECHO)$(SHL7LINKER) $(SHL7LINKFLAGS) $(LINKFLAGSSHL) -o $@ \
3839 $(SHL7DEF) \
3840 $(STDOBJ) \
3841 -L$(LB) \
3842 -L$(SOLARVERSION)/$(INPATH)/lib \
3843 $(SHL7OBJS) $(SHL7VERSIONOBJ) \
3844 $(SHL7LIBS) \
3845 $(SHL7STDLIBS:^"-l") \
3846 $(SHL7LINKRES) \
3847 $(SHL7STDSHL:^"-l") $(STDSHL7:^"-l")
3849 .ELSE # "$(USE_DEFFILE)"!=""
3851 $(COMMAND_ECHO)$(SHL7LINKER) -v $(SHL7LINKFLAGS) \
3852 $(LINKFLAGSSHL) $(SHL7BASEX) \
3853 $(SHL7STACK) -o $(SHL7TARGETN) \
3854 $(SHL7DEF) \
3855 $(STDOBJ) \
3856 -L$(LB) \
3857 -L$(SOLARVERSION)/$(INPATH)/lib \
3858 $(SHL7OBJS) $(SHL7VERSIONOBJ) \
3859 $(SHL7LIBS) \
3860 $(SHL7STDLIBS:^"-l") \
3861 $(SHL7LINKRES) \
3862 $(SHL7STDSHL:^"-l") $(STDSHL7:^"-l") \
3863 $(LINKOUTPUTFILTER)
3864 @$(LS) $@ >& $(NULLDEV)
3866 .ENDIF # "$(USE_DEFFILE)"!=""
3868 .IF "$(SHL7TARGET8)" != "$(SHL7TARGET)"
3869 $(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL7TARGET8).dll
3870 .ENDIF
3872 .ENDIF # "$(GUI)" == "OS2"
3875 .IF "$(TESTDIR)"!=""
3876 .IF "$(NO_TESTS)"==""
3878 ALLTAR : runtest_$(SHL7TARGET)
3880 runtest_$(SHL7TARGET) : $(SHL7TARGETN)
3881 testshl $(SHL7TARGETN) sce/$(SHL7TARGET).sce -msg -skip
3882 .ENDIF # "$(NO_TESTS)"==""
3883 .ENDIF # "$(TESTDIR)"!=""
3884 .ENDIF # "$(SHL7TARGETN)"!=""
3886 # unroll begin
3888 .IF "$(SHL8TARGETN)"!=""
3890 .IF "$(OS)"=="AIX"
3891 SHL8STDLIBS=
3892 .ENDIF
3894 .IF "$(SHLLINKARCONLY)" != ""
3895 SHL8STDLIBS=
3896 STDSHL=
3897 .ELSE
3898 SHL8ARCHIVES=
3899 .ENDIF
3901 # decide how to link
3902 .IF "$(SHL8CODETYPE)"=="C"
3903 SHL8LINKER=$(LINKC)
3904 SHL8STDSHL=$(subst,CPPRUNTIME, $(STDSHL))
3905 SHL8LINKFLAGS+=$(LINKCFLAGS)
3906 .ELSE # "$(SHL8CODETYPE)"=="C"
3907 SHL8LINKER=$(LINK)
3908 SHL8STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL))
3909 SHL8LINKFLAGS+=$(LINKFLAGS)
3910 .ENDIF # "$(SHL8CODETYPE)"=="C"
3912 SHL8RPATH*=OOO
3913 LINKFLAGSRUNPATH_$(SHL8RPATH)*=/ERROR:/Bad_SHL8RPATH_value
3914 SHL8LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL8RPATH))
3916 .IF "$(SHL8USE_EXPORTS)"==""
3917 SHL8DEF*=$(MISC)/$(SHL8TARGET).def
3918 .ENDIF # "$(SHL8USE_EXPORTS)"==""
3920 EXTRALIBPATHS8=$(EXTRALIBPATHS)
3921 .IF "$(UPDATER)"=="YES"
3922 .IF "$(SHL8NOCHECK)"==""
3923 .IF "$(SOLAR_STLLIBPATH)"!=""
3924 EXTRALIBPATHS8+=-L$(SOLAR_STLLIBPATH)
3925 .ENDIF
3926 .ENDIF # "$(SHL8NOCHECK)"!=""
3927 .ENDIF
3928 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3929 #+++++++++++ version object ++++++++++++++++++++++++++++++++++++++++
3930 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3932 .IF "$(L10N_framework)"==""
3933 .IF "$(VERSIONOBJ)"!=""
3934 SHL8VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL8TARGET))}$(VERSIONOBJ:f)
3935 USE_VERSIONH:=$(INCCOM)/$(SHL8VERSIONOBJ:b).h
3936 .IF "$(GUI)" == "UNX"
3937 SHL8VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL8TARGET))}$(VERSIONOBJ:f:s/.o/.obj/)
3938 .ELSE # "$(GUI)" == "UNX"
3939 SHL8VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL8TARGET))}$(VERSIONOBJ:f)
3940 .ENDIF # "$(GUI)" == "UNX"
3941 $(MISC)/$(SHL8VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL8VERSIONOBJ:b).h
3942 # $(COPY) $(SOLARENV)/src/version.c $@
3943 $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL8VERSIONOBJ:b).h/ > $@
3945 .INIT : $(SHL8VERSIONOBJDEP)
3946 .ENDIF # "$(VERSIONOBJ)"!=""
3947 .ENDIF
3949 .IF "$(GUI)" != "UNX"
3950 .IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
3951 .IF "$(SHL8IMPLIB)" == ""
3952 SHL8IMPLIB=i$(TARGET)_t8
3953 .ENDIF # "$(SHL8IMPLIB)" == ""
3954 .IF "$(COM)" != "GCC"
3955 USE_8IMPLIB=-implib:$(LB)/$(SHL8IMPLIB).lib
3956 .ENDIF # "$(COM)" != "GCC"
3957 SHL8IMPLIBN=$(LB)/$(SHL8IMPLIB).lib
3958 ALLTAR : $(SHL8IMPLIBN)
3960 .IF "$(USE_DEFFILE)"==""
3961 USE_8IMPLIB_DEPS=$(LB)/$(SHL8IMPLIB).lib
3962 .ENDIF # "$(USE_DEFFILE)"==""
3963 .ENDIF # "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
3964 USE_SHL8DEF=$(SHL8DEF)
3965 .ELSE # "$(GUI)" != "UNX"
3966 USE_SHL8DEF=
3967 SHL8DEPN+:=$(SHL8DEPNU)
3969 .IF "$(SHL8VERSIONMAP)"==""
3970 # to activate vmaps remove "#"
3971 USE_SHL8VERSIONMAP=$(MISC)/$(SHL8TARGET).vmap
3972 .ENDIF # "$(SHL8VERSIONMAP)"==""
3974 .IF "$(USE_SHL8VERSIONMAP)"!=""
3976 .IF "$(SHL8FILTERFILE)"!=""
3977 .IF "$(SHL8VERSIONMAP)"!=""
3978 #eine von beiden ist zuviel
3979 USE_SHL8VERSIONMAP=$(MISC)/$(SHL8TARGET).vmap
3980 $(USE_SHL8VERSIONMAP) .PHONY:
3981 @echo -----------------------------
3982 @echo you should only use versionmap OR exportfile
3983 @echo -----------------------------
3984 # force_dmake_to_error
3986 .ENDIF # "$(SHL8VERSIONMAP)"!=""
3988 .IF "$(OS)"!="IRIX"
3989 SHL8VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL8VERSIONMAP)
3990 .ENDIF
3992 $(USE_SHL8VERSIONMAP): \
3993 $(SHL8OBJS)\
3994 $(SHL8LIBS)\
3995 $(SHL8FILTERFILE)
3996 @$(RM) $@.dump
3997 .IF "$(SHL8OBJS)"!=""
3998 # dump remaining objects on the fly
3999 .IF "$(OS)"=="MACOSX"
4000 @-nm $(SHL8OBJS:s/.obj/.o/) > $@.dump
4001 .ELSE
4002 @nm $(SHL8OBJS:s/.obj/.o/) > $@.dump
4003 .ENDIF
4004 .ENDIF # "$(SHL8OBJS)!"=""
4005 @$(TYPE) /dev/null $(SHL8LIBS:s/.lib/.dump/) >> $@.dump
4006 $(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL8INTERFACE) -f $(SHL8FILTERFILE) -m $@
4008 .ELSE # "$(SHL8FILTERFILE)"!=""
4009 USE_SHL8VERSIONMAP=$(MISC)/$(SHL8TARGET).vmap
4010 $(USE_SHL8VERSIONMAP) :
4011 .IF "$(VERBOSE)" == "TRUE"
4012 @echo -----------------------------
4013 @echo SHL8FILTERFILE not set!
4014 @echo -----------------------------
4015 @$(TOUCH) $@
4016 @echo dummy file to keep the dependencies for later use.
4017 .ELSE
4018 @$(TOUCH) $@
4019 .ENDIF
4020 # force_dmake_to_error
4021 .ENDIF # "$(SHL8FILTERFILE)"!=""
4022 .ELSE # "$(USE_SHL8VERSIONMAP)"!=""
4024 #and now for the plain non-generic way...
4025 .IF "$(SHL8VERSIONMAP)"!=""
4026 USE_SHL8VERSIONMAP=$(MISC)/$(SHL8VERSIONMAP:b)_$(SHL8TARGET)$(SHL8VERSIONMAP:e)
4027 .IF "$(OS)"!="IRIX"
4028 SHL8VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL8VERSIONMAP)
4029 .ENDIF
4031 .IF "$(OS)"=="MACOSX"
4032 $(USE_SHL8VERSIONMAP): $(SHL8OBJS) $(SHL8LIBS)
4033 .ENDIF
4035 $(USE_SHL8VERSIONMAP): $(SHL8VERSIONMAP)
4036 @@-$(RM) -f $@
4037 # The following files will only be generated and needed on Mac OS X as temporary files
4038 # in order to generate exported symbols list out of Linux/Solaris map files
4039 .IF "$(OS)"=="MACOSX"
4040 @-$(RM) -f $@.symregexp >& $(NULLDEV)
4041 @-$(RM) -f $@.expsymlist >& $(NULLDEV)
4042 .ENDIF
4043 # Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what
4044 # happens if somebody will change it in the future
4045 .IF "$(COMID)"=="gcc3"
4046 $(COMMAND_ECHO) tr -d "\015" < $(SHL8VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@
4047 .ELIF "$(COMNAME)"=="sunpro5"
4048 $(COMMAND_ECHO) tr -d "\015" < $(SHL8VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@
4049 .ELSE # "$(COMID)"=="gcc3"
4050 $(COMMAND_ECHO) tr -d "\015" < $(SHL8VERSIONMAP) > $@
4051 .ENDIF # "$(COMID)"=="gcc3"
4052 @chmod a+w $@
4053 # Mac OS X post-processing generate an exported symbols list from the generated map file
4054 # for details on exported symbols list see man ld on Mac OS X
4055 .IF "$(OS)"=="MACOSX"
4056 @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols
4057 @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp
4058 # Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
4059 # Extract RTTI symbols from all the objects that will be used to build a shared library
4060 .IF "$(SHL8OBJS)"!=""
4061 -echo $(foreach,i,$(SHL8OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
4062 .ENDIF
4063 .IF "$(SHL8LIBS)"!=""
4064 $(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL8LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
4065 .ENDIF
4066 # overwrite the map file generate into the local output tree with the generated
4067 # exported symbols list
4068 cp $@.exported-symbols $@
4069 .ENDIF # .IF "$(OS)"=="MACOSX"
4070 .ENDIF # "$(SHL8VERSIONMAP)"!=""
4071 .ENDIF # "$(USE_SHL8VERSIONMAP)"!=""
4072 .ENDIF # "$(GUI)" != "UNX"
4074 .IF "$(UNIXVERSIONNAMES)"!=""
4075 .IF "$(OS)"!="MACOSX"
4076 .IF "$(GUI)"=="UNX"
4077 .IF "$(OS)"=="IRIX"
4078 SHL8SONAME=$(SONAME_SWITCH)$(SHL8TARGETN:f)
4079 .ELSE
4080 SHL8SONAME=\"$(SONAME_SWITCH)$(SHL8TARGETN:f)\"
4081 .ENDIF
4082 .ENDIF # "$(GUI)"!="UNX"
4083 .ENDIF # "$(OS)"!="MACOSX"
4084 .ENDIF # "$(UNIXVERSIONNAMES)"!=""
4086 .IF "$(SHL8RES)"!=""
4087 SHL8ALLRES+=$(SHL8RES)
4088 SHL8LINKRES*=$(MISC)/$(SHL8TARGET).res
4089 SHL8LINKRESO*=$(MISC)/$(SHL8TARGET)_res.o
4090 .ENDIF # "$(SHL8RES)"!=""
4092 .IF "$(SHL8DEFAULTRES)$(use_shl_versions)"!=""
4093 SHL8DEFAULTRES*=$(MISC)/$(SHL8TARGET)_def.res
4094 SHL8ALLRES+=$(SHL8DEFAULTRES)
4095 SHL8LINKRES*=$(MISC)/$(SHL8TARGET).res
4096 SHL8LINKRESO*=$(MISC)/$(SHL8TARGET)_res.o
4097 .ENDIF # "$(SHL8DEFAULTRES)$(use_shl_versions)"!=""
4099 #.IF "$(SHL8TARGETN)"!=""
4101 .IF "$(linkinc)"!=""
4102 .IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
4103 .IF "$(SHL8LIBS)"!=""
4104 $(MISC)/$(SHL8TARGET)_linkinc.ls .PHONY:
4105 @@-$(RM) $@
4106 $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL8LIBS) $(i:s/.lib/.lin/)) >> $@
4107 .ENDIF # "$(SHL8LIBS)"!=""
4108 .ENDIF
4110 LINKINCTARGETS+=$(MISC)/$(SHL8TARGETN:b)_linkinc.ls
4111 $(SHL8TARGETN) : $(LINKINCTARGETS)
4113 .ELSE
4114 .IF "$(SHL8USE_EXPORTS)"=="name"
4115 .IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
4116 .IF "$(COM)"!="GCC"
4117 .IF "$(SHL8LIBS)"!=""
4118 SHL8LINKLIST=$(MISC)/$(SHL8TARGET)_link.lst
4119 SHL8LINKLISTPARAM=@$(SHL8LINKLIST)
4120 $(SHL8LINKLIST) : $(SHL8LIBS)
4121 @@-$(RM) $@
4122 $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL8LIBS) $(i:s/.lib/.lin/)) >> $@
4123 .ENDIF # "$(SHL8LIBS)"!=""
4124 .ENDIF # "$(COM)"!="GCC"
4125 .ENDIF
4126 .ENDIF # "$(SHL8USE_EXPORTS)"=="name"
4128 $(MISC)/%linkinc.ls:
4129 @echo . > $@
4130 .ENDIF # "$(linkinc)"!=""
4132 .IF "$(GUI)" == "OS2"
4133 #21/02/2006 YD dll names must be 8.3, invoke fix script
4134 #check osl/os2/module.c/osl_loadModule()
4135 SHL8TARGET8=$(shell @fix_shl $(SHL8TARGET))
4136 .ENDIF
4138 .IF "$(GUI)" == "OS2"
4139 _SHL8IMP_ORD = $(SHL8STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(SHL8STDLIBS:^"$(LB)/")
4140 SHL8IMP_ORD = $(foreach,i,$(_SHL8IMP_ORD) $(shell @-ls $i))
4141 .ELSE
4142 SHL8IMP_ORD =
4143 .ENDIF
4146 $(SHL8TARGETN) : \
4147 $(SHL8OBJS)\
4148 $(SHL8LIBS)\
4149 $(USE_8IMPLIB_DEPS)\
4150 $(USE_SHL8DEF)\
4151 $(USE_SHL8VERSIONMAP)\
4152 $(SHL8RES)\
4153 $(SHL8DEPN) \
4154 $(SHL8IMP_ORD) \
4155 $(SHL8LINKLIST)
4156 .IF "$(VERBOSE)" == "TRUE"
4157 @echo ------------------------------
4158 .ENDIF
4159 @echo "Making: " $(@:f)
4160 .IF "$(GUI)" == "WNT"
4161 .IF "$(SHL8DEFAULTRES)"!=""
4162 @@-$(RM) $(MISC)/$(SHL8DEFAULTRES:b).rc
4163 .IF "$(SHL8ICON)" != ""
4164 @echo 1 ICON $(SHL8ICON) >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4165 .ENDIF
4166 .IF "$(use_shl_versions)" != ""
4167 .IF "$(SHL8ADD_VERINFO)"!=""
4168 @echo $(EMQ)#include $(EMQ)"$(SHL8ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4169 .ELSE # "$(SHL8ADD_VERINFO)"!=""
4170 @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4171 @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4172 @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4173 .ENDIF # "$(SHL8ADD_VERINFO)"!=""
4174 @echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4175 @echo $(EMQ)#define ORG_NAME $(SHL8TARGET)$(DLLPOST) >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4176 @echo $(EMQ)#define INTERNAL_NAME $(SHL8TARGET:b) >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4177 @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4178 .ENDIF # "$(use_shl_versions)" != ""
4179 $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL8DEFAULTRES:b).rc
4180 .ENDIF # "$(SHL8DEFAULTRES)"!=""
4181 .IF "$(SHL8ALLRES)"!=""
4182 $(COMMAND_ECHO)$(TYPE) $(SHL8ALLRES) > $(SHL8LINKRES)
4183 .IF "$(COM)"=="GCC"
4184 windres $(SHL8LINKRES) $(SHL8LINKRESO)
4185 .ENDIF # "$(COM)"=="GCC"
4186 .ENDIF # "$(SHL8ALLRES)"!=""
4187 .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def
4188 @echo dlltool --input-def $(SHL8DEF) \
4189 --dllname $(SHL8TARGET)$(DLLPOST) \
4190 --kill-at \\ > $(MISC)/$(TARGET).$(@:b)_8.cmd
4191 @noop $(assign ALL8OBJLIST:=$(STDOBJ) $(SHL8OBJS) $(SHL8LINKRESO) $(shell $(TYPE) /dev/null $(SHL8LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g))
4192 .IF "$(DEFLIB8NAME)"!="" # do not have to include objs
4193 @noop $(assign DEF8OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB8NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g))
4194 @noop $(foreach,i,$(DEF8OBJLIST) $(assign ALL8OBJLIST:=$(ALL8OBJLIST:s?$i??)))
4195 .ENDIF # "$(DEFLIB8NAME)"!=""
4196 @echo --output-exp $(MISC)/$(@:b)_exp.o \
4197 $(ALL8OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_8.cmd
4198 @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \
4199 $(STDOBJ) $(SHL8VERSIONOBJ) $(SHL8DESCRIPTIONOBJ) $(SHL8OBJS) $(SHL8LINKRESO) \
4200 `$(TYPE) /dev/null $(SHL8LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
4201 -Wl,--exclude-libs,ALL,--start-group $(SHL8STDLIBS) -Wl,--end-group \
4202 $(SHL8STDSHL) $(STDSHL8) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \
4203 -Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_8.cmd
4204 @$(TYPE) $(MISC)/$(TARGET).$(@:b)_8.cmd
4205 @+source $(MISC)/$(TARGET).$(@:b)_8.cmd
4206 .ELSE
4207 .IF "$(linkinc)"==""
4208 .IF "$(SHL8USE_EXPORTS)"!="name"
4209 .IF "$(USE_DEFFILE)"!=""
4210 $(SHL8LINKER) @$(mktmp \
4211 $(SHL8LINKFLAGS) \
4212 $(LINKFLAGSSHL) \
4213 $(SHL8STACK) $(SHL8BASEX) \
4214 -out:$@ \
4215 -map:$(MISC)/$(@:b).map \
4216 -def:$(SHL8DEF) \
4217 $(USE_8IMPLIB) \
4218 $(STDOBJ) \
4219 $(SHL8VERSIONOBJ) $(SHL8OBJS) \
4220 $(SHL8LIBS) \
4221 $(SHL8STDLIBS) \
4222 $(SHL8STDSHL) $(STDSHL8) \
4223 $(SHL8LINKRES) \
4224 ) $(LINKOUTPUTFILTER)
4225 # double check if target was really written... still making sense?
4226 @@$(LS) $@
4227 @echo linking $@.manifest ...
4228 .IF "$(VISTA_MANIFEST)"!=""
4229 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
4230 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
4231 .ELSE
4232 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
4233 .ENDIF # "$(VISTA_MANIFEST)"!=""
4234 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
4235 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
4236 .ELSE # "$(USE_DEFFILE)"!=""
4237 $(COMMAND_ECHO)$(SHL8LINKER) @$(mktmp $(SHL8LINKFLAGS) \
4238 $(LINKFLAGSSHL) $(SHL8BASEX) \
4239 $(SHL8STACK) -out:$(SHL8TARGETN) \
4240 -map:$(MISC)/$(@:B).map \
4241 $(LB)/$(SHL8IMPLIB).exp \
4242 $(STDOBJ) \
4243 $(SHL8OBJS) $(SHL8VERSIONOBJ) \
4244 $(SHL8LIBS) \
4245 $(SHL8STDLIBS) \
4246 $(SHL8STDSHL) $(STDSHL8) \
4247 $(SHL8LINKRES) \
4248 ) $(LINKOUTPUTFILTER)
4249 # double check if target was really written... still making sense?
4250 @@$(LS) $@
4251 @echo linking $@.manifest ...
4252 .IF "$(VISTA_MANIFEST)"!=""
4253 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
4254 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
4255 .ELSE
4256 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
4257 .ENDIF # "$(VISTA_MANIFEST)"!=""
4258 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
4259 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
4260 .ENDIF # "$(USE_DEFFILE)"!=""
4261 .ELSE # "$(SHL8USE_EXPORTS)"!="name"
4262 $(COMMAND_ECHO)$(SHL8LINKER) @$(mktmp $(SHL8LINKFLAGS) \
4263 $(LINKFLAGSSHL) $(SHL8BASEX) \
4264 $(SHL8STACK) -out:$(SHL8TARGETN) \
4265 -map:$(MISC)/$(@:B).map \
4266 $(USE_8IMPLIB) \
4267 $(STDOBJ) \
4268 $(SHL8OBJS) $(SHL8VERSIONOBJ)) \
4269 $(SHL8LINKLISTPARAM) \
4270 @$(mktmp $(SHL8STDLIBS) \
4271 $(SHL8STDSHL) $(STDSHL8) \
4272 $(SHL8LINKRES) \
4274 @echo linking $@.manifest ...
4275 .IF "$(VISTA_MANIFEST)"!=""
4276 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
4277 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
4278 .ELSE
4279 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
4280 .ENDIF # "$(VISTA_MANIFEST)"!=""
4281 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
4282 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
4283 .ENDIF # "$(SHL8USE_EXPORTS)"!="name"
4284 .ELSE # "$(linkinc)"==""
4285 $(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL8TARGET).lnk
4286 $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL8TARGET).lst
4287 $(COMMAND_ECHO)$(TYPE) $(mktmp \
4288 $(SHL8LINKFLAGS) \
4289 $(LINKFLAGSSHL) $(SHL8BASEX) \
4290 $(SHL8STACK) $(MAPFILE) \
4291 -out:$@ \
4292 $(LB)/$(SHL8IMPLIB).exp \
4293 $(STDOBJ) \
4294 $(SHL8OBJS) \
4295 $(SHL8STDLIBS) \
4296 $(SHL8STDSHL) $(STDSHL8) \
4297 $(SHL8LINKRES) \
4298 ) >> $(MISC)/$(SHL8TARGET).lnk
4299 $(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL8TARGETN:b)_linkinc.ls >> $(MISC)/$(SHL8TARGET).lnk
4300 $(COMMAND_ECHO)$(SHL8LINKER) @$(MISC)/$(SHL8TARGET).lnk
4301 @echo linking $@.manifest ...
4302 .IF "$(VISTA_MANIFEST)"!=""
4303 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
4304 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
4305 .ELSE
4306 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
4307 .ENDIF # "$(VISTA_MANIFEST)"!=""
4308 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
4309 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
4310 .ENDIF # "$(linkinc)"==""
4311 .ENDIF # "$(COM)"=="GCC"
4312 .ENDIF # "$(GUI)" == "WNT"
4313 .IF "$(GUI)"=="UNX"
4314 .IF "$(OS)"=="MACOSX"
4315 @-$(RM) $(MISC)/$(@:b).list
4316 @-$(RM) $(MISC)/$(TARGET).$(@:b)_8.cmd
4317 @echo $(STDSLO) $(SHL8OBJS:s/.obj/.o/) \
4318 $(SHL8VERSIONOBJ) \
4319 `cat /dev/null $(SHL8LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list
4320 @echo -n $(SHL8LINKER) $(SHL8LINKFLAGS) $(SHL8VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \
4321 $(SHL8STDLIBS) $(SHL8ARCHIVES) $(SHL8STDSHL) $(STDSHL8) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_8.cmd
4322 @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \
4323 `cat $(MISC)/$(TARGET).$(@:b)_8.cmd` \
4324 >> $(MISC)/$(TARGET).$(@:b)_8.cmd
4325 .IF "$(VERBOSE)" == "TRUE"
4326 @cat $(MISC)/$(TARGET).$(@:b)_8.cmd
4327 .ENDIF
4328 @+source $(MISC)/$(TARGET).$(@:b)_8.cmd
4329 @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \
4330 shl $(SHL8RPATH) $@
4331 @echo "Making: " $(@:f).jnilib
4332 @macosx-create-bundle $@
4333 .IF "$(UPDATER)"=="YES"
4334 .IF "$(SHL8NOCHECK)"==""
4335 $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS8) $(SHL8TARGETN)
4336 .ENDIF # "$(SHL8NOCHECK)"!=""
4337 .ENDIF
4338 .ELSE # "$(OS)"=="MACOSX"
4339 @-$(RM) $(MISC)/$(TARGET).$(@:b)_8.cmd
4340 @echo $(SHL8LINKER) $(SHL8LINKFLAGS) $(SHL8SONAME) $(LINKFLAGSSHL) $(SHL8VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL8OBJS:s/.obj/.o/) \
4341 $(SHL8VERSIONOBJ) -o $@ \
4342 `cat /dev/null $(SHL8LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
4343 $(SHL8STDLIBS) $(SHL8ARCHIVES) $(SHL8STDSHL) $(STDSHL8) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_8.cmd
4344 .IF "$(VERBOSE)" == "TRUE"
4345 @cat $(MISC)/$(TARGET).$(@:b)_8.cmd
4346 .ENDIF
4347 @+source $(MISC)/$(TARGET).$(@:b)_8.cmd
4348 .IF "$(UPDATER)"=="YES"
4349 .IF "$(SHL8NOCHECK)"==""
4350 $(COMMAND_ECHO)-$(RM) $(SHL8TARGETN:d)check_$(SHL8TARGETN:f)
4351 $(COMMAND_ECHO)$(RENAME) $(SHL8TARGETN) $(SHL8TARGETN:d)check_$(SHL8TARGETN:f)
4352 .IF "$(VERBOSE)"=="TRUE"
4353 $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS8) $(SHL8TARGETN:d)check_$(SHL8TARGETN:f)
4354 .ELSE
4355 $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS8) -- -s $(SHL8TARGETN:d)check_$(SHL8TARGETN:f)
4356 .ENDIF
4357 .ENDIF # "$(SHL8NOCHECK)"!=""
4358 .ENDIF # "$(UPDATER)"=="YES"
4359 .ENDIF # "$(OS)"=="MACOSX"
4360 .IF "$(UNIXVERSIONNAMES)"!=""
4361 $(COMMAND_ECHO)$(RM) $(LB)/$(SHL8TARGETN:b)
4362 $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL8TARGETN:f) $(SHL8TARGETN:b)
4363 .ENDIF # "$(UNIXVERSIONNAMES)"!=""
4364 .IF "$(VERBOSE)" == "TRUE"
4365 @ls -l $@
4366 .ENDIF
4367 .ENDIF # "$(GUI)" == "UNX"
4369 .IF "$(GUI)" == "OS2"
4371 .IF "$(SHL8DEFAULTRES)"!=""
4372 @+-$(RM) $(MISC)/$(SHL8DEFAULTRES:b).rc >& $(NULLDEV)
4373 .IF "$(SHL8ICON)" != ""
4374 @-+echo 1 ICON $(SHL8ICON) >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4375 .ENDIF
4376 .IF "$(use_shl_versions)" != ""
4377 .IF "$(SHL8ADD_VERINFO)"!=""
4378 @-+echo $(EMQ)#include $(EMQ)"$(SHL8ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4379 .ENDIF # "$(SHL8ADD_VERINFO)"!=""
4380 @-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4381 # @-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4382 .ENDIF # "$(use_shl_versions)" != ""
4383 # YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR)
4384 $(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL8DEFAULTRES:b).rc
4385 .ENDIF # "$(SHL8DEFAULTRES)"!=""
4387 .IF "$(SHL8ALLRES)"!=""
4388 $(COMMAND_ECHO)+$(TYPE) $(SHL8ALLRES) > $(SHL8LINKRES)
4389 .ENDIF # "$(SHL8ALLRES)"!=""
4391 .IF "$(USE_DEFFILE)"!=""
4393 $(COMMAND_ECHO)$(SHL8LINKER) $(SHL8LINKFLAGS) $(LINKFLAGSSHL) -o $@ \
4394 $(SHL8DEF) \
4395 $(STDOBJ) \
4396 -L$(LB) \
4397 -L$(SOLARVERSION)/$(INPATH)/lib \
4398 $(SHL8OBJS) $(SHL8VERSIONOBJ) \
4399 $(SHL8LIBS) \
4400 $(SHL8STDLIBS:^"-l") \
4401 $(SHL8LINKRES) \
4402 $(SHL8STDSHL:^"-l") $(STDSHL8:^"-l")
4404 .ELSE # "$(USE_DEFFILE)"!=""
4406 $(COMMAND_ECHO)$(SHL8LINKER) -v $(SHL8LINKFLAGS) \
4407 $(LINKFLAGSSHL) $(SHL8BASEX) \
4408 $(SHL8STACK) -o $(SHL8TARGETN) \
4409 $(SHL8DEF) \
4410 $(STDOBJ) \
4411 -L$(LB) \
4412 -L$(SOLARVERSION)/$(INPATH)/lib \
4413 $(SHL8OBJS) $(SHL8VERSIONOBJ) \
4414 $(SHL8LIBS) \
4415 $(SHL8STDLIBS:^"-l") \
4416 $(SHL8LINKRES) \
4417 $(SHL8STDSHL:^"-l") $(STDSHL8:^"-l") \
4418 $(LINKOUTPUTFILTER)
4419 @$(LS) $@ >& $(NULLDEV)
4421 .ENDIF # "$(USE_DEFFILE)"!=""
4423 .IF "$(SHL8TARGET8)" != "$(SHL8TARGET)"
4424 $(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL8TARGET8).dll
4425 .ENDIF
4427 .ENDIF # "$(GUI)" == "OS2"
4430 .IF "$(TESTDIR)"!=""
4431 .IF "$(NO_TESTS)"==""
4433 ALLTAR : runtest_$(SHL8TARGET)
4435 runtest_$(SHL8TARGET) : $(SHL8TARGETN)
4436 testshl $(SHL8TARGETN) sce/$(SHL8TARGET).sce -msg -skip
4437 .ENDIF # "$(NO_TESTS)"==""
4438 .ENDIF # "$(TESTDIR)"!=""
4439 .ENDIF # "$(SHL8TARGETN)"!=""
4441 # unroll begin
4443 .IF "$(SHL9TARGETN)"!=""
4445 .IF "$(OS)"=="AIX"
4446 SHL9STDLIBS=
4447 .ENDIF
4449 .IF "$(SHLLINKARCONLY)" != ""
4450 SHL9STDLIBS=
4451 STDSHL=
4452 .ELSE
4453 SHL9ARCHIVES=
4454 .ENDIF
4456 # decide how to link
4457 .IF "$(SHL9CODETYPE)"=="C"
4458 SHL9LINKER=$(LINKC)
4459 SHL9STDSHL=$(subst,CPPRUNTIME, $(STDSHL))
4460 SHL9LINKFLAGS+=$(LINKCFLAGS)
4461 .ELSE # "$(SHL9CODETYPE)"=="C"
4462 SHL9LINKER=$(LINK)
4463 SHL9STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL))
4464 SHL9LINKFLAGS+=$(LINKFLAGS)
4465 .ENDIF # "$(SHL9CODETYPE)"=="C"
4467 SHL9RPATH*=OOO
4468 LINKFLAGSRUNPATH_$(SHL9RPATH)*=/ERROR:/Bad_SHL9RPATH_value
4469 SHL9LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL9RPATH))
4471 .IF "$(SHL9USE_EXPORTS)"==""
4472 SHL9DEF*=$(MISC)/$(SHL9TARGET).def
4473 .ENDIF # "$(SHL9USE_EXPORTS)"==""
4475 EXTRALIBPATHS9=$(EXTRALIBPATHS)
4476 .IF "$(UPDATER)"=="YES"
4477 .IF "$(SHL9NOCHECK)"==""
4478 .IF "$(SOLAR_STLLIBPATH)"!=""
4479 EXTRALIBPATHS9+=-L$(SOLAR_STLLIBPATH)
4480 .ENDIF
4481 .ENDIF # "$(SHL9NOCHECK)"!=""
4482 .ENDIF
4483 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4484 #+++++++++++ version object ++++++++++++++++++++++++++++++++++++++++
4485 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4487 .IF "$(L10N_framework)"==""
4488 .IF "$(VERSIONOBJ)"!=""
4489 SHL9VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL9TARGET))}$(VERSIONOBJ:f)
4490 USE_VERSIONH:=$(INCCOM)/$(SHL9VERSIONOBJ:b).h
4491 .IF "$(GUI)" == "UNX"
4492 SHL9VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL9TARGET))}$(VERSIONOBJ:f:s/.o/.obj/)
4493 .ELSE # "$(GUI)" == "UNX"
4494 SHL9VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL9TARGET))}$(VERSIONOBJ:f)
4495 .ENDIF # "$(GUI)" == "UNX"
4496 $(MISC)/$(SHL9VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL9VERSIONOBJ:b).h
4497 # $(COPY) $(SOLARENV)/src/version.c $@
4498 $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL9VERSIONOBJ:b).h/ > $@
4500 .INIT : $(SHL9VERSIONOBJDEP)
4501 .ENDIF # "$(VERSIONOBJ)"!=""
4502 .ENDIF
4504 .IF "$(GUI)" != "UNX"
4505 .IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
4506 .IF "$(SHL9IMPLIB)" == ""
4507 SHL9IMPLIB=i$(TARGET)_t9
4508 .ENDIF # "$(SHL9IMPLIB)" == ""
4509 .IF "$(COM)" != "GCC"
4510 USE_9IMPLIB=-implib:$(LB)/$(SHL9IMPLIB).lib
4511 .ENDIF # "$(COM)" != "GCC"
4512 SHL9IMPLIBN=$(LB)/$(SHL9IMPLIB).lib
4513 ALLTAR : $(SHL9IMPLIBN)
4515 .IF "$(USE_DEFFILE)"==""
4516 USE_9IMPLIB_DEPS=$(LB)/$(SHL9IMPLIB).lib
4517 .ENDIF # "$(USE_DEFFILE)"==""
4518 .ENDIF # "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
4519 USE_SHL9DEF=$(SHL9DEF)
4520 .ELSE # "$(GUI)" != "UNX"
4521 USE_SHL9DEF=
4522 SHL9DEPN+:=$(SHL9DEPNU)
4524 .IF "$(SHL9VERSIONMAP)"==""
4525 # to activate vmaps remove "#"
4526 USE_SHL9VERSIONMAP=$(MISC)/$(SHL9TARGET).vmap
4527 .ENDIF # "$(SHL9VERSIONMAP)"==""
4529 .IF "$(USE_SHL9VERSIONMAP)"!=""
4531 .IF "$(SHL9FILTERFILE)"!=""
4532 .IF "$(SHL9VERSIONMAP)"!=""
4533 #eine von beiden ist zuviel
4534 USE_SHL9VERSIONMAP=$(MISC)/$(SHL9TARGET).vmap
4535 $(USE_SHL9VERSIONMAP) .PHONY:
4536 @echo -----------------------------
4537 @echo you should only use versionmap OR exportfile
4538 @echo -----------------------------
4539 # force_dmake_to_error
4541 .ENDIF # "$(SHL9VERSIONMAP)"!=""
4543 .IF "$(OS)"!="IRIX"
4544 SHL9VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL9VERSIONMAP)
4545 .ENDIF
4547 $(USE_SHL9VERSIONMAP): \
4548 $(SHL9OBJS)\
4549 $(SHL9LIBS)\
4550 $(SHL9FILTERFILE)
4551 @$(RM) $@.dump
4552 .IF "$(SHL9OBJS)"!=""
4553 # dump remaining objects on the fly
4554 .IF "$(OS)"=="MACOSX"
4555 @-nm $(SHL9OBJS:s/.obj/.o/) > $@.dump
4556 .ELSE
4557 @nm $(SHL9OBJS:s/.obj/.o/) > $@.dump
4558 .ENDIF
4559 .ENDIF # "$(SHL9OBJS)!"=""
4560 @$(TYPE) /dev/null $(SHL9LIBS:s/.lib/.dump/) >> $@.dump
4561 $(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL9INTERFACE) -f $(SHL9FILTERFILE) -m $@
4563 .ELSE # "$(SHL9FILTERFILE)"!=""
4564 USE_SHL9VERSIONMAP=$(MISC)/$(SHL9TARGET).vmap
4565 $(USE_SHL9VERSIONMAP) :
4566 .IF "$(VERBOSE)" == "TRUE"
4567 @echo -----------------------------
4568 @echo SHL9FILTERFILE not set!
4569 @echo -----------------------------
4570 @$(TOUCH) $@
4571 @echo dummy file to keep the dependencies for later use.
4572 .ELSE
4573 @$(TOUCH) $@
4574 .ENDIF
4575 # force_dmake_to_error
4576 .ENDIF # "$(SHL9FILTERFILE)"!=""
4577 .ELSE # "$(USE_SHL9VERSIONMAP)"!=""
4579 #and now for the plain non-generic way...
4580 .IF "$(SHL9VERSIONMAP)"!=""
4581 USE_SHL9VERSIONMAP=$(MISC)/$(SHL9VERSIONMAP:b)_$(SHL9TARGET)$(SHL9VERSIONMAP:e)
4582 .IF "$(OS)"!="IRIX"
4583 SHL9VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL9VERSIONMAP)
4584 .ENDIF
4586 .IF "$(OS)"=="MACOSX"
4587 $(USE_SHL9VERSIONMAP): $(SHL9OBJS) $(SHL9LIBS)
4588 .ENDIF
4590 $(USE_SHL9VERSIONMAP): $(SHL9VERSIONMAP)
4591 @@-$(RM) -f $@
4592 # The following files will only be generated and needed on Mac OS X as temporary files
4593 # in order to generate exported symbols list out of Linux/Solaris map files
4594 .IF "$(OS)"=="MACOSX"
4595 @-$(RM) -f $@.symregexp >& $(NULLDEV)
4596 @-$(RM) -f $@.expsymlist >& $(NULLDEV)
4597 .ENDIF
4598 # Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what
4599 # happens if somebody will change it in the future
4600 .IF "$(COMID)"=="gcc3"
4601 $(COMMAND_ECHO) tr -d "\015" < $(SHL9VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@
4602 .ELIF "$(COMNAME)"=="sunpro5"
4603 $(COMMAND_ECHO) tr -d "\015" < $(SHL9VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@
4604 .ELSE # "$(COMID)"=="gcc3"
4605 $(COMMAND_ECHO) tr -d "\015" < $(SHL9VERSIONMAP) > $@
4606 .ENDIF # "$(COMID)"=="gcc3"
4607 @chmod a+w $@
4608 # Mac OS X post-processing generate an exported symbols list from the generated map file
4609 # for details on exported symbols list see man ld on Mac OS X
4610 .IF "$(OS)"=="MACOSX"
4611 @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols
4612 @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp
4613 # Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
4614 # Extract RTTI symbols from all the objects that will be used to build a shared library
4615 .IF "$(SHL9OBJS)"!=""
4616 -echo $(foreach,i,$(SHL9OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
4617 .ENDIF
4618 .IF "$(SHL9LIBS)"!=""
4619 $(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL9LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
4620 .ENDIF
4621 # overwrite the map file generate into the local output tree with the generated
4622 # exported symbols list
4623 cp $@.exported-symbols $@
4624 .ENDIF # .IF "$(OS)"=="MACOSX"
4625 .ENDIF # "$(SHL9VERSIONMAP)"!=""
4626 .ENDIF # "$(USE_SHL9VERSIONMAP)"!=""
4627 .ENDIF # "$(GUI)" != "UNX"
4629 .IF "$(UNIXVERSIONNAMES)"!=""
4630 .IF "$(OS)"!="MACOSX"
4631 .IF "$(GUI)"=="UNX"
4632 .IF "$(OS)"=="IRIX"
4633 SHL9SONAME=$(SONAME_SWITCH)$(SHL9TARGETN:f)
4634 .ELSE
4635 SHL9SONAME=\"$(SONAME_SWITCH)$(SHL9TARGETN:f)\"
4636 .ENDIF
4637 .ENDIF # "$(GUI)"!="UNX"
4638 .ENDIF # "$(OS)"!="MACOSX"
4639 .ENDIF # "$(UNIXVERSIONNAMES)"!=""
4641 .IF "$(SHL9RES)"!=""
4642 SHL9ALLRES+=$(SHL9RES)
4643 SHL9LINKRES*=$(MISC)/$(SHL9TARGET).res
4644 SHL9LINKRESO*=$(MISC)/$(SHL9TARGET)_res.o
4645 .ENDIF # "$(SHL9RES)"!=""
4647 .IF "$(SHL9DEFAULTRES)$(use_shl_versions)"!=""
4648 SHL9DEFAULTRES*=$(MISC)/$(SHL9TARGET)_def.res
4649 SHL9ALLRES+=$(SHL9DEFAULTRES)
4650 SHL9LINKRES*=$(MISC)/$(SHL9TARGET).res
4651 SHL9LINKRESO*=$(MISC)/$(SHL9TARGET)_res.o
4652 .ENDIF # "$(SHL9DEFAULTRES)$(use_shl_versions)"!=""
4654 #.IF "$(SHL9TARGETN)"!=""
4656 .IF "$(linkinc)"!=""
4657 .IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
4658 .IF "$(SHL9LIBS)"!=""
4659 $(MISC)/$(SHL9TARGET)_linkinc.ls .PHONY:
4660 @@-$(RM) $@
4661 $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL9LIBS) $(i:s/.lib/.lin/)) >> $@
4662 .ENDIF # "$(SHL9LIBS)"!=""
4663 .ENDIF
4665 LINKINCTARGETS+=$(MISC)/$(SHL9TARGETN:b)_linkinc.ls
4666 $(SHL9TARGETN) : $(LINKINCTARGETS)
4668 .ELSE
4669 .IF "$(SHL9USE_EXPORTS)"=="name"
4670 .IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
4671 .IF "$(COM)"!="GCC"
4672 .IF "$(SHL9LIBS)"!=""
4673 SHL9LINKLIST=$(MISC)/$(SHL9TARGET)_link.lst
4674 SHL9LINKLISTPARAM=@$(SHL9LINKLIST)
4675 $(SHL9LINKLIST) : $(SHL9LIBS)
4676 @@-$(RM) $@
4677 $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL9LIBS) $(i:s/.lib/.lin/)) >> $@
4678 .ENDIF # "$(SHL9LIBS)"!=""
4679 .ENDIF # "$(COM)"!="GCC"
4680 .ENDIF
4681 .ENDIF # "$(SHL9USE_EXPORTS)"=="name"
4683 $(MISC)/%linkinc.ls:
4684 @echo . > $@
4685 .ENDIF # "$(linkinc)"!=""
4687 .IF "$(GUI)" == "OS2"
4688 #21/02/2006 YD dll names must be 8.3, invoke fix script
4689 #check osl/os2/module.c/osl_loadModule()
4690 SHL9TARGET8=$(shell @fix_shl $(SHL9TARGET))
4691 .ENDIF
4693 .IF "$(GUI)" == "OS2"
4694 _SHL9IMP_ORD = $(SHL9STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(SHL9STDLIBS:^"$(LB)/")
4695 SHL9IMP_ORD = $(foreach,i,$(_SHL9IMP_ORD) $(shell @-ls $i))
4696 .ELSE
4697 SHL9IMP_ORD =
4698 .ENDIF
4701 $(SHL9TARGETN) : \
4702 $(SHL9OBJS)\
4703 $(SHL9LIBS)\
4704 $(USE_9IMPLIB_DEPS)\
4705 $(USE_SHL9DEF)\
4706 $(USE_SHL9VERSIONMAP)\
4707 $(SHL9RES)\
4708 $(SHL9DEPN) \
4709 $(SHL9IMP_ORD) \
4710 $(SHL9LINKLIST)
4711 .IF "$(VERBOSE)" == "TRUE"
4712 @echo ------------------------------
4713 .ENDIF
4714 @echo "Making: " $(@:f)
4715 .IF "$(GUI)" == "WNT"
4716 .IF "$(SHL9DEFAULTRES)"!=""
4717 @@-$(RM) $(MISC)/$(SHL9DEFAULTRES:b).rc
4718 .IF "$(SHL9ICON)" != ""
4719 @echo 1 ICON $(SHL9ICON) >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4720 .ENDIF
4721 .IF "$(use_shl_versions)" != ""
4722 .IF "$(SHL9ADD_VERINFO)"!=""
4723 @echo $(EMQ)#include $(EMQ)"$(SHL9ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4724 .ELSE # "$(SHL9ADD_VERINFO)"!=""
4725 @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4726 @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4727 @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4728 .ENDIF # "$(SHL9ADD_VERINFO)"!=""
4729 @echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4730 @echo $(EMQ)#define ORG_NAME $(SHL9TARGET)$(DLLPOST) >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4731 @echo $(EMQ)#define INTERNAL_NAME $(SHL9TARGET:b) >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4732 @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4733 .ENDIF # "$(use_shl_versions)" != ""
4734 $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL9DEFAULTRES:b).rc
4735 .ENDIF # "$(SHL9DEFAULTRES)"!=""
4736 .IF "$(SHL9ALLRES)"!=""
4737 $(COMMAND_ECHO)$(TYPE) $(SHL9ALLRES) > $(SHL9LINKRES)
4738 .IF "$(COM)"=="GCC"
4739 windres $(SHL9LINKRES) $(SHL9LINKRESO)
4740 .ENDIF # "$(COM)"=="GCC"
4741 .ENDIF # "$(SHL9ALLRES)"!=""
4742 .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def
4743 @echo dlltool --input-def $(SHL9DEF) \
4744 --dllname $(SHL9TARGET)$(DLLPOST) \
4745 --kill-at \\ > $(MISC)/$(TARGET).$(@:b)_9.cmd
4746 @noop $(assign ALL9OBJLIST:=$(STDOBJ) $(SHL9OBJS) $(SHL9LINKRESO) $(shell $(TYPE) /dev/null $(SHL9LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g))
4747 .IF "$(DEFLIB9NAME)"!="" # do not have to include objs
4748 @noop $(assign DEF9OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB9NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g))
4749 @noop $(foreach,i,$(DEF9OBJLIST) $(assign ALL9OBJLIST:=$(ALL9OBJLIST:s?$i??)))
4750 .ENDIF # "$(DEFLIB9NAME)"!=""
4751 @echo --output-exp $(MISC)/$(@:b)_exp.o \
4752 $(ALL9OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_9.cmd
4753 @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \
4754 $(STDOBJ) $(SHL9VERSIONOBJ) $(SHL9DESCRIPTIONOBJ) $(SHL9OBJS) $(SHL9LINKRESO) \
4755 `$(TYPE) /dev/null $(SHL9LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
4756 -Wl,--exclude-libs,ALL,--start-group $(SHL9STDLIBS) -Wl,--end-group \
4757 $(SHL9STDSHL) $(STDSHL9) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \
4758 -Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_9.cmd
4759 @$(TYPE) $(MISC)/$(TARGET).$(@:b)_9.cmd
4760 @+source $(MISC)/$(TARGET).$(@:b)_9.cmd
4761 .ELSE
4762 .IF "$(linkinc)"==""
4763 .IF "$(SHL9USE_EXPORTS)"!="name"
4764 .IF "$(USE_DEFFILE)"!=""
4765 $(SHL9LINKER) @$(mktmp \
4766 $(SHL9LINKFLAGS) \
4767 $(LINKFLAGSSHL) \
4768 $(SHL9STACK) $(SHL9BASEX) \
4769 -out:$@ \
4770 -map:$(MISC)/$(@:b).map \
4771 -def:$(SHL9DEF) \
4772 $(USE_9IMPLIB) \
4773 $(STDOBJ) \
4774 $(SHL9VERSIONOBJ) $(SHL9OBJS) \
4775 $(SHL9LIBS) \
4776 $(SHL9STDLIBS) \
4777 $(SHL9STDSHL) $(STDSHL9) \
4778 $(SHL9LINKRES) \
4779 ) $(LINKOUTPUTFILTER)
4780 # double check if target was really written... still making sense?
4781 @@$(LS) $@
4782 @echo linking $@.manifest ...
4783 .IF "$(VISTA_MANIFEST)"!=""
4784 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
4785 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
4786 .ELSE
4787 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
4788 .ENDIF # "$(VISTA_MANIFEST)"!=""
4789 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
4790 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
4791 .ELSE # "$(USE_DEFFILE)"!=""
4792 $(COMMAND_ECHO)$(SHL9LINKER) @$(mktmp $(SHL9LINKFLAGS) \
4793 $(LINKFLAGSSHL) $(SHL9BASEX) \
4794 $(SHL9STACK) -out:$(SHL9TARGETN) \
4795 -map:$(MISC)/$(@:B).map \
4796 $(LB)/$(SHL9IMPLIB).exp \
4797 $(STDOBJ) \
4798 $(SHL9OBJS) $(SHL9VERSIONOBJ) \
4799 $(SHL9LIBS) \
4800 $(SHL9STDLIBS) \
4801 $(SHL9STDSHL) $(STDSHL9) \
4802 $(SHL9LINKRES) \
4803 ) $(LINKOUTPUTFILTER)
4804 # double check if target was really written... still making sense?
4805 @@$(LS) $@
4806 @echo linking $@.manifest ...
4807 .IF "$(VISTA_MANIFEST)"!=""
4808 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
4809 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
4810 .ELSE
4811 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
4812 .ENDIF # "$(VISTA_MANIFEST)"!=""
4813 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
4814 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
4815 .ENDIF # "$(USE_DEFFILE)"!=""
4816 .ELSE # "$(SHL9USE_EXPORTS)"!="name"
4817 $(COMMAND_ECHO)$(SHL9LINKER) @$(mktmp $(SHL9LINKFLAGS) \
4818 $(LINKFLAGSSHL) $(SHL9BASEX) \
4819 $(SHL9STACK) -out:$(SHL9TARGETN) \
4820 -map:$(MISC)/$(@:B).map \
4821 $(USE_9IMPLIB) \
4822 $(STDOBJ) \
4823 $(SHL9OBJS) $(SHL9VERSIONOBJ)) \
4824 $(SHL9LINKLISTPARAM) \
4825 @$(mktmp $(SHL9STDLIBS) \
4826 $(SHL9STDSHL) $(STDSHL9) \
4827 $(SHL9LINKRES) \
4829 @echo linking $@.manifest ...
4830 .IF "$(VISTA_MANIFEST)"!=""
4831 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
4832 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
4833 .ELSE
4834 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
4835 .ENDIF # "$(VISTA_MANIFEST)"!=""
4836 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
4837 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
4838 .ENDIF # "$(SHL9USE_EXPORTS)"!="name"
4839 .ELSE # "$(linkinc)"==""
4840 $(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL9TARGET).lnk
4841 $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL9TARGET).lst
4842 $(COMMAND_ECHO)$(TYPE) $(mktmp \
4843 $(SHL9LINKFLAGS) \
4844 $(LINKFLAGSSHL) $(SHL9BASEX) \
4845 $(SHL9STACK) $(MAPFILE) \
4846 -out:$@ \
4847 $(LB)/$(SHL9IMPLIB).exp \
4848 $(STDOBJ) \
4849 $(SHL9OBJS) \
4850 $(SHL9STDLIBS) \
4851 $(SHL9STDSHL) $(STDSHL9) \
4852 $(SHL9LINKRES) \
4853 ) >> $(MISC)/$(SHL9TARGET).lnk
4854 $(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL9TARGETN:b)_linkinc.ls >> $(MISC)/$(SHL9TARGET).lnk
4855 $(COMMAND_ECHO)$(SHL9LINKER) @$(MISC)/$(SHL9TARGET).lnk
4856 @echo linking $@.manifest ...
4857 .IF "$(VISTA_MANIFEST)"!=""
4858 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
4859 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
4860 .ELSE
4861 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
4862 .ENDIF # "$(VISTA_MANIFEST)"!=""
4863 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
4864 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
4865 .ENDIF # "$(linkinc)"==""
4866 .ENDIF # "$(COM)"=="GCC"
4867 .ENDIF # "$(GUI)" == "WNT"
4868 .IF "$(GUI)"=="UNX"
4869 .IF "$(OS)"=="MACOSX"
4870 @-$(RM) $(MISC)/$(@:b).list
4871 @-$(RM) $(MISC)/$(TARGET).$(@:b)_9.cmd
4872 @echo $(STDSLO) $(SHL9OBJS:s/.obj/.o/) \
4873 $(SHL9VERSIONOBJ) \
4874 `cat /dev/null $(SHL9LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list
4875 @echo -n $(SHL9LINKER) $(SHL9LINKFLAGS) $(SHL9VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \
4876 $(SHL9STDLIBS) $(SHL9ARCHIVES) $(SHL9STDSHL) $(STDSHL9) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_9.cmd
4877 @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \
4878 `cat $(MISC)/$(TARGET).$(@:b)_9.cmd` \
4879 >> $(MISC)/$(TARGET).$(@:b)_9.cmd
4880 .IF "$(VERBOSE)" == "TRUE"
4881 @cat $(MISC)/$(TARGET).$(@:b)_9.cmd
4882 .ENDIF
4883 @+source $(MISC)/$(TARGET).$(@:b)_9.cmd
4884 @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \
4885 shl $(SHL9RPATH) $@
4886 @echo "Making: " $(@:f).jnilib
4887 @macosx-create-bundle $@
4888 .IF "$(UPDATER)"=="YES"
4889 .IF "$(SHL9NOCHECK)"==""
4890 $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS9) $(SHL9TARGETN)
4891 .ENDIF # "$(SHL9NOCHECK)"!=""
4892 .ENDIF
4893 .ELSE # "$(OS)"=="MACOSX"
4894 @-$(RM) $(MISC)/$(TARGET).$(@:b)_9.cmd
4895 @echo $(SHL9LINKER) $(SHL9LINKFLAGS) $(SHL9SONAME) $(LINKFLAGSSHL) $(SHL9VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL9OBJS:s/.obj/.o/) \
4896 $(SHL9VERSIONOBJ) -o $@ \
4897 `cat /dev/null $(SHL9LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
4898 $(SHL9STDLIBS) $(SHL9ARCHIVES) $(SHL9STDSHL) $(STDSHL9) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_9.cmd
4899 .IF "$(VERBOSE)" == "TRUE"
4900 @cat $(MISC)/$(TARGET).$(@:b)_9.cmd
4901 .ENDIF
4902 @+source $(MISC)/$(TARGET).$(@:b)_9.cmd
4903 .IF "$(UPDATER)"=="YES"
4904 .IF "$(SHL9NOCHECK)"==""
4905 $(COMMAND_ECHO)-$(RM) $(SHL9TARGETN:d)check_$(SHL9TARGETN:f)
4906 $(COMMAND_ECHO)$(RENAME) $(SHL9TARGETN) $(SHL9TARGETN:d)check_$(SHL9TARGETN:f)
4907 .IF "$(VERBOSE)"=="TRUE"
4908 $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS9) $(SHL9TARGETN:d)check_$(SHL9TARGETN:f)
4909 .ELSE
4910 $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS9) -- -s $(SHL9TARGETN:d)check_$(SHL9TARGETN:f)
4911 .ENDIF
4912 .ENDIF # "$(SHL9NOCHECK)"!=""
4913 .ENDIF # "$(UPDATER)"=="YES"
4914 .ENDIF # "$(OS)"=="MACOSX"
4915 .IF "$(UNIXVERSIONNAMES)"!=""
4916 $(COMMAND_ECHO)$(RM) $(LB)/$(SHL9TARGETN:b)
4917 $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL9TARGETN:f) $(SHL9TARGETN:b)
4918 .ENDIF # "$(UNIXVERSIONNAMES)"!=""
4919 .IF "$(VERBOSE)" == "TRUE"
4920 @ls -l $@
4921 .ENDIF
4922 .ENDIF # "$(GUI)" == "UNX"
4924 .IF "$(GUI)" == "OS2"
4926 .IF "$(SHL9DEFAULTRES)"!=""
4927 @+-$(RM) $(MISC)/$(SHL9DEFAULTRES:b).rc >& $(NULLDEV)
4928 .IF "$(SHL9ICON)" != ""
4929 @-+echo 1 ICON $(SHL9ICON) >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4930 .ENDIF
4931 .IF "$(use_shl_versions)" != ""
4932 .IF "$(SHL9ADD_VERINFO)"!=""
4933 @-+echo $(EMQ)#include $(EMQ)"$(SHL9ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4934 .ENDIF # "$(SHL9ADD_VERINFO)"!=""
4935 @-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4936 # @-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4937 .ENDIF # "$(use_shl_versions)" != ""
4938 # YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR)
4939 $(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL9DEFAULTRES:b).rc
4940 .ENDIF # "$(SHL9DEFAULTRES)"!=""
4942 .IF "$(SHL9ALLRES)"!=""
4943 $(COMMAND_ECHO)+$(TYPE) $(SHL9ALLRES) > $(SHL9LINKRES)
4944 .ENDIF # "$(SHL9ALLRES)"!=""
4946 .IF "$(USE_DEFFILE)"!=""
4948 $(COMMAND_ECHO)$(SHL9LINKER) $(SHL9LINKFLAGS) $(LINKFLAGSSHL) -o $@ \
4949 $(SHL9DEF) \
4950 $(STDOBJ) \
4951 -L$(LB) \
4952 -L$(SOLARVERSION)/$(INPATH)/lib \
4953 $(SHL9OBJS) $(SHL9VERSIONOBJ) \
4954 $(SHL9LIBS) \
4955 $(SHL9STDLIBS:^"-l") \
4956 $(SHL9LINKRES) \
4957 $(SHL9STDSHL:^"-l") $(STDSHL9:^"-l")
4959 .ELSE # "$(USE_DEFFILE)"!=""
4961 $(COMMAND_ECHO)$(SHL9LINKER) -v $(SHL9LINKFLAGS) \
4962 $(LINKFLAGSSHL) $(SHL9BASEX) \
4963 $(SHL9STACK) -o $(SHL9TARGETN) \
4964 $(SHL9DEF) \
4965 $(STDOBJ) \
4966 -L$(LB) \
4967 -L$(SOLARVERSION)/$(INPATH)/lib \
4968 $(SHL9OBJS) $(SHL9VERSIONOBJ) \
4969 $(SHL9LIBS) \
4970 $(SHL9STDLIBS:^"-l") \
4971 $(SHL9LINKRES) \
4972 $(SHL9STDSHL:^"-l") $(STDSHL9:^"-l") \
4973 $(LINKOUTPUTFILTER)
4974 @$(LS) $@ >& $(NULLDEV)
4976 .ENDIF # "$(USE_DEFFILE)"!=""
4978 .IF "$(SHL9TARGET8)" != "$(SHL9TARGET)"
4979 $(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL9TARGET8).dll
4980 .ENDIF
4982 .ENDIF # "$(GUI)" == "OS2"
4985 .IF "$(TESTDIR)"!=""
4986 .IF "$(NO_TESTS)"==""
4988 ALLTAR : runtest_$(SHL9TARGET)
4990 runtest_$(SHL9TARGET) : $(SHL9TARGETN)
4991 testshl $(SHL9TARGETN) sce/$(SHL9TARGET).sce -msg -skip
4992 .ENDIF # "$(NO_TESTS)"==""
4993 .ENDIF # "$(TESTDIR)"!=""
4994 .ENDIF # "$(SHL9TARGETN)"!=""
4996 # unroll begin
4998 .IF "$(SHL10TARGETN)"!=""
5000 .IF "$(OS)"=="AIX"
5001 SHL10STDLIBS=
5002 .ENDIF
5004 .IF "$(SHLLINKARCONLY)" != ""
5005 SHL10STDLIBS=
5006 STDSHL=
5007 .ELSE
5008 SHL10ARCHIVES=
5009 .ENDIF
5011 # decide how to link
5012 .IF "$(SHL10CODETYPE)"=="C"
5013 SHL10LINKER=$(LINKC)
5014 SHL10STDSHL=$(subst,CPPRUNTIME, $(STDSHL))
5015 SHL10LINKFLAGS+=$(LINKCFLAGS)
5016 .ELSE # "$(SHL10CODETYPE)"=="C"
5017 SHL10LINKER=$(LINK)
5018 SHL10STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL))
5019 SHL10LINKFLAGS+=$(LINKFLAGS)
5020 .ENDIF # "$(SHL10CODETYPE)"=="C"
5022 SHL10RPATH*=OOO
5023 LINKFLAGSRUNPATH_$(SHL10RPATH)*=/ERROR:/Bad_SHL10RPATH_value
5024 SHL10LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL10RPATH))
5026 .IF "$(SHL10USE_EXPORTS)"==""
5027 SHL10DEF*=$(MISC)/$(SHL10TARGET).def
5028 .ENDIF # "$(SHL10USE_EXPORTS)"==""
5030 EXTRALIBPATHS10=$(EXTRALIBPATHS)
5031 .IF "$(UPDATER)"=="YES"
5032 .IF "$(SHL10NOCHECK)"==""
5033 .IF "$(SOLAR_STLLIBPATH)"!=""
5034 EXTRALIBPATHS10+=-L$(SOLAR_STLLIBPATH)
5035 .ENDIF
5036 .ENDIF # "$(SHL10NOCHECK)"!=""
5037 .ENDIF
5038 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5039 #+++++++++++ version object ++++++++++++++++++++++++++++++++++++++++
5040 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5042 .IF "$(L10N_framework)"==""
5043 .IF "$(VERSIONOBJ)"!=""
5044 SHL10VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL10TARGET))}$(VERSIONOBJ:f)
5045 USE_VERSIONH:=$(INCCOM)/$(SHL10VERSIONOBJ:b).h
5046 .IF "$(GUI)" == "UNX"
5047 SHL10VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL10TARGET))}$(VERSIONOBJ:f:s/.o/.obj/)
5048 .ELSE # "$(GUI)" == "UNX"
5049 SHL10VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL10TARGET))}$(VERSIONOBJ:f)
5050 .ENDIF # "$(GUI)" == "UNX"
5051 $(MISC)/$(SHL10VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL10VERSIONOBJ:b).h
5052 # $(COPY) $(SOLARENV)/src/version.c $@
5053 $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL10VERSIONOBJ:b).h/ > $@
5055 .INIT : $(SHL10VERSIONOBJDEP)
5056 .ENDIF # "$(VERSIONOBJ)"!=""
5057 .ENDIF
5059 .IF "$(GUI)" != "UNX"
5060 .IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
5061 .IF "$(SHL10IMPLIB)" == ""
5062 SHL10IMPLIB=i$(TARGET)_t10
5063 .ENDIF # "$(SHL10IMPLIB)" == ""
5064 .IF "$(COM)" != "GCC"
5065 USE_10IMPLIB=-implib:$(LB)/$(SHL10IMPLIB).lib
5066 .ENDIF # "$(COM)" != "GCC"
5067 SHL10IMPLIBN=$(LB)/$(SHL10IMPLIB).lib
5068 ALLTAR : $(SHL10IMPLIBN)
5070 .IF "$(USE_DEFFILE)"==""
5071 USE_10IMPLIB_DEPS=$(LB)/$(SHL10IMPLIB).lib
5072 .ENDIF # "$(USE_DEFFILE)"==""
5073 .ENDIF # "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
5074 USE_SHL10DEF=$(SHL10DEF)
5075 .ELSE # "$(GUI)" != "UNX"
5076 USE_SHL10DEF=
5077 SHL10DEPN+:=$(SHL10DEPNU)
5079 .IF "$(SHL10VERSIONMAP)"==""
5080 # to activate vmaps remove "#"
5081 USE_SHL10VERSIONMAP=$(MISC)/$(SHL10TARGET).vmap
5082 .ENDIF # "$(SHL10VERSIONMAP)"==""
5084 .IF "$(USE_SHL10VERSIONMAP)"!=""
5086 .IF "$(SHL10FILTERFILE)"!=""
5087 .IF "$(SHL10VERSIONMAP)"!=""
5088 #eine von beiden ist zuviel
5089 USE_SHL10VERSIONMAP=$(MISC)/$(SHL10TARGET).vmap
5090 $(USE_SHL10VERSIONMAP) .PHONY:
5091 @echo -----------------------------
5092 @echo you should only use versionmap OR exportfile
5093 @echo -----------------------------
5094 # force_dmake_to_error
5096 .ENDIF # "$(SHL10VERSIONMAP)"!=""
5098 .IF "$(OS)"!="IRIX"
5099 SHL10VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL10VERSIONMAP)
5100 .ENDIF
5102 $(USE_SHL10VERSIONMAP): \
5103 $(SHL10OBJS)\
5104 $(SHL10LIBS)\
5105 $(SHL10FILTERFILE)
5106 @$(RM) $@.dump
5107 .IF "$(SHL10OBJS)"!=""
5108 # dump remaining objects on the fly
5109 .IF "$(OS)"=="MACOSX"
5110 @-nm $(SHL10OBJS:s/.obj/.o/) > $@.dump
5111 .ELSE
5112 @nm $(SHL10OBJS:s/.obj/.o/) > $@.dump
5113 .ENDIF
5114 .ENDIF # "$(SHL10OBJS)!"=""
5115 @$(TYPE) /dev/null $(SHL10LIBS:s/.lib/.dump/) >> $@.dump
5116 $(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL10INTERFACE) -f $(SHL10FILTERFILE) -m $@
5118 .ELSE # "$(SHL10FILTERFILE)"!=""
5119 USE_SHL10VERSIONMAP=$(MISC)/$(SHL10TARGET).vmap
5120 $(USE_SHL10VERSIONMAP) :
5121 .IF "$(VERBOSE)" == "TRUE"
5122 @echo -----------------------------
5123 @echo SHL10FILTERFILE not set!
5124 @echo -----------------------------
5125 @$(TOUCH) $@
5126 @echo dummy file to keep the dependencies for later use.
5127 .ELSE
5128 @$(TOUCH) $@
5129 .ENDIF
5130 # force_dmake_to_error
5131 .ENDIF # "$(SHL10FILTERFILE)"!=""
5132 .ELSE # "$(USE_SHL10VERSIONMAP)"!=""
5134 #and now for the plain non-generic way...
5135 .IF "$(SHL10VERSIONMAP)"!=""
5136 USE_SHL10VERSIONMAP=$(MISC)/$(SHL10VERSIONMAP:b)_$(SHL10TARGET)$(SHL10VERSIONMAP:e)
5137 .IF "$(OS)"!="IRIX"
5138 SHL10VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL10VERSIONMAP)
5139 .ENDIF
5141 .IF "$(OS)"=="MACOSX"
5142 $(USE_SHL10VERSIONMAP): $(SHL10OBJS) $(SHL10LIBS)
5143 .ENDIF
5145 $(USE_SHL10VERSIONMAP): $(SHL10VERSIONMAP)
5146 @@-$(RM) -f $@
5147 # The following files will only be generated and needed on Mac OS X as temporary files
5148 # in order to generate exported symbols list out of Linux/Solaris map files
5149 .IF "$(OS)"=="MACOSX"
5150 @-$(RM) -f $@.symregexp >& $(NULLDEV)
5151 @-$(RM) -f $@.expsymlist >& $(NULLDEV)
5152 .ENDIF
5153 # Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what
5154 # happens if somebody will change it in the future
5155 .IF "$(COMID)"=="gcc3"
5156 $(COMMAND_ECHO) tr -d "\015" < $(SHL10VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@
5157 .ELIF "$(COMNAME)"=="sunpro5"
5158 $(COMMAND_ECHO) tr -d "\015" < $(SHL10VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@
5159 .ELSE # "$(COMID)"=="gcc3"
5160 $(COMMAND_ECHO) tr -d "\015" < $(SHL10VERSIONMAP) > $@
5161 .ENDIF # "$(COMID)"=="gcc3"
5162 @chmod a+w $@
5163 # Mac OS X post-processing generate an exported symbols list from the generated map file
5164 # for details on exported symbols list see man ld on Mac OS X
5165 .IF "$(OS)"=="MACOSX"
5166 @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols
5167 @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp
5168 # Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
5169 # Extract RTTI symbols from all the objects that will be used to build a shared library
5170 .IF "$(SHL10OBJS)"!=""
5171 -echo $(foreach,i,$(SHL10OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
5172 .ENDIF
5173 .IF "$(SHL10LIBS)"!=""
5174 $(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL10LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
5175 .ENDIF
5176 # overwrite the map file generate into the local output tree with the generated
5177 # exported symbols list
5178 cp $@.exported-symbols $@
5179 .ENDIF # .IF "$(OS)"=="MACOSX"
5180 .ENDIF # "$(SHL10VERSIONMAP)"!=""
5181 .ENDIF # "$(USE_SHL10VERSIONMAP)"!=""
5182 .ENDIF # "$(GUI)" != "UNX"
5184 .IF "$(UNIXVERSIONNAMES)"!=""
5185 .IF "$(OS)"!="MACOSX"
5186 .IF "$(GUI)"=="UNX"
5187 .IF "$(OS)"=="IRIX"
5188 SHL10SONAME=$(SONAME_SWITCH)$(SHL10TARGETN:f)
5189 .ELSE
5190 SHL10SONAME=\"$(SONAME_SWITCH)$(SHL10TARGETN:f)\"
5191 .ENDIF
5192 .ENDIF # "$(GUI)"!="UNX"
5193 .ENDIF # "$(OS)"!="MACOSX"
5194 .ENDIF # "$(UNIXVERSIONNAMES)"!=""
5196 .IF "$(SHL10RES)"!=""
5197 SHL10ALLRES+=$(SHL10RES)
5198 SHL10LINKRES*=$(MISC)/$(SHL10TARGET).res
5199 SHL10LINKRESO*=$(MISC)/$(SHL10TARGET)_res.o
5200 .ENDIF # "$(SHL10RES)"!=""
5202 .IF "$(SHL10DEFAULTRES)$(use_shl_versions)"!=""
5203 SHL10DEFAULTRES*=$(MISC)/$(SHL10TARGET)_def.res
5204 SHL10ALLRES+=$(SHL10DEFAULTRES)
5205 SHL10LINKRES*=$(MISC)/$(SHL10TARGET).res
5206 SHL10LINKRESO*=$(MISC)/$(SHL10TARGET)_res.o
5207 .ENDIF # "$(SHL10DEFAULTRES)$(use_shl_versions)"!=""
5209 #.IF "$(SHL10TARGETN)"!=""
5211 .IF "$(linkinc)"!=""
5212 .IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
5213 .IF "$(SHL10LIBS)"!=""
5214 $(MISC)/$(SHL10TARGET)_linkinc.ls .PHONY:
5215 @@-$(RM) $@
5216 $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL10LIBS) $(i:s/.lib/.lin/)) >> $@
5217 .ENDIF # "$(SHL10LIBS)"!=""
5218 .ENDIF
5220 LINKINCTARGETS+=$(MISC)/$(SHL10TARGETN:b)_linkinc.ls
5221 $(SHL10TARGETN) : $(LINKINCTARGETS)
5223 .ELSE
5224 .IF "$(SHL10USE_EXPORTS)"=="name"
5225 .IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
5226 .IF "$(COM)"!="GCC"
5227 .IF "$(SHL10LIBS)"!=""
5228 SHL10LINKLIST=$(MISC)/$(SHL10TARGET)_link.lst
5229 SHL10LINKLISTPARAM=@$(SHL10LINKLIST)
5230 $(SHL10LINKLIST) : $(SHL10LIBS)
5231 @@-$(RM) $@
5232 $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL10LIBS) $(i:s/.lib/.lin/)) >> $@
5233 .ENDIF # "$(SHL10LIBS)"!=""
5234 .ENDIF # "$(COM)"!="GCC"
5235 .ENDIF
5236 .ENDIF # "$(SHL10USE_EXPORTS)"=="name"
5238 $(MISC)/%linkinc.ls:
5239 @echo . > $@
5240 .ENDIF # "$(linkinc)"!=""
5242 .IF "$(GUI)" == "OS2"
5243 #21/02/2006 YD dll names must be 8.3, invoke fix script
5244 #check osl/os2/module.c/osl_loadModule()
5245 SHL10TARGET8=$(shell @fix_shl $(SHL10TARGET))
5246 .ENDIF
5248 .IF "$(GUI)" == "OS2"
5249 _SHL10IMP_ORD = $(SHL10STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(SHL10STDLIBS:^"$(LB)/")
5250 SHL10IMP_ORD = $(foreach,i,$(_SHL10IMP_ORD) $(shell @-ls $i))
5251 .ELSE
5252 SHL10IMP_ORD =
5253 .ENDIF
5256 $(SHL10TARGETN) : \
5257 $(SHL10OBJS)\
5258 $(SHL10LIBS)\
5259 $(USE_10IMPLIB_DEPS)\
5260 $(USE_SHL10DEF)\
5261 $(USE_SHL10VERSIONMAP)\
5262 $(SHL10RES)\
5263 $(SHL10DEPN) \
5264 $(SHL10IMP_ORD) \
5265 $(SHL10LINKLIST)
5266 .IF "$(VERBOSE)" == "TRUE"
5267 @echo ------------------------------
5268 .ENDIF
5269 @echo "Making: " $(@:f)
5270 .IF "$(GUI)" == "WNT"
5271 .IF "$(SHL10DEFAULTRES)"!=""
5272 @@-$(RM) $(MISC)/$(SHL10DEFAULTRES:b).rc
5273 .IF "$(SHL10ICON)" != ""
5274 @echo 1 ICON $(SHL10ICON) >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5275 .ENDIF
5276 .IF "$(use_shl_versions)" != ""
5277 .IF "$(SHL10ADD_VERINFO)"!=""
5278 @echo $(EMQ)#include $(EMQ)"$(SHL10ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5279 .ELSE # "$(SHL10ADD_VERINFO)"!=""
5280 @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5281 @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5282 @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5283 .ENDIF # "$(SHL10ADD_VERINFO)"!=""
5284 @echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5285 @echo $(EMQ)#define ORG_NAME $(SHL10TARGET)$(DLLPOST) >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5286 @echo $(EMQ)#define INTERNAL_NAME $(SHL10TARGET:b) >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5287 @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5288 .ENDIF # "$(use_shl_versions)" != ""
5289 $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL10DEFAULTRES:b).rc
5290 .ENDIF # "$(SHL10DEFAULTRES)"!=""
5291 .IF "$(SHL10ALLRES)"!=""
5292 $(COMMAND_ECHO)$(TYPE) $(SHL10ALLRES) > $(SHL10LINKRES)
5293 .IF "$(COM)"=="GCC"
5294 windres $(SHL10LINKRES) $(SHL10LINKRESO)
5295 .ENDIF # "$(COM)"=="GCC"
5296 .ENDIF # "$(SHL10ALLRES)"!=""
5297 .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def
5298 @echo dlltool --input-def $(SHL10DEF) \
5299 --dllname $(SHL10TARGET)$(DLLPOST) \
5300 --kill-at \\ > $(MISC)/$(TARGET).$(@:b)_10.cmd
5301 @noop $(assign ALL10OBJLIST:=$(STDOBJ) $(SHL10OBJS) $(SHL10LINKRESO) $(shell $(TYPE) /dev/null $(SHL10LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g))
5302 .IF "$(DEFLIB10NAME)"!="" # do not have to include objs
5303 @noop $(assign DEF10OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB10NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g))
5304 @noop $(foreach,i,$(DEF10OBJLIST) $(assign ALL10OBJLIST:=$(ALL10OBJLIST:s?$i??)))
5305 .ENDIF # "$(DEFLIB10NAME)"!=""
5306 @echo --output-exp $(MISC)/$(@:b)_exp.o \
5307 $(ALL10OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_10.cmd
5308 @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \
5309 $(STDOBJ) $(SHL10VERSIONOBJ) $(SHL10DESCRIPTIONOBJ) $(SHL10OBJS) $(SHL10LINKRESO) \
5310 `$(TYPE) /dev/null $(SHL10LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
5311 -Wl,--exclude-libs,ALL,--start-group $(SHL10STDLIBS) -Wl,--end-group \
5312 $(SHL10STDSHL) $(STDSHL10) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \
5313 -Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_10.cmd
5314 @$(TYPE) $(MISC)/$(TARGET).$(@:b)_10.cmd
5315 @+source $(MISC)/$(TARGET).$(@:b)_10.cmd
5316 .ELSE
5317 .IF "$(linkinc)"==""
5318 .IF "$(SHL10USE_EXPORTS)"!="name"
5319 .IF "$(USE_DEFFILE)"!=""
5320 $(SHL10LINKER) @$(mktmp \
5321 $(SHL10LINKFLAGS) \
5322 $(LINKFLAGSSHL) \
5323 $(SHL10STACK) $(SHL10BASEX) \
5324 -out:$@ \
5325 -map:$(MISC)/$(@:b).map \
5326 -def:$(SHL10DEF) \
5327 $(USE_10IMPLIB) \
5328 $(STDOBJ) \
5329 $(SHL10VERSIONOBJ) $(SHL10OBJS) \
5330 $(SHL10LIBS) \
5331 $(SHL10STDLIBS) \
5332 $(SHL10STDSHL) $(STDSHL10) \
5333 $(SHL10LINKRES) \
5334 ) $(LINKOUTPUTFILTER)
5335 # double check if target was really written... still making sense?
5336 @@$(LS) $@
5337 @echo linking $@.manifest ...
5338 .IF "$(VISTA_MANIFEST)"!=""
5339 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
5340 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
5341 .ELSE
5342 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
5343 .ENDIF # "$(VISTA_MANIFEST)"!=""
5344 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
5345 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
5346 .ELSE # "$(USE_DEFFILE)"!=""
5347 $(COMMAND_ECHO)$(SHL10LINKER) @$(mktmp $(SHL10LINKFLAGS) \
5348 $(LINKFLAGSSHL) $(SHL10BASEX) \
5349 $(SHL10STACK) -out:$(SHL10TARGETN) \
5350 -map:$(MISC)/$(@:B).map \
5351 $(LB)/$(SHL10IMPLIB).exp \
5352 $(STDOBJ) \
5353 $(SHL10OBJS) $(SHL10VERSIONOBJ) \
5354 $(SHL10LIBS) \
5355 $(SHL10STDLIBS) \
5356 $(SHL10STDSHL) $(STDSHL10) \
5357 $(SHL10LINKRES) \
5358 ) $(LINKOUTPUTFILTER)
5359 # double check if target was really written... still making sense?
5360 @@$(LS) $@
5361 @echo linking $@.manifest ...
5362 .IF "$(VISTA_MANIFEST)"!=""
5363 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
5364 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
5365 .ELSE
5366 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
5367 .ENDIF # "$(VISTA_MANIFEST)"!=""
5368 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
5369 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
5370 .ENDIF # "$(USE_DEFFILE)"!=""
5371 .ELSE # "$(SHL10USE_EXPORTS)"!="name"
5372 $(COMMAND_ECHO)$(SHL10LINKER) @$(mktmp $(SHL10LINKFLAGS) \
5373 $(LINKFLAGSSHL) $(SHL10BASEX) \
5374 $(SHL10STACK) -out:$(SHL10TARGETN) \
5375 -map:$(MISC)/$(@:B).map \
5376 $(USE_10IMPLIB) \
5377 $(STDOBJ) \
5378 $(SHL10OBJS) $(SHL10VERSIONOBJ)) \
5379 $(SHL10LINKLISTPARAM) \
5380 @$(mktmp $(SHL10STDLIBS) \
5381 $(SHL10STDSHL) $(STDSHL10) \
5382 $(SHL10LINKRES) \
5384 @echo linking $@.manifest ...
5385 .IF "$(VISTA_MANIFEST)"!=""
5386 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
5387 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
5388 .ELSE
5389 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
5390 .ENDIF # "$(VISTA_MANIFEST)"!=""
5391 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
5392 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
5393 .ENDIF # "$(SHL10USE_EXPORTS)"!="name"
5394 .ELSE # "$(linkinc)"==""
5395 $(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL10TARGET).lnk
5396 $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL10TARGET).lst
5397 $(COMMAND_ECHO)$(TYPE) $(mktmp \
5398 $(SHL10LINKFLAGS) \
5399 $(LINKFLAGSSHL) $(SHL10BASEX) \
5400 $(SHL10STACK) $(MAPFILE) \
5401 -out:$@ \
5402 $(LB)/$(SHL10IMPLIB).exp \
5403 $(STDOBJ) \
5404 $(SHL10OBJS) \
5405 $(SHL10STDLIBS) \
5406 $(SHL10STDSHL) $(STDSHL10) \
5407 $(SHL10LINKRES) \
5408 ) >> $(MISC)/$(SHL10TARGET).lnk
5409 $(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL10TARGETN:b)_linkinc.ls >> $(MISC)/$(SHL10TARGET).lnk
5410 $(COMMAND_ECHO)$(SHL10LINKER) @$(MISC)/$(SHL10TARGET).lnk
5411 @echo linking $@.manifest ...
5412 .IF "$(VISTA_MANIFEST)"!=""
5413 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
5414 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
5415 .ELSE
5416 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
5417 .ENDIF # "$(VISTA_MANIFEST)"!=""
5418 $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
5419 $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
5420 .ENDIF # "$(linkinc)"==""
5421 .ENDIF # "$(COM)"=="GCC"
5422 .ENDIF # "$(GUI)" == "WNT"
5423 .IF "$(GUI)"=="UNX"
5424 .IF "$(OS)"=="MACOSX"
5425 @-$(RM) $(MISC)/$(@:b).list
5426 @-$(RM) $(MISC)/$(TARGET).$(@:b)_10.cmd
5427 @echo $(STDSLO) $(SHL10OBJS:s/.obj/.o/) \
5428 $(SHL10VERSIONOBJ) \
5429 `cat /dev/null $(SHL10LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list
5430 @echo -n $(SHL10LINKER) $(SHL10LINKFLAGS) $(SHL10VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \
5431 $(SHL10STDLIBS) $(SHL10ARCHIVES) $(SHL10STDSHL) $(STDSHL10) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_10.cmd
5432 @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \
5433 `cat $(MISC)/$(TARGET).$(@:b)_10.cmd` \
5434 >> $(MISC)/$(TARGET).$(@:b)_10.cmd
5435 .IF "$(VERBOSE)" == "TRUE"
5436 @cat $(MISC)/$(TARGET).$(@:b)_10.cmd
5437 .ENDIF
5438 @+source $(MISC)/$(TARGET).$(@:b)_10.cmd
5439 @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \
5440 shl $(SHL10RPATH) $@
5441 @echo "Making: " $(@:f).jnilib
5442 @macosx-create-bundle $@
5443 .IF "$(UPDATER)"=="YES"
5444 .IF "$(SHL10NOCHECK)"==""
5445 $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS10) $(SHL10TARGETN)
5446 .ENDIF # "$(SHL10NOCHECK)"!=""
5447 .ENDIF
5448 .ELSE # "$(OS)"=="MACOSX"
5449 @-$(RM) $(MISC)/$(TARGET).$(@:b)_10.cmd
5450 @echo $(SHL10LINKER) $(SHL10LINKFLAGS) $(SHL10SONAME) $(LINKFLAGSSHL) $(SHL10VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL10OBJS:s/.obj/.o/) \
5451 $(SHL10VERSIONOBJ) -o $@ \
5452 `cat /dev/null $(SHL10LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
5453 $(SHL10STDLIBS) $(SHL10ARCHIVES) $(SHL10STDSHL) $(STDSHL10) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_10.cmd
5454 .IF "$(VERBOSE)" == "TRUE"
5455 @cat $(MISC)/$(TARGET).$(@:b)_10.cmd
5456 .ENDIF
5457 @+source $(MISC)/$(TARGET).$(@:b)_10.cmd
5458 .IF "$(UPDATER)"=="YES"
5459 .IF "$(SHL10NOCHECK)"==""
5460 $(COMMAND_ECHO)-$(RM) $(SHL10TARGETN:d)check_$(SHL10TARGETN:f)
5461 $(COMMAND_ECHO)$(RENAME) $(SHL10TARGETN) $(SHL10TARGETN:d)check_$(SHL10TARGETN:f)
5462 .IF "$(VERBOSE)"=="TRUE"
5463 $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS10) $(SHL10TARGETN:d)check_$(SHL10TARGETN:f)
5464 .ELSE
5465 $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS10) -- -s $(SHL10TARGETN:d)check_$(SHL10TARGETN:f)
5466 .ENDIF
5467 .ENDIF # "$(SHL10NOCHECK)"!=""
5468 .ENDIF # "$(UPDATER)"=="YES"
5469 .ENDIF # "$(OS)"=="MACOSX"
5470 .IF "$(UNIXVERSIONNAMES)"!=""
5471 $(COMMAND_ECHO)$(RM) $(LB)/$(SHL10TARGETN:b)
5472 $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL10TARGETN:f) $(SHL10TARGETN:b)
5473 .ENDIF # "$(UNIXVERSIONNAMES)"!=""
5474 .IF "$(VERBOSE)" == "TRUE"
5475 @ls -l $@
5476 .ENDIF
5477 .ENDIF # "$(GUI)" == "UNX"
5479 .IF "$(GUI)" == "OS2"
5481 .IF "$(SHL10DEFAULTRES)"!=""
5482 @+-$(RM) $(MISC)/$(SHL10DEFAULTRES:b).rc >& $(NULLDEV)
5483 .IF "$(SHL10ICON)" != ""
5484 @-+echo 1 ICON $(SHL10ICON) >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5485 .ENDIF
5486 .IF "$(use_shl_versions)" != ""
5487 .IF "$(SHL10ADD_VERINFO)"!=""
5488 @-+echo $(EMQ)#include $(EMQ)"$(SHL10ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5489 .ENDIF # "$(SHL10ADD_VERINFO)"!=""
5490 @-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5491 # @-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5492 .ENDIF # "$(use_shl_versions)" != ""
5493 # YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR)
5494 $(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL10DEFAULTRES:b).rc
5495 .ENDIF # "$(SHL10DEFAULTRES)"!=""
5497 .IF "$(SHL10ALLRES)"!=""
5498 $(COMMAND_ECHO)+$(TYPE) $(SHL10ALLRES) > $(SHL10LINKRES)
5499 .ENDIF # "$(SHL10ALLRES)"!=""
5501 .IF "$(USE_DEFFILE)"!=""
5503 $(COMMAND_ECHO)$(SHL10LINKER) $(SHL10LINKFLAGS) $(LINKFLAGSSHL) -o $@ \
5504 $(SHL10DEF) \
5505 $(STDOBJ) \
5506 -L$(LB) \
5507 -L$(SOLARVERSION)/$(INPATH)/lib \
5508 $(SHL10OBJS) $(SHL10VERSIONOBJ) \
5509 $(SHL10LIBS) \
5510 $(SHL10STDLIBS:^"-l") \
5511 $(SHL10LINKRES) \
5512 $(SHL10STDSHL:^"-l") $(STDSHL10:^"-l")
5514 .ELSE # "$(USE_DEFFILE)"!=""
5516 $(COMMAND_ECHO)$(SHL10LINKER) -v $(SHL10LINKFLAGS) \
5517 $(LINKFLAGSSHL) $(SHL10BASEX) \
5518 $(SHL10STACK) -o $(SHL10TARGETN) \
5519 $(SHL10DEF) \
5520 $(STDOBJ) \
5521 -L$(LB) \
5522 -L$(SOLARVERSION)/$(INPATH)/lib \
5523 $(SHL10OBJS) $(SHL10VERSIONOBJ) \
5524 $(SHL10LIBS) \
5525 $(SHL10STDLIBS:^"-l") \
5526 $(SHL10LINKRES) \
5527 $(SHL10STDSHL:^"-l") $(STDSHL10:^"-l") \
5528 $(LINKOUTPUTFILTER)
5529 @$(LS) $@ >& $(NULLDEV)
5531 .ENDIF # "$(USE_DEFFILE)"!=""
5533 .IF "$(SHL10TARGET8)" != "$(SHL10TARGET)"
5534 $(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL10TARGET8).dll
5535 .ENDIF
5537 .ENDIF # "$(GUI)" == "OS2"
5540 .IF "$(TESTDIR)"!=""
5541 .IF "$(NO_TESTS)"==""
5543 ALLTAR : runtest_$(SHL10TARGET)
5545 runtest_$(SHL10TARGET) : $(SHL10TARGETN)
5546 testshl $(SHL10TARGETN) sce/$(SHL10TARGET).sce -msg -skip
5547 .ENDIF # "$(NO_TESTS)"==""
5548 .ENDIF # "$(TESTDIR)"!=""
5549 .ENDIF # "$(SHL10TARGETN)"!=""
5551 # unroll begin
5553 .IF "$(SHL1IMPLIBN)" != ""
5555 .IF "$(UPDATER)"=="YES"
5556 USELIB1DEPN+=$(SHL1LIBS)
5557 .ELSE
5558 .ENDIF
5560 .IF "$(USE_DEFFILE)"!=""
5561 USE_SHL1TARGET=$(SHL1TARGETN)
5562 .ENDIF
5564 .IF "$(GUI)" != "UNX"
5565 $(SHL1IMPLIBN): \
5566 $(SHL1DEF) \
5567 $(USE_SHL1TARGET) \
5568 $(USELIB1DEPN) \
5569 $(USELIBDEPN)
5570 .ELSE
5571 $(SHL1IMPLIBN): \
5572 $(SHL1LIBS)
5573 .ENDIF
5574 .IF "$(VERBOSE)" == "TRUE"
5575 @echo -------------------------------
5576 .ENDIF
5577 @echo "Making: " $(@:f)
5578 .IF "$(GUI)" == "WNT"
5579 .IF "$(COM)"=="GCC"
5580 @echo no ImportLibs on mingw
5581 @-$(RM) $@
5582 @$(TOUCH) $@
5583 .ELSE # "$(COM)=="GCC"
5584 # bei use_deffile implib von linker erstellt
5585 .IF "$(USE_DEFFILE)"==""
5586 $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL1IMPLIBN) \
5587 -def:$(SHL1DEF) )
5588 .ELSE # "$(USE_DEFFILE)==""
5589 @echo build of $(SHL1TARGETN) creates $@
5590 @$(TOUCH) $@
5591 .ENDIF # "$(USE_DEFFILE)==""
5592 .ENDIF # "$(COM)"=="GCC"
5594 .ELIF "$(GUI)" == "OS2"
5596 # touch creates an empty file, but this is not good for emxomfar, so
5597 # create a dummy lib here
5598 $(COMMAND_ECHO)-$(LIBMGR) $(LIBFLAGS) $@ $(SHL1VERSIONOBJ)
5599 +@echo build of $(SHL1TARGETN) creates $@
5601 .ELSE
5602 @echo no ImportLibs on Mac and *ix
5603 @-$(RM) $@
5604 @$(TOUCH) $@
5605 .ENDIF
5606 .ENDIF
5608 # unroll begin
5610 .IF "$(SHL2IMPLIBN)" != ""
5612 .IF "$(UPDATER)"=="YES"
5613 USELIB2DEPN+=$(SHL2LIBS)
5614 .ELSE
5615 .ENDIF
5617 .IF "$(USE_DEFFILE)"!=""
5618 USE_SHL2TARGET=$(SHL2TARGETN)
5619 .ENDIF
5621 .IF "$(GUI)" != "UNX"
5622 $(SHL2IMPLIBN): \
5623 $(SHL2DEF) \
5624 $(USE_SHL2TARGET) \
5625 $(USELIB2DEPN) \
5626 $(USELIBDEPN)
5627 .ELSE
5628 $(SHL2IMPLIBN): \
5629 $(SHL2LIBS)
5630 .ENDIF
5631 .IF "$(VERBOSE)" == "TRUE"
5632 @echo -------------------------------
5633 .ENDIF
5634 @echo "Making: " $(@:f)
5635 .IF "$(GUI)" == "WNT"
5636 .IF "$(COM)"=="GCC"
5637 @echo no ImportLibs on mingw
5638 @-$(RM) $@
5639 @$(TOUCH) $@
5640 .ELSE # "$(COM)=="GCC"
5641 # bei use_deffile implib von linker erstellt
5642 .IF "$(USE_DEFFILE)"==""
5643 $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL2IMPLIBN) \
5644 -def:$(SHL2DEF) )
5645 .ELSE # "$(USE_DEFFILE)==""
5646 @echo build of $(SHL2TARGETN) creates $@
5647 @$(TOUCH) $@
5648 .ENDIF # "$(USE_DEFFILE)==""
5649 .ENDIF # "$(COM)"=="GCC"
5651 .ELIF "$(GUI)" == "OS2"
5653 # touch creates an empty file, but this is not good for emxomfar, so
5654 # create a dummy lib here
5655 $(COMMAND_ECHO)-$(LIBMGR) $(LIBFLAGS) $@ $(SHL2VERSIONOBJ)
5656 +@echo build of $(SHL2TARGETN) creates $@
5658 .ELSE
5659 @echo no ImportLibs on Mac and *ix
5660 @-$(RM) $@
5661 @$(TOUCH) $@
5662 .ENDIF
5663 .ENDIF
5665 # unroll begin
5667 .IF "$(SHL3IMPLIBN)" != ""
5669 .IF "$(UPDATER)"=="YES"
5670 USELIB3DEPN+=$(SHL3LIBS)
5671 .ELSE
5672 .ENDIF
5674 .IF "$(USE_DEFFILE)"!=""
5675 USE_SHL3TARGET=$(SHL3TARGETN)
5676 .ENDIF
5678 .IF "$(GUI)" != "UNX"
5679 $(SHL3IMPLIBN): \
5680 $(SHL3DEF) \
5681 $(USE_SHL3TARGET) \
5682 $(USELIB3DEPN) \
5683 $(USELIBDEPN)
5684 .ELSE
5685 $(SHL3IMPLIBN): \
5686 $(SHL3LIBS)
5687 .ENDIF
5688 .IF "$(VERBOSE)" == "TRUE"
5689 @echo -------------------------------
5690 .ENDIF
5691 @echo "Making: " $(@:f)
5692 .IF "$(GUI)" == "WNT"
5693 .IF "$(COM)"=="GCC"
5694 @echo no ImportLibs on mingw
5695 @-$(RM) $@
5696 @$(TOUCH) $@
5697 .ELSE # "$(COM)=="GCC"
5698 # bei use_deffile implib von linker erstellt
5699 .IF "$(USE_DEFFILE)"==""
5700 $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL3IMPLIBN) \
5701 -def:$(SHL3DEF) )
5702 .ELSE # "$(USE_DEFFILE)==""
5703 @echo build of $(SHL3TARGETN) creates $@
5704 @$(TOUCH) $@
5705 .ENDIF # "$(USE_DEFFILE)==""
5706 .ENDIF # "$(COM)"=="GCC"
5708 .ELIF "$(GUI)" == "OS2"
5710 # touch creates an empty file, but this is not good for emxomfar, so
5711 # create a dummy lib here
5712 $(COMMAND_ECHO)-$(LIBMGR) $(LIBFLAGS) $@ $(SHL3VERSIONOBJ)
5713 +@echo build of $(SHL3TARGETN) creates $@
5715 .ELSE
5716 @echo no ImportLibs on Mac and *ix
5717 @-$(RM) $@
5718 @$(TOUCH) $@
5719 .ENDIF
5720 .ENDIF
5722 # unroll begin
5724 .IF "$(SHL4IMPLIBN)" != ""
5726 .IF "$(UPDATER)"=="YES"
5727 USELIB4DEPN+=$(SHL4LIBS)
5728 .ELSE
5729 .ENDIF
5731 .IF "$(USE_DEFFILE)"!=""
5732 USE_SHL4TARGET=$(SHL4TARGETN)
5733 .ENDIF
5735 .IF "$(GUI)" != "UNX"
5736 $(SHL4IMPLIBN): \
5737 $(SHL4DEF) \
5738 $(USE_SHL4TARGET) \
5739 $(USELIB4DEPN) \
5740 $(USELIBDEPN)
5741 .ELSE
5742 $(SHL4IMPLIBN): \
5743 $(SHL4LIBS)
5744 .ENDIF
5745 .IF "$(VERBOSE)" == "TRUE"
5746 @echo -------------------------------
5747 .ENDIF
5748 @echo "Making: " $(@:f)
5749 .IF "$(GUI)" == "WNT"
5750 .IF "$(COM)"=="GCC"
5751 @echo no ImportLibs on mingw
5752 @-$(RM) $@
5753 @$(TOUCH) $@
5754 .ELSE # "$(COM)=="GCC"
5755 # bei use_deffile implib von linker erstellt
5756 .IF "$(USE_DEFFILE)"==""
5757 $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL4IMPLIBN) \
5758 -def:$(SHL4DEF) )
5759 .ELSE # "$(USE_DEFFILE)==""
5760 @echo build of $(SHL4TARGETN) creates $@
5761 @$(TOUCH) $@
5762 .ENDIF # "$(USE_DEFFILE)==""
5763 .ENDIF # "$(COM)"=="GCC"
5765 .ELIF "$(GUI)" == "OS2"
5767 # touch creates an empty file, but this is not good for emxomfar, so
5768 # create a dummy lib here
5769 $(COMMAND_ECHO)-$(LIBMGR) $(LIBFLAGS) $@ $(SHL4VERSIONOBJ)
5770 +@echo build of $(SHL4TARGETN) creates $@
5772 .ELSE
5773 @echo no ImportLibs on Mac and *ix
5774 @-$(RM) $@
5775 @$(TOUCH) $@
5776 .ENDIF
5777 .ENDIF
5779 # unroll begin
5781 .IF "$(SHL5IMPLIBN)" != ""
5783 .IF "$(UPDATER)"=="YES"
5784 USELIB5DEPN+=$(SHL5LIBS)
5785 .ELSE
5786 .ENDIF
5788 .IF "$(USE_DEFFILE)"!=""
5789 USE_SHL5TARGET=$(SHL5TARGETN)
5790 .ENDIF
5792 .IF "$(GUI)" != "UNX"
5793 $(SHL5IMPLIBN): \
5794 $(SHL5DEF) \
5795 $(USE_SHL5TARGET) \
5796 $(USELIB5DEPN) \
5797 $(USELIBDEPN)
5798 .ELSE
5799 $(SHL5IMPLIBN): \
5800 $(SHL5LIBS)
5801 .ENDIF
5802 .IF "$(VERBOSE)" == "TRUE"
5803 @echo -------------------------------
5804 .ENDIF
5805 @echo "Making: " $(@:f)
5806 .IF "$(GUI)" == "WNT"
5807 .IF "$(COM)"=="GCC"
5808 @echo no ImportLibs on mingw
5809 @-$(RM) $@
5810 @$(TOUCH) $@
5811 .ELSE # "$(COM)=="GCC"
5812 # bei use_deffile implib von linker erstellt
5813 .IF "$(USE_DEFFILE)"==""
5814 $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL5IMPLIBN) \
5815 -def:$(SHL5DEF) )
5816 .ELSE # "$(USE_DEFFILE)==""
5817 @echo build of $(SHL5TARGETN) creates $@
5818 @$(TOUCH) $@
5819 .ENDIF # "$(USE_DEFFILE)==""
5820 .ENDIF # "$(COM)"=="GCC"
5822 .ELIF "$(GUI)" == "OS2"
5824 # touch creates an empty file, but this is not good for emxomfar, so
5825 # create a dummy lib here
5826 $(COMMAND_ECHO)-$(LIBMGR) $(LIBFLAGS) $@ $(SHL5VERSIONOBJ)
5827 +@echo build of $(SHL5TARGETN) creates $@
5829 .ELSE
5830 @echo no ImportLibs on Mac and *ix
5831 @-$(RM) $@
5832 @$(TOUCH) $@
5833 .ENDIF
5834 .ENDIF
5836 # unroll begin
5838 .IF "$(SHL6IMPLIBN)" != ""
5840 .IF "$(UPDATER)"=="YES"
5841 USELIB6DEPN+=$(SHL6LIBS)
5842 .ELSE
5843 .ENDIF
5845 .IF "$(USE_DEFFILE)"!=""
5846 USE_SHL6TARGET=$(SHL6TARGETN)
5847 .ENDIF
5849 .IF "$(GUI)" != "UNX"
5850 $(SHL6IMPLIBN): \
5851 $(SHL6DEF) \
5852 $(USE_SHL6TARGET) \
5853 $(USELIB6DEPN) \
5854 $(USELIBDEPN)
5855 .ELSE
5856 $(SHL6IMPLIBN): \
5857 $(SHL6LIBS)
5858 .ENDIF
5859 .IF "$(VERBOSE)" == "TRUE"
5860 @echo -------------------------------
5861 .ENDIF
5862 @echo "Making: " $(@:f)
5863 .IF "$(GUI)" == "WNT"
5864 .IF "$(COM)"=="GCC"
5865 @echo no ImportLibs on mingw
5866 @-$(RM) $@
5867 @$(TOUCH) $@
5868 .ELSE # "$(COM)=="GCC"
5869 # bei use_deffile implib von linker erstellt
5870 .IF "$(USE_DEFFILE)"==""
5871 $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL6IMPLIBN) \
5872 -def:$(SHL6DEF) )
5873 .ELSE # "$(USE_DEFFILE)==""
5874 @echo build of $(SHL6TARGETN) creates $@
5875 @$(TOUCH) $@
5876 .ENDIF # "$(USE_DEFFILE)==""
5877 .ENDIF # "$(COM)"=="GCC"
5879 .ELIF "$(GUI)" == "OS2"
5881 # touch creates an empty file, but this is not good for emxomfar, so
5882 # create a dummy lib here
5883 $(COMMAND_ECHO)-$(LIBMGR) $(LIBFLAGS) $@ $(SHL6VERSIONOBJ)
5884 +@echo build of $(SHL6TARGETN) creates $@
5886 .ELSE
5887 @echo no ImportLibs on Mac and *ix
5888 @-$(RM) $@
5889 @$(TOUCH) $@
5890 .ENDIF
5891 .ENDIF
5893 # unroll begin
5895 .IF "$(SHL7IMPLIBN)" != ""
5897 .IF "$(UPDATER)"=="YES"
5898 USELIB7DEPN+=$(SHL7LIBS)
5899 .ELSE
5900 .ENDIF
5902 .IF "$(USE_DEFFILE)"!=""
5903 USE_SHL7TARGET=$(SHL7TARGETN)
5904 .ENDIF
5906 .IF "$(GUI)" != "UNX"
5907 $(SHL7IMPLIBN): \
5908 $(SHL7DEF) \
5909 $(USE_SHL7TARGET) \
5910 $(USELIB7DEPN) \
5911 $(USELIBDEPN)
5912 .ELSE
5913 $(SHL7IMPLIBN): \
5914 $(SHL7LIBS)
5915 .ENDIF
5916 .IF "$(VERBOSE)" == "TRUE"
5917 @echo -------------------------------
5918 .ENDIF
5919 @echo "Making: " $(@:f)
5920 .IF "$(GUI)" == "WNT"
5921 .IF "$(COM)"=="GCC"
5922 @echo no ImportLibs on mingw
5923 @-$(RM) $@
5924 @$(TOUCH) $@
5925 .ELSE # "$(COM)=="GCC"
5926 # bei use_deffile implib von linker erstellt
5927 .IF "$(USE_DEFFILE)"==""
5928 $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL7IMPLIBN) \
5929 -def:$(SHL7DEF) )
5930 .ELSE # "$(USE_DEFFILE)==""
5931 @echo build of $(SHL7TARGETN) creates $@
5932 @$(TOUCH) $@
5933 .ENDIF # "$(USE_DEFFILE)==""
5934 .ENDIF # "$(COM)"=="GCC"
5936 .ELIF "$(GUI)" == "OS2"
5938 # touch creates an empty file, but this is not good for emxomfar, so
5939 # create a dummy lib here
5940 $(COMMAND_ECHO)-$(LIBMGR) $(LIBFLAGS) $@ $(SHL7VERSIONOBJ)
5941 +@echo build of $(SHL7TARGETN) creates $@
5943 .ELSE
5944 @echo no ImportLibs on Mac and *ix
5945 @-$(RM) $@
5946 @$(TOUCH) $@
5947 .ENDIF
5948 .ENDIF
5950 # unroll begin
5952 .IF "$(SHL8IMPLIBN)" != ""
5954 .IF "$(UPDATER)"=="YES"
5955 USELIB8DEPN+=$(SHL8LIBS)
5956 .ELSE
5957 .ENDIF
5959 .IF "$(USE_DEFFILE)"!=""
5960 USE_SHL8TARGET=$(SHL8TARGETN)
5961 .ENDIF
5963 .IF "$(GUI)" != "UNX"
5964 $(SHL8IMPLIBN): \
5965 $(SHL8DEF) \
5966 $(USE_SHL8TARGET) \
5967 $(USELIB8DEPN) \
5968 $(USELIBDEPN)
5969 .ELSE
5970 $(SHL8IMPLIBN): \
5971 $(SHL8LIBS)
5972 .ENDIF
5973 .IF "$(VERBOSE)" == "TRUE"
5974 @echo -------------------------------
5975 .ENDIF
5976 @echo "Making: " $(@:f)
5977 .IF "$(GUI)" == "WNT"
5978 .IF "$(COM)"=="GCC"
5979 @echo no ImportLibs on mingw
5980 @-$(RM) $@
5981 @$(TOUCH) $@
5982 .ELSE # "$(COM)=="GCC"
5983 # bei use_deffile implib von linker erstellt
5984 .IF "$(USE_DEFFILE)"==""
5985 $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL8IMPLIBN) \
5986 -def:$(SHL8DEF) )
5987 .ELSE # "$(USE_DEFFILE)==""
5988 @echo build of $(SHL8TARGETN) creates $@
5989 @$(TOUCH) $@
5990 .ENDIF # "$(USE_DEFFILE)==""
5991 .ENDIF # "$(COM)"=="GCC"
5993 .ELIF "$(GUI)" == "OS2"
5995 # touch creates an empty file, but this is not good for emxomfar, so
5996 # create a dummy lib here
5997 $(COMMAND_ECHO)-$(LIBMGR) $(LIBFLAGS) $@ $(SHL8VERSIONOBJ)
5998 +@echo build of $(SHL8TARGETN) creates $@
6000 .ELSE
6001 @echo no ImportLibs on Mac and *ix
6002 @-$(RM) $@
6003 @$(TOUCH) $@
6004 .ENDIF
6005 .ENDIF
6007 # unroll begin
6009 .IF "$(SHL9IMPLIBN)" != ""
6011 .IF "$(UPDATER)"=="YES"
6012 USELIB9DEPN+=$(SHL9LIBS)
6013 .ELSE
6014 .ENDIF
6016 .IF "$(USE_DEFFILE)"!=""
6017 USE_SHL9TARGET=$(SHL9TARGETN)
6018 .ENDIF
6020 .IF "$(GUI)" != "UNX"
6021 $(SHL9IMPLIBN): \
6022 $(SHL9DEF) \
6023 $(USE_SHL9TARGET) \
6024 $(USELIB9DEPN) \
6025 $(USELIBDEPN)
6026 .ELSE
6027 $(SHL9IMPLIBN): \
6028 $(SHL9LIBS)
6029 .ENDIF
6030 .IF "$(VERBOSE)" == "TRUE"
6031 @echo -------------------------------
6032 .ENDIF
6033 @echo "Making: " $(@:f)
6034 .IF "$(GUI)" == "WNT"
6035 .IF "$(COM)"=="GCC"
6036 @echo no ImportLibs on mingw
6037 @-$(RM) $@
6038 @$(TOUCH) $@
6039 .ELSE # "$(COM)=="GCC"
6040 # bei use_deffile implib von linker erstellt
6041 .IF "$(USE_DEFFILE)"==""
6042 $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL9IMPLIBN) \
6043 -def:$(SHL9DEF) )
6044 .ELSE # "$(USE_DEFFILE)==""
6045 @echo build of $(SHL9TARGETN) creates $@
6046 @$(TOUCH) $@
6047 .ENDIF # "$(USE_DEFFILE)==""
6048 .ENDIF # "$(COM)"=="GCC"
6050 .ELIF "$(GUI)" == "OS2"
6052 # touch creates an empty file, but this is not good for emxomfar, so
6053 # create a dummy lib here
6054 $(COMMAND_ECHO)-$(LIBMGR) $(LIBFLAGS) $@ $(SHL9VERSIONOBJ)
6055 +@echo build of $(SHL9TARGETN) creates $@
6057 .ELSE
6058 @echo no ImportLibs on Mac and *ix
6059 @-$(RM) $@
6060 @$(TOUCH) $@
6061 .ENDIF
6062 .ENDIF
6064 # unroll begin
6066 .IF "$(SHL10IMPLIBN)" != ""
6068 .IF "$(UPDATER)"=="YES"
6069 USELIB10DEPN+=$(SHL10LIBS)
6070 .ELSE
6071 .ENDIF
6073 .IF "$(USE_DEFFILE)"!=""
6074 USE_SHL10TARGET=$(SHL10TARGETN)
6075 .ENDIF
6077 .IF "$(GUI)" != "UNX"
6078 $(SHL10IMPLIBN): \
6079 $(SHL10DEF) \
6080 $(USE_SHL10TARGET) \
6081 $(USELIB10DEPN) \
6082 $(USELIBDEPN)
6083 .ELSE
6084 $(SHL10IMPLIBN): \
6085 $(SHL10LIBS)
6086 .ENDIF
6087 .IF "$(VERBOSE)" == "TRUE"
6088 @echo -------------------------------
6089 .ENDIF
6090 @echo "Making: " $(@:f)
6091 .IF "$(GUI)" == "WNT"
6092 .IF "$(COM)"=="GCC"
6093 @echo no ImportLibs on mingw
6094 @-$(RM) $@
6095 @$(TOUCH) $@
6096 .ELSE # "$(COM)=="GCC"
6097 # bei use_deffile implib von linker erstellt
6098 .IF "$(USE_DEFFILE)"==""
6099 $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL10IMPLIBN) \
6100 -def:$(SHL10DEF) )
6101 .ELSE # "$(USE_DEFFILE)==""
6102 @echo build of $(SHL10TARGETN) creates $@
6103 @$(TOUCH) $@
6104 .ENDIF # "$(USE_DEFFILE)==""
6105 .ENDIF # "$(COM)"=="GCC"
6107 .ELIF "$(GUI)" == "OS2"
6109 # touch creates an empty file, but this is not good for emxomfar, so
6110 # create a dummy lib here
6111 $(COMMAND_ECHO)-$(LIBMGR) $(LIBFLAGS) $@ $(SHL10VERSIONOBJ)
6112 +@echo build of $(SHL10TARGETN) creates $@
6114 .ELSE
6115 @echo no ImportLibs on Mac and *ix
6116 @-$(RM) $@
6117 @$(TOUCH) $@
6118 .ENDIF
6119 .ENDIF