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 "$(DEF1TARGETN)"!="" 24 25#to make intuitiv naming work 26.IF "$(DEF1LIBNAME)"!="" 27DEFLIB1NAME*=$(DEF1LIBNAME) 28.ENDIF # "$(DEF1LIBNAME)"!="" 29 30.IF "$(DEFLIB1NAME)"!="" 31DEF1DEPN+=$(foreach,i,$(DEFLIB1NAME) $(SLB)/$(i).lib) 32.ENDIF 33 34.IF "$(SHL1VERSIONMAP)"!="" 35.IF "$(DEF1EXPORTFILE)"=="" 36.IF "$(GUI)"=="WNT" 37DEF1EXPORTFILE=$(MISC)/$(SHL1VERSIONMAP:b)_$(SHL1TARGET).dxp 38.IF "$(COM)"=="GCC" 39$(DEF1EXPORTFILE) : $(SHL1OBJS) $(SHL1LIBS) 40.ENDIF # .IF "$(COM)"=="GCC" 41 42$(DEF1EXPORTFILE) : $(SHL1VERSIONMAP) 43 $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ 44.IF "$(COM)"!="GCC" 45# Wildcards in a version script are a GCC concept -- the GCC branch below 46# pulls them out into a .symbols-regexp and matches them against the real 47# objects. MSVC has no equivalent, and asking link.exe to export a literal 48# "_ZTI*" fails with LNK2001, so drop those lines here. Match "*" alone: 49# every MSVC-mangled C++ name begins with "?", so "[*?]" would drop the lot. 50 $(COMMAND_ECHO)-$(GREP) -v "[*]" $@ > $@.nowild 51 $(COMMAND_ECHO)$(RENAME) $@.nowild $@ 52.ENDIF 53.IF "$(COM)"=="GCC" 54 $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols 55 $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp 56# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS 57# Extract RTTI symbols from all the objects that will be used to build a shared library 58 $(COMMAND_ECHO)nm -gP $(SHL1OBJS) \ 59 `$(TYPE) /dev/null $(foreach,j,$(SHL1LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ 60 | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols 61# overwrite the map file generate into the local output tree with the generated 62# exported symbols list 63 $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@ 64.ENDIF # .IF "$(COM)"=="GCC" 65 66.ENDIF # "$(GUI)"=="WNT" 67 68.IF "$(GUI)"=="OS2" 69DEF1EXPORTFILE=$(MISC)/$(SHL1VERSIONMAP:b)_$(SHL1TARGET).dxp 70$(DEF1EXPORTFILE) : $(SHL1VERSIONMAP) 71 $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ 72.ENDIF # "$(GUI)"=="OS2" 73 74.ENDIF # "$(DEF1EXPORTFILE)"=="" 75.ENDIF # "$(SHL1VERSIONMAP)"!="" 76 77.IF "$(GUI)"=="WNT" 78 79DEF1FILTER=$(SOLARENV)/inc/dummy.flt 80 81RMHACK1:=$(RM) 82 83.IF "$(DEF1CEXP)"!="" 84EXPORT_ALL_SWITCH=-A $(DEF1CEXP) 85.ENDIF 86 87.IF "$(link_always)"=="" 88$(DEF1TARGETN) : \ 89 $(DEF1DEPN) \ 90 $(DEF1EXPORTFILE) 91.ELSE # "$(link_always)"=="" 92$(DEF1TARGETN) .PHONY : 93.ENDIF # "$(link_always)"=="" 94 @-$(RM) $@.tmpfile 95 @echo "Making: module definition file" $(@:f) 96 @echo LIBRARY $(EMQ)"$(SHL1TARGETN:f)$(EMQ)" >$@.tmpfile 97.IF "$(COM)"!="GCC" 98 @echo HEAPSIZE 0 >>$@.tmpfile 99.ENDIF 100 @echo EXPORTS >>$@.tmpfile 101.IF "$(VERSIONOBJ)"!="" 102# getversioninfo fuer alle!! 103 @echo GetVersionInfo >>$@.tmpfile 104.ENDIF 105.IF "$(DEFLIB1NAME)"!="" 106.IF "$(COM)"=="GCC" 107 @-$(RM) $(MISC)/$(SHL1TARGET).exp 108 $(COMMAND_ECHO)dlltool --output-def $(MISC)/$(SHL1TARGET).exp --export-all-symbols \ 109 `$(TYPE) $(foreach,i,$(DEFLIB1NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g` 110 $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL1TARGET).exp | sed '/^;/d' >>$@.tmpfile 111 @-$(RM) $(MISC)/$(SHL1TARGET).exp 112.ELSE 113.IF "$(SHL1USE_EXPORTS)"=="" 114 @-$(RMHACK1) $(MISC)/$(SHL1TARGET).exp 115 @$(SOLARENV)/bin/extract-linker-member.sh $(SLB)/$(DEFLIB1NAME).lib $(MISC)/$(SHL1TARGET).exp 116 @$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL1TARGET).flt $(MISC)/$(SHL1TARGET).exp >>$@.tmpfile 117 $(COMMAND_ECHO)$(RMHACK1) $(MISC)/$(SHL1TARGET).exp 118.ELSE # "$(SHL1USE_EXPORTS)"=="" 119 @$(DUMPBIN) -DIRECTIVES $(foreach,i,$(DEFLIB1NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL1TARGET).direct 120 @$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF1FILTER) $(MISC)/$(SHL1TARGET).direct >>$@.tmpfile 121.ENDIF # "$(SHL1USE_EXPORTS)"=="" 122.ENDIF 123.ENDIF # "$(DEFLIB1NAME)"!="" 124.IF "$(DEF1EXPORT1)"!="" 125 @echo $(DEF1EXPORT1) >>$@.tmpfile 126.ENDIF 127.IF "$(DEF1EXPORT2)"!="" 128 @echo $(DEF1EXPORT2) >>$@.tmpfile 129.ENDIF 130.IF "$(DEF1EXPORT3)"!="" 131 @echo $(DEF1EXPORT3) >>$@.tmpfile 132.ENDIF 133.IF "$(DEF1EXPORT4)"!="" 134 @echo $(DEF1EXPORT4) >>$@.tmpfile 135.ENDIF 136.IF "$(DEF1EXPORT5)"!="" 137 @echo $(DEF1EXPORT5) >>$@.tmpfile 138.ENDIF 139.IF "$(DEF1EXPORT6)"!="" 140 @echo $(DEF1EXPORT6) >>$@.tmpfile 141.ENDIF 142.IF "$(DEF1EXPORT7)"!="" 143 @echo $(DEF1EXPORT7) >>$@.tmpfile 144.ENDIF 145.IF "$(DEF1EXPORT8)"!="" 146 @echo $(DEF1EXPORT8) >>$@.tmpfile 147.ENDIF 148.IF "$(DEF1EXPORT9)"!="" 149 @echo $(DEF1EXPORT9) >>$@.tmpfile 150.ENDIF 151.IF "$(DEF1EXPORT10)"!="" 152 @echo $(DEF1EXPORT10) >>$@.tmpfile 153.ENDIF 154.IF "$(DEF1EXPORT11)"!="" 155 @echo $(DEF1EXPORT11) >>$@.tmpfile 156.ENDIF 157.IF "$(DEF1EXPORT12)"!="" 158 @echo $(DEF1EXPORT12) >>$@.tmpfile 159.ENDIF 160.IF "$(DEF1EXPORT13)"!="" 161 @echo $(DEF1EXPORT13) >>$@.tmpfile 162.ENDIF 163.IF "$(DEF1EXPORT14)"!="" 164 @echo $(DEF1EXPORT14) >>$@.tmpfile 165.ENDIF 166.IF "$(DEF1EXPORT15)"!="" 167 @echo $(DEF1EXPORT15) >>$@.tmpfile 168.ENDIF 169.IF "$(DEF1EXPORT16)"!="" 170 @echo $(DEF1EXPORT16) >>$@.tmpfile 171.ENDIF 172.IF "$(DEF1EXPORT17)"!="" 173 @echo $(DEF1EXPORT17) >>$@.tmpfile 174.ENDIF 175.IF "$(DEF1EXPORT18)"!="" 176 @echo $(DEF1EXPORT18) >>$@.tmpfile 177.ENDIF 178.IF "$(DEF1EXPORT19)"!="" 179 @echo $(DEF1EXPORT19) >>$@.tmpfile 180.ENDIF 181.IF "$(DEF1EXPORT20)"!="" 182 @echo $(DEF1EXPORT20) >>$@.tmpfile 183.ENDIF 184.IF "$(DEF1EXPORTFILE)"!="" 185.IF "$(COM)"=="GCC" 186 $(COMMAND_ECHO)$(TYPE) $(DEF1EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile 187.ELSE 188 $(COMMAND_ECHO)$(TYPE) $(DEF1EXPORTFILE) >> $@.tmpfile 189.ENDIF 190.ENDIF 191 @-$(RM) $@ 192 @$(RENAME) $@.tmpfile $@ 193.ENDIF # "$(GUI)"=="WNT" 194 195.IF "$(GUI)"=="OS2" 196 197#21/02/2006 YD dll names must be 8.3, invoke fix script 198#check osl/os2/module.c/osl_loadModule() 199SHL1TARGET8=$(shell @fix_shl.cmd $(SHL1TARGETN:f)) 200 201DEF1FILTER=$(SOLARENV)/inc/dummy.flt 202DEF1NAMELIST=$(foreach,i,$(DEFLIB1NAME) $(SLB)/$(i).lib) 203 204.IF "$(link_always)"=="" 205$(DEF1TARGETN) : \ 206 $(DEF1DEPN) \ 207 $(DEF1EXPORTFILE) 208.ELSE # "$(link_always)"=="" 209$(DEF1TARGETN) .PHONY : 210.ENDIF # "$(link_always)"=="" 211 @+-$(RM) $@.tmpfile 212 @echo "Making: module definition file" $(@:f) 213 @echo LIBRARY $(SHL1TARGET8) INITINSTANCE TERMINSTANCE >$@.tmpfile 214 @echo DATA MULTIPLE >>$@.tmpfile 215 @echo EXPORTS >>$@.tmpfile 216.IF "$(VERSIONOBJ)"!="" 217# getversioninfo fuer alle!! 218 @echo _GetVersionInfo >$@.tmp_ord 219.ENDIF 220 221.IF "$(DEFLIB1NAME)"!="" 222 @+echo $(SLB)/$(DEFLIB1NAME).lib 223 @+emxexp $(DEF1NAMELIST) | fix_exp_file >> $@.tmp_ord 224.ENDIF # "$(DEFLIB1NAME)"!="" 225 226.IF "$(DEF1EXPORT1)"!="" 227 @echo $(DEF1EXPORT1) >>$@.tmpfile 228.ENDIF 229.IF "$(DEF1EXPORT2)"!="" 230 @echo $(DEF1EXPORT2) >>$@.tmpfile 231.ENDIF 232.IF "$(DEF1EXPORT3)"!="" 233 @echo $(DEF1EXPORT3) >>$@.tmpfile 234.ENDIF 235.IF "$(DEF1EXPORT4)"!="" 236 @echo $(DEF1EXPORT4) >>$@.tmpfile 237.ENDIF 238.IF "$(DEF1EXPORT5)"!="" 239 @echo $(DEF1EXPORT5) >>$@.tmpfile 240.ENDIF 241.IF "$(DEF1EXPORT6)"!="" 242 @echo $(DEF1EXPORT6) >>$@.tmpfile 243.ENDIF 244.IF "$(DEF1EXPORT7)"!="" 245 @echo $(DEF1EXPORT7) >>$@.tmpfile 246.ENDIF 247.IF "$(DEF1EXPORT8)"!="" 248 @echo $(DEF1EXPORT8) >>$@.tmpfile 249.ENDIF 250.IF "$(DEF1EXPORT9)"!="" 251 @echo $(DEF1EXPORT9) >>$@.tmpfile 252.ENDIF 253.IF "$(DEF1EXPORT10)"!="" 254 @echo $(DEF1EXPORT10) >>$@.tmpfile 255.ENDIF 256.IF "$(DEF1EXPORT11)"!="" 257 @echo $(DEF1EXPORT11) >>$@.tmpfile 258.ENDIF 259.IF "$(DEF1EXPORT12)"!="" 260 @echo $(DEF1EXPORT12) >>$@.tmpfile 261.ENDIF 262.IF "$(DEF1EXPORT13)"!="" 263 @echo $(DEF1EXPORT13) >>$@.tmpfile 264.ENDIF 265.IF "$(DEF1EXPORT14)"!="" 266 @echo $(DEF1EXPORT14) >>$@.tmpfile 267.ENDIF 268.IF "$(DEF1EXPORT15)"!="" 269 @echo $(DEF1EXPORT15) >>$@.tmpfile 270.ENDIF 271.IF "$(DEF1EXPORT16)"!="" 272 @echo $(DEF1EXPORT16) >>$@.tmpfile 273.ENDIF 274.IF "$(DEF1EXPORT17)"!="" 275 @echo $(DEF1EXPORT17) >>$@.tmpfile 276.ENDIF 277.IF "$(DEF1EXPORT18)"!="" 278 @echo $(DEF1EXPORT18) >>$@.tmpfile 279.ENDIF 280.IF "$(DEF1EXPORT19)"!="" 281 @echo $(DEF1EXPORT19) >>$@.tmpfile 282.ENDIF 283.IF "$(DEF1EXPORT20)"!="" 284 @echo $(DEF1EXPORT20) >>$@.tmpfile 285.ENDIF 286.IF "$(DEF1EXPORTFILE)"!="" 287 @fix_def_file < $(DEF1EXPORTFILE) >> $@.tmp_ord 288.ENDIF 289 @sort < $@.tmp_ord | uniq > $@.exptmpfile 290 @fix_def_ord < $@.exptmpfile >> $@.tmpfile 291 @+-$(RM) $@ 292 $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@ 293 @+-$(RM) $@.tmp_ord 294 @+-$(RM) $@.exptmpfile 295.IF "$(SHL1USE_EXPORTS)"=="" || "$(SHL1USE_EXPORTS)"=="ordinal" 296#03/11/2012 if 'name' is not used, export from def file (with ordinals) 297 @echo Build import library from DEF file. 298 @+-$(RM) $(LB)/$(SHL1TARGETN:b).lib 299 $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(LB)/$(SHL1TARGETN:b).lib $@ 300.ENDIF # "$(SHL1USE_EXPORTS)"=="" 301 302.ENDIF # "$(GUI)"=="OS2" 303 304.IF "$(GUI)"=="UNX" 305$(DEF1TARGETN): \ 306 $(DEF1DEPN) \ 307 $(DEF1EXPORTFILE) 308 @echo just a dummy for UNIX > $@ 309.ENDIF 310.ENDIF # "$(DEF1TARGETN)"!="" 311 312 313# Anweisungen fuer das Linken 314# unroll begin 315 316.IF "$(DEF2TARGETN)"!="" 317 318#to make intuitiv naming work 319.IF "$(DEF2LIBNAME)"!="" 320DEFLIB2NAME*=$(DEF2LIBNAME) 321.ENDIF # "$(DEF2LIBNAME)"!="" 322 323.IF "$(DEFLIB2NAME)"!="" 324DEF2DEPN+=$(foreach,i,$(DEFLIB2NAME) $(SLB)/$(i).lib) 325.ENDIF 326 327.IF "$(SHL2VERSIONMAP)"!="" 328.IF "$(DEF2EXPORTFILE)"=="" 329.IF "$(GUI)"=="WNT" 330DEF2EXPORTFILE=$(MISC)/$(SHL2VERSIONMAP:b)_$(SHL2TARGET).dxp 331.IF "$(COM)"=="GCC" 332$(DEF2EXPORTFILE) : $(SHL2OBJS) $(SHL2LIBS) 333.ENDIF # .IF "$(COM)"=="GCC" 334 335$(DEF2EXPORTFILE) : $(SHL2VERSIONMAP) 336 $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ 337.IF "$(COM)"!="GCC" 338# Wildcards in a version script are a GCC concept -- the GCC branch below 339# pulls them out into a .symbols-regexp and matches them against the real 340# objects. MSVC has no equivalent, and asking link.exe to export a literal 341# "_ZTI*" fails with LNK2001, so drop those lines here. Match "*" alone: 342# every MSVC-mangled C++ name begins with "?", so "[*?]" would drop the lot. 343 $(COMMAND_ECHO)-$(GREP) -v "[*]" $@ > $@.nowild 344 $(COMMAND_ECHO)$(RENAME) $@.nowild $@ 345.ENDIF 346.IF "$(COM)"=="GCC" 347 $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols 348 $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp 349# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS 350# Extract RTTI symbols from all the objects that will be used to build a shared library 351 $(COMMAND_ECHO)nm -gP $(SHL2OBJS) \ 352 `$(TYPE) /dev/null $(foreach,j,$(SHL2LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ 353 | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols 354# overwrite the map file generate into the local output tree with the generated 355# exported symbols list 356 $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@ 357.ENDIF # .IF "$(COM)"=="GCC" 358 359.ENDIF # "$(GUI)"=="WNT" 360 361.IF "$(GUI)"=="OS2" 362DEF2EXPORTFILE=$(MISC)/$(SHL2VERSIONMAP:b)_$(SHL2TARGET).dxp 363$(DEF2EXPORTFILE) : $(SHL2VERSIONMAP) 364 $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ 365.ENDIF # "$(GUI)"=="OS2" 366 367.ENDIF # "$(DEF2EXPORTFILE)"=="" 368.ENDIF # "$(SHL2VERSIONMAP)"!="" 369 370.IF "$(GUI)"=="WNT" 371 372DEF2FILTER=$(SOLARENV)/inc/dummy.flt 373 374RMHACK2:=$(RM) 375 376.IF "$(DEF2CEXP)"!="" 377EXPORT_ALL_SWITCH=-A $(DEF2CEXP) 378.ENDIF 379 380.IF "$(link_always)"=="" 381$(DEF2TARGETN) : \ 382 $(DEF2DEPN) \ 383 $(DEF2EXPORTFILE) 384.ELSE # "$(link_always)"=="" 385$(DEF2TARGETN) .PHONY : 386.ENDIF # "$(link_always)"=="" 387 @-$(RM) $@.tmpfile 388 @echo "Making: module definition file" $(@:f) 389 @echo LIBRARY $(EMQ)"$(SHL2TARGETN:f)$(EMQ)" >$@.tmpfile 390.IF "$(COM)"!="GCC" 391 @echo HEAPSIZE 0 >>$@.tmpfile 392.ENDIF 393 @echo EXPORTS >>$@.tmpfile 394.IF "$(VERSIONOBJ)"!="" 395# getversioninfo fuer alle!! 396 @echo GetVersionInfo >>$@.tmpfile 397.ENDIF 398.IF "$(DEFLIB2NAME)"!="" 399.IF "$(COM)"=="GCC" 400 @-$(RM) $(MISC)/$(SHL2TARGET).exp 401 $(COMMAND_ECHO)dlltool --output-def $(MISC)/$(SHL2TARGET).exp --export-all-symbols \ 402 `$(TYPE) $(foreach,i,$(DEFLIB2NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g` 403 $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL2TARGET).exp | sed '/^;/d' >>$@.tmpfile 404 @-$(RM) $(MISC)/$(SHL2TARGET).exp 405.ELSE 406.IF "$(SHL2USE_EXPORTS)"=="" 407 @-$(RMHACK2) $(MISC)/$(SHL2TARGET).exp 408 @$(SOLARENV)/bin/extract-linker-member.sh $(SLB)/$(DEFLIB2NAME).lib $(MISC)/$(SHL2TARGET).exp 409 @$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL2TARGET).flt $(MISC)/$(SHL2TARGET).exp >>$@.tmpfile 410 $(COMMAND_ECHO)$(RMHACK2) $(MISC)/$(SHL2TARGET).exp 411.ELSE # "$(SHL2USE_EXPORTS)"=="" 412 @$(DUMPBIN) -DIRECTIVES $(foreach,i,$(DEFLIB2NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL2TARGET).direct 413 @$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF2FILTER) $(MISC)/$(SHL2TARGET).direct >>$@.tmpfile 414.ENDIF # "$(SHL2USE_EXPORTS)"=="" 415.ENDIF 416.ENDIF # "$(DEFLIB2NAME)"!="" 417.IF "$(DEF2EXPORT1)"!="" 418 @echo $(DEF2EXPORT1) >>$@.tmpfile 419.ENDIF 420.IF "$(DEF2EXPORT2)"!="" 421 @echo $(DEF2EXPORT2) >>$@.tmpfile 422.ENDIF 423.IF "$(DEF2EXPORT3)"!="" 424 @echo $(DEF2EXPORT3) >>$@.tmpfile 425.ENDIF 426.IF "$(DEF2EXPORT4)"!="" 427 @echo $(DEF2EXPORT4) >>$@.tmpfile 428.ENDIF 429.IF "$(DEF2EXPORT5)"!="" 430 @echo $(DEF2EXPORT5) >>$@.tmpfile 431.ENDIF 432.IF "$(DEF2EXPORT6)"!="" 433 @echo $(DEF2EXPORT6) >>$@.tmpfile 434.ENDIF 435.IF "$(DEF2EXPORT7)"!="" 436 @echo $(DEF2EXPORT7) >>$@.tmpfile 437.ENDIF 438.IF "$(DEF2EXPORT8)"!="" 439 @echo $(DEF2EXPORT8) >>$@.tmpfile 440.ENDIF 441.IF "$(DEF2EXPORT9)"!="" 442 @echo $(DEF2EXPORT9) >>$@.tmpfile 443.ENDIF 444.IF "$(DEF2EXPORT10)"!="" 445 @echo $(DEF2EXPORT10) >>$@.tmpfile 446.ENDIF 447.IF "$(DEF2EXPORT11)"!="" 448 @echo $(DEF2EXPORT11) >>$@.tmpfile 449.ENDIF 450.IF "$(DEF2EXPORT12)"!="" 451 @echo $(DEF2EXPORT12) >>$@.tmpfile 452.ENDIF 453.IF "$(DEF2EXPORT13)"!="" 454 @echo $(DEF2EXPORT13) >>$@.tmpfile 455.ENDIF 456.IF "$(DEF2EXPORT14)"!="" 457 @echo $(DEF2EXPORT14) >>$@.tmpfile 458.ENDIF 459.IF "$(DEF2EXPORT15)"!="" 460 @echo $(DEF2EXPORT15) >>$@.tmpfile 461.ENDIF 462.IF "$(DEF2EXPORT16)"!="" 463 @echo $(DEF2EXPORT16) >>$@.tmpfile 464.ENDIF 465.IF "$(DEF2EXPORT17)"!="" 466 @echo $(DEF2EXPORT17) >>$@.tmpfile 467.ENDIF 468.IF "$(DEF2EXPORT18)"!="" 469 @echo $(DEF2EXPORT18) >>$@.tmpfile 470.ENDIF 471.IF "$(DEF2EXPORT19)"!="" 472 @echo $(DEF2EXPORT19) >>$@.tmpfile 473.ENDIF 474.IF "$(DEF2EXPORT20)"!="" 475 @echo $(DEF2EXPORT20) >>$@.tmpfile 476.ENDIF 477.IF "$(DEF2EXPORTFILE)"!="" 478.IF "$(COM)"=="GCC" 479 $(COMMAND_ECHO)$(TYPE) $(DEF2EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile 480.ELSE 481 $(COMMAND_ECHO)$(TYPE) $(DEF2EXPORTFILE) >> $@.tmpfile 482.ENDIF 483.ENDIF 484 @-$(RM) $@ 485 @$(RENAME) $@.tmpfile $@ 486.ENDIF # "$(GUI)"=="WNT" 487 488.IF "$(GUI)"=="OS2" 489 490#21/02/2006 YD dll names must be 8.3, invoke fix script 491#check osl/os2/module.c/osl_loadModule() 492SHL2TARGET8=$(shell @fix_shl.cmd $(SHL2TARGETN:f)) 493 494DEF2FILTER=$(SOLARENV)/inc/dummy.flt 495DEF2NAMELIST=$(foreach,i,$(DEFLIB2NAME) $(SLB)/$(i).lib) 496 497.IF "$(link_always)"=="" 498$(DEF2TARGETN) : \ 499 $(DEF2DEPN) \ 500 $(DEF2EXPORTFILE) 501.ELSE # "$(link_always)"=="" 502$(DEF2TARGETN) .PHONY : 503.ENDIF # "$(link_always)"=="" 504 @+-$(RM) $@.tmpfile 505 @echo "Making: module definition file" $(@:f) 506 @echo LIBRARY $(SHL2TARGET8) INITINSTANCE TERMINSTANCE >$@.tmpfile 507 @echo DATA MULTIPLE >>$@.tmpfile 508 @echo EXPORTS >>$@.tmpfile 509.IF "$(VERSIONOBJ)"!="" 510# getversioninfo fuer alle!! 511 @echo _GetVersionInfo >$@.tmp_ord 512.ENDIF 513 514.IF "$(DEFLIB2NAME)"!="" 515 @+echo $(SLB)/$(DEFLIB2NAME).lib 516 @+emxexp $(DEF2NAMELIST) | fix_exp_file >> $@.tmp_ord 517.ENDIF # "$(DEFLIB2NAME)"!="" 518 519.IF "$(DEF2EXPORT1)"!="" 520 @echo $(DEF2EXPORT1) >>$@.tmpfile 521.ENDIF 522.IF "$(DEF2EXPORT2)"!="" 523 @echo $(DEF2EXPORT2) >>$@.tmpfile 524.ENDIF 525.IF "$(DEF2EXPORT3)"!="" 526 @echo $(DEF2EXPORT3) >>$@.tmpfile 527.ENDIF 528.IF "$(DEF2EXPORT4)"!="" 529 @echo $(DEF2EXPORT4) >>$@.tmpfile 530.ENDIF 531.IF "$(DEF2EXPORT5)"!="" 532 @echo $(DEF2EXPORT5) >>$@.tmpfile 533.ENDIF 534.IF "$(DEF2EXPORT6)"!="" 535 @echo $(DEF2EXPORT6) >>$@.tmpfile 536.ENDIF 537.IF "$(DEF2EXPORT7)"!="" 538 @echo $(DEF2EXPORT7) >>$@.tmpfile 539.ENDIF 540.IF "$(DEF2EXPORT8)"!="" 541 @echo $(DEF2EXPORT8) >>$@.tmpfile 542.ENDIF 543.IF "$(DEF2EXPORT9)"!="" 544 @echo $(DEF2EXPORT9) >>$@.tmpfile 545.ENDIF 546.IF "$(DEF2EXPORT10)"!="" 547 @echo $(DEF2EXPORT10) >>$@.tmpfile 548.ENDIF 549.IF "$(DEF2EXPORT11)"!="" 550 @echo $(DEF2EXPORT11) >>$@.tmpfile 551.ENDIF 552.IF "$(DEF2EXPORT12)"!="" 553 @echo $(DEF2EXPORT12) >>$@.tmpfile 554.ENDIF 555.IF "$(DEF2EXPORT13)"!="" 556 @echo $(DEF2EXPORT13) >>$@.tmpfile 557.ENDIF 558.IF "$(DEF2EXPORT14)"!="" 559 @echo $(DEF2EXPORT14) >>$@.tmpfile 560.ENDIF 561.IF "$(DEF2EXPORT15)"!="" 562 @echo $(DEF2EXPORT15) >>$@.tmpfile 563.ENDIF 564.IF "$(DEF2EXPORT16)"!="" 565 @echo $(DEF2EXPORT16) >>$@.tmpfile 566.ENDIF 567.IF "$(DEF2EXPORT17)"!="" 568 @echo $(DEF2EXPORT17) >>$@.tmpfile 569.ENDIF 570.IF "$(DEF2EXPORT18)"!="" 571 @echo $(DEF2EXPORT18) >>$@.tmpfile 572.ENDIF 573.IF "$(DEF2EXPORT19)"!="" 574 @echo $(DEF2EXPORT19) >>$@.tmpfile 575.ENDIF 576.IF "$(DEF2EXPORT20)"!="" 577 @echo $(DEF2EXPORT20) >>$@.tmpfile 578.ENDIF 579.IF "$(DEF2EXPORTFILE)"!="" 580 @fix_def_file < $(DEF2EXPORTFILE) >> $@.tmp_ord 581.ENDIF 582 @sort < $@.tmp_ord | uniq > $@.exptmpfile 583 @fix_def_ord < $@.exptmpfile >> $@.tmpfile 584 @+-$(RM) $@ 585 $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@ 586 @+-$(RM) $@.tmp_ord 587 @+-$(RM) $@.exptmpfile 588.IF "$(SHL2USE_EXPORTS)"=="" || "$(SHL2USE_EXPORTS)"=="ordinal" 589#03/11/2012 if 'name' is not used, export from def file (with ordinals) 590 @echo Build import library from DEF file. 591 @+-$(RM) $(LB)/$(SHL2TARGETN:b).lib 592 $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(LB)/$(SHL2TARGETN:b).lib $@ 593.ENDIF # "$(SHL2USE_EXPORTS)"=="" 594 595.ENDIF # "$(GUI)"=="OS2" 596 597.IF "$(GUI)"=="UNX" 598$(DEF2TARGETN): \ 599 $(DEF2DEPN) \ 600 $(DEF2EXPORTFILE) 601 @echo just a dummy for UNIX > $@ 602.ENDIF 603.ENDIF # "$(DEF2TARGETN)"!="" 604 605 606# Anweisungen fuer das Linken 607# unroll begin 608 609.IF "$(DEF3TARGETN)"!="" 610 611#to make intuitiv naming work 612.IF "$(DEF3LIBNAME)"!="" 613DEFLIB3NAME*=$(DEF3LIBNAME) 614.ENDIF # "$(DEF3LIBNAME)"!="" 615 616.IF "$(DEFLIB3NAME)"!="" 617DEF3DEPN+=$(foreach,i,$(DEFLIB3NAME) $(SLB)/$(i).lib) 618.ENDIF 619 620.IF "$(SHL3VERSIONMAP)"!="" 621.IF "$(DEF3EXPORTFILE)"=="" 622.IF "$(GUI)"=="WNT" 623DEF3EXPORTFILE=$(MISC)/$(SHL3VERSIONMAP:b)_$(SHL3TARGET).dxp 624.IF "$(COM)"=="GCC" 625$(DEF3EXPORTFILE) : $(SHL3OBJS) $(SHL3LIBS) 626.ENDIF # .IF "$(COM)"=="GCC" 627 628$(DEF3EXPORTFILE) : $(SHL3VERSIONMAP) 629 $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ 630.IF "$(COM)"!="GCC" 631# Wildcards in a version script are a GCC concept -- the GCC branch below 632# pulls them out into a .symbols-regexp and matches them against the real 633# objects. MSVC has no equivalent, and asking link.exe to export a literal 634# "_ZTI*" fails with LNK2001, so drop those lines here. Match "*" alone: 635# every MSVC-mangled C++ name begins with "?", so "[*?]" would drop the lot. 636 $(COMMAND_ECHO)-$(GREP) -v "[*]" $@ > $@.nowild 637 $(COMMAND_ECHO)$(RENAME) $@.nowild $@ 638.ENDIF 639.IF "$(COM)"=="GCC" 640 $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols 641 $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp 642# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS 643# Extract RTTI symbols from all the objects that will be used to build a shared library 644 $(COMMAND_ECHO)nm -gP $(SHL3OBJS) \ 645 `$(TYPE) /dev/null $(foreach,j,$(SHL3LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ 646 | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols 647# overwrite the map file generate into the local output tree with the generated 648# exported symbols list 649 $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@ 650.ENDIF # .IF "$(COM)"=="GCC" 651 652.ENDIF # "$(GUI)"=="WNT" 653 654.IF "$(GUI)"=="OS2" 655DEF3EXPORTFILE=$(MISC)/$(SHL3VERSIONMAP:b)_$(SHL3TARGET).dxp 656$(DEF3EXPORTFILE) : $(SHL3VERSIONMAP) 657 $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ 658.ENDIF # "$(GUI)"=="OS2" 659 660.ENDIF # "$(DEF3EXPORTFILE)"=="" 661.ENDIF # "$(SHL3VERSIONMAP)"!="" 662 663.IF "$(GUI)"=="WNT" 664 665DEF3FILTER=$(SOLARENV)/inc/dummy.flt 666 667RMHACK3:=$(RM) 668 669.IF "$(DEF3CEXP)"!="" 670EXPORT_ALL_SWITCH=-A $(DEF3CEXP) 671.ENDIF 672 673.IF "$(link_always)"=="" 674$(DEF3TARGETN) : \ 675 $(DEF3DEPN) \ 676 $(DEF3EXPORTFILE) 677.ELSE # "$(link_always)"=="" 678$(DEF3TARGETN) .PHONY : 679.ENDIF # "$(link_always)"=="" 680 @-$(RM) $@.tmpfile 681 @echo "Making: module definition file" $(@:f) 682 @echo LIBRARY $(EMQ)"$(SHL3TARGETN:f)$(EMQ)" >$@.tmpfile 683.IF "$(COM)"!="GCC" 684 @echo HEAPSIZE 0 >>$@.tmpfile 685.ENDIF 686 @echo EXPORTS >>$@.tmpfile 687.IF "$(VERSIONOBJ)"!="" 688# getversioninfo fuer alle!! 689 @echo GetVersionInfo >>$@.tmpfile 690.ENDIF 691.IF "$(DEFLIB3NAME)"!="" 692.IF "$(COM)"=="GCC" 693 @-$(RM) $(MISC)/$(SHL3TARGET).exp 694 $(COMMAND_ECHO)dlltool --output-def $(MISC)/$(SHL3TARGET).exp --export-all-symbols \ 695 `$(TYPE) $(foreach,i,$(DEFLIB3NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g` 696 $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL3TARGET).exp | sed '/^;/d' >>$@.tmpfile 697 @-$(RM) $(MISC)/$(SHL3TARGET).exp 698.ELSE 699.IF "$(SHL3USE_EXPORTS)"=="" 700 @-$(RMHACK3) $(MISC)/$(SHL3TARGET).exp 701 @$(SOLARENV)/bin/extract-linker-member.sh $(SLB)/$(DEFLIB3NAME).lib $(MISC)/$(SHL3TARGET).exp 702 @$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL3TARGET).flt $(MISC)/$(SHL3TARGET).exp >>$@.tmpfile 703 $(COMMAND_ECHO)$(RMHACK3) $(MISC)/$(SHL3TARGET).exp 704.ELSE # "$(SHL3USE_EXPORTS)"=="" 705 @$(DUMPBIN) -DIRECTIVES $(foreach,i,$(DEFLIB3NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL3TARGET).direct 706 @$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF3FILTER) $(MISC)/$(SHL3TARGET).direct >>$@.tmpfile 707.ENDIF # "$(SHL3USE_EXPORTS)"=="" 708.ENDIF 709.ENDIF # "$(DEFLIB3NAME)"!="" 710.IF "$(DEF3EXPORT1)"!="" 711 @echo $(DEF3EXPORT1) >>$@.tmpfile 712.ENDIF 713.IF "$(DEF3EXPORT2)"!="" 714 @echo $(DEF3EXPORT2) >>$@.tmpfile 715.ENDIF 716.IF "$(DEF3EXPORT3)"!="" 717 @echo $(DEF3EXPORT3) >>$@.tmpfile 718.ENDIF 719.IF "$(DEF3EXPORT4)"!="" 720 @echo $(DEF3EXPORT4) >>$@.tmpfile 721.ENDIF 722.IF "$(DEF3EXPORT5)"!="" 723 @echo $(DEF3EXPORT5) >>$@.tmpfile 724.ENDIF 725.IF "$(DEF3EXPORT6)"!="" 726 @echo $(DEF3EXPORT6) >>$@.tmpfile 727.ENDIF 728.IF "$(DEF3EXPORT7)"!="" 729 @echo $(DEF3EXPORT7) >>$@.tmpfile 730.ENDIF 731.IF "$(DEF3EXPORT8)"!="" 732 @echo $(DEF3EXPORT8) >>$@.tmpfile 733.ENDIF 734.IF "$(DEF3EXPORT9)"!="" 735 @echo $(DEF3EXPORT9) >>$@.tmpfile 736.ENDIF 737.IF "$(DEF3EXPORT10)"!="" 738 @echo $(DEF3EXPORT10) >>$@.tmpfile 739.ENDIF 740.IF "$(DEF3EXPORT11)"!="" 741 @echo $(DEF3EXPORT11) >>$@.tmpfile 742.ENDIF 743.IF "$(DEF3EXPORT12)"!="" 744 @echo $(DEF3EXPORT12) >>$@.tmpfile 745.ENDIF 746.IF "$(DEF3EXPORT13)"!="" 747 @echo $(DEF3EXPORT13) >>$@.tmpfile 748.ENDIF 749.IF "$(DEF3EXPORT14)"!="" 750 @echo $(DEF3EXPORT14) >>$@.tmpfile 751.ENDIF 752.IF "$(DEF3EXPORT15)"!="" 753 @echo $(DEF3EXPORT15) >>$@.tmpfile 754.ENDIF 755.IF "$(DEF3EXPORT16)"!="" 756 @echo $(DEF3EXPORT16) >>$@.tmpfile 757.ENDIF 758.IF "$(DEF3EXPORT17)"!="" 759 @echo $(DEF3EXPORT17) >>$@.tmpfile 760.ENDIF 761.IF "$(DEF3EXPORT18)"!="" 762 @echo $(DEF3EXPORT18) >>$@.tmpfile 763.ENDIF 764.IF "$(DEF3EXPORT19)"!="" 765 @echo $(DEF3EXPORT19) >>$@.tmpfile 766.ENDIF 767.IF "$(DEF3EXPORT20)"!="" 768 @echo $(DEF3EXPORT20) >>$@.tmpfile 769.ENDIF 770.IF "$(DEF3EXPORTFILE)"!="" 771.IF "$(COM)"=="GCC" 772 $(COMMAND_ECHO)$(TYPE) $(DEF3EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile 773.ELSE 774 $(COMMAND_ECHO)$(TYPE) $(DEF3EXPORTFILE) >> $@.tmpfile 775.ENDIF 776.ENDIF 777 @-$(RM) $@ 778 @$(RENAME) $@.tmpfile $@ 779.ENDIF # "$(GUI)"=="WNT" 780 781.IF "$(GUI)"=="OS2" 782 783#21/02/2006 YD dll names must be 8.3, invoke fix script 784#check osl/os2/module.c/osl_loadModule() 785SHL3TARGET8=$(shell @fix_shl.cmd $(SHL3TARGETN:f)) 786 787DEF3FILTER=$(SOLARENV)/inc/dummy.flt 788DEF3NAMELIST=$(foreach,i,$(DEFLIB3NAME) $(SLB)/$(i).lib) 789 790.IF "$(link_always)"=="" 791$(DEF3TARGETN) : \ 792 $(DEF3DEPN) \ 793 $(DEF3EXPORTFILE) 794.ELSE # "$(link_always)"=="" 795$(DEF3TARGETN) .PHONY : 796.ENDIF # "$(link_always)"=="" 797 @+-$(RM) $@.tmpfile 798 @echo "Making: module definition file" $(@:f) 799 @echo LIBRARY $(SHL3TARGET8) INITINSTANCE TERMINSTANCE >$@.tmpfile 800 @echo DATA MULTIPLE >>$@.tmpfile 801 @echo EXPORTS >>$@.tmpfile 802.IF "$(VERSIONOBJ)"!="" 803# getversioninfo fuer alle!! 804 @echo _GetVersionInfo >$@.tmp_ord 805.ENDIF 806 807.IF "$(DEFLIB3NAME)"!="" 808 @+echo $(SLB)/$(DEFLIB3NAME).lib 809 @+emxexp $(DEF3NAMELIST) | fix_exp_file >> $@.tmp_ord 810.ENDIF # "$(DEFLIB3NAME)"!="" 811 812.IF "$(DEF3EXPORT1)"!="" 813 @echo $(DEF3EXPORT1) >>$@.tmpfile 814.ENDIF 815.IF "$(DEF3EXPORT2)"!="" 816 @echo $(DEF3EXPORT2) >>$@.tmpfile 817.ENDIF 818.IF "$(DEF3EXPORT3)"!="" 819 @echo $(DEF3EXPORT3) >>$@.tmpfile 820.ENDIF 821.IF "$(DEF3EXPORT4)"!="" 822 @echo $(DEF3EXPORT4) >>$@.tmpfile 823.ENDIF 824.IF "$(DEF3EXPORT5)"!="" 825 @echo $(DEF3EXPORT5) >>$@.tmpfile 826.ENDIF 827.IF "$(DEF3EXPORT6)"!="" 828 @echo $(DEF3EXPORT6) >>$@.tmpfile 829.ENDIF 830.IF "$(DEF3EXPORT7)"!="" 831 @echo $(DEF3EXPORT7) >>$@.tmpfile 832.ENDIF 833.IF "$(DEF3EXPORT8)"!="" 834 @echo $(DEF3EXPORT8) >>$@.tmpfile 835.ENDIF 836.IF "$(DEF3EXPORT9)"!="" 837 @echo $(DEF3EXPORT9) >>$@.tmpfile 838.ENDIF 839.IF "$(DEF3EXPORT10)"!="" 840 @echo $(DEF3EXPORT10) >>$@.tmpfile 841.ENDIF 842.IF "$(DEF3EXPORT11)"!="" 843 @echo $(DEF3EXPORT11) >>$@.tmpfile 844.ENDIF 845.IF "$(DEF3EXPORT12)"!="" 846 @echo $(DEF3EXPORT12) >>$@.tmpfile 847.ENDIF 848.IF "$(DEF3EXPORT13)"!="" 849 @echo $(DEF3EXPORT13) >>$@.tmpfile 850.ENDIF 851.IF "$(DEF3EXPORT14)"!="" 852 @echo $(DEF3EXPORT14) >>$@.tmpfile 853.ENDIF 854.IF "$(DEF3EXPORT15)"!="" 855 @echo $(DEF3EXPORT15) >>$@.tmpfile 856.ENDIF 857.IF "$(DEF3EXPORT16)"!="" 858 @echo $(DEF3EXPORT16) >>$@.tmpfile 859.ENDIF 860.IF "$(DEF3EXPORT17)"!="" 861 @echo $(DEF3EXPORT17) >>$@.tmpfile 862.ENDIF 863.IF "$(DEF3EXPORT18)"!="" 864 @echo $(DEF3EXPORT18) >>$@.tmpfile 865.ENDIF 866.IF "$(DEF3EXPORT19)"!="" 867 @echo $(DEF3EXPORT19) >>$@.tmpfile 868.ENDIF 869.IF "$(DEF3EXPORT20)"!="" 870 @echo $(DEF3EXPORT20) >>$@.tmpfile 871.ENDIF 872.IF "$(DEF3EXPORTFILE)"!="" 873 @fix_def_file < $(DEF3EXPORTFILE) >> $@.tmp_ord 874.ENDIF 875 @sort < $@.tmp_ord | uniq > $@.exptmpfile 876 @fix_def_ord < $@.exptmpfile >> $@.tmpfile 877 @+-$(RM) $@ 878 $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@ 879 @+-$(RM) $@.tmp_ord 880 @+-$(RM) $@.exptmpfile 881.IF "$(SHL3USE_EXPORTS)"=="" || "$(SHL3USE_EXPORTS)"=="ordinal" 882#03/11/2012 if 'name' is not used, export from def file (with ordinals) 883 @echo Build import library from DEF file. 884 @+-$(RM) $(LB)/$(SHL3TARGETN:b).lib 885 $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(LB)/$(SHL3TARGETN:b).lib $@ 886.ENDIF # "$(SHL3USE_EXPORTS)"=="" 887 888.ENDIF # "$(GUI)"=="OS2" 889 890.IF "$(GUI)"=="UNX" 891$(DEF3TARGETN): \ 892 $(DEF3DEPN) \ 893 $(DEF3EXPORTFILE) 894 @echo just a dummy for UNIX > $@ 895.ENDIF 896.ENDIF # "$(DEF3TARGETN)"!="" 897 898 899# Anweisungen fuer das Linken 900# unroll begin 901 902.IF "$(DEF4TARGETN)"!="" 903 904#to make intuitiv naming work 905.IF "$(DEF4LIBNAME)"!="" 906DEFLIB4NAME*=$(DEF4LIBNAME) 907.ENDIF # "$(DEF4LIBNAME)"!="" 908 909.IF "$(DEFLIB4NAME)"!="" 910DEF4DEPN+=$(foreach,i,$(DEFLIB4NAME) $(SLB)/$(i).lib) 911.ENDIF 912 913.IF "$(SHL4VERSIONMAP)"!="" 914.IF "$(DEF4EXPORTFILE)"=="" 915.IF "$(GUI)"=="WNT" 916DEF4EXPORTFILE=$(MISC)/$(SHL4VERSIONMAP:b)_$(SHL4TARGET).dxp 917.IF "$(COM)"=="GCC" 918$(DEF4EXPORTFILE) : $(SHL4OBJS) $(SHL4LIBS) 919.ENDIF # .IF "$(COM)"=="GCC" 920 921$(DEF4EXPORTFILE) : $(SHL4VERSIONMAP) 922 $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ 923.IF "$(COM)"!="GCC" 924# Wildcards in a version script are a GCC concept -- the GCC branch below 925# pulls them out into a .symbols-regexp and matches them against the real 926# objects. MSVC has no equivalent, and asking link.exe to export a literal 927# "_ZTI*" fails with LNK2001, so drop those lines here. Match "*" alone: 928# every MSVC-mangled C++ name begins with "?", so "[*?]" would drop the lot. 929 $(COMMAND_ECHO)-$(GREP) -v "[*]" $@ > $@.nowild 930 $(COMMAND_ECHO)$(RENAME) $@.nowild $@ 931.ENDIF 932.IF "$(COM)"=="GCC" 933 $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols 934 $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp 935# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS 936# Extract RTTI symbols from all the objects that will be used to build a shared library 937 $(COMMAND_ECHO)nm -gP $(SHL4OBJS) \ 938 `$(TYPE) /dev/null $(foreach,j,$(SHL4LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ 939 | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols 940# overwrite the map file generate into the local output tree with the generated 941# exported symbols list 942 $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@ 943.ENDIF # .IF "$(COM)"=="GCC" 944 945.ENDIF # "$(GUI)"=="WNT" 946 947.IF "$(GUI)"=="OS2" 948DEF4EXPORTFILE=$(MISC)/$(SHL4VERSIONMAP:b)_$(SHL4TARGET).dxp 949$(DEF4EXPORTFILE) : $(SHL4VERSIONMAP) 950 $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ 951.ENDIF # "$(GUI)"=="OS2" 952 953.ENDIF # "$(DEF4EXPORTFILE)"=="" 954.ENDIF # "$(SHL4VERSIONMAP)"!="" 955 956.IF "$(GUI)"=="WNT" 957 958DEF4FILTER=$(SOLARENV)/inc/dummy.flt 959 960RMHACK4:=$(RM) 961 962.IF "$(DEF4CEXP)"!="" 963EXPORT_ALL_SWITCH=-A $(DEF4CEXP) 964.ENDIF 965 966.IF "$(link_always)"=="" 967$(DEF4TARGETN) : \ 968 $(DEF4DEPN) \ 969 $(DEF4EXPORTFILE) 970.ELSE # "$(link_always)"=="" 971$(DEF4TARGETN) .PHONY : 972.ENDIF # "$(link_always)"=="" 973 @-$(RM) $@.tmpfile 974 @echo "Making: module definition file" $(@:f) 975 @echo LIBRARY $(EMQ)"$(SHL4TARGETN:f)$(EMQ)" >$@.tmpfile 976.IF "$(COM)"!="GCC" 977 @echo HEAPSIZE 0 >>$@.tmpfile 978.ENDIF 979 @echo EXPORTS >>$@.tmpfile 980.IF "$(VERSIONOBJ)"!="" 981# getversioninfo fuer alle!! 982 @echo GetVersionInfo >>$@.tmpfile 983.ENDIF 984.IF "$(DEFLIB4NAME)"!="" 985.IF "$(COM)"=="GCC" 986 @-$(RM) $(MISC)/$(SHL4TARGET).exp 987 $(COMMAND_ECHO)dlltool --output-def $(MISC)/$(SHL4TARGET).exp --export-all-symbols \ 988 `$(TYPE) $(foreach,i,$(DEFLIB4NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g` 989 $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL4TARGET).exp | sed '/^;/d' >>$@.tmpfile 990 @-$(RM) $(MISC)/$(SHL4TARGET).exp 991.ELSE 992.IF "$(SHL4USE_EXPORTS)"=="" 993 @-$(RMHACK4) $(MISC)/$(SHL4TARGET).exp 994 @$(SOLARENV)/bin/extract-linker-member.sh $(SLB)/$(DEFLIB4NAME).lib $(MISC)/$(SHL4TARGET).exp 995 @$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL4TARGET).flt $(MISC)/$(SHL4TARGET).exp >>$@.tmpfile 996 $(COMMAND_ECHO)$(RMHACK4) $(MISC)/$(SHL4TARGET).exp 997.ELSE # "$(SHL4USE_EXPORTS)"=="" 998 @$(DUMPBIN) -DIRECTIVES $(foreach,i,$(DEFLIB4NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL4TARGET).direct 999 @$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF4FILTER) $(MISC)/$(SHL4TARGET).direct >>$@.tmpfile 1000.ENDIF # "$(SHL4USE_EXPORTS)"=="" 1001.ENDIF 1002.ENDIF # "$(DEFLIB4NAME)"!="" 1003.IF "$(DEF4EXPORT1)"!="" 1004 @echo $(DEF4EXPORT1) >>$@.tmpfile 1005.ENDIF 1006.IF "$(DEF4EXPORT2)"!="" 1007 @echo $(DEF4EXPORT2) >>$@.tmpfile 1008.ENDIF 1009.IF "$(DEF4EXPORT3)"!="" 1010 @echo $(DEF4EXPORT3) >>$@.tmpfile 1011.ENDIF 1012.IF "$(DEF4EXPORT4)"!="" 1013 @echo $(DEF4EXPORT4) >>$@.tmpfile 1014.ENDIF 1015.IF "$(DEF4EXPORT5)"!="" 1016 @echo $(DEF4EXPORT5) >>$@.tmpfile 1017.ENDIF 1018.IF "$(DEF4EXPORT6)"!="" 1019 @echo $(DEF4EXPORT6) >>$@.tmpfile 1020.ENDIF 1021.IF "$(DEF4EXPORT7)"!="" 1022 @echo $(DEF4EXPORT7) >>$@.tmpfile 1023.ENDIF 1024.IF "$(DEF4EXPORT8)"!="" 1025 @echo $(DEF4EXPORT8) >>$@.tmpfile 1026.ENDIF 1027.IF "$(DEF4EXPORT9)"!="" 1028 @echo $(DEF4EXPORT9) >>$@.tmpfile 1029.ENDIF 1030.IF "$(DEF4EXPORT10)"!="" 1031 @echo $(DEF4EXPORT10) >>$@.tmpfile 1032.ENDIF 1033.IF "$(DEF4EXPORT11)"!="" 1034 @echo $(DEF4EXPORT11) >>$@.tmpfile 1035.ENDIF 1036.IF "$(DEF4EXPORT12)"!="" 1037 @echo $(DEF4EXPORT12) >>$@.tmpfile 1038.ENDIF 1039.IF "$(DEF4EXPORT13)"!="" 1040 @echo $(DEF4EXPORT13) >>$@.tmpfile 1041.ENDIF 1042.IF "$(DEF4EXPORT14)"!="" 1043 @echo $(DEF4EXPORT14) >>$@.tmpfile 1044.ENDIF 1045.IF "$(DEF4EXPORT15)"!="" 1046 @echo $(DEF4EXPORT15) >>$@.tmpfile 1047.ENDIF 1048.IF "$(DEF4EXPORT16)"!="" 1049 @echo $(DEF4EXPORT16) >>$@.tmpfile 1050.ENDIF 1051.IF "$(DEF4EXPORT17)"!="" 1052 @echo $(DEF4EXPORT17) >>$@.tmpfile 1053.ENDIF 1054.IF "$(DEF4EXPORT18)"!="" 1055 @echo $(DEF4EXPORT18) >>$@.tmpfile 1056.ENDIF 1057.IF "$(DEF4EXPORT19)"!="" 1058 @echo $(DEF4EXPORT19) >>$@.tmpfile 1059.ENDIF 1060.IF "$(DEF4EXPORT20)"!="" 1061 @echo $(DEF4EXPORT20) >>$@.tmpfile 1062.ENDIF 1063.IF "$(DEF4EXPORTFILE)"!="" 1064.IF "$(COM)"=="GCC" 1065 $(COMMAND_ECHO)$(TYPE) $(DEF4EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile 1066.ELSE 1067 $(COMMAND_ECHO)$(TYPE) $(DEF4EXPORTFILE) >> $@.tmpfile 1068.ENDIF 1069.ENDIF 1070 @-$(RM) $@ 1071 @$(RENAME) $@.tmpfile $@ 1072.ENDIF # "$(GUI)"=="WNT" 1073 1074.IF "$(GUI)"=="OS2" 1075 1076#21/02/2006 YD dll names must be 8.3, invoke fix script 1077#check osl/os2/module.c/osl_loadModule() 1078SHL4TARGET8=$(shell @fix_shl.cmd $(SHL4TARGETN:f)) 1079 1080DEF4FILTER=$(SOLARENV)/inc/dummy.flt 1081DEF4NAMELIST=$(foreach,i,$(DEFLIB4NAME) $(SLB)/$(i).lib) 1082 1083.IF "$(link_always)"=="" 1084$(DEF4TARGETN) : \ 1085 $(DEF4DEPN) \ 1086 $(DEF4EXPORTFILE) 1087.ELSE # "$(link_always)"=="" 1088$(DEF4TARGETN) .PHONY : 1089.ENDIF # "$(link_always)"=="" 1090 @+-$(RM) $@.tmpfile 1091 @echo "Making: module definition file" $(@:f) 1092 @echo LIBRARY $(SHL4TARGET8) INITINSTANCE TERMINSTANCE >$@.tmpfile 1093 @echo DATA MULTIPLE >>$@.tmpfile 1094 @echo EXPORTS >>$@.tmpfile 1095.IF "$(VERSIONOBJ)"!="" 1096# getversioninfo fuer alle!! 1097 @echo _GetVersionInfo >$@.tmp_ord 1098.ENDIF 1099 1100.IF "$(DEFLIB4NAME)"!="" 1101 @+echo $(SLB)/$(DEFLIB4NAME).lib 1102 @+emxexp $(DEF4NAMELIST) | fix_exp_file >> $@.tmp_ord 1103.ENDIF # "$(DEFLIB4NAME)"!="" 1104 1105.IF "$(DEF4EXPORT1)"!="" 1106 @echo $(DEF4EXPORT1) >>$@.tmpfile 1107.ENDIF 1108.IF "$(DEF4EXPORT2)"!="" 1109 @echo $(DEF4EXPORT2) >>$@.tmpfile 1110.ENDIF 1111.IF "$(DEF4EXPORT3)"!="" 1112 @echo $(DEF4EXPORT3) >>$@.tmpfile 1113.ENDIF 1114.IF "$(DEF4EXPORT4)"!="" 1115 @echo $(DEF4EXPORT4) >>$@.tmpfile 1116.ENDIF 1117.IF "$(DEF4EXPORT5)"!="" 1118 @echo $(DEF4EXPORT5) >>$@.tmpfile 1119.ENDIF 1120.IF "$(DEF4EXPORT6)"!="" 1121 @echo $(DEF4EXPORT6) >>$@.tmpfile 1122.ENDIF 1123.IF "$(DEF4EXPORT7)"!="" 1124 @echo $(DEF4EXPORT7) >>$@.tmpfile 1125.ENDIF 1126.IF "$(DEF4EXPORT8)"!="" 1127 @echo $(DEF4EXPORT8) >>$@.tmpfile 1128.ENDIF 1129.IF "$(DEF4EXPORT9)"!="" 1130 @echo $(DEF4EXPORT9) >>$@.tmpfile 1131.ENDIF 1132.IF "$(DEF4EXPORT10)"!="" 1133 @echo $(DEF4EXPORT10) >>$@.tmpfile 1134.ENDIF 1135.IF "$(DEF4EXPORT11)"!="" 1136 @echo $(DEF4EXPORT11) >>$@.tmpfile 1137.ENDIF 1138.IF "$(DEF4EXPORT12)"!="" 1139 @echo $(DEF4EXPORT12) >>$@.tmpfile 1140.ENDIF 1141.IF "$(DEF4EXPORT13)"!="" 1142 @echo $(DEF4EXPORT13) >>$@.tmpfile 1143.ENDIF 1144.IF "$(DEF4EXPORT14)"!="" 1145 @echo $(DEF4EXPORT14) >>$@.tmpfile 1146.ENDIF 1147.IF "$(DEF4EXPORT15)"!="" 1148 @echo $(DEF4EXPORT15) >>$@.tmpfile 1149.ENDIF 1150.IF "$(DEF4EXPORT16)"!="" 1151 @echo $(DEF4EXPORT16) >>$@.tmpfile 1152.ENDIF 1153.IF "$(DEF4EXPORT17)"!="" 1154 @echo $(DEF4EXPORT17) >>$@.tmpfile 1155.ENDIF 1156.IF "$(DEF4EXPORT18)"!="" 1157 @echo $(DEF4EXPORT18) >>$@.tmpfile 1158.ENDIF 1159.IF "$(DEF4EXPORT19)"!="" 1160 @echo $(DEF4EXPORT19) >>$@.tmpfile 1161.ENDIF 1162.IF "$(DEF4EXPORT20)"!="" 1163 @echo $(DEF4EXPORT20) >>$@.tmpfile 1164.ENDIF 1165.IF "$(DEF4EXPORTFILE)"!="" 1166 @fix_def_file < $(DEF4EXPORTFILE) >> $@.tmp_ord 1167.ENDIF 1168 @sort < $@.tmp_ord | uniq > $@.exptmpfile 1169 @fix_def_ord < $@.exptmpfile >> $@.tmpfile 1170 @+-$(RM) $@ 1171 $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@ 1172 @+-$(RM) $@.tmp_ord 1173 @+-$(RM) $@.exptmpfile 1174.IF "$(SHL4USE_EXPORTS)"=="" || "$(SHL4USE_EXPORTS)"=="ordinal" 1175#03/11/2012 if 'name' is not used, export from def file (with ordinals) 1176 @echo Build import library from DEF file. 1177 @+-$(RM) $(LB)/$(SHL4TARGETN:b).lib 1178 $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(LB)/$(SHL4TARGETN:b).lib $@ 1179.ENDIF # "$(SHL4USE_EXPORTS)"=="" 1180 1181.ENDIF # "$(GUI)"=="OS2" 1182 1183.IF "$(GUI)"=="UNX" 1184$(DEF4TARGETN): \ 1185 $(DEF4DEPN) \ 1186 $(DEF4EXPORTFILE) 1187 @echo just a dummy for UNIX > $@ 1188.ENDIF 1189.ENDIF # "$(DEF4TARGETN)"!="" 1190 1191 1192# Anweisungen fuer das Linken 1193# unroll begin 1194 1195.IF "$(DEF5TARGETN)"!="" 1196 1197#to make intuitiv naming work 1198.IF "$(DEF5LIBNAME)"!="" 1199DEFLIB5NAME*=$(DEF5LIBNAME) 1200.ENDIF # "$(DEF5LIBNAME)"!="" 1201 1202.IF "$(DEFLIB5NAME)"!="" 1203DEF5DEPN+=$(foreach,i,$(DEFLIB5NAME) $(SLB)/$(i).lib) 1204.ENDIF 1205 1206.IF "$(SHL5VERSIONMAP)"!="" 1207.IF "$(DEF5EXPORTFILE)"=="" 1208.IF "$(GUI)"=="WNT" 1209DEF5EXPORTFILE=$(MISC)/$(SHL5VERSIONMAP:b)_$(SHL5TARGET).dxp 1210.IF "$(COM)"=="GCC" 1211$(DEF5EXPORTFILE) : $(SHL5OBJS) $(SHL5LIBS) 1212.ENDIF # .IF "$(COM)"=="GCC" 1213 1214$(DEF5EXPORTFILE) : $(SHL5VERSIONMAP) 1215 $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ 1216.IF "$(COM)"!="GCC" 1217# Wildcards in a version script are a GCC concept -- the GCC branch below 1218# pulls them out into a .symbols-regexp and matches them against the real 1219# objects. MSVC has no equivalent, and asking link.exe to export a literal 1220# "_ZTI*" fails with LNK2001, so drop those lines here. Match "*" alone: 1221# every MSVC-mangled C++ name begins with "?", so "[*?]" would drop the lot. 1222 $(COMMAND_ECHO)-$(GREP) -v "[*]" $@ > $@.nowild 1223 $(COMMAND_ECHO)$(RENAME) $@.nowild $@ 1224.ENDIF 1225.IF "$(COM)"=="GCC" 1226 $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols 1227 $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp 1228# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS 1229# Extract RTTI symbols from all the objects that will be used to build a shared library 1230 $(COMMAND_ECHO)nm -gP $(SHL5OBJS) \ 1231 `$(TYPE) /dev/null $(foreach,j,$(SHL5LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ 1232 | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols 1233# overwrite the map file generate into the local output tree with the generated 1234# exported symbols list 1235 $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@ 1236.ENDIF # .IF "$(COM)"=="GCC" 1237 1238.ENDIF # "$(GUI)"=="WNT" 1239 1240.IF "$(GUI)"=="OS2" 1241DEF5EXPORTFILE=$(MISC)/$(SHL5VERSIONMAP:b)_$(SHL5TARGET).dxp 1242$(DEF5EXPORTFILE) : $(SHL5VERSIONMAP) 1243 $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ 1244.ENDIF # "$(GUI)"=="OS2" 1245 1246.ENDIF # "$(DEF5EXPORTFILE)"=="" 1247.ENDIF # "$(SHL5VERSIONMAP)"!="" 1248 1249.IF "$(GUI)"=="WNT" 1250 1251DEF5FILTER=$(SOLARENV)/inc/dummy.flt 1252 1253RMHACK5:=$(RM) 1254 1255.IF "$(DEF5CEXP)"!="" 1256EXPORT_ALL_SWITCH=-A $(DEF5CEXP) 1257.ENDIF 1258 1259.IF "$(link_always)"=="" 1260$(DEF5TARGETN) : \ 1261 $(DEF5DEPN) \ 1262 $(DEF5EXPORTFILE) 1263.ELSE # "$(link_always)"=="" 1264$(DEF5TARGETN) .PHONY : 1265.ENDIF # "$(link_always)"=="" 1266 @-$(RM) $@.tmpfile 1267 @echo "Making: module definition file" $(@:f) 1268 @echo LIBRARY $(EMQ)"$(SHL5TARGETN:f)$(EMQ)" >$@.tmpfile 1269.IF "$(COM)"!="GCC" 1270 @echo HEAPSIZE 0 >>$@.tmpfile 1271.ENDIF 1272 @echo EXPORTS >>$@.tmpfile 1273.IF "$(VERSIONOBJ)"!="" 1274# getversioninfo fuer alle!! 1275 @echo GetVersionInfo >>$@.tmpfile 1276.ENDIF 1277.IF "$(DEFLIB5NAME)"!="" 1278.IF "$(COM)"=="GCC" 1279 @-$(RM) $(MISC)/$(SHL5TARGET).exp 1280 $(COMMAND_ECHO)dlltool --output-def $(MISC)/$(SHL5TARGET).exp --export-all-symbols \ 1281 `$(TYPE) $(foreach,i,$(DEFLIB5NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g` 1282 $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL5TARGET).exp | sed '/^;/d' >>$@.tmpfile 1283 @-$(RM) $(MISC)/$(SHL5TARGET).exp 1284.ELSE 1285.IF "$(SHL5USE_EXPORTS)"=="" 1286 @-$(RMHACK5) $(MISC)/$(SHL5TARGET).exp 1287 @$(SOLARENV)/bin/extract-linker-member.sh $(SLB)/$(DEFLIB5NAME).lib $(MISC)/$(SHL5TARGET).exp 1288 @$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL5TARGET).flt $(MISC)/$(SHL5TARGET).exp >>$@.tmpfile 1289 $(COMMAND_ECHO)$(RMHACK5) $(MISC)/$(SHL5TARGET).exp 1290.ELSE # "$(SHL5USE_EXPORTS)"=="" 1291 @$(DUMPBIN) -DIRECTIVES $(foreach,i,$(DEFLIB5NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL5TARGET).direct 1292 @$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF5FILTER) $(MISC)/$(SHL5TARGET).direct >>$@.tmpfile 1293.ENDIF # "$(SHL5USE_EXPORTS)"=="" 1294.ENDIF 1295.ENDIF # "$(DEFLIB5NAME)"!="" 1296.IF "$(DEF5EXPORT1)"!="" 1297 @echo $(DEF5EXPORT1) >>$@.tmpfile 1298.ENDIF 1299.IF "$(DEF5EXPORT2)"!="" 1300 @echo $(DEF5EXPORT2) >>$@.tmpfile 1301.ENDIF 1302.IF "$(DEF5EXPORT3)"!="" 1303 @echo $(DEF5EXPORT3) >>$@.tmpfile 1304.ENDIF 1305.IF "$(DEF5EXPORT4)"!="" 1306 @echo $(DEF5EXPORT4) >>$@.tmpfile 1307.ENDIF 1308.IF "$(DEF5EXPORT5)"!="" 1309 @echo $(DEF5EXPORT5) >>$@.tmpfile 1310.ENDIF 1311.IF "$(DEF5EXPORT6)"!="" 1312 @echo $(DEF5EXPORT6) >>$@.tmpfile 1313.ENDIF 1314.IF "$(DEF5EXPORT7)"!="" 1315 @echo $(DEF5EXPORT7) >>$@.tmpfile 1316.ENDIF 1317.IF "$(DEF5EXPORT8)"!="" 1318 @echo $(DEF5EXPORT8) >>$@.tmpfile 1319.ENDIF 1320.IF "$(DEF5EXPORT9)"!="" 1321 @echo $(DEF5EXPORT9) >>$@.tmpfile 1322.ENDIF 1323.IF "$(DEF5EXPORT10)"!="" 1324 @echo $(DEF5EXPORT10) >>$@.tmpfile 1325.ENDIF 1326.IF "$(DEF5EXPORT11)"!="" 1327 @echo $(DEF5EXPORT11) >>$@.tmpfile 1328.ENDIF 1329.IF "$(DEF5EXPORT12)"!="" 1330 @echo $(DEF5EXPORT12) >>$@.tmpfile 1331.ENDIF 1332.IF "$(DEF5EXPORT13)"!="" 1333 @echo $(DEF5EXPORT13) >>$@.tmpfile 1334.ENDIF 1335.IF "$(DEF5EXPORT14)"!="" 1336 @echo $(DEF5EXPORT14) >>$@.tmpfile 1337.ENDIF 1338.IF "$(DEF5EXPORT15)"!="" 1339 @echo $(DEF5EXPORT15) >>$@.tmpfile 1340.ENDIF 1341.IF "$(DEF5EXPORT16)"!="" 1342 @echo $(DEF5EXPORT16) >>$@.tmpfile 1343.ENDIF 1344.IF "$(DEF5EXPORT17)"!="" 1345 @echo $(DEF5EXPORT17) >>$@.tmpfile 1346.ENDIF 1347.IF "$(DEF5EXPORT18)"!="" 1348 @echo $(DEF5EXPORT18) >>$@.tmpfile 1349.ENDIF 1350.IF "$(DEF5EXPORT19)"!="" 1351 @echo $(DEF5EXPORT19) >>$@.tmpfile 1352.ENDIF 1353.IF "$(DEF5EXPORT20)"!="" 1354 @echo $(DEF5EXPORT20) >>$@.tmpfile 1355.ENDIF 1356.IF "$(DEF5EXPORTFILE)"!="" 1357.IF "$(COM)"=="GCC" 1358 $(COMMAND_ECHO)$(TYPE) $(DEF5EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile 1359.ELSE 1360 $(COMMAND_ECHO)$(TYPE) $(DEF5EXPORTFILE) >> $@.tmpfile 1361.ENDIF 1362.ENDIF 1363 @-$(RM) $@ 1364 @$(RENAME) $@.tmpfile $@ 1365.ENDIF # "$(GUI)"=="WNT" 1366 1367.IF "$(GUI)"=="OS2" 1368 1369#21/02/2006 YD dll names must be 8.3, invoke fix script 1370#check osl/os2/module.c/osl_loadModule() 1371SHL5TARGET8=$(shell @fix_shl.cmd $(SHL5TARGETN:f)) 1372 1373DEF5FILTER=$(SOLARENV)/inc/dummy.flt 1374DEF5NAMELIST=$(foreach,i,$(DEFLIB5NAME) $(SLB)/$(i).lib) 1375 1376.IF "$(link_always)"=="" 1377$(DEF5TARGETN) : \ 1378 $(DEF5DEPN) \ 1379 $(DEF5EXPORTFILE) 1380.ELSE # "$(link_always)"=="" 1381$(DEF5TARGETN) .PHONY : 1382.ENDIF # "$(link_always)"=="" 1383 @+-$(RM) $@.tmpfile 1384 @echo "Making: module definition file" $(@:f) 1385 @echo LIBRARY $(SHL5TARGET8) INITINSTANCE TERMINSTANCE >$@.tmpfile 1386 @echo DATA MULTIPLE >>$@.tmpfile 1387 @echo EXPORTS >>$@.tmpfile 1388.IF "$(VERSIONOBJ)"!="" 1389# getversioninfo fuer alle!! 1390 @echo _GetVersionInfo >$@.tmp_ord 1391.ENDIF 1392 1393.IF "$(DEFLIB5NAME)"!="" 1394 @+echo $(SLB)/$(DEFLIB5NAME).lib 1395 @+emxexp $(DEF5NAMELIST) | fix_exp_file >> $@.tmp_ord 1396.ENDIF # "$(DEFLIB5NAME)"!="" 1397 1398.IF "$(DEF5EXPORT1)"!="" 1399 @echo $(DEF5EXPORT1) >>$@.tmpfile 1400.ENDIF 1401.IF "$(DEF5EXPORT2)"!="" 1402 @echo $(DEF5EXPORT2) >>$@.tmpfile 1403.ENDIF 1404.IF "$(DEF5EXPORT3)"!="" 1405 @echo $(DEF5EXPORT3) >>$@.tmpfile 1406.ENDIF 1407.IF "$(DEF5EXPORT4)"!="" 1408 @echo $(DEF5EXPORT4) >>$@.tmpfile 1409.ENDIF 1410.IF "$(DEF5EXPORT5)"!="" 1411 @echo $(DEF5EXPORT5) >>$@.tmpfile 1412.ENDIF 1413.IF "$(DEF5EXPORT6)"!="" 1414 @echo $(DEF5EXPORT6) >>$@.tmpfile 1415.ENDIF 1416.IF "$(DEF5EXPORT7)"!="" 1417 @echo $(DEF5EXPORT7) >>$@.tmpfile 1418.ENDIF 1419.IF "$(DEF5EXPORT8)"!="" 1420 @echo $(DEF5EXPORT8) >>$@.tmpfile 1421.ENDIF 1422.IF "$(DEF5EXPORT9)"!="" 1423 @echo $(DEF5EXPORT9) >>$@.tmpfile 1424.ENDIF 1425.IF "$(DEF5EXPORT10)"!="" 1426 @echo $(DEF5EXPORT10) >>$@.tmpfile 1427.ENDIF 1428.IF "$(DEF5EXPORT11)"!="" 1429 @echo $(DEF5EXPORT11) >>$@.tmpfile 1430.ENDIF 1431.IF "$(DEF5EXPORT12)"!="" 1432 @echo $(DEF5EXPORT12) >>$@.tmpfile 1433.ENDIF 1434.IF "$(DEF5EXPORT13)"!="" 1435 @echo $(DEF5EXPORT13) >>$@.tmpfile 1436.ENDIF 1437.IF "$(DEF5EXPORT14)"!="" 1438 @echo $(DEF5EXPORT14) >>$@.tmpfile 1439.ENDIF 1440.IF "$(DEF5EXPORT15)"!="" 1441 @echo $(DEF5EXPORT15) >>$@.tmpfile 1442.ENDIF 1443.IF "$(DEF5EXPORT16)"!="" 1444 @echo $(DEF5EXPORT16) >>$@.tmpfile 1445.ENDIF 1446.IF "$(DEF5EXPORT17)"!="" 1447 @echo $(DEF5EXPORT17) >>$@.tmpfile 1448.ENDIF 1449.IF "$(DEF5EXPORT18)"!="" 1450 @echo $(DEF5EXPORT18) >>$@.tmpfile 1451.ENDIF 1452.IF "$(DEF5EXPORT19)"!="" 1453 @echo $(DEF5EXPORT19) >>$@.tmpfile 1454.ENDIF 1455.IF "$(DEF5EXPORT20)"!="" 1456 @echo $(DEF5EXPORT20) >>$@.tmpfile 1457.ENDIF 1458.IF "$(DEF5EXPORTFILE)"!="" 1459 @fix_def_file < $(DEF5EXPORTFILE) >> $@.tmp_ord 1460.ENDIF 1461 @sort < $@.tmp_ord | uniq > $@.exptmpfile 1462 @fix_def_ord < $@.exptmpfile >> $@.tmpfile 1463 @+-$(RM) $@ 1464 $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@ 1465 @+-$(RM) $@.tmp_ord 1466 @+-$(RM) $@.exptmpfile 1467.IF "$(SHL5USE_EXPORTS)"=="" || "$(SHL5USE_EXPORTS)"=="ordinal" 1468#03/11/2012 if 'name' is not used, export from def file (with ordinals) 1469 @echo Build import library from DEF file. 1470 @+-$(RM) $(LB)/$(SHL5TARGETN:b).lib 1471 $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(LB)/$(SHL5TARGETN:b).lib $@ 1472.ENDIF # "$(SHL5USE_EXPORTS)"=="" 1473 1474.ENDIF # "$(GUI)"=="OS2" 1475 1476.IF "$(GUI)"=="UNX" 1477$(DEF5TARGETN): \ 1478 $(DEF5DEPN) \ 1479 $(DEF5EXPORTFILE) 1480 @echo just a dummy for UNIX > $@ 1481.ENDIF 1482.ENDIF # "$(DEF5TARGETN)"!="" 1483 1484 1485# Anweisungen fuer das Linken 1486# unroll begin 1487 1488.IF "$(DEF6TARGETN)"!="" 1489 1490#to make intuitiv naming work 1491.IF "$(DEF6LIBNAME)"!="" 1492DEFLIB6NAME*=$(DEF6LIBNAME) 1493.ENDIF # "$(DEF6LIBNAME)"!="" 1494 1495.IF "$(DEFLIB6NAME)"!="" 1496DEF6DEPN+=$(foreach,i,$(DEFLIB6NAME) $(SLB)/$(i).lib) 1497.ENDIF 1498 1499.IF "$(SHL6VERSIONMAP)"!="" 1500.IF "$(DEF6EXPORTFILE)"=="" 1501.IF "$(GUI)"=="WNT" 1502DEF6EXPORTFILE=$(MISC)/$(SHL6VERSIONMAP:b)_$(SHL6TARGET).dxp 1503.IF "$(COM)"=="GCC" 1504$(DEF6EXPORTFILE) : $(SHL6OBJS) $(SHL6LIBS) 1505.ENDIF # .IF "$(COM)"=="GCC" 1506 1507$(DEF6EXPORTFILE) : $(SHL6VERSIONMAP) 1508 $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ 1509.IF "$(COM)"!="GCC" 1510# Wildcards in a version script are a GCC concept -- the GCC branch below 1511# pulls them out into a .symbols-regexp and matches them against the real 1512# objects. MSVC has no equivalent, and asking link.exe to export a literal 1513# "_ZTI*" fails with LNK2001, so drop those lines here. Match "*" alone: 1514# every MSVC-mangled C++ name begins with "?", so "[*?]" would drop the lot. 1515 $(COMMAND_ECHO)-$(GREP) -v "[*]" $@ > $@.nowild 1516 $(COMMAND_ECHO)$(RENAME) $@.nowild $@ 1517.ENDIF 1518.IF "$(COM)"=="GCC" 1519 $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols 1520 $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp 1521# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS 1522# Extract RTTI symbols from all the objects that will be used to build a shared library 1523 $(COMMAND_ECHO)nm -gP $(SHL6OBJS) \ 1524 `$(TYPE) /dev/null $(foreach,j,$(SHL6LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ 1525 | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols 1526# overwrite the map file generate into the local output tree with the generated 1527# exported symbols list 1528 $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@ 1529.ENDIF # .IF "$(COM)"=="GCC" 1530 1531.ENDIF # "$(GUI)"=="WNT" 1532 1533.IF "$(GUI)"=="OS2" 1534DEF6EXPORTFILE=$(MISC)/$(SHL6VERSIONMAP:b)_$(SHL6TARGET).dxp 1535$(DEF6EXPORTFILE) : $(SHL6VERSIONMAP) 1536 $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ 1537.ENDIF # "$(GUI)"=="OS2" 1538 1539.ENDIF # "$(DEF6EXPORTFILE)"=="" 1540.ENDIF # "$(SHL6VERSIONMAP)"!="" 1541 1542.IF "$(GUI)"=="WNT" 1543 1544DEF6FILTER=$(SOLARENV)/inc/dummy.flt 1545 1546RMHACK6:=$(RM) 1547 1548.IF "$(DEF6CEXP)"!="" 1549EXPORT_ALL_SWITCH=-A $(DEF6CEXP) 1550.ENDIF 1551 1552.IF "$(link_always)"=="" 1553$(DEF6TARGETN) : \ 1554 $(DEF6DEPN) \ 1555 $(DEF6EXPORTFILE) 1556.ELSE # "$(link_always)"=="" 1557$(DEF6TARGETN) .PHONY : 1558.ENDIF # "$(link_always)"=="" 1559 @-$(RM) $@.tmpfile 1560 @echo "Making: module definition file" $(@:f) 1561 @echo LIBRARY $(EMQ)"$(SHL6TARGETN:f)$(EMQ)" >$@.tmpfile 1562.IF "$(COM)"!="GCC" 1563 @echo HEAPSIZE 0 >>$@.tmpfile 1564.ENDIF 1565 @echo EXPORTS >>$@.tmpfile 1566.IF "$(VERSIONOBJ)"!="" 1567# getversioninfo fuer alle!! 1568 @echo GetVersionInfo >>$@.tmpfile 1569.ENDIF 1570.IF "$(DEFLIB6NAME)"!="" 1571.IF "$(COM)"=="GCC" 1572 @-$(RM) $(MISC)/$(SHL6TARGET).exp 1573 $(COMMAND_ECHO)dlltool --output-def $(MISC)/$(SHL6TARGET).exp --export-all-symbols \ 1574 `$(TYPE) $(foreach,i,$(DEFLIB6NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g` 1575 $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL6TARGET).exp | sed '/^;/d' >>$@.tmpfile 1576 @-$(RM) $(MISC)/$(SHL6TARGET).exp 1577.ELSE 1578.IF "$(SHL6USE_EXPORTS)"=="" 1579 @-$(RMHACK6) $(MISC)/$(SHL6TARGET).exp 1580 @$(SOLARENV)/bin/extract-linker-member.sh $(SLB)/$(DEFLIB6NAME).lib $(MISC)/$(SHL6TARGET).exp 1581 @$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL6TARGET).flt $(MISC)/$(SHL6TARGET).exp >>$@.tmpfile 1582 $(COMMAND_ECHO)$(RMHACK6) $(MISC)/$(SHL6TARGET).exp 1583.ELSE # "$(SHL6USE_EXPORTS)"=="" 1584 @$(DUMPBIN) -DIRECTIVES $(foreach,i,$(DEFLIB6NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL6TARGET).direct 1585 @$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF6FILTER) $(MISC)/$(SHL6TARGET).direct >>$@.tmpfile 1586.ENDIF # "$(SHL6USE_EXPORTS)"=="" 1587.ENDIF 1588.ENDIF # "$(DEFLIB6NAME)"!="" 1589.IF "$(DEF6EXPORT1)"!="" 1590 @echo $(DEF6EXPORT1) >>$@.tmpfile 1591.ENDIF 1592.IF "$(DEF6EXPORT2)"!="" 1593 @echo $(DEF6EXPORT2) >>$@.tmpfile 1594.ENDIF 1595.IF "$(DEF6EXPORT3)"!="" 1596 @echo $(DEF6EXPORT3) >>$@.tmpfile 1597.ENDIF 1598.IF "$(DEF6EXPORT4)"!="" 1599 @echo $(DEF6EXPORT4) >>$@.tmpfile 1600.ENDIF 1601.IF "$(DEF6EXPORT5)"!="" 1602 @echo $(DEF6EXPORT5) >>$@.tmpfile 1603.ENDIF 1604.IF "$(DEF6EXPORT6)"!="" 1605 @echo $(DEF6EXPORT6) >>$@.tmpfile 1606.ENDIF 1607.IF "$(DEF6EXPORT7)"!="" 1608 @echo $(DEF6EXPORT7) >>$@.tmpfile 1609.ENDIF 1610.IF "$(DEF6EXPORT8)"!="" 1611 @echo $(DEF6EXPORT8) >>$@.tmpfile 1612.ENDIF 1613.IF "$(DEF6EXPORT9)"!="" 1614 @echo $(DEF6EXPORT9) >>$@.tmpfile 1615.ENDIF 1616.IF "$(DEF6EXPORT10)"!="" 1617 @echo $(DEF6EXPORT10) >>$@.tmpfile 1618.ENDIF 1619.IF "$(DEF6EXPORT11)"!="" 1620 @echo $(DEF6EXPORT11) >>$@.tmpfile 1621.ENDIF 1622.IF "$(DEF6EXPORT12)"!="" 1623 @echo $(DEF6EXPORT12) >>$@.tmpfile 1624.ENDIF 1625.IF "$(DEF6EXPORT13)"!="" 1626 @echo $(DEF6EXPORT13) >>$@.tmpfile 1627.ENDIF 1628.IF "$(DEF6EXPORT14)"!="" 1629 @echo $(DEF6EXPORT14) >>$@.tmpfile 1630.ENDIF 1631.IF "$(DEF6EXPORT15)"!="" 1632 @echo $(DEF6EXPORT15) >>$@.tmpfile 1633.ENDIF 1634.IF "$(DEF6EXPORT16)"!="" 1635 @echo $(DEF6EXPORT16) >>$@.tmpfile 1636.ENDIF 1637.IF "$(DEF6EXPORT17)"!="" 1638 @echo $(DEF6EXPORT17) >>$@.tmpfile 1639.ENDIF 1640.IF "$(DEF6EXPORT18)"!="" 1641 @echo $(DEF6EXPORT18) >>$@.tmpfile 1642.ENDIF 1643.IF "$(DEF6EXPORT19)"!="" 1644 @echo $(DEF6EXPORT19) >>$@.tmpfile 1645.ENDIF 1646.IF "$(DEF6EXPORT20)"!="" 1647 @echo $(DEF6EXPORT20) >>$@.tmpfile 1648.ENDIF 1649.IF "$(DEF6EXPORTFILE)"!="" 1650.IF "$(COM)"=="GCC" 1651 $(COMMAND_ECHO)$(TYPE) $(DEF6EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile 1652.ELSE 1653 $(COMMAND_ECHO)$(TYPE) $(DEF6EXPORTFILE) >> $@.tmpfile 1654.ENDIF 1655.ENDIF 1656 @-$(RM) $@ 1657 @$(RENAME) $@.tmpfile $@ 1658.ENDIF # "$(GUI)"=="WNT" 1659 1660.IF "$(GUI)"=="OS2" 1661 1662#21/02/2006 YD dll names must be 8.3, invoke fix script 1663#check osl/os2/module.c/osl_loadModule() 1664SHL6TARGET8=$(shell @fix_shl.cmd $(SHL6TARGETN:f)) 1665 1666DEF6FILTER=$(SOLARENV)/inc/dummy.flt 1667DEF6NAMELIST=$(foreach,i,$(DEFLIB6NAME) $(SLB)/$(i).lib) 1668 1669.IF "$(link_always)"=="" 1670$(DEF6TARGETN) : \ 1671 $(DEF6DEPN) \ 1672 $(DEF6EXPORTFILE) 1673.ELSE # "$(link_always)"=="" 1674$(DEF6TARGETN) .PHONY : 1675.ENDIF # "$(link_always)"=="" 1676 @+-$(RM) $@.tmpfile 1677 @echo "Making: module definition file" $(@:f) 1678 @echo LIBRARY $(SHL6TARGET8) INITINSTANCE TERMINSTANCE >$@.tmpfile 1679 @echo DATA MULTIPLE >>$@.tmpfile 1680 @echo EXPORTS >>$@.tmpfile 1681.IF "$(VERSIONOBJ)"!="" 1682# getversioninfo fuer alle!! 1683 @echo _GetVersionInfo >$@.tmp_ord 1684.ENDIF 1685 1686.IF "$(DEFLIB6NAME)"!="" 1687 @+echo $(SLB)/$(DEFLIB6NAME).lib 1688 @+emxexp $(DEF6NAMELIST) | fix_exp_file >> $@.tmp_ord 1689.ENDIF # "$(DEFLIB6NAME)"!="" 1690 1691.IF "$(DEF6EXPORT1)"!="" 1692 @echo $(DEF6EXPORT1) >>$@.tmpfile 1693.ENDIF 1694.IF "$(DEF6EXPORT2)"!="" 1695 @echo $(DEF6EXPORT2) >>$@.tmpfile 1696.ENDIF 1697.IF "$(DEF6EXPORT3)"!="" 1698 @echo $(DEF6EXPORT3) >>$@.tmpfile 1699.ENDIF 1700.IF "$(DEF6EXPORT4)"!="" 1701 @echo $(DEF6EXPORT4) >>$@.tmpfile 1702.ENDIF 1703.IF "$(DEF6EXPORT5)"!="" 1704 @echo $(DEF6EXPORT5) >>$@.tmpfile 1705.ENDIF 1706.IF "$(DEF6EXPORT6)"!="" 1707 @echo $(DEF6EXPORT6) >>$@.tmpfile 1708.ENDIF 1709.IF "$(DEF6EXPORT7)"!="" 1710 @echo $(DEF6EXPORT7) >>$@.tmpfile 1711.ENDIF 1712.IF "$(DEF6EXPORT8)"!="" 1713 @echo $(DEF6EXPORT8) >>$@.tmpfile 1714.ENDIF 1715.IF "$(DEF6EXPORT9)"!="" 1716 @echo $(DEF6EXPORT9) >>$@.tmpfile 1717.ENDIF 1718.IF "$(DEF6EXPORT10)"!="" 1719 @echo $(DEF6EXPORT10) >>$@.tmpfile 1720.ENDIF 1721.IF "$(DEF6EXPORT11)"!="" 1722 @echo $(DEF6EXPORT11) >>$@.tmpfile 1723.ENDIF 1724.IF "$(DEF6EXPORT12)"!="" 1725 @echo $(DEF6EXPORT12) >>$@.tmpfile 1726.ENDIF 1727.IF "$(DEF6EXPORT13)"!="" 1728 @echo $(DEF6EXPORT13) >>$@.tmpfile 1729.ENDIF 1730.IF "$(DEF6EXPORT14)"!="" 1731 @echo $(DEF6EXPORT14) >>$@.tmpfile 1732.ENDIF 1733.IF "$(DEF6EXPORT15)"!="" 1734 @echo $(DEF6EXPORT15) >>$@.tmpfile 1735.ENDIF 1736.IF "$(DEF6EXPORT16)"!="" 1737 @echo $(DEF6EXPORT16) >>$@.tmpfile 1738.ENDIF 1739.IF "$(DEF6EXPORT17)"!="" 1740 @echo $(DEF6EXPORT17) >>$@.tmpfile 1741.ENDIF 1742.IF "$(DEF6EXPORT18)"!="" 1743 @echo $(DEF6EXPORT18) >>$@.tmpfile 1744.ENDIF 1745.IF "$(DEF6EXPORT19)"!="" 1746 @echo $(DEF6EXPORT19) >>$@.tmpfile 1747.ENDIF 1748.IF "$(DEF6EXPORT20)"!="" 1749 @echo $(DEF6EXPORT20) >>$@.tmpfile 1750.ENDIF 1751.IF "$(DEF6EXPORTFILE)"!="" 1752 @fix_def_file < $(DEF6EXPORTFILE) >> $@.tmp_ord 1753.ENDIF 1754 @sort < $@.tmp_ord | uniq > $@.exptmpfile 1755 @fix_def_ord < $@.exptmpfile >> $@.tmpfile 1756 @+-$(RM) $@ 1757 $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@ 1758 @+-$(RM) $@.tmp_ord 1759 @+-$(RM) $@.exptmpfile 1760.IF "$(SHL6USE_EXPORTS)"=="" || "$(SHL6USE_EXPORTS)"=="ordinal" 1761#03/11/2012 if 'name' is not used, export from def file (with ordinals) 1762 @echo Build import library from DEF file. 1763 @+-$(RM) $(LB)/$(SHL6TARGETN:b).lib 1764 $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(LB)/$(SHL6TARGETN:b).lib $@ 1765.ENDIF # "$(SHL6USE_EXPORTS)"=="" 1766 1767.ENDIF # "$(GUI)"=="OS2" 1768 1769.IF "$(GUI)"=="UNX" 1770$(DEF6TARGETN): \ 1771 $(DEF6DEPN) \ 1772 $(DEF6EXPORTFILE) 1773 @echo just a dummy for UNIX > $@ 1774.ENDIF 1775.ENDIF # "$(DEF6TARGETN)"!="" 1776 1777 1778# Anweisungen fuer das Linken 1779# unroll begin 1780 1781.IF "$(DEF7TARGETN)"!="" 1782 1783#to make intuitiv naming work 1784.IF "$(DEF7LIBNAME)"!="" 1785DEFLIB7NAME*=$(DEF7LIBNAME) 1786.ENDIF # "$(DEF7LIBNAME)"!="" 1787 1788.IF "$(DEFLIB7NAME)"!="" 1789DEF7DEPN+=$(foreach,i,$(DEFLIB7NAME) $(SLB)/$(i).lib) 1790.ENDIF 1791 1792.IF "$(SHL7VERSIONMAP)"!="" 1793.IF "$(DEF7EXPORTFILE)"=="" 1794.IF "$(GUI)"=="WNT" 1795DEF7EXPORTFILE=$(MISC)/$(SHL7VERSIONMAP:b)_$(SHL7TARGET).dxp 1796.IF "$(COM)"=="GCC" 1797$(DEF7EXPORTFILE) : $(SHL7OBJS) $(SHL7LIBS) 1798.ENDIF # .IF "$(COM)"=="GCC" 1799 1800$(DEF7EXPORTFILE) : $(SHL7VERSIONMAP) 1801 $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ 1802.IF "$(COM)"!="GCC" 1803# Wildcards in a version script are a GCC concept -- the GCC branch below 1804# pulls them out into a .symbols-regexp and matches them against the real 1805# objects. MSVC has no equivalent, and asking link.exe to export a literal 1806# "_ZTI*" fails with LNK2001, so drop those lines here. Match "*" alone: 1807# every MSVC-mangled C++ name begins with "?", so "[*?]" would drop the lot. 1808 $(COMMAND_ECHO)-$(GREP) -v "[*]" $@ > $@.nowild 1809 $(COMMAND_ECHO)$(RENAME) $@.nowild $@ 1810.ENDIF 1811.IF "$(COM)"=="GCC" 1812 $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols 1813 $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp 1814# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS 1815# Extract RTTI symbols from all the objects that will be used to build a shared library 1816 $(COMMAND_ECHO)nm -gP $(SHL7OBJS) \ 1817 `$(TYPE) /dev/null $(foreach,j,$(SHL7LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ 1818 | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols 1819# overwrite the map file generate into the local output tree with the generated 1820# exported symbols list 1821 $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@ 1822.ENDIF # .IF "$(COM)"=="GCC" 1823 1824.ENDIF # "$(GUI)"=="WNT" 1825 1826.IF "$(GUI)"=="OS2" 1827DEF7EXPORTFILE=$(MISC)/$(SHL7VERSIONMAP:b)_$(SHL7TARGET).dxp 1828$(DEF7EXPORTFILE) : $(SHL7VERSIONMAP) 1829 $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ 1830.ENDIF # "$(GUI)"=="OS2" 1831 1832.ENDIF # "$(DEF7EXPORTFILE)"=="" 1833.ENDIF # "$(SHL7VERSIONMAP)"!="" 1834 1835.IF "$(GUI)"=="WNT" 1836 1837DEF7FILTER=$(SOLARENV)/inc/dummy.flt 1838 1839RMHACK7:=$(RM) 1840 1841.IF "$(DEF7CEXP)"!="" 1842EXPORT_ALL_SWITCH=-A $(DEF7CEXP) 1843.ENDIF 1844 1845.IF "$(link_always)"=="" 1846$(DEF7TARGETN) : \ 1847 $(DEF7DEPN) \ 1848 $(DEF7EXPORTFILE) 1849.ELSE # "$(link_always)"=="" 1850$(DEF7TARGETN) .PHONY : 1851.ENDIF # "$(link_always)"=="" 1852 @-$(RM) $@.tmpfile 1853 @echo "Making: module definition file" $(@:f) 1854 @echo LIBRARY $(EMQ)"$(SHL7TARGETN:f)$(EMQ)" >$@.tmpfile 1855.IF "$(COM)"!="GCC" 1856 @echo HEAPSIZE 0 >>$@.tmpfile 1857.ENDIF 1858 @echo EXPORTS >>$@.tmpfile 1859.IF "$(VERSIONOBJ)"!="" 1860# getversioninfo fuer alle!! 1861 @echo GetVersionInfo >>$@.tmpfile 1862.ENDIF 1863.IF "$(DEFLIB7NAME)"!="" 1864.IF "$(COM)"=="GCC" 1865 @-$(RM) $(MISC)/$(SHL7TARGET).exp 1866 $(COMMAND_ECHO)dlltool --output-def $(MISC)/$(SHL7TARGET).exp --export-all-symbols \ 1867 `$(TYPE) $(foreach,i,$(DEFLIB7NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g` 1868 $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL7TARGET).exp | sed '/^;/d' >>$@.tmpfile 1869 @-$(RM) $(MISC)/$(SHL7TARGET).exp 1870.ELSE 1871.IF "$(SHL7USE_EXPORTS)"=="" 1872 @-$(RMHACK7) $(MISC)/$(SHL7TARGET).exp 1873 @$(SOLARENV)/bin/extract-linker-member.sh $(SLB)/$(DEFLIB7NAME).lib $(MISC)/$(SHL7TARGET).exp 1874 @$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL7TARGET).flt $(MISC)/$(SHL7TARGET).exp >>$@.tmpfile 1875 $(COMMAND_ECHO)$(RMHACK7) $(MISC)/$(SHL7TARGET).exp 1876.ELSE # "$(SHL7USE_EXPORTS)"=="" 1877 @$(DUMPBIN) -DIRECTIVES $(foreach,i,$(DEFLIB7NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL7TARGET).direct 1878 @$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF7FILTER) $(MISC)/$(SHL7TARGET).direct >>$@.tmpfile 1879.ENDIF # "$(SHL7USE_EXPORTS)"=="" 1880.ENDIF 1881.ENDIF # "$(DEFLIB7NAME)"!="" 1882.IF "$(DEF7EXPORT1)"!="" 1883 @echo $(DEF7EXPORT1) >>$@.tmpfile 1884.ENDIF 1885.IF "$(DEF7EXPORT2)"!="" 1886 @echo $(DEF7EXPORT2) >>$@.tmpfile 1887.ENDIF 1888.IF "$(DEF7EXPORT3)"!="" 1889 @echo $(DEF7EXPORT3) >>$@.tmpfile 1890.ENDIF 1891.IF "$(DEF7EXPORT4)"!="" 1892 @echo $(DEF7EXPORT4) >>$@.tmpfile 1893.ENDIF 1894.IF "$(DEF7EXPORT5)"!="" 1895 @echo $(DEF7EXPORT5) >>$@.tmpfile 1896.ENDIF 1897.IF "$(DEF7EXPORT6)"!="" 1898 @echo $(DEF7EXPORT6) >>$@.tmpfile 1899.ENDIF 1900.IF "$(DEF7EXPORT7)"!="" 1901 @echo $(DEF7EXPORT7) >>$@.tmpfile 1902.ENDIF 1903.IF "$(DEF7EXPORT8)"!="" 1904 @echo $(DEF7EXPORT8) >>$@.tmpfile 1905.ENDIF 1906.IF "$(DEF7EXPORT9)"!="" 1907 @echo $(DEF7EXPORT9) >>$@.tmpfile 1908.ENDIF 1909.IF "$(DEF7EXPORT10)"!="" 1910 @echo $(DEF7EXPORT10) >>$@.tmpfile 1911.ENDIF 1912.IF "$(DEF7EXPORT11)"!="" 1913 @echo $(DEF7EXPORT11) >>$@.tmpfile 1914.ENDIF 1915.IF "$(DEF7EXPORT12)"!="" 1916 @echo $(DEF7EXPORT12) >>$@.tmpfile 1917.ENDIF 1918.IF "$(DEF7EXPORT13)"!="" 1919 @echo $(DEF7EXPORT13) >>$@.tmpfile 1920.ENDIF 1921.IF "$(DEF7EXPORT14)"!="" 1922 @echo $(DEF7EXPORT14) >>$@.tmpfile 1923.ENDIF 1924.IF "$(DEF7EXPORT15)"!="" 1925 @echo $(DEF7EXPORT15) >>$@.tmpfile 1926.ENDIF 1927.IF "$(DEF7EXPORT16)"!="" 1928 @echo $(DEF7EXPORT16) >>$@.tmpfile 1929.ENDIF 1930.IF "$(DEF7EXPORT17)"!="" 1931 @echo $(DEF7EXPORT17) >>$@.tmpfile 1932.ENDIF 1933.IF "$(DEF7EXPORT18)"!="" 1934 @echo $(DEF7EXPORT18) >>$@.tmpfile 1935.ENDIF 1936.IF "$(DEF7EXPORT19)"!="" 1937 @echo $(DEF7EXPORT19) >>$@.tmpfile 1938.ENDIF 1939.IF "$(DEF7EXPORT20)"!="" 1940 @echo $(DEF7EXPORT20) >>$@.tmpfile 1941.ENDIF 1942.IF "$(DEF7EXPORTFILE)"!="" 1943.IF "$(COM)"=="GCC" 1944 $(COMMAND_ECHO)$(TYPE) $(DEF7EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile 1945.ELSE 1946 $(COMMAND_ECHO)$(TYPE) $(DEF7EXPORTFILE) >> $@.tmpfile 1947.ENDIF 1948.ENDIF 1949 @-$(RM) $@ 1950 @$(RENAME) $@.tmpfile $@ 1951.ENDIF # "$(GUI)"=="WNT" 1952 1953.IF "$(GUI)"=="OS2" 1954 1955#21/02/2006 YD dll names must be 8.3, invoke fix script 1956#check osl/os2/module.c/osl_loadModule() 1957SHL7TARGET8=$(shell @fix_shl.cmd $(SHL7TARGETN:f)) 1958 1959DEF7FILTER=$(SOLARENV)/inc/dummy.flt 1960DEF7NAMELIST=$(foreach,i,$(DEFLIB7NAME) $(SLB)/$(i).lib) 1961 1962.IF "$(link_always)"=="" 1963$(DEF7TARGETN) : \ 1964 $(DEF7DEPN) \ 1965 $(DEF7EXPORTFILE) 1966.ELSE # "$(link_always)"=="" 1967$(DEF7TARGETN) .PHONY : 1968.ENDIF # "$(link_always)"=="" 1969 @+-$(RM) $@.tmpfile 1970 @echo "Making: module definition file" $(@:f) 1971 @echo LIBRARY $(SHL7TARGET8) INITINSTANCE TERMINSTANCE >$@.tmpfile 1972 @echo DATA MULTIPLE >>$@.tmpfile 1973 @echo EXPORTS >>$@.tmpfile 1974.IF "$(VERSIONOBJ)"!="" 1975# getversioninfo fuer alle!! 1976 @echo _GetVersionInfo >$@.tmp_ord 1977.ENDIF 1978 1979.IF "$(DEFLIB7NAME)"!="" 1980 @+echo $(SLB)/$(DEFLIB7NAME).lib 1981 @+emxexp $(DEF7NAMELIST) | fix_exp_file >> $@.tmp_ord 1982.ENDIF # "$(DEFLIB7NAME)"!="" 1983 1984.IF "$(DEF7EXPORT1)"!="" 1985 @echo $(DEF7EXPORT1) >>$@.tmpfile 1986.ENDIF 1987.IF "$(DEF7EXPORT2)"!="" 1988 @echo $(DEF7EXPORT2) >>$@.tmpfile 1989.ENDIF 1990.IF "$(DEF7EXPORT3)"!="" 1991 @echo $(DEF7EXPORT3) >>$@.tmpfile 1992.ENDIF 1993.IF "$(DEF7EXPORT4)"!="" 1994 @echo $(DEF7EXPORT4) >>$@.tmpfile 1995.ENDIF 1996.IF "$(DEF7EXPORT5)"!="" 1997 @echo $(DEF7EXPORT5) >>$@.tmpfile 1998.ENDIF 1999.IF "$(DEF7EXPORT6)"!="" 2000 @echo $(DEF7EXPORT6) >>$@.tmpfile 2001.ENDIF 2002.IF "$(DEF7EXPORT7)"!="" 2003 @echo $(DEF7EXPORT7) >>$@.tmpfile 2004.ENDIF 2005.IF "$(DEF7EXPORT8)"!="" 2006 @echo $(DEF7EXPORT8) >>$@.tmpfile 2007.ENDIF 2008.IF "$(DEF7EXPORT9)"!="" 2009 @echo $(DEF7EXPORT9) >>$@.tmpfile 2010.ENDIF 2011.IF "$(DEF7EXPORT10)"!="" 2012 @echo $(DEF7EXPORT10) >>$@.tmpfile 2013.ENDIF 2014.IF "$(DEF7EXPORT11)"!="" 2015 @echo $(DEF7EXPORT11) >>$@.tmpfile 2016.ENDIF 2017.IF "$(DEF7EXPORT12)"!="" 2018 @echo $(DEF7EXPORT12) >>$@.tmpfile 2019.ENDIF 2020.IF "$(DEF7EXPORT13)"!="" 2021 @echo $(DEF7EXPORT13) >>$@.tmpfile 2022.ENDIF 2023.IF "$(DEF7EXPORT14)"!="" 2024 @echo $(DEF7EXPORT14) >>$@.tmpfile 2025.ENDIF 2026.IF "$(DEF7EXPORT15)"!="" 2027 @echo $(DEF7EXPORT15) >>$@.tmpfile 2028.ENDIF 2029.IF "$(DEF7EXPORT16)"!="" 2030 @echo $(DEF7EXPORT16) >>$@.tmpfile 2031.ENDIF 2032.IF "$(DEF7EXPORT17)"!="" 2033 @echo $(DEF7EXPORT17) >>$@.tmpfile 2034.ENDIF 2035.IF "$(DEF7EXPORT18)"!="" 2036 @echo $(DEF7EXPORT18) >>$@.tmpfile 2037.ENDIF 2038.IF "$(DEF7EXPORT19)"!="" 2039 @echo $(DEF7EXPORT19) >>$@.tmpfile 2040.ENDIF 2041.IF "$(DEF7EXPORT20)"!="" 2042 @echo $(DEF7EXPORT20) >>$@.tmpfile 2043.ENDIF 2044.IF "$(DEF7EXPORTFILE)"!="" 2045 @fix_def_file < $(DEF7EXPORTFILE) >> $@.tmp_ord 2046.ENDIF 2047 @sort < $@.tmp_ord | uniq > $@.exptmpfile 2048 @fix_def_ord < $@.exptmpfile >> $@.tmpfile 2049 @+-$(RM) $@ 2050 $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@ 2051 @+-$(RM) $@.tmp_ord 2052 @+-$(RM) $@.exptmpfile 2053.IF "$(SHL7USE_EXPORTS)"=="" || "$(SHL7USE_EXPORTS)"=="ordinal" 2054#03/11/2012 if 'name' is not used, export from def file (with ordinals) 2055 @echo Build import library from DEF file. 2056 @+-$(RM) $(LB)/$(SHL7TARGETN:b).lib 2057 $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(LB)/$(SHL7TARGETN:b).lib $@ 2058.ENDIF # "$(SHL7USE_EXPORTS)"=="" 2059 2060.ENDIF # "$(GUI)"=="OS2" 2061 2062.IF "$(GUI)"=="UNX" 2063$(DEF7TARGETN): \ 2064 $(DEF7DEPN) \ 2065 $(DEF7EXPORTFILE) 2066 @echo just a dummy for UNIX > $@ 2067.ENDIF 2068.ENDIF # "$(DEF7TARGETN)"!="" 2069 2070 2071# Anweisungen fuer das Linken 2072# unroll begin 2073 2074.IF "$(DEF8TARGETN)"!="" 2075 2076#to make intuitiv naming work 2077.IF "$(DEF8LIBNAME)"!="" 2078DEFLIB8NAME*=$(DEF8LIBNAME) 2079.ENDIF # "$(DEF8LIBNAME)"!="" 2080 2081.IF "$(DEFLIB8NAME)"!="" 2082DEF8DEPN+=$(foreach,i,$(DEFLIB8NAME) $(SLB)/$(i).lib) 2083.ENDIF 2084 2085.IF "$(SHL8VERSIONMAP)"!="" 2086.IF "$(DEF8EXPORTFILE)"=="" 2087.IF "$(GUI)"=="WNT" 2088DEF8EXPORTFILE=$(MISC)/$(SHL8VERSIONMAP:b)_$(SHL8TARGET).dxp 2089.IF "$(COM)"=="GCC" 2090$(DEF8EXPORTFILE) : $(SHL8OBJS) $(SHL8LIBS) 2091.ENDIF # .IF "$(COM)"=="GCC" 2092 2093$(DEF8EXPORTFILE) : $(SHL8VERSIONMAP) 2094 $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ 2095.IF "$(COM)"!="GCC" 2096# Wildcards in a version script are a GCC concept -- the GCC branch below 2097# pulls them out into a .symbols-regexp and matches them against the real 2098# objects. MSVC has no equivalent, and asking link.exe to export a literal 2099# "_ZTI*" fails with LNK2001, so drop those lines here. Match "*" alone: 2100# every MSVC-mangled C++ name begins with "?", so "[*?]" would drop the lot. 2101 $(COMMAND_ECHO)-$(GREP) -v "[*]" $@ > $@.nowild 2102 $(COMMAND_ECHO)$(RENAME) $@.nowild $@ 2103.ENDIF 2104.IF "$(COM)"=="GCC" 2105 $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols 2106 $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp 2107# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS 2108# Extract RTTI symbols from all the objects that will be used to build a shared library 2109 $(COMMAND_ECHO)nm -gP $(SHL8OBJS) \ 2110 `$(TYPE) /dev/null $(foreach,j,$(SHL8LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ 2111 | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols 2112# overwrite the map file generate into the local output tree with the generated 2113# exported symbols list 2114 $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@ 2115.ENDIF # .IF "$(COM)"=="GCC" 2116 2117.ENDIF # "$(GUI)"=="WNT" 2118 2119.IF "$(GUI)"=="OS2" 2120DEF8EXPORTFILE=$(MISC)/$(SHL8VERSIONMAP:b)_$(SHL8TARGET).dxp 2121$(DEF8EXPORTFILE) : $(SHL8VERSIONMAP) 2122 $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ 2123.ENDIF # "$(GUI)"=="OS2" 2124 2125.ENDIF # "$(DEF8EXPORTFILE)"=="" 2126.ENDIF # "$(SHL8VERSIONMAP)"!="" 2127 2128.IF "$(GUI)"=="WNT" 2129 2130DEF8FILTER=$(SOLARENV)/inc/dummy.flt 2131 2132RMHACK8:=$(RM) 2133 2134.IF "$(DEF8CEXP)"!="" 2135EXPORT_ALL_SWITCH=-A $(DEF8CEXP) 2136.ENDIF 2137 2138.IF "$(link_always)"=="" 2139$(DEF8TARGETN) : \ 2140 $(DEF8DEPN) \ 2141 $(DEF8EXPORTFILE) 2142.ELSE # "$(link_always)"=="" 2143$(DEF8TARGETN) .PHONY : 2144.ENDIF # "$(link_always)"=="" 2145 @-$(RM) $@.tmpfile 2146 @echo "Making: module definition file" $(@:f) 2147 @echo LIBRARY $(EMQ)"$(SHL8TARGETN:f)$(EMQ)" >$@.tmpfile 2148.IF "$(COM)"!="GCC" 2149 @echo HEAPSIZE 0 >>$@.tmpfile 2150.ENDIF 2151 @echo EXPORTS >>$@.tmpfile 2152.IF "$(VERSIONOBJ)"!="" 2153# getversioninfo fuer alle!! 2154 @echo GetVersionInfo >>$@.tmpfile 2155.ENDIF 2156.IF "$(DEFLIB8NAME)"!="" 2157.IF "$(COM)"=="GCC" 2158 @-$(RM) $(MISC)/$(SHL8TARGET).exp 2159 $(COMMAND_ECHO)dlltool --output-def $(MISC)/$(SHL8TARGET).exp --export-all-symbols \ 2160 `$(TYPE) $(foreach,i,$(DEFLIB8NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g` 2161 $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL8TARGET).exp | sed '/^;/d' >>$@.tmpfile 2162 @-$(RM) $(MISC)/$(SHL8TARGET).exp 2163.ELSE 2164.IF "$(SHL8USE_EXPORTS)"=="" 2165 @-$(RMHACK8) $(MISC)/$(SHL8TARGET).exp 2166 @$(SOLARENV)/bin/extract-linker-member.sh $(SLB)/$(DEFLIB8NAME).lib $(MISC)/$(SHL8TARGET).exp 2167 @$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL8TARGET).flt $(MISC)/$(SHL8TARGET).exp >>$@.tmpfile 2168 $(COMMAND_ECHO)$(RMHACK8) $(MISC)/$(SHL8TARGET).exp 2169.ELSE # "$(SHL8USE_EXPORTS)"=="" 2170 @$(DUMPBIN) -DIRECTIVES $(foreach,i,$(DEFLIB8NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL8TARGET).direct 2171 @$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF8FILTER) $(MISC)/$(SHL8TARGET).direct >>$@.tmpfile 2172.ENDIF # "$(SHL8USE_EXPORTS)"=="" 2173.ENDIF 2174.ENDIF # "$(DEFLIB8NAME)"!="" 2175.IF "$(DEF8EXPORT1)"!="" 2176 @echo $(DEF8EXPORT1) >>$@.tmpfile 2177.ENDIF 2178.IF "$(DEF8EXPORT2)"!="" 2179 @echo $(DEF8EXPORT2) >>$@.tmpfile 2180.ENDIF 2181.IF "$(DEF8EXPORT3)"!="" 2182 @echo $(DEF8EXPORT3) >>$@.tmpfile 2183.ENDIF 2184.IF "$(DEF8EXPORT4)"!="" 2185 @echo $(DEF8EXPORT4) >>$@.tmpfile 2186.ENDIF 2187.IF "$(DEF8EXPORT5)"!="" 2188 @echo $(DEF8EXPORT5) >>$@.tmpfile 2189.ENDIF 2190.IF "$(DEF8EXPORT6)"!="" 2191 @echo $(DEF8EXPORT6) >>$@.tmpfile 2192.ENDIF 2193.IF "$(DEF8EXPORT7)"!="" 2194 @echo $(DEF8EXPORT7) >>$@.tmpfile 2195.ENDIF 2196.IF "$(DEF8EXPORT8)"!="" 2197 @echo $(DEF8EXPORT8) >>$@.tmpfile 2198.ENDIF 2199.IF "$(DEF8EXPORT9)"!="" 2200 @echo $(DEF8EXPORT9) >>$@.tmpfile 2201.ENDIF 2202.IF "$(DEF8EXPORT10)"!="" 2203 @echo $(DEF8EXPORT10) >>$@.tmpfile 2204.ENDIF 2205.IF "$(DEF8EXPORT11)"!="" 2206 @echo $(DEF8EXPORT11) >>$@.tmpfile 2207.ENDIF 2208.IF "$(DEF8EXPORT12)"!="" 2209 @echo $(DEF8EXPORT12) >>$@.tmpfile 2210.ENDIF 2211.IF "$(DEF8EXPORT13)"!="" 2212 @echo $(DEF8EXPORT13) >>$@.tmpfile 2213.ENDIF 2214.IF "$(DEF8EXPORT14)"!="" 2215 @echo $(DEF8EXPORT14) >>$@.tmpfile 2216.ENDIF 2217.IF "$(DEF8EXPORT15)"!="" 2218 @echo $(DEF8EXPORT15) >>$@.tmpfile 2219.ENDIF 2220.IF "$(DEF8EXPORT16)"!="" 2221 @echo $(DEF8EXPORT16) >>$@.tmpfile 2222.ENDIF 2223.IF "$(DEF8EXPORT17)"!="" 2224 @echo $(DEF8EXPORT17) >>$@.tmpfile 2225.ENDIF 2226.IF "$(DEF8EXPORT18)"!="" 2227 @echo $(DEF8EXPORT18) >>$@.tmpfile 2228.ENDIF 2229.IF "$(DEF8EXPORT19)"!="" 2230 @echo $(DEF8EXPORT19) >>$@.tmpfile 2231.ENDIF 2232.IF "$(DEF8EXPORT20)"!="" 2233 @echo $(DEF8EXPORT20) >>$@.tmpfile 2234.ENDIF 2235.IF "$(DEF8EXPORTFILE)"!="" 2236.IF "$(COM)"=="GCC" 2237 $(COMMAND_ECHO)$(TYPE) $(DEF8EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile 2238.ELSE 2239 $(COMMAND_ECHO)$(TYPE) $(DEF8EXPORTFILE) >> $@.tmpfile 2240.ENDIF 2241.ENDIF 2242 @-$(RM) $@ 2243 @$(RENAME) $@.tmpfile $@ 2244.ENDIF # "$(GUI)"=="WNT" 2245 2246.IF "$(GUI)"=="OS2" 2247 2248#21/02/2006 YD dll names must be 8.3, invoke fix script 2249#check osl/os2/module.c/osl_loadModule() 2250SHL8TARGET8=$(shell @fix_shl.cmd $(SHL8TARGETN:f)) 2251 2252DEF8FILTER=$(SOLARENV)/inc/dummy.flt 2253DEF8NAMELIST=$(foreach,i,$(DEFLIB8NAME) $(SLB)/$(i).lib) 2254 2255.IF "$(link_always)"=="" 2256$(DEF8TARGETN) : \ 2257 $(DEF8DEPN) \ 2258 $(DEF8EXPORTFILE) 2259.ELSE # "$(link_always)"=="" 2260$(DEF8TARGETN) .PHONY : 2261.ENDIF # "$(link_always)"=="" 2262 @+-$(RM) $@.tmpfile 2263 @echo "Making: module definition file" $(@:f) 2264 @echo LIBRARY $(SHL8TARGET8) INITINSTANCE TERMINSTANCE >$@.tmpfile 2265 @echo DATA MULTIPLE >>$@.tmpfile 2266 @echo EXPORTS >>$@.tmpfile 2267.IF "$(VERSIONOBJ)"!="" 2268# getversioninfo fuer alle!! 2269 @echo _GetVersionInfo >$@.tmp_ord 2270.ENDIF 2271 2272.IF "$(DEFLIB8NAME)"!="" 2273 @+echo $(SLB)/$(DEFLIB8NAME).lib 2274 @+emxexp $(DEF8NAMELIST) | fix_exp_file >> $@.tmp_ord 2275.ENDIF # "$(DEFLIB8NAME)"!="" 2276 2277.IF "$(DEF8EXPORT1)"!="" 2278 @echo $(DEF8EXPORT1) >>$@.tmpfile 2279.ENDIF 2280.IF "$(DEF8EXPORT2)"!="" 2281 @echo $(DEF8EXPORT2) >>$@.tmpfile 2282.ENDIF 2283.IF "$(DEF8EXPORT3)"!="" 2284 @echo $(DEF8EXPORT3) >>$@.tmpfile 2285.ENDIF 2286.IF "$(DEF8EXPORT4)"!="" 2287 @echo $(DEF8EXPORT4) >>$@.tmpfile 2288.ENDIF 2289.IF "$(DEF8EXPORT5)"!="" 2290 @echo $(DEF8EXPORT5) >>$@.tmpfile 2291.ENDIF 2292.IF "$(DEF8EXPORT6)"!="" 2293 @echo $(DEF8EXPORT6) >>$@.tmpfile 2294.ENDIF 2295.IF "$(DEF8EXPORT7)"!="" 2296 @echo $(DEF8EXPORT7) >>$@.tmpfile 2297.ENDIF 2298.IF "$(DEF8EXPORT8)"!="" 2299 @echo $(DEF8EXPORT8) >>$@.tmpfile 2300.ENDIF 2301.IF "$(DEF8EXPORT9)"!="" 2302 @echo $(DEF8EXPORT9) >>$@.tmpfile 2303.ENDIF 2304.IF "$(DEF8EXPORT10)"!="" 2305 @echo $(DEF8EXPORT10) >>$@.tmpfile 2306.ENDIF 2307.IF "$(DEF8EXPORT11)"!="" 2308 @echo $(DEF8EXPORT11) >>$@.tmpfile 2309.ENDIF 2310.IF "$(DEF8EXPORT12)"!="" 2311 @echo $(DEF8EXPORT12) >>$@.tmpfile 2312.ENDIF 2313.IF "$(DEF8EXPORT13)"!="" 2314 @echo $(DEF8EXPORT13) >>$@.tmpfile 2315.ENDIF 2316.IF "$(DEF8EXPORT14)"!="" 2317 @echo $(DEF8EXPORT14) >>$@.tmpfile 2318.ENDIF 2319.IF "$(DEF8EXPORT15)"!="" 2320 @echo $(DEF8EXPORT15) >>$@.tmpfile 2321.ENDIF 2322.IF "$(DEF8EXPORT16)"!="" 2323 @echo $(DEF8EXPORT16) >>$@.tmpfile 2324.ENDIF 2325.IF "$(DEF8EXPORT17)"!="" 2326 @echo $(DEF8EXPORT17) >>$@.tmpfile 2327.ENDIF 2328.IF "$(DEF8EXPORT18)"!="" 2329 @echo $(DEF8EXPORT18) >>$@.tmpfile 2330.ENDIF 2331.IF "$(DEF8EXPORT19)"!="" 2332 @echo $(DEF8EXPORT19) >>$@.tmpfile 2333.ENDIF 2334.IF "$(DEF8EXPORT20)"!="" 2335 @echo $(DEF8EXPORT20) >>$@.tmpfile 2336.ENDIF 2337.IF "$(DEF8EXPORTFILE)"!="" 2338 @fix_def_file < $(DEF8EXPORTFILE) >> $@.tmp_ord 2339.ENDIF 2340 @sort < $@.tmp_ord | uniq > $@.exptmpfile 2341 @fix_def_ord < $@.exptmpfile >> $@.tmpfile 2342 @+-$(RM) $@ 2343 $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@ 2344 @+-$(RM) $@.tmp_ord 2345 @+-$(RM) $@.exptmpfile 2346.IF "$(SHL8USE_EXPORTS)"=="" || "$(SHL8USE_EXPORTS)"=="ordinal" 2347#03/11/2012 if 'name' is not used, export from def file (with ordinals) 2348 @echo Build import library from DEF file. 2349 @+-$(RM) $(LB)/$(SHL8TARGETN:b).lib 2350 $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(LB)/$(SHL8TARGETN:b).lib $@ 2351.ENDIF # "$(SHL8USE_EXPORTS)"=="" 2352 2353.ENDIF # "$(GUI)"=="OS2" 2354 2355.IF "$(GUI)"=="UNX" 2356$(DEF8TARGETN): \ 2357 $(DEF8DEPN) \ 2358 $(DEF8EXPORTFILE) 2359 @echo just a dummy for UNIX > $@ 2360.ENDIF 2361.ENDIF # "$(DEF8TARGETN)"!="" 2362 2363 2364# Anweisungen fuer das Linken 2365# unroll begin 2366 2367.IF "$(DEF9TARGETN)"!="" 2368 2369#to make intuitiv naming work 2370.IF "$(DEF9LIBNAME)"!="" 2371DEFLIB9NAME*=$(DEF9LIBNAME) 2372.ENDIF # "$(DEF9LIBNAME)"!="" 2373 2374.IF "$(DEFLIB9NAME)"!="" 2375DEF9DEPN+=$(foreach,i,$(DEFLIB9NAME) $(SLB)/$(i).lib) 2376.ENDIF 2377 2378.IF "$(SHL9VERSIONMAP)"!="" 2379.IF "$(DEF9EXPORTFILE)"=="" 2380.IF "$(GUI)"=="WNT" 2381DEF9EXPORTFILE=$(MISC)/$(SHL9VERSIONMAP:b)_$(SHL9TARGET).dxp 2382.IF "$(COM)"=="GCC" 2383$(DEF9EXPORTFILE) : $(SHL9OBJS) $(SHL9LIBS) 2384.ENDIF # .IF "$(COM)"=="GCC" 2385 2386$(DEF9EXPORTFILE) : $(SHL9VERSIONMAP) 2387 $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ 2388.IF "$(COM)"!="GCC" 2389# Wildcards in a version script are a GCC concept -- the GCC branch below 2390# pulls them out into a .symbols-regexp and matches them against the real 2391# objects. MSVC has no equivalent, and asking link.exe to export a literal 2392# "_ZTI*" fails with LNK2001, so drop those lines here. Match "*" alone: 2393# every MSVC-mangled C++ name begins with "?", so "[*?]" would drop the lot. 2394 $(COMMAND_ECHO)-$(GREP) -v "[*]" $@ > $@.nowild 2395 $(COMMAND_ECHO)$(RENAME) $@.nowild $@ 2396.ENDIF 2397.IF "$(COM)"=="GCC" 2398 $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols 2399 $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp 2400# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS 2401# Extract RTTI symbols from all the objects that will be used to build a shared library 2402 $(COMMAND_ECHO)nm -gP $(SHL9OBJS) \ 2403 `$(TYPE) /dev/null $(foreach,j,$(SHL9LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ 2404 | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols 2405# overwrite the map file generate into the local output tree with the generated 2406# exported symbols list 2407 $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@ 2408.ENDIF # .IF "$(COM)"=="GCC" 2409 2410.ENDIF # "$(GUI)"=="WNT" 2411 2412.IF "$(GUI)"=="OS2" 2413DEF9EXPORTFILE=$(MISC)/$(SHL9VERSIONMAP:b)_$(SHL9TARGET).dxp 2414$(DEF9EXPORTFILE) : $(SHL9VERSIONMAP) 2415 $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ 2416.ENDIF # "$(GUI)"=="OS2" 2417 2418.ENDIF # "$(DEF9EXPORTFILE)"=="" 2419.ENDIF # "$(SHL9VERSIONMAP)"!="" 2420 2421.IF "$(GUI)"=="WNT" 2422 2423DEF9FILTER=$(SOLARENV)/inc/dummy.flt 2424 2425RMHACK9:=$(RM) 2426 2427.IF "$(DEF9CEXP)"!="" 2428EXPORT_ALL_SWITCH=-A $(DEF9CEXP) 2429.ENDIF 2430 2431.IF "$(link_always)"=="" 2432$(DEF9TARGETN) : \ 2433 $(DEF9DEPN) \ 2434 $(DEF9EXPORTFILE) 2435.ELSE # "$(link_always)"=="" 2436$(DEF9TARGETN) .PHONY : 2437.ENDIF # "$(link_always)"=="" 2438 @-$(RM) $@.tmpfile 2439 @echo "Making: module definition file" $(@:f) 2440 @echo LIBRARY $(EMQ)"$(SHL9TARGETN:f)$(EMQ)" >$@.tmpfile 2441.IF "$(COM)"!="GCC" 2442 @echo HEAPSIZE 0 >>$@.tmpfile 2443.ENDIF 2444 @echo EXPORTS >>$@.tmpfile 2445.IF "$(VERSIONOBJ)"!="" 2446# getversioninfo fuer alle!! 2447 @echo GetVersionInfo >>$@.tmpfile 2448.ENDIF 2449.IF "$(DEFLIB9NAME)"!="" 2450.IF "$(COM)"=="GCC" 2451 @-$(RM) $(MISC)/$(SHL9TARGET).exp 2452 $(COMMAND_ECHO)dlltool --output-def $(MISC)/$(SHL9TARGET).exp --export-all-symbols \ 2453 `$(TYPE) $(foreach,i,$(DEFLIB9NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g` 2454 $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL9TARGET).exp | sed '/^;/d' >>$@.tmpfile 2455 @-$(RM) $(MISC)/$(SHL9TARGET).exp 2456.ELSE 2457.IF "$(SHL9USE_EXPORTS)"=="" 2458 @-$(RMHACK9) $(MISC)/$(SHL9TARGET).exp 2459 @$(SOLARENV)/bin/extract-linker-member.sh $(SLB)/$(DEFLIB9NAME).lib $(MISC)/$(SHL9TARGET).exp 2460 @$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL9TARGET).flt $(MISC)/$(SHL9TARGET).exp >>$@.tmpfile 2461 $(COMMAND_ECHO)$(RMHACK9) $(MISC)/$(SHL9TARGET).exp 2462.ELSE # "$(SHL9USE_EXPORTS)"=="" 2463 @$(DUMPBIN) -DIRECTIVES $(foreach,i,$(DEFLIB9NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL9TARGET).direct 2464 @$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF9FILTER) $(MISC)/$(SHL9TARGET).direct >>$@.tmpfile 2465.ENDIF # "$(SHL9USE_EXPORTS)"=="" 2466.ENDIF 2467.ENDIF # "$(DEFLIB9NAME)"!="" 2468.IF "$(DEF9EXPORT1)"!="" 2469 @echo $(DEF9EXPORT1) >>$@.tmpfile 2470.ENDIF 2471.IF "$(DEF9EXPORT2)"!="" 2472 @echo $(DEF9EXPORT2) >>$@.tmpfile 2473.ENDIF 2474.IF "$(DEF9EXPORT3)"!="" 2475 @echo $(DEF9EXPORT3) >>$@.tmpfile 2476.ENDIF 2477.IF "$(DEF9EXPORT4)"!="" 2478 @echo $(DEF9EXPORT4) >>$@.tmpfile 2479.ENDIF 2480.IF "$(DEF9EXPORT5)"!="" 2481 @echo $(DEF9EXPORT5) >>$@.tmpfile 2482.ENDIF 2483.IF "$(DEF9EXPORT6)"!="" 2484 @echo $(DEF9EXPORT6) >>$@.tmpfile 2485.ENDIF 2486.IF "$(DEF9EXPORT7)"!="" 2487 @echo $(DEF9EXPORT7) >>$@.tmpfile 2488.ENDIF 2489.IF "$(DEF9EXPORT8)"!="" 2490 @echo $(DEF9EXPORT8) >>$@.tmpfile 2491.ENDIF 2492.IF "$(DEF9EXPORT9)"!="" 2493 @echo $(DEF9EXPORT9) >>$@.tmpfile 2494.ENDIF 2495.IF "$(DEF9EXPORT10)"!="" 2496 @echo $(DEF9EXPORT10) >>$@.tmpfile 2497.ENDIF 2498.IF "$(DEF9EXPORT11)"!="" 2499 @echo $(DEF9EXPORT11) >>$@.tmpfile 2500.ENDIF 2501.IF "$(DEF9EXPORT12)"!="" 2502 @echo $(DEF9EXPORT12) >>$@.tmpfile 2503.ENDIF 2504.IF "$(DEF9EXPORT13)"!="" 2505 @echo $(DEF9EXPORT13) >>$@.tmpfile 2506.ENDIF 2507.IF "$(DEF9EXPORT14)"!="" 2508 @echo $(DEF9EXPORT14) >>$@.tmpfile 2509.ENDIF 2510.IF "$(DEF9EXPORT15)"!="" 2511 @echo $(DEF9EXPORT15) >>$@.tmpfile 2512.ENDIF 2513.IF "$(DEF9EXPORT16)"!="" 2514 @echo $(DEF9EXPORT16) >>$@.tmpfile 2515.ENDIF 2516.IF "$(DEF9EXPORT17)"!="" 2517 @echo $(DEF9EXPORT17) >>$@.tmpfile 2518.ENDIF 2519.IF "$(DEF9EXPORT18)"!="" 2520 @echo $(DEF9EXPORT18) >>$@.tmpfile 2521.ENDIF 2522.IF "$(DEF9EXPORT19)"!="" 2523 @echo $(DEF9EXPORT19) >>$@.tmpfile 2524.ENDIF 2525.IF "$(DEF9EXPORT20)"!="" 2526 @echo $(DEF9EXPORT20) >>$@.tmpfile 2527.ENDIF 2528.IF "$(DEF9EXPORTFILE)"!="" 2529.IF "$(COM)"=="GCC" 2530 $(COMMAND_ECHO)$(TYPE) $(DEF9EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile 2531.ELSE 2532 $(COMMAND_ECHO)$(TYPE) $(DEF9EXPORTFILE) >> $@.tmpfile 2533.ENDIF 2534.ENDIF 2535 @-$(RM) $@ 2536 @$(RENAME) $@.tmpfile $@ 2537.ENDIF # "$(GUI)"=="WNT" 2538 2539.IF "$(GUI)"=="OS2" 2540 2541#21/02/2006 YD dll names must be 8.3, invoke fix script 2542#check osl/os2/module.c/osl_loadModule() 2543SHL9TARGET8=$(shell @fix_shl.cmd $(SHL9TARGETN:f)) 2544 2545DEF9FILTER=$(SOLARENV)/inc/dummy.flt 2546DEF9NAMELIST=$(foreach,i,$(DEFLIB9NAME) $(SLB)/$(i).lib) 2547 2548.IF "$(link_always)"=="" 2549$(DEF9TARGETN) : \ 2550 $(DEF9DEPN) \ 2551 $(DEF9EXPORTFILE) 2552.ELSE # "$(link_always)"=="" 2553$(DEF9TARGETN) .PHONY : 2554.ENDIF # "$(link_always)"=="" 2555 @+-$(RM) $@.tmpfile 2556 @echo "Making: module definition file" $(@:f) 2557 @echo LIBRARY $(SHL9TARGET8) INITINSTANCE TERMINSTANCE >$@.tmpfile 2558 @echo DATA MULTIPLE >>$@.tmpfile 2559 @echo EXPORTS >>$@.tmpfile 2560.IF "$(VERSIONOBJ)"!="" 2561# getversioninfo fuer alle!! 2562 @echo _GetVersionInfo >$@.tmp_ord 2563.ENDIF 2564 2565.IF "$(DEFLIB9NAME)"!="" 2566 @+echo $(SLB)/$(DEFLIB9NAME).lib 2567 @+emxexp $(DEF9NAMELIST) | fix_exp_file >> $@.tmp_ord 2568.ENDIF # "$(DEFLIB9NAME)"!="" 2569 2570.IF "$(DEF9EXPORT1)"!="" 2571 @echo $(DEF9EXPORT1) >>$@.tmpfile 2572.ENDIF 2573.IF "$(DEF9EXPORT2)"!="" 2574 @echo $(DEF9EXPORT2) >>$@.tmpfile 2575.ENDIF 2576.IF "$(DEF9EXPORT3)"!="" 2577 @echo $(DEF9EXPORT3) >>$@.tmpfile 2578.ENDIF 2579.IF "$(DEF9EXPORT4)"!="" 2580 @echo $(DEF9EXPORT4) >>$@.tmpfile 2581.ENDIF 2582.IF "$(DEF9EXPORT5)"!="" 2583 @echo $(DEF9EXPORT5) >>$@.tmpfile 2584.ENDIF 2585.IF "$(DEF9EXPORT6)"!="" 2586 @echo $(DEF9EXPORT6) >>$@.tmpfile 2587.ENDIF 2588.IF "$(DEF9EXPORT7)"!="" 2589 @echo $(DEF9EXPORT7) >>$@.tmpfile 2590.ENDIF 2591.IF "$(DEF9EXPORT8)"!="" 2592 @echo $(DEF9EXPORT8) >>$@.tmpfile 2593.ENDIF 2594.IF "$(DEF9EXPORT9)"!="" 2595 @echo $(DEF9EXPORT9) >>$@.tmpfile 2596.ENDIF 2597.IF "$(DEF9EXPORT10)"!="" 2598 @echo $(DEF9EXPORT10) >>$@.tmpfile 2599.ENDIF 2600.IF "$(DEF9EXPORT11)"!="" 2601 @echo $(DEF9EXPORT11) >>$@.tmpfile 2602.ENDIF 2603.IF "$(DEF9EXPORT12)"!="" 2604 @echo $(DEF9EXPORT12) >>$@.tmpfile 2605.ENDIF 2606.IF "$(DEF9EXPORT13)"!="" 2607 @echo $(DEF9EXPORT13) >>$@.tmpfile 2608.ENDIF 2609.IF "$(DEF9EXPORT14)"!="" 2610 @echo $(DEF9EXPORT14) >>$@.tmpfile 2611.ENDIF 2612.IF "$(DEF9EXPORT15)"!="" 2613 @echo $(DEF9EXPORT15) >>$@.tmpfile 2614.ENDIF 2615.IF "$(DEF9EXPORT16)"!="" 2616 @echo $(DEF9EXPORT16) >>$@.tmpfile 2617.ENDIF 2618.IF "$(DEF9EXPORT17)"!="" 2619 @echo $(DEF9EXPORT17) >>$@.tmpfile 2620.ENDIF 2621.IF "$(DEF9EXPORT18)"!="" 2622 @echo $(DEF9EXPORT18) >>$@.tmpfile 2623.ENDIF 2624.IF "$(DEF9EXPORT19)"!="" 2625 @echo $(DEF9EXPORT19) >>$@.tmpfile 2626.ENDIF 2627.IF "$(DEF9EXPORT20)"!="" 2628 @echo $(DEF9EXPORT20) >>$@.tmpfile 2629.ENDIF 2630.IF "$(DEF9EXPORTFILE)"!="" 2631 @fix_def_file < $(DEF9EXPORTFILE) >> $@.tmp_ord 2632.ENDIF 2633 @sort < $@.tmp_ord | uniq > $@.exptmpfile 2634 @fix_def_ord < $@.exptmpfile >> $@.tmpfile 2635 @+-$(RM) $@ 2636 $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@ 2637 @+-$(RM) $@.tmp_ord 2638 @+-$(RM) $@.exptmpfile 2639.IF "$(SHL9USE_EXPORTS)"=="" || "$(SHL9USE_EXPORTS)"=="ordinal" 2640#03/11/2012 if 'name' is not used, export from def file (with ordinals) 2641 @echo Build import library from DEF file. 2642 @+-$(RM) $(LB)/$(SHL9TARGETN:b).lib 2643 $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(LB)/$(SHL9TARGETN:b).lib $@ 2644.ENDIF # "$(SHL9USE_EXPORTS)"=="" 2645 2646.ENDIF # "$(GUI)"=="OS2" 2647 2648.IF "$(GUI)"=="UNX" 2649$(DEF9TARGETN): \ 2650 $(DEF9DEPN) \ 2651 $(DEF9EXPORTFILE) 2652 @echo just a dummy for UNIX > $@ 2653.ENDIF 2654.ENDIF # "$(DEF9TARGETN)"!="" 2655 2656 2657# Anweisungen fuer das Linken 2658# unroll begin 2659 2660.IF "$(DEF10TARGETN)"!="" 2661 2662#to make intuitiv naming work 2663.IF "$(DEF10LIBNAME)"!="" 2664DEFLIB10NAME*=$(DEF10LIBNAME) 2665.ENDIF # "$(DEF10LIBNAME)"!="" 2666 2667.IF "$(DEFLIB10NAME)"!="" 2668DEF10DEPN+=$(foreach,i,$(DEFLIB10NAME) $(SLB)/$(i).lib) 2669.ENDIF 2670 2671.IF "$(SHL10VERSIONMAP)"!="" 2672.IF "$(DEF10EXPORTFILE)"=="" 2673.IF "$(GUI)"=="WNT" 2674DEF10EXPORTFILE=$(MISC)/$(SHL10VERSIONMAP:b)_$(SHL10TARGET).dxp 2675.IF "$(COM)"=="GCC" 2676$(DEF10EXPORTFILE) : $(SHL10OBJS) $(SHL10LIBS) 2677.ENDIF # .IF "$(COM)"=="GCC" 2678 2679$(DEF10EXPORTFILE) : $(SHL10VERSIONMAP) 2680 $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ 2681.IF "$(COM)"!="GCC" 2682# Wildcards in a version script are a GCC concept -- the GCC branch below 2683# pulls them out into a .symbols-regexp and matches them against the real 2684# objects. MSVC has no equivalent, and asking link.exe to export a literal 2685# "_ZTI*" fails with LNK2001, so drop those lines here. Match "*" alone: 2686# every MSVC-mangled C++ name begins with "?", so "[*?]" would drop the lot. 2687 $(COMMAND_ECHO)-$(GREP) -v "[*]" $@ > $@.nowild 2688 $(COMMAND_ECHO)$(RENAME) $@.nowild $@ 2689.ENDIF 2690.IF "$(COM)"=="GCC" 2691 $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols 2692 $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp 2693# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS 2694# Extract RTTI symbols from all the objects that will be used to build a shared library 2695 $(COMMAND_ECHO)nm -gP $(SHL10OBJS) \ 2696 `$(TYPE) /dev/null $(foreach,j,$(SHL10LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ 2697 | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols 2698# overwrite the map file generate into the local output tree with the generated 2699# exported symbols list 2700 $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@ 2701.ENDIF # .IF "$(COM)"=="GCC" 2702 2703.ENDIF # "$(GUI)"=="WNT" 2704 2705.IF "$(GUI)"=="OS2" 2706DEF10EXPORTFILE=$(MISC)/$(SHL10VERSIONMAP:b)_$(SHL10TARGET).dxp 2707$(DEF10EXPORTFILE) : $(SHL10VERSIONMAP) 2708 $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ 2709.ENDIF # "$(GUI)"=="OS2" 2710 2711.ENDIF # "$(DEF10EXPORTFILE)"=="" 2712.ENDIF # "$(SHL10VERSIONMAP)"!="" 2713 2714.IF "$(GUI)"=="WNT" 2715 2716DEF10FILTER=$(SOLARENV)/inc/dummy.flt 2717 2718RMHACK10:=$(RM) 2719 2720.IF "$(DEF10CEXP)"!="" 2721EXPORT_ALL_SWITCH=-A $(DEF10CEXP) 2722.ENDIF 2723 2724.IF "$(link_always)"=="" 2725$(DEF10TARGETN) : \ 2726 $(DEF10DEPN) \ 2727 $(DEF10EXPORTFILE) 2728.ELSE # "$(link_always)"=="" 2729$(DEF10TARGETN) .PHONY : 2730.ENDIF # "$(link_always)"=="" 2731 @-$(RM) $@.tmpfile 2732 @echo "Making: module definition file" $(@:f) 2733 @echo LIBRARY $(EMQ)"$(SHL10TARGETN:f)$(EMQ)" >$@.tmpfile 2734.IF "$(COM)"!="GCC" 2735 @echo HEAPSIZE 0 >>$@.tmpfile 2736.ENDIF 2737 @echo EXPORTS >>$@.tmpfile 2738.IF "$(VERSIONOBJ)"!="" 2739# getversioninfo fuer alle!! 2740 @echo GetVersionInfo >>$@.tmpfile 2741.ENDIF 2742.IF "$(DEFLIB10NAME)"!="" 2743.IF "$(COM)"=="GCC" 2744 @-$(RM) $(MISC)/$(SHL10TARGET).exp 2745 $(COMMAND_ECHO)dlltool --output-def $(MISC)/$(SHL10TARGET).exp --export-all-symbols \ 2746 `$(TYPE) $(foreach,i,$(DEFLIB10NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g` 2747 $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL10TARGET).exp | sed '/^;/d' >>$@.tmpfile 2748 @-$(RM) $(MISC)/$(SHL10TARGET).exp 2749.ELSE 2750.IF "$(SHL10USE_EXPORTS)"=="" 2751 @-$(RMHACK10) $(MISC)/$(SHL10TARGET).exp 2752 @$(SOLARENV)/bin/extract-linker-member.sh $(SLB)/$(DEFLIB10NAME).lib $(MISC)/$(SHL10TARGET).exp 2753 @$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL10TARGET).flt $(MISC)/$(SHL10TARGET).exp >>$@.tmpfile 2754 $(COMMAND_ECHO)$(RMHACK10) $(MISC)/$(SHL10TARGET).exp 2755.ELSE # "$(SHL10USE_EXPORTS)"=="" 2756 @$(DUMPBIN) -DIRECTIVES $(foreach,i,$(DEFLIB10NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL10TARGET).direct 2757 @$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF10FILTER) $(MISC)/$(SHL10TARGET).direct >>$@.tmpfile 2758.ENDIF # "$(SHL10USE_EXPORTS)"=="" 2759.ENDIF 2760.ENDIF # "$(DEFLIB10NAME)"!="" 2761.IF "$(DEF10EXPORT1)"!="" 2762 @echo $(DEF10EXPORT1) >>$@.tmpfile 2763.ENDIF 2764.IF "$(DEF10EXPORT2)"!="" 2765 @echo $(DEF10EXPORT2) >>$@.tmpfile 2766.ENDIF 2767.IF "$(DEF10EXPORT3)"!="" 2768 @echo $(DEF10EXPORT3) >>$@.tmpfile 2769.ENDIF 2770.IF "$(DEF10EXPORT4)"!="" 2771 @echo $(DEF10EXPORT4) >>$@.tmpfile 2772.ENDIF 2773.IF "$(DEF10EXPORT5)"!="" 2774 @echo $(DEF10EXPORT5) >>$@.tmpfile 2775.ENDIF 2776.IF "$(DEF10EXPORT6)"!="" 2777 @echo $(DEF10EXPORT6) >>$@.tmpfile 2778.ENDIF 2779.IF "$(DEF10EXPORT7)"!="" 2780 @echo $(DEF10EXPORT7) >>$@.tmpfile 2781.ENDIF 2782.IF "$(DEF10EXPORT8)"!="" 2783 @echo $(DEF10EXPORT8) >>$@.tmpfile 2784.ENDIF 2785.IF "$(DEF10EXPORT9)"!="" 2786 @echo $(DEF10EXPORT9) >>$@.tmpfile 2787.ENDIF 2788.IF "$(DEF10EXPORT10)"!="" 2789 @echo $(DEF10EXPORT10) >>$@.tmpfile 2790.ENDIF 2791.IF "$(DEF10EXPORT11)"!="" 2792 @echo $(DEF10EXPORT11) >>$@.tmpfile 2793.ENDIF 2794.IF "$(DEF10EXPORT12)"!="" 2795 @echo $(DEF10EXPORT12) >>$@.tmpfile 2796.ENDIF 2797.IF "$(DEF10EXPORT13)"!="" 2798 @echo $(DEF10EXPORT13) >>$@.tmpfile 2799.ENDIF 2800.IF "$(DEF10EXPORT14)"!="" 2801 @echo $(DEF10EXPORT14) >>$@.tmpfile 2802.ENDIF 2803.IF "$(DEF10EXPORT15)"!="" 2804 @echo $(DEF10EXPORT15) >>$@.tmpfile 2805.ENDIF 2806.IF "$(DEF10EXPORT16)"!="" 2807 @echo $(DEF10EXPORT16) >>$@.tmpfile 2808.ENDIF 2809.IF "$(DEF10EXPORT17)"!="" 2810 @echo $(DEF10EXPORT17) >>$@.tmpfile 2811.ENDIF 2812.IF "$(DEF10EXPORT18)"!="" 2813 @echo $(DEF10EXPORT18) >>$@.tmpfile 2814.ENDIF 2815.IF "$(DEF10EXPORT19)"!="" 2816 @echo $(DEF10EXPORT19) >>$@.tmpfile 2817.ENDIF 2818.IF "$(DEF10EXPORT20)"!="" 2819 @echo $(DEF10EXPORT20) >>$@.tmpfile 2820.ENDIF 2821.IF "$(DEF10EXPORTFILE)"!="" 2822.IF "$(COM)"=="GCC" 2823 $(COMMAND_ECHO)$(TYPE) $(DEF10EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile 2824.ELSE 2825 $(COMMAND_ECHO)$(TYPE) $(DEF10EXPORTFILE) >> $@.tmpfile 2826.ENDIF 2827.ENDIF 2828 @-$(RM) $@ 2829 @$(RENAME) $@.tmpfile $@ 2830.ENDIF # "$(GUI)"=="WNT" 2831 2832.IF "$(GUI)"=="OS2" 2833 2834#21/02/2006 YD dll names must be 8.3, invoke fix script 2835#check osl/os2/module.c/osl_loadModule() 2836SHL10TARGET8=$(shell @fix_shl.cmd $(SHL10TARGETN:f)) 2837 2838DEF10FILTER=$(SOLARENV)/inc/dummy.flt 2839DEF10NAMELIST=$(foreach,i,$(DEFLIB10NAME) $(SLB)/$(i).lib) 2840 2841.IF "$(link_always)"=="" 2842$(DEF10TARGETN) : \ 2843 $(DEF10DEPN) \ 2844 $(DEF10EXPORTFILE) 2845.ELSE # "$(link_always)"=="" 2846$(DEF10TARGETN) .PHONY : 2847.ENDIF # "$(link_always)"=="" 2848 @+-$(RM) $@.tmpfile 2849 @echo "Making: module definition file" $(@:f) 2850 @echo LIBRARY $(SHL10TARGET8) INITINSTANCE TERMINSTANCE >$@.tmpfile 2851 @echo DATA MULTIPLE >>$@.tmpfile 2852 @echo EXPORTS >>$@.tmpfile 2853.IF "$(VERSIONOBJ)"!="" 2854# getversioninfo fuer alle!! 2855 @echo _GetVersionInfo >$@.tmp_ord 2856.ENDIF 2857 2858.IF "$(DEFLIB10NAME)"!="" 2859 @+echo $(SLB)/$(DEFLIB10NAME).lib 2860 @+emxexp $(DEF10NAMELIST) | fix_exp_file >> $@.tmp_ord 2861.ENDIF # "$(DEFLIB10NAME)"!="" 2862 2863.IF "$(DEF10EXPORT1)"!="" 2864 @echo $(DEF10EXPORT1) >>$@.tmpfile 2865.ENDIF 2866.IF "$(DEF10EXPORT2)"!="" 2867 @echo $(DEF10EXPORT2) >>$@.tmpfile 2868.ENDIF 2869.IF "$(DEF10EXPORT3)"!="" 2870 @echo $(DEF10EXPORT3) >>$@.tmpfile 2871.ENDIF 2872.IF "$(DEF10EXPORT4)"!="" 2873 @echo $(DEF10EXPORT4) >>$@.tmpfile 2874.ENDIF 2875.IF "$(DEF10EXPORT5)"!="" 2876 @echo $(DEF10EXPORT5) >>$@.tmpfile 2877.ENDIF 2878.IF "$(DEF10EXPORT6)"!="" 2879 @echo $(DEF10EXPORT6) >>$@.tmpfile 2880.ENDIF 2881.IF "$(DEF10EXPORT7)"!="" 2882 @echo $(DEF10EXPORT7) >>$@.tmpfile 2883.ENDIF 2884.IF "$(DEF10EXPORT8)"!="" 2885 @echo $(DEF10EXPORT8) >>$@.tmpfile 2886.ENDIF 2887.IF "$(DEF10EXPORT9)"!="" 2888 @echo $(DEF10EXPORT9) >>$@.tmpfile 2889.ENDIF 2890.IF "$(DEF10EXPORT10)"!="" 2891 @echo $(DEF10EXPORT10) >>$@.tmpfile 2892.ENDIF 2893.IF "$(DEF10EXPORT11)"!="" 2894 @echo $(DEF10EXPORT11) >>$@.tmpfile 2895.ENDIF 2896.IF "$(DEF10EXPORT12)"!="" 2897 @echo $(DEF10EXPORT12) >>$@.tmpfile 2898.ENDIF 2899.IF "$(DEF10EXPORT13)"!="" 2900 @echo $(DEF10EXPORT13) >>$@.tmpfile 2901.ENDIF 2902.IF "$(DEF10EXPORT14)"!="" 2903 @echo $(DEF10EXPORT14) >>$@.tmpfile 2904.ENDIF 2905.IF "$(DEF10EXPORT15)"!="" 2906 @echo $(DEF10EXPORT15) >>$@.tmpfile 2907.ENDIF 2908.IF "$(DEF10EXPORT16)"!="" 2909 @echo $(DEF10EXPORT16) >>$@.tmpfile 2910.ENDIF 2911.IF "$(DEF10EXPORT17)"!="" 2912 @echo $(DEF10EXPORT17) >>$@.tmpfile 2913.ENDIF 2914.IF "$(DEF10EXPORT18)"!="" 2915 @echo $(DEF10EXPORT18) >>$@.tmpfile 2916.ENDIF 2917.IF "$(DEF10EXPORT19)"!="" 2918 @echo $(DEF10EXPORT19) >>$@.tmpfile 2919.ENDIF 2920.IF "$(DEF10EXPORT20)"!="" 2921 @echo $(DEF10EXPORT20) >>$@.tmpfile 2922.ENDIF 2923.IF "$(DEF10EXPORTFILE)"!="" 2924 @fix_def_file < $(DEF10EXPORTFILE) >> $@.tmp_ord 2925.ENDIF 2926 @sort < $@.tmp_ord | uniq > $@.exptmpfile 2927 @fix_def_ord < $@.exptmpfile >> $@.tmpfile 2928 @+-$(RM) $@ 2929 $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@ 2930 @+-$(RM) $@.tmp_ord 2931 @+-$(RM) $@.exptmpfile 2932.IF "$(SHL10USE_EXPORTS)"=="" || "$(SHL10USE_EXPORTS)"=="ordinal" 2933#03/11/2012 if 'name' is not used, export from def file (with ordinals) 2934 @echo Build import library from DEF file. 2935 @+-$(RM) $(LB)/$(SHL10TARGETN:b).lib 2936 $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(LB)/$(SHL10TARGETN:b).lib $@ 2937.ENDIF # "$(SHL10USE_EXPORTS)"=="" 2938 2939.ENDIF # "$(GUI)"=="OS2" 2940 2941.IF "$(GUI)"=="UNX" 2942$(DEF10TARGETN): \ 2943 $(DEF10DEPN) \ 2944 $(DEF10EXPORTFILE) 2945 @echo just a dummy for UNIX > $@ 2946.ENDIF 2947.ENDIF # "$(DEF10TARGETN)"!="" 2948 2949 2950# Anweisungen fuer das Linken 2951