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