| #************************************************************** |
| # |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # |
| #************************************************************** |
| |
| |
| |
| ####################################################### |
| # targets for linking |
| # unroll begin |
| |
| .IF "$(SHL$(TNR)TARGETN)"!="" |
| |
| .IF "$(OS)"=="AIX" |
| SHL$(TNR)STDLIBS= |
| .ENDIF |
| |
| .IF "$(SHLLINKARCONLY)" != "" |
| SHL$(TNR)STDLIBS= |
| STDSHL= |
| .ELSE |
| SHL$(TNR)ARCHIVES= |
| .ENDIF |
| |
| # decide how to link |
| .IF "$(SHL$(TNR)CODETYPE)"=="C" |
| SHL$(TNR)LINKER=$(LINKC) |
| SHL$(TNR)STDSHL=$(subst,CPPRUNTIME, $(STDSHL)) |
| SHL$(TNR)LINKFLAGS+=$(LINKCFLAGS) |
| .ELSE # "$(SHL$(TNR)CODETYPE)"=="C" |
| SHL$(TNR)LINKER=$(LINK) |
| SHL$(TNR)STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL)) |
| SHL$(TNR)LINKFLAGS+=$(LINKFLAGS) |
| .ENDIF # "$(SHL$(TNR)CODETYPE)"=="C" |
| |
| SHL$(TNR)RPATH*=OOO |
| LINKFLAGSRUNPATH_$(SHL$(TNR)RPATH)*=/ERROR:/Bad_SHL$(TNR)RPATH_value |
| SHL$(TNR)LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL$(TNR)RPATH)) |
| |
| .IF "$(SHL$(TNR)USE_EXPORTS)"=="" || "$(GUI)"=="OS2" |
| SHL$(TNR)DEF*=$(MISC)/$(SHL$(TNR)TARGET).def |
| .ENDIF # "$(SHL$(TNR)USE_EXPORTS)"=="" |
| |
| EXTRALIBPATHS$(TNR)=$(EXTRALIBPATHS) |
| .IF "$(UPDATER)"=="YES" |
| .IF "$(SHL$(TNR)NOCHECK)"=="" |
| .IF "$(SOLAR_STLLIBPATH)"!="" |
| EXTRALIBPATHS$(TNR)+=-L$(SOLAR_STLLIBPATH) |
| .ENDIF |
| .ENDIF # "$(SHL$(TNR)NOCHECK)"!="" |
| .ENDIF |
| #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| #+++++++++++ version object ++++++++++++++++++++++++++++++++++++++++ |
| #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| |
| .IF "$(L10N_framework)"=="" |
| .IF "$(VERSIONOBJ)"!="" |
| SHL$(TNR)VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL$(TNR)TARGET))}$(VERSIONOBJ:f) |
| USE_VERSIONH:=$(INCCOM)/$(SHL$(TNR)VERSIONOBJ:b).h |
| .IF "$(GUI)" == "UNX" |
| SHL$(TNR)VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL$(TNR)TARGET))}$(VERSIONOBJ:f:s/.o/.obj/) |
| .ELSE # "$(GUI)" == "UNX" |
| SHL$(TNR)VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL$(TNR)TARGET))}$(VERSIONOBJ:f) |
| .ENDIF # "$(GUI)" == "UNX" |
| $(MISC)/$(SHL$(TNR)VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL$(TNR)VERSIONOBJ:b).h |
| # $(COPY) $(SOLARENV)/src/version.c $@ |
| $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL$(TNR)VERSIONOBJ:b).h/ > $@ |
| |
| .INIT : $(SHL$(TNR)VERSIONOBJDEP) |
| .ENDIF # "$(VERSIONOBJ)"!="" |
| .ENDIF |
| |
| .IF "$(GUI)" != "UNX" |
| .IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2" |
| .IF "$(SHL$(TNR)IMPLIB)" == "" |
| SHL$(TNR)IMPLIB=i$(TARGET)_t$(TNR) |
| .ENDIF # "$(SHL$(TNR)IMPLIB)" == "" |
| .IF "$(COM)" != "GCC" |
| USE_$(TNR)IMPLIB=-implib:$(LB)/$(SHL$(TNR)IMPLIB).lib |
| .ENDIF # "$(COM)" != "GCC" |
| SHL$(TNR)IMPLIBN=$(LB)/$(SHL$(TNR)IMPLIB).lib |
| ALLTAR : $(SHL$(TNR)IMPLIBN) |
| |
| .IF "$(USE_DEFFILE)"=="" |
| USE_$(TNR)IMPLIB_DEPS=$(LB)/$(SHL$(TNR)IMPLIB).lib |
| .ENDIF # "$(USE_DEFFILE)"=="" |
| .ENDIF # "$(GUI)" == "WNT" || "$(GUI)" == "OS2" |
| USE_SHL$(TNR)DEF=$(SHL$(TNR)DEF) |
| .ELSE # "$(GUI)" != "UNX" |
| USE_SHL$(TNR)DEF= |
| SHL$(TNR)DEPN+:=$(SHL$(TNR)DEPNU) |
| |
| .IF "$(SHL$(TNR)VERSIONMAP)"=="" |
| # to activate vmaps remove "#" |
| USE_SHL$(TNR)VERSIONMAP=$(MISC)/$(SHL$(TNR)TARGET).vmap |
| .ENDIF # "$(SHL$(TNR)VERSIONMAP)"=="" |
| |
| .IF "$(USE_SHL$(TNR)VERSIONMAP)"!="" |
| |
| .IF "$(SHL$(TNR)FILTERFILE)"!="" |
| .IF "$(SHL$(TNR)VERSIONMAP)"!="" |
| #eine von beiden ist zuviel |
| USE_SHL$(TNR)VERSIONMAP=$(MISC)/$(SHL$(TNR)TARGET).vmap |
| $(USE_SHL$(TNR)VERSIONMAP) .PHONY: |
| @echo ----------------------------- |
| @echo you should only use versionmap OR exportfile |
| @echo ----------------------------- |
| # force_dmake_to_error |
| |
| .ENDIF # "$(SHL$(TNR)VERSIONMAP)"!="" |
| |
| SHL$(TNR)VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL$(TNR)VERSIONMAP) |
| |
| $(USE_SHL$(TNR)VERSIONMAP): \ |
| $(SHL$(TNR)OBJS)\ |
| $(SHL$(TNR)LIBS)\ |
| $(SHL$(TNR)FILTERFILE) |
| @$(RM) $@.dump |
| .IF "$(SHL$(TNR)OBJS)"!="" |
| # dump remaining objects on the fly |
| .IF "$(OS)"=="MACOSX" |
| @-nm $(SHL$(TNR)OBJS:s/.obj/.o/) > $@.dump |
| .ELSE |
| @nm $(SHL$(TNR)OBJS:s/.obj/.o/) > $@.dump |
| .ENDIF |
| .ENDIF # "$(SHL$(TNR)OBJS)!"="" |
| @$(TYPE) /dev/null $(SHL$(TNR)LIBS:s/.lib/.dump/) >> $@.dump |
| $(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL$(TNR)INTERFACE) -f $(SHL$(TNR)FILTERFILE) -m $@ |
| |
| .ELSE # "$(SHL$(TNR)FILTERFILE)"!="" |
| USE_SHL$(TNR)VERSIONMAP=$(MISC)/$(SHL$(TNR)TARGET).vmap |
| $(USE_SHL$(TNR)VERSIONMAP) : |
| .IF "$(VERBOSE)" == "TRUE" |
| @echo ----------------------------- |
| @echo SHL$(TNR)FILTERFILE not set! |
| @echo ----------------------------- |
| @$(TOUCH) $@ |
| @echo dummy file to keep the dependencies for later use. |
| .ELSE |
| @$(TOUCH) $@ |
| .ENDIF |
| # force_dmake_to_error |
| .ENDIF # "$(SHL$(TNR)FILTERFILE)"!="" |
| .ELSE # "$(USE_SHL$(TNR)VERSIONMAP)"!="" |
| |
| #and now for the plain non-generic way... |
| .IF "$(SHL$(TNR)VERSIONMAP)"!="" |
| USE_SHL$(TNR)VERSIONMAP=$(MISC)/$(SHL$(TNR)VERSIONMAP:b)_$(SHL$(TNR)TARGET)$(SHL$(TNR)VERSIONMAP:e) |
| SHL$(TNR)VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL$(TNR)VERSIONMAP) |
| |
| .IF "$(OS)"=="MACOSX" |
| $(USE_SHL$(TNR)VERSIONMAP): $(SHL$(TNR)OBJS) $(SHL$(TNR)LIBS) |
| .ENDIF |
| |
| # .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@ |
| # even if the $(AWK) part fails: |
| $(USE_SHL$(TNR)VERSIONMAP) .ERRREMOVE: $(SHL$(TNR)VERSIONMAP) |
| @@-$(RM) -f $@ |
| # The following files will only be generated and needed on Mac OS X as temporary files |
| # in order to generate exported symbols list out of Linux/Solaris map files |
| .IF "$(OS)"=="MACOSX" |
| @-$(RM) -f $@.symregexp >& $(NULLDEV) |
| @-$(RM) -f $@.expsymlist >& $(NULLDEV) |
| .ENDIF |
| # Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what |
| # happens if somebody will change it in the future |
| .IF "$(COMID)"=="gcc3" |
| $(COMMAND_ECHO) tr -d "\015" < $(SHL$(TNR)VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@ |
| .ELIF "$(COMNAME)"=="sunpro5" |
| $(COMMAND_ECHO) tr -d "\015" < $(SHL$(TNR)VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@ |
| .ELSE # "$(COMID)"=="gcc3" |
| $(COMMAND_ECHO) tr -d "\015" < $(SHL$(TNR)VERSIONMAP) > $@ |
| .ENDIF # "$(COMID)"=="gcc3" |
| @chmod a+w $@ |
| # Mac OS X post-processing generate an exported symbols list from the generated map file |
| # for details on exported symbols list see man ld on Mac OS X |
| .IF "$(OS)"=="MACOSX" |
| @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols |
| @-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp |
| # Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS |
| # Extract RTTI symbols from all the objects that will be used to build a shared library |
| .IF "$(SHL$(TNR)OBJS)"!="" |
| -echo $(foreach,i,$(SHL$(TNR)OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols |
| .ENDIF |
| .IF "$(SHL$(TNR)LIBS)"!="" |
| $(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL$(TNR)LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols |
| .ENDIF |
| # overwrite the map file generate into the local output tree with the generated |
| # exported symbols list |
| cp $@.exported-symbols $@ |
| .ENDIF # .IF "$(OS)"=="MACOSX" |
| .ENDIF # "$(SHL$(TNR)VERSIONMAP)"!="" |
| .ENDIF # "$(USE_SHL$(TNR)VERSIONMAP)"!="" |
| .ENDIF # "$(GUI)" != "UNX" |
| |
| .IF "$(UNIXVERSIONNAMES)"!="" |
| .IF "$(OS)"!="MACOSX" |
| .IF "$(GUI)"=="UNX" |
| SHL$(TNR)SONAME=\"$(SONAME_SWITCH)$(SHL$(TNR)TARGETN:f)\" |
| .ENDIF # "$(GUI)"!="UNX" |
| .ENDIF # "$(OS)"!="MACOSX" |
| .ENDIF # "$(UNIXVERSIONNAMES)"!="" |
| |
| .IF "$(SHL$(TNR)RES)"!="" |
| SHL$(TNR)ALLRES+=$(SHL$(TNR)RES) |
| SHL$(TNR)LINKRES*=$(MISC)/$(SHL$(TNR)TARGET).res |
| SHL$(TNR)LINKRESO*=$(MISC)/$(SHL$(TNR)TARGET)_res.o |
| .ENDIF # "$(SHL$(TNR)RES)"!="" |
| |
| .IF "$(SHL$(TNR)DEFAULTRES)$(use_shl_versions)"!="" |
| SHL$(TNR)DEFAULTRES*=$(MISC)/$(SHL$(TNR)TARGET)_def.res |
| SHL$(TNR)ALLRES+=$(SHL$(TNR)DEFAULTRES) |
| SHL$(TNR)LINKRES*=$(MISC)/$(SHL$(TNR)TARGET).res |
| SHL$(TNR)LINKRESO*=$(MISC)/$(SHL$(TNR)TARGET)_res.o |
| .ENDIF # "$(SHL$(TNR)DEFAULTRES)$(use_shl_versions)"!="" |
| |
| #.IF "$(SHL$(TNR)TARGETN)"!="" |
| |
| .IF "$(linkinc)"!="" |
| .IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2" |
| .IF "$(SHL$(TNR)LIBS)"!="" |
| $(MISC)/$(SHL$(TNR)TARGET)_linkinc.ls .PHONY: |
| @@-$(RM) $@ |
| $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL$(TNR)LIBS) $(i:s/.lib/.lin/)) >> $@ |
| .ENDIF # "$(SHL$(TNR)LIBS)"!="" |
| .ENDIF |
| |
| LINKINCTARGETS+=$(MISC)/$(SHL$(TNR)TARGETN:b)_linkinc.ls |
| $(SHL$(TNR)TARGETN) : $(LINKINCTARGETS) |
| |
| .ELSE |
| .IF "$(SHL$(TNR)USE_EXPORTS)"=="name" |
| .IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2" |
| .IF "$(COM)"!="GCC" |
| .IF "$(SHL$(TNR)LIBS)"!="" |
| SHL$(TNR)LINKLIST=$(MISC)/$(SHL$(TNR)TARGET)_link.lst |
| SHL$(TNR)LINKLISTPARAM=@$(SHL$(TNR)LINKLIST) |
| $(SHL$(TNR)LINKLIST) : $(SHL$(TNR)LIBS) |
| @@-$(RM) $@ |
| $(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL$(TNR)LIBS) $(i:s/.lib/.lin/)) >> $@ |
| .ENDIF # "$(SHL$(TNR)LIBS)"!="" |
| .ENDIF # "$(COM)"!="GCC" |
| .ENDIF |
| .ENDIF # "$(SHL$(TNR)USE_EXPORTS)"=="name" |
| |
| $(MISC)/%linkinc.ls: |
| @echo . > $@ |
| .ENDIF # "$(linkinc)"!="" |
| |
| .IF "$(GUI)" == "OS2" |
| #21/02/2006 YD dll names must be 8.3, invoke fix script |
| #check osl/os2/module.c/osl_loadModule() |
| SHL$(TNR)TARGET8=$(shell @fix_shl.cmd $(SHL$(TNR)TARGET)) |
| .ENDIF |
| |
| |
| $(SHL$(TNR)TARGETN) : \ |
| $(SHL$(TNR)OBJS)\ |
| $(SHL$(TNR)LIBS)\ |
| $(USE_$(TNR)IMPLIB_DEPS)\ |
| $(USE_SHL$(TNR)DEF)\ |
| $(USE_SHL$(TNR)VERSIONMAP)\ |
| $(SHL$(TNR)RES)\ |
| $(SHL$(TNR)DEPN) \ |
| $(SHL$(TNR)LINKLIST) |
| @echo "Making: " $(@:f) |
| .IF "$(GUI)" == "WNT" |
| .IF "$(SHL$(TNR)DEFAULTRES)"!="" |
| @@-$(RM) $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc |
| .IF "$(SHL$(TNR)ICON)" != "" |
| @echo 1 ICON $(SHL$(TNR)ICON) >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc |
| .ENDIF |
| .IF "$(use_shl_versions)" != "" |
| .IF "$(SHL$(TNR)ADD_VERINFO)"!="" |
| @echo $(EMQ)#include $(EMQ)"$(SHL$(TNR)ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc |
| .ELSE # "$(SHL$(TNR)ADD_VERINFO)"!="" |
| @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc |
| @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc |
| @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc |
| .ENDIF # "$(SHL$(TNR)ADD_VERINFO)"!="" |
| @echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc |
| @echo $(EMQ)#define ORG_NAME $(SHL$(TNR)TARGET)$(DLLPOST) >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc |
| @echo $(EMQ)#define INTERNAL_NAME $(SHL$(TNR)TARGET:b) >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc |
| @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc |
| .ENDIF # "$(use_shl_versions)" != "" |
| $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc |
| .ENDIF # "$(SHL$(TNR)DEFAULTRES)"!="" |
| .IF "$(SHL$(TNR)ALLRES)"!="" |
| $(COMMAND_ECHO)$(TYPE) $(SHL$(TNR)ALLRES) > $(SHL$(TNR)LINKRES) |
| .IF "$(COM)"=="GCC" |
| windres $(SHL$(TNR)LINKRES) $(SHL$(TNR)LINKRESO) |
| .ENDIF # "$(COM)"=="GCC" |
| .ENDIF # "$(SHL$(TNR)ALLRES)"!="" |
| .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def |
| @echo dlltool --dllname $(SHL$(TNR)TARGET)$(DLLPOST) \ |
| --kill-at \\ > $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd |
| @noop $(assign ALL$(TNR)OBJLIST:=$(STDOBJ) $(SHL$(TNR)OBJS) $(SHL$(TNR)LINKRESO) $(shell $(TYPE) /dev/null $(SHL$(TNR)LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g)) |
| .IF "$(DEFLIB$(TNR)NAME)"!="" # do not have to include objs |
| @noop $(assign DEF$(TNR)OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB$(TNR)NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g)) |
| @noop $(foreach,i,$(DEF$(TNR)OBJLIST) $(assign ALL$(TNR)OBJLIST:=$(ALL$(TNR)OBJLIST:s?$i??))) |
| .ENDIF # "$(DEFLIB$(TNR)NAME)"!="" |
| @echo --output-exp $(MISC)/$(@:b)_exp.o \\ >> $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd |
| .IF "$(SHL$(TNR)DEF)"!="" |
| @echo --input-def $(SHL$(TNR)DEF) \\ >> $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd |
| .ELSE |
| @echo $(SHL$(TNR)VERSIONOBJ) $(SHL$(TNR)DESCRIPTIONOBJ) \\ >> $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd |
| .ENDIF |
| @echo $(ALL$(TNR)OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd |
| @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \ |
| $(STDOBJ) $(SHL$(TNR)VERSIONOBJ) $(SHL$(TNR)DESCRIPTIONOBJ) $(SHL$(TNR)OBJS) $(SHL$(TNR)LINKRESO) \ |
| `$(TYPE) /dev/null $(SHL$(TNR)LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \ |
| -Wl,--exclude-libs,ALL,--start-group $(SHL$(TNR)STDLIBS) -Wl,--end-group \ |
| $(SHL$(TNR)STDSHL) $(STDSHL$(TNR)) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \ |
| -Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd |
| .IF "$(VERBOSE)" == "TRUE" |
| @$(TYPE) $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd |
| .ENDIF |
| @+source $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd |
| .ELSE |
| .IF "$(linkinc)"=="" |
| .IF "$(SHL$(TNR)USE_EXPORTS)"!="name" |
| .IF "$(USE_DEFFILE)"!="" |
| $(COMMAND_ECHO)$(SHL$(TNR)LINKER) @$(mktmp \ |
| $(SHL$(TNR)LINKFLAGS) \ |
| $(LINKFLAGSSHL) \ |
| $(SHL$(TNR)STACK) $(SHL$(TNR)BASEX) \ |
| -out:$@ \ |
| -map:$(MISC)/$(@:b).map \ |
| -def:$(SHL$(TNR)DEF) \ |
| $(USE_$(TNR)IMPLIB) \ |
| $(STDOBJ) \ |
| $(SHL$(TNR)VERSIONOBJ) $(SHL$(TNR)OBJS) \ |
| $(SHL$(TNR)LIBS) \ |
| $(SHL$(TNR)STDLIBS) \ |
| $(SHL$(TNR)STDSHL) $(STDSHL$(TNR)) \ |
| $(SHL$(TNR)LINKRES) \ |
| ) |
| # double check if target was really written... still making sense? |
| @@$(LS) $@ |
| @echo linking $@.manifest ... |
| .IF "$(VISTA_MANIFEST)"!="" |
| $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) |
| $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) |
| .ELSE |
| $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) |
| .ENDIF # "$(VISTA_MANIFEST)"!="" |
| $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) |
| $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) |
| .ELSE # "$(USE_DEFFILE)"!="" |
| $(COMMAND_ECHO)$(SHL$(TNR)LINKER) @$(mktmp $(SHL$(TNR)LINKFLAGS) \ |
| $(LINKFLAGSSHL) $(SHL$(TNR)BASEX) \ |
| $(SHL$(TNR)STACK) -out:$(SHL$(TNR)TARGETN) \ |
| -map:$(MISC)/$(@:B).map \ |
| $(LB)/$(SHL$(TNR)IMPLIB).exp \ |
| $(STDOBJ) \ |
| $(SHL$(TNR)OBJS) $(SHL$(TNR)VERSIONOBJ) \ |
| $(SHL$(TNR)LIBS) \ |
| $(SHL$(TNR)STDLIBS) \ |
| $(SHL$(TNR)STDSHL) $(STDSHL$(TNR)) \ |
| $(SHL$(TNR)LINKRES) \ |
| ) |
| # double check if target was really written... still making sense? |
| @@$(LS) $@ |
| @echo linking $@.manifest ... |
| .IF "$(VISTA_MANIFEST)"!="" |
| $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) |
| $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) |
| .ELSE |
| $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) |
| .ENDIF # "$(VISTA_MANIFEST)"!="" |
| $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) |
| $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) |
| .ENDIF # "$(USE_DEFFILE)"!="" |
| .ELSE # "$(SHL$(TNR)USE_EXPORTS)"!="name" |
| $(COMMAND_ECHO)$(SHL$(TNR)LINKER) @$(mktmp $(SHL$(TNR)LINKFLAGS) \ |
| $(LINKFLAGSSHL) $(SHL$(TNR)BASEX) \ |
| $(SHL$(TNR)STACK) -out:$(SHL$(TNR)TARGETN) \ |
| -map:$(MISC)/$(@:B).map \ |
| $(USE_$(TNR)IMPLIB) \ |
| $(STDOBJ) \ |
| $(SHL$(TNR)OBJS) $(SHL$(TNR)VERSIONOBJ)) \ |
| $(SHL$(TNR)LINKLISTPARAM) \ |
| @$(mktmp $(SHL$(TNR)STDLIBS) \ |
| $(SHL$(TNR)STDSHL) $(STDSHL$(TNR)) \ |
| $(SHL$(TNR)LINKRES) \ |
| ) |
| @echo linking $@.manifest ... |
| .IF "$(VISTA_MANIFEST)"!="" |
| $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) |
| $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) |
| .ELSE |
| $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) |
| .ENDIF # "$(VISTA_MANIFEST)"!="" |
| $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) |
| $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) |
| .ENDIF # "$(SHL$(TNR)USE_EXPORTS)"!="name" |
| .ELSE # "$(linkinc)"=="" |
| $(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL$(TNR)TARGET).lnk |
| $(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL$(TNR)TARGET).lst |
| $(COMMAND_ECHO)$(TYPE) $(mktmp \ |
| $(SHL$(TNR)LINKFLAGS) \ |
| $(LINKFLAGSSHL) $(SHL$(TNR)BASEX) \ |
| $(SHL$(TNR)STACK) $(MAPFILE) \ |
| -out:$@ \ |
| $(LB)/$(SHL$(TNR)IMPLIB).exp \ |
| $(STDOBJ) \ |
| $(SHL$(TNR)OBJS) \ |
| $(SHL$(TNR)STDLIBS) \ |
| $(SHL$(TNR)STDSHL) $(STDSHL$(TNR)) \ |
| $(SHL$(TNR)LINKRES) \ |
| ) >> $(MISC)/$(SHL$(TNR)TARGET).lnk |
| $(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL$(TNR)TARGETN:b)_linkinc.ls >> $(MISC)/$(SHL$(TNR)TARGET).lnk |
| $(COMMAND_ECHO)$(SHL$(TNR)LINKER) @$(MISC)/$(SHL$(TNR)TARGET).lnk |
| @echo linking $@.manifest ... |
| .IF "$(VISTA_MANIFEST)"!="" |
| $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI) |
| $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI) |
| .ELSE |
| $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI) |
| .ENDIF # "$(VISTA_MANIFEST)"!="" |
| $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI) |
| $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI) |
| .ENDIF # "$(linkinc)"=="" |
| .ENDIF # "$(COM)"=="GCC" |
| .ENDIF # "$(GUI)" == "WNT" |
| .IF "$(GUI)"=="UNX" |
| .IF "$(OS)"=="MACOSX" |
| @-$(RM) $(MISC)/$(@:b).list |
| @-$(RM) $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd |
| @echo $(STDSLO) $(SHL$(TNR)OBJS:s/.obj/.o/) \ |
| $(SHL$(TNR)VERSIONOBJ) \ |
| `cat /dev/null $(SHL$(TNR)LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list |
| @echo -n $(SHL$(TNR)LINKER) $(SHL$(TNR)LINKFLAGS) $(SHL$(TNR)VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ |
| $(SHL$(TNR)STDLIBS) $(SHL$(TNR)ARCHIVES) $(SHL$(TNR)STDSHL) $(STDSHL$(TNR)) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd |
| @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ |
| `cat $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd` \ |
| >> $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd |
| .IF "$(VERBOSE)" == "TRUE" |
| @cat $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd |
| .ENDIF |
| @+source $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd |
| @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \ |
| shl $(SHL$(TNR)RPATH) $@ |
| .IF "$(SHL$(TNR)CREATEJNILIB)"!="" |
| @echo "Making: " $(@:f).jnilib |
| @macosx-create-bundle $@ |
| .ENDIF # "$(SHL$(TNR)CREATEJNILIB)"!="" |
| .IF "$(UPDATER)"=="YES" |
| .IF "$(SHL$(TNR)NOCHECK)"=="" |
| $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS$(TNR)) $(SHL$(TNR)TARGETN) |
| .ENDIF # "$(SHL$(TNR)NOCHECK)"!="" |
| .ENDIF |
| .ELSE # "$(OS)"=="MACOSX" |
| @-$(RM) $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd |
| @echo $(SHL$(TNR)LINKER) $(SHL$(TNR)LINKFLAGS) $(SHL$(TNR)SONAME) $(LINKFLAGSSHL) $(SHL$(TNR)VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL$(TNR)OBJS:s/.obj/.o/) \ |
| $(SHL$(TNR)VERSIONOBJ) -o $@ \ |
| `cat /dev/null $(SHL$(TNR)LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \ |
| $(SHL$(TNR)STDLIBS) $(SHL$(TNR)ARCHIVES) $(SHL$(TNR)STDSHL) $(STDSHL$(TNR)) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd |
| .IF "$(VERBOSE)" == "TRUE" |
| @cat $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd |
| .ENDIF |
| @+source $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd |
| .IF "$(UPDATER)"=="YES" |
| .IF "$(SHL$(TNR)NOCHECK)"=="" |
| $(COMMAND_ECHO)-$(RM) $(SHL$(TNR)TARGETN:d)check_$(SHL$(TNR)TARGETN:f) |
| $(COMMAND_ECHO)$(RENAME) $(SHL$(TNR)TARGETN) $(SHL$(TNR)TARGETN:d)check_$(SHL$(TNR)TARGETN:f) |
| .IF "$(VERBOSE)"=="TRUE" |
| $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS$(TNR)) $(SHL$(TNR)TARGETN:d)check_$(SHL$(TNR)TARGETN:f) |
| .ELSE |
| $(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS$(TNR)) -- -s $(SHL$(TNR)TARGETN:d)check_$(SHL$(TNR)TARGETN:f) |
| .ENDIF |
| .ENDIF # "$(SHL$(TNR)NOCHECK)"!="" |
| .ENDIF # "$(UPDATER)"=="YES" |
| .ENDIF # "$(OS)"=="MACOSX" |
| .IF "$(UNIXVERSIONNAMES)"!="" |
| $(COMMAND_ECHO)$(RM) $(LB)/$(SHL$(TNR)TARGETN:b) |
| $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL$(TNR)TARGETN:f) $(SHL$(TNR)TARGETN:b) |
| .ENDIF # "$(UNIXVERSIONNAMES)"!="" |
| .IF "$(VERBOSE)" == "TRUE" |
| @ls -l $@ |
| .ENDIF |
| .ENDIF # "$(GUI)" == "UNX" |
| |
| .IF "$(GUI)" == "OS2" |
| |
| .IF "$(SHL$(TNR)DEFAULTRES)"!="" |
| @+-$(RM) $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc > $(NULLDEV) |
| .IF "$(SHL$(TNR)ICON)" != "" |
| @-+echo 1 ICON $(SHL$(TNR)ICON) >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc |
| .ENDIF |
| .IF "$(use_shl_versions)" != "" |
| .IF "$(SHL$(TNR)ADD_VERINFO)"!="" |
| @-+echo $(EMQ)#include $(EMQ)"$(SHL$(TNR)ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc |
| .ENDIF # "$(SHL$(TNR)ADD_VERINFO)"!="" |
| @-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc |
| # @-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc |
| .ENDIF # "$(use_shl_versions)" != "" |
| # YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR) |
| $(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc |
| .ENDIF # "$(SHL$(TNR)DEFAULTRES)"!="" |
| |
| .IF "$(SHL$(TNR)ALLRES)"!="" |
| $(COMMAND_ECHO)+$(TYPE) $(SHL$(TNR)ALLRES) > $(SHL$(TNR)LINKRES) |
| .ENDIF # "$(SHL$(TNR)ALLRES)"!="" |
| |
| .IF "$(USE_DEFFILE)"!="" |
| |
| $(COMMAND_ECHO)$(SHL$(TNR)LINKER) $(SHL$(TNR)LINKFLAGS) $(LINKFLAGSSHL) -o $@ \ |
| $(SHL$(TNR)DEF) \ |
| $(STDOBJ) \ |
| -L$(LB) \ |
| -L$(SOLARVERSION)/$(INPATH)/lib \ |
| $(SHL$(TNR)OBJS) $(SHL$(TNR)VERSIONOBJ) \ |
| $(SHL$(TNR)LIBS) \ |
| $(SHL$(TNR)LINKRES) \ |
| $(SHL$(TNR)STDLIBS) \ |
| $(SHL$(TNR)STDSHL) $(STDSHL$(TNR)) |
| |
| .ELSE # "$(USE_DEFFILE)"!="" |
| |
| $(COMMAND_ECHO)$(SHL$(TNR)LINKER) $(SHL$(TNR)LINKFLAGS) \ |
| $(LINKFLAGSSHL) $(SHL$(TNR)BASEX) \ |
| $(SHL$(TNR)STACK) -o $(SHL$(TNR)TARGETN) \ |
| $(SHL$(TNR)DEF) \ |
| $(STDOBJ) \ |
| -L$(LB) \ |
| -L$(SOLARVERSION)/$(INPATH)/lib \ |
| $(SHL$(TNR)OBJS) $(SHL$(TNR)VERSIONOBJ) \ |
| $(SHL$(TNR)LIBS) \ |
| $(SHL$(TNR)LINKRES) \ |
| $(SHL$(TNR)STDLIBS) \ |
| $(SHL$(TNR)STDSHL) $(STDSHL$(TNR)) |
| |
| .ENDIF # "$(USE_DEFFILE)"!="" |
| |
| .IF "$(SHL$(TNR)USE_EXPORTS)"=="name" |
| #03/11/2012 if 'name' is used, export from DLL file (only names, no ordinals) |
| @echo Build import library from DLL file. |
| $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(LB)/$(SHL$(TNR)TARGETN:b).lib $@ |
| .ENDIF # "$(SHL$(TNR)USE_EXPORTS)"=="" |
| |
| .IF "$(SHL$(TNR)TARGET8)" != "$(SHL$(TNR)TARGET)" |
| $(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL$(TNR)TARGET8).dll |
| .ENDIF |
| |
| .ENDIF # "$(GUI)" == "OS2" |
| |
| .ENDIF # "$(SHL$(TNR)TARGETN)"!="" |
| |
| # unroll end |
| ####################################################### |
| |
| #------------------------------------------------------------------------- |
| |
| ####################################################### |
| # Anweisungen fuer das Linken |
| # unroll begin |
| |
| .IF "$(SHL$(TNR)IMPLIBN)" != "" |
| |
| .IF "$(UPDATER)"=="YES" |
| USELIB$(TNR)DEPN+=$(SHL$(TNR)LIBS) |
| .ELSE |
| .ENDIF |
| |
| .IF "$(USE_DEFFILE)"!="" |
| USE_SHL$(TNR)TARGET=$(SHL$(TNR)TARGETN) |
| .ENDIF |
| |
| .IF "$(GUI)" != "UNX" |
| $(SHL$(TNR)IMPLIBN): \ |
| $(SHL$(TNR)DEF) \ |
| $(USE_SHL$(TNR)TARGET) \ |
| $(USELIB$(TNR)DEPN) \ |
| $(USELIBDEPN) |
| .ELSE |
| $(SHL$(TNR)IMPLIBN): \ |
| $(SHL$(TNR)LIBS) |
| .ENDIF |
| @echo "Making: " $(@:f) |
| .IF "$(GUI)" == "WNT" |
| .IF "$(COM)"=="GCC" |
| @echo no ImportLibs on mingw |
| @-$(RM) $@ |
| @$(TOUCH) $@ |
| .ELSE # "$(COM)=="GCC" |
| # bei use_deffile implib von linker erstellt |
| .IF "$(USE_DEFFILE)"=="" |
| $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL$(TNR)IMPLIBN) \ |
| -def:$(SHL$(TNR)DEF) ) |
| .ELSE # "$(USE_DEFFILE)=="" |
| @echo build of $(SHL$(TNR)TARGETN) creates $@ |
| @$(TOUCH) $@ |
| .ENDIF # "$(USE_DEFFILE)=="" |
| .ENDIF # "$(COM)"=="GCC" |
| |
| .ELIF "$(GUI)" == "OS2" |
| |
| @echo Import libs generated with .def file or with .dll file. |
| # make 'dmake' happy |
| @-$(RM) $@ |
| @$(TOUCH) $@ |
| |
| .ELSE |
| @echo no ImportLibs on Mac and *ix |
| @-$(RM) $@ |
| @$(TOUCH) $@ |
| .ENDIF |
| .ENDIF |
| |
| # unroll end |
| ####################################################### |
| |