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