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