xref: /aoo4110/main/solenv/inc/_tg_shl.mk (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski# *************************************************************
2*b1cdbd2cSJim Jagielski#
3*b1cdbd2cSJim Jagielski#  Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski#  or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski#  distributed with this work for additional information
6*b1cdbd2cSJim Jagielski#  regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski#  to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski#  "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski#  with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski#
11*b1cdbd2cSJim Jagielski#    http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski#
13*b1cdbd2cSJim Jagielski#  Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski#  software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski#  KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski#  specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski#  under the License.
19*b1cdbd2cSJim Jagielski#
20*b1cdbd2cSJim Jagielski# *************************************************************
21*b1cdbd2cSJim Jagielski# unroll begin
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielski.IF "$(SHL1TARGETN)"!=""
24*b1cdbd2cSJim Jagielski
25*b1cdbd2cSJim Jagielski.IF "$(OS)"=="AIX"
26*b1cdbd2cSJim JagielskiSHL1STDLIBS=
27*b1cdbd2cSJim Jagielski.ENDIF
28*b1cdbd2cSJim Jagielski
29*b1cdbd2cSJim Jagielski.IF "$(SHLLINKARCONLY)" != ""
30*b1cdbd2cSJim JagielskiSHL1STDLIBS=
31*b1cdbd2cSJim JagielskiSTDSHL=
32*b1cdbd2cSJim Jagielski.ELSE
33*b1cdbd2cSJim JagielskiSHL1ARCHIVES=
34*b1cdbd2cSJim Jagielski.ENDIF
35*b1cdbd2cSJim Jagielski
36*b1cdbd2cSJim Jagielski# decide how to link
37*b1cdbd2cSJim Jagielski.IF "$(SHL1CODETYPE)"=="C"
38*b1cdbd2cSJim JagielskiSHL1LINKER=$(LINKC)
39*b1cdbd2cSJim JagielskiSHL1STDSHL=$(subst,CPPRUNTIME, $(STDSHL))
40*b1cdbd2cSJim JagielskiSHL1LINKFLAGS+=$(LINKCFLAGS)
41*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL1CODETYPE)"=="C"
42*b1cdbd2cSJim JagielskiSHL1LINKER=$(LINK)
43*b1cdbd2cSJim JagielskiSHL1STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL))
44*b1cdbd2cSJim JagielskiSHL1LINKFLAGS+=$(LINKFLAGS)
45*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL1CODETYPE)"=="C"
46*b1cdbd2cSJim Jagielski
47*b1cdbd2cSJim JagielskiSHL1RPATH*=OOO
48*b1cdbd2cSJim JagielskiLINKFLAGSRUNPATH_$(SHL1RPATH)*=/ERROR:/Bad_SHL1RPATH_value
49*b1cdbd2cSJim JagielskiSHL1LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL1RPATH))
50*b1cdbd2cSJim Jagielski
51*b1cdbd2cSJim Jagielski.IF "$(SHL1USE_EXPORTS)"=="" || "$(GUI)"=="OS2"
52*b1cdbd2cSJim JagielskiSHL1DEF*=$(MISC)/$(SHL1TARGET).def
53*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL1USE_EXPORTS)"==""
54*b1cdbd2cSJim Jagielski
55*b1cdbd2cSJim JagielskiEXTRALIBPATHS1=$(EXTRALIBPATHS)
56*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
57*b1cdbd2cSJim Jagielski.IF "$(SHL1NOCHECK)"==""
58*b1cdbd2cSJim Jagielski.IF "$(SOLAR_STLLIBPATH)"!=""
59*b1cdbd2cSJim JagielskiEXTRALIBPATHS1+=-L$(SOLAR_STLLIBPATH)
60*b1cdbd2cSJim Jagielski.ENDIF
61*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL1NOCHECK)"!=""
62*b1cdbd2cSJim Jagielski.ENDIF
63*b1cdbd2cSJim Jagielski#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
64*b1cdbd2cSJim Jagielski#+++++++++++    version object      ++++++++++++++++++++++++++++++++++++++++
65*b1cdbd2cSJim Jagielski#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
66*b1cdbd2cSJim Jagielski
67*b1cdbd2cSJim Jagielski.IF "$(L10N_framework)"==""
68*b1cdbd2cSJim Jagielski.IF "$(VERSIONOBJ)"!=""
69*b1cdbd2cSJim JagielskiSHL1VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL1TARGET))}$(VERSIONOBJ:f)
70*b1cdbd2cSJim JagielskiUSE_VERSIONH:=$(INCCOM)/$(SHL1VERSIONOBJ:b).h
71*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "UNX"
72*b1cdbd2cSJim JagielskiSHL1VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL1TARGET))}$(VERSIONOBJ:f:s/.o/.obj/)
73*b1cdbd2cSJim Jagielski.ELSE           # "$(GUI)" == "UNX"
74*b1cdbd2cSJim JagielskiSHL1VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL1TARGET))}$(VERSIONOBJ:f)
75*b1cdbd2cSJim Jagielski.ENDIF          # "$(GUI)" == "UNX"
76*b1cdbd2cSJim Jagielski$(MISC)/$(SHL1VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL1VERSIONOBJ:b).h
77*b1cdbd2cSJim Jagielski#    $(COPY) $(SOLARENV)/src/version.c $@
78*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL1VERSIONOBJ:b).h/ > $@
79*b1cdbd2cSJim Jagielski
80*b1cdbd2cSJim Jagielski.INIT : $(SHL1VERSIONOBJDEP)
81*b1cdbd2cSJim Jagielski.ENDIF			# "$(VERSIONOBJ)"!=""
82*b1cdbd2cSJim Jagielski.ENDIF
83*b1cdbd2cSJim Jagielski
84*b1cdbd2cSJim Jagielski.IF "$(GUI)" != "UNX"
85*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
86*b1cdbd2cSJim Jagielski.IF "$(SHL1IMPLIB)" == ""
87*b1cdbd2cSJim JagielskiSHL1IMPLIB=i$(TARGET)_t1
88*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL1IMPLIB)" == ""
89*b1cdbd2cSJim Jagielski.IF "$(COM)" != "GCC"
90*b1cdbd2cSJim JagielskiUSE_1IMPLIB=-implib:$(LB)/$(SHL1IMPLIB).lib
91*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)" != "GCC"
92*b1cdbd2cSJim JagielskiSHL1IMPLIBN=$(LB)/$(SHL1IMPLIB).lib
93*b1cdbd2cSJim JagielskiALLTAR : $(SHL1IMPLIBN)
94*b1cdbd2cSJim Jagielski
95*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"==""
96*b1cdbd2cSJim JagielskiUSE_1IMPLIB_DEPS=$(LB)/$(SHL1IMPLIB).lib
97*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"==""
98*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
99*b1cdbd2cSJim JagielskiUSE_SHL1DEF=$(SHL1DEF)
100*b1cdbd2cSJim Jagielski.ELSE			# "$(GUI)" != "UNX"
101*b1cdbd2cSJim JagielskiUSE_SHL1DEF=
102*b1cdbd2cSJim JagielskiSHL1DEPN+:=$(SHL1DEPNU)
103*b1cdbd2cSJim Jagielski
104*b1cdbd2cSJim Jagielski.IF "$(SHL1VERSIONMAP)"==""
105*b1cdbd2cSJim Jagielski# to activate vmaps remove "#"
106*b1cdbd2cSJim JagielskiUSE_SHL1VERSIONMAP=$(MISC)/$(SHL1TARGET).vmap
107*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL1VERSIONMAP)"==""
108*b1cdbd2cSJim Jagielski
109*b1cdbd2cSJim Jagielski.IF "$(USE_SHL1VERSIONMAP)"!=""
110*b1cdbd2cSJim Jagielski
111*b1cdbd2cSJim Jagielski.IF "$(SHL1FILTERFILE)"!=""
112*b1cdbd2cSJim Jagielski.IF "$(SHL1VERSIONMAP)"!=""
113*b1cdbd2cSJim Jagielski#eine von beiden ist zuviel
114*b1cdbd2cSJim JagielskiUSE_SHL1VERSIONMAP=$(MISC)/$(SHL1TARGET).vmap
115*b1cdbd2cSJim Jagielski$(USE_SHL1VERSIONMAP) .PHONY:
116*b1cdbd2cSJim Jagielski	@echo -----------------------------
117*b1cdbd2cSJim Jagielski	@echo you should only use versionmap OR exportfile
118*b1cdbd2cSJim Jagielski	@echo -----------------------------
119*b1cdbd2cSJim Jagielski#	force_dmake_to_error
120*b1cdbd2cSJim Jagielski
121*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL1VERSIONMAP)"!=""
122*b1cdbd2cSJim Jagielski
123*b1cdbd2cSJim JagielskiSHL1VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL1VERSIONMAP)
124*b1cdbd2cSJim Jagielski
125*b1cdbd2cSJim Jagielski$(USE_SHL1VERSIONMAP): \
126*b1cdbd2cSJim Jagielski					$(SHL1OBJS)\
127*b1cdbd2cSJim Jagielski					$(SHL1LIBS)\
128*b1cdbd2cSJim Jagielski					$(SHL1FILTERFILE)
129*b1cdbd2cSJim Jagielski	@$(RM) $@.dump
130*b1cdbd2cSJim Jagielski.IF "$(SHL1OBJS)"!=""
131*b1cdbd2cSJim Jagielski# dump remaining objects on the fly
132*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
133*b1cdbd2cSJim Jagielski	@-nm $(SHL1OBJS:s/.obj/.o/) > $@.dump
134*b1cdbd2cSJim Jagielski.ELSE
135*b1cdbd2cSJim Jagielski	@nm $(SHL1OBJS:s/.obj/.o/) > $@.dump
136*b1cdbd2cSJim Jagielski.ENDIF
137*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL1OBJS)!"=""
138*b1cdbd2cSJim Jagielski	@$(TYPE) /dev/null $(SHL1LIBS:s/.lib/.dump/) >> $@.dump
139*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL1INTERFACE) -f $(SHL1FILTERFILE) -m $@
140*b1cdbd2cSJim Jagielski
141*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL1FILTERFILE)"!=""
142*b1cdbd2cSJim JagielskiUSE_SHL1VERSIONMAP=$(MISC)/$(SHL1TARGET).vmap
143*b1cdbd2cSJim Jagielski$(USE_SHL1VERSIONMAP) :
144*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)" == "TRUE"
145*b1cdbd2cSJim Jagielski	@echo -----------------------------
146*b1cdbd2cSJim Jagielski	@echo SHL1FILTERFILE not set!
147*b1cdbd2cSJim Jagielski	@echo -----------------------------
148*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
149*b1cdbd2cSJim Jagielski	@echo dummy file to keep the dependencies for later use.
150*b1cdbd2cSJim Jagielski.ELSE
151*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
152*b1cdbd2cSJim Jagielski.ENDIF
153*b1cdbd2cSJim Jagielski#	force_dmake_to_error
154*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL1FILTERFILE)"!=""
155*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_SHL1VERSIONMAP)"!=""
156*b1cdbd2cSJim Jagielski
157*b1cdbd2cSJim Jagielski#and now for the plain non-generic way...
158*b1cdbd2cSJim Jagielski.IF "$(SHL1VERSIONMAP)"!=""
159*b1cdbd2cSJim JagielskiUSE_SHL1VERSIONMAP=$(MISC)/$(SHL1VERSIONMAP:b)_$(SHL1TARGET)$(SHL1VERSIONMAP:e)
160*b1cdbd2cSJim JagielskiSHL1VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL1VERSIONMAP)
161*b1cdbd2cSJim Jagielski
162*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
163*b1cdbd2cSJim Jagielski$(USE_SHL1VERSIONMAP): $(SHL1OBJS) $(SHL1LIBS)
164*b1cdbd2cSJim Jagielski.ENDIF
165*b1cdbd2cSJim Jagielski
166*b1cdbd2cSJim Jagielski# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@
167*b1cdbd2cSJim Jagielski# even if the $(AWK) part fails:
168*b1cdbd2cSJim Jagielski$(USE_SHL1VERSIONMAP) .ERRREMOVE: $(SHL1VERSIONMAP)
169*b1cdbd2cSJim Jagielski	@@-$(RM) -f $@
170*b1cdbd2cSJim Jagielski# The following files will only be generated and needed on Mac OS X as temporary files
171*b1cdbd2cSJim Jagielski# in order to generate exported symbols list out of Linux/Solaris map files
172*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
173*b1cdbd2cSJim Jagielski	@-$(RM) -f $@.symregexp >& $(NULLDEV)
174*b1cdbd2cSJim Jagielski	@-$(RM) -f $@.expsymlist >& $(NULLDEV)
175*b1cdbd2cSJim Jagielski.ENDIF
176*b1cdbd2cSJim Jagielski# Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what
177*b1cdbd2cSJim Jagielski# happens if somebody will change it in the future
178*b1cdbd2cSJim Jagielski.IF "$(COMID)"=="gcc3"
179*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL1VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@
180*b1cdbd2cSJim Jagielski.ELIF "$(COMNAME)"=="sunpro5"
181*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL1VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@
182*b1cdbd2cSJim Jagielski.ELSE           # "$(COMID)"=="gcc3"
183*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL1VERSIONMAP) > $@
184*b1cdbd2cSJim Jagielski.ENDIF          # "$(COMID)"=="gcc3"
185*b1cdbd2cSJim Jagielski	@chmod a+w $@
186*b1cdbd2cSJim Jagielski# Mac OS X post-processing generate an exported symbols list from the generated map file
187*b1cdbd2cSJim Jagielski# for details on exported symbols list see man ld on Mac OS X
188*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
189*b1cdbd2cSJim Jagielski	@-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols
190*b1cdbd2cSJim Jagielski	@-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp
191*b1cdbd2cSJim Jagielski# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
192*b1cdbd2cSJim Jagielski# Extract RTTI symbols from all the objects that will be used to build a shared library
193*b1cdbd2cSJim Jagielski.IF "$(SHL1OBJS)"!=""
194*b1cdbd2cSJim Jagielski	-echo $(foreach,i,$(SHL1OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
195*b1cdbd2cSJim Jagielski.ENDIF
196*b1cdbd2cSJim Jagielski.IF "$(SHL1LIBS)"!=""
197*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL1LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
198*b1cdbd2cSJim Jagielski.ENDIF
199*b1cdbd2cSJim Jagielski# overwrite the map file generate into the local output tree with the generated
200*b1cdbd2cSJim Jagielski# exported symbols list
201*b1cdbd2cSJim Jagielski	cp $@.exported-symbols $@
202*b1cdbd2cSJim Jagielski.ENDIF # .IF "$(OS)"=="MACOSX"
203*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL1VERSIONMAP)"!=""
204*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_SHL1VERSIONMAP)"!=""
205*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" != "UNX"
206*b1cdbd2cSJim Jagielski
207*b1cdbd2cSJim Jagielski.IF "$(UNIXVERSIONNAMES)"!=""
208*b1cdbd2cSJim Jagielski.IF "$(OS)"!="MACOSX"
209*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="UNX"
210*b1cdbd2cSJim JagielskiSHL1SONAME=\"$(SONAME_SWITCH)$(SHL1TARGETN:f)\"
211*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)"!="UNX"
212*b1cdbd2cSJim Jagielski.ENDIF			# "$(OS)"!="MACOSX"
213*b1cdbd2cSJim Jagielski.ENDIF			# "$(UNIXVERSIONNAMES)"!=""
214*b1cdbd2cSJim Jagielski
215*b1cdbd2cSJim Jagielski.IF "$(SHL1RES)"!=""
216*b1cdbd2cSJim JagielskiSHL1ALLRES+=$(SHL1RES)
217*b1cdbd2cSJim JagielskiSHL1LINKRES*=$(MISC)/$(SHL1TARGET).res
218*b1cdbd2cSJim JagielskiSHL1LINKRESO*=$(MISC)/$(SHL1TARGET)_res.o
219*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL1RES)"!=""
220*b1cdbd2cSJim Jagielski
221*b1cdbd2cSJim Jagielski.IF "$(SHL1DEFAULTRES)$(use_shl_versions)"!=""
222*b1cdbd2cSJim JagielskiSHL1DEFAULTRES*=$(MISC)/$(SHL1TARGET)_def.res
223*b1cdbd2cSJim JagielskiSHL1ALLRES+=$(SHL1DEFAULTRES)
224*b1cdbd2cSJim JagielskiSHL1LINKRES*=$(MISC)/$(SHL1TARGET).res
225*b1cdbd2cSJim JagielskiSHL1LINKRESO*=$(MISC)/$(SHL1TARGET)_res.o
226*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL1DEFAULTRES)$(use_shl_versions)"!=""
227*b1cdbd2cSJim Jagielski
228*b1cdbd2cSJim Jagielski#.IF "$(SHL1TARGETN)"!=""
229*b1cdbd2cSJim Jagielski
230*b1cdbd2cSJim Jagielski.IF "$(linkinc)"!=""
231*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
232*b1cdbd2cSJim Jagielski.IF "$(SHL1LIBS)"!=""
233*b1cdbd2cSJim Jagielski$(MISC)/$(SHL1TARGET)_linkinc.ls .PHONY:
234*b1cdbd2cSJim Jagielski	@@-$(RM) $@
235*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL1LIBS) $(i:s/.lib/.lin/)) >> $@
236*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL1LIBS)"!=""
237*b1cdbd2cSJim Jagielski.ENDIF
238*b1cdbd2cSJim Jagielski
239*b1cdbd2cSJim JagielskiLINKINCTARGETS+=$(MISC)/$(SHL1TARGETN:b)_linkinc.ls
240*b1cdbd2cSJim Jagielski$(SHL1TARGETN) : $(LINKINCTARGETS)
241*b1cdbd2cSJim Jagielski
242*b1cdbd2cSJim Jagielski.ELSE
243*b1cdbd2cSJim Jagielski.IF "$(SHL1USE_EXPORTS)"=="name"
244*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
245*b1cdbd2cSJim Jagielski.IF "$(COM)"!="GCC"
246*b1cdbd2cSJim Jagielski.IF "$(SHL1LIBS)"!=""
247*b1cdbd2cSJim JagielskiSHL1LINKLIST=$(MISC)/$(SHL1TARGET)_link.lst
248*b1cdbd2cSJim JagielskiSHL1LINKLISTPARAM=@$(SHL1LINKLIST)
249*b1cdbd2cSJim Jagielski$(SHL1LINKLIST) : $(SHL1LIBS)
250*b1cdbd2cSJim Jagielski    @@-$(RM) $@
251*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL1LIBS) $(i:s/.lib/.lin/)) >> $@
252*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL1LIBS)"!=""
253*b1cdbd2cSJim Jagielski.ENDIF          # "$(COM)"!="GCC"
254*b1cdbd2cSJim Jagielski.ENDIF
255*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL1USE_EXPORTS)"=="name"
256*b1cdbd2cSJim Jagielski
257*b1cdbd2cSJim Jagielski$(MISC)/%linkinc.ls:
258*b1cdbd2cSJim Jagielski	@echo . > $@
259*b1cdbd2cSJim Jagielski.ENDIF          # "$(linkinc)"!=""
260*b1cdbd2cSJim Jagielski
261*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "OS2"
262*b1cdbd2cSJim Jagielski#21/02/2006 YD dll names must be 8.3, invoke fix script
263*b1cdbd2cSJim Jagielski#check osl/os2/module.c/osl_loadModule()
264*b1cdbd2cSJim JagielskiSHL1TARGET8=$(shell @fix_shl.cmd $(SHL1TARGET))
265*b1cdbd2cSJim Jagielski.ENDIF
266*b1cdbd2cSJim Jagielski
267*b1cdbd2cSJim Jagielski
268*b1cdbd2cSJim Jagielski$(SHL1TARGETN) : \
269*b1cdbd2cSJim Jagielski					$(SHL1OBJS)\
270*b1cdbd2cSJim Jagielski					$(SHL1LIBS)\
271*b1cdbd2cSJim Jagielski					$(USE_1IMPLIB_DEPS)\
272*b1cdbd2cSJim Jagielski					$(USE_SHL1DEF)\
273*b1cdbd2cSJim Jagielski					$(USE_SHL1VERSIONMAP)\
274*b1cdbd2cSJim Jagielski					$(SHL1RES)\
275*b1cdbd2cSJim Jagielski					$(SHL1DEPN) \
276*b1cdbd2cSJim Jagielski					$(SHL1LINKLIST)
277*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f)
278*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT"
279*b1cdbd2cSJim Jagielski.IF "$(SHL1DEFAULTRES)"!=""
280*b1cdbd2cSJim Jagielski	@@-$(RM) $(MISC)/$(SHL1DEFAULTRES:b).rc
281*b1cdbd2cSJim Jagielski.IF "$(SHL1ICON)" != ""
282*b1cdbd2cSJim Jagielski	@echo 1 ICON $(SHL1ICON) >> $(MISC)/$(SHL1DEFAULTRES:b).rc
283*b1cdbd2cSJim Jagielski.ENDIF
284*b1cdbd2cSJim Jagielski.IF "$(use_shl_versions)" != ""
285*b1cdbd2cSJim Jagielski.IF "$(SHL1ADD_VERINFO)"!=""
286*b1cdbd2cSJim Jagielski	@echo $(EMQ)#include $(EMQ)"$(SHL1ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL1DEFAULTRES:b).rc
287*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL1ADD_VERINFO)"!=""
288*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL1DEFAULTRES:b).rc
289*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL1DEFAULTRES:b).rc
290*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL1DEFAULTRES:b).rc
291*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL1ADD_VERINFO)"!=""
292*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)/$(SHL1DEFAULTRES:b).rc
293*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ORG_NAME	$(SHL1TARGET)$(DLLPOST) >> $(MISC)/$(SHL1DEFAULTRES:b).rc
294*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define INTERNAL_NAME $(SHL1TARGET:b) >> $(MISC)/$(SHL1DEFAULTRES:b).rc
295*b1cdbd2cSJim Jagielski	@echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL1DEFAULTRES:b).rc
296*b1cdbd2cSJim Jagielski.ENDIF			# "$(use_shl_versions)" != ""
297*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL1DEFAULTRES:b).rc
298*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL1DEFAULTRES)"!=""
299*b1cdbd2cSJim Jagielski.IF "$(SHL1ALLRES)"!=""
300*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(TYPE) $(SHL1ALLRES) > $(SHL1LINKRES)
301*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"
302*b1cdbd2cSJim Jagielski	windres $(SHL1LINKRES) $(SHL1LINKRESO)
303*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
304*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL1ALLRES)"!=""
305*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"	# always have to call dlltool explicitly as ld cannot handle # comment in .def
306*b1cdbd2cSJim Jagielski	@echo dlltool --dllname $(SHL1TARGET)$(DLLPOST) \
307*b1cdbd2cSJim Jagielski		--kill-at \\ > $(MISC)/$(TARGET).$(@:b)_1.cmd
308*b1cdbd2cSJim Jagielski	@noop $(assign ALL1OBJLIST:=$(STDOBJ) $(SHL1OBJS) $(SHL1LINKRESO) $(shell $(TYPE) /dev/null $(SHL1LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g))
309*b1cdbd2cSJim Jagielski.IF "$(DEFLIB1NAME)"!=""	# do not have to include objs
310*b1cdbd2cSJim Jagielski	@noop $(assign DEF1OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB1NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g))
311*b1cdbd2cSJim Jagielski	@noop $(foreach,i,$(DEF1OBJLIST) $(assign ALL1OBJLIST:=$(ALL1OBJLIST:s?$i??)))
312*b1cdbd2cSJim Jagielski.ENDIF			# "$(DEFLIB1NAME)"!=""
313*b1cdbd2cSJim Jagielski	@echo	--output-exp $(MISC)/$(@:b)_exp.o \\ >> $(MISC)/$(TARGET).$(@:b)_1.cmd
314*b1cdbd2cSJim Jagielski.IF "$(SHL1DEF)"!=""
315*b1cdbd2cSJim Jagielski	@echo	--input-def $(SHL1DEF) \\ >> $(MISC)/$(TARGET).$(@:b)_1.cmd
316*b1cdbd2cSJim Jagielski.ELSE
317*b1cdbd2cSJim Jagielski	@echo	$(SHL1VERSIONOBJ) $(SHL1DESCRIPTIONOBJ) \\ >> $(MISC)/$(TARGET).$(@:b)_1.cmd
318*b1cdbd2cSJim Jagielski.ENDIF
319*b1cdbd2cSJim Jagielski	@echo	$(ALL1OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_1.cmd
320*b1cdbd2cSJim Jagielski	@echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \
321*b1cdbd2cSJim Jagielski		$(STDOBJ) $(SHL1VERSIONOBJ) $(SHL1DESCRIPTIONOBJ) $(SHL1OBJS) $(SHL1LINKRESO) \
322*b1cdbd2cSJim Jagielski		`$(TYPE) /dev/null $(SHL1LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
323*b1cdbd2cSJim Jagielski		-Wl,--exclude-libs,ALL,--start-group $(SHL1STDLIBS) -Wl,--end-group \
324*b1cdbd2cSJim Jagielski		$(SHL1STDSHL) $(STDSHL1) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \
325*b1cdbd2cSJim Jagielski		-Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_1.cmd
326*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
327*b1cdbd2cSJim Jagielski	@$(TYPE)  $(MISC)/$(TARGET).$(@:b)_1.cmd
328*b1cdbd2cSJim Jagielski  .ENDIF
329*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_1.cmd
330*b1cdbd2cSJim Jagielski.ELSE
331*b1cdbd2cSJim Jagielski.IF "$(linkinc)"==""
332*b1cdbd2cSJim Jagielski.IF "$(SHL1USE_EXPORTS)"!="name"
333*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
334*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL1LINKER) @$(mktmp \
335*b1cdbd2cSJim Jagielski		$(SHL1LINKFLAGS) \
336*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) \
337*b1cdbd2cSJim Jagielski		$(SHL1STACK) $(SHL1BASEX)	\
338*b1cdbd2cSJim Jagielski		-out:$@ \
339*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:b).map \
340*b1cdbd2cSJim Jagielski		-def:$(SHL1DEF) \
341*b1cdbd2cSJim Jagielski		$(USE_1IMPLIB) \
342*b1cdbd2cSJim Jagielski		$(STDOBJ) \
343*b1cdbd2cSJim Jagielski		$(SHL1VERSIONOBJ) $(SHL1OBJS) \
344*b1cdbd2cSJim Jagielski		$(SHL1LIBS) \
345*b1cdbd2cSJim Jagielski		$(SHL1STDLIBS) \
346*b1cdbd2cSJim Jagielski		$(SHL1STDSHL) $(STDSHL1) \
347*b1cdbd2cSJim Jagielski		$(SHL1LINKRES) \
348*b1cdbd2cSJim Jagielski	)
349*b1cdbd2cSJim Jagielski# double check if target was really written... still making sense?
350*b1cdbd2cSJim Jagielski    @@$(LS) $@
351*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
352*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
353*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
354*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
355*b1cdbd2cSJim Jagielski.ELSE
356*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
357*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
358*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
359*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
360*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)"!=""
361*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL1LINKER) @$(mktmp	$(SHL1LINKFLAGS)			\
362*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL1BASEX)		\
363*b1cdbd2cSJim Jagielski		$(SHL1STACK) -out:$(SHL1TARGETN)	\
364*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:B).map				\
365*b1cdbd2cSJim Jagielski		$(LB)/$(SHL1IMPLIB).exp				\
366*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
367*b1cdbd2cSJim Jagielski		$(SHL1OBJS) $(SHL1VERSIONOBJ) \
368*b1cdbd2cSJim Jagielski		$(SHL1LIBS)                         \
369*b1cdbd2cSJim Jagielski		$(SHL1STDLIBS)                      \
370*b1cdbd2cSJim Jagielski		$(SHL1STDSHL) $(STDSHL1)                           \
371*b1cdbd2cSJim Jagielski		$(SHL1LINKRES) \
372*b1cdbd2cSJim Jagielski	)
373*b1cdbd2cSJim Jagielski# double check if target was really written... still making sense?
374*b1cdbd2cSJim Jagielski    @@$(LS) $@
375*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
376*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
377*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
378*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
379*b1cdbd2cSJim Jagielski.ELSE
380*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
381*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
382*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
383*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
384*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"!=""
385*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL1USE_EXPORTS)"!="name"
386*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL1LINKER) @$(mktmp	$(SHL1LINKFLAGS)			\
387*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL1BASEX)		\
388*b1cdbd2cSJim Jagielski		$(SHL1STACK) -out:$(SHL1TARGETN)	\
389*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:B).map				\
390*b1cdbd2cSJim Jagielski		$(USE_1IMPLIB) \
391*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
392*b1cdbd2cSJim Jagielski		$(SHL1OBJS) $(SHL1VERSIONOBJ))   \
393*b1cdbd2cSJim Jagielski		$(SHL1LINKLISTPARAM) \
394*b1cdbd2cSJim Jagielski		@$(mktmp $(SHL1STDLIBS)                      \
395*b1cdbd2cSJim Jagielski		$(SHL1STDSHL) $(STDSHL1)                           \
396*b1cdbd2cSJim Jagielski		$(SHL1LINKRES) \
397*b1cdbd2cSJim Jagielski	)
398*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
399*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
400*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
401*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
402*b1cdbd2cSJim Jagielski.ELSE
403*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
404*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
405*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
406*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
407*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL1USE_EXPORTS)"!="name"
408*b1cdbd2cSJim Jagielski.ELSE			# "$(linkinc)"==""
409*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL1TARGET).lnk
410*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL1TARGET).lst
411*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(TYPE) $(mktmp \
412*b1cdbd2cSJim Jagielski		$(SHL1LINKFLAGS) \
413*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL1BASEX) \
414*b1cdbd2cSJim Jagielski		$(SHL1STACK) $(MAPFILE) \
415*b1cdbd2cSJim Jagielski		-out:$@ \
416*b1cdbd2cSJim Jagielski		$(LB)/$(SHL1IMPLIB).exp \
417*b1cdbd2cSJim Jagielski		$(STDOBJ) \
418*b1cdbd2cSJim Jagielski		$(SHL1OBJS) \
419*b1cdbd2cSJim Jagielski		$(SHL1STDLIBS) \
420*b1cdbd2cSJim Jagielski		$(SHL1STDSHL) $(STDSHL1) \
421*b1cdbd2cSJim Jagielski		$(SHL1LINKRES) \
422*b1cdbd2cSJim Jagielski		) >> $(MISC)/$(SHL1TARGET).lnk
423*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL1TARGETN:b)_linkinc.ls  >> $(MISC)/$(SHL1TARGET).lnk
424*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(SHL1LINKER) @$(MISC)/$(SHL1TARGET).lnk
425*b1cdbd2cSJim Jagielski		@echo linking $@.manifest ...
426*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
427*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
428*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
429*b1cdbd2cSJim Jagielski.ELSE
430*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
431*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
432*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
433*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
434*b1cdbd2cSJim Jagielski.ENDIF			# "$(linkinc)"==""
435*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
436*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "WNT"
437*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="UNX"
438*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
439*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(@:b).list
440*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(TARGET).$(@:b)_1.cmd
441*b1cdbd2cSJim Jagielski	@echo $(STDSLO) $(SHL1OBJS:s/.obj/.o/) \
442*b1cdbd2cSJim Jagielski	$(SHL1VERSIONOBJ) \
443*b1cdbd2cSJim Jagielski	`cat /dev/null $(SHL1LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list
444*b1cdbd2cSJim Jagielski	@echo -n $(SHL1LINKER) $(SHL1LINKFLAGS) $(SHL1VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \
445*b1cdbd2cSJim Jagielski	$(SHL1STDLIBS) $(SHL1ARCHIVES) $(SHL1STDSHL) $(STDSHL1) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_1.cmd
446*b1cdbd2cSJim Jagielski    @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \
447*b1cdbd2cSJim Jagielski        `cat $(MISC)/$(TARGET).$(@:b)_1.cmd` \
448*b1cdbd2cSJim Jagielski        >> $(MISC)/$(TARGET).$(@:b)_1.cmd
449*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
450*b1cdbd2cSJim Jagielski	@cat $(MISC)/$(TARGET).$(@:b)_1.cmd
451*b1cdbd2cSJim Jagielski  .ENDIF
452*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_1.cmd
453*b1cdbd2cSJim Jagielski    @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \
454*b1cdbd2cSJim Jagielski        shl $(SHL1RPATH) $@
455*b1cdbd2cSJim Jagielski.IF "$(SHL1CREATEJNILIB)"!=""
456*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f).jnilib
457*b1cdbd2cSJim Jagielski	@macosx-create-bundle $@
458*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL1CREATEJNILIB)"!=""
459*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
460*b1cdbd2cSJim Jagielski.IF "$(SHL1NOCHECK)"==""
461*b1cdbd2cSJim Jagielski	$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS1) $(SHL1TARGETN)
462*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL1NOCHECK)"!=""
463*b1cdbd2cSJim Jagielski.ENDIF
464*b1cdbd2cSJim Jagielski.ELSE			# "$(OS)"=="MACOSX"
465*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(TARGET).$(@:b)_1.cmd
466*b1cdbd2cSJim Jagielski	@echo $(SHL1LINKER) $(SHL1LINKFLAGS) $(SHL1SONAME) $(LINKFLAGSSHL) $(SHL1VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL1OBJS:s/.obj/.o/) \
467*b1cdbd2cSJim Jagielski	$(SHL1VERSIONOBJ) -o $@ \
468*b1cdbd2cSJim Jagielski	`cat /dev/null $(SHL1LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
469*b1cdbd2cSJim Jagielski	$(SHL1STDLIBS) $(SHL1ARCHIVES) $(SHL1STDSHL) $(STDSHL1) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_1.cmd
470*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
471*b1cdbd2cSJim Jagielski	@cat $(MISC)/$(TARGET).$(@:b)_1.cmd
472*b1cdbd2cSJim Jagielski  .ENDIF
473*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_1.cmd
474*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
475*b1cdbd2cSJim Jagielski.IF "$(SHL1NOCHECK)"==""
476*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)-$(RM) $(SHL1TARGETN:d)check_$(SHL1TARGETN:f)
477*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RENAME) $(SHL1TARGETN) $(SHL1TARGETN:d)check_$(SHL1TARGETN:f)
478*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)"=="TRUE"
479*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS1) $(SHL1TARGETN:d)check_$(SHL1TARGETN:f)
480*b1cdbd2cSJim Jagielski.ELSE
481*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS1) -- -s $(SHL1TARGETN:d)check_$(SHL1TARGETN:f)
482*b1cdbd2cSJim Jagielski.ENDIF
483*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL1NOCHECK)"!=""
484*b1cdbd2cSJim Jagielski.ENDIF			# "$(UPDATER)"=="YES"
485*b1cdbd2cSJim Jagielski.ENDIF			# "$(OS)"=="MACOSX"
486*b1cdbd2cSJim Jagielski.IF "$(UNIXVERSIONNAMES)"!=""
487*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RM) $(LB)/$(SHL1TARGETN:b)
488*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)cd $(LB) && ln -s $(SHL1TARGETN:f) $(SHL1TARGETN:b)
489*b1cdbd2cSJim Jagielski.ENDIF			# "$(UNIXVERSIONNAMES)"!=""
490*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)" == "TRUE"
491*b1cdbd2cSJim Jagielski	@ls -l $@
492*b1cdbd2cSJim Jagielski.ENDIF
493*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "UNX"
494*b1cdbd2cSJim Jagielski
495*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "OS2"
496*b1cdbd2cSJim Jagielski
497*b1cdbd2cSJim Jagielski.IF "$(SHL1DEFAULTRES)"!=""
498*b1cdbd2cSJim Jagielski	@+-$(RM) $(MISC)/$(SHL1DEFAULTRES:b).rc > $(NULLDEV)
499*b1cdbd2cSJim Jagielski.IF "$(SHL1ICON)" != ""
500*b1cdbd2cSJim Jagielski	@-+echo 1 ICON $(SHL1ICON) >> $(MISC)/$(SHL1DEFAULTRES:b).rc
501*b1cdbd2cSJim Jagielski.ENDIF
502*b1cdbd2cSJim Jagielski.IF "$(use_shl_versions)" != ""
503*b1cdbd2cSJim Jagielski.IF "$(SHL1ADD_VERINFO)"!=""
504*b1cdbd2cSJim Jagielski	@-+echo $(EMQ)#include $(EMQ)"$(SHL1ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL1DEFAULTRES:b).rc
505*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL1ADD_VERINFO)"!=""
506*b1cdbd2cSJim Jagielski	@-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL1DEFAULTRES:b).rc
507*b1cdbd2cSJim Jagielski#	@-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL1DEFAULTRES:b).rc
508*b1cdbd2cSJim Jagielski.ENDIF			# "$(use_shl_versions)" != ""
509*b1cdbd2cSJim Jagielski# YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR)
510*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL1DEFAULTRES:b).rc
511*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL1DEFAULTRES)"!=""
512*b1cdbd2cSJim Jagielski
513*b1cdbd2cSJim Jagielski.IF "$(SHL1ALLRES)"!=""
514*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(TYPE) $(SHL1ALLRES) > $(SHL1LINKRES)
515*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL1ALLRES)"!=""
516*b1cdbd2cSJim Jagielski
517*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
518*b1cdbd2cSJim Jagielski
519*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL1LINKER) $(SHL1LINKFLAGS) $(LINKFLAGSSHL) -o $@ \
520*b1cdbd2cSJim Jagielski		$(SHL1DEF) \
521*b1cdbd2cSJim Jagielski		$(STDOBJ) \
522*b1cdbd2cSJim Jagielski		-L$(LB) \
523*b1cdbd2cSJim Jagielski		-L$(SOLARVERSION)/$(INPATH)/lib \
524*b1cdbd2cSJim Jagielski		$(SHL1OBJS) $(SHL1VERSIONOBJ) \
525*b1cdbd2cSJim Jagielski		$(SHL1LIBS) \
526*b1cdbd2cSJim Jagielski		$(SHL1LINKRES) \
527*b1cdbd2cSJim Jagielski		$(SHL1STDLIBS) \
528*b1cdbd2cSJim Jagielski		$(SHL1STDSHL) $(STDSHL1)
529*b1cdbd2cSJim Jagielski
530*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)"!=""
531*b1cdbd2cSJim Jagielski
532*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL1LINKER) $(SHL1LINKFLAGS)			\
533*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL1BASEX)		\
534*b1cdbd2cSJim Jagielski		$(SHL1STACK) -o $(SHL1TARGETN)	\
535*b1cdbd2cSJim Jagielski		$(SHL1DEF) \
536*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
537*b1cdbd2cSJim Jagielski		-L$(LB) \
538*b1cdbd2cSJim Jagielski		-L$(SOLARVERSION)/$(INPATH)/lib \
539*b1cdbd2cSJim Jagielski		$(SHL1OBJS) $(SHL1VERSIONOBJ) \
540*b1cdbd2cSJim Jagielski		$(SHL1LIBS) \
541*b1cdbd2cSJim Jagielski		$(SHL1LINKRES) \
542*b1cdbd2cSJim Jagielski		$(SHL1STDLIBS) \
543*b1cdbd2cSJim Jagielski		$(SHL1STDSHL) $(STDSHL1)
544*b1cdbd2cSJim Jagielski
545*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"!=""
546*b1cdbd2cSJim Jagielski
547*b1cdbd2cSJim Jagielski.IF "$(SHL1USE_EXPORTS)"=="name"
548*b1cdbd2cSJim Jagielski#03/11/2012  if 'name' is used, export from DLL file (only names, no ordinals)
549*b1cdbd2cSJim Jagielski	@echo Build import library from DLL file.
550*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(LB)/$(SHL1TARGETN:b).lib $@
551*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL1USE_EXPORTS)"==""
552*b1cdbd2cSJim Jagielski
553*b1cdbd2cSJim Jagielski.IF "$(SHL1TARGET8)" != "$(SHL1TARGET)"
554*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL1TARGET8).dll
555*b1cdbd2cSJim Jagielski.ENDIF
556*b1cdbd2cSJim Jagielski
557*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "OS2"
558*b1cdbd2cSJim Jagielski
559*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL1TARGETN)"!=""
560*b1cdbd2cSJim Jagielski
561*b1cdbd2cSJim Jagielski# unroll begin
562*b1cdbd2cSJim Jagielski
563*b1cdbd2cSJim Jagielski.IF "$(SHL2TARGETN)"!=""
564*b1cdbd2cSJim Jagielski
565*b1cdbd2cSJim Jagielski.IF "$(OS)"=="AIX"
566*b1cdbd2cSJim JagielskiSHL2STDLIBS=
567*b1cdbd2cSJim Jagielski.ENDIF
568*b1cdbd2cSJim Jagielski
569*b1cdbd2cSJim Jagielski.IF "$(SHLLINKARCONLY)" != ""
570*b1cdbd2cSJim JagielskiSHL2STDLIBS=
571*b1cdbd2cSJim JagielskiSTDSHL=
572*b1cdbd2cSJim Jagielski.ELSE
573*b1cdbd2cSJim JagielskiSHL2ARCHIVES=
574*b1cdbd2cSJim Jagielski.ENDIF
575*b1cdbd2cSJim Jagielski
576*b1cdbd2cSJim Jagielski# decide how to link
577*b1cdbd2cSJim Jagielski.IF "$(SHL2CODETYPE)"=="C"
578*b1cdbd2cSJim JagielskiSHL2LINKER=$(LINKC)
579*b1cdbd2cSJim JagielskiSHL2STDSHL=$(subst,CPPRUNTIME, $(STDSHL))
580*b1cdbd2cSJim JagielskiSHL2LINKFLAGS+=$(LINKCFLAGS)
581*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL2CODETYPE)"=="C"
582*b1cdbd2cSJim JagielskiSHL2LINKER=$(LINK)
583*b1cdbd2cSJim JagielskiSHL2STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL))
584*b1cdbd2cSJim JagielskiSHL2LINKFLAGS+=$(LINKFLAGS)
585*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL2CODETYPE)"=="C"
586*b1cdbd2cSJim Jagielski
587*b1cdbd2cSJim JagielskiSHL2RPATH*=OOO
588*b1cdbd2cSJim JagielskiLINKFLAGSRUNPATH_$(SHL2RPATH)*=/ERROR:/Bad_SHL2RPATH_value
589*b1cdbd2cSJim JagielskiSHL2LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL2RPATH))
590*b1cdbd2cSJim Jagielski
591*b1cdbd2cSJim Jagielski.IF "$(SHL2USE_EXPORTS)"=="" || "$(GUI)"=="OS2"
592*b1cdbd2cSJim JagielskiSHL2DEF*=$(MISC)/$(SHL2TARGET).def
593*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL2USE_EXPORTS)"==""
594*b1cdbd2cSJim Jagielski
595*b1cdbd2cSJim JagielskiEXTRALIBPATHS2=$(EXTRALIBPATHS)
596*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
597*b1cdbd2cSJim Jagielski.IF "$(SHL2NOCHECK)"==""
598*b1cdbd2cSJim Jagielski.IF "$(SOLAR_STLLIBPATH)"!=""
599*b1cdbd2cSJim JagielskiEXTRALIBPATHS2+=-L$(SOLAR_STLLIBPATH)
600*b1cdbd2cSJim Jagielski.ENDIF
601*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL2NOCHECK)"!=""
602*b1cdbd2cSJim Jagielski.ENDIF
603*b1cdbd2cSJim Jagielski#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
604*b1cdbd2cSJim Jagielski#+++++++++++    version object      ++++++++++++++++++++++++++++++++++++++++
605*b1cdbd2cSJim Jagielski#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
606*b1cdbd2cSJim Jagielski
607*b1cdbd2cSJim Jagielski.IF "$(L10N_framework)"==""
608*b1cdbd2cSJim Jagielski.IF "$(VERSIONOBJ)"!=""
609*b1cdbd2cSJim JagielskiSHL2VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL2TARGET))}$(VERSIONOBJ:f)
610*b1cdbd2cSJim JagielskiUSE_VERSIONH:=$(INCCOM)/$(SHL2VERSIONOBJ:b).h
611*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "UNX"
612*b1cdbd2cSJim JagielskiSHL2VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL2TARGET))}$(VERSIONOBJ:f:s/.o/.obj/)
613*b1cdbd2cSJim Jagielski.ELSE           # "$(GUI)" == "UNX"
614*b1cdbd2cSJim JagielskiSHL2VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL2TARGET))}$(VERSIONOBJ:f)
615*b1cdbd2cSJim Jagielski.ENDIF          # "$(GUI)" == "UNX"
616*b1cdbd2cSJim Jagielski$(MISC)/$(SHL2VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL2VERSIONOBJ:b).h
617*b1cdbd2cSJim Jagielski#    $(COPY) $(SOLARENV)/src/version.c $@
618*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL2VERSIONOBJ:b).h/ > $@
619*b1cdbd2cSJim Jagielski
620*b1cdbd2cSJim Jagielski.INIT : $(SHL2VERSIONOBJDEP)
621*b1cdbd2cSJim Jagielski.ENDIF			# "$(VERSIONOBJ)"!=""
622*b1cdbd2cSJim Jagielski.ENDIF
623*b1cdbd2cSJim Jagielski
624*b1cdbd2cSJim Jagielski.IF "$(GUI)" != "UNX"
625*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
626*b1cdbd2cSJim Jagielski.IF "$(SHL2IMPLIB)" == ""
627*b1cdbd2cSJim JagielskiSHL2IMPLIB=i$(TARGET)_t2
628*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL2IMPLIB)" == ""
629*b1cdbd2cSJim Jagielski.IF "$(COM)" != "GCC"
630*b1cdbd2cSJim JagielskiUSE_2IMPLIB=-implib:$(LB)/$(SHL2IMPLIB).lib
631*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)" != "GCC"
632*b1cdbd2cSJim JagielskiSHL2IMPLIBN=$(LB)/$(SHL2IMPLIB).lib
633*b1cdbd2cSJim JagielskiALLTAR : $(SHL2IMPLIBN)
634*b1cdbd2cSJim Jagielski
635*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"==""
636*b1cdbd2cSJim JagielskiUSE_2IMPLIB_DEPS=$(LB)/$(SHL2IMPLIB).lib
637*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"==""
638*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
639*b1cdbd2cSJim JagielskiUSE_SHL2DEF=$(SHL2DEF)
640*b1cdbd2cSJim Jagielski.ELSE			# "$(GUI)" != "UNX"
641*b1cdbd2cSJim JagielskiUSE_SHL2DEF=
642*b1cdbd2cSJim JagielskiSHL2DEPN+:=$(SHL2DEPNU)
643*b1cdbd2cSJim Jagielski
644*b1cdbd2cSJim Jagielski.IF "$(SHL2VERSIONMAP)"==""
645*b1cdbd2cSJim Jagielski# to activate vmaps remove "#"
646*b1cdbd2cSJim JagielskiUSE_SHL2VERSIONMAP=$(MISC)/$(SHL2TARGET).vmap
647*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL2VERSIONMAP)"==""
648*b1cdbd2cSJim Jagielski
649*b1cdbd2cSJim Jagielski.IF "$(USE_SHL2VERSIONMAP)"!=""
650*b1cdbd2cSJim Jagielski
651*b1cdbd2cSJim Jagielski.IF "$(SHL2FILTERFILE)"!=""
652*b1cdbd2cSJim Jagielski.IF "$(SHL2VERSIONMAP)"!=""
653*b1cdbd2cSJim Jagielski#eine von beiden ist zuviel
654*b1cdbd2cSJim JagielskiUSE_SHL2VERSIONMAP=$(MISC)/$(SHL2TARGET).vmap
655*b1cdbd2cSJim Jagielski$(USE_SHL2VERSIONMAP) .PHONY:
656*b1cdbd2cSJim Jagielski	@echo -----------------------------
657*b1cdbd2cSJim Jagielski	@echo you should only use versionmap OR exportfile
658*b1cdbd2cSJim Jagielski	@echo -----------------------------
659*b1cdbd2cSJim Jagielski#	force_dmake_to_error
660*b1cdbd2cSJim Jagielski
661*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL2VERSIONMAP)"!=""
662*b1cdbd2cSJim Jagielski
663*b1cdbd2cSJim JagielskiSHL2VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL2VERSIONMAP)
664*b1cdbd2cSJim Jagielski
665*b1cdbd2cSJim Jagielski$(USE_SHL2VERSIONMAP): \
666*b1cdbd2cSJim Jagielski					$(SHL2OBJS)\
667*b1cdbd2cSJim Jagielski					$(SHL2LIBS)\
668*b1cdbd2cSJim Jagielski					$(SHL2FILTERFILE)
669*b1cdbd2cSJim Jagielski	@$(RM) $@.dump
670*b1cdbd2cSJim Jagielski.IF "$(SHL2OBJS)"!=""
671*b1cdbd2cSJim Jagielski# dump remaining objects on the fly
672*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
673*b1cdbd2cSJim Jagielski	@-nm $(SHL2OBJS:s/.obj/.o/) > $@.dump
674*b1cdbd2cSJim Jagielski.ELSE
675*b1cdbd2cSJim Jagielski	@nm $(SHL2OBJS:s/.obj/.o/) > $@.dump
676*b1cdbd2cSJim Jagielski.ENDIF
677*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL2OBJS)!"=""
678*b1cdbd2cSJim Jagielski	@$(TYPE) /dev/null $(SHL2LIBS:s/.lib/.dump/) >> $@.dump
679*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL2INTERFACE) -f $(SHL2FILTERFILE) -m $@
680*b1cdbd2cSJim Jagielski
681*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL2FILTERFILE)"!=""
682*b1cdbd2cSJim JagielskiUSE_SHL2VERSIONMAP=$(MISC)/$(SHL2TARGET).vmap
683*b1cdbd2cSJim Jagielski$(USE_SHL2VERSIONMAP) :
684*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)" == "TRUE"
685*b1cdbd2cSJim Jagielski	@echo -----------------------------
686*b1cdbd2cSJim Jagielski	@echo SHL2FILTERFILE not set!
687*b1cdbd2cSJim Jagielski	@echo -----------------------------
688*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
689*b1cdbd2cSJim Jagielski	@echo dummy file to keep the dependencies for later use.
690*b1cdbd2cSJim Jagielski.ELSE
691*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
692*b1cdbd2cSJim Jagielski.ENDIF
693*b1cdbd2cSJim Jagielski#	force_dmake_to_error
694*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL2FILTERFILE)"!=""
695*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_SHL2VERSIONMAP)"!=""
696*b1cdbd2cSJim Jagielski
697*b1cdbd2cSJim Jagielski#and now for the plain non-generic way...
698*b1cdbd2cSJim Jagielski.IF "$(SHL2VERSIONMAP)"!=""
699*b1cdbd2cSJim JagielskiUSE_SHL2VERSIONMAP=$(MISC)/$(SHL2VERSIONMAP:b)_$(SHL2TARGET)$(SHL2VERSIONMAP:e)
700*b1cdbd2cSJim JagielskiSHL2VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL2VERSIONMAP)
701*b1cdbd2cSJim Jagielski
702*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
703*b1cdbd2cSJim Jagielski$(USE_SHL2VERSIONMAP): $(SHL2OBJS) $(SHL2LIBS)
704*b1cdbd2cSJim Jagielski.ENDIF
705*b1cdbd2cSJim Jagielski
706*b1cdbd2cSJim Jagielski# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@
707*b1cdbd2cSJim Jagielski# even if the $(AWK) part fails:
708*b1cdbd2cSJim Jagielski$(USE_SHL2VERSIONMAP) .ERRREMOVE: $(SHL2VERSIONMAP)
709*b1cdbd2cSJim Jagielski	@@-$(RM) -f $@
710*b1cdbd2cSJim Jagielski# The following files will only be generated and needed on Mac OS X as temporary files
711*b1cdbd2cSJim Jagielski# in order to generate exported symbols list out of Linux/Solaris map files
712*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
713*b1cdbd2cSJim Jagielski	@-$(RM) -f $@.symregexp >& $(NULLDEV)
714*b1cdbd2cSJim Jagielski	@-$(RM) -f $@.expsymlist >& $(NULLDEV)
715*b1cdbd2cSJim Jagielski.ENDIF
716*b1cdbd2cSJim Jagielski# Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what
717*b1cdbd2cSJim Jagielski# happens if somebody will change it in the future
718*b1cdbd2cSJim Jagielski.IF "$(COMID)"=="gcc3"
719*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL2VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@
720*b1cdbd2cSJim Jagielski.ELIF "$(COMNAME)"=="sunpro5"
721*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL2VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@
722*b1cdbd2cSJim Jagielski.ELSE           # "$(COMID)"=="gcc3"
723*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL2VERSIONMAP) > $@
724*b1cdbd2cSJim Jagielski.ENDIF          # "$(COMID)"=="gcc3"
725*b1cdbd2cSJim Jagielski	@chmod a+w $@
726*b1cdbd2cSJim Jagielski# Mac OS X post-processing generate an exported symbols list from the generated map file
727*b1cdbd2cSJim Jagielski# for details on exported symbols list see man ld on Mac OS X
728*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
729*b1cdbd2cSJim Jagielski	@-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols
730*b1cdbd2cSJim Jagielski	@-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp
731*b1cdbd2cSJim Jagielski# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
732*b1cdbd2cSJim Jagielski# Extract RTTI symbols from all the objects that will be used to build a shared library
733*b1cdbd2cSJim Jagielski.IF "$(SHL2OBJS)"!=""
734*b1cdbd2cSJim Jagielski	-echo $(foreach,i,$(SHL2OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
735*b1cdbd2cSJim Jagielski.ENDIF
736*b1cdbd2cSJim Jagielski.IF "$(SHL2LIBS)"!=""
737*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL2LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
738*b1cdbd2cSJim Jagielski.ENDIF
739*b1cdbd2cSJim Jagielski# overwrite the map file generate into the local output tree with the generated
740*b1cdbd2cSJim Jagielski# exported symbols list
741*b1cdbd2cSJim Jagielski	cp $@.exported-symbols $@
742*b1cdbd2cSJim Jagielski.ENDIF # .IF "$(OS)"=="MACOSX"
743*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL2VERSIONMAP)"!=""
744*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_SHL2VERSIONMAP)"!=""
745*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" != "UNX"
746*b1cdbd2cSJim Jagielski
747*b1cdbd2cSJim Jagielski.IF "$(UNIXVERSIONNAMES)"!=""
748*b1cdbd2cSJim Jagielski.IF "$(OS)"!="MACOSX"
749*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="UNX"
750*b1cdbd2cSJim JagielskiSHL2SONAME=\"$(SONAME_SWITCH)$(SHL2TARGETN:f)\"
751*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)"!="UNX"
752*b1cdbd2cSJim Jagielski.ENDIF			# "$(OS)"!="MACOSX"
753*b1cdbd2cSJim Jagielski.ENDIF			# "$(UNIXVERSIONNAMES)"!=""
754*b1cdbd2cSJim Jagielski
755*b1cdbd2cSJim Jagielski.IF "$(SHL2RES)"!=""
756*b1cdbd2cSJim JagielskiSHL2ALLRES+=$(SHL2RES)
757*b1cdbd2cSJim JagielskiSHL2LINKRES*=$(MISC)/$(SHL2TARGET).res
758*b1cdbd2cSJim JagielskiSHL2LINKRESO*=$(MISC)/$(SHL2TARGET)_res.o
759*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL2RES)"!=""
760*b1cdbd2cSJim Jagielski
761*b1cdbd2cSJim Jagielski.IF "$(SHL2DEFAULTRES)$(use_shl_versions)"!=""
762*b1cdbd2cSJim JagielskiSHL2DEFAULTRES*=$(MISC)/$(SHL2TARGET)_def.res
763*b1cdbd2cSJim JagielskiSHL2ALLRES+=$(SHL2DEFAULTRES)
764*b1cdbd2cSJim JagielskiSHL2LINKRES*=$(MISC)/$(SHL2TARGET).res
765*b1cdbd2cSJim JagielskiSHL2LINKRESO*=$(MISC)/$(SHL2TARGET)_res.o
766*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL2DEFAULTRES)$(use_shl_versions)"!=""
767*b1cdbd2cSJim Jagielski
768*b1cdbd2cSJim Jagielski#.IF "$(SHL2TARGETN)"!=""
769*b1cdbd2cSJim Jagielski
770*b1cdbd2cSJim Jagielski.IF "$(linkinc)"!=""
771*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
772*b1cdbd2cSJim Jagielski.IF "$(SHL2LIBS)"!=""
773*b1cdbd2cSJim Jagielski$(MISC)/$(SHL2TARGET)_linkinc.ls .PHONY:
774*b1cdbd2cSJim Jagielski	@@-$(RM) $@
775*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL2LIBS) $(i:s/.lib/.lin/)) >> $@
776*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL2LIBS)"!=""
777*b1cdbd2cSJim Jagielski.ENDIF
778*b1cdbd2cSJim Jagielski
779*b1cdbd2cSJim JagielskiLINKINCTARGETS+=$(MISC)/$(SHL2TARGETN:b)_linkinc.ls
780*b1cdbd2cSJim Jagielski$(SHL2TARGETN) : $(LINKINCTARGETS)
781*b1cdbd2cSJim Jagielski
782*b1cdbd2cSJim Jagielski.ELSE
783*b1cdbd2cSJim Jagielski.IF "$(SHL2USE_EXPORTS)"=="name"
784*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
785*b1cdbd2cSJim Jagielski.IF "$(COM)"!="GCC"
786*b1cdbd2cSJim Jagielski.IF "$(SHL2LIBS)"!=""
787*b1cdbd2cSJim JagielskiSHL2LINKLIST=$(MISC)/$(SHL2TARGET)_link.lst
788*b1cdbd2cSJim JagielskiSHL2LINKLISTPARAM=@$(SHL2LINKLIST)
789*b1cdbd2cSJim Jagielski$(SHL2LINKLIST) : $(SHL2LIBS)
790*b1cdbd2cSJim Jagielski    @@-$(RM) $@
791*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL2LIBS) $(i:s/.lib/.lin/)) >> $@
792*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL2LIBS)"!=""
793*b1cdbd2cSJim Jagielski.ENDIF          # "$(COM)"!="GCC"
794*b1cdbd2cSJim Jagielski.ENDIF
795*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL2USE_EXPORTS)"=="name"
796*b1cdbd2cSJim Jagielski
797*b1cdbd2cSJim Jagielski$(MISC)/%linkinc.ls:
798*b1cdbd2cSJim Jagielski	@echo . > $@
799*b1cdbd2cSJim Jagielski.ENDIF          # "$(linkinc)"!=""
800*b1cdbd2cSJim Jagielski
801*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "OS2"
802*b1cdbd2cSJim Jagielski#21/02/2006 YD dll names must be 8.3, invoke fix script
803*b1cdbd2cSJim Jagielski#check osl/os2/module.c/osl_loadModule()
804*b1cdbd2cSJim JagielskiSHL2TARGET8=$(shell @fix_shl.cmd $(SHL2TARGET))
805*b1cdbd2cSJim Jagielski.ENDIF
806*b1cdbd2cSJim Jagielski
807*b1cdbd2cSJim Jagielski
808*b1cdbd2cSJim Jagielski$(SHL2TARGETN) : \
809*b1cdbd2cSJim Jagielski					$(SHL2OBJS)\
810*b1cdbd2cSJim Jagielski					$(SHL2LIBS)\
811*b1cdbd2cSJim Jagielski					$(USE_2IMPLIB_DEPS)\
812*b1cdbd2cSJim Jagielski					$(USE_SHL2DEF)\
813*b1cdbd2cSJim Jagielski					$(USE_SHL2VERSIONMAP)\
814*b1cdbd2cSJim Jagielski					$(SHL2RES)\
815*b1cdbd2cSJim Jagielski					$(SHL2DEPN) \
816*b1cdbd2cSJim Jagielski					$(SHL2LINKLIST)
817*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f)
818*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT"
819*b1cdbd2cSJim Jagielski.IF "$(SHL2DEFAULTRES)"!=""
820*b1cdbd2cSJim Jagielski	@@-$(RM) $(MISC)/$(SHL2DEFAULTRES:b).rc
821*b1cdbd2cSJim Jagielski.IF "$(SHL2ICON)" != ""
822*b1cdbd2cSJim Jagielski	@echo 1 ICON $(SHL2ICON) >> $(MISC)/$(SHL2DEFAULTRES:b).rc
823*b1cdbd2cSJim Jagielski.ENDIF
824*b1cdbd2cSJim Jagielski.IF "$(use_shl_versions)" != ""
825*b1cdbd2cSJim Jagielski.IF "$(SHL2ADD_VERINFO)"!=""
826*b1cdbd2cSJim Jagielski	@echo $(EMQ)#include $(EMQ)"$(SHL2ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL2DEFAULTRES:b).rc
827*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL2ADD_VERINFO)"!=""
828*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL2DEFAULTRES:b).rc
829*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL2DEFAULTRES:b).rc
830*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL2DEFAULTRES:b).rc
831*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL2ADD_VERINFO)"!=""
832*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)/$(SHL2DEFAULTRES:b).rc
833*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ORG_NAME	$(SHL2TARGET)$(DLLPOST) >> $(MISC)/$(SHL2DEFAULTRES:b).rc
834*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define INTERNAL_NAME $(SHL2TARGET:b) >> $(MISC)/$(SHL2DEFAULTRES:b).rc
835*b1cdbd2cSJim Jagielski	@echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL2DEFAULTRES:b).rc
836*b1cdbd2cSJim Jagielski.ENDIF			# "$(use_shl_versions)" != ""
837*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL2DEFAULTRES:b).rc
838*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL2DEFAULTRES)"!=""
839*b1cdbd2cSJim Jagielski.IF "$(SHL2ALLRES)"!=""
840*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(TYPE) $(SHL2ALLRES) > $(SHL2LINKRES)
841*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"
842*b1cdbd2cSJim Jagielski	windres $(SHL2LINKRES) $(SHL2LINKRESO)
843*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
844*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL2ALLRES)"!=""
845*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"	# always have to call dlltool explicitly as ld cannot handle # comment in .def
846*b1cdbd2cSJim Jagielski	@echo dlltool --dllname $(SHL2TARGET)$(DLLPOST) \
847*b1cdbd2cSJim Jagielski		--kill-at \\ > $(MISC)/$(TARGET).$(@:b)_2.cmd
848*b1cdbd2cSJim Jagielski	@noop $(assign ALL2OBJLIST:=$(STDOBJ) $(SHL2OBJS) $(SHL2LINKRESO) $(shell $(TYPE) /dev/null $(SHL2LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g))
849*b1cdbd2cSJim Jagielski.IF "$(DEFLIB2NAME)"!=""	# do not have to include objs
850*b1cdbd2cSJim Jagielski	@noop $(assign DEF2OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB2NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g))
851*b1cdbd2cSJim Jagielski	@noop $(foreach,i,$(DEF2OBJLIST) $(assign ALL2OBJLIST:=$(ALL2OBJLIST:s?$i??)))
852*b1cdbd2cSJim Jagielski.ENDIF			# "$(DEFLIB2NAME)"!=""
853*b1cdbd2cSJim Jagielski	@echo	--output-exp $(MISC)/$(@:b)_exp.o \\ >> $(MISC)/$(TARGET).$(@:b)_2.cmd
854*b1cdbd2cSJim Jagielski.IF "$(SHL2DEF)"!=""
855*b1cdbd2cSJim Jagielski	@echo	--input-def $(SHL2DEF) \\ >> $(MISC)/$(TARGET).$(@:b)_2.cmd
856*b1cdbd2cSJim Jagielski.ELSE
857*b1cdbd2cSJim Jagielski	@echo	$(SHL2VERSIONOBJ) $(SHL2DESCRIPTIONOBJ) \\ >> $(MISC)/$(TARGET).$(@:b)_2.cmd
858*b1cdbd2cSJim Jagielski.ENDIF
859*b1cdbd2cSJim Jagielski	@echo	$(ALL2OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_2.cmd
860*b1cdbd2cSJim Jagielski	@echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \
861*b1cdbd2cSJim Jagielski		$(STDOBJ) $(SHL2VERSIONOBJ) $(SHL2DESCRIPTIONOBJ) $(SHL2OBJS) $(SHL2LINKRESO) \
862*b1cdbd2cSJim Jagielski		`$(TYPE) /dev/null $(SHL2LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
863*b1cdbd2cSJim Jagielski		-Wl,--exclude-libs,ALL,--start-group $(SHL2STDLIBS) -Wl,--end-group \
864*b1cdbd2cSJim Jagielski		$(SHL2STDSHL) $(STDSHL2) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \
865*b1cdbd2cSJim Jagielski		-Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_2.cmd
866*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
867*b1cdbd2cSJim Jagielski	@$(TYPE)  $(MISC)/$(TARGET).$(@:b)_2.cmd
868*b1cdbd2cSJim Jagielski  .ENDIF
869*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_2.cmd
870*b1cdbd2cSJim Jagielski.ELSE
871*b1cdbd2cSJim Jagielski.IF "$(linkinc)"==""
872*b1cdbd2cSJim Jagielski.IF "$(SHL2USE_EXPORTS)"!="name"
873*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
874*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL2LINKER) @$(mktmp \
875*b1cdbd2cSJim Jagielski		$(SHL2LINKFLAGS) \
876*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) \
877*b1cdbd2cSJim Jagielski		$(SHL2STACK) $(SHL2BASEX)	\
878*b1cdbd2cSJim Jagielski		-out:$@ \
879*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:b).map \
880*b1cdbd2cSJim Jagielski		-def:$(SHL2DEF) \
881*b1cdbd2cSJim Jagielski		$(USE_2IMPLIB) \
882*b1cdbd2cSJim Jagielski		$(STDOBJ) \
883*b1cdbd2cSJim Jagielski		$(SHL2VERSIONOBJ) $(SHL2OBJS) \
884*b1cdbd2cSJim Jagielski		$(SHL2LIBS) \
885*b1cdbd2cSJim Jagielski		$(SHL2STDLIBS) \
886*b1cdbd2cSJim Jagielski		$(SHL2STDSHL) $(STDSHL2) \
887*b1cdbd2cSJim Jagielski		$(SHL2LINKRES) \
888*b1cdbd2cSJim Jagielski	)
889*b1cdbd2cSJim Jagielski# double check if target was really written... still making sense?
890*b1cdbd2cSJim Jagielski    @@$(LS) $@
891*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
892*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
893*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
894*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
895*b1cdbd2cSJim Jagielski.ELSE
896*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
897*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
898*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
899*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
900*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)"!=""
901*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL2LINKER) @$(mktmp	$(SHL2LINKFLAGS)			\
902*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL2BASEX)		\
903*b1cdbd2cSJim Jagielski		$(SHL2STACK) -out:$(SHL2TARGETN)	\
904*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:B).map				\
905*b1cdbd2cSJim Jagielski		$(LB)/$(SHL2IMPLIB).exp				\
906*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
907*b1cdbd2cSJim Jagielski		$(SHL2OBJS) $(SHL2VERSIONOBJ) \
908*b1cdbd2cSJim Jagielski		$(SHL2LIBS)                         \
909*b1cdbd2cSJim Jagielski		$(SHL2STDLIBS)                      \
910*b1cdbd2cSJim Jagielski		$(SHL2STDSHL) $(STDSHL2)                           \
911*b1cdbd2cSJim Jagielski		$(SHL2LINKRES) \
912*b1cdbd2cSJim Jagielski	)
913*b1cdbd2cSJim Jagielski# double check if target was really written... still making sense?
914*b1cdbd2cSJim Jagielski    @@$(LS) $@
915*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
916*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
917*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
918*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
919*b1cdbd2cSJim Jagielski.ELSE
920*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
921*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
922*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
923*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
924*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"!=""
925*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL2USE_EXPORTS)"!="name"
926*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL2LINKER) @$(mktmp	$(SHL2LINKFLAGS)			\
927*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL2BASEX)		\
928*b1cdbd2cSJim Jagielski		$(SHL2STACK) -out:$(SHL2TARGETN)	\
929*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:B).map				\
930*b1cdbd2cSJim Jagielski		$(USE_2IMPLIB) \
931*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
932*b1cdbd2cSJim Jagielski		$(SHL2OBJS) $(SHL2VERSIONOBJ))   \
933*b1cdbd2cSJim Jagielski		$(SHL2LINKLISTPARAM) \
934*b1cdbd2cSJim Jagielski		@$(mktmp $(SHL2STDLIBS)                      \
935*b1cdbd2cSJim Jagielski		$(SHL2STDSHL) $(STDSHL2)                           \
936*b1cdbd2cSJim Jagielski		$(SHL2LINKRES) \
937*b1cdbd2cSJim Jagielski	)
938*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
939*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
940*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
941*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
942*b1cdbd2cSJim Jagielski.ELSE
943*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
944*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
945*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
946*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
947*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL2USE_EXPORTS)"!="name"
948*b1cdbd2cSJim Jagielski.ELSE			# "$(linkinc)"==""
949*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL2TARGET).lnk
950*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL2TARGET).lst
951*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(TYPE) $(mktmp \
952*b1cdbd2cSJim Jagielski		$(SHL2LINKFLAGS) \
953*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL2BASEX) \
954*b1cdbd2cSJim Jagielski		$(SHL2STACK) $(MAPFILE) \
955*b1cdbd2cSJim Jagielski		-out:$@ \
956*b1cdbd2cSJim Jagielski		$(LB)/$(SHL2IMPLIB).exp \
957*b1cdbd2cSJim Jagielski		$(STDOBJ) \
958*b1cdbd2cSJim Jagielski		$(SHL2OBJS) \
959*b1cdbd2cSJim Jagielski		$(SHL2STDLIBS) \
960*b1cdbd2cSJim Jagielski		$(SHL2STDSHL) $(STDSHL2) \
961*b1cdbd2cSJim Jagielski		$(SHL2LINKRES) \
962*b1cdbd2cSJim Jagielski		) >> $(MISC)/$(SHL2TARGET).lnk
963*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL2TARGETN:b)_linkinc.ls  >> $(MISC)/$(SHL2TARGET).lnk
964*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(SHL2LINKER) @$(MISC)/$(SHL2TARGET).lnk
965*b1cdbd2cSJim Jagielski		@echo linking $@.manifest ...
966*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
967*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
968*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
969*b1cdbd2cSJim Jagielski.ELSE
970*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
971*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
972*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
973*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
974*b1cdbd2cSJim Jagielski.ENDIF			# "$(linkinc)"==""
975*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
976*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "WNT"
977*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="UNX"
978*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
979*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(@:b).list
980*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(TARGET).$(@:b)_2.cmd
981*b1cdbd2cSJim Jagielski	@echo $(STDSLO) $(SHL2OBJS:s/.obj/.o/) \
982*b1cdbd2cSJim Jagielski	$(SHL2VERSIONOBJ) \
983*b1cdbd2cSJim Jagielski	`cat /dev/null $(SHL2LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list
984*b1cdbd2cSJim Jagielski	@echo -n $(SHL2LINKER) $(SHL2LINKFLAGS) $(SHL2VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \
985*b1cdbd2cSJim Jagielski	$(SHL2STDLIBS) $(SHL2ARCHIVES) $(SHL2STDSHL) $(STDSHL2) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_2.cmd
986*b1cdbd2cSJim Jagielski    @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \
987*b1cdbd2cSJim Jagielski        `cat $(MISC)/$(TARGET).$(@:b)_2.cmd` \
988*b1cdbd2cSJim Jagielski        >> $(MISC)/$(TARGET).$(@:b)_2.cmd
989*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
990*b1cdbd2cSJim Jagielski	@cat $(MISC)/$(TARGET).$(@:b)_2.cmd
991*b1cdbd2cSJim Jagielski  .ENDIF
992*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_2.cmd
993*b1cdbd2cSJim Jagielski    @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \
994*b1cdbd2cSJim Jagielski        shl $(SHL2RPATH) $@
995*b1cdbd2cSJim Jagielski.IF "$(SHL2CREATEJNILIB)"!=""
996*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f).jnilib
997*b1cdbd2cSJim Jagielski	@macosx-create-bundle $@
998*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL2CREATEJNILIB)"!=""
999*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
1000*b1cdbd2cSJim Jagielski.IF "$(SHL2NOCHECK)"==""
1001*b1cdbd2cSJim Jagielski	$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS2) $(SHL2TARGETN)
1002*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL2NOCHECK)"!=""
1003*b1cdbd2cSJim Jagielski.ENDIF
1004*b1cdbd2cSJim Jagielski.ELSE			# "$(OS)"=="MACOSX"
1005*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(TARGET).$(@:b)_2.cmd
1006*b1cdbd2cSJim Jagielski	@echo $(SHL2LINKER) $(SHL2LINKFLAGS) $(SHL2SONAME) $(LINKFLAGSSHL) $(SHL2VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL2OBJS:s/.obj/.o/) \
1007*b1cdbd2cSJim Jagielski	$(SHL2VERSIONOBJ) -o $@ \
1008*b1cdbd2cSJim Jagielski	`cat /dev/null $(SHL2LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
1009*b1cdbd2cSJim Jagielski	$(SHL2STDLIBS) $(SHL2ARCHIVES) $(SHL2STDSHL) $(STDSHL2) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_2.cmd
1010*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
1011*b1cdbd2cSJim Jagielski	@cat $(MISC)/$(TARGET).$(@:b)_2.cmd
1012*b1cdbd2cSJim Jagielski  .ENDIF
1013*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_2.cmd
1014*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
1015*b1cdbd2cSJim Jagielski.IF "$(SHL2NOCHECK)"==""
1016*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)-$(RM) $(SHL2TARGETN:d)check_$(SHL2TARGETN:f)
1017*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RENAME) $(SHL2TARGETN) $(SHL2TARGETN:d)check_$(SHL2TARGETN:f)
1018*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)"=="TRUE"
1019*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS2) $(SHL2TARGETN:d)check_$(SHL2TARGETN:f)
1020*b1cdbd2cSJim Jagielski.ELSE
1021*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS2) -- -s $(SHL2TARGETN:d)check_$(SHL2TARGETN:f)
1022*b1cdbd2cSJim Jagielski.ENDIF
1023*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL2NOCHECK)"!=""
1024*b1cdbd2cSJim Jagielski.ENDIF			# "$(UPDATER)"=="YES"
1025*b1cdbd2cSJim Jagielski.ENDIF			# "$(OS)"=="MACOSX"
1026*b1cdbd2cSJim Jagielski.IF "$(UNIXVERSIONNAMES)"!=""
1027*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RM) $(LB)/$(SHL2TARGETN:b)
1028*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)cd $(LB) && ln -s $(SHL2TARGETN:f) $(SHL2TARGETN:b)
1029*b1cdbd2cSJim Jagielski.ENDIF			# "$(UNIXVERSIONNAMES)"!=""
1030*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)" == "TRUE"
1031*b1cdbd2cSJim Jagielski	@ls -l $@
1032*b1cdbd2cSJim Jagielski.ENDIF
1033*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "UNX"
1034*b1cdbd2cSJim Jagielski
1035*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "OS2"
1036*b1cdbd2cSJim Jagielski
1037*b1cdbd2cSJim Jagielski.IF "$(SHL2DEFAULTRES)"!=""
1038*b1cdbd2cSJim Jagielski	@+-$(RM) $(MISC)/$(SHL2DEFAULTRES:b).rc > $(NULLDEV)
1039*b1cdbd2cSJim Jagielski.IF "$(SHL2ICON)" != ""
1040*b1cdbd2cSJim Jagielski	@-+echo 1 ICON $(SHL2ICON) >> $(MISC)/$(SHL2DEFAULTRES:b).rc
1041*b1cdbd2cSJim Jagielski.ENDIF
1042*b1cdbd2cSJim Jagielski.IF "$(use_shl_versions)" != ""
1043*b1cdbd2cSJim Jagielski.IF "$(SHL2ADD_VERINFO)"!=""
1044*b1cdbd2cSJim Jagielski	@-+echo $(EMQ)#include $(EMQ)"$(SHL2ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL2DEFAULTRES:b).rc
1045*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL2ADD_VERINFO)"!=""
1046*b1cdbd2cSJim Jagielski	@-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL2DEFAULTRES:b).rc
1047*b1cdbd2cSJim Jagielski#	@-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL2DEFAULTRES:b).rc
1048*b1cdbd2cSJim Jagielski.ENDIF			# "$(use_shl_versions)" != ""
1049*b1cdbd2cSJim Jagielski# YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR)
1050*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL2DEFAULTRES:b).rc
1051*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL2DEFAULTRES)"!=""
1052*b1cdbd2cSJim Jagielski
1053*b1cdbd2cSJim Jagielski.IF "$(SHL2ALLRES)"!=""
1054*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(TYPE) $(SHL2ALLRES) > $(SHL2LINKRES)
1055*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL2ALLRES)"!=""
1056*b1cdbd2cSJim Jagielski
1057*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
1058*b1cdbd2cSJim Jagielski
1059*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL2LINKER) $(SHL2LINKFLAGS) $(LINKFLAGSSHL) -o $@ \
1060*b1cdbd2cSJim Jagielski		$(SHL2DEF) \
1061*b1cdbd2cSJim Jagielski		$(STDOBJ) \
1062*b1cdbd2cSJim Jagielski		-L$(LB) \
1063*b1cdbd2cSJim Jagielski		-L$(SOLARVERSION)/$(INPATH)/lib \
1064*b1cdbd2cSJim Jagielski		$(SHL2OBJS) $(SHL2VERSIONOBJ) \
1065*b1cdbd2cSJim Jagielski		$(SHL2LIBS) \
1066*b1cdbd2cSJim Jagielski		$(SHL2LINKRES) \
1067*b1cdbd2cSJim Jagielski		$(SHL2STDLIBS) \
1068*b1cdbd2cSJim Jagielski		$(SHL2STDSHL) $(STDSHL2)
1069*b1cdbd2cSJim Jagielski
1070*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)"!=""
1071*b1cdbd2cSJim Jagielski
1072*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL2LINKER) $(SHL2LINKFLAGS)			\
1073*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL2BASEX)		\
1074*b1cdbd2cSJim Jagielski		$(SHL2STACK) -o $(SHL2TARGETN)	\
1075*b1cdbd2cSJim Jagielski		$(SHL2DEF) \
1076*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
1077*b1cdbd2cSJim Jagielski		-L$(LB) \
1078*b1cdbd2cSJim Jagielski		-L$(SOLARVERSION)/$(INPATH)/lib \
1079*b1cdbd2cSJim Jagielski		$(SHL2OBJS) $(SHL2VERSIONOBJ) \
1080*b1cdbd2cSJim Jagielski		$(SHL2LIBS) \
1081*b1cdbd2cSJim Jagielski		$(SHL2LINKRES) \
1082*b1cdbd2cSJim Jagielski		$(SHL2STDLIBS) \
1083*b1cdbd2cSJim Jagielski		$(SHL2STDSHL) $(STDSHL2)
1084*b1cdbd2cSJim Jagielski
1085*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"!=""
1086*b1cdbd2cSJim Jagielski
1087*b1cdbd2cSJim Jagielski.IF "$(SHL2USE_EXPORTS)"=="name"
1088*b1cdbd2cSJim Jagielski#03/11/2012  if 'name' is used, export from DLL file (only names, no ordinals)
1089*b1cdbd2cSJim Jagielski	@echo Build import library from DLL file.
1090*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(LB)/$(SHL2TARGETN:b).lib $@
1091*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL2USE_EXPORTS)"==""
1092*b1cdbd2cSJim Jagielski
1093*b1cdbd2cSJim Jagielski.IF "$(SHL2TARGET8)" != "$(SHL2TARGET)"
1094*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL2TARGET8).dll
1095*b1cdbd2cSJim Jagielski.ENDIF
1096*b1cdbd2cSJim Jagielski
1097*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "OS2"
1098*b1cdbd2cSJim Jagielski
1099*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL2TARGETN)"!=""
1100*b1cdbd2cSJim Jagielski
1101*b1cdbd2cSJim Jagielski# unroll begin
1102*b1cdbd2cSJim Jagielski
1103*b1cdbd2cSJim Jagielski.IF "$(SHL3TARGETN)"!=""
1104*b1cdbd2cSJim Jagielski
1105*b1cdbd2cSJim Jagielski.IF "$(OS)"=="AIX"
1106*b1cdbd2cSJim JagielskiSHL3STDLIBS=
1107*b1cdbd2cSJim Jagielski.ENDIF
1108*b1cdbd2cSJim Jagielski
1109*b1cdbd2cSJim Jagielski.IF "$(SHLLINKARCONLY)" != ""
1110*b1cdbd2cSJim JagielskiSHL3STDLIBS=
1111*b1cdbd2cSJim JagielskiSTDSHL=
1112*b1cdbd2cSJim Jagielski.ELSE
1113*b1cdbd2cSJim JagielskiSHL3ARCHIVES=
1114*b1cdbd2cSJim Jagielski.ENDIF
1115*b1cdbd2cSJim Jagielski
1116*b1cdbd2cSJim Jagielski# decide how to link
1117*b1cdbd2cSJim Jagielski.IF "$(SHL3CODETYPE)"=="C"
1118*b1cdbd2cSJim JagielskiSHL3LINKER=$(LINKC)
1119*b1cdbd2cSJim JagielskiSHL3STDSHL=$(subst,CPPRUNTIME, $(STDSHL))
1120*b1cdbd2cSJim JagielskiSHL3LINKFLAGS+=$(LINKCFLAGS)
1121*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL3CODETYPE)"=="C"
1122*b1cdbd2cSJim JagielskiSHL3LINKER=$(LINK)
1123*b1cdbd2cSJim JagielskiSHL3STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL))
1124*b1cdbd2cSJim JagielskiSHL3LINKFLAGS+=$(LINKFLAGS)
1125*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL3CODETYPE)"=="C"
1126*b1cdbd2cSJim Jagielski
1127*b1cdbd2cSJim JagielskiSHL3RPATH*=OOO
1128*b1cdbd2cSJim JagielskiLINKFLAGSRUNPATH_$(SHL3RPATH)*=/ERROR:/Bad_SHL3RPATH_value
1129*b1cdbd2cSJim JagielskiSHL3LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL3RPATH))
1130*b1cdbd2cSJim Jagielski
1131*b1cdbd2cSJim Jagielski.IF "$(SHL3USE_EXPORTS)"=="" || "$(GUI)"=="OS2"
1132*b1cdbd2cSJim JagielskiSHL3DEF*=$(MISC)/$(SHL3TARGET).def
1133*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL3USE_EXPORTS)"==""
1134*b1cdbd2cSJim Jagielski
1135*b1cdbd2cSJim JagielskiEXTRALIBPATHS3=$(EXTRALIBPATHS)
1136*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
1137*b1cdbd2cSJim Jagielski.IF "$(SHL3NOCHECK)"==""
1138*b1cdbd2cSJim Jagielski.IF "$(SOLAR_STLLIBPATH)"!=""
1139*b1cdbd2cSJim JagielskiEXTRALIBPATHS3+=-L$(SOLAR_STLLIBPATH)
1140*b1cdbd2cSJim Jagielski.ENDIF
1141*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL3NOCHECK)"!=""
1142*b1cdbd2cSJim Jagielski.ENDIF
1143*b1cdbd2cSJim Jagielski#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1144*b1cdbd2cSJim Jagielski#+++++++++++    version object      ++++++++++++++++++++++++++++++++++++++++
1145*b1cdbd2cSJim Jagielski#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1146*b1cdbd2cSJim Jagielski
1147*b1cdbd2cSJim Jagielski.IF "$(L10N_framework)"==""
1148*b1cdbd2cSJim Jagielski.IF "$(VERSIONOBJ)"!=""
1149*b1cdbd2cSJim JagielskiSHL3VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL3TARGET))}$(VERSIONOBJ:f)
1150*b1cdbd2cSJim JagielskiUSE_VERSIONH:=$(INCCOM)/$(SHL3VERSIONOBJ:b).h
1151*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "UNX"
1152*b1cdbd2cSJim JagielskiSHL3VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL3TARGET))}$(VERSIONOBJ:f:s/.o/.obj/)
1153*b1cdbd2cSJim Jagielski.ELSE           # "$(GUI)" == "UNX"
1154*b1cdbd2cSJim JagielskiSHL3VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL3TARGET))}$(VERSIONOBJ:f)
1155*b1cdbd2cSJim Jagielski.ENDIF          # "$(GUI)" == "UNX"
1156*b1cdbd2cSJim Jagielski$(MISC)/$(SHL3VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL3VERSIONOBJ:b).h
1157*b1cdbd2cSJim Jagielski#    $(COPY) $(SOLARENV)/src/version.c $@
1158*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL3VERSIONOBJ:b).h/ > $@
1159*b1cdbd2cSJim Jagielski
1160*b1cdbd2cSJim Jagielski.INIT : $(SHL3VERSIONOBJDEP)
1161*b1cdbd2cSJim Jagielski.ENDIF			# "$(VERSIONOBJ)"!=""
1162*b1cdbd2cSJim Jagielski.ENDIF
1163*b1cdbd2cSJim Jagielski
1164*b1cdbd2cSJim Jagielski.IF "$(GUI)" != "UNX"
1165*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
1166*b1cdbd2cSJim Jagielski.IF "$(SHL3IMPLIB)" == ""
1167*b1cdbd2cSJim JagielskiSHL3IMPLIB=i$(TARGET)_t3
1168*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL3IMPLIB)" == ""
1169*b1cdbd2cSJim Jagielski.IF "$(COM)" != "GCC"
1170*b1cdbd2cSJim JagielskiUSE_3IMPLIB=-implib:$(LB)/$(SHL3IMPLIB).lib
1171*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)" != "GCC"
1172*b1cdbd2cSJim JagielskiSHL3IMPLIBN=$(LB)/$(SHL3IMPLIB).lib
1173*b1cdbd2cSJim JagielskiALLTAR : $(SHL3IMPLIBN)
1174*b1cdbd2cSJim Jagielski
1175*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"==""
1176*b1cdbd2cSJim JagielskiUSE_3IMPLIB_DEPS=$(LB)/$(SHL3IMPLIB).lib
1177*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"==""
1178*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
1179*b1cdbd2cSJim JagielskiUSE_SHL3DEF=$(SHL3DEF)
1180*b1cdbd2cSJim Jagielski.ELSE			# "$(GUI)" != "UNX"
1181*b1cdbd2cSJim JagielskiUSE_SHL3DEF=
1182*b1cdbd2cSJim JagielskiSHL3DEPN+:=$(SHL3DEPNU)
1183*b1cdbd2cSJim Jagielski
1184*b1cdbd2cSJim Jagielski.IF "$(SHL3VERSIONMAP)"==""
1185*b1cdbd2cSJim Jagielski# to activate vmaps remove "#"
1186*b1cdbd2cSJim JagielskiUSE_SHL3VERSIONMAP=$(MISC)/$(SHL3TARGET).vmap
1187*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL3VERSIONMAP)"==""
1188*b1cdbd2cSJim Jagielski
1189*b1cdbd2cSJim Jagielski.IF "$(USE_SHL3VERSIONMAP)"!=""
1190*b1cdbd2cSJim Jagielski
1191*b1cdbd2cSJim Jagielski.IF "$(SHL3FILTERFILE)"!=""
1192*b1cdbd2cSJim Jagielski.IF "$(SHL3VERSIONMAP)"!=""
1193*b1cdbd2cSJim Jagielski#eine von beiden ist zuviel
1194*b1cdbd2cSJim JagielskiUSE_SHL3VERSIONMAP=$(MISC)/$(SHL3TARGET).vmap
1195*b1cdbd2cSJim Jagielski$(USE_SHL3VERSIONMAP) .PHONY:
1196*b1cdbd2cSJim Jagielski	@echo -----------------------------
1197*b1cdbd2cSJim Jagielski	@echo you should only use versionmap OR exportfile
1198*b1cdbd2cSJim Jagielski	@echo -----------------------------
1199*b1cdbd2cSJim Jagielski#	force_dmake_to_error
1200*b1cdbd2cSJim Jagielski
1201*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL3VERSIONMAP)"!=""
1202*b1cdbd2cSJim Jagielski
1203*b1cdbd2cSJim JagielskiSHL3VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL3VERSIONMAP)
1204*b1cdbd2cSJim Jagielski
1205*b1cdbd2cSJim Jagielski$(USE_SHL3VERSIONMAP): \
1206*b1cdbd2cSJim Jagielski					$(SHL3OBJS)\
1207*b1cdbd2cSJim Jagielski					$(SHL3LIBS)\
1208*b1cdbd2cSJim Jagielski					$(SHL3FILTERFILE)
1209*b1cdbd2cSJim Jagielski	@$(RM) $@.dump
1210*b1cdbd2cSJim Jagielski.IF "$(SHL3OBJS)"!=""
1211*b1cdbd2cSJim Jagielski# dump remaining objects on the fly
1212*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
1213*b1cdbd2cSJim Jagielski	@-nm $(SHL3OBJS:s/.obj/.o/) > $@.dump
1214*b1cdbd2cSJim Jagielski.ELSE
1215*b1cdbd2cSJim Jagielski	@nm $(SHL3OBJS:s/.obj/.o/) > $@.dump
1216*b1cdbd2cSJim Jagielski.ENDIF
1217*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL3OBJS)!"=""
1218*b1cdbd2cSJim Jagielski	@$(TYPE) /dev/null $(SHL3LIBS:s/.lib/.dump/) >> $@.dump
1219*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL3INTERFACE) -f $(SHL3FILTERFILE) -m $@
1220*b1cdbd2cSJim Jagielski
1221*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL3FILTERFILE)"!=""
1222*b1cdbd2cSJim JagielskiUSE_SHL3VERSIONMAP=$(MISC)/$(SHL3TARGET).vmap
1223*b1cdbd2cSJim Jagielski$(USE_SHL3VERSIONMAP) :
1224*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)" == "TRUE"
1225*b1cdbd2cSJim Jagielski	@echo -----------------------------
1226*b1cdbd2cSJim Jagielski	@echo SHL3FILTERFILE not set!
1227*b1cdbd2cSJim Jagielski	@echo -----------------------------
1228*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
1229*b1cdbd2cSJim Jagielski	@echo dummy file to keep the dependencies for later use.
1230*b1cdbd2cSJim Jagielski.ELSE
1231*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
1232*b1cdbd2cSJim Jagielski.ENDIF
1233*b1cdbd2cSJim Jagielski#	force_dmake_to_error
1234*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL3FILTERFILE)"!=""
1235*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_SHL3VERSIONMAP)"!=""
1236*b1cdbd2cSJim Jagielski
1237*b1cdbd2cSJim Jagielski#and now for the plain non-generic way...
1238*b1cdbd2cSJim Jagielski.IF "$(SHL3VERSIONMAP)"!=""
1239*b1cdbd2cSJim JagielskiUSE_SHL3VERSIONMAP=$(MISC)/$(SHL3VERSIONMAP:b)_$(SHL3TARGET)$(SHL3VERSIONMAP:e)
1240*b1cdbd2cSJim JagielskiSHL3VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL3VERSIONMAP)
1241*b1cdbd2cSJim Jagielski
1242*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
1243*b1cdbd2cSJim Jagielski$(USE_SHL3VERSIONMAP): $(SHL3OBJS) $(SHL3LIBS)
1244*b1cdbd2cSJim Jagielski.ENDIF
1245*b1cdbd2cSJim Jagielski
1246*b1cdbd2cSJim Jagielski# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@
1247*b1cdbd2cSJim Jagielski# even if the $(AWK) part fails:
1248*b1cdbd2cSJim Jagielski$(USE_SHL3VERSIONMAP) .ERRREMOVE: $(SHL3VERSIONMAP)
1249*b1cdbd2cSJim Jagielski	@@-$(RM) -f $@
1250*b1cdbd2cSJim Jagielski# The following files will only be generated and needed on Mac OS X as temporary files
1251*b1cdbd2cSJim Jagielski# in order to generate exported symbols list out of Linux/Solaris map files
1252*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
1253*b1cdbd2cSJim Jagielski	@-$(RM) -f $@.symregexp >& $(NULLDEV)
1254*b1cdbd2cSJim Jagielski	@-$(RM) -f $@.expsymlist >& $(NULLDEV)
1255*b1cdbd2cSJim Jagielski.ENDIF
1256*b1cdbd2cSJim Jagielski# Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what
1257*b1cdbd2cSJim Jagielski# happens if somebody will change it in the future
1258*b1cdbd2cSJim Jagielski.IF "$(COMID)"=="gcc3"
1259*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL3VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@
1260*b1cdbd2cSJim Jagielski.ELIF "$(COMNAME)"=="sunpro5"
1261*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL3VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@
1262*b1cdbd2cSJim Jagielski.ELSE           # "$(COMID)"=="gcc3"
1263*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL3VERSIONMAP) > $@
1264*b1cdbd2cSJim Jagielski.ENDIF          # "$(COMID)"=="gcc3"
1265*b1cdbd2cSJim Jagielski	@chmod a+w $@
1266*b1cdbd2cSJim Jagielski# Mac OS X post-processing generate an exported symbols list from the generated map file
1267*b1cdbd2cSJim Jagielski# for details on exported symbols list see man ld on Mac OS X
1268*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
1269*b1cdbd2cSJim Jagielski	@-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols
1270*b1cdbd2cSJim Jagielski	@-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp
1271*b1cdbd2cSJim Jagielski# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
1272*b1cdbd2cSJim Jagielski# Extract RTTI symbols from all the objects that will be used to build a shared library
1273*b1cdbd2cSJim Jagielski.IF "$(SHL3OBJS)"!=""
1274*b1cdbd2cSJim Jagielski	-echo $(foreach,i,$(SHL3OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
1275*b1cdbd2cSJim Jagielski.ENDIF
1276*b1cdbd2cSJim Jagielski.IF "$(SHL3LIBS)"!=""
1277*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL3LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
1278*b1cdbd2cSJim Jagielski.ENDIF
1279*b1cdbd2cSJim Jagielski# overwrite the map file generate into the local output tree with the generated
1280*b1cdbd2cSJim Jagielski# exported symbols list
1281*b1cdbd2cSJim Jagielski	cp $@.exported-symbols $@
1282*b1cdbd2cSJim Jagielski.ENDIF # .IF "$(OS)"=="MACOSX"
1283*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL3VERSIONMAP)"!=""
1284*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_SHL3VERSIONMAP)"!=""
1285*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" != "UNX"
1286*b1cdbd2cSJim Jagielski
1287*b1cdbd2cSJim Jagielski.IF "$(UNIXVERSIONNAMES)"!=""
1288*b1cdbd2cSJim Jagielski.IF "$(OS)"!="MACOSX"
1289*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="UNX"
1290*b1cdbd2cSJim JagielskiSHL3SONAME=\"$(SONAME_SWITCH)$(SHL3TARGETN:f)\"
1291*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)"!="UNX"
1292*b1cdbd2cSJim Jagielski.ENDIF			# "$(OS)"!="MACOSX"
1293*b1cdbd2cSJim Jagielski.ENDIF			# "$(UNIXVERSIONNAMES)"!=""
1294*b1cdbd2cSJim Jagielski
1295*b1cdbd2cSJim Jagielski.IF "$(SHL3RES)"!=""
1296*b1cdbd2cSJim JagielskiSHL3ALLRES+=$(SHL3RES)
1297*b1cdbd2cSJim JagielskiSHL3LINKRES*=$(MISC)/$(SHL3TARGET).res
1298*b1cdbd2cSJim JagielskiSHL3LINKRESO*=$(MISC)/$(SHL3TARGET)_res.o
1299*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL3RES)"!=""
1300*b1cdbd2cSJim Jagielski
1301*b1cdbd2cSJim Jagielski.IF "$(SHL3DEFAULTRES)$(use_shl_versions)"!=""
1302*b1cdbd2cSJim JagielskiSHL3DEFAULTRES*=$(MISC)/$(SHL3TARGET)_def.res
1303*b1cdbd2cSJim JagielskiSHL3ALLRES+=$(SHL3DEFAULTRES)
1304*b1cdbd2cSJim JagielskiSHL3LINKRES*=$(MISC)/$(SHL3TARGET).res
1305*b1cdbd2cSJim JagielskiSHL3LINKRESO*=$(MISC)/$(SHL3TARGET)_res.o
1306*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL3DEFAULTRES)$(use_shl_versions)"!=""
1307*b1cdbd2cSJim Jagielski
1308*b1cdbd2cSJim Jagielski#.IF "$(SHL3TARGETN)"!=""
1309*b1cdbd2cSJim Jagielski
1310*b1cdbd2cSJim Jagielski.IF "$(linkinc)"!=""
1311*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
1312*b1cdbd2cSJim Jagielski.IF "$(SHL3LIBS)"!=""
1313*b1cdbd2cSJim Jagielski$(MISC)/$(SHL3TARGET)_linkinc.ls .PHONY:
1314*b1cdbd2cSJim Jagielski	@@-$(RM) $@
1315*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL3LIBS) $(i:s/.lib/.lin/)) >> $@
1316*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL3LIBS)"!=""
1317*b1cdbd2cSJim Jagielski.ENDIF
1318*b1cdbd2cSJim Jagielski
1319*b1cdbd2cSJim JagielskiLINKINCTARGETS+=$(MISC)/$(SHL3TARGETN:b)_linkinc.ls
1320*b1cdbd2cSJim Jagielski$(SHL3TARGETN) : $(LINKINCTARGETS)
1321*b1cdbd2cSJim Jagielski
1322*b1cdbd2cSJim Jagielski.ELSE
1323*b1cdbd2cSJim Jagielski.IF "$(SHL3USE_EXPORTS)"=="name"
1324*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
1325*b1cdbd2cSJim Jagielski.IF "$(COM)"!="GCC"
1326*b1cdbd2cSJim Jagielski.IF "$(SHL3LIBS)"!=""
1327*b1cdbd2cSJim JagielskiSHL3LINKLIST=$(MISC)/$(SHL3TARGET)_link.lst
1328*b1cdbd2cSJim JagielskiSHL3LINKLISTPARAM=@$(SHL3LINKLIST)
1329*b1cdbd2cSJim Jagielski$(SHL3LINKLIST) : $(SHL3LIBS)
1330*b1cdbd2cSJim Jagielski    @@-$(RM) $@
1331*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL3LIBS) $(i:s/.lib/.lin/)) >> $@
1332*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL3LIBS)"!=""
1333*b1cdbd2cSJim Jagielski.ENDIF          # "$(COM)"!="GCC"
1334*b1cdbd2cSJim Jagielski.ENDIF
1335*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL3USE_EXPORTS)"=="name"
1336*b1cdbd2cSJim Jagielski
1337*b1cdbd2cSJim Jagielski$(MISC)/%linkinc.ls:
1338*b1cdbd2cSJim Jagielski	@echo . > $@
1339*b1cdbd2cSJim Jagielski.ENDIF          # "$(linkinc)"!=""
1340*b1cdbd2cSJim Jagielski
1341*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "OS2"
1342*b1cdbd2cSJim Jagielski#21/02/2006 YD dll names must be 8.3, invoke fix script
1343*b1cdbd2cSJim Jagielski#check osl/os2/module.c/osl_loadModule()
1344*b1cdbd2cSJim JagielskiSHL3TARGET8=$(shell @fix_shl.cmd $(SHL3TARGET))
1345*b1cdbd2cSJim Jagielski.ENDIF
1346*b1cdbd2cSJim Jagielski
1347*b1cdbd2cSJim Jagielski
1348*b1cdbd2cSJim Jagielski$(SHL3TARGETN) : \
1349*b1cdbd2cSJim Jagielski					$(SHL3OBJS)\
1350*b1cdbd2cSJim Jagielski					$(SHL3LIBS)\
1351*b1cdbd2cSJim Jagielski					$(USE_3IMPLIB_DEPS)\
1352*b1cdbd2cSJim Jagielski					$(USE_SHL3DEF)\
1353*b1cdbd2cSJim Jagielski					$(USE_SHL3VERSIONMAP)\
1354*b1cdbd2cSJim Jagielski					$(SHL3RES)\
1355*b1cdbd2cSJim Jagielski					$(SHL3DEPN) \
1356*b1cdbd2cSJim Jagielski					$(SHL3LINKLIST)
1357*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f)
1358*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT"
1359*b1cdbd2cSJim Jagielski.IF "$(SHL3DEFAULTRES)"!=""
1360*b1cdbd2cSJim Jagielski	@@-$(RM) $(MISC)/$(SHL3DEFAULTRES:b).rc
1361*b1cdbd2cSJim Jagielski.IF "$(SHL3ICON)" != ""
1362*b1cdbd2cSJim Jagielski	@echo 1 ICON $(SHL3ICON) >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1363*b1cdbd2cSJim Jagielski.ENDIF
1364*b1cdbd2cSJim Jagielski.IF "$(use_shl_versions)" != ""
1365*b1cdbd2cSJim Jagielski.IF "$(SHL3ADD_VERINFO)"!=""
1366*b1cdbd2cSJim Jagielski	@echo $(EMQ)#include $(EMQ)"$(SHL3ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1367*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL3ADD_VERINFO)"!=""
1368*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1369*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1370*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1371*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL3ADD_VERINFO)"!=""
1372*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1373*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ORG_NAME	$(SHL3TARGET)$(DLLPOST) >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1374*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define INTERNAL_NAME $(SHL3TARGET:b) >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1375*b1cdbd2cSJim Jagielski	@echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1376*b1cdbd2cSJim Jagielski.ENDIF			# "$(use_shl_versions)" != ""
1377*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL3DEFAULTRES:b).rc
1378*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL3DEFAULTRES)"!=""
1379*b1cdbd2cSJim Jagielski.IF "$(SHL3ALLRES)"!=""
1380*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(TYPE) $(SHL3ALLRES) > $(SHL3LINKRES)
1381*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"
1382*b1cdbd2cSJim Jagielski	windres $(SHL3LINKRES) $(SHL3LINKRESO)
1383*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
1384*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL3ALLRES)"!=""
1385*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"	# always have to call dlltool explicitly as ld cannot handle # comment in .def
1386*b1cdbd2cSJim Jagielski	@echo dlltool --dllname $(SHL3TARGET)$(DLLPOST) \
1387*b1cdbd2cSJim Jagielski		--kill-at \\ > $(MISC)/$(TARGET).$(@:b)_3.cmd
1388*b1cdbd2cSJim Jagielski	@noop $(assign ALL3OBJLIST:=$(STDOBJ) $(SHL3OBJS) $(SHL3LINKRESO) $(shell $(TYPE) /dev/null $(SHL3LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g))
1389*b1cdbd2cSJim Jagielski.IF "$(DEFLIB3NAME)"!=""	# do not have to include objs
1390*b1cdbd2cSJim Jagielski	@noop $(assign DEF3OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB3NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g))
1391*b1cdbd2cSJim Jagielski	@noop $(foreach,i,$(DEF3OBJLIST) $(assign ALL3OBJLIST:=$(ALL3OBJLIST:s?$i??)))
1392*b1cdbd2cSJim Jagielski.ENDIF			# "$(DEFLIB3NAME)"!=""
1393*b1cdbd2cSJim Jagielski	@echo	--output-exp $(MISC)/$(@:b)_exp.o \\ >> $(MISC)/$(TARGET).$(@:b)_3.cmd
1394*b1cdbd2cSJim Jagielski.IF "$(SHL3DEF)"!=""
1395*b1cdbd2cSJim Jagielski	@echo	--input-def $(SHL3DEF) \\ >> $(MISC)/$(TARGET).$(@:b)_3.cmd
1396*b1cdbd2cSJim Jagielski.ELSE
1397*b1cdbd2cSJim Jagielski	@echo	$(SHL3VERSIONOBJ) $(SHL3DESCRIPTIONOBJ) \\ >> $(MISC)/$(TARGET).$(@:b)_3.cmd
1398*b1cdbd2cSJim Jagielski.ENDIF
1399*b1cdbd2cSJim Jagielski	@echo	$(ALL3OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_3.cmd
1400*b1cdbd2cSJim Jagielski	@echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \
1401*b1cdbd2cSJim Jagielski		$(STDOBJ) $(SHL3VERSIONOBJ) $(SHL3DESCRIPTIONOBJ) $(SHL3OBJS) $(SHL3LINKRESO) \
1402*b1cdbd2cSJim Jagielski		`$(TYPE) /dev/null $(SHL3LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
1403*b1cdbd2cSJim Jagielski		-Wl,--exclude-libs,ALL,--start-group $(SHL3STDLIBS) -Wl,--end-group \
1404*b1cdbd2cSJim Jagielski		$(SHL3STDSHL) $(STDSHL3) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \
1405*b1cdbd2cSJim Jagielski		-Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_3.cmd
1406*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
1407*b1cdbd2cSJim Jagielski	@$(TYPE)  $(MISC)/$(TARGET).$(@:b)_3.cmd
1408*b1cdbd2cSJim Jagielski  .ENDIF
1409*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_3.cmd
1410*b1cdbd2cSJim Jagielski.ELSE
1411*b1cdbd2cSJim Jagielski.IF "$(linkinc)"==""
1412*b1cdbd2cSJim Jagielski.IF "$(SHL3USE_EXPORTS)"!="name"
1413*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
1414*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL3LINKER) @$(mktmp \
1415*b1cdbd2cSJim Jagielski		$(SHL3LINKFLAGS) \
1416*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) \
1417*b1cdbd2cSJim Jagielski		$(SHL3STACK) $(SHL3BASEX)	\
1418*b1cdbd2cSJim Jagielski		-out:$@ \
1419*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:b).map \
1420*b1cdbd2cSJim Jagielski		-def:$(SHL3DEF) \
1421*b1cdbd2cSJim Jagielski		$(USE_3IMPLIB) \
1422*b1cdbd2cSJim Jagielski		$(STDOBJ) \
1423*b1cdbd2cSJim Jagielski		$(SHL3VERSIONOBJ) $(SHL3OBJS) \
1424*b1cdbd2cSJim Jagielski		$(SHL3LIBS) \
1425*b1cdbd2cSJim Jagielski		$(SHL3STDLIBS) \
1426*b1cdbd2cSJim Jagielski		$(SHL3STDSHL) $(STDSHL3) \
1427*b1cdbd2cSJim Jagielski		$(SHL3LINKRES) \
1428*b1cdbd2cSJim Jagielski	)
1429*b1cdbd2cSJim Jagielski# double check if target was really written... still making sense?
1430*b1cdbd2cSJim Jagielski    @@$(LS) $@
1431*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
1432*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
1433*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
1434*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
1435*b1cdbd2cSJim Jagielski.ELSE
1436*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
1437*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
1438*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
1439*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
1440*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)"!=""
1441*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL3LINKER) @$(mktmp	$(SHL3LINKFLAGS)			\
1442*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL3BASEX)		\
1443*b1cdbd2cSJim Jagielski		$(SHL3STACK) -out:$(SHL3TARGETN)	\
1444*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:B).map				\
1445*b1cdbd2cSJim Jagielski		$(LB)/$(SHL3IMPLIB).exp				\
1446*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
1447*b1cdbd2cSJim Jagielski		$(SHL3OBJS) $(SHL3VERSIONOBJ) \
1448*b1cdbd2cSJim Jagielski		$(SHL3LIBS)                         \
1449*b1cdbd2cSJim Jagielski		$(SHL3STDLIBS)                      \
1450*b1cdbd2cSJim Jagielski		$(SHL3STDSHL) $(STDSHL3)                           \
1451*b1cdbd2cSJim Jagielski		$(SHL3LINKRES) \
1452*b1cdbd2cSJim Jagielski	)
1453*b1cdbd2cSJim Jagielski# double check if target was really written... still making sense?
1454*b1cdbd2cSJim Jagielski    @@$(LS) $@
1455*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
1456*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
1457*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
1458*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
1459*b1cdbd2cSJim Jagielski.ELSE
1460*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
1461*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
1462*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
1463*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
1464*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"!=""
1465*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL3USE_EXPORTS)"!="name"
1466*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL3LINKER) @$(mktmp	$(SHL3LINKFLAGS)			\
1467*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL3BASEX)		\
1468*b1cdbd2cSJim Jagielski		$(SHL3STACK) -out:$(SHL3TARGETN)	\
1469*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:B).map				\
1470*b1cdbd2cSJim Jagielski		$(USE_3IMPLIB) \
1471*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
1472*b1cdbd2cSJim Jagielski		$(SHL3OBJS) $(SHL3VERSIONOBJ))   \
1473*b1cdbd2cSJim Jagielski		$(SHL3LINKLISTPARAM) \
1474*b1cdbd2cSJim Jagielski		@$(mktmp $(SHL3STDLIBS)                      \
1475*b1cdbd2cSJim Jagielski		$(SHL3STDSHL) $(STDSHL3)                           \
1476*b1cdbd2cSJim Jagielski		$(SHL3LINKRES) \
1477*b1cdbd2cSJim Jagielski	)
1478*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
1479*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
1480*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
1481*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
1482*b1cdbd2cSJim Jagielski.ELSE
1483*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
1484*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
1485*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
1486*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
1487*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL3USE_EXPORTS)"!="name"
1488*b1cdbd2cSJim Jagielski.ELSE			# "$(linkinc)"==""
1489*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL3TARGET).lnk
1490*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL3TARGET).lst
1491*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(TYPE) $(mktmp \
1492*b1cdbd2cSJim Jagielski		$(SHL3LINKFLAGS) \
1493*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL3BASEX) \
1494*b1cdbd2cSJim Jagielski		$(SHL3STACK) $(MAPFILE) \
1495*b1cdbd2cSJim Jagielski		-out:$@ \
1496*b1cdbd2cSJim Jagielski		$(LB)/$(SHL3IMPLIB).exp \
1497*b1cdbd2cSJim Jagielski		$(STDOBJ) \
1498*b1cdbd2cSJim Jagielski		$(SHL3OBJS) \
1499*b1cdbd2cSJim Jagielski		$(SHL3STDLIBS) \
1500*b1cdbd2cSJim Jagielski		$(SHL3STDSHL) $(STDSHL3) \
1501*b1cdbd2cSJim Jagielski		$(SHL3LINKRES) \
1502*b1cdbd2cSJim Jagielski		) >> $(MISC)/$(SHL3TARGET).lnk
1503*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL3TARGETN:b)_linkinc.ls  >> $(MISC)/$(SHL3TARGET).lnk
1504*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(SHL3LINKER) @$(MISC)/$(SHL3TARGET).lnk
1505*b1cdbd2cSJim Jagielski		@echo linking $@.manifest ...
1506*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
1507*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
1508*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
1509*b1cdbd2cSJim Jagielski.ELSE
1510*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
1511*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
1512*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
1513*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
1514*b1cdbd2cSJim Jagielski.ENDIF			# "$(linkinc)"==""
1515*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
1516*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "WNT"
1517*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="UNX"
1518*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
1519*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(@:b).list
1520*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(TARGET).$(@:b)_3.cmd
1521*b1cdbd2cSJim Jagielski	@echo $(STDSLO) $(SHL3OBJS:s/.obj/.o/) \
1522*b1cdbd2cSJim Jagielski	$(SHL3VERSIONOBJ) \
1523*b1cdbd2cSJim Jagielski	`cat /dev/null $(SHL3LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list
1524*b1cdbd2cSJim Jagielski	@echo -n $(SHL3LINKER) $(SHL3LINKFLAGS) $(SHL3VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \
1525*b1cdbd2cSJim Jagielski	$(SHL3STDLIBS) $(SHL3ARCHIVES) $(SHL3STDSHL) $(STDSHL3) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_3.cmd
1526*b1cdbd2cSJim Jagielski    @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \
1527*b1cdbd2cSJim Jagielski        `cat $(MISC)/$(TARGET).$(@:b)_3.cmd` \
1528*b1cdbd2cSJim Jagielski        >> $(MISC)/$(TARGET).$(@:b)_3.cmd
1529*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
1530*b1cdbd2cSJim Jagielski	@cat $(MISC)/$(TARGET).$(@:b)_3.cmd
1531*b1cdbd2cSJim Jagielski  .ENDIF
1532*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_3.cmd
1533*b1cdbd2cSJim Jagielski    @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \
1534*b1cdbd2cSJim Jagielski        shl $(SHL3RPATH) $@
1535*b1cdbd2cSJim Jagielski.IF "$(SHL3CREATEJNILIB)"!=""
1536*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f).jnilib
1537*b1cdbd2cSJim Jagielski	@macosx-create-bundle $@
1538*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL3CREATEJNILIB)"!=""
1539*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
1540*b1cdbd2cSJim Jagielski.IF "$(SHL3NOCHECK)"==""
1541*b1cdbd2cSJim Jagielski	$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS3) $(SHL3TARGETN)
1542*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL3NOCHECK)"!=""
1543*b1cdbd2cSJim Jagielski.ENDIF
1544*b1cdbd2cSJim Jagielski.ELSE			# "$(OS)"=="MACOSX"
1545*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(TARGET).$(@:b)_3.cmd
1546*b1cdbd2cSJim Jagielski	@echo $(SHL3LINKER) $(SHL3LINKFLAGS) $(SHL3SONAME) $(LINKFLAGSSHL) $(SHL3VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL3OBJS:s/.obj/.o/) \
1547*b1cdbd2cSJim Jagielski	$(SHL3VERSIONOBJ) -o $@ \
1548*b1cdbd2cSJim Jagielski	`cat /dev/null $(SHL3LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
1549*b1cdbd2cSJim Jagielski	$(SHL3STDLIBS) $(SHL3ARCHIVES) $(SHL3STDSHL) $(STDSHL3) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_3.cmd
1550*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
1551*b1cdbd2cSJim Jagielski	@cat $(MISC)/$(TARGET).$(@:b)_3.cmd
1552*b1cdbd2cSJim Jagielski  .ENDIF
1553*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_3.cmd
1554*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
1555*b1cdbd2cSJim Jagielski.IF "$(SHL3NOCHECK)"==""
1556*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)-$(RM) $(SHL3TARGETN:d)check_$(SHL3TARGETN:f)
1557*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RENAME) $(SHL3TARGETN) $(SHL3TARGETN:d)check_$(SHL3TARGETN:f)
1558*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)"=="TRUE"
1559*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS3) $(SHL3TARGETN:d)check_$(SHL3TARGETN:f)
1560*b1cdbd2cSJim Jagielski.ELSE
1561*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS3) -- -s $(SHL3TARGETN:d)check_$(SHL3TARGETN:f)
1562*b1cdbd2cSJim Jagielski.ENDIF
1563*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL3NOCHECK)"!=""
1564*b1cdbd2cSJim Jagielski.ENDIF			# "$(UPDATER)"=="YES"
1565*b1cdbd2cSJim Jagielski.ENDIF			# "$(OS)"=="MACOSX"
1566*b1cdbd2cSJim Jagielski.IF "$(UNIXVERSIONNAMES)"!=""
1567*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RM) $(LB)/$(SHL3TARGETN:b)
1568*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)cd $(LB) && ln -s $(SHL3TARGETN:f) $(SHL3TARGETN:b)
1569*b1cdbd2cSJim Jagielski.ENDIF			# "$(UNIXVERSIONNAMES)"!=""
1570*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)" == "TRUE"
1571*b1cdbd2cSJim Jagielski	@ls -l $@
1572*b1cdbd2cSJim Jagielski.ENDIF
1573*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "UNX"
1574*b1cdbd2cSJim Jagielski
1575*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "OS2"
1576*b1cdbd2cSJim Jagielski
1577*b1cdbd2cSJim Jagielski.IF "$(SHL3DEFAULTRES)"!=""
1578*b1cdbd2cSJim Jagielski	@+-$(RM) $(MISC)/$(SHL3DEFAULTRES:b).rc > $(NULLDEV)
1579*b1cdbd2cSJim Jagielski.IF "$(SHL3ICON)" != ""
1580*b1cdbd2cSJim Jagielski	@-+echo 1 ICON $(SHL3ICON) >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1581*b1cdbd2cSJim Jagielski.ENDIF
1582*b1cdbd2cSJim Jagielski.IF "$(use_shl_versions)" != ""
1583*b1cdbd2cSJim Jagielski.IF "$(SHL3ADD_VERINFO)"!=""
1584*b1cdbd2cSJim Jagielski	@-+echo $(EMQ)#include $(EMQ)"$(SHL3ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1585*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL3ADD_VERINFO)"!=""
1586*b1cdbd2cSJim Jagielski	@-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1587*b1cdbd2cSJim Jagielski#	@-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL3DEFAULTRES:b).rc
1588*b1cdbd2cSJim Jagielski.ENDIF			# "$(use_shl_versions)" != ""
1589*b1cdbd2cSJim Jagielski# YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR)
1590*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL3DEFAULTRES:b).rc
1591*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL3DEFAULTRES)"!=""
1592*b1cdbd2cSJim Jagielski
1593*b1cdbd2cSJim Jagielski.IF "$(SHL3ALLRES)"!=""
1594*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(TYPE) $(SHL3ALLRES) > $(SHL3LINKRES)
1595*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL3ALLRES)"!=""
1596*b1cdbd2cSJim Jagielski
1597*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
1598*b1cdbd2cSJim Jagielski
1599*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL3LINKER) $(SHL3LINKFLAGS) $(LINKFLAGSSHL) -o $@ \
1600*b1cdbd2cSJim Jagielski		$(SHL3DEF) \
1601*b1cdbd2cSJim Jagielski		$(STDOBJ) \
1602*b1cdbd2cSJim Jagielski		-L$(LB) \
1603*b1cdbd2cSJim Jagielski		-L$(SOLARVERSION)/$(INPATH)/lib \
1604*b1cdbd2cSJim Jagielski		$(SHL3OBJS) $(SHL3VERSIONOBJ) \
1605*b1cdbd2cSJim Jagielski		$(SHL3LIBS) \
1606*b1cdbd2cSJim Jagielski		$(SHL3LINKRES) \
1607*b1cdbd2cSJim Jagielski		$(SHL3STDLIBS) \
1608*b1cdbd2cSJim Jagielski		$(SHL3STDSHL) $(STDSHL3)
1609*b1cdbd2cSJim Jagielski
1610*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)"!=""
1611*b1cdbd2cSJim Jagielski
1612*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL3LINKER) $(SHL3LINKFLAGS)			\
1613*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL3BASEX)		\
1614*b1cdbd2cSJim Jagielski		$(SHL3STACK) -o $(SHL3TARGETN)	\
1615*b1cdbd2cSJim Jagielski		$(SHL3DEF) \
1616*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
1617*b1cdbd2cSJim Jagielski		-L$(LB) \
1618*b1cdbd2cSJim Jagielski		-L$(SOLARVERSION)/$(INPATH)/lib \
1619*b1cdbd2cSJim Jagielski		$(SHL3OBJS) $(SHL3VERSIONOBJ) \
1620*b1cdbd2cSJim Jagielski		$(SHL3LIBS) \
1621*b1cdbd2cSJim Jagielski		$(SHL3LINKRES) \
1622*b1cdbd2cSJim Jagielski		$(SHL3STDLIBS) \
1623*b1cdbd2cSJim Jagielski		$(SHL3STDSHL) $(STDSHL3)
1624*b1cdbd2cSJim Jagielski
1625*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"!=""
1626*b1cdbd2cSJim Jagielski
1627*b1cdbd2cSJim Jagielski.IF "$(SHL3USE_EXPORTS)"=="name"
1628*b1cdbd2cSJim Jagielski#03/11/2012  if 'name' is used, export from DLL file (only names, no ordinals)
1629*b1cdbd2cSJim Jagielski	@echo Build import library from DLL file.
1630*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(LB)/$(SHL3TARGETN:b).lib $@
1631*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL3USE_EXPORTS)"==""
1632*b1cdbd2cSJim Jagielski
1633*b1cdbd2cSJim Jagielski.IF "$(SHL3TARGET8)" != "$(SHL3TARGET)"
1634*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL3TARGET8).dll
1635*b1cdbd2cSJim Jagielski.ENDIF
1636*b1cdbd2cSJim Jagielski
1637*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "OS2"
1638*b1cdbd2cSJim Jagielski
1639*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL3TARGETN)"!=""
1640*b1cdbd2cSJim Jagielski
1641*b1cdbd2cSJim Jagielski# unroll begin
1642*b1cdbd2cSJim Jagielski
1643*b1cdbd2cSJim Jagielski.IF "$(SHL4TARGETN)"!=""
1644*b1cdbd2cSJim Jagielski
1645*b1cdbd2cSJim Jagielski.IF "$(OS)"=="AIX"
1646*b1cdbd2cSJim JagielskiSHL4STDLIBS=
1647*b1cdbd2cSJim Jagielski.ENDIF
1648*b1cdbd2cSJim Jagielski
1649*b1cdbd2cSJim Jagielski.IF "$(SHLLINKARCONLY)" != ""
1650*b1cdbd2cSJim JagielskiSHL4STDLIBS=
1651*b1cdbd2cSJim JagielskiSTDSHL=
1652*b1cdbd2cSJim Jagielski.ELSE
1653*b1cdbd2cSJim JagielskiSHL4ARCHIVES=
1654*b1cdbd2cSJim Jagielski.ENDIF
1655*b1cdbd2cSJim Jagielski
1656*b1cdbd2cSJim Jagielski# decide how to link
1657*b1cdbd2cSJim Jagielski.IF "$(SHL4CODETYPE)"=="C"
1658*b1cdbd2cSJim JagielskiSHL4LINKER=$(LINKC)
1659*b1cdbd2cSJim JagielskiSHL4STDSHL=$(subst,CPPRUNTIME, $(STDSHL))
1660*b1cdbd2cSJim JagielskiSHL4LINKFLAGS+=$(LINKCFLAGS)
1661*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL4CODETYPE)"=="C"
1662*b1cdbd2cSJim JagielskiSHL4LINKER=$(LINK)
1663*b1cdbd2cSJim JagielskiSHL4STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL))
1664*b1cdbd2cSJim JagielskiSHL4LINKFLAGS+=$(LINKFLAGS)
1665*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL4CODETYPE)"=="C"
1666*b1cdbd2cSJim Jagielski
1667*b1cdbd2cSJim JagielskiSHL4RPATH*=OOO
1668*b1cdbd2cSJim JagielskiLINKFLAGSRUNPATH_$(SHL4RPATH)*=/ERROR:/Bad_SHL4RPATH_value
1669*b1cdbd2cSJim JagielskiSHL4LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL4RPATH))
1670*b1cdbd2cSJim Jagielski
1671*b1cdbd2cSJim Jagielski.IF "$(SHL4USE_EXPORTS)"=="" || "$(GUI)"=="OS2"
1672*b1cdbd2cSJim JagielskiSHL4DEF*=$(MISC)/$(SHL4TARGET).def
1673*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL4USE_EXPORTS)"==""
1674*b1cdbd2cSJim Jagielski
1675*b1cdbd2cSJim JagielskiEXTRALIBPATHS4=$(EXTRALIBPATHS)
1676*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
1677*b1cdbd2cSJim Jagielski.IF "$(SHL4NOCHECK)"==""
1678*b1cdbd2cSJim Jagielski.IF "$(SOLAR_STLLIBPATH)"!=""
1679*b1cdbd2cSJim JagielskiEXTRALIBPATHS4+=-L$(SOLAR_STLLIBPATH)
1680*b1cdbd2cSJim Jagielski.ENDIF
1681*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL4NOCHECK)"!=""
1682*b1cdbd2cSJim Jagielski.ENDIF
1683*b1cdbd2cSJim Jagielski#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1684*b1cdbd2cSJim Jagielski#+++++++++++    version object      ++++++++++++++++++++++++++++++++++++++++
1685*b1cdbd2cSJim Jagielski#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1686*b1cdbd2cSJim Jagielski
1687*b1cdbd2cSJim Jagielski.IF "$(L10N_framework)"==""
1688*b1cdbd2cSJim Jagielski.IF "$(VERSIONOBJ)"!=""
1689*b1cdbd2cSJim JagielskiSHL4VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL4TARGET))}$(VERSIONOBJ:f)
1690*b1cdbd2cSJim JagielskiUSE_VERSIONH:=$(INCCOM)/$(SHL4VERSIONOBJ:b).h
1691*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "UNX"
1692*b1cdbd2cSJim JagielskiSHL4VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL4TARGET))}$(VERSIONOBJ:f:s/.o/.obj/)
1693*b1cdbd2cSJim Jagielski.ELSE           # "$(GUI)" == "UNX"
1694*b1cdbd2cSJim JagielskiSHL4VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL4TARGET))}$(VERSIONOBJ:f)
1695*b1cdbd2cSJim Jagielski.ENDIF          # "$(GUI)" == "UNX"
1696*b1cdbd2cSJim Jagielski$(MISC)/$(SHL4VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL4VERSIONOBJ:b).h
1697*b1cdbd2cSJim Jagielski#    $(COPY) $(SOLARENV)/src/version.c $@
1698*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL4VERSIONOBJ:b).h/ > $@
1699*b1cdbd2cSJim Jagielski
1700*b1cdbd2cSJim Jagielski.INIT : $(SHL4VERSIONOBJDEP)
1701*b1cdbd2cSJim Jagielski.ENDIF			# "$(VERSIONOBJ)"!=""
1702*b1cdbd2cSJim Jagielski.ENDIF
1703*b1cdbd2cSJim Jagielski
1704*b1cdbd2cSJim Jagielski.IF "$(GUI)" != "UNX"
1705*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
1706*b1cdbd2cSJim Jagielski.IF "$(SHL4IMPLIB)" == ""
1707*b1cdbd2cSJim JagielskiSHL4IMPLIB=i$(TARGET)_t4
1708*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL4IMPLIB)" == ""
1709*b1cdbd2cSJim Jagielski.IF "$(COM)" != "GCC"
1710*b1cdbd2cSJim JagielskiUSE_4IMPLIB=-implib:$(LB)/$(SHL4IMPLIB).lib
1711*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)" != "GCC"
1712*b1cdbd2cSJim JagielskiSHL4IMPLIBN=$(LB)/$(SHL4IMPLIB).lib
1713*b1cdbd2cSJim JagielskiALLTAR : $(SHL4IMPLIBN)
1714*b1cdbd2cSJim Jagielski
1715*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"==""
1716*b1cdbd2cSJim JagielskiUSE_4IMPLIB_DEPS=$(LB)/$(SHL4IMPLIB).lib
1717*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"==""
1718*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
1719*b1cdbd2cSJim JagielskiUSE_SHL4DEF=$(SHL4DEF)
1720*b1cdbd2cSJim Jagielski.ELSE			# "$(GUI)" != "UNX"
1721*b1cdbd2cSJim JagielskiUSE_SHL4DEF=
1722*b1cdbd2cSJim JagielskiSHL4DEPN+:=$(SHL4DEPNU)
1723*b1cdbd2cSJim Jagielski
1724*b1cdbd2cSJim Jagielski.IF "$(SHL4VERSIONMAP)"==""
1725*b1cdbd2cSJim Jagielski# to activate vmaps remove "#"
1726*b1cdbd2cSJim JagielskiUSE_SHL4VERSIONMAP=$(MISC)/$(SHL4TARGET).vmap
1727*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL4VERSIONMAP)"==""
1728*b1cdbd2cSJim Jagielski
1729*b1cdbd2cSJim Jagielski.IF "$(USE_SHL4VERSIONMAP)"!=""
1730*b1cdbd2cSJim Jagielski
1731*b1cdbd2cSJim Jagielski.IF "$(SHL4FILTERFILE)"!=""
1732*b1cdbd2cSJim Jagielski.IF "$(SHL4VERSIONMAP)"!=""
1733*b1cdbd2cSJim Jagielski#eine von beiden ist zuviel
1734*b1cdbd2cSJim JagielskiUSE_SHL4VERSIONMAP=$(MISC)/$(SHL4TARGET).vmap
1735*b1cdbd2cSJim Jagielski$(USE_SHL4VERSIONMAP) .PHONY:
1736*b1cdbd2cSJim Jagielski	@echo -----------------------------
1737*b1cdbd2cSJim Jagielski	@echo you should only use versionmap OR exportfile
1738*b1cdbd2cSJim Jagielski	@echo -----------------------------
1739*b1cdbd2cSJim Jagielski#	force_dmake_to_error
1740*b1cdbd2cSJim Jagielski
1741*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL4VERSIONMAP)"!=""
1742*b1cdbd2cSJim Jagielski
1743*b1cdbd2cSJim JagielskiSHL4VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL4VERSIONMAP)
1744*b1cdbd2cSJim Jagielski
1745*b1cdbd2cSJim Jagielski$(USE_SHL4VERSIONMAP): \
1746*b1cdbd2cSJim Jagielski					$(SHL4OBJS)\
1747*b1cdbd2cSJim Jagielski					$(SHL4LIBS)\
1748*b1cdbd2cSJim Jagielski					$(SHL4FILTERFILE)
1749*b1cdbd2cSJim Jagielski	@$(RM) $@.dump
1750*b1cdbd2cSJim Jagielski.IF "$(SHL4OBJS)"!=""
1751*b1cdbd2cSJim Jagielski# dump remaining objects on the fly
1752*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
1753*b1cdbd2cSJim Jagielski	@-nm $(SHL4OBJS:s/.obj/.o/) > $@.dump
1754*b1cdbd2cSJim Jagielski.ELSE
1755*b1cdbd2cSJim Jagielski	@nm $(SHL4OBJS:s/.obj/.o/) > $@.dump
1756*b1cdbd2cSJim Jagielski.ENDIF
1757*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL4OBJS)!"=""
1758*b1cdbd2cSJim Jagielski	@$(TYPE) /dev/null $(SHL4LIBS:s/.lib/.dump/) >> $@.dump
1759*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL4INTERFACE) -f $(SHL4FILTERFILE) -m $@
1760*b1cdbd2cSJim Jagielski
1761*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL4FILTERFILE)"!=""
1762*b1cdbd2cSJim JagielskiUSE_SHL4VERSIONMAP=$(MISC)/$(SHL4TARGET).vmap
1763*b1cdbd2cSJim Jagielski$(USE_SHL4VERSIONMAP) :
1764*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)" == "TRUE"
1765*b1cdbd2cSJim Jagielski	@echo -----------------------------
1766*b1cdbd2cSJim Jagielski	@echo SHL4FILTERFILE not set!
1767*b1cdbd2cSJim Jagielski	@echo -----------------------------
1768*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
1769*b1cdbd2cSJim Jagielski	@echo dummy file to keep the dependencies for later use.
1770*b1cdbd2cSJim Jagielski.ELSE
1771*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
1772*b1cdbd2cSJim Jagielski.ENDIF
1773*b1cdbd2cSJim Jagielski#	force_dmake_to_error
1774*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL4FILTERFILE)"!=""
1775*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_SHL4VERSIONMAP)"!=""
1776*b1cdbd2cSJim Jagielski
1777*b1cdbd2cSJim Jagielski#and now for the plain non-generic way...
1778*b1cdbd2cSJim Jagielski.IF "$(SHL4VERSIONMAP)"!=""
1779*b1cdbd2cSJim JagielskiUSE_SHL4VERSIONMAP=$(MISC)/$(SHL4VERSIONMAP:b)_$(SHL4TARGET)$(SHL4VERSIONMAP:e)
1780*b1cdbd2cSJim JagielskiSHL4VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL4VERSIONMAP)
1781*b1cdbd2cSJim Jagielski
1782*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
1783*b1cdbd2cSJim Jagielski$(USE_SHL4VERSIONMAP): $(SHL4OBJS) $(SHL4LIBS)
1784*b1cdbd2cSJim Jagielski.ENDIF
1785*b1cdbd2cSJim Jagielski
1786*b1cdbd2cSJim Jagielski# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@
1787*b1cdbd2cSJim Jagielski# even if the $(AWK) part fails:
1788*b1cdbd2cSJim Jagielski$(USE_SHL4VERSIONMAP) .ERRREMOVE: $(SHL4VERSIONMAP)
1789*b1cdbd2cSJim Jagielski	@@-$(RM) -f $@
1790*b1cdbd2cSJim Jagielski# The following files will only be generated and needed on Mac OS X as temporary files
1791*b1cdbd2cSJim Jagielski# in order to generate exported symbols list out of Linux/Solaris map files
1792*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
1793*b1cdbd2cSJim Jagielski	@-$(RM) -f $@.symregexp >& $(NULLDEV)
1794*b1cdbd2cSJim Jagielski	@-$(RM) -f $@.expsymlist >& $(NULLDEV)
1795*b1cdbd2cSJim Jagielski.ENDIF
1796*b1cdbd2cSJim Jagielski# Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what
1797*b1cdbd2cSJim Jagielski# happens if somebody will change it in the future
1798*b1cdbd2cSJim Jagielski.IF "$(COMID)"=="gcc3"
1799*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL4VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@
1800*b1cdbd2cSJim Jagielski.ELIF "$(COMNAME)"=="sunpro5"
1801*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL4VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@
1802*b1cdbd2cSJim Jagielski.ELSE           # "$(COMID)"=="gcc3"
1803*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL4VERSIONMAP) > $@
1804*b1cdbd2cSJim Jagielski.ENDIF          # "$(COMID)"=="gcc3"
1805*b1cdbd2cSJim Jagielski	@chmod a+w $@
1806*b1cdbd2cSJim Jagielski# Mac OS X post-processing generate an exported symbols list from the generated map file
1807*b1cdbd2cSJim Jagielski# for details on exported symbols list see man ld on Mac OS X
1808*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
1809*b1cdbd2cSJim Jagielski	@-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols
1810*b1cdbd2cSJim Jagielski	@-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp
1811*b1cdbd2cSJim Jagielski# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
1812*b1cdbd2cSJim Jagielski# Extract RTTI symbols from all the objects that will be used to build a shared library
1813*b1cdbd2cSJim Jagielski.IF "$(SHL4OBJS)"!=""
1814*b1cdbd2cSJim Jagielski	-echo $(foreach,i,$(SHL4OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
1815*b1cdbd2cSJim Jagielski.ENDIF
1816*b1cdbd2cSJim Jagielski.IF "$(SHL4LIBS)"!=""
1817*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL4LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
1818*b1cdbd2cSJim Jagielski.ENDIF
1819*b1cdbd2cSJim Jagielski# overwrite the map file generate into the local output tree with the generated
1820*b1cdbd2cSJim Jagielski# exported symbols list
1821*b1cdbd2cSJim Jagielski	cp $@.exported-symbols $@
1822*b1cdbd2cSJim Jagielski.ENDIF # .IF "$(OS)"=="MACOSX"
1823*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL4VERSIONMAP)"!=""
1824*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_SHL4VERSIONMAP)"!=""
1825*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" != "UNX"
1826*b1cdbd2cSJim Jagielski
1827*b1cdbd2cSJim Jagielski.IF "$(UNIXVERSIONNAMES)"!=""
1828*b1cdbd2cSJim Jagielski.IF "$(OS)"!="MACOSX"
1829*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="UNX"
1830*b1cdbd2cSJim JagielskiSHL4SONAME=\"$(SONAME_SWITCH)$(SHL4TARGETN:f)\"
1831*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)"!="UNX"
1832*b1cdbd2cSJim Jagielski.ENDIF			# "$(OS)"!="MACOSX"
1833*b1cdbd2cSJim Jagielski.ENDIF			# "$(UNIXVERSIONNAMES)"!=""
1834*b1cdbd2cSJim Jagielski
1835*b1cdbd2cSJim Jagielski.IF "$(SHL4RES)"!=""
1836*b1cdbd2cSJim JagielskiSHL4ALLRES+=$(SHL4RES)
1837*b1cdbd2cSJim JagielskiSHL4LINKRES*=$(MISC)/$(SHL4TARGET).res
1838*b1cdbd2cSJim JagielskiSHL4LINKRESO*=$(MISC)/$(SHL4TARGET)_res.o
1839*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL4RES)"!=""
1840*b1cdbd2cSJim Jagielski
1841*b1cdbd2cSJim Jagielski.IF "$(SHL4DEFAULTRES)$(use_shl_versions)"!=""
1842*b1cdbd2cSJim JagielskiSHL4DEFAULTRES*=$(MISC)/$(SHL4TARGET)_def.res
1843*b1cdbd2cSJim JagielskiSHL4ALLRES+=$(SHL4DEFAULTRES)
1844*b1cdbd2cSJim JagielskiSHL4LINKRES*=$(MISC)/$(SHL4TARGET).res
1845*b1cdbd2cSJim JagielskiSHL4LINKRESO*=$(MISC)/$(SHL4TARGET)_res.o
1846*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL4DEFAULTRES)$(use_shl_versions)"!=""
1847*b1cdbd2cSJim Jagielski
1848*b1cdbd2cSJim Jagielski#.IF "$(SHL4TARGETN)"!=""
1849*b1cdbd2cSJim Jagielski
1850*b1cdbd2cSJim Jagielski.IF "$(linkinc)"!=""
1851*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
1852*b1cdbd2cSJim Jagielski.IF "$(SHL4LIBS)"!=""
1853*b1cdbd2cSJim Jagielski$(MISC)/$(SHL4TARGET)_linkinc.ls .PHONY:
1854*b1cdbd2cSJim Jagielski	@@-$(RM) $@
1855*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL4LIBS) $(i:s/.lib/.lin/)) >> $@
1856*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL4LIBS)"!=""
1857*b1cdbd2cSJim Jagielski.ENDIF
1858*b1cdbd2cSJim Jagielski
1859*b1cdbd2cSJim JagielskiLINKINCTARGETS+=$(MISC)/$(SHL4TARGETN:b)_linkinc.ls
1860*b1cdbd2cSJim Jagielski$(SHL4TARGETN) : $(LINKINCTARGETS)
1861*b1cdbd2cSJim Jagielski
1862*b1cdbd2cSJim Jagielski.ELSE
1863*b1cdbd2cSJim Jagielski.IF "$(SHL4USE_EXPORTS)"=="name"
1864*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
1865*b1cdbd2cSJim Jagielski.IF "$(COM)"!="GCC"
1866*b1cdbd2cSJim Jagielski.IF "$(SHL4LIBS)"!=""
1867*b1cdbd2cSJim JagielskiSHL4LINKLIST=$(MISC)/$(SHL4TARGET)_link.lst
1868*b1cdbd2cSJim JagielskiSHL4LINKLISTPARAM=@$(SHL4LINKLIST)
1869*b1cdbd2cSJim Jagielski$(SHL4LINKLIST) : $(SHL4LIBS)
1870*b1cdbd2cSJim Jagielski    @@-$(RM) $@
1871*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL4LIBS) $(i:s/.lib/.lin/)) >> $@
1872*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL4LIBS)"!=""
1873*b1cdbd2cSJim Jagielski.ENDIF          # "$(COM)"!="GCC"
1874*b1cdbd2cSJim Jagielski.ENDIF
1875*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL4USE_EXPORTS)"=="name"
1876*b1cdbd2cSJim Jagielski
1877*b1cdbd2cSJim Jagielski$(MISC)/%linkinc.ls:
1878*b1cdbd2cSJim Jagielski	@echo . > $@
1879*b1cdbd2cSJim Jagielski.ENDIF          # "$(linkinc)"!=""
1880*b1cdbd2cSJim Jagielski
1881*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "OS2"
1882*b1cdbd2cSJim Jagielski#21/02/2006 YD dll names must be 8.3, invoke fix script
1883*b1cdbd2cSJim Jagielski#check osl/os2/module.c/osl_loadModule()
1884*b1cdbd2cSJim JagielskiSHL4TARGET8=$(shell @fix_shl.cmd $(SHL4TARGET))
1885*b1cdbd2cSJim Jagielski.ENDIF
1886*b1cdbd2cSJim Jagielski
1887*b1cdbd2cSJim Jagielski
1888*b1cdbd2cSJim Jagielski$(SHL4TARGETN) : \
1889*b1cdbd2cSJim Jagielski					$(SHL4OBJS)\
1890*b1cdbd2cSJim Jagielski					$(SHL4LIBS)\
1891*b1cdbd2cSJim Jagielski					$(USE_4IMPLIB_DEPS)\
1892*b1cdbd2cSJim Jagielski					$(USE_SHL4DEF)\
1893*b1cdbd2cSJim Jagielski					$(USE_SHL4VERSIONMAP)\
1894*b1cdbd2cSJim Jagielski					$(SHL4RES)\
1895*b1cdbd2cSJim Jagielski					$(SHL4DEPN) \
1896*b1cdbd2cSJim Jagielski					$(SHL4LINKLIST)
1897*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f)
1898*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT"
1899*b1cdbd2cSJim Jagielski.IF "$(SHL4DEFAULTRES)"!=""
1900*b1cdbd2cSJim Jagielski	@@-$(RM) $(MISC)/$(SHL4DEFAULTRES:b).rc
1901*b1cdbd2cSJim Jagielski.IF "$(SHL4ICON)" != ""
1902*b1cdbd2cSJim Jagielski	@echo 1 ICON $(SHL4ICON) >> $(MISC)/$(SHL4DEFAULTRES:b).rc
1903*b1cdbd2cSJim Jagielski.ENDIF
1904*b1cdbd2cSJim Jagielski.IF "$(use_shl_versions)" != ""
1905*b1cdbd2cSJim Jagielski.IF "$(SHL4ADD_VERINFO)"!=""
1906*b1cdbd2cSJim Jagielski	@echo $(EMQ)#include $(EMQ)"$(SHL4ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL4DEFAULTRES:b).rc
1907*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL4ADD_VERINFO)"!=""
1908*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL4DEFAULTRES:b).rc
1909*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL4DEFAULTRES:b).rc
1910*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL4DEFAULTRES:b).rc
1911*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL4ADD_VERINFO)"!=""
1912*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)/$(SHL4DEFAULTRES:b).rc
1913*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ORG_NAME	$(SHL4TARGET)$(DLLPOST) >> $(MISC)/$(SHL4DEFAULTRES:b).rc
1914*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define INTERNAL_NAME $(SHL4TARGET:b) >> $(MISC)/$(SHL4DEFAULTRES:b).rc
1915*b1cdbd2cSJim Jagielski	@echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL4DEFAULTRES:b).rc
1916*b1cdbd2cSJim Jagielski.ENDIF			# "$(use_shl_versions)" != ""
1917*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL4DEFAULTRES:b).rc
1918*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL4DEFAULTRES)"!=""
1919*b1cdbd2cSJim Jagielski.IF "$(SHL4ALLRES)"!=""
1920*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(TYPE) $(SHL4ALLRES) > $(SHL4LINKRES)
1921*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"
1922*b1cdbd2cSJim Jagielski	windres $(SHL4LINKRES) $(SHL4LINKRESO)
1923*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
1924*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL4ALLRES)"!=""
1925*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"	# always have to call dlltool explicitly as ld cannot handle # comment in .def
1926*b1cdbd2cSJim Jagielski	@echo dlltool --dllname $(SHL4TARGET)$(DLLPOST) \
1927*b1cdbd2cSJim Jagielski		--kill-at \\ > $(MISC)/$(TARGET).$(@:b)_4.cmd
1928*b1cdbd2cSJim Jagielski	@noop $(assign ALL4OBJLIST:=$(STDOBJ) $(SHL4OBJS) $(SHL4LINKRESO) $(shell $(TYPE) /dev/null $(SHL4LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g))
1929*b1cdbd2cSJim Jagielski.IF "$(DEFLIB4NAME)"!=""	# do not have to include objs
1930*b1cdbd2cSJim Jagielski	@noop $(assign DEF4OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB4NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g))
1931*b1cdbd2cSJim Jagielski	@noop $(foreach,i,$(DEF4OBJLIST) $(assign ALL4OBJLIST:=$(ALL4OBJLIST:s?$i??)))
1932*b1cdbd2cSJim Jagielski.ENDIF			# "$(DEFLIB4NAME)"!=""
1933*b1cdbd2cSJim Jagielski	@echo	--output-exp $(MISC)/$(@:b)_exp.o \\ >> $(MISC)/$(TARGET).$(@:b)_4.cmd
1934*b1cdbd2cSJim Jagielski.IF "$(SHL4DEF)"!=""
1935*b1cdbd2cSJim Jagielski	@echo	--input-def $(SHL4DEF) \\ >> $(MISC)/$(TARGET).$(@:b)_4.cmd
1936*b1cdbd2cSJim Jagielski.ELSE
1937*b1cdbd2cSJim Jagielski	@echo	$(SHL4VERSIONOBJ) $(SHL4DESCRIPTIONOBJ) \\ >> $(MISC)/$(TARGET).$(@:b)_4.cmd
1938*b1cdbd2cSJim Jagielski.ENDIF
1939*b1cdbd2cSJim Jagielski	@echo	$(ALL4OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_4.cmd
1940*b1cdbd2cSJim Jagielski	@echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \
1941*b1cdbd2cSJim Jagielski		$(STDOBJ) $(SHL4VERSIONOBJ) $(SHL4DESCRIPTIONOBJ) $(SHL4OBJS) $(SHL4LINKRESO) \
1942*b1cdbd2cSJim Jagielski		`$(TYPE) /dev/null $(SHL4LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
1943*b1cdbd2cSJim Jagielski		-Wl,--exclude-libs,ALL,--start-group $(SHL4STDLIBS) -Wl,--end-group \
1944*b1cdbd2cSJim Jagielski		$(SHL4STDSHL) $(STDSHL4) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \
1945*b1cdbd2cSJim Jagielski		-Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_4.cmd
1946*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
1947*b1cdbd2cSJim Jagielski	@$(TYPE)  $(MISC)/$(TARGET).$(@:b)_4.cmd
1948*b1cdbd2cSJim Jagielski  .ENDIF
1949*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_4.cmd
1950*b1cdbd2cSJim Jagielski.ELSE
1951*b1cdbd2cSJim Jagielski.IF "$(linkinc)"==""
1952*b1cdbd2cSJim Jagielski.IF "$(SHL4USE_EXPORTS)"!="name"
1953*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
1954*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL4LINKER) @$(mktmp \
1955*b1cdbd2cSJim Jagielski		$(SHL4LINKFLAGS) \
1956*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) \
1957*b1cdbd2cSJim Jagielski		$(SHL4STACK) $(SHL4BASEX)	\
1958*b1cdbd2cSJim Jagielski		-out:$@ \
1959*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:b).map \
1960*b1cdbd2cSJim Jagielski		-def:$(SHL4DEF) \
1961*b1cdbd2cSJim Jagielski		$(USE_4IMPLIB) \
1962*b1cdbd2cSJim Jagielski		$(STDOBJ) \
1963*b1cdbd2cSJim Jagielski		$(SHL4VERSIONOBJ) $(SHL4OBJS) \
1964*b1cdbd2cSJim Jagielski		$(SHL4LIBS) \
1965*b1cdbd2cSJim Jagielski		$(SHL4STDLIBS) \
1966*b1cdbd2cSJim Jagielski		$(SHL4STDSHL) $(STDSHL4) \
1967*b1cdbd2cSJim Jagielski		$(SHL4LINKRES) \
1968*b1cdbd2cSJim Jagielski	)
1969*b1cdbd2cSJim Jagielski# double check if target was really written... still making sense?
1970*b1cdbd2cSJim Jagielski    @@$(LS) $@
1971*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
1972*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
1973*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
1974*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
1975*b1cdbd2cSJim Jagielski.ELSE
1976*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
1977*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
1978*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
1979*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
1980*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)"!=""
1981*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL4LINKER) @$(mktmp	$(SHL4LINKFLAGS)			\
1982*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL4BASEX)		\
1983*b1cdbd2cSJim Jagielski		$(SHL4STACK) -out:$(SHL4TARGETN)	\
1984*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:B).map				\
1985*b1cdbd2cSJim Jagielski		$(LB)/$(SHL4IMPLIB).exp				\
1986*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
1987*b1cdbd2cSJim Jagielski		$(SHL4OBJS) $(SHL4VERSIONOBJ) \
1988*b1cdbd2cSJim Jagielski		$(SHL4LIBS)                         \
1989*b1cdbd2cSJim Jagielski		$(SHL4STDLIBS)                      \
1990*b1cdbd2cSJim Jagielski		$(SHL4STDSHL) $(STDSHL4)                           \
1991*b1cdbd2cSJim Jagielski		$(SHL4LINKRES) \
1992*b1cdbd2cSJim Jagielski	)
1993*b1cdbd2cSJim Jagielski# double check if target was really written... still making sense?
1994*b1cdbd2cSJim Jagielski    @@$(LS) $@
1995*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
1996*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
1997*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
1998*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
1999*b1cdbd2cSJim Jagielski.ELSE
2000*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
2001*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
2002*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
2003*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
2004*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"!=""
2005*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL4USE_EXPORTS)"!="name"
2006*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL4LINKER) @$(mktmp	$(SHL4LINKFLAGS)			\
2007*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL4BASEX)		\
2008*b1cdbd2cSJim Jagielski		$(SHL4STACK) -out:$(SHL4TARGETN)	\
2009*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:B).map				\
2010*b1cdbd2cSJim Jagielski		$(USE_4IMPLIB) \
2011*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
2012*b1cdbd2cSJim Jagielski		$(SHL4OBJS) $(SHL4VERSIONOBJ))   \
2013*b1cdbd2cSJim Jagielski		$(SHL4LINKLISTPARAM) \
2014*b1cdbd2cSJim Jagielski		@$(mktmp $(SHL4STDLIBS)                      \
2015*b1cdbd2cSJim Jagielski		$(SHL4STDSHL) $(STDSHL4)                           \
2016*b1cdbd2cSJim Jagielski		$(SHL4LINKRES) \
2017*b1cdbd2cSJim Jagielski	)
2018*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
2019*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
2020*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
2021*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
2022*b1cdbd2cSJim Jagielski.ELSE
2023*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
2024*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
2025*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
2026*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
2027*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL4USE_EXPORTS)"!="name"
2028*b1cdbd2cSJim Jagielski.ELSE			# "$(linkinc)"==""
2029*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL4TARGET).lnk
2030*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL4TARGET).lst
2031*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(TYPE) $(mktmp \
2032*b1cdbd2cSJim Jagielski		$(SHL4LINKFLAGS) \
2033*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL4BASEX) \
2034*b1cdbd2cSJim Jagielski		$(SHL4STACK) $(MAPFILE) \
2035*b1cdbd2cSJim Jagielski		-out:$@ \
2036*b1cdbd2cSJim Jagielski		$(LB)/$(SHL4IMPLIB).exp \
2037*b1cdbd2cSJim Jagielski		$(STDOBJ) \
2038*b1cdbd2cSJim Jagielski		$(SHL4OBJS) \
2039*b1cdbd2cSJim Jagielski		$(SHL4STDLIBS) \
2040*b1cdbd2cSJim Jagielski		$(SHL4STDSHL) $(STDSHL4) \
2041*b1cdbd2cSJim Jagielski		$(SHL4LINKRES) \
2042*b1cdbd2cSJim Jagielski		) >> $(MISC)/$(SHL4TARGET).lnk
2043*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL4TARGETN:b)_linkinc.ls  >> $(MISC)/$(SHL4TARGET).lnk
2044*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(SHL4LINKER) @$(MISC)/$(SHL4TARGET).lnk
2045*b1cdbd2cSJim Jagielski		@echo linking $@.manifest ...
2046*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
2047*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
2048*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
2049*b1cdbd2cSJim Jagielski.ELSE
2050*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
2051*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
2052*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
2053*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
2054*b1cdbd2cSJim Jagielski.ENDIF			# "$(linkinc)"==""
2055*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
2056*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "WNT"
2057*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="UNX"
2058*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
2059*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(@:b).list
2060*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(TARGET).$(@:b)_4.cmd
2061*b1cdbd2cSJim Jagielski	@echo $(STDSLO) $(SHL4OBJS:s/.obj/.o/) \
2062*b1cdbd2cSJim Jagielski	$(SHL4VERSIONOBJ) \
2063*b1cdbd2cSJim Jagielski	`cat /dev/null $(SHL4LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list
2064*b1cdbd2cSJim Jagielski	@echo -n $(SHL4LINKER) $(SHL4LINKFLAGS) $(SHL4VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \
2065*b1cdbd2cSJim Jagielski	$(SHL4STDLIBS) $(SHL4ARCHIVES) $(SHL4STDSHL) $(STDSHL4) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_4.cmd
2066*b1cdbd2cSJim Jagielski    @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \
2067*b1cdbd2cSJim Jagielski        `cat $(MISC)/$(TARGET).$(@:b)_4.cmd` \
2068*b1cdbd2cSJim Jagielski        >> $(MISC)/$(TARGET).$(@:b)_4.cmd
2069*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
2070*b1cdbd2cSJim Jagielski	@cat $(MISC)/$(TARGET).$(@:b)_4.cmd
2071*b1cdbd2cSJim Jagielski  .ENDIF
2072*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_4.cmd
2073*b1cdbd2cSJim Jagielski    @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \
2074*b1cdbd2cSJim Jagielski        shl $(SHL4RPATH) $@
2075*b1cdbd2cSJim Jagielski.IF "$(SHL4CREATEJNILIB)"!=""
2076*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f).jnilib
2077*b1cdbd2cSJim Jagielski	@macosx-create-bundle $@
2078*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL4CREATEJNILIB)"!=""
2079*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
2080*b1cdbd2cSJim Jagielski.IF "$(SHL4NOCHECK)"==""
2081*b1cdbd2cSJim Jagielski	$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS4) $(SHL4TARGETN)
2082*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL4NOCHECK)"!=""
2083*b1cdbd2cSJim Jagielski.ENDIF
2084*b1cdbd2cSJim Jagielski.ELSE			# "$(OS)"=="MACOSX"
2085*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(TARGET).$(@:b)_4.cmd
2086*b1cdbd2cSJim Jagielski	@echo $(SHL4LINKER) $(SHL4LINKFLAGS) $(SHL4SONAME) $(LINKFLAGSSHL) $(SHL4VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL4OBJS:s/.obj/.o/) \
2087*b1cdbd2cSJim Jagielski	$(SHL4VERSIONOBJ) -o $@ \
2088*b1cdbd2cSJim Jagielski	`cat /dev/null $(SHL4LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
2089*b1cdbd2cSJim Jagielski	$(SHL4STDLIBS) $(SHL4ARCHIVES) $(SHL4STDSHL) $(STDSHL4) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_4.cmd
2090*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
2091*b1cdbd2cSJim Jagielski	@cat $(MISC)/$(TARGET).$(@:b)_4.cmd
2092*b1cdbd2cSJim Jagielski  .ENDIF
2093*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_4.cmd
2094*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
2095*b1cdbd2cSJim Jagielski.IF "$(SHL4NOCHECK)"==""
2096*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)-$(RM) $(SHL4TARGETN:d)check_$(SHL4TARGETN:f)
2097*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RENAME) $(SHL4TARGETN) $(SHL4TARGETN:d)check_$(SHL4TARGETN:f)
2098*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)"=="TRUE"
2099*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS4) $(SHL4TARGETN:d)check_$(SHL4TARGETN:f)
2100*b1cdbd2cSJim Jagielski.ELSE
2101*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS4) -- -s $(SHL4TARGETN:d)check_$(SHL4TARGETN:f)
2102*b1cdbd2cSJim Jagielski.ENDIF
2103*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL4NOCHECK)"!=""
2104*b1cdbd2cSJim Jagielski.ENDIF			# "$(UPDATER)"=="YES"
2105*b1cdbd2cSJim Jagielski.ENDIF			# "$(OS)"=="MACOSX"
2106*b1cdbd2cSJim Jagielski.IF "$(UNIXVERSIONNAMES)"!=""
2107*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RM) $(LB)/$(SHL4TARGETN:b)
2108*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)cd $(LB) && ln -s $(SHL4TARGETN:f) $(SHL4TARGETN:b)
2109*b1cdbd2cSJim Jagielski.ENDIF			# "$(UNIXVERSIONNAMES)"!=""
2110*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)" == "TRUE"
2111*b1cdbd2cSJim Jagielski	@ls -l $@
2112*b1cdbd2cSJim Jagielski.ENDIF
2113*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "UNX"
2114*b1cdbd2cSJim Jagielski
2115*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "OS2"
2116*b1cdbd2cSJim Jagielski
2117*b1cdbd2cSJim Jagielski.IF "$(SHL4DEFAULTRES)"!=""
2118*b1cdbd2cSJim Jagielski	@+-$(RM) $(MISC)/$(SHL4DEFAULTRES:b).rc > $(NULLDEV)
2119*b1cdbd2cSJim Jagielski.IF "$(SHL4ICON)" != ""
2120*b1cdbd2cSJim Jagielski	@-+echo 1 ICON $(SHL4ICON) >> $(MISC)/$(SHL4DEFAULTRES:b).rc
2121*b1cdbd2cSJim Jagielski.ENDIF
2122*b1cdbd2cSJim Jagielski.IF "$(use_shl_versions)" != ""
2123*b1cdbd2cSJim Jagielski.IF "$(SHL4ADD_VERINFO)"!=""
2124*b1cdbd2cSJim Jagielski	@-+echo $(EMQ)#include $(EMQ)"$(SHL4ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL4DEFAULTRES:b).rc
2125*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL4ADD_VERINFO)"!=""
2126*b1cdbd2cSJim Jagielski	@-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL4DEFAULTRES:b).rc
2127*b1cdbd2cSJim Jagielski#	@-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL4DEFAULTRES:b).rc
2128*b1cdbd2cSJim Jagielski.ENDIF			# "$(use_shl_versions)" != ""
2129*b1cdbd2cSJim Jagielski# YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR)
2130*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL4DEFAULTRES:b).rc
2131*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL4DEFAULTRES)"!=""
2132*b1cdbd2cSJim Jagielski
2133*b1cdbd2cSJim Jagielski.IF "$(SHL4ALLRES)"!=""
2134*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(TYPE) $(SHL4ALLRES) > $(SHL4LINKRES)
2135*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL4ALLRES)"!=""
2136*b1cdbd2cSJim Jagielski
2137*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
2138*b1cdbd2cSJim Jagielski
2139*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL4LINKER) $(SHL4LINKFLAGS) $(LINKFLAGSSHL) -o $@ \
2140*b1cdbd2cSJim Jagielski		$(SHL4DEF) \
2141*b1cdbd2cSJim Jagielski		$(STDOBJ) \
2142*b1cdbd2cSJim Jagielski		-L$(LB) \
2143*b1cdbd2cSJim Jagielski		-L$(SOLARVERSION)/$(INPATH)/lib \
2144*b1cdbd2cSJim Jagielski		$(SHL4OBJS) $(SHL4VERSIONOBJ) \
2145*b1cdbd2cSJim Jagielski		$(SHL4LIBS) \
2146*b1cdbd2cSJim Jagielski		$(SHL4LINKRES) \
2147*b1cdbd2cSJim Jagielski		$(SHL4STDLIBS) \
2148*b1cdbd2cSJim Jagielski		$(SHL4STDSHL) $(STDSHL4)
2149*b1cdbd2cSJim Jagielski
2150*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)"!=""
2151*b1cdbd2cSJim Jagielski
2152*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL4LINKER) $(SHL4LINKFLAGS)			\
2153*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL4BASEX)		\
2154*b1cdbd2cSJim Jagielski		$(SHL4STACK) -o $(SHL4TARGETN)	\
2155*b1cdbd2cSJim Jagielski		$(SHL4DEF) \
2156*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
2157*b1cdbd2cSJim Jagielski		-L$(LB) \
2158*b1cdbd2cSJim Jagielski		-L$(SOLARVERSION)/$(INPATH)/lib \
2159*b1cdbd2cSJim Jagielski		$(SHL4OBJS) $(SHL4VERSIONOBJ) \
2160*b1cdbd2cSJim Jagielski		$(SHL4LIBS) \
2161*b1cdbd2cSJim Jagielski		$(SHL4LINKRES) \
2162*b1cdbd2cSJim Jagielski		$(SHL4STDLIBS) \
2163*b1cdbd2cSJim Jagielski		$(SHL4STDSHL) $(STDSHL4)
2164*b1cdbd2cSJim Jagielski
2165*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"!=""
2166*b1cdbd2cSJim Jagielski
2167*b1cdbd2cSJim Jagielski.IF "$(SHL4USE_EXPORTS)"=="name"
2168*b1cdbd2cSJim Jagielski#03/11/2012  if 'name' is used, export from DLL file (only names, no ordinals)
2169*b1cdbd2cSJim Jagielski	@echo Build import library from DLL file.
2170*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(LB)/$(SHL4TARGETN:b).lib $@
2171*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL4USE_EXPORTS)"==""
2172*b1cdbd2cSJim Jagielski
2173*b1cdbd2cSJim Jagielski.IF "$(SHL4TARGET8)" != "$(SHL4TARGET)"
2174*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL4TARGET8).dll
2175*b1cdbd2cSJim Jagielski.ENDIF
2176*b1cdbd2cSJim Jagielski
2177*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "OS2"
2178*b1cdbd2cSJim Jagielski
2179*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL4TARGETN)"!=""
2180*b1cdbd2cSJim Jagielski
2181*b1cdbd2cSJim Jagielski# unroll begin
2182*b1cdbd2cSJim Jagielski
2183*b1cdbd2cSJim Jagielski.IF "$(SHL5TARGETN)"!=""
2184*b1cdbd2cSJim Jagielski
2185*b1cdbd2cSJim Jagielski.IF "$(OS)"=="AIX"
2186*b1cdbd2cSJim JagielskiSHL5STDLIBS=
2187*b1cdbd2cSJim Jagielski.ENDIF
2188*b1cdbd2cSJim Jagielski
2189*b1cdbd2cSJim Jagielski.IF "$(SHLLINKARCONLY)" != ""
2190*b1cdbd2cSJim JagielskiSHL5STDLIBS=
2191*b1cdbd2cSJim JagielskiSTDSHL=
2192*b1cdbd2cSJim Jagielski.ELSE
2193*b1cdbd2cSJim JagielskiSHL5ARCHIVES=
2194*b1cdbd2cSJim Jagielski.ENDIF
2195*b1cdbd2cSJim Jagielski
2196*b1cdbd2cSJim Jagielski# decide how to link
2197*b1cdbd2cSJim Jagielski.IF "$(SHL5CODETYPE)"=="C"
2198*b1cdbd2cSJim JagielskiSHL5LINKER=$(LINKC)
2199*b1cdbd2cSJim JagielskiSHL5STDSHL=$(subst,CPPRUNTIME, $(STDSHL))
2200*b1cdbd2cSJim JagielskiSHL5LINKFLAGS+=$(LINKCFLAGS)
2201*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL5CODETYPE)"=="C"
2202*b1cdbd2cSJim JagielskiSHL5LINKER=$(LINK)
2203*b1cdbd2cSJim JagielskiSHL5STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL))
2204*b1cdbd2cSJim JagielskiSHL5LINKFLAGS+=$(LINKFLAGS)
2205*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL5CODETYPE)"=="C"
2206*b1cdbd2cSJim Jagielski
2207*b1cdbd2cSJim JagielskiSHL5RPATH*=OOO
2208*b1cdbd2cSJim JagielskiLINKFLAGSRUNPATH_$(SHL5RPATH)*=/ERROR:/Bad_SHL5RPATH_value
2209*b1cdbd2cSJim JagielskiSHL5LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL5RPATH))
2210*b1cdbd2cSJim Jagielski
2211*b1cdbd2cSJim Jagielski.IF "$(SHL5USE_EXPORTS)"=="" || "$(GUI)"=="OS2"
2212*b1cdbd2cSJim JagielskiSHL5DEF*=$(MISC)/$(SHL5TARGET).def
2213*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL5USE_EXPORTS)"==""
2214*b1cdbd2cSJim Jagielski
2215*b1cdbd2cSJim JagielskiEXTRALIBPATHS5=$(EXTRALIBPATHS)
2216*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
2217*b1cdbd2cSJim Jagielski.IF "$(SHL5NOCHECK)"==""
2218*b1cdbd2cSJim Jagielski.IF "$(SOLAR_STLLIBPATH)"!=""
2219*b1cdbd2cSJim JagielskiEXTRALIBPATHS5+=-L$(SOLAR_STLLIBPATH)
2220*b1cdbd2cSJim Jagielski.ENDIF
2221*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL5NOCHECK)"!=""
2222*b1cdbd2cSJim Jagielski.ENDIF
2223*b1cdbd2cSJim Jagielski#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2224*b1cdbd2cSJim Jagielski#+++++++++++    version object      ++++++++++++++++++++++++++++++++++++++++
2225*b1cdbd2cSJim Jagielski#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2226*b1cdbd2cSJim Jagielski
2227*b1cdbd2cSJim Jagielski.IF "$(L10N_framework)"==""
2228*b1cdbd2cSJim Jagielski.IF "$(VERSIONOBJ)"!=""
2229*b1cdbd2cSJim JagielskiSHL5VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL5TARGET))}$(VERSIONOBJ:f)
2230*b1cdbd2cSJim JagielskiUSE_VERSIONH:=$(INCCOM)/$(SHL5VERSIONOBJ:b).h
2231*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "UNX"
2232*b1cdbd2cSJim JagielskiSHL5VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL5TARGET))}$(VERSIONOBJ:f:s/.o/.obj/)
2233*b1cdbd2cSJim Jagielski.ELSE           # "$(GUI)" == "UNX"
2234*b1cdbd2cSJim JagielskiSHL5VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL5TARGET))}$(VERSIONOBJ:f)
2235*b1cdbd2cSJim Jagielski.ENDIF          # "$(GUI)" == "UNX"
2236*b1cdbd2cSJim Jagielski$(MISC)/$(SHL5VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL5VERSIONOBJ:b).h
2237*b1cdbd2cSJim Jagielski#    $(COPY) $(SOLARENV)/src/version.c $@
2238*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL5VERSIONOBJ:b).h/ > $@
2239*b1cdbd2cSJim Jagielski
2240*b1cdbd2cSJim Jagielski.INIT : $(SHL5VERSIONOBJDEP)
2241*b1cdbd2cSJim Jagielski.ENDIF			# "$(VERSIONOBJ)"!=""
2242*b1cdbd2cSJim Jagielski.ENDIF
2243*b1cdbd2cSJim Jagielski
2244*b1cdbd2cSJim Jagielski.IF "$(GUI)" != "UNX"
2245*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
2246*b1cdbd2cSJim Jagielski.IF "$(SHL5IMPLIB)" == ""
2247*b1cdbd2cSJim JagielskiSHL5IMPLIB=i$(TARGET)_t5
2248*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL5IMPLIB)" == ""
2249*b1cdbd2cSJim Jagielski.IF "$(COM)" != "GCC"
2250*b1cdbd2cSJim JagielskiUSE_5IMPLIB=-implib:$(LB)/$(SHL5IMPLIB).lib
2251*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)" != "GCC"
2252*b1cdbd2cSJim JagielskiSHL5IMPLIBN=$(LB)/$(SHL5IMPLIB).lib
2253*b1cdbd2cSJim JagielskiALLTAR : $(SHL5IMPLIBN)
2254*b1cdbd2cSJim Jagielski
2255*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"==""
2256*b1cdbd2cSJim JagielskiUSE_5IMPLIB_DEPS=$(LB)/$(SHL5IMPLIB).lib
2257*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"==""
2258*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
2259*b1cdbd2cSJim JagielskiUSE_SHL5DEF=$(SHL5DEF)
2260*b1cdbd2cSJim Jagielski.ELSE			# "$(GUI)" != "UNX"
2261*b1cdbd2cSJim JagielskiUSE_SHL5DEF=
2262*b1cdbd2cSJim JagielskiSHL5DEPN+:=$(SHL5DEPNU)
2263*b1cdbd2cSJim Jagielski
2264*b1cdbd2cSJim Jagielski.IF "$(SHL5VERSIONMAP)"==""
2265*b1cdbd2cSJim Jagielski# to activate vmaps remove "#"
2266*b1cdbd2cSJim JagielskiUSE_SHL5VERSIONMAP=$(MISC)/$(SHL5TARGET).vmap
2267*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL5VERSIONMAP)"==""
2268*b1cdbd2cSJim Jagielski
2269*b1cdbd2cSJim Jagielski.IF "$(USE_SHL5VERSIONMAP)"!=""
2270*b1cdbd2cSJim Jagielski
2271*b1cdbd2cSJim Jagielski.IF "$(SHL5FILTERFILE)"!=""
2272*b1cdbd2cSJim Jagielski.IF "$(SHL5VERSIONMAP)"!=""
2273*b1cdbd2cSJim Jagielski#eine von beiden ist zuviel
2274*b1cdbd2cSJim JagielskiUSE_SHL5VERSIONMAP=$(MISC)/$(SHL5TARGET).vmap
2275*b1cdbd2cSJim Jagielski$(USE_SHL5VERSIONMAP) .PHONY:
2276*b1cdbd2cSJim Jagielski	@echo -----------------------------
2277*b1cdbd2cSJim Jagielski	@echo you should only use versionmap OR exportfile
2278*b1cdbd2cSJim Jagielski	@echo -----------------------------
2279*b1cdbd2cSJim Jagielski#	force_dmake_to_error
2280*b1cdbd2cSJim Jagielski
2281*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL5VERSIONMAP)"!=""
2282*b1cdbd2cSJim Jagielski
2283*b1cdbd2cSJim JagielskiSHL5VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL5VERSIONMAP)
2284*b1cdbd2cSJim Jagielski
2285*b1cdbd2cSJim Jagielski$(USE_SHL5VERSIONMAP): \
2286*b1cdbd2cSJim Jagielski					$(SHL5OBJS)\
2287*b1cdbd2cSJim Jagielski					$(SHL5LIBS)\
2288*b1cdbd2cSJim Jagielski					$(SHL5FILTERFILE)
2289*b1cdbd2cSJim Jagielski	@$(RM) $@.dump
2290*b1cdbd2cSJim Jagielski.IF "$(SHL5OBJS)"!=""
2291*b1cdbd2cSJim Jagielski# dump remaining objects on the fly
2292*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
2293*b1cdbd2cSJim Jagielski	@-nm $(SHL5OBJS:s/.obj/.o/) > $@.dump
2294*b1cdbd2cSJim Jagielski.ELSE
2295*b1cdbd2cSJim Jagielski	@nm $(SHL5OBJS:s/.obj/.o/) > $@.dump
2296*b1cdbd2cSJim Jagielski.ENDIF
2297*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL5OBJS)!"=""
2298*b1cdbd2cSJim Jagielski	@$(TYPE) /dev/null $(SHL5LIBS:s/.lib/.dump/) >> $@.dump
2299*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL5INTERFACE) -f $(SHL5FILTERFILE) -m $@
2300*b1cdbd2cSJim Jagielski
2301*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL5FILTERFILE)"!=""
2302*b1cdbd2cSJim JagielskiUSE_SHL5VERSIONMAP=$(MISC)/$(SHL5TARGET).vmap
2303*b1cdbd2cSJim Jagielski$(USE_SHL5VERSIONMAP) :
2304*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)" == "TRUE"
2305*b1cdbd2cSJim Jagielski	@echo -----------------------------
2306*b1cdbd2cSJim Jagielski	@echo SHL5FILTERFILE not set!
2307*b1cdbd2cSJim Jagielski	@echo -----------------------------
2308*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
2309*b1cdbd2cSJim Jagielski	@echo dummy file to keep the dependencies for later use.
2310*b1cdbd2cSJim Jagielski.ELSE
2311*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
2312*b1cdbd2cSJim Jagielski.ENDIF
2313*b1cdbd2cSJim Jagielski#	force_dmake_to_error
2314*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL5FILTERFILE)"!=""
2315*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_SHL5VERSIONMAP)"!=""
2316*b1cdbd2cSJim Jagielski
2317*b1cdbd2cSJim Jagielski#and now for the plain non-generic way...
2318*b1cdbd2cSJim Jagielski.IF "$(SHL5VERSIONMAP)"!=""
2319*b1cdbd2cSJim JagielskiUSE_SHL5VERSIONMAP=$(MISC)/$(SHL5VERSIONMAP:b)_$(SHL5TARGET)$(SHL5VERSIONMAP:e)
2320*b1cdbd2cSJim JagielskiSHL5VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL5VERSIONMAP)
2321*b1cdbd2cSJim Jagielski
2322*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
2323*b1cdbd2cSJim Jagielski$(USE_SHL5VERSIONMAP): $(SHL5OBJS) $(SHL5LIBS)
2324*b1cdbd2cSJim Jagielski.ENDIF
2325*b1cdbd2cSJim Jagielski
2326*b1cdbd2cSJim Jagielski# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@
2327*b1cdbd2cSJim Jagielski# even if the $(AWK) part fails:
2328*b1cdbd2cSJim Jagielski$(USE_SHL5VERSIONMAP) .ERRREMOVE: $(SHL5VERSIONMAP)
2329*b1cdbd2cSJim Jagielski	@@-$(RM) -f $@
2330*b1cdbd2cSJim Jagielski# The following files will only be generated and needed on Mac OS X as temporary files
2331*b1cdbd2cSJim Jagielski# in order to generate exported symbols list out of Linux/Solaris map files
2332*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
2333*b1cdbd2cSJim Jagielski	@-$(RM) -f $@.symregexp >& $(NULLDEV)
2334*b1cdbd2cSJim Jagielski	@-$(RM) -f $@.expsymlist >& $(NULLDEV)
2335*b1cdbd2cSJim Jagielski.ENDIF
2336*b1cdbd2cSJim Jagielski# Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what
2337*b1cdbd2cSJim Jagielski# happens if somebody will change it in the future
2338*b1cdbd2cSJim Jagielski.IF "$(COMID)"=="gcc3"
2339*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL5VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@
2340*b1cdbd2cSJim Jagielski.ELIF "$(COMNAME)"=="sunpro5"
2341*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL5VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@
2342*b1cdbd2cSJim Jagielski.ELSE           # "$(COMID)"=="gcc3"
2343*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL5VERSIONMAP) > $@
2344*b1cdbd2cSJim Jagielski.ENDIF          # "$(COMID)"=="gcc3"
2345*b1cdbd2cSJim Jagielski	@chmod a+w $@
2346*b1cdbd2cSJim Jagielski# Mac OS X post-processing generate an exported symbols list from the generated map file
2347*b1cdbd2cSJim Jagielski# for details on exported symbols list see man ld on Mac OS X
2348*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
2349*b1cdbd2cSJim Jagielski	@-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols
2350*b1cdbd2cSJim Jagielski	@-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp
2351*b1cdbd2cSJim Jagielski# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
2352*b1cdbd2cSJim Jagielski# Extract RTTI symbols from all the objects that will be used to build a shared library
2353*b1cdbd2cSJim Jagielski.IF "$(SHL5OBJS)"!=""
2354*b1cdbd2cSJim Jagielski	-echo $(foreach,i,$(SHL5OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
2355*b1cdbd2cSJim Jagielski.ENDIF
2356*b1cdbd2cSJim Jagielski.IF "$(SHL5LIBS)"!=""
2357*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL5LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
2358*b1cdbd2cSJim Jagielski.ENDIF
2359*b1cdbd2cSJim Jagielski# overwrite the map file generate into the local output tree with the generated
2360*b1cdbd2cSJim Jagielski# exported symbols list
2361*b1cdbd2cSJim Jagielski	cp $@.exported-symbols $@
2362*b1cdbd2cSJim Jagielski.ENDIF # .IF "$(OS)"=="MACOSX"
2363*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL5VERSIONMAP)"!=""
2364*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_SHL5VERSIONMAP)"!=""
2365*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" != "UNX"
2366*b1cdbd2cSJim Jagielski
2367*b1cdbd2cSJim Jagielski.IF "$(UNIXVERSIONNAMES)"!=""
2368*b1cdbd2cSJim Jagielski.IF "$(OS)"!="MACOSX"
2369*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="UNX"
2370*b1cdbd2cSJim JagielskiSHL5SONAME=\"$(SONAME_SWITCH)$(SHL5TARGETN:f)\"
2371*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)"!="UNX"
2372*b1cdbd2cSJim Jagielski.ENDIF			# "$(OS)"!="MACOSX"
2373*b1cdbd2cSJim Jagielski.ENDIF			# "$(UNIXVERSIONNAMES)"!=""
2374*b1cdbd2cSJim Jagielski
2375*b1cdbd2cSJim Jagielski.IF "$(SHL5RES)"!=""
2376*b1cdbd2cSJim JagielskiSHL5ALLRES+=$(SHL5RES)
2377*b1cdbd2cSJim JagielskiSHL5LINKRES*=$(MISC)/$(SHL5TARGET).res
2378*b1cdbd2cSJim JagielskiSHL5LINKRESO*=$(MISC)/$(SHL5TARGET)_res.o
2379*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL5RES)"!=""
2380*b1cdbd2cSJim Jagielski
2381*b1cdbd2cSJim Jagielski.IF "$(SHL5DEFAULTRES)$(use_shl_versions)"!=""
2382*b1cdbd2cSJim JagielskiSHL5DEFAULTRES*=$(MISC)/$(SHL5TARGET)_def.res
2383*b1cdbd2cSJim JagielskiSHL5ALLRES+=$(SHL5DEFAULTRES)
2384*b1cdbd2cSJim JagielskiSHL5LINKRES*=$(MISC)/$(SHL5TARGET).res
2385*b1cdbd2cSJim JagielskiSHL5LINKRESO*=$(MISC)/$(SHL5TARGET)_res.o
2386*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL5DEFAULTRES)$(use_shl_versions)"!=""
2387*b1cdbd2cSJim Jagielski
2388*b1cdbd2cSJim Jagielski#.IF "$(SHL5TARGETN)"!=""
2389*b1cdbd2cSJim Jagielski
2390*b1cdbd2cSJim Jagielski.IF "$(linkinc)"!=""
2391*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
2392*b1cdbd2cSJim Jagielski.IF "$(SHL5LIBS)"!=""
2393*b1cdbd2cSJim Jagielski$(MISC)/$(SHL5TARGET)_linkinc.ls .PHONY:
2394*b1cdbd2cSJim Jagielski	@@-$(RM) $@
2395*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL5LIBS) $(i:s/.lib/.lin/)) >> $@
2396*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL5LIBS)"!=""
2397*b1cdbd2cSJim Jagielski.ENDIF
2398*b1cdbd2cSJim Jagielski
2399*b1cdbd2cSJim JagielskiLINKINCTARGETS+=$(MISC)/$(SHL5TARGETN:b)_linkinc.ls
2400*b1cdbd2cSJim Jagielski$(SHL5TARGETN) : $(LINKINCTARGETS)
2401*b1cdbd2cSJim Jagielski
2402*b1cdbd2cSJim Jagielski.ELSE
2403*b1cdbd2cSJim Jagielski.IF "$(SHL5USE_EXPORTS)"=="name"
2404*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
2405*b1cdbd2cSJim Jagielski.IF "$(COM)"!="GCC"
2406*b1cdbd2cSJim Jagielski.IF "$(SHL5LIBS)"!=""
2407*b1cdbd2cSJim JagielskiSHL5LINKLIST=$(MISC)/$(SHL5TARGET)_link.lst
2408*b1cdbd2cSJim JagielskiSHL5LINKLISTPARAM=@$(SHL5LINKLIST)
2409*b1cdbd2cSJim Jagielski$(SHL5LINKLIST) : $(SHL5LIBS)
2410*b1cdbd2cSJim Jagielski    @@-$(RM) $@
2411*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL5LIBS) $(i:s/.lib/.lin/)) >> $@
2412*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL5LIBS)"!=""
2413*b1cdbd2cSJim Jagielski.ENDIF          # "$(COM)"!="GCC"
2414*b1cdbd2cSJim Jagielski.ENDIF
2415*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL5USE_EXPORTS)"=="name"
2416*b1cdbd2cSJim Jagielski
2417*b1cdbd2cSJim Jagielski$(MISC)/%linkinc.ls:
2418*b1cdbd2cSJim Jagielski	@echo . > $@
2419*b1cdbd2cSJim Jagielski.ENDIF          # "$(linkinc)"!=""
2420*b1cdbd2cSJim Jagielski
2421*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "OS2"
2422*b1cdbd2cSJim Jagielski#21/02/2006 YD dll names must be 8.3, invoke fix script
2423*b1cdbd2cSJim Jagielski#check osl/os2/module.c/osl_loadModule()
2424*b1cdbd2cSJim JagielskiSHL5TARGET8=$(shell @fix_shl.cmd $(SHL5TARGET))
2425*b1cdbd2cSJim Jagielski.ENDIF
2426*b1cdbd2cSJim Jagielski
2427*b1cdbd2cSJim Jagielski
2428*b1cdbd2cSJim Jagielski$(SHL5TARGETN) : \
2429*b1cdbd2cSJim Jagielski					$(SHL5OBJS)\
2430*b1cdbd2cSJim Jagielski					$(SHL5LIBS)\
2431*b1cdbd2cSJim Jagielski					$(USE_5IMPLIB_DEPS)\
2432*b1cdbd2cSJim Jagielski					$(USE_SHL5DEF)\
2433*b1cdbd2cSJim Jagielski					$(USE_SHL5VERSIONMAP)\
2434*b1cdbd2cSJim Jagielski					$(SHL5RES)\
2435*b1cdbd2cSJim Jagielski					$(SHL5DEPN) \
2436*b1cdbd2cSJim Jagielski					$(SHL5LINKLIST)
2437*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f)
2438*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT"
2439*b1cdbd2cSJim Jagielski.IF "$(SHL5DEFAULTRES)"!=""
2440*b1cdbd2cSJim Jagielski	@@-$(RM) $(MISC)/$(SHL5DEFAULTRES:b).rc
2441*b1cdbd2cSJim Jagielski.IF "$(SHL5ICON)" != ""
2442*b1cdbd2cSJim Jagielski	@echo 1 ICON $(SHL5ICON) >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2443*b1cdbd2cSJim Jagielski.ENDIF
2444*b1cdbd2cSJim Jagielski.IF "$(use_shl_versions)" != ""
2445*b1cdbd2cSJim Jagielski.IF "$(SHL5ADD_VERINFO)"!=""
2446*b1cdbd2cSJim Jagielski	@echo $(EMQ)#include $(EMQ)"$(SHL5ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2447*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL5ADD_VERINFO)"!=""
2448*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2449*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2450*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2451*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL5ADD_VERINFO)"!=""
2452*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2453*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ORG_NAME	$(SHL5TARGET)$(DLLPOST) >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2454*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define INTERNAL_NAME $(SHL5TARGET:b) >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2455*b1cdbd2cSJim Jagielski	@echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2456*b1cdbd2cSJim Jagielski.ENDIF			# "$(use_shl_versions)" != ""
2457*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL5DEFAULTRES:b).rc
2458*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL5DEFAULTRES)"!=""
2459*b1cdbd2cSJim Jagielski.IF "$(SHL5ALLRES)"!=""
2460*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(TYPE) $(SHL5ALLRES) > $(SHL5LINKRES)
2461*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"
2462*b1cdbd2cSJim Jagielski	windres $(SHL5LINKRES) $(SHL5LINKRESO)
2463*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
2464*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL5ALLRES)"!=""
2465*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"	# always have to call dlltool explicitly as ld cannot handle # comment in .def
2466*b1cdbd2cSJim Jagielski	@echo dlltool --dllname $(SHL5TARGET)$(DLLPOST) \
2467*b1cdbd2cSJim Jagielski		--kill-at \\ > $(MISC)/$(TARGET).$(@:b)_5.cmd
2468*b1cdbd2cSJim Jagielski	@noop $(assign ALL5OBJLIST:=$(STDOBJ) $(SHL5OBJS) $(SHL5LINKRESO) $(shell $(TYPE) /dev/null $(SHL5LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g))
2469*b1cdbd2cSJim Jagielski.IF "$(DEFLIB5NAME)"!=""	# do not have to include objs
2470*b1cdbd2cSJim Jagielski	@noop $(assign DEF5OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB5NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g))
2471*b1cdbd2cSJim Jagielski	@noop $(foreach,i,$(DEF5OBJLIST) $(assign ALL5OBJLIST:=$(ALL5OBJLIST:s?$i??)))
2472*b1cdbd2cSJim Jagielski.ENDIF			# "$(DEFLIB5NAME)"!=""
2473*b1cdbd2cSJim Jagielski	@echo	--output-exp $(MISC)/$(@:b)_exp.o \\ >> $(MISC)/$(TARGET).$(@:b)_5.cmd
2474*b1cdbd2cSJim Jagielski.IF "$(SHL5DEF)"!=""
2475*b1cdbd2cSJim Jagielski	@echo	--input-def $(SHL5DEF) \\ >> $(MISC)/$(TARGET).$(@:b)_5.cmd
2476*b1cdbd2cSJim Jagielski.ELSE
2477*b1cdbd2cSJim Jagielski	@echo	$(SHL5VERSIONOBJ) $(SHL5DESCRIPTIONOBJ) \\ >> $(MISC)/$(TARGET).$(@:b)_5.cmd
2478*b1cdbd2cSJim Jagielski.ENDIF
2479*b1cdbd2cSJim Jagielski	@echo	$(ALL5OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_5.cmd
2480*b1cdbd2cSJim Jagielski	@echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \
2481*b1cdbd2cSJim Jagielski		$(STDOBJ) $(SHL5VERSIONOBJ) $(SHL5DESCRIPTIONOBJ) $(SHL5OBJS) $(SHL5LINKRESO) \
2482*b1cdbd2cSJim Jagielski		`$(TYPE) /dev/null $(SHL5LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
2483*b1cdbd2cSJim Jagielski		-Wl,--exclude-libs,ALL,--start-group $(SHL5STDLIBS) -Wl,--end-group \
2484*b1cdbd2cSJim Jagielski		$(SHL5STDSHL) $(STDSHL5) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \
2485*b1cdbd2cSJim Jagielski		-Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_5.cmd
2486*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
2487*b1cdbd2cSJim Jagielski	@$(TYPE)  $(MISC)/$(TARGET).$(@:b)_5.cmd
2488*b1cdbd2cSJim Jagielski  .ENDIF
2489*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_5.cmd
2490*b1cdbd2cSJim Jagielski.ELSE
2491*b1cdbd2cSJim Jagielski.IF "$(linkinc)"==""
2492*b1cdbd2cSJim Jagielski.IF "$(SHL5USE_EXPORTS)"!="name"
2493*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
2494*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL5LINKER) @$(mktmp \
2495*b1cdbd2cSJim Jagielski		$(SHL5LINKFLAGS) \
2496*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) \
2497*b1cdbd2cSJim Jagielski		$(SHL5STACK) $(SHL5BASEX)	\
2498*b1cdbd2cSJim Jagielski		-out:$@ \
2499*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:b).map \
2500*b1cdbd2cSJim Jagielski		-def:$(SHL5DEF) \
2501*b1cdbd2cSJim Jagielski		$(USE_5IMPLIB) \
2502*b1cdbd2cSJim Jagielski		$(STDOBJ) \
2503*b1cdbd2cSJim Jagielski		$(SHL5VERSIONOBJ) $(SHL5OBJS) \
2504*b1cdbd2cSJim Jagielski		$(SHL5LIBS) \
2505*b1cdbd2cSJim Jagielski		$(SHL5STDLIBS) \
2506*b1cdbd2cSJim Jagielski		$(SHL5STDSHL) $(STDSHL5) \
2507*b1cdbd2cSJim Jagielski		$(SHL5LINKRES) \
2508*b1cdbd2cSJim Jagielski	)
2509*b1cdbd2cSJim Jagielski# double check if target was really written... still making sense?
2510*b1cdbd2cSJim Jagielski    @@$(LS) $@
2511*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
2512*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
2513*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
2514*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
2515*b1cdbd2cSJim Jagielski.ELSE
2516*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
2517*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
2518*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
2519*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
2520*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)"!=""
2521*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL5LINKER) @$(mktmp	$(SHL5LINKFLAGS)			\
2522*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL5BASEX)		\
2523*b1cdbd2cSJim Jagielski		$(SHL5STACK) -out:$(SHL5TARGETN)	\
2524*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:B).map				\
2525*b1cdbd2cSJim Jagielski		$(LB)/$(SHL5IMPLIB).exp				\
2526*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
2527*b1cdbd2cSJim Jagielski		$(SHL5OBJS) $(SHL5VERSIONOBJ) \
2528*b1cdbd2cSJim Jagielski		$(SHL5LIBS)                         \
2529*b1cdbd2cSJim Jagielski		$(SHL5STDLIBS)                      \
2530*b1cdbd2cSJim Jagielski		$(SHL5STDSHL) $(STDSHL5)                           \
2531*b1cdbd2cSJim Jagielski		$(SHL5LINKRES) \
2532*b1cdbd2cSJim Jagielski	)
2533*b1cdbd2cSJim Jagielski# double check if target was really written... still making sense?
2534*b1cdbd2cSJim Jagielski    @@$(LS) $@
2535*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
2536*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
2537*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
2538*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
2539*b1cdbd2cSJim Jagielski.ELSE
2540*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
2541*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
2542*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
2543*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
2544*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"!=""
2545*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL5USE_EXPORTS)"!="name"
2546*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL5LINKER) @$(mktmp	$(SHL5LINKFLAGS)			\
2547*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL5BASEX)		\
2548*b1cdbd2cSJim Jagielski		$(SHL5STACK) -out:$(SHL5TARGETN)	\
2549*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:B).map				\
2550*b1cdbd2cSJim Jagielski		$(USE_5IMPLIB) \
2551*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
2552*b1cdbd2cSJim Jagielski		$(SHL5OBJS) $(SHL5VERSIONOBJ))   \
2553*b1cdbd2cSJim Jagielski		$(SHL5LINKLISTPARAM) \
2554*b1cdbd2cSJim Jagielski		@$(mktmp $(SHL5STDLIBS)                      \
2555*b1cdbd2cSJim Jagielski		$(SHL5STDSHL) $(STDSHL5)                           \
2556*b1cdbd2cSJim Jagielski		$(SHL5LINKRES) \
2557*b1cdbd2cSJim Jagielski	)
2558*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
2559*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
2560*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
2561*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
2562*b1cdbd2cSJim Jagielski.ELSE
2563*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
2564*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
2565*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
2566*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
2567*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL5USE_EXPORTS)"!="name"
2568*b1cdbd2cSJim Jagielski.ELSE			# "$(linkinc)"==""
2569*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL5TARGET).lnk
2570*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL5TARGET).lst
2571*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(TYPE) $(mktmp \
2572*b1cdbd2cSJim Jagielski		$(SHL5LINKFLAGS) \
2573*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL5BASEX) \
2574*b1cdbd2cSJim Jagielski		$(SHL5STACK) $(MAPFILE) \
2575*b1cdbd2cSJim Jagielski		-out:$@ \
2576*b1cdbd2cSJim Jagielski		$(LB)/$(SHL5IMPLIB).exp \
2577*b1cdbd2cSJim Jagielski		$(STDOBJ) \
2578*b1cdbd2cSJim Jagielski		$(SHL5OBJS) \
2579*b1cdbd2cSJim Jagielski		$(SHL5STDLIBS) \
2580*b1cdbd2cSJim Jagielski		$(SHL5STDSHL) $(STDSHL5) \
2581*b1cdbd2cSJim Jagielski		$(SHL5LINKRES) \
2582*b1cdbd2cSJim Jagielski		) >> $(MISC)/$(SHL5TARGET).lnk
2583*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL5TARGETN:b)_linkinc.ls  >> $(MISC)/$(SHL5TARGET).lnk
2584*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(SHL5LINKER) @$(MISC)/$(SHL5TARGET).lnk
2585*b1cdbd2cSJim Jagielski		@echo linking $@.manifest ...
2586*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
2587*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
2588*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
2589*b1cdbd2cSJim Jagielski.ELSE
2590*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
2591*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
2592*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
2593*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
2594*b1cdbd2cSJim Jagielski.ENDIF			# "$(linkinc)"==""
2595*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
2596*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "WNT"
2597*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="UNX"
2598*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
2599*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(@:b).list
2600*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(TARGET).$(@:b)_5.cmd
2601*b1cdbd2cSJim Jagielski	@echo $(STDSLO) $(SHL5OBJS:s/.obj/.o/) \
2602*b1cdbd2cSJim Jagielski	$(SHL5VERSIONOBJ) \
2603*b1cdbd2cSJim Jagielski	`cat /dev/null $(SHL5LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list
2604*b1cdbd2cSJim Jagielski	@echo -n $(SHL5LINKER) $(SHL5LINKFLAGS) $(SHL5VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \
2605*b1cdbd2cSJim Jagielski	$(SHL5STDLIBS) $(SHL5ARCHIVES) $(SHL5STDSHL) $(STDSHL5) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_5.cmd
2606*b1cdbd2cSJim Jagielski    @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \
2607*b1cdbd2cSJim Jagielski        `cat $(MISC)/$(TARGET).$(@:b)_5.cmd` \
2608*b1cdbd2cSJim Jagielski        >> $(MISC)/$(TARGET).$(@:b)_5.cmd
2609*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
2610*b1cdbd2cSJim Jagielski	@cat $(MISC)/$(TARGET).$(@:b)_5.cmd
2611*b1cdbd2cSJim Jagielski  .ENDIF
2612*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_5.cmd
2613*b1cdbd2cSJim Jagielski    @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \
2614*b1cdbd2cSJim Jagielski        shl $(SHL5RPATH) $@
2615*b1cdbd2cSJim Jagielski.IF "$(SHL5CREATEJNILIB)"!=""
2616*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f).jnilib
2617*b1cdbd2cSJim Jagielski	@macosx-create-bundle $@
2618*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL5CREATEJNILIB)"!=""
2619*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
2620*b1cdbd2cSJim Jagielski.IF "$(SHL5NOCHECK)"==""
2621*b1cdbd2cSJim Jagielski	$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS5) $(SHL5TARGETN)
2622*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL5NOCHECK)"!=""
2623*b1cdbd2cSJim Jagielski.ENDIF
2624*b1cdbd2cSJim Jagielski.ELSE			# "$(OS)"=="MACOSX"
2625*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(TARGET).$(@:b)_5.cmd
2626*b1cdbd2cSJim Jagielski	@echo $(SHL5LINKER) $(SHL5LINKFLAGS) $(SHL5SONAME) $(LINKFLAGSSHL) $(SHL5VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL5OBJS:s/.obj/.o/) \
2627*b1cdbd2cSJim Jagielski	$(SHL5VERSIONOBJ) -o $@ \
2628*b1cdbd2cSJim Jagielski	`cat /dev/null $(SHL5LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
2629*b1cdbd2cSJim Jagielski	$(SHL5STDLIBS) $(SHL5ARCHIVES) $(SHL5STDSHL) $(STDSHL5) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_5.cmd
2630*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
2631*b1cdbd2cSJim Jagielski	@cat $(MISC)/$(TARGET).$(@:b)_5.cmd
2632*b1cdbd2cSJim Jagielski  .ENDIF
2633*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_5.cmd
2634*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
2635*b1cdbd2cSJim Jagielski.IF "$(SHL5NOCHECK)"==""
2636*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)-$(RM) $(SHL5TARGETN:d)check_$(SHL5TARGETN:f)
2637*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RENAME) $(SHL5TARGETN) $(SHL5TARGETN:d)check_$(SHL5TARGETN:f)
2638*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)"=="TRUE"
2639*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS5) $(SHL5TARGETN:d)check_$(SHL5TARGETN:f)
2640*b1cdbd2cSJim Jagielski.ELSE
2641*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS5) -- -s $(SHL5TARGETN:d)check_$(SHL5TARGETN:f)
2642*b1cdbd2cSJim Jagielski.ENDIF
2643*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL5NOCHECK)"!=""
2644*b1cdbd2cSJim Jagielski.ENDIF			# "$(UPDATER)"=="YES"
2645*b1cdbd2cSJim Jagielski.ENDIF			# "$(OS)"=="MACOSX"
2646*b1cdbd2cSJim Jagielski.IF "$(UNIXVERSIONNAMES)"!=""
2647*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RM) $(LB)/$(SHL5TARGETN:b)
2648*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)cd $(LB) && ln -s $(SHL5TARGETN:f) $(SHL5TARGETN:b)
2649*b1cdbd2cSJim Jagielski.ENDIF			# "$(UNIXVERSIONNAMES)"!=""
2650*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)" == "TRUE"
2651*b1cdbd2cSJim Jagielski	@ls -l $@
2652*b1cdbd2cSJim Jagielski.ENDIF
2653*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "UNX"
2654*b1cdbd2cSJim Jagielski
2655*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "OS2"
2656*b1cdbd2cSJim Jagielski
2657*b1cdbd2cSJim Jagielski.IF "$(SHL5DEFAULTRES)"!=""
2658*b1cdbd2cSJim Jagielski	@+-$(RM) $(MISC)/$(SHL5DEFAULTRES:b).rc > $(NULLDEV)
2659*b1cdbd2cSJim Jagielski.IF "$(SHL5ICON)" != ""
2660*b1cdbd2cSJim Jagielski	@-+echo 1 ICON $(SHL5ICON) >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2661*b1cdbd2cSJim Jagielski.ENDIF
2662*b1cdbd2cSJim Jagielski.IF "$(use_shl_versions)" != ""
2663*b1cdbd2cSJim Jagielski.IF "$(SHL5ADD_VERINFO)"!=""
2664*b1cdbd2cSJim Jagielski	@-+echo $(EMQ)#include $(EMQ)"$(SHL5ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2665*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL5ADD_VERINFO)"!=""
2666*b1cdbd2cSJim Jagielski	@-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2667*b1cdbd2cSJim Jagielski#	@-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL5DEFAULTRES:b).rc
2668*b1cdbd2cSJim Jagielski.ENDIF			# "$(use_shl_versions)" != ""
2669*b1cdbd2cSJim Jagielski# YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR)
2670*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL5DEFAULTRES:b).rc
2671*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL5DEFAULTRES)"!=""
2672*b1cdbd2cSJim Jagielski
2673*b1cdbd2cSJim Jagielski.IF "$(SHL5ALLRES)"!=""
2674*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(TYPE) $(SHL5ALLRES) > $(SHL5LINKRES)
2675*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL5ALLRES)"!=""
2676*b1cdbd2cSJim Jagielski
2677*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
2678*b1cdbd2cSJim Jagielski
2679*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL5LINKER) $(SHL5LINKFLAGS) $(LINKFLAGSSHL) -o $@ \
2680*b1cdbd2cSJim Jagielski		$(SHL5DEF) \
2681*b1cdbd2cSJim Jagielski		$(STDOBJ) \
2682*b1cdbd2cSJim Jagielski		-L$(LB) \
2683*b1cdbd2cSJim Jagielski		-L$(SOLARVERSION)/$(INPATH)/lib \
2684*b1cdbd2cSJim Jagielski		$(SHL5OBJS) $(SHL5VERSIONOBJ) \
2685*b1cdbd2cSJim Jagielski		$(SHL5LIBS) \
2686*b1cdbd2cSJim Jagielski		$(SHL5LINKRES) \
2687*b1cdbd2cSJim Jagielski		$(SHL5STDLIBS) \
2688*b1cdbd2cSJim Jagielski		$(SHL5STDSHL) $(STDSHL5)
2689*b1cdbd2cSJim Jagielski
2690*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)"!=""
2691*b1cdbd2cSJim Jagielski
2692*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL5LINKER) $(SHL5LINKFLAGS)			\
2693*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL5BASEX)		\
2694*b1cdbd2cSJim Jagielski		$(SHL5STACK) -o $(SHL5TARGETN)	\
2695*b1cdbd2cSJim Jagielski		$(SHL5DEF) \
2696*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
2697*b1cdbd2cSJim Jagielski		-L$(LB) \
2698*b1cdbd2cSJim Jagielski		-L$(SOLARVERSION)/$(INPATH)/lib \
2699*b1cdbd2cSJim Jagielski		$(SHL5OBJS) $(SHL5VERSIONOBJ) \
2700*b1cdbd2cSJim Jagielski		$(SHL5LIBS) \
2701*b1cdbd2cSJim Jagielski		$(SHL5LINKRES) \
2702*b1cdbd2cSJim Jagielski		$(SHL5STDLIBS) \
2703*b1cdbd2cSJim Jagielski		$(SHL5STDSHL) $(STDSHL5)
2704*b1cdbd2cSJim Jagielski
2705*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"!=""
2706*b1cdbd2cSJim Jagielski
2707*b1cdbd2cSJim Jagielski.IF "$(SHL5USE_EXPORTS)"=="name"
2708*b1cdbd2cSJim Jagielski#03/11/2012  if 'name' is used, export from DLL file (only names, no ordinals)
2709*b1cdbd2cSJim Jagielski	@echo Build import library from DLL file.
2710*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(LB)/$(SHL5TARGETN:b).lib $@
2711*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL5USE_EXPORTS)"==""
2712*b1cdbd2cSJim Jagielski
2713*b1cdbd2cSJim Jagielski.IF "$(SHL5TARGET8)" != "$(SHL5TARGET)"
2714*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL5TARGET8).dll
2715*b1cdbd2cSJim Jagielski.ENDIF
2716*b1cdbd2cSJim Jagielski
2717*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "OS2"
2718*b1cdbd2cSJim Jagielski
2719*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL5TARGETN)"!=""
2720*b1cdbd2cSJim Jagielski
2721*b1cdbd2cSJim Jagielski# unroll begin
2722*b1cdbd2cSJim Jagielski
2723*b1cdbd2cSJim Jagielski.IF "$(SHL6TARGETN)"!=""
2724*b1cdbd2cSJim Jagielski
2725*b1cdbd2cSJim Jagielski.IF "$(OS)"=="AIX"
2726*b1cdbd2cSJim JagielskiSHL6STDLIBS=
2727*b1cdbd2cSJim Jagielski.ENDIF
2728*b1cdbd2cSJim Jagielski
2729*b1cdbd2cSJim Jagielski.IF "$(SHLLINKARCONLY)" != ""
2730*b1cdbd2cSJim JagielskiSHL6STDLIBS=
2731*b1cdbd2cSJim JagielskiSTDSHL=
2732*b1cdbd2cSJim Jagielski.ELSE
2733*b1cdbd2cSJim JagielskiSHL6ARCHIVES=
2734*b1cdbd2cSJim Jagielski.ENDIF
2735*b1cdbd2cSJim Jagielski
2736*b1cdbd2cSJim Jagielski# decide how to link
2737*b1cdbd2cSJim Jagielski.IF "$(SHL6CODETYPE)"=="C"
2738*b1cdbd2cSJim JagielskiSHL6LINKER=$(LINKC)
2739*b1cdbd2cSJim JagielskiSHL6STDSHL=$(subst,CPPRUNTIME, $(STDSHL))
2740*b1cdbd2cSJim JagielskiSHL6LINKFLAGS+=$(LINKCFLAGS)
2741*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL6CODETYPE)"=="C"
2742*b1cdbd2cSJim JagielskiSHL6LINKER=$(LINK)
2743*b1cdbd2cSJim JagielskiSHL6STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL))
2744*b1cdbd2cSJim JagielskiSHL6LINKFLAGS+=$(LINKFLAGS)
2745*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL6CODETYPE)"=="C"
2746*b1cdbd2cSJim Jagielski
2747*b1cdbd2cSJim JagielskiSHL6RPATH*=OOO
2748*b1cdbd2cSJim JagielskiLINKFLAGSRUNPATH_$(SHL6RPATH)*=/ERROR:/Bad_SHL6RPATH_value
2749*b1cdbd2cSJim JagielskiSHL6LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL6RPATH))
2750*b1cdbd2cSJim Jagielski
2751*b1cdbd2cSJim Jagielski.IF "$(SHL6USE_EXPORTS)"=="" || "$(GUI)"=="OS2"
2752*b1cdbd2cSJim JagielskiSHL6DEF*=$(MISC)/$(SHL6TARGET).def
2753*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL6USE_EXPORTS)"==""
2754*b1cdbd2cSJim Jagielski
2755*b1cdbd2cSJim JagielskiEXTRALIBPATHS6=$(EXTRALIBPATHS)
2756*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
2757*b1cdbd2cSJim Jagielski.IF "$(SHL6NOCHECK)"==""
2758*b1cdbd2cSJim Jagielski.IF "$(SOLAR_STLLIBPATH)"!=""
2759*b1cdbd2cSJim JagielskiEXTRALIBPATHS6+=-L$(SOLAR_STLLIBPATH)
2760*b1cdbd2cSJim Jagielski.ENDIF
2761*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL6NOCHECK)"!=""
2762*b1cdbd2cSJim Jagielski.ENDIF
2763*b1cdbd2cSJim Jagielski#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2764*b1cdbd2cSJim Jagielski#+++++++++++    version object      ++++++++++++++++++++++++++++++++++++++++
2765*b1cdbd2cSJim Jagielski#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2766*b1cdbd2cSJim Jagielski
2767*b1cdbd2cSJim Jagielski.IF "$(L10N_framework)"==""
2768*b1cdbd2cSJim Jagielski.IF "$(VERSIONOBJ)"!=""
2769*b1cdbd2cSJim JagielskiSHL6VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL6TARGET))}$(VERSIONOBJ:f)
2770*b1cdbd2cSJim JagielskiUSE_VERSIONH:=$(INCCOM)/$(SHL6VERSIONOBJ:b).h
2771*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "UNX"
2772*b1cdbd2cSJim JagielskiSHL6VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL6TARGET))}$(VERSIONOBJ:f:s/.o/.obj/)
2773*b1cdbd2cSJim Jagielski.ELSE           # "$(GUI)" == "UNX"
2774*b1cdbd2cSJim JagielskiSHL6VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL6TARGET))}$(VERSIONOBJ:f)
2775*b1cdbd2cSJim Jagielski.ENDIF          # "$(GUI)" == "UNX"
2776*b1cdbd2cSJim Jagielski$(MISC)/$(SHL6VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL6VERSIONOBJ:b).h
2777*b1cdbd2cSJim Jagielski#    $(COPY) $(SOLARENV)/src/version.c $@
2778*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL6VERSIONOBJ:b).h/ > $@
2779*b1cdbd2cSJim Jagielski
2780*b1cdbd2cSJim Jagielski.INIT : $(SHL6VERSIONOBJDEP)
2781*b1cdbd2cSJim Jagielski.ENDIF			# "$(VERSIONOBJ)"!=""
2782*b1cdbd2cSJim Jagielski.ENDIF
2783*b1cdbd2cSJim Jagielski
2784*b1cdbd2cSJim Jagielski.IF "$(GUI)" != "UNX"
2785*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
2786*b1cdbd2cSJim Jagielski.IF "$(SHL6IMPLIB)" == ""
2787*b1cdbd2cSJim JagielskiSHL6IMPLIB=i$(TARGET)_t6
2788*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL6IMPLIB)" == ""
2789*b1cdbd2cSJim Jagielski.IF "$(COM)" != "GCC"
2790*b1cdbd2cSJim JagielskiUSE_6IMPLIB=-implib:$(LB)/$(SHL6IMPLIB).lib
2791*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)" != "GCC"
2792*b1cdbd2cSJim JagielskiSHL6IMPLIBN=$(LB)/$(SHL6IMPLIB).lib
2793*b1cdbd2cSJim JagielskiALLTAR : $(SHL6IMPLIBN)
2794*b1cdbd2cSJim Jagielski
2795*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"==""
2796*b1cdbd2cSJim JagielskiUSE_6IMPLIB_DEPS=$(LB)/$(SHL6IMPLIB).lib
2797*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"==""
2798*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
2799*b1cdbd2cSJim JagielskiUSE_SHL6DEF=$(SHL6DEF)
2800*b1cdbd2cSJim Jagielski.ELSE			# "$(GUI)" != "UNX"
2801*b1cdbd2cSJim JagielskiUSE_SHL6DEF=
2802*b1cdbd2cSJim JagielskiSHL6DEPN+:=$(SHL6DEPNU)
2803*b1cdbd2cSJim Jagielski
2804*b1cdbd2cSJim Jagielski.IF "$(SHL6VERSIONMAP)"==""
2805*b1cdbd2cSJim Jagielski# to activate vmaps remove "#"
2806*b1cdbd2cSJim JagielskiUSE_SHL6VERSIONMAP=$(MISC)/$(SHL6TARGET).vmap
2807*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL6VERSIONMAP)"==""
2808*b1cdbd2cSJim Jagielski
2809*b1cdbd2cSJim Jagielski.IF "$(USE_SHL6VERSIONMAP)"!=""
2810*b1cdbd2cSJim Jagielski
2811*b1cdbd2cSJim Jagielski.IF "$(SHL6FILTERFILE)"!=""
2812*b1cdbd2cSJim Jagielski.IF "$(SHL6VERSIONMAP)"!=""
2813*b1cdbd2cSJim Jagielski#eine von beiden ist zuviel
2814*b1cdbd2cSJim JagielskiUSE_SHL6VERSIONMAP=$(MISC)/$(SHL6TARGET).vmap
2815*b1cdbd2cSJim Jagielski$(USE_SHL6VERSIONMAP) .PHONY:
2816*b1cdbd2cSJim Jagielski	@echo -----------------------------
2817*b1cdbd2cSJim Jagielski	@echo you should only use versionmap OR exportfile
2818*b1cdbd2cSJim Jagielski	@echo -----------------------------
2819*b1cdbd2cSJim Jagielski#	force_dmake_to_error
2820*b1cdbd2cSJim Jagielski
2821*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL6VERSIONMAP)"!=""
2822*b1cdbd2cSJim Jagielski
2823*b1cdbd2cSJim JagielskiSHL6VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL6VERSIONMAP)
2824*b1cdbd2cSJim Jagielski
2825*b1cdbd2cSJim Jagielski$(USE_SHL6VERSIONMAP): \
2826*b1cdbd2cSJim Jagielski					$(SHL6OBJS)\
2827*b1cdbd2cSJim Jagielski					$(SHL6LIBS)\
2828*b1cdbd2cSJim Jagielski					$(SHL6FILTERFILE)
2829*b1cdbd2cSJim Jagielski	@$(RM) $@.dump
2830*b1cdbd2cSJim Jagielski.IF "$(SHL6OBJS)"!=""
2831*b1cdbd2cSJim Jagielski# dump remaining objects on the fly
2832*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
2833*b1cdbd2cSJim Jagielski	@-nm $(SHL6OBJS:s/.obj/.o/) > $@.dump
2834*b1cdbd2cSJim Jagielski.ELSE
2835*b1cdbd2cSJim Jagielski	@nm $(SHL6OBJS:s/.obj/.o/) > $@.dump
2836*b1cdbd2cSJim Jagielski.ENDIF
2837*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL6OBJS)!"=""
2838*b1cdbd2cSJim Jagielski	@$(TYPE) /dev/null $(SHL6LIBS:s/.lib/.dump/) >> $@.dump
2839*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL6INTERFACE) -f $(SHL6FILTERFILE) -m $@
2840*b1cdbd2cSJim Jagielski
2841*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL6FILTERFILE)"!=""
2842*b1cdbd2cSJim JagielskiUSE_SHL6VERSIONMAP=$(MISC)/$(SHL6TARGET).vmap
2843*b1cdbd2cSJim Jagielski$(USE_SHL6VERSIONMAP) :
2844*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)" == "TRUE"
2845*b1cdbd2cSJim Jagielski	@echo -----------------------------
2846*b1cdbd2cSJim Jagielski	@echo SHL6FILTERFILE not set!
2847*b1cdbd2cSJim Jagielski	@echo -----------------------------
2848*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
2849*b1cdbd2cSJim Jagielski	@echo dummy file to keep the dependencies for later use.
2850*b1cdbd2cSJim Jagielski.ELSE
2851*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
2852*b1cdbd2cSJim Jagielski.ENDIF
2853*b1cdbd2cSJim Jagielski#	force_dmake_to_error
2854*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL6FILTERFILE)"!=""
2855*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_SHL6VERSIONMAP)"!=""
2856*b1cdbd2cSJim Jagielski
2857*b1cdbd2cSJim Jagielski#and now for the plain non-generic way...
2858*b1cdbd2cSJim Jagielski.IF "$(SHL6VERSIONMAP)"!=""
2859*b1cdbd2cSJim JagielskiUSE_SHL6VERSIONMAP=$(MISC)/$(SHL6VERSIONMAP:b)_$(SHL6TARGET)$(SHL6VERSIONMAP:e)
2860*b1cdbd2cSJim JagielskiSHL6VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL6VERSIONMAP)
2861*b1cdbd2cSJim Jagielski
2862*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
2863*b1cdbd2cSJim Jagielski$(USE_SHL6VERSIONMAP): $(SHL6OBJS) $(SHL6LIBS)
2864*b1cdbd2cSJim Jagielski.ENDIF
2865*b1cdbd2cSJim Jagielski
2866*b1cdbd2cSJim Jagielski# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@
2867*b1cdbd2cSJim Jagielski# even if the $(AWK) part fails:
2868*b1cdbd2cSJim Jagielski$(USE_SHL6VERSIONMAP) .ERRREMOVE: $(SHL6VERSIONMAP)
2869*b1cdbd2cSJim Jagielski	@@-$(RM) -f $@
2870*b1cdbd2cSJim Jagielski# The following files will only be generated and needed on Mac OS X as temporary files
2871*b1cdbd2cSJim Jagielski# in order to generate exported symbols list out of Linux/Solaris map files
2872*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
2873*b1cdbd2cSJim Jagielski	@-$(RM) -f $@.symregexp >& $(NULLDEV)
2874*b1cdbd2cSJim Jagielski	@-$(RM) -f $@.expsymlist >& $(NULLDEV)
2875*b1cdbd2cSJim Jagielski.ENDIF
2876*b1cdbd2cSJim Jagielski# Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what
2877*b1cdbd2cSJim Jagielski# happens if somebody will change it in the future
2878*b1cdbd2cSJim Jagielski.IF "$(COMID)"=="gcc3"
2879*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL6VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@
2880*b1cdbd2cSJim Jagielski.ELIF "$(COMNAME)"=="sunpro5"
2881*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL6VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@
2882*b1cdbd2cSJim Jagielski.ELSE           # "$(COMID)"=="gcc3"
2883*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL6VERSIONMAP) > $@
2884*b1cdbd2cSJim Jagielski.ENDIF          # "$(COMID)"=="gcc3"
2885*b1cdbd2cSJim Jagielski	@chmod a+w $@
2886*b1cdbd2cSJim Jagielski# Mac OS X post-processing generate an exported symbols list from the generated map file
2887*b1cdbd2cSJim Jagielski# for details on exported symbols list see man ld on Mac OS X
2888*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
2889*b1cdbd2cSJim Jagielski	@-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols
2890*b1cdbd2cSJim Jagielski	@-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp
2891*b1cdbd2cSJim Jagielski# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
2892*b1cdbd2cSJim Jagielski# Extract RTTI symbols from all the objects that will be used to build a shared library
2893*b1cdbd2cSJim Jagielski.IF "$(SHL6OBJS)"!=""
2894*b1cdbd2cSJim Jagielski	-echo $(foreach,i,$(SHL6OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
2895*b1cdbd2cSJim Jagielski.ENDIF
2896*b1cdbd2cSJim Jagielski.IF "$(SHL6LIBS)"!=""
2897*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL6LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
2898*b1cdbd2cSJim Jagielski.ENDIF
2899*b1cdbd2cSJim Jagielski# overwrite the map file generate into the local output tree with the generated
2900*b1cdbd2cSJim Jagielski# exported symbols list
2901*b1cdbd2cSJim Jagielski	cp $@.exported-symbols $@
2902*b1cdbd2cSJim Jagielski.ENDIF # .IF "$(OS)"=="MACOSX"
2903*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL6VERSIONMAP)"!=""
2904*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_SHL6VERSIONMAP)"!=""
2905*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" != "UNX"
2906*b1cdbd2cSJim Jagielski
2907*b1cdbd2cSJim Jagielski.IF "$(UNIXVERSIONNAMES)"!=""
2908*b1cdbd2cSJim Jagielski.IF "$(OS)"!="MACOSX"
2909*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="UNX"
2910*b1cdbd2cSJim JagielskiSHL6SONAME=\"$(SONAME_SWITCH)$(SHL6TARGETN:f)\"
2911*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)"!="UNX"
2912*b1cdbd2cSJim Jagielski.ENDIF			# "$(OS)"!="MACOSX"
2913*b1cdbd2cSJim Jagielski.ENDIF			# "$(UNIXVERSIONNAMES)"!=""
2914*b1cdbd2cSJim Jagielski
2915*b1cdbd2cSJim Jagielski.IF "$(SHL6RES)"!=""
2916*b1cdbd2cSJim JagielskiSHL6ALLRES+=$(SHL6RES)
2917*b1cdbd2cSJim JagielskiSHL6LINKRES*=$(MISC)/$(SHL6TARGET).res
2918*b1cdbd2cSJim JagielskiSHL6LINKRESO*=$(MISC)/$(SHL6TARGET)_res.o
2919*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL6RES)"!=""
2920*b1cdbd2cSJim Jagielski
2921*b1cdbd2cSJim Jagielski.IF "$(SHL6DEFAULTRES)$(use_shl_versions)"!=""
2922*b1cdbd2cSJim JagielskiSHL6DEFAULTRES*=$(MISC)/$(SHL6TARGET)_def.res
2923*b1cdbd2cSJim JagielskiSHL6ALLRES+=$(SHL6DEFAULTRES)
2924*b1cdbd2cSJim JagielskiSHL6LINKRES*=$(MISC)/$(SHL6TARGET).res
2925*b1cdbd2cSJim JagielskiSHL6LINKRESO*=$(MISC)/$(SHL6TARGET)_res.o
2926*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL6DEFAULTRES)$(use_shl_versions)"!=""
2927*b1cdbd2cSJim Jagielski
2928*b1cdbd2cSJim Jagielski#.IF "$(SHL6TARGETN)"!=""
2929*b1cdbd2cSJim Jagielski
2930*b1cdbd2cSJim Jagielski.IF "$(linkinc)"!=""
2931*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
2932*b1cdbd2cSJim Jagielski.IF "$(SHL6LIBS)"!=""
2933*b1cdbd2cSJim Jagielski$(MISC)/$(SHL6TARGET)_linkinc.ls .PHONY:
2934*b1cdbd2cSJim Jagielski	@@-$(RM) $@
2935*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL6LIBS) $(i:s/.lib/.lin/)) >> $@
2936*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL6LIBS)"!=""
2937*b1cdbd2cSJim Jagielski.ENDIF
2938*b1cdbd2cSJim Jagielski
2939*b1cdbd2cSJim JagielskiLINKINCTARGETS+=$(MISC)/$(SHL6TARGETN:b)_linkinc.ls
2940*b1cdbd2cSJim Jagielski$(SHL6TARGETN) : $(LINKINCTARGETS)
2941*b1cdbd2cSJim Jagielski
2942*b1cdbd2cSJim Jagielski.ELSE
2943*b1cdbd2cSJim Jagielski.IF "$(SHL6USE_EXPORTS)"=="name"
2944*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
2945*b1cdbd2cSJim Jagielski.IF "$(COM)"!="GCC"
2946*b1cdbd2cSJim Jagielski.IF "$(SHL6LIBS)"!=""
2947*b1cdbd2cSJim JagielskiSHL6LINKLIST=$(MISC)/$(SHL6TARGET)_link.lst
2948*b1cdbd2cSJim JagielskiSHL6LINKLISTPARAM=@$(SHL6LINKLIST)
2949*b1cdbd2cSJim Jagielski$(SHL6LINKLIST) : $(SHL6LIBS)
2950*b1cdbd2cSJim Jagielski    @@-$(RM) $@
2951*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL6LIBS) $(i:s/.lib/.lin/)) >> $@
2952*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL6LIBS)"!=""
2953*b1cdbd2cSJim Jagielski.ENDIF          # "$(COM)"!="GCC"
2954*b1cdbd2cSJim Jagielski.ENDIF
2955*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL6USE_EXPORTS)"=="name"
2956*b1cdbd2cSJim Jagielski
2957*b1cdbd2cSJim Jagielski$(MISC)/%linkinc.ls:
2958*b1cdbd2cSJim Jagielski	@echo . > $@
2959*b1cdbd2cSJim Jagielski.ENDIF          # "$(linkinc)"!=""
2960*b1cdbd2cSJim Jagielski
2961*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "OS2"
2962*b1cdbd2cSJim Jagielski#21/02/2006 YD dll names must be 8.3, invoke fix script
2963*b1cdbd2cSJim Jagielski#check osl/os2/module.c/osl_loadModule()
2964*b1cdbd2cSJim JagielskiSHL6TARGET8=$(shell @fix_shl.cmd $(SHL6TARGET))
2965*b1cdbd2cSJim Jagielski.ENDIF
2966*b1cdbd2cSJim Jagielski
2967*b1cdbd2cSJim Jagielski
2968*b1cdbd2cSJim Jagielski$(SHL6TARGETN) : \
2969*b1cdbd2cSJim Jagielski					$(SHL6OBJS)\
2970*b1cdbd2cSJim Jagielski					$(SHL6LIBS)\
2971*b1cdbd2cSJim Jagielski					$(USE_6IMPLIB_DEPS)\
2972*b1cdbd2cSJim Jagielski					$(USE_SHL6DEF)\
2973*b1cdbd2cSJim Jagielski					$(USE_SHL6VERSIONMAP)\
2974*b1cdbd2cSJim Jagielski					$(SHL6RES)\
2975*b1cdbd2cSJim Jagielski					$(SHL6DEPN) \
2976*b1cdbd2cSJim Jagielski					$(SHL6LINKLIST)
2977*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f)
2978*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT"
2979*b1cdbd2cSJim Jagielski.IF "$(SHL6DEFAULTRES)"!=""
2980*b1cdbd2cSJim Jagielski	@@-$(RM) $(MISC)/$(SHL6DEFAULTRES:b).rc
2981*b1cdbd2cSJim Jagielski.IF "$(SHL6ICON)" != ""
2982*b1cdbd2cSJim Jagielski	@echo 1 ICON $(SHL6ICON) >> $(MISC)/$(SHL6DEFAULTRES:b).rc
2983*b1cdbd2cSJim Jagielski.ENDIF
2984*b1cdbd2cSJim Jagielski.IF "$(use_shl_versions)" != ""
2985*b1cdbd2cSJim Jagielski.IF "$(SHL6ADD_VERINFO)"!=""
2986*b1cdbd2cSJim Jagielski	@echo $(EMQ)#include $(EMQ)"$(SHL6ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL6DEFAULTRES:b).rc
2987*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL6ADD_VERINFO)"!=""
2988*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL6DEFAULTRES:b).rc
2989*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL6DEFAULTRES:b).rc
2990*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL6DEFAULTRES:b).rc
2991*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL6ADD_VERINFO)"!=""
2992*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)/$(SHL6DEFAULTRES:b).rc
2993*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ORG_NAME	$(SHL6TARGET)$(DLLPOST) >> $(MISC)/$(SHL6DEFAULTRES:b).rc
2994*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define INTERNAL_NAME $(SHL6TARGET:b) >> $(MISC)/$(SHL6DEFAULTRES:b).rc
2995*b1cdbd2cSJim Jagielski	@echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL6DEFAULTRES:b).rc
2996*b1cdbd2cSJim Jagielski.ENDIF			# "$(use_shl_versions)" != ""
2997*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL6DEFAULTRES:b).rc
2998*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL6DEFAULTRES)"!=""
2999*b1cdbd2cSJim Jagielski.IF "$(SHL6ALLRES)"!=""
3000*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(TYPE) $(SHL6ALLRES) > $(SHL6LINKRES)
3001*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"
3002*b1cdbd2cSJim Jagielski	windres $(SHL6LINKRES) $(SHL6LINKRESO)
3003*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
3004*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL6ALLRES)"!=""
3005*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"	# always have to call dlltool explicitly as ld cannot handle # comment in .def
3006*b1cdbd2cSJim Jagielski	@echo dlltool --dllname $(SHL6TARGET)$(DLLPOST) \
3007*b1cdbd2cSJim Jagielski		--kill-at \\ > $(MISC)/$(TARGET).$(@:b)_6.cmd
3008*b1cdbd2cSJim Jagielski	@noop $(assign ALL6OBJLIST:=$(STDOBJ) $(SHL6OBJS) $(SHL6LINKRESO) $(shell $(TYPE) /dev/null $(SHL6LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g))
3009*b1cdbd2cSJim Jagielski.IF "$(DEFLIB6NAME)"!=""	# do not have to include objs
3010*b1cdbd2cSJim Jagielski	@noop $(assign DEF6OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB6NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g))
3011*b1cdbd2cSJim Jagielski	@noop $(foreach,i,$(DEF6OBJLIST) $(assign ALL6OBJLIST:=$(ALL6OBJLIST:s?$i??)))
3012*b1cdbd2cSJim Jagielski.ENDIF			# "$(DEFLIB6NAME)"!=""
3013*b1cdbd2cSJim Jagielski	@echo	--output-exp $(MISC)/$(@:b)_exp.o \\ >> $(MISC)/$(TARGET).$(@:b)_6.cmd
3014*b1cdbd2cSJim Jagielski.IF "$(SHL6DEF)"!=""
3015*b1cdbd2cSJim Jagielski	@echo	--input-def $(SHL6DEF) \\ >> $(MISC)/$(TARGET).$(@:b)_6.cmd
3016*b1cdbd2cSJim Jagielski.ELSE
3017*b1cdbd2cSJim Jagielski	@echo	$(SHL6VERSIONOBJ) $(SHL6DESCRIPTIONOBJ) \\ >> $(MISC)/$(TARGET).$(@:b)_6.cmd
3018*b1cdbd2cSJim Jagielski.ENDIF
3019*b1cdbd2cSJim Jagielski	@echo	$(ALL6OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_6.cmd
3020*b1cdbd2cSJim Jagielski	@echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \
3021*b1cdbd2cSJim Jagielski		$(STDOBJ) $(SHL6VERSIONOBJ) $(SHL6DESCRIPTIONOBJ) $(SHL6OBJS) $(SHL6LINKRESO) \
3022*b1cdbd2cSJim Jagielski		`$(TYPE) /dev/null $(SHL6LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
3023*b1cdbd2cSJim Jagielski		-Wl,--exclude-libs,ALL,--start-group $(SHL6STDLIBS) -Wl,--end-group \
3024*b1cdbd2cSJim Jagielski		$(SHL6STDSHL) $(STDSHL6) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \
3025*b1cdbd2cSJim Jagielski		-Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_6.cmd
3026*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
3027*b1cdbd2cSJim Jagielski	@$(TYPE)  $(MISC)/$(TARGET).$(@:b)_6.cmd
3028*b1cdbd2cSJim Jagielski  .ENDIF
3029*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_6.cmd
3030*b1cdbd2cSJim Jagielski.ELSE
3031*b1cdbd2cSJim Jagielski.IF "$(linkinc)"==""
3032*b1cdbd2cSJim Jagielski.IF "$(SHL6USE_EXPORTS)"!="name"
3033*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
3034*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL6LINKER) @$(mktmp \
3035*b1cdbd2cSJim Jagielski		$(SHL6LINKFLAGS) \
3036*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) \
3037*b1cdbd2cSJim Jagielski		$(SHL6STACK) $(SHL6BASEX)	\
3038*b1cdbd2cSJim Jagielski		-out:$@ \
3039*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:b).map \
3040*b1cdbd2cSJim Jagielski		-def:$(SHL6DEF) \
3041*b1cdbd2cSJim Jagielski		$(USE_6IMPLIB) \
3042*b1cdbd2cSJim Jagielski		$(STDOBJ) \
3043*b1cdbd2cSJim Jagielski		$(SHL6VERSIONOBJ) $(SHL6OBJS) \
3044*b1cdbd2cSJim Jagielski		$(SHL6LIBS) \
3045*b1cdbd2cSJim Jagielski		$(SHL6STDLIBS) \
3046*b1cdbd2cSJim Jagielski		$(SHL6STDSHL) $(STDSHL6) \
3047*b1cdbd2cSJim Jagielski		$(SHL6LINKRES) \
3048*b1cdbd2cSJim Jagielski	)
3049*b1cdbd2cSJim Jagielski# double check if target was really written... still making sense?
3050*b1cdbd2cSJim Jagielski    @@$(LS) $@
3051*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
3052*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
3053*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
3054*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
3055*b1cdbd2cSJim Jagielski.ELSE
3056*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
3057*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
3058*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
3059*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
3060*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)"!=""
3061*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL6LINKER) @$(mktmp	$(SHL6LINKFLAGS)			\
3062*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL6BASEX)		\
3063*b1cdbd2cSJim Jagielski		$(SHL6STACK) -out:$(SHL6TARGETN)	\
3064*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:B).map				\
3065*b1cdbd2cSJim Jagielski		$(LB)/$(SHL6IMPLIB).exp				\
3066*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
3067*b1cdbd2cSJim Jagielski		$(SHL6OBJS) $(SHL6VERSIONOBJ) \
3068*b1cdbd2cSJim Jagielski		$(SHL6LIBS)                         \
3069*b1cdbd2cSJim Jagielski		$(SHL6STDLIBS)                      \
3070*b1cdbd2cSJim Jagielski		$(SHL6STDSHL) $(STDSHL6)                           \
3071*b1cdbd2cSJim Jagielski		$(SHL6LINKRES) \
3072*b1cdbd2cSJim Jagielski	)
3073*b1cdbd2cSJim Jagielski# double check if target was really written... still making sense?
3074*b1cdbd2cSJim Jagielski    @@$(LS) $@
3075*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
3076*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
3077*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
3078*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
3079*b1cdbd2cSJim Jagielski.ELSE
3080*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
3081*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
3082*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
3083*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
3084*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"!=""
3085*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL6USE_EXPORTS)"!="name"
3086*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL6LINKER) @$(mktmp	$(SHL6LINKFLAGS)			\
3087*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL6BASEX)		\
3088*b1cdbd2cSJim Jagielski		$(SHL6STACK) -out:$(SHL6TARGETN)	\
3089*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:B).map				\
3090*b1cdbd2cSJim Jagielski		$(USE_6IMPLIB) \
3091*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
3092*b1cdbd2cSJim Jagielski		$(SHL6OBJS) $(SHL6VERSIONOBJ))   \
3093*b1cdbd2cSJim Jagielski		$(SHL6LINKLISTPARAM) \
3094*b1cdbd2cSJim Jagielski		@$(mktmp $(SHL6STDLIBS)                      \
3095*b1cdbd2cSJim Jagielski		$(SHL6STDSHL) $(STDSHL6)                           \
3096*b1cdbd2cSJim Jagielski		$(SHL6LINKRES) \
3097*b1cdbd2cSJim Jagielski	)
3098*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
3099*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
3100*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
3101*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
3102*b1cdbd2cSJim Jagielski.ELSE
3103*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
3104*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
3105*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
3106*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
3107*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL6USE_EXPORTS)"!="name"
3108*b1cdbd2cSJim Jagielski.ELSE			# "$(linkinc)"==""
3109*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL6TARGET).lnk
3110*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL6TARGET).lst
3111*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(TYPE) $(mktmp \
3112*b1cdbd2cSJim Jagielski		$(SHL6LINKFLAGS) \
3113*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL6BASEX) \
3114*b1cdbd2cSJim Jagielski		$(SHL6STACK) $(MAPFILE) \
3115*b1cdbd2cSJim Jagielski		-out:$@ \
3116*b1cdbd2cSJim Jagielski		$(LB)/$(SHL6IMPLIB).exp \
3117*b1cdbd2cSJim Jagielski		$(STDOBJ) \
3118*b1cdbd2cSJim Jagielski		$(SHL6OBJS) \
3119*b1cdbd2cSJim Jagielski		$(SHL6STDLIBS) \
3120*b1cdbd2cSJim Jagielski		$(SHL6STDSHL) $(STDSHL6) \
3121*b1cdbd2cSJim Jagielski		$(SHL6LINKRES) \
3122*b1cdbd2cSJim Jagielski		) >> $(MISC)/$(SHL6TARGET).lnk
3123*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL6TARGETN:b)_linkinc.ls  >> $(MISC)/$(SHL6TARGET).lnk
3124*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(SHL6LINKER) @$(MISC)/$(SHL6TARGET).lnk
3125*b1cdbd2cSJim Jagielski		@echo linking $@.manifest ...
3126*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
3127*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
3128*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
3129*b1cdbd2cSJim Jagielski.ELSE
3130*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
3131*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
3132*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
3133*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
3134*b1cdbd2cSJim Jagielski.ENDIF			# "$(linkinc)"==""
3135*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
3136*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "WNT"
3137*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="UNX"
3138*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
3139*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(@:b).list
3140*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(TARGET).$(@:b)_6.cmd
3141*b1cdbd2cSJim Jagielski	@echo $(STDSLO) $(SHL6OBJS:s/.obj/.o/) \
3142*b1cdbd2cSJim Jagielski	$(SHL6VERSIONOBJ) \
3143*b1cdbd2cSJim Jagielski	`cat /dev/null $(SHL6LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list
3144*b1cdbd2cSJim Jagielski	@echo -n $(SHL6LINKER) $(SHL6LINKFLAGS) $(SHL6VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \
3145*b1cdbd2cSJim Jagielski	$(SHL6STDLIBS) $(SHL6ARCHIVES) $(SHL6STDSHL) $(STDSHL6) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_6.cmd
3146*b1cdbd2cSJim Jagielski    @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \
3147*b1cdbd2cSJim Jagielski        `cat $(MISC)/$(TARGET).$(@:b)_6.cmd` \
3148*b1cdbd2cSJim Jagielski        >> $(MISC)/$(TARGET).$(@:b)_6.cmd
3149*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
3150*b1cdbd2cSJim Jagielski	@cat $(MISC)/$(TARGET).$(@:b)_6.cmd
3151*b1cdbd2cSJim Jagielski  .ENDIF
3152*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_6.cmd
3153*b1cdbd2cSJim Jagielski    @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \
3154*b1cdbd2cSJim Jagielski        shl $(SHL6RPATH) $@
3155*b1cdbd2cSJim Jagielski.IF "$(SHL6CREATEJNILIB)"!=""
3156*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f).jnilib
3157*b1cdbd2cSJim Jagielski	@macosx-create-bundle $@
3158*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL6CREATEJNILIB)"!=""
3159*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
3160*b1cdbd2cSJim Jagielski.IF "$(SHL6NOCHECK)"==""
3161*b1cdbd2cSJim Jagielski	$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS6) $(SHL6TARGETN)
3162*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL6NOCHECK)"!=""
3163*b1cdbd2cSJim Jagielski.ENDIF
3164*b1cdbd2cSJim Jagielski.ELSE			# "$(OS)"=="MACOSX"
3165*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(TARGET).$(@:b)_6.cmd
3166*b1cdbd2cSJim Jagielski	@echo $(SHL6LINKER) $(SHL6LINKFLAGS) $(SHL6SONAME) $(LINKFLAGSSHL) $(SHL6VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL6OBJS:s/.obj/.o/) \
3167*b1cdbd2cSJim Jagielski	$(SHL6VERSIONOBJ) -o $@ \
3168*b1cdbd2cSJim Jagielski	`cat /dev/null $(SHL6LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
3169*b1cdbd2cSJim Jagielski	$(SHL6STDLIBS) $(SHL6ARCHIVES) $(SHL6STDSHL) $(STDSHL6) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_6.cmd
3170*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
3171*b1cdbd2cSJim Jagielski	@cat $(MISC)/$(TARGET).$(@:b)_6.cmd
3172*b1cdbd2cSJim Jagielski  .ENDIF
3173*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_6.cmd
3174*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
3175*b1cdbd2cSJim Jagielski.IF "$(SHL6NOCHECK)"==""
3176*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)-$(RM) $(SHL6TARGETN:d)check_$(SHL6TARGETN:f)
3177*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RENAME) $(SHL6TARGETN) $(SHL6TARGETN:d)check_$(SHL6TARGETN:f)
3178*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)"=="TRUE"
3179*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS6) $(SHL6TARGETN:d)check_$(SHL6TARGETN:f)
3180*b1cdbd2cSJim Jagielski.ELSE
3181*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS6) -- -s $(SHL6TARGETN:d)check_$(SHL6TARGETN:f)
3182*b1cdbd2cSJim Jagielski.ENDIF
3183*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL6NOCHECK)"!=""
3184*b1cdbd2cSJim Jagielski.ENDIF			# "$(UPDATER)"=="YES"
3185*b1cdbd2cSJim Jagielski.ENDIF			# "$(OS)"=="MACOSX"
3186*b1cdbd2cSJim Jagielski.IF "$(UNIXVERSIONNAMES)"!=""
3187*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RM) $(LB)/$(SHL6TARGETN:b)
3188*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)cd $(LB) && ln -s $(SHL6TARGETN:f) $(SHL6TARGETN:b)
3189*b1cdbd2cSJim Jagielski.ENDIF			# "$(UNIXVERSIONNAMES)"!=""
3190*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)" == "TRUE"
3191*b1cdbd2cSJim Jagielski	@ls -l $@
3192*b1cdbd2cSJim Jagielski.ENDIF
3193*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "UNX"
3194*b1cdbd2cSJim Jagielski
3195*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "OS2"
3196*b1cdbd2cSJim Jagielski
3197*b1cdbd2cSJim Jagielski.IF "$(SHL6DEFAULTRES)"!=""
3198*b1cdbd2cSJim Jagielski	@+-$(RM) $(MISC)/$(SHL6DEFAULTRES:b).rc > $(NULLDEV)
3199*b1cdbd2cSJim Jagielski.IF "$(SHL6ICON)" != ""
3200*b1cdbd2cSJim Jagielski	@-+echo 1 ICON $(SHL6ICON) >> $(MISC)/$(SHL6DEFAULTRES:b).rc
3201*b1cdbd2cSJim Jagielski.ENDIF
3202*b1cdbd2cSJim Jagielski.IF "$(use_shl_versions)" != ""
3203*b1cdbd2cSJim Jagielski.IF "$(SHL6ADD_VERINFO)"!=""
3204*b1cdbd2cSJim Jagielski	@-+echo $(EMQ)#include $(EMQ)"$(SHL6ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL6DEFAULTRES:b).rc
3205*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL6ADD_VERINFO)"!=""
3206*b1cdbd2cSJim Jagielski	@-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL6DEFAULTRES:b).rc
3207*b1cdbd2cSJim Jagielski#	@-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL6DEFAULTRES:b).rc
3208*b1cdbd2cSJim Jagielski.ENDIF			# "$(use_shl_versions)" != ""
3209*b1cdbd2cSJim Jagielski# YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR)
3210*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL6DEFAULTRES:b).rc
3211*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL6DEFAULTRES)"!=""
3212*b1cdbd2cSJim Jagielski
3213*b1cdbd2cSJim Jagielski.IF "$(SHL6ALLRES)"!=""
3214*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(TYPE) $(SHL6ALLRES) > $(SHL6LINKRES)
3215*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL6ALLRES)"!=""
3216*b1cdbd2cSJim Jagielski
3217*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
3218*b1cdbd2cSJim Jagielski
3219*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL6LINKER) $(SHL6LINKFLAGS) $(LINKFLAGSSHL) -o $@ \
3220*b1cdbd2cSJim Jagielski		$(SHL6DEF) \
3221*b1cdbd2cSJim Jagielski		$(STDOBJ) \
3222*b1cdbd2cSJim Jagielski		-L$(LB) \
3223*b1cdbd2cSJim Jagielski		-L$(SOLARVERSION)/$(INPATH)/lib \
3224*b1cdbd2cSJim Jagielski		$(SHL6OBJS) $(SHL6VERSIONOBJ) \
3225*b1cdbd2cSJim Jagielski		$(SHL6LIBS) \
3226*b1cdbd2cSJim Jagielski		$(SHL6LINKRES) \
3227*b1cdbd2cSJim Jagielski		$(SHL6STDLIBS) \
3228*b1cdbd2cSJim Jagielski		$(SHL6STDSHL) $(STDSHL6)
3229*b1cdbd2cSJim Jagielski
3230*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)"!=""
3231*b1cdbd2cSJim Jagielski
3232*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL6LINKER) $(SHL6LINKFLAGS)			\
3233*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL6BASEX)		\
3234*b1cdbd2cSJim Jagielski		$(SHL6STACK) -o $(SHL6TARGETN)	\
3235*b1cdbd2cSJim Jagielski		$(SHL6DEF) \
3236*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
3237*b1cdbd2cSJim Jagielski		-L$(LB) \
3238*b1cdbd2cSJim Jagielski		-L$(SOLARVERSION)/$(INPATH)/lib \
3239*b1cdbd2cSJim Jagielski		$(SHL6OBJS) $(SHL6VERSIONOBJ) \
3240*b1cdbd2cSJim Jagielski		$(SHL6LIBS) \
3241*b1cdbd2cSJim Jagielski		$(SHL6LINKRES) \
3242*b1cdbd2cSJim Jagielski		$(SHL6STDLIBS) \
3243*b1cdbd2cSJim Jagielski		$(SHL6STDSHL) $(STDSHL6)
3244*b1cdbd2cSJim Jagielski
3245*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"!=""
3246*b1cdbd2cSJim Jagielski
3247*b1cdbd2cSJim Jagielski.IF "$(SHL6USE_EXPORTS)"=="name"
3248*b1cdbd2cSJim Jagielski#03/11/2012  if 'name' is used, export from DLL file (only names, no ordinals)
3249*b1cdbd2cSJim Jagielski	@echo Build import library from DLL file.
3250*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(LB)/$(SHL6TARGETN:b).lib $@
3251*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL6USE_EXPORTS)"==""
3252*b1cdbd2cSJim Jagielski
3253*b1cdbd2cSJim Jagielski.IF "$(SHL6TARGET8)" != "$(SHL6TARGET)"
3254*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL6TARGET8).dll
3255*b1cdbd2cSJim Jagielski.ENDIF
3256*b1cdbd2cSJim Jagielski
3257*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "OS2"
3258*b1cdbd2cSJim Jagielski
3259*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL6TARGETN)"!=""
3260*b1cdbd2cSJim Jagielski
3261*b1cdbd2cSJim Jagielski# unroll begin
3262*b1cdbd2cSJim Jagielski
3263*b1cdbd2cSJim Jagielski.IF "$(SHL7TARGETN)"!=""
3264*b1cdbd2cSJim Jagielski
3265*b1cdbd2cSJim Jagielski.IF "$(OS)"=="AIX"
3266*b1cdbd2cSJim JagielskiSHL7STDLIBS=
3267*b1cdbd2cSJim Jagielski.ENDIF
3268*b1cdbd2cSJim Jagielski
3269*b1cdbd2cSJim Jagielski.IF "$(SHLLINKARCONLY)" != ""
3270*b1cdbd2cSJim JagielskiSHL7STDLIBS=
3271*b1cdbd2cSJim JagielskiSTDSHL=
3272*b1cdbd2cSJim Jagielski.ELSE
3273*b1cdbd2cSJim JagielskiSHL7ARCHIVES=
3274*b1cdbd2cSJim Jagielski.ENDIF
3275*b1cdbd2cSJim Jagielski
3276*b1cdbd2cSJim Jagielski# decide how to link
3277*b1cdbd2cSJim Jagielski.IF "$(SHL7CODETYPE)"=="C"
3278*b1cdbd2cSJim JagielskiSHL7LINKER=$(LINKC)
3279*b1cdbd2cSJim JagielskiSHL7STDSHL=$(subst,CPPRUNTIME, $(STDSHL))
3280*b1cdbd2cSJim JagielskiSHL7LINKFLAGS+=$(LINKCFLAGS)
3281*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL7CODETYPE)"=="C"
3282*b1cdbd2cSJim JagielskiSHL7LINKER=$(LINK)
3283*b1cdbd2cSJim JagielskiSHL7STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL))
3284*b1cdbd2cSJim JagielskiSHL7LINKFLAGS+=$(LINKFLAGS)
3285*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL7CODETYPE)"=="C"
3286*b1cdbd2cSJim Jagielski
3287*b1cdbd2cSJim JagielskiSHL7RPATH*=OOO
3288*b1cdbd2cSJim JagielskiLINKFLAGSRUNPATH_$(SHL7RPATH)*=/ERROR:/Bad_SHL7RPATH_value
3289*b1cdbd2cSJim JagielskiSHL7LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL7RPATH))
3290*b1cdbd2cSJim Jagielski
3291*b1cdbd2cSJim Jagielski.IF "$(SHL7USE_EXPORTS)"=="" || "$(GUI)"=="OS2"
3292*b1cdbd2cSJim JagielskiSHL7DEF*=$(MISC)/$(SHL7TARGET).def
3293*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL7USE_EXPORTS)"==""
3294*b1cdbd2cSJim Jagielski
3295*b1cdbd2cSJim JagielskiEXTRALIBPATHS7=$(EXTRALIBPATHS)
3296*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
3297*b1cdbd2cSJim Jagielski.IF "$(SHL7NOCHECK)"==""
3298*b1cdbd2cSJim Jagielski.IF "$(SOLAR_STLLIBPATH)"!=""
3299*b1cdbd2cSJim JagielskiEXTRALIBPATHS7+=-L$(SOLAR_STLLIBPATH)
3300*b1cdbd2cSJim Jagielski.ENDIF
3301*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL7NOCHECK)"!=""
3302*b1cdbd2cSJim Jagielski.ENDIF
3303*b1cdbd2cSJim Jagielski#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3304*b1cdbd2cSJim Jagielski#+++++++++++    version object      ++++++++++++++++++++++++++++++++++++++++
3305*b1cdbd2cSJim Jagielski#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3306*b1cdbd2cSJim Jagielski
3307*b1cdbd2cSJim Jagielski.IF "$(L10N_framework)"==""
3308*b1cdbd2cSJim Jagielski.IF "$(VERSIONOBJ)"!=""
3309*b1cdbd2cSJim JagielskiSHL7VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL7TARGET))}$(VERSIONOBJ:f)
3310*b1cdbd2cSJim JagielskiUSE_VERSIONH:=$(INCCOM)/$(SHL7VERSIONOBJ:b).h
3311*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "UNX"
3312*b1cdbd2cSJim JagielskiSHL7VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL7TARGET))}$(VERSIONOBJ:f:s/.o/.obj/)
3313*b1cdbd2cSJim Jagielski.ELSE           # "$(GUI)" == "UNX"
3314*b1cdbd2cSJim JagielskiSHL7VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL7TARGET))}$(VERSIONOBJ:f)
3315*b1cdbd2cSJim Jagielski.ENDIF          # "$(GUI)" == "UNX"
3316*b1cdbd2cSJim Jagielski$(MISC)/$(SHL7VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL7VERSIONOBJ:b).h
3317*b1cdbd2cSJim Jagielski#    $(COPY) $(SOLARENV)/src/version.c $@
3318*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL7VERSIONOBJ:b).h/ > $@
3319*b1cdbd2cSJim Jagielski
3320*b1cdbd2cSJim Jagielski.INIT : $(SHL7VERSIONOBJDEP)
3321*b1cdbd2cSJim Jagielski.ENDIF			# "$(VERSIONOBJ)"!=""
3322*b1cdbd2cSJim Jagielski.ENDIF
3323*b1cdbd2cSJim Jagielski
3324*b1cdbd2cSJim Jagielski.IF "$(GUI)" != "UNX"
3325*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
3326*b1cdbd2cSJim Jagielski.IF "$(SHL7IMPLIB)" == ""
3327*b1cdbd2cSJim JagielskiSHL7IMPLIB=i$(TARGET)_t7
3328*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL7IMPLIB)" == ""
3329*b1cdbd2cSJim Jagielski.IF "$(COM)" != "GCC"
3330*b1cdbd2cSJim JagielskiUSE_7IMPLIB=-implib:$(LB)/$(SHL7IMPLIB).lib
3331*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)" != "GCC"
3332*b1cdbd2cSJim JagielskiSHL7IMPLIBN=$(LB)/$(SHL7IMPLIB).lib
3333*b1cdbd2cSJim JagielskiALLTAR : $(SHL7IMPLIBN)
3334*b1cdbd2cSJim Jagielski
3335*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"==""
3336*b1cdbd2cSJim JagielskiUSE_7IMPLIB_DEPS=$(LB)/$(SHL7IMPLIB).lib
3337*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"==""
3338*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
3339*b1cdbd2cSJim JagielskiUSE_SHL7DEF=$(SHL7DEF)
3340*b1cdbd2cSJim Jagielski.ELSE			# "$(GUI)" != "UNX"
3341*b1cdbd2cSJim JagielskiUSE_SHL7DEF=
3342*b1cdbd2cSJim JagielskiSHL7DEPN+:=$(SHL7DEPNU)
3343*b1cdbd2cSJim Jagielski
3344*b1cdbd2cSJim Jagielski.IF "$(SHL7VERSIONMAP)"==""
3345*b1cdbd2cSJim Jagielski# to activate vmaps remove "#"
3346*b1cdbd2cSJim JagielskiUSE_SHL7VERSIONMAP=$(MISC)/$(SHL7TARGET).vmap
3347*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL7VERSIONMAP)"==""
3348*b1cdbd2cSJim Jagielski
3349*b1cdbd2cSJim Jagielski.IF "$(USE_SHL7VERSIONMAP)"!=""
3350*b1cdbd2cSJim Jagielski
3351*b1cdbd2cSJim Jagielski.IF "$(SHL7FILTERFILE)"!=""
3352*b1cdbd2cSJim Jagielski.IF "$(SHL7VERSIONMAP)"!=""
3353*b1cdbd2cSJim Jagielski#eine von beiden ist zuviel
3354*b1cdbd2cSJim JagielskiUSE_SHL7VERSIONMAP=$(MISC)/$(SHL7TARGET).vmap
3355*b1cdbd2cSJim Jagielski$(USE_SHL7VERSIONMAP) .PHONY:
3356*b1cdbd2cSJim Jagielski	@echo -----------------------------
3357*b1cdbd2cSJim Jagielski	@echo you should only use versionmap OR exportfile
3358*b1cdbd2cSJim Jagielski	@echo -----------------------------
3359*b1cdbd2cSJim Jagielski#	force_dmake_to_error
3360*b1cdbd2cSJim Jagielski
3361*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL7VERSIONMAP)"!=""
3362*b1cdbd2cSJim Jagielski
3363*b1cdbd2cSJim JagielskiSHL7VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL7VERSIONMAP)
3364*b1cdbd2cSJim Jagielski
3365*b1cdbd2cSJim Jagielski$(USE_SHL7VERSIONMAP): \
3366*b1cdbd2cSJim Jagielski					$(SHL7OBJS)\
3367*b1cdbd2cSJim Jagielski					$(SHL7LIBS)\
3368*b1cdbd2cSJim Jagielski					$(SHL7FILTERFILE)
3369*b1cdbd2cSJim Jagielski	@$(RM) $@.dump
3370*b1cdbd2cSJim Jagielski.IF "$(SHL7OBJS)"!=""
3371*b1cdbd2cSJim Jagielski# dump remaining objects on the fly
3372*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
3373*b1cdbd2cSJim Jagielski	@-nm $(SHL7OBJS:s/.obj/.o/) > $@.dump
3374*b1cdbd2cSJim Jagielski.ELSE
3375*b1cdbd2cSJim Jagielski	@nm $(SHL7OBJS:s/.obj/.o/) > $@.dump
3376*b1cdbd2cSJim Jagielski.ENDIF
3377*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL7OBJS)!"=""
3378*b1cdbd2cSJim Jagielski	@$(TYPE) /dev/null $(SHL7LIBS:s/.lib/.dump/) >> $@.dump
3379*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL7INTERFACE) -f $(SHL7FILTERFILE) -m $@
3380*b1cdbd2cSJim Jagielski
3381*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL7FILTERFILE)"!=""
3382*b1cdbd2cSJim JagielskiUSE_SHL7VERSIONMAP=$(MISC)/$(SHL7TARGET).vmap
3383*b1cdbd2cSJim Jagielski$(USE_SHL7VERSIONMAP) :
3384*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)" == "TRUE"
3385*b1cdbd2cSJim Jagielski	@echo -----------------------------
3386*b1cdbd2cSJim Jagielski	@echo SHL7FILTERFILE not set!
3387*b1cdbd2cSJim Jagielski	@echo -----------------------------
3388*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
3389*b1cdbd2cSJim Jagielski	@echo dummy file to keep the dependencies for later use.
3390*b1cdbd2cSJim Jagielski.ELSE
3391*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
3392*b1cdbd2cSJim Jagielski.ENDIF
3393*b1cdbd2cSJim Jagielski#	force_dmake_to_error
3394*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL7FILTERFILE)"!=""
3395*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_SHL7VERSIONMAP)"!=""
3396*b1cdbd2cSJim Jagielski
3397*b1cdbd2cSJim Jagielski#and now for the plain non-generic way...
3398*b1cdbd2cSJim Jagielski.IF "$(SHL7VERSIONMAP)"!=""
3399*b1cdbd2cSJim JagielskiUSE_SHL7VERSIONMAP=$(MISC)/$(SHL7VERSIONMAP:b)_$(SHL7TARGET)$(SHL7VERSIONMAP:e)
3400*b1cdbd2cSJim JagielskiSHL7VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL7VERSIONMAP)
3401*b1cdbd2cSJim Jagielski
3402*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
3403*b1cdbd2cSJim Jagielski$(USE_SHL7VERSIONMAP): $(SHL7OBJS) $(SHL7LIBS)
3404*b1cdbd2cSJim Jagielski.ENDIF
3405*b1cdbd2cSJim Jagielski
3406*b1cdbd2cSJim Jagielski# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@
3407*b1cdbd2cSJim Jagielski# even if the $(AWK) part fails:
3408*b1cdbd2cSJim Jagielski$(USE_SHL7VERSIONMAP) .ERRREMOVE: $(SHL7VERSIONMAP)
3409*b1cdbd2cSJim Jagielski	@@-$(RM) -f $@
3410*b1cdbd2cSJim Jagielski# The following files will only be generated and needed on Mac OS X as temporary files
3411*b1cdbd2cSJim Jagielski# in order to generate exported symbols list out of Linux/Solaris map files
3412*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
3413*b1cdbd2cSJim Jagielski	@-$(RM) -f $@.symregexp >& $(NULLDEV)
3414*b1cdbd2cSJim Jagielski	@-$(RM) -f $@.expsymlist >& $(NULLDEV)
3415*b1cdbd2cSJim Jagielski.ENDIF
3416*b1cdbd2cSJim Jagielski# Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what
3417*b1cdbd2cSJim Jagielski# happens if somebody will change it in the future
3418*b1cdbd2cSJim Jagielski.IF "$(COMID)"=="gcc3"
3419*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL7VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@
3420*b1cdbd2cSJim Jagielski.ELIF "$(COMNAME)"=="sunpro5"
3421*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL7VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@
3422*b1cdbd2cSJim Jagielski.ELSE           # "$(COMID)"=="gcc3"
3423*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL7VERSIONMAP) > $@
3424*b1cdbd2cSJim Jagielski.ENDIF          # "$(COMID)"=="gcc3"
3425*b1cdbd2cSJim Jagielski	@chmod a+w $@
3426*b1cdbd2cSJim Jagielski# Mac OS X post-processing generate an exported symbols list from the generated map file
3427*b1cdbd2cSJim Jagielski# for details on exported symbols list see man ld on Mac OS X
3428*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
3429*b1cdbd2cSJim Jagielski	@-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols
3430*b1cdbd2cSJim Jagielski	@-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp
3431*b1cdbd2cSJim Jagielski# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
3432*b1cdbd2cSJim Jagielski# Extract RTTI symbols from all the objects that will be used to build a shared library
3433*b1cdbd2cSJim Jagielski.IF "$(SHL7OBJS)"!=""
3434*b1cdbd2cSJim Jagielski	-echo $(foreach,i,$(SHL7OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
3435*b1cdbd2cSJim Jagielski.ENDIF
3436*b1cdbd2cSJim Jagielski.IF "$(SHL7LIBS)"!=""
3437*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL7LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
3438*b1cdbd2cSJim Jagielski.ENDIF
3439*b1cdbd2cSJim Jagielski# overwrite the map file generate into the local output tree with the generated
3440*b1cdbd2cSJim Jagielski# exported symbols list
3441*b1cdbd2cSJim Jagielski	cp $@.exported-symbols $@
3442*b1cdbd2cSJim Jagielski.ENDIF # .IF "$(OS)"=="MACOSX"
3443*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL7VERSIONMAP)"!=""
3444*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_SHL7VERSIONMAP)"!=""
3445*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" != "UNX"
3446*b1cdbd2cSJim Jagielski
3447*b1cdbd2cSJim Jagielski.IF "$(UNIXVERSIONNAMES)"!=""
3448*b1cdbd2cSJim Jagielski.IF "$(OS)"!="MACOSX"
3449*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="UNX"
3450*b1cdbd2cSJim JagielskiSHL7SONAME=\"$(SONAME_SWITCH)$(SHL7TARGETN:f)\"
3451*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)"!="UNX"
3452*b1cdbd2cSJim Jagielski.ENDIF			# "$(OS)"!="MACOSX"
3453*b1cdbd2cSJim Jagielski.ENDIF			# "$(UNIXVERSIONNAMES)"!=""
3454*b1cdbd2cSJim Jagielski
3455*b1cdbd2cSJim Jagielski.IF "$(SHL7RES)"!=""
3456*b1cdbd2cSJim JagielskiSHL7ALLRES+=$(SHL7RES)
3457*b1cdbd2cSJim JagielskiSHL7LINKRES*=$(MISC)/$(SHL7TARGET).res
3458*b1cdbd2cSJim JagielskiSHL7LINKRESO*=$(MISC)/$(SHL7TARGET)_res.o
3459*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL7RES)"!=""
3460*b1cdbd2cSJim Jagielski
3461*b1cdbd2cSJim Jagielski.IF "$(SHL7DEFAULTRES)$(use_shl_versions)"!=""
3462*b1cdbd2cSJim JagielskiSHL7DEFAULTRES*=$(MISC)/$(SHL7TARGET)_def.res
3463*b1cdbd2cSJim JagielskiSHL7ALLRES+=$(SHL7DEFAULTRES)
3464*b1cdbd2cSJim JagielskiSHL7LINKRES*=$(MISC)/$(SHL7TARGET).res
3465*b1cdbd2cSJim JagielskiSHL7LINKRESO*=$(MISC)/$(SHL7TARGET)_res.o
3466*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL7DEFAULTRES)$(use_shl_versions)"!=""
3467*b1cdbd2cSJim Jagielski
3468*b1cdbd2cSJim Jagielski#.IF "$(SHL7TARGETN)"!=""
3469*b1cdbd2cSJim Jagielski
3470*b1cdbd2cSJim Jagielski.IF "$(linkinc)"!=""
3471*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
3472*b1cdbd2cSJim Jagielski.IF "$(SHL7LIBS)"!=""
3473*b1cdbd2cSJim Jagielski$(MISC)/$(SHL7TARGET)_linkinc.ls .PHONY:
3474*b1cdbd2cSJim Jagielski	@@-$(RM) $@
3475*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL7LIBS) $(i:s/.lib/.lin/)) >> $@
3476*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL7LIBS)"!=""
3477*b1cdbd2cSJim Jagielski.ENDIF
3478*b1cdbd2cSJim Jagielski
3479*b1cdbd2cSJim JagielskiLINKINCTARGETS+=$(MISC)/$(SHL7TARGETN:b)_linkinc.ls
3480*b1cdbd2cSJim Jagielski$(SHL7TARGETN) : $(LINKINCTARGETS)
3481*b1cdbd2cSJim Jagielski
3482*b1cdbd2cSJim Jagielski.ELSE
3483*b1cdbd2cSJim Jagielski.IF "$(SHL7USE_EXPORTS)"=="name"
3484*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
3485*b1cdbd2cSJim Jagielski.IF "$(COM)"!="GCC"
3486*b1cdbd2cSJim Jagielski.IF "$(SHL7LIBS)"!=""
3487*b1cdbd2cSJim JagielskiSHL7LINKLIST=$(MISC)/$(SHL7TARGET)_link.lst
3488*b1cdbd2cSJim JagielskiSHL7LINKLISTPARAM=@$(SHL7LINKLIST)
3489*b1cdbd2cSJim Jagielski$(SHL7LINKLIST) : $(SHL7LIBS)
3490*b1cdbd2cSJim Jagielski    @@-$(RM) $@
3491*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL7LIBS) $(i:s/.lib/.lin/)) >> $@
3492*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL7LIBS)"!=""
3493*b1cdbd2cSJim Jagielski.ENDIF          # "$(COM)"!="GCC"
3494*b1cdbd2cSJim Jagielski.ENDIF
3495*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL7USE_EXPORTS)"=="name"
3496*b1cdbd2cSJim Jagielski
3497*b1cdbd2cSJim Jagielski$(MISC)/%linkinc.ls:
3498*b1cdbd2cSJim Jagielski	@echo . > $@
3499*b1cdbd2cSJim Jagielski.ENDIF          # "$(linkinc)"!=""
3500*b1cdbd2cSJim Jagielski
3501*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "OS2"
3502*b1cdbd2cSJim Jagielski#21/02/2006 YD dll names must be 8.3, invoke fix script
3503*b1cdbd2cSJim Jagielski#check osl/os2/module.c/osl_loadModule()
3504*b1cdbd2cSJim JagielskiSHL7TARGET8=$(shell @fix_shl.cmd $(SHL7TARGET))
3505*b1cdbd2cSJim Jagielski.ENDIF
3506*b1cdbd2cSJim Jagielski
3507*b1cdbd2cSJim Jagielski
3508*b1cdbd2cSJim Jagielski$(SHL7TARGETN) : \
3509*b1cdbd2cSJim Jagielski					$(SHL7OBJS)\
3510*b1cdbd2cSJim Jagielski					$(SHL7LIBS)\
3511*b1cdbd2cSJim Jagielski					$(USE_7IMPLIB_DEPS)\
3512*b1cdbd2cSJim Jagielski					$(USE_SHL7DEF)\
3513*b1cdbd2cSJim Jagielski					$(USE_SHL7VERSIONMAP)\
3514*b1cdbd2cSJim Jagielski					$(SHL7RES)\
3515*b1cdbd2cSJim Jagielski					$(SHL7DEPN) \
3516*b1cdbd2cSJim Jagielski					$(SHL7LINKLIST)
3517*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f)
3518*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT"
3519*b1cdbd2cSJim Jagielski.IF "$(SHL7DEFAULTRES)"!=""
3520*b1cdbd2cSJim Jagielski	@@-$(RM) $(MISC)/$(SHL7DEFAULTRES:b).rc
3521*b1cdbd2cSJim Jagielski.IF "$(SHL7ICON)" != ""
3522*b1cdbd2cSJim Jagielski	@echo 1 ICON $(SHL7ICON) >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3523*b1cdbd2cSJim Jagielski.ENDIF
3524*b1cdbd2cSJim Jagielski.IF "$(use_shl_versions)" != ""
3525*b1cdbd2cSJim Jagielski.IF "$(SHL7ADD_VERINFO)"!=""
3526*b1cdbd2cSJim Jagielski	@echo $(EMQ)#include $(EMQ)"$(SHL7ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3527*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL7ADD_VERINFO)"!=""
3528*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3529*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3530*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3531*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL7ADD_VERINFO)"!=""
3532*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3533*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ORG_NAME	$(SHL7TARGET)$(DLLPOST) >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3534*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define INTERNAL_NAME $(SHL7TARGET:b) >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3535*b1cdbd2cSJim Jagielski	@echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3536*b1cdbd2cSJim Jagielski.ENDIF			# "$(use_shl_versions)" != ""
3537*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL7DEFAULTRES:b).rc
3538*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL7DEFAULTRES)"!=""
3539*b1cdbd2cSJim Jagielski.IF "$(SHL7ALLRES)"!=""
3540*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(TYPE) $(SHL7ALLRES) > $(SHL7LINKRES)
3541*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"
3542*b1cdbd2cSJim Jagielski	windres $(SHL7LINKRES) $(SHL7LINKRESO)
3543*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
3544*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL7ALLRES)"!=""
3545*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"	# always have to call dlltool explicitly as ld cannot handle # comment in .def
3546*b1cdbd2cSJim Jagielski	@echo dlltool --dllname $(SHL7TARGET)$(DLLPOST) \
3547*b1cdbd2cSJim Jagielski		--kill-at \\ > $(MISC)/$(TARGET).$(@:b)_7.cmd
3548*b1cdbd2cSJim Jagielski	@noop $(assign ALL7OBJLIST:=$(STDOBJ) $(SHL7OBJS) $(SHL7LINKRESO) $(shell $(TYPE) /dev/null $(SHL7LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g))
3549*b1cdbd2cSJim Jagielski.IF "$(DEFLIB7NAME)"!=""	# do not have to include objs
3550*b1cdbd2cSJim Jagielski	@noop $(assign DEF7OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB7NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g))
3551*b1cdbd2cSJim Jagielski	@noop $(foreach,i,$(DEF7OBJLIST) $(assign ALL7OBJLIST:=$(ALL7OBJLIST:s?$i??)))
3552*b1cdbd2cSJim Jagielski.ENDIF			# "$(DEFLIB7NAME)"!=""
3553*b1cdbd2cSJim Jagielski	@echo	--output-exp $(MISC)/$(@:b)_exp.o \\ >> $(MISC)/$(TARGET).$(@:b)_7.cmd
3554*b1cdbd2cSJim Jagielski.IF "$(SHL7DEF)"!=""
3555*b1cdbd2cSJim Jagielski	@echo	--input-def $(SHL7DEF) \\ >> $(MISC)/$(TARGET).$(@:b)_7.cmd
3556*b1cdbd2cSJim Jagielski.ELSE
3557*b1cdbd2cSJim Jagielski	@echo	$(SHL7VERSIONOBJ) $(SHL7DESCRIPTIONOBJ) \\ >> $(MISC)/$(TARGET).$(@:b)_7.cmd
3558*b1cdbd2cSJim Jagielski.ENDIF
3559*b1cdbd2cSJim Jagielski	@echo	$(ALL7OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_7.cmd
3560*b1cdbd2cSJim Jagielski	@echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \
3561*b1cdbd2cSJim Jagielski		$(STDOBJ) $(SHL7VERSIONOBJ) $(SHL7DESCRIPTIONOBJ) $(SHL7OBJS) $(SHL7LINKRESO) \
3562*b1cdbd2cSJim Jagielski		`$(TYPE) /dev/null $(SHL7LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
3563*b1cdbd2cSJim Jagielski		-Wl,--exclude-libs,ALL,--start-group $(SHL7STDLIBS) -Wl,--end-group \
3564*b1cdbd2cSJim Jagielski		$(SHL7STDSHL) $(STDSHL7) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \
3565*b1cdbd2cSJim Jagielski		-Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_7.cmd
3566*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
3567*b1cdbd2cSJim Jagielski	@$(TYPE)  $(MISC)/$(TARGET).$(@:b)_7.cmd
3568*b1cdbd2cSJim Jagielski  .ENDIF
3569*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_7.cmd
3570*b1cdbd2cSJim Jagielski.ELSE
3571*b1cdbd2cSJim Jagielski.IF "$(linkinc)"==""
3572*b1cdbd2cSJim Jagielski.IF "$(SHL7USE_EXPORTS)"!="name"
3573*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
3574*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL7LINKER) @$(mktmp \
3575*b1cdbd2cSJim Jagielski		$(SHL7LINKFLAGS) \
3576*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) \
3577*b1cdbd2cSJim Jagielski		$(SHL7STACK) $(SHL7BASEX)	\
3578*b1cdbd2cSJim Jagielski		-out:$@ \
3579*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:b).map \
3580*b1cdbd2cSJim Jagielski		-def:$(SHL7DEF) \
3581*b1cdbd2cSJim Jagielski		$(USE_7IMPLIB) \
3582*b1cdbd2cSJim Jagielski		$(STDOBJ) \
3583*b1cdbd2cSJim Jagielski		$(SHL7VERSIONOBJ) $(SHL7OBJS) \
3584*b1cdbd2cSJim Jagielski		$(SHL7LIBS) \
3585*b1cdbd2cSJim Jagielski		$(SHL7STDLIBS) \
3586*b1cdbd2cSJim Jagielski		$(SHL7STDSHL) $(STDSHL7) \
3587*b1cdbd2cSJim Jagielski		$(SHL7LINKRES) \
3588*b1cdbd2cSJim Jagielski	)
3589*b1cdbd2cSJim Jagielski# double check if target was really written... still making sense?
3590*b1cdbd2cSJim Jagielski    @@$(LS) $@
3591*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
3592*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
3593*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
3594*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
3595*b1cdbd2cSJim Jagielski.ELSE
3596*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
3597*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
3598*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
3599*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
3600*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)"!=""
3601*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL7LINKER) @$(mktmp	$(SHL7LINKFLAGS)			\
3602*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL7BASEX)		\
3603*b1cdbd2cSJim Jagielski		$(SHL7STACK) -out:$(SHL7TARGETN)	\
3604*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:B).map				\
3605*b1cdbd2cSJim Jagielski		$(LB)/$(SHL7IMPLIB).exp				\
3606*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
3607*b1cdbd2cSJim Jagielski		$(SHL7OBJS) $(SHL7VERSIONOBJ) \
3608*b1cdbd2cSJim Jagielski		$(SHL7LIBS)                         \
3609*b1cdbd2cSJim Jagielski		$(SHL7STDLIBS)                      \
3610*b1cdbd2cSJim Jagielski		$(SHL7STDSHL) $(STDSHL7)                           \
3611*b1cdbd2cSJim Jagielski		$(SHL7LINKRES) \
3612*b1cdbd2cSJim Jagielski	)
3613*b1cdbd2cSJim Jagielski# double check if target was really written... still making sense?
3614*b1cdbd2cSJim Jagielski    @@$(LS) $@
3615*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
3616*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
3617*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
3618*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
3619*b1cdbd2cSJim Jagielski.ELSE
3620*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
3621*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
3622*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
3623*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
3624*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"!=""
3625*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL7USE_EXPORTS)"!="name"
3626*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL7LINKER) @$(mktmp	$(SHL7LINKFLAGS)			\
3627*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL7BASEX)		\
3628*b1cdbd2cSJim Jagielski		$(SHL7STACK) -out:$(SHL7TARGETN)	\
3629*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:B).map				\
3630*b1cdbd2cSJim Jagielski		$(USE_7IMPLIB) \
3631*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
3632*b1cdbd2cSJim Jagielski		$(SHL7OBJS) $(SHL7VERSIONOBJ))   \
3633*b1cdbd2cSJim Jagielski		$(SHL7LINKLISTPARAM) \
3634*b1cdbd2cSJim Jagielski		@$(mktmp $(SHL7STDLIBS)                      \
3635*b1cdbd2cSJim Jagielski		$(SHL7STDSHL) $(STDSHL7)                           \
3636*b1cdbd2cSJim Jagielski		$(SHL7LINKRES) \
3637*b1cdbd2cSJim Jagielski	)
3638*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
3639*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
3640*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
3641*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
3642*b1cdbd2cSJim Jagielski.ELSE
3643*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
3644*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
3645*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
3646*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
3647*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL7USE_EXPORTS)"!="name"
3648*b1cdbd2cSJim Jagielski.ELSE			# "$(linkinc)"==""
3649*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL7TARGET).lnk
3650*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL7TARGET).lst
3651*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(TYPE) $(mktmp \
3652*b1cdbd2cSJim Jagielski		$(SHL7LINKFLAGS) \
3653*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL7BASEX) \
3654*b1cdbd2cSJim Jagielski		$(SHL7STACK) $(MAPFILE) \
3655*b1cdbd2cSJim Jagielski		-out:$@ \
3656*b1cdbd2cSJim Jagielski		$(LB)/$(SHL7IMPLIB).exp \
3657*b1cdbd2cSJim Jagielski		$(STDOBJ) \
3658*b1cdbd2cSJim Jagielski		$(SHL7OBJS) \
3659*b1cdbd2cSJim Jagielski		$(SHL7STDLIBS) \
3660*b1cdbd2cSJim Jagielski		$(SHL7STDSHL) $(STDSHL7) \
3661*b1cdbd2cSJim Jagielski		$(SHL7LINKRES) \
3662*b1cdbd2cSJim Jagielski		) >> $(MISC)/$(SHL7TARGET).lnk
3663*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL7TARGETN:b)_linkinc.ls  >> $(MISC)/$(SHL7TARGET).lnk
3664*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(SHL7LINKER) @$(MISC)/$(SHL7TARGET).lnk
3665*b1cdbd2cSJim Jagielski		@echo linking $@.manifest ...
3666*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
3667*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
3668*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
3669*b1cdbd2cSJim Jagielski.ELSE
3670*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
3671*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
3672*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
3673*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
3674*b1cdbd2cSJim Jagielski.ENDIF			# "$(linkinc)"==""
3675*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
3676*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "WNT"
3677*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="UNX"
3678*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
3679*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(@:b).list
3680*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(TARGET).$(@:b)_7.cmd
3681*b1cdbd2cSJim Jagielski	@echo $(STDSLO) $(SHL7OBJS:s/.obj/.o/) \
3682*b1cdbd2cSJim Jagielski	$(SHL7VERSIONOBJ) \
3683*b1cdbd2cSJim Jagielski	`cat /dev/null $(SHL7LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list
3684*b1cdbd2cSJim Jagielski	@echo -n $(SHL7LINKER) $(SHL7LINKFLAGS) $(SHL7VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \
3685*b1cdbd2cSJim Jagielski	$(SHL7STDLIBS) $(SHL7ARCHIVES) $(SHL7STDSHL) $(STDSHL7) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_7.cmd
3686*b1cdbd2cSJim Jagielski    @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \
3687*b1cdbd2cSJim Jagielski        `cat $(MISC)/$(TARGET).$(@:b)_7.cmd` \
3688*b1cdbd2cSJim Jagielski        >> $(MISC)/$(TARGET).$(@:b)_7.cmd
3689*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
3690*b1cdbd2cSJim Jagielski	@cat $(MISC)/$(TARGET).$(@:b)_7.cmd
3691*b1cdbd2cSJim Jagielski  .ENDIF
3692*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_7.cmd
3693*b1cdbd2cSJim Jagielski    @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \
3694*b1cdbd2cSJim Jagielski        shl $(SHL7RPATH) $@
3695*b1cdbd2cSJim Jagielski.IF "$(SHL7CREATEJNILIB)"!=""
3696*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f).jnilib
3697*b1cdbd2cSJim Jagielski	@macosx-create-bundle $@
3698*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL7CREATEJNILIB)"!=""
3699*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
3700*b1cdbd2cSJim Jagielski.IF "$(SHL7NOCHECK)"==""
3701*b1cdbd2cSJim Jagielski	$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS7) $(SHL7TARGETN)
3702*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL7NOCHECK)"!=""
3703*b1cdbd2cSJim Jagielski.ENDIF
3704*b1cdbd2cSJim Jagielski.ELSE			# "$(OS)"=="MACOSX"
3705*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(TARGET).$(@:b)_7.cmd
3706*b1cdbd2cSJim Jagielski	@echo $(SHL7LINKER) $(SHL7LINKFLAGS) $(SHL7SONAME) $(LINKFLAGSSHL) $(SHL7VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL7OBJS:s/.obj/.o/) \
3707*b1cdbd2cSJim Jagielski	$(SHL7VERSIONOBJ) -o $@ \
3708*b1cdbd2cSJim Jagielski	`cat /dev/null $(SHL7LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
3709*b1cdbd2cSJim Jagielski	$(SHL7STDLIBS) $(SHL7ARCHIVES) $(SHL7STDSHL) $(STDSHL7) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_7.cmd
3710*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
3711*b1cdbd2cSJim Jagielski	@cat $(MISC)/$(TARGET).$(@:b)_7.cmd
3712*b1cdbd2cSJim Jagielski  .ENDIF
3713*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_7.cmd
3714*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
3715*b1cdbd2cSJim Jagielski.IF "$(SHL7NOCHECK)"==""
3716*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)-$(RM) $(SHL7TARGETN:d)check_$(SHL7TARGETN:f)
3717*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RENAME) $(SHL7TARGETN) $(SHL7TARGETN:d)check_$(SHL7TARGETN:f)
3718*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)"=="TRUE"
3719*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS7) $(SHL7TARGETN:d)check_$(SHL7TARGETN:f)
3720*b1cdbd2cSJim Jagielski.ELSE
3721*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS7) -- -s $(SHL7TARGETN:d)check_$(SHL7TARGETN:f)
3722*b1cdbd2cSJim Jagielski.ENDIF
3723*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL7NOCHECK)"!=""
3724*b1cdbd2cSJim Jagielski.ENDIF			# "$(UPDATER)"=="YES"
3725*b1cdbd2cSJim Jagielski.ENDIF			# "$(OS)"=="MACOSX"
3726*b1cdbd2cSJim Jagielski.IF "$(UNIXVERSIONNAMES)"!=""
3727*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RM) $(LB)/$(SHL7TARGETN:b)
3728*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)cd $(LB) && ln -s $(SHL7TARGETN:f) $(SHL7TARGETN:b)
3729*b1cdbd2cSJim Jagielski.ENDIF			# "$(UNIXVERSIONNAMES)"!=""
3730*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)" == "TRUE"
3731*b1cdbd2cSJim Jagielski	@ls -l $@
3732*b1cdbd2cSJim Jagielski.ENDIF
3733*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "UNX"
3734*b1cdbd2cSJim Jagielski
3735*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "OS2"
3736*b1cdbd2cSJim Jagielski
3737*b1cdbd2cSJim Jagielski.IF "$(SHL7DEFAULTRES)"!=""
3738*b1cdbd2cSJim Jagielski	@+-$(RM) $(MISC)/$(SHL7DEFAULTRES:b).rc > $(NULLDEV)
3739*b1cdbd2cSJim Jagielski.IF "$(SHL7ICON)" != ""
3740*b1cdbd2cSJim Jagielski	@-+echo 1 ICON $(SHL7ICON) >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3741*b1cdbd2cSJim Jagielski.ENDIF
3742*b1cdbd2cSJim Jagielski.IF "$(use_shl_versions)" != ""
3743*b1cdbd2cSJim Jagielski.IF "$(SHL7ADD_VERINFO)"!=""
3744*b1cdbd2cSJim Jagielski	@-+echo $(EMQ)#include $(EMQ)"$(SHL7ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3745*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL7ADD_VERINFO)"!=""
3746*b1cdbd2cSJim Jagielski	@-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3747*b1cdbd2cSJim Jagielski#	@-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL7DEFAULTRES:b).rc
3748*b1cdbd2cSJim Jagielski.ENDIF			# "$(use_shl_versions)" != ""
3749*b1cdbd2cSJim Jagielski# YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR)
3750*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL7DEFAULTRES:b).rc
3751*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL7DEFAULTRES)"!=""
3752*b1cdbd2cSJim Jagielski
3753*b1cdbd2cSJim Jagielski.IF "$(SHL7ALLRES)"!=""
3754*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(TYPE) $(SHL7ALLRES) > $(SHL7LINKRES)
3755*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL7ALLRES)"!=""
3756*b1cdbd2cSJim Jagielski
3757*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
3758*b1cdbd2cSJim Jagielski
3759*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL7LINKER) $(SHL7LINKFLAGS) $(LINKFLAGSSHL) -o $@ \
3760*b1cdbd2cSJim Jagielski		$(SHL7DEF) \
3761*b1cdbd2cSJim Jagielski		$(STDOBJ) \
3762*b1cdbd2cSJim Jagielski		-L$(LB) \
3763*b1cdbd2cSJim Jagielski		-L$(SOLARVERSION)/$(INPATH)/lib \
3764*b1cdbd2cSJim Jagielski		$(SHL7OBJS) $(SHL7VERSIONOBJ) \
3765*b1cdbd2cSJim Jagielski		$(SHL7LIBS) \
3766*b1cdbd2cSJim Jagielski		$(SHL7LINKRES) \
3767*b1cdbd2cSJim Jagielski		$(SHL7STDLIBS) \
3768*b1cdbd2cSJim Jagielski		$(SHL7STDSHL) $(STDSHL7)
3769*b1cdbd2cSJim Jagielski
3770*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)"!=""
3771*b1cdbd2cSJim Jagielski
3772*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL7LINKER) $(SHL7LINKFLAGS)			\
3773*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL7BASEX)		\
3774*b1cdbd2cSJim Jagielski		$(SHL7STACK) -o $(SHL7TARGETN)	\
3775*b1cdbd2cSJim Jagielski		$(SHL7DEF) \
3776*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
3777*b1cdbd2cSJim Jagielski		-L$(LB) \
3778*b1cdbd2cSJim Jagielski		-L$(SOLARVERSION)/$(INPATH)/lib \
3779*b1cdbd2cSJim Jagielski		$(SHL7OBJS) $(SHL7VERSIONOBJ) \
3780*b1cdbd2cSJim Jagielski		$(SHL7LIBS) \
3781*b1cdbd2cSJim Jagielski		$(SHL7LINKRES) \
3782*b1cdbd2cSJim Jagielski		$(SHL7STDLIBS) \
3783*b1cdbd2cSJim Jagielski		$(SHL7STDSHL) $(STDSHL7)
3784*b1cdbd2cSJim Jagielski
3785*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"!=""
3786*b1cdbd2cSJim Jagielski
3787*b1cdbd2cSJim Jagielski.IF "$(SHL7USE_EXPORTS)"=="name"
3788*b1cdbd2cSJim Jagielski#03/11/2012  if 'name' is used, export from DLL file (only names, no ordinals)
3789*b1cdbd2cSJim Jagielski	@echo Build import library from DLL file.
3790*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(LB)/$(SHL7TARGETN:b).lib $@
3791*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL7USE_EXPORTS)"==""
3792*b1cdbd2cSJim Jagielski
3793*b1cdbd2cSJim Jagielski.IF "$(SHL7TARGET8)" != "$(SHL7TARGET)"
3794*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL7TARGET8).dll
3795*b1cdbd2cSJim Jagielski.ENDIF
3796*b1cdbd2cSJim Jagielski
3797*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "OS2"
3798*b1cdbd2cSJim Jagielski
3799*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL7TARGETN)"!=""
3800*b1cdbd2cSJim Jagielski
3801*b1cdbd2cSJim Jagielski# unroll begin
3802*b1cdbd2cSJim Jagielski
3803*b1cdbd2cSJim Jagielski.IF "$(SHL8TARGETN)"!=""
3804*b1cdbd2cSJim Jagielski
3805*b1cdbd2cSJim Jagielski.IF "$(OS)"=="AIX"
3806*b1cdbd2cSJim JagielskiSHL8STDLIBS=
3807*b1cdbd2cSJim Jagielski.ENDIF
3808*b1cdbd2cSJim Jagielski
3809*b1cdbd2cSJim Jagielski.IF "$(SHLLINKARCONLY)" != ""
3810*b1cdbd2cSJim JagielskiSHL8STDLIBS=
3811*b1cdbd2cSJim JagielskiSTDSHL=
3812*b1cdbd2cSJim Jagielski.ELSE
3813*b1cdbd2cSJim JagielskiSHL8ARCHIVES=
3814*b1cdbd2cSJim Jagielski.ENDIF
3815*b1cdbd2cSJim Jagielski
3816*b1cdbd2cSJim Jagielski# decide how to link
3817*b1cdbd2cSJim Jagielski.IF "$(SHL8CODETYPE)"=="C"
3818*b1cdbd2cSJim JagielskiSHL8LINKER=$(LINKC)
3819*b1cdbd2cSJim JagielskiSHL8STDSHL=$(subst,CPPRUNTIME, $(STDSHL))
3820*b1cdbd2cSJim JagielskiSHL8LINKFLAGS+=$(LINKCFLAGS)
3821*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL8CODETYPE)"=="C"
3822*b1cdbd2cSJim JagielskiSHL8LINKER=$(LINK)
3823*b1cdbd2cSJim JagielskiSHL8STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL))
3824*b1cdbd2cSJim JagielskiSHL8LINKFLAGS+=$(LINKFLAGS)
3825*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL8CODETYPE)"=="C"
3826*b1cdbd2cSJim Jagielski
3827*b1cdbd2cSJim JagielskiSHL8RPATH*=OOO
3828*b1cdbd2cSJim JagielskiLINKFLAGSRUNPATH_$(SHL8RPATH)*=/ERROR:/Bad_SHL8RPATH_value
3829*b1cdbd2cSJim JagielskiSHL8LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL8RPATH))
3830*b1cdbd2cSJim Jagielski
3831*b1cdbd2cSJim Jagielski.IF "$(SHL8USE_EXPORTS)"=="" || "$(GUI)"=="OS2"
3832*b1cdbd2cSJim JagielskiSHL8DEF*=$(MISC)/$(SHL8TARGET).def
3833*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL8USE_EXPORTS)"==""
3834*b1cdbd2cSJim Jagielski
3835*b1cdbd2cSJim JagielskiEXTRALIBPATHS8=$(EXTRALIBPATHS)
3836*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
3837*b1cdbd2cSJim Jagielski.IF "$(SHL8NOCHECK)"==""
3838*b1cdbd2cSJim Jagielski.IF "$(SOLAR_STLLIBPATH)"!=""
3839*b1cdbd2cSJim JagielskiEXTRALIBPATHS8+=-L$(SOLAR_STLLIBPATH)
3840*b1cdbd2cSJim Jagielski.ENDIF
3841*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL8NOCHECK)"!=""
3842*b1cdbd2cSJim Jagielski.ENDIF
3843*b1cdbd2cSJim Jagielski#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3844*b1cdbd2cSJim Jagielski#+++++++++++    version object      ++++++++++++++++++++++++++++++++++++++++
3845*b1cdbd2cSJim Jagielski#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3846*b1cdbd2cSJim Jagielski
3847*b1cdbd2cSJim Jagielski.IF "$(L10N_framework)"==""
3848*b1cdbd2cSJim Jagielski.IF "$(VERSIONOBJ)"!=""
3849*b1cdbd2cSJim JagielskiSHL8VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL8TARGET))}$(VERSIONOBJ:f)
3850*b1cdbd2cSJim JagielskiUSE_VERSIONH:=$(INCCOM)/$(SHL8VERSIONOBJ:b).h
3851*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "UNX"
3852*b1cdbd2cSJim JagielskiSHL8VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL8TARGET))}$(VERSIONOBJ:f:s/.o/.obj/)
3853*b1cdbd2cSJim Jagielski.ELSE           # "$(GUI)" == "UNX"
3854*b1cdbd2cSJim JagielskiSHL8VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL8TARGET))}$(VERSIONOBJ:f)
3855*b1cdbd2cSJim Jagielski.ENDIF          # "$(GUI)" == "UNX"
3856*b1cdbd2cSJim Jagielski$(MISC)/$(SHL8VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL8VERSIONOBJ:b).h
3857*b1cdbd2cSJim Jagielski#    $(COPY) $(SOLARENV)/src/version.c $@
3858*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL8VERSIONOBJ:b).h/ > $@
3859*b1cdbd2cSJim Jagielski
3860*b1cdbd2cSJim Jagielski.INIT : $(SHL8VERSIONOBJDEP)
3861*b1cdbd2cSJim Jagielski.ENDIF			# "$(VERSIONOBJ)"!=""
3862*b1cdbd2cSJim Jagielski.ENDIF
3863*b1cdbd2cSJim Jagielski
3864*b1cdbd2cSJim Jagielski.IF "$(GUI)" != "UNX"
3865*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
3866*b1cdbd2cSJim Jagielski.IF "$(SHL8IMPLIB)" == ""
3867*b1cdbd2cSJim JagielskiSHL8IMPLIB=i$(TARGET)_t8
3868*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL8IMPLIB)" == ""
3869*b1cdbd2cSJim Jagielski.IF "$(COM)" != "GCC"
3870*b1cdbd2cSJim JagielskiUSE_8IMPLIB=-implib:$(LB)/$(SHL8IMPLIB).lib
3871*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)" != "GCC"
3872*b1cdbd2cSJim JagielskiSHL8IMPLIBN=$(LB)/$(SHL8IMPLIB).lib
3873*b1cdbd2cSJim JagielskiALLTAR : $(SHL8IMPLIBN)
3874*b1cdbd2cSJim Jagielski
3875*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"==""
3876*b1cdbd2cSJim JagielskiUSE_8IMPLIB_DEPS=$(LB)/$(SHL8IMPLIB).lib
3877*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"==""
3878*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
3879*b1cdbd2cSJim JagielskiUSE_SHL8DEF=$(SHL8DEF)
3880*b1cdbd2cSJim Jagielski.ELSE			# "$(GUI)" != "UNX"
3881*b1cdbd2cSJim JagielskiUSE_SHL8DEF=
3882*b1cdbd2cSJim JagielskiSHL8DEPN+:=$(SHL8DEPNU)
3883*b1cdbd2cSJim Jagielski
3884*b1cdbd2cSJim Jagielski.IF "$(SHL8VERSIONMAP)"==""
3885*b1cdbd2cSJim Jagielski# to activate vmaps remove "#"
3886*b1cdbd2cSJim JagielskiUSE_SHL8VERSIONMAP=$(MISC)/$(SHL8TARGET).vmap
3887*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL8VERSIONMAP)"==""
3888*b1cdbd2cSJim Jagielski
3889*b1cdbd2cSJim Jagielski.IF "$(USE_SHL8VERSIONMAP)"!=""
3890*b1cdbd2cSJim Jagielski
3891*b1cdbd2cSJim Jagielski.IF "$(SHL8FILTERFILE)"!=""
3892*b1cdbd2cSJim Jagielski.IF "$(SHL8VERSIONMAP)"!=""
3893*b1cdbd2cSJim Jagielski#eine von beiden ist zuviel
3894*b1cdbd2cSJim JagielskiUSE_SHL8VERSIONMAP=$(MISC)/$(SHL8TARGET).vmap
3895*b1cdbd2cSJim Jagielski$(USE_SHL8VERSIONMAP) .PHONY:
3896*b1cdbd2cSJim Jagielski	@echo -----------------------------
3897*b1cdbd2cSJim Jagielski	@echo you should only use versionmap OR exportfile
3898*b1cdbd2cSJim Jagielski	@echo -----------------------------
3899*b1cdbd2cSJim Jagielski#	force_dmake_to_error
3900*b1cdbd2cSJim Jagielski
3901*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL8VERSIONMAP)"!=""
3902*b1cdbd2cSJim Jagielski
3903*b1cdbd2cSJim JagielskiSHL8VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL8VERSIONMAP)
3904*b1cdbd2cSJim Jagielski
3905*b1cdbd2cSJim Jagielski$(USE_SHL8VERSIONMAP): \
3906*b1cdbd2cSJim Jagielski					$(SHL8OBJS)\
3907*b1cdbd2cSJim Jagielski					$(SHL8LIBS)\
3908*b1cdbd2cSJim Jagielski					$(SHL8FILTERFILE)
3909*b1cdbd2cSJim Jagielski	@$(RM) $@.dump
3910*b1cdbd2cSJim Jagielski.IF "$(SHL8OBJS)"!=""
3911*b1cdbd2cSJim Jagielski# dump remaining objects on the fly
3912*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
3913*b1cdbd2cSJim Jagielski	@-nm $(SHL8OBJS:s/.obj/.o/) > $@.dump
3914*b1cdbd2cSJim Jagielski.ELSE
3915*b1cdbd2cSJim Jagielski	@nm $(SHL8OBJS:s/.obj/.o/) > $@.dump
3916*b1cdbd2cSJim Jagielski.ENDIF
3917*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL8OBJS)!"=""
3918*b1cdbd2cSJim Jagielski	@$(TYPE) /dev/null $(SHL8LIBS:s/.lib/.dump/) >> $@.dump
3919*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL8INTERFACE) -f $(SHL8FILTERFILE) -m $@
3920*b1cdbd2cSJim Jagielski
3921*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL8FILTERFILE)"!=""
3922*b1cdbd2cSJim JagielskiUSE_SHL8VERSIONMAP=$(MISC)/$(SHL8TARGET).vmap
3923*b1cdbd2cSJim Jagielski$(USE_SHL8VERSIONMAP) :
3924*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)" == "TRUE"
3925*b1cdbd2cSJim Jagielski	@echo -----------------------------
3926*b1cdbd2cSJim Jagielski	@echo SHL8FILTERFILE not set!
3927*b1cdbd2cSJim Jagielski	@echo -----------------------------
3928*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
3929*b1cdbd2cSJim Jagielski	@echo dummy file to keep the dependencies for later use.
3930*b1cdbd2cSJim Jagielski.ELSE
3931*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
3932*b1cdbd2cSJim Jagielski.ENDIF
3933*b1cdbd2cSJim Jagielski#	force_dmake_to_error
3934*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL8FILTERFILE)"!=""
3935*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_SHL8VERSIONMAP)"!=""
3936*b1cdbd2cSJim Jagielski
3937*b1cdbd2cSJim Jagielski#and now for the plain non-generic way...
3938*b1cdbd2cSJim Jagielski.IF "$(SHL8VERSIONMAP)"!=""
3939*b1cdbd2cSJim JagielskiUSE_SHL8VERSIONMAP=$(MISC)/$(SHL8VERSIONMAP:b)_$(SHL8TARGET)$(SHL8VERSIONMAP:e)
3940*b1cdbd2cSJim JagielskiSHL8VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL8VERSIONMAP)
3941*b1cdbd2cSJim Jagielski
3942*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
3943*b1cdbd2cSJim Jagielski$(USE_SHL8VERSIONMAP): $(SHL8OBJS) $(SHL8LIBS)
3944*b1cdbd2cSJim Jagielski.ENDIF
3945*b1cdbd2cSJim Jagielski
3946*b1cdbd2cSJim Jagielski# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@
3947*b1cdbd2cSJim Jagielski# even if the $(AWK) part fails:
3948*b1cdbd2cSJim Jagielski$(USE_SHL8VERSIONMAP) .ERRREMOVE: $(SHL8VERSIONMAP)
3949*b1cdbd2cSJim Jagielski	@@-$(RM) -f $@
3950*b1cdbd2cSJim Jagielski# The following files will only be generated and needed on Mac OS X as temporary files
3951*b1cdbd2cSJim Jagielski# in order to generate exported symbols list out of Linux/Solaris map files
3952*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
3953*b1cdbd2cSJim Jagielski	@-$(RM) -f $@.symregexp >& $(NULLDEV)
3954*b1cdbd2cSJim Jagielski	@-$(RM) -f $@.expsymlist >& $(NULLDEV)
3955*b1cdbd2cSJim Jagielski.ENDIF
3956*b1cdbd2cSJim Jagielski# Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what
3957*b1cdbd2cSJim Jagielski# happens if somebody will change it in the future
3958*b1cdbd2cSJim Jagielski.IF "$(COMID)"=="gcc3"
3959*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL8VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@
3960*b1cdbd2cSJim Jagielski.ELIF "$(COMNAME)"=="sunpro5"
3961*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL8VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@
3962*b1cdbd2cSJim Jagielski.ELSE           # "$(COMID)"=="gcc3"
3963*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL8VERSIONMAP) > $@
3964*b1cdbd2cSJim Jagielski.ENDIF          # "$(COMID)"=="gcc3"
3965*b1cdbd2cSJim Jagielski	@chmod a+w $@
3966*b1cdbd2cSJim Jagielski# Mac OS X post-processing generate an exported symbols list from the generated map file
3967*b1cdbd2cSJim Jagielski# for details on exported symbols list see man ld on Mac OS X
3968*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
3969*b1cdbd2cSJim Jagielski	@-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols
3970*b1cdbd2cSJim Jagielski	@-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp
3971*b1cdbd2cSJim Jagielski# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
3972*b1cdbd2cSJim Jagielski# Extract RTTI symbols from all the objects that will be used to build a shared library
3973*b1cdbd2cSJim Jagielski.IF "$(SHL8OBJS)"!=""
3974*b1cdbd2cSJim Jagielski	-echo $(foreach,i,$(SHL8OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
3975*b1cdbd2cSJim Jagielski.ENDIF
3976*b1cdbd2cSJim Jagielski.IF "$(SHL8LIBS)"!=""
3977*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL8LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
3978*b1cdbd2cSJim Jagielski.ENDIF
3979*b1cdbd2cSJim Jagielski# overwrite the map file generate into the local output tree with the generated
3980*b1cdbd2cSJim Jagielski# exported symbols list
3981*b1cdbd2cSJim Jagielski	cp $@.exported-symbols $@
3982*b1cdbd2cSJim Jagielski.ENDIF # .IF "$(OS)"=="MACOSX"
3983*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL8VERSIONMAP)"!=""
3984*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_SHL8VERSIONMAP)"!=""
3985*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" != "UNX"
3986*b1cdbd2cSJim Jagielski
3987*b1cdbd2cSJim Jagielski.IF "$(UNIXVERSIONNAMES)"!=""
3988*b1cdbd2cSJim Jagielski.IF "$(OS)"!="MACOSX"
3989*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="UNX"
3990*b1cdbd2cSJim JagielskiSHL8SONAME=\"$(SONAME_SWITCH)$(SHL8TARGETN:f)\"
3991*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)"!="UNX"
3992*b1cdbd2cSJim Jagielski.ENDIF			# "$(OS)"!="MACOSX"
3993*b1cdbd2cSJim Jagielski.ENDIF			# "$(UNIXVERSIONNAMES)"!=""
3994*b1cdbd2cSJim Jagielski
3995*b1cdbd2cSJim Jagielski.IF "$(SHL8RES)"!=""
3996*b1cdbd2cSJim JagielskiSHL8ALLRES+=$(SHL8RES)
3997*b1cdbd2cSJim JagielskiSHL8LINKRES*=$(MISC)/$(SHL8TARGET).res
3998*b1cdbd2cSJim JagielskiSHL8LINKRESO*=$(MISC)/$(SHL8TARGET)_res.o
3999*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL8RES)"!=""
4000*b1cdbd2cSJim Jagielski
4001*b1cdbd2cSJim Jagielski.IF "$(SHL8DEFAULTRES)$(use_shl_versions)"!=""
4002*b1cdbd2cSJim JagielskiSHL8DEFAULTRES*=$(MISC)/$(SHL8TARGET)_def.res
4003*b1cdbd2cSJim JagielskiSHL8ALLRES+=$(SHL8DEFAULTRES)
4004*b1cdbd2cSJim JagielskiSHL8LINKRES*=$(MISC)/$(SHL8TARGET).res
4005*b1cdbd2cSJim JagielskiSHL8LINKRESO*=$(MISC)/$(SHL8TARGET)_res.o
4006*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL8DEFAULTRES)$(use_shl_versions)"!=""
4007*b1cdbd2cSJim Jagielski
4008*b1cdbd2cSJim Jagielski#.IF "$(SHL8TARGETN)"!=""
4009*b1cdbd2cSJim Jagielski
4010*b1cdbd2cSJim Jagielski.IF "$(linkinc)"!=""
4011*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
4012*b1cdbd2cSJim Jagielski.IF "$(SHL8LIBS)"!=""
4013*b1cdbd2cSJim Jagielski$(MISC)/$(SHL8TARGET)_linkinc.ls .PHONY:
4014*b1cdbd2cSJim Jagielski	@@-$(RM) $@
4015*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL8LIBS) $(i:s/.lib/.lin/)) >> $@
4016*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL8LIBS)"!=""
4017*b1cdbd2cSJim Jagielski.ENDIF
4018*b1cdbd2cSJim Jagielski
4019*b1cdbd2cSJim JagielskiLINKINCTARGETS+=$(MISC)/$(SHL8TARGETN:b)_linkinc.ls
4020*b1cdbd2cSJim Jagielski$(SHL8TARGETN) : $(LINKINCTARGETS)
4021*b1cdbd2cSJim Jagielski
4022*b1cdbd2cSJim Jagielski.ELSE
4023*b1cdbd2cSJim Jagielski.IF "$(SHL8USE_EXPORTS)"=="name"
4024*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
4025*b1cdbd2cSJim Jagielski.IF "$(COM)"!="GCC"
4026*b1cdbd2cSJim Jagielski.IF "$(SHL8LIBS)"!=""
4027*b1cdbd2cSJim JagielskiSHL8LINKLIST=$(MISC)/$(SHL8TARGET)_link.lst
4028*b1cdbd2cSJim JagielskiSHL8LINKLISTPARAM=@$(SHL8LINKLIST)
4029*b1cdbd2cSJim Jagielski$(SHL8LINKLIST) : $(SHL8LIBS)
4030*b1cdbd2cSJim Jagielski    @@-$(RM) $@
4031*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL8LIBS) $(i:s/.lib/.lin/)) >> $@
4032*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL8LIBS)"!=""
4033*b1cdbd2cSJim Jagielski.ENDIF          # "$(COM)"!="GCC"
4034*b1cdbd2cSJim Jagielski.ENDIF
4035*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL8USE_EXPORTS)"=="name"
4036*b1cdbd2cSJim Jagielski
4037*b1cdbd2cSJim Jagielski$(MISC)/%linkinc.ls:
4038*b1cdbd2cSJim Jagielski	@echo . > $@
4039*b1cdbd2cSJim Jagielski.ENDIF          # "$(linkinc)"!=""
4040*b1cdbd2cSJim Jagielski
4041*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "OS2"
4042*b1cdbd2cSJim Jagielski#21/02/2006 YD dll names must be 8.3, invoke fix script
4043*b1cdbd2cSJim Jagielski#check osl/os2/module.c/osl_loadModule()
4044*b1cdbd2cSJim JagielskiSHL8TARGET8=$(shell @fix_shl.cmd $(SHL8TARGET))
4045*b1cdbd2cSJim Jagielski.ENDIF
4046*b1cdbd2cSJim Jagielski
4047*b1cdbd2cSJim Jagielski
4048*b1cdbd2cSJim Jagielski$(SHL8TARGETN) : \
4049*b1cdbd2cSJim Jagielski					$(SHL8OBJS)\
4050*b1cdbd2cSJim Jagielski					$(SHL8LIBS)\
4051*b1cdbd2cSJim Jagielski					$(USE_8IMPLIB_DEPS)\
4052*b1cdbd2cSJim Jagielski					$(USE_SHL8DEF)\
4053*b1cdbd2cSJim Jagielski					$(USE_SHL8VERSIONMAP)\
4054*b1cdbd2cSJim Jagielski					$(SHL8RES)\
4055*b1cdbd2cSJim Jagielski					$(SHL8DEPN) \
4056*b1cdbd2cSJim Jagielski					$(SHL8LINKLIST)
4057*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f)
4058*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT"
4059*b1cdbd2cSJim Jagielski.IF "$(SHL8DEFAULTRES)"!=""
4060*b1cdbd2cSJim Jagielski	@@-$(RM) $(MISC)/$(SHL8DEFAULTRES:b).rc
4061*b1cdbd2cSJim Jagielski.IF "$(SHL8ICON)" != ""
4062*b1cdbd2cSJim Jagielski	@echo 1 ICON $(SHL8ICON) >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4063*b1cdbd2cSJim Jagielski.ENDIF
4064*b1cdbd2cSJim Jagielski.IF "$(use_shl_versions)" != ""
4065*b1cdbd2cSJim Jagielski.IF "$(SHL8ADD_VERINFO)"!=""
4066*b1cdbd2cSJim Jagielski	@echo $(EMQ)#include $(EMQ)"$(SHL8ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4067*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL8ADD_VERINFO)"!=""
4068*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4069*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4070*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4071*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL8ADD_VERINFO)"!=""
4072*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4073*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ORG_NAME	$(SHL8TARGET)$(DLLPOST) >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4074*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define INTERNAL_NAME $(SHL8TARGET:b) >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4075*b1cdbd2cSJim Jagielski	@echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4076*b1cdbd2cSJim Jagielski.ENDIF			# "$(use_shl_versions)" != ""
4077*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL8DEFAULTRES:b).rc
4078*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL8DEFAULTRES)"!=""
4079*b1cdbd2cSJim Jagielski.IF "$(SHL8ALLRES)"!=""
4080*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(TYPE) $(SHL8ALLRES) > $(SHL8LINKRES)
4081*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"
4082*b1cdbd2cSJim Jagielski	windres $(SHL8LINKRES) $(SHL8LINKRESO)
4083*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
4084*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL8ALLRES)"!=""
4085*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"	# always have to call dlltool explicitly as ld cannot handle # comment in .def
4086*b1cdbd2cSJim Jagielski	@echo dlltool --dllname $(SHL8TARGET)$(DLLPOST) \
4087*b1cdbd2cSJim Jagielski		--kill-at \\ > $(MISC)/$(TARGET).$(@:b)_8.cmd
4088*b1cdbd2cSJim Jagielski	@noop $(assign ALL8OBJLIST:=$(STDOBJ) $(SHL8OBJS) $(SHL8LINKRESO) $(shell $(TYPE) /dev/null $(SHL8LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g))
4089*b1cdbd2cSJim Jagielski.IF "$(DEFLIB8NAME)"!=""	# do not have to include objs
4090*b1cdbd2cSJim Jagielski	@noop $(assign DEF8OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB8NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g))
4091*b1cdbd2cSJim Jagielski	@noop $(foreach,i,$(DEF8OBJLIST) $(assign ALL8OBJLIST:=$(ALL8OBJLIST:s?$i??)))
4092*b1cdbd2cSJim Jagielski.ENDIF			# "$(DEFLIB8NAME)"!=""
4093*b1cdbd2cSJim Jagielski	@echo	--output-exp $(MISC)/$(@:b)_exp.o \\ >> $(MISC)/$(TARGET).$(@:b)_8.cmd
4094*b1cdbd2cSJim Jagielski.IF "$(SHL8DEF)"!=""
4095*b1cdbd2cSJim Jagielski	@echo	--input-def $(SHL8DEF) \\ >> $(MISC)/$(TARGET).$(@:b)_8.cmd
4096*b1cdbd2cSJim Jagielski.ELSE
4097*b1cdbd2cSJim Jagielski	@echo	$(SHL8VERSIONOBJ) $(SHL8DESCRIPTIONOBJ) \\ >> $(MISC)/$(TARGET).$(@:b)_8.cmd
4098*b1cdbd2cSJim Jagielski.ENDIF
4099*b1cdbd2cSJim Jagielski	@echo	$(ALL8OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_8.cmd
4100*b1cdbd2cSJim Jagielski	@echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \
4101*b1cdbd2cSJim Jagielski		$(STDOBJ) $(SHL8VERSIONOBJ) $(SHL8DESCRIPTIONOBJ) $(SHL8OBJS) $(SHL8LINKRESO) \
4102*b1cdbd2cSJim Jagielski		`$(TYPE) /dev/null $(SHL8LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
4103*b1cdbd2cSJim Jagielski		-Wl,--exclude-libs,ALL,--start-group $(SHL8STDLIBS) -Wl,--end-group \
4104*b1cdbd2cSJim Jagielski		$(SHL8STDSHL) $(STDSHL8) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \
4105*b1cdbd2cSJim Jagielski		-Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_8.cmd
4106*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
4107*b1cdbd2cSJim Jagielski	@$(TYPE)  $(MISC)/$(TARGET).$(@:b)_8.cmd
4108*b1cdbd2cSJim Jagielski  .ENDIF
4109*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_8.cmd
4110*b1cdbd2cSJim Jagielski.ELSE
4111*b1cdbd2cSJim Jagielski.IF "$(linkinc)"==""
4112*b1cdbd2cSJim Jagielski.IF "$(SHL8USE_EXPORTS)"!="name"
4113*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
4114*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL8LINKER) @$(mktmp \
4115*b1cdbd2cSJim Jagielski		$(SHL8LINKFLAGS) \
4116*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) \
4117*b1cdbd2cSJim Jagielski		$(SHL8STACK) $(SHL8BASEX)	\
4118*b1cdbd2cSJim Jagielski		-out:$@ \
4119*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:b).map \
4120*b1cdbd2cSJim Jagielski		-def:$(SHL8DEF) \
4121*b1cdbd2cSJim Jagielski		$(USE_8IMPLIB) \
4122*b1cdbd2cSJim Jagielski		$(STDOBJ) \
4123*b1cdbd2cSJim Jagielski		$(SHL8VERSIONOBJ) $(SHL8OBJS) \
4124*b1cdbd2cSJim Jagielski		$(SHL8LIBS) \
4125*b1cdbd2cSJim Jagielski		$(SHL8STDLIBS) \
4126*b1cdbd2cSJim Jagielski		$(SHL8STDSHL) $(STDSHL8) \
4127*b1cdbd2cSJim Jagielski		$(SHL8LINKRES) \
4128*b1cdbd2cSJim Jagielski	)
4129*b1cdbd2cSJim Jagielski# double check if target was really written... still making sense?
4130*b1cdbd2cSJim Jagielski    @@$(LS) $@
4131*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
4132*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
4133*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
4134*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
4135*b1cdbd2cSJim Jagielski.ELSE
4136*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
4137*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
4138*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
4139*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
4140*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)"!=""
4141*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL8LINKER) @$(mktmp	$(SHL8LINKFLAGS)			\
4142*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL8BASEX)		\
4143*b1cdbd2cSJim Jagielski		$(SHL8STACK) -out:$(SHL8TARGETN)	\
4144*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:B).map				\
4145*b1cdbd2cSJim Jagielski		$(LB)/$(SHL8IMPLIB).exp				\
4146*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
4147*b1cdbd2cSJim Jagielski		$(SHL8OBJS) $(SHL8VERSIONOBJ) \
4148*b1cdbd2cSJim Jagielski		$(SHL8LIBS)                         \
4149*b1cdbd2cSJim Jagielski		$(SHL8STDLIBS)                      \
4150*b1cdbd2cSJim Jagielski		$(SHL8STDSHL) $(STDSHL8)                           \
4151*b1cdbd2cSJim Jagielski		$(SHL8LINKRES) \
4152*b1cdbd2cSJim Jagielski	)
4153*b1cdbd2cSJim Jagielski# double check if target was really written... still making sense?
4154*b1cdbd2cSJim Jagielski    @@$(LS) $@
4155*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
4156*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
4157*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
4158*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
4159*b1cdbd2cSJim Jagielski.ELSE
4160*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
4161*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
4162*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
4163*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
4164*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"!=""
4165*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL8USE_EXPORTS)"!="name"
4166*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL8LINKER) @$(mktmp	$(SHL8LINKFLAGS)			\
4167*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL8BASEX)		\
4168*b1cdbd2cSJim Jagielski		$(SHL8STACK) -out:$(SHL8TARGETN)	\
4169*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:B).map				\
4170*b1cdbd2cSJim Jagielski		$(USE_8IMPLIB) \
4171*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
4172*b1cdbd2cSJim Jagielski		$(SHL8OBJS) $(SHL8VERSIONOBJ))   \
4173*b1cdbd2cSJim Jagielski		$(SHL8LINKLISTPARAM) \
4174*b1cdbd2cSJim Jagielski		@$(mktmp $(SHL8STDLIBS)                      \
4175*b1cdbd2cSJim Jagielski		$(SHL8STDSHL) $(STDSHL8)                           \
4176*b1cdbd2cSJim Jagielski		$(SHL8LINKRES) \
4177*b1cdbd2cSJim Jagielski	)
4178*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
4179*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
4180*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
4181*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
4182*b1cdbd2cSJim Jagielski.ELSE
4183*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
4184*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
4185*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
4186*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
4187*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL8USE_EXPORTS)"!="name"
4188*b1cdbd2cSJim Jagielski.ELSE			# "$(linkinc)"==""
4189*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL8TARGET).lnk
4190*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL8TARGET).lst
4191*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(TYPE) $(mktmp \
4192*b1cdbd2cSJim Jagielski		$(SHL8LINKFLAGS) \
4193*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL8BASEX) \
4194*b1cdbd2cSJim Jagielski		$(SHL8STACK) $(MAPFILE) \
4195*b1cdbd2cSJim Jagielski		-out:$@ \
4196*b1cdbd2cSJim Jagielski		$(LB)/$(SHL8IMPLIB).exp \
4197*b1cdbd2cSJim Jagielski		$(STDOBJ) \
4198*b1cdbd2cSJim Jagielski		$(SHL8OBJS) \
4199*b1cdbd2cSJim Jagielski		$(SHL8STDLIBS) \
4200*b1cdbd2cSJim Jagielski		$(SHL8STDSHL) $(STDSHL8) \
4201*b1cdbd2cSJim Jagielski		$(SHL8LINKRES) \
4202*b1cdbd2cSJim Jagielski		) >> $(MISC)/$(SHL8TARGET).lnk
4203*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL8TARGETN:b)_linkinc.ls  >> $(MISC)/$(SHL8TARGET).lnk
4204*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(SHL8LINKER) @$(MISC)/$(SHL8TARGET).lnk
4205*b1cdbd2cSJim Jagielski		@echo linking $@.manifest ...
4206*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
4207*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
4208*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
4209*b1cdbd2cSJim Jagielski.ELSE
4210*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
4211*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
4212*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
4213*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
4214*b1cdbd2cSJim Jagielski.ENDIF			# "$(linkinc)"==""
4215*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
4216*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "WNT"
4217*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="UNX"
4218*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
4219*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(@:b).list
4220*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(TARGET).$(@:b)_8.cmd
4221*b1cdbd2cSJim Jagielski	@echo $(STDSLO) $(SHL8OBJS:s/.obj/.o/) \
4222*b1cdbd2cSJim Jagielski	$(SHL8VERSIONOBJ) \
4223*b1cdbd2cSJim Jagielski	`cat /dev/null $(SHL8LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list
4224*b1cdbd2cSJim Jagielski	@echo -n $(SHL8LINKER) $(SHL8LINKFLAGS) $(SHL8VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \
4225*b1cdbd2cSJim Jagielski	$(SHL8STDLIBS) $(SHL8ARCHIVES) $(SHL8STDSHL) $(STDSHL8) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_8.cmd
4226*b1cdbd2cSJim Jagielski    @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \
4227*b1cdbd2cSJim Jagielski        `cat $(MISC)/$(TARGET).$(@:b)_8.cmd` \
4228*b1cdbd2cSJim Jagielski        >> $(MISC)/$(TARGET).$(@:b)_8.cmd
4229*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
4230*b1cdbd2cSJim Jagielski	@cat $(MISC)/$(TARGET).$(@:b)_8.cmd
4231*b1cdbd2cSJim Jagielski  .ENDIF
4232*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_8.cmd
4233*b1cdbd2cSJim Jagielski    @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \
4234*b1cdbd2cSJim Jagielski        shl $(SHL8RPATH) $@
4235*b1cdbd2cSJim Jagielski.IF "$(SHL8CREATEJNILIB)"!=""
4236*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f).jnilib
4237*b1cdbd2cSJim Jagielski	@macosx-create-bundle $@
4238*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL8CREATEJNILIB)"!=""
4239*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
4240*b1cdbd2cSJim Jagielski.IF "$(SHL8NOCHECK)"==""
4241*b1cdbd2cSJim Jagielski	$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS8) $(SHL8TARGETN)
4242*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL8NOCHECK)"!=""
4243*b1cdbd2cSJim Jagielski.ENDIF
4244*b1cdbd2cSJim Jagielski.ELSE			# "$(OS)"=="MACOSX"
4245*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(TARGET).$(@:b)_8.cmd
4246*b1cdbd2cSJim Jagielski	@echo $(SHL8LINKER) $(SHL8LINKFLAGS) $(SHL8SONAME) $(LINKFLAGSSHL) $(SHL8VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL8OBJS:s/.obj/.o/) \
4247*b1cdbd2cSJim Jagielski	$(SHL8VERSIONOBJ) -o $@ \
4248*b1cdbd2cSJim Jagielski	`cat /dev/null $(SHL8LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
4249*b1cdbd2cSJim Jagielski	$(SHL8STDLIBS) $(SHL8ARCHIVES) $(SHL8STDSHL) $(STDSHL8) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_8.cmd
4250*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
4251*b1cdbd2cSJim Jagielski	@cat $(MISC)/$(TARGET).$(@:b)_8.cmd
4252*b1cdbd2cSJim Jagielski  .ENDIF
4253*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_8.cmd
4254*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
4255*b1cdbd2cSJim Jagielski.IF "$(SHL8NOCHECK)"==""
4256*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)-$(RM) $(SHL8TARGETN:d)check_$(SHL8TARGETN:f)
4257*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RENAME) $(SHL8TARGETN) $(SHL8TARGETN:d)check_$(SHL8TARGETN:f)
4258*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)"=="TRUE"
4259*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS8) $(SHL8TARGETN:d)check_$(SHL8TARGETN:f)
4260*b1cdbd2cSJim Jagielski.ELSE
4261*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS8) -- -s $(SHL8TARGETN:d)check_$(SHL8TARGETN:f)
4262*b1cdbd2cSJim Jagielski.ENDIF
4263*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL8NOCHECK)"!=""
4264*b1cdbd2cSJim Jagielski.ENDIF			# "$(UPDATER)"=="YES"
4265*b1cdbd2cSJim Jagielski.ENDIF			# "$(OS)"=="MACOSX"
4266*b1cdbd2cSJim Jagielski.IF "$(UNIXVERSIONNAMES)"!=""
4267*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RM) $(LB)/$(SHL8TARGETN:b)
4268*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)cd $(LB) && ln -s $(SHL8TARGETN:f) $(SHL8TARGETN:b)
4269*b1cdbd2cSJim Jagielski.ENDIF			# "$(UNIXVERSIONNAMES)"!=""
4270*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)" == "TRUE"
4271*b1cdbd2cSJim Jagielski	@ls -l $@
4272*b1cdbd2cSJim Jagielski.ENDIF
4273*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "UNX"
4274*b1cdbd2cSJim Jagielski
4275*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "OS2"
4276*b1cdbd2cSJim Jagielski
4277*b1cdbd2cSJim Jagielski.IF "$(SHL8DEFAULTRES)"!=""
4278*b1cdbd2cSJim Jagielski	@+-$(RM) $(MISC)/$(SHL8DEFAULTRES:b).rc > $(NULLDEV)
4279*b1cdbd2cSJim Jagielski.IF "$(SHL8ICON)" != ""
4280*b1cdbd2cSJim Jagielski	@-+echo 1 ICON $(SHL8ICON) >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4281*b1cdbd2cSJim Jagielski.ENDIF
4282*b1cdbd2cSJim Jagielski.IF "$(use_shl_versions)" != ""
4283*b1cdbd2cSJim Jagielski.IF "$(SHL8ADD_VERINFO)"!=""
4284*b1cdbd2cSJim Jagielski	@-+echo $(EMQ)#include $(EMQ)"$(SHL8ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4285*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL8ADD_VERINFO)"!=""
4286*b1cdbd2cSJim Jagielski	@-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4287*b1cdbd2cSJim Jagielski#	@-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL8DEFAULTRES:b).rc
4288*b1cdbd2cSJim Jagielski.ENDIF			# "$(use_shl_versions)" != ""
4289*b1cdbd2cSJim Jagielski# YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR)
4290*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL8DEFAULTRES:b).rc
4291*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL8DEFAULTRES)"!=""
4292*b1cdbd2cSJim Jagielski
4293*b1cdbd2cSJim Jagielski.IF "$(SHL8ALLRES)"!=""
4294*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(TYPE) $(SHL8ALLRES) > $(SHL8LINKRES)
4295*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL8ALLRES)"!=""
4296*b1cdbd2cSJim Jagielski
4297*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
4298*b1cdbd2cSJim Jagielski
4299*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL8LINKER) $(SHL8LINKFLAGS) $(LINKFLAGSSHL) -o $@ \
4300*b1cdbd2cSJim Jagielski		$(SHL8DEF) \
4301*b1cdbd2cSJim Jagielski		$(STDOBJ) \
4302*b1cdbd2cSJim Jagielski		-L$(LB) \
4303*b1cdbd2cSJim Jagielski		-L$(SOLARVERSION)/$(INPATH)/lib \
4304*b1cdbd2cSJim Jagielski		$(SHL8OBJS) $(SHL8VERSIONOBJ) \
4305*b1cdbd2cSJim Jagielski		$(SHL8LIBS) \
4306*b1cdbd2cSJim Jagielski		$(SHL8LINKRES) \
4307*b1cdbd2cSJim Jagielski		$(SHL8STDLIBS) \
4308*b1cdbd2cSJim Jagielski		$(SHL8STDSHL) $(STDSHL8)
4309*b1cdbd2cSJim Jagielski
4310*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)"!=""
4311*b1cdbd2cSJim Jagielski
4312*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL8LINKER) $(SHL8LINKFLAGS)			\
4313*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL8BASEX)		\
4314*b1cdbd2cSJim Jagielski		$(SHL8STACK) -o $(SHL8TARGETN)	\
4315*b1cdbd2cSJim Jagielski		$(SHL8DEF) \
4316*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
4317*b1cdbd2cSJim Jagielski		-L$(LB) \
4318*b1cdbd2cSJim Jagielski		-L$(SOLARVERSION)/$(INPATH)/lib \
4319*b1cdbd2cSJim Jagielski		$(SHL8OBJS) $(SHL8VERSIONOBJ) \
4320*b1cdbd2cSJim Jagielski		$(SHL8LIBS) \
4321*b1cdbd2cSJim Jagielski		$(SHL8LINKRES) \
4322*b1cdbd2cSJim Jagielski		$(SHL8STDLIBS) \
4323*b1cdbd2cSJim Jagielski		$(SHL8STDSHL) $(STDSHL8)
4324*b1cdbd2cSJim Jagielski
4325*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"!=""
4326*b1cdbd2cSJim Jagielski
4327*b1cdbd2cSJim Jagielski.IF "$(SHL8USE_EXPORTS)"=="name"
4328*b1cdbd2cSJim Jagielski#03/11/2012  if 'name' is used, export from DLL file (only names, no ordinals)
4329*b1cdbd2cSJim Jagielski	@echo Build import library from DLL file.
4330*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(LB)/$(SHL8TARGETN:b).lib $@
4331*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL8USE_EXPORTS)"==""
4332*b1cdbd2cSJim Jagielski
4333*b1cdbd2cSJim Jagielski.IF "$(SHL8TARGET8)" != "$(SHL8TARGET)"
4334*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL8TARGET8).dll
4335*b1cdbd2cSJim Jagielski.ENDIF
4336*b1cdbd2cSJim Jagielski
4337*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "OS2"
4338*b1cdbd2cSJim Jagielski
4339*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL8TARGETN)"!=""
4340*b1cdbd2cSJim Jagielski
4341*b1cdbd2cSJim Jagielski# unroll begin
4342*b1cdbd2cSJim Jagielski
4343*b1cdbd2cSJim Jagielski.IF "$(SHL9TARGETN)"!=""
4344*b1cdbd2cSJim Jagielski
4345*b1cdbd2cSJim Jagielski.IF "$(OS)"=="AIX"
4346*b1cdbd2cSJim JagielskiSHL9STDLIBS=
4347*b1cdbd2cSJim Jagielski.ENDIF
4348*b1cdbd2cSJim Jagielski
4349*b1cdbd2cSJim Jagielski.IF "$(SHLLINKARCONLY)" != ""
4350*b1cdbd2cSJim JagielskiSHL9STDLIBS=
4351*b1cdbd2cSJim JagielskiSTDSHL=
4352*b1cdbd2cSJim Jagielski.ELSE
4353*b1cdbd2cSJim JagielskiSHL9ARCHIVES=
4354*b1cdbd2cSJim Jagielski.ENDIF
4355*b1cdbd2cSJim Jagielski
4356*b1cdbd2cSJim Jagielski# decide how to link
4357*b1cdbd2cSJim Jagielski.IF "$(SHL9CODETYPE)"=="C"
4358*b1cdbd2cSJim JagielskiSHL9LINKER=$(LINKC)
4359*b1cdbd2cSJim JagielskiSHL9STDSHL=$(subst,CPPRUNTIME, $(STDSHL))
4360*b1cdbd2cSJim JagielskiSHL9LINKFLAGS+=$(LINKCFLAGS)
4361*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL9CODETYPE)"=="C"
4362*b1cdbd2cSJim JagielskiSHL9LINKER=$(LINK)
4363*b1cdbd2cSJim JagielskiSHL9STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL))
4364*b1cdbd2cSJim JagielskiSHL9LINKFLAGS+=$(LINKFLAGS)
4365*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL9CODETYPE)"=="C"
4366*b1cdbd2cSJim Jagielski
4367*b1cdbd2cSJim JagielskiSHL9RPATH*=OOO
4368*b1cdbd2cSJim JagielskiLINKFLAGSRUNPATH_$(SHL9RPATH)*=/ERROR:/Bad_SHL9RPATH_value
4369*b1cdbd2cSJim JagielskiSHL9LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL9RPATH))
4370*b1cdbd2cSJim Jagielski
4371*b1cdbd2cSJim Jagielski.IF "$(SHL9USE_EXPORTS)"=="" || "$(GUI)"=="OS2"
4372*b1cdbd2cSJim JagielskiSHL9DEF*=$(MISC)/$(SHL9TARGET).def
4373*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL9USE_EXPORTS)"==""
4374*b1cdbd2cSJim Jagielski
4375*b1cdbd2cSJim JagielskiEXTRALIBPATHS9=$(EXTRALIBPATHS)
4376*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
4377*b1cdbd2cSJim Jagielski.IF "$(SHL9NOCHECK)"==""
4378*b1cdbd2cSJim Jagielski.IF "$(SOLAR_STLLIBPATH)"!=""
4379*b1cdbd2cSJim JagielskiEXTRALIBPATHS9+=-L$(SOLAR_STLLIBPATH)
4380*b1cdbd2cSJim Jagielski.ENDIF
4381*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL9NOCHECK)"!=""
4382*b1cdbd2cSJim Jagielski.ENDIF
4383*b1cdbd2cSJim Jagielski#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4384*b1cdbd2cSJim Jagielski#+++++++++++    version object      ++++++++++++++++++++++++++++++++++++++++
4385*b1cdbd2cSJim Jagielski#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4386*b1cdbd2cSJim Jagielski
4387*b1cdbd2cSJim Jagielski.IF "$(L10N_framework)"==""
4388*b1cdbd2cSJim Jagielski.IF "$(VERSIONOBJ)"!=""
4389*b1cdbd2cSJim JagielskiSHL9VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL9TARGET))}$(VERSIONOBJ:f)
4390*b1cdbd2cSJim JagielskiUSE_VERSIONH:=$(INCCOM)/$(SHL9VERSIONOBJ:b).h
4391*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "UNX"
4392*b1cdbd2cSJim JagielskiSHL9VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL9TARGET))}$(VERSIONOBJ:f:s/.o/.obj/)
4393*b1cdbd2cSJim Jagielski.ELSE           # "$(GUI)" == "UNX"
4394*b1cdbd2cSJim JagielskiSHL9VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL9TARGET))}$(VERSIONOBJ:f)
4395*b1cdbd2cSJim Jagielski.ENDIF          # "$(GUI)" == "UNX"
4396*b1cdbd2cSJim Jagielski$(MISC)/$(SHL9VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL9VERSIONOBJ:b).h
4397*b1cdbd2cSJim Jagielski#    $(COPY) $(SOLARENV)/src/version.c $@
4398*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL9VERSIONOBJ:b).h/ > $@
4399*b1cdbd2cSJim Jagielski
4400*b1cdbd2cSJim Jagielski.INIT : $(SHL9VERSIONOBJDEP)
4401*b1cdbd2cSJim Jagielski.ENDIF			# "$(VERSIONOBJ)"!=""
4402*b1cdbd2cSJim Jagielski.ENDIF
4403*b1cdbd2cSJim Jagielski
4404*b1cdbd2cSJim Jagielski.IF "$(GUI)" != "UNX"
4405*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
4406*b1cdbd2cSJim Jagielski.IF "$(SHL9IMPLIB)" == ""
4407*b1cdbd2cSJim JagielskiSHL9IMPLIB=i$(TARGET)_t9
4408*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL9IMPLIB)" == ""
4409*b1cdbd2cSJim Jagielski.IF "$(COM)" != "GCC"
4410*b1cdbd2cSJim JagielskiUSE_9IMPLIB=-implib:$(LB)/$(SHL9IMPLIB).lib
4411*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)" != "GCC"
4412*b1cdbd2cSJim JagielskiSHL9IMPLIBN=$(LB)/$(SHL9IMPLIB).lib
4413*b1cdbd2cSJim JagielskiALLTAR : $(SHL9IMPLIBN)
4414*b1cdbd2cSJim Jagielski
4415*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"==""
4416*b1cdbd2cSJim JagielskiUSE_9IMPLIB_DEPS=$(LB)/$(SHL9IMPLIB).lib
4417*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"==""
4418*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
4419*b1cdbd2cSJim JagielskiUSE_SHL9DEF=$(SHL9DEF)
4420*b1cdbd2cSJim Jagielski.ELSE			# "$(GUI)" != "UNX"
4421*b1cdbd2cSJim JagielskiUSE_SHL9DEF=
4422*b1cdbd2cSJim JagielskiSHL9DEPN+:=$(SHL9DEPNU)
4423*b1cdbd2cSJim Jagielski
4424*b1cdbd2cSJim Jagielski.IF "$(SHL9VERSIONMAP)"==""
4425*b1cdbd2cSJim Jagielski# to activate vmaps remove "#"
4426*b1cdbd2cSJim JagielskiUSE_SHL9VERSIONMAP=$(MISC)/$(SHL9TARGET).vmap
4427*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL9VERSIONMAP)"==""
4428*b1cdbd2cSJim Jagielski
4429*b1cdbd2cSJim Jagielski.IF "$(USE_SHL9VERSIONMAP)"!=""
4430*b1cdbd2cSJim Jagielski
4431*b1cdbd2cSJim Jagielski.IF "$(SHL9FILTERFILE)"!=""
4432*b1cdbd2cSJim Jagielski.IF "$(SHL9VERSIONMAP)"!=""
4433*b1cdbd2cSJim Jagielski#eine von beiden ist zuviel
4434*b1cdbd2cSJim JagielskiUSE_SHL9VERSIONMAP=$(MISC)/$(SHL9TARGET).vmap
4435*b1cdbd2cSJim Jagielski$(USE_SHL9VERSIONMAP) .PHONY:
4436*b1cdbd2cSJim Jagielski	@echo -----------------------------
4437*b1cdbd2cSJim Jagielski	@echo you should only use versionmap OR exportfile
4438*b1cdbd2cSJim Jagielski	@echo -----------------------------
4439*b1cdbd2cSJim Jagielski#	force_dmake_to_error
4440*b1cdbd2cSJim Jagielski
4441*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL9VERSIONMAP)"!=""
4442*b1cdbd2cSJim Jagielski
4443*b1cdbd2cSJim JagielskiSHL9VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL9VERSIONMAP)
4444*b1cdbd2cSJim Jagielski
4445*b1cdbd2cSJim Jagielski$(USE_SHL9VERSIONMAP): \
4446*b1cdbd2cSJim Jagielski					$(SHL9OBJS)\
4447*b1cdbd2cSJim Jagielski					$(SHL9LIBS)\
4448*b1cdbd2cSJim Jagielski					$(SHL9FILTERFILE)
4449*b1cdbd2cSJim Jagielski	@$(RM) $@.dump
4450*b1cdbd2cSJim Jagielski.IF "$(SHL9OBJS)"!=""
4451*b1cdbd2cSJim Jagielski# dump remaining objects on the fly
4452*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
4453*b1cdbd2cSJim Jagielski	@-nm $(SHL9OBJS:s/.obj/.o/) > $@.dump
4454*b1cdbd2cSJim Jagielski.ELSE
4455*b1cdbd2cSJim Jagielski	@nm $(SHL9OBJS:s/.obj/.o/) > $@.dump
4456*b1cdbd2cSJim Jagielski.ENDIF
4457*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL9OBJS)!"=""
4458*b1cdbd2cSJim Jagielski	@$(TYPE) /dev/null $(SHL9LIBS:s/.lib/.dump/) >> $@.dump
4459*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL9INTERFACE) -f $(SHL9FILTERFILE) -m $@
4460*b1cdbd2cSJim Jagielski
4461*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL9FILTERFILE)"!=""
4462*b1cdbd2cSJim JagielskiUSE_SHL9VERSIONMAP=$(MISC)/$(SHL9TARGET).vmap
4463*b1cdbd2cSJim Jagielski$(USE_SHL9VERSIONMAP) :
4464*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)" == "TRUE"
4465*b1cdbd2cSJim Jagielski	@echo -----------------------------
4466*b1cdbd2cSJim Jagielski	@echo SHL9FILTERFILE not set!
4467*b1cdbd2cSJim Jagielski	@echo -----------------------------
4468*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
4469*b1cdbd2cSJim Jagielski	@echo dummy file to keep the dependencies for later use.
4470*b1cdbd2cSJim Jagielski.ELSE
4471*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
4472*b1cdbd2cSJim Jagielski.ENDIF
4473*b1cdbd2cSJim Jagielski#	force_dmake_to_error
4474*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL9FILTERFILE)"!=""
4475*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_SHL9VERSIONMAP)"!=""
4476*b1cdbd2cSJim Jagielski
4477*b1cdbd2cSJim Jagielski#and now for the plain non-generic way...
4478*b1cdbd2cSJim Jagielski.IF "$(SHL9VERSIONMAP)"!=""
4479*b1cdbd2cSJim JagielskiUSE_SHL9VERSIONMAP=$(MISC)/$(SHL9VERSIONMAP:b)_$(SHL9TARGET)$(SHL9VERSIONMAP:e)
4480*b1cdbd2cSJim JagielskiSHL9VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL9VERSIONMAP)
4481*b1cdbd2cSJim Jagielski
4482*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
4483*b1cdbd2cSJim Jagielski$(USE_SHL9VERSIONMAP): $(SHL9OBJS) $(SHL9LIBS)
4484*b1cdbd2cSJim Jagielski.ENDIF
4485*b1cdbd2cSJim Jagielski
4486*b1cdbd2cSJim Jagielski# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@
4487*b1cdbd2cSJim Jagielski# even if the $(AWK) part fails:
4488*b1cdbd2cSJim Jagielski$(USE_SHL9VERSIONMAP) .ERRREMOVE: $(SHL9VERSIONMAP)
4489*b1cdbd2cSJim Jagielski	@@-$(RM) -f $@
4490*b1cdbd2cSJim Jagielski# The following files will only be generated and needed on Mac OS X as temporary files
4491*b1cdbd2cSJim Jagielski# in order to generate exported symbols list out of Linux/Solaris map files
4492*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
4493*b1cdbd2cSJim Jagielski	@-$(RM) -f $@.symregexp >& $(NULLDEV)
4494*b1cdbd2cSJim Jagielski	@-$(RM) -f $@.expsymlist >& $(NULLDEV)
4495*b1cdbd2cSJim Jagielski.ENDIF
4496*b1cdbd2cSJim Jagielski# Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what
4497*b1cdbd2cSJim Jagielski# happens if somebody will change it in the future
4498*b1cdbd2cSJim Jagielski.IF "$(COMID)"=="gcc3"
4499*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL9VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@
4500*b1cdbd2cSJim Jagielski.ELIF "$(COMNAME)"=="sunpro5"
4501*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL9VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@
4502*b1cdbd2cSJim Jagielski.ELSE           # "$(COMID)"=="gcc3"
4503*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL9VERSIONMAP) > $@
4504*b1cdbd2cSJim Jagielski.ENDIF          # "$(COMID)"=="gcc3"
4505*b1cdbd2cSJim Jagielski	@chmod a+w $@
4506*b1cdbd2cSJim Jagielski# Mac OS X post-processing generate an exported symbols list from the generated map file
4507*b1cdbd2cSJim Jagielski# for details on exported symbols list see man ld on Mac OS X
4508*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
4509*b1cdbd2cSJim Jagielski	@-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols
4510*b1cdbd2cSJim Jagielski	@-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp
4511*b1cdbd2cSJim Jagielski# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
4512*b1cdbd2cSJim Jagielski# Extract RTTI symbols from all the objects that will be used to build a shared library
4513*b1cdbd2cSJim Jagielski.IF "$(SHL9OBJS)"!=""
4514*b1cdbd2cSJim Jagielski	-echo $(foreach,i,$(SHL9OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
4515*b1cdbd2cSJim Jagielski.ENDIF
4516*b1cdbd2cSJim Jagielski.IF "$(SHL9LIBS)"!=""
4517*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL9LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
4518*b1cdbd2cSJim Jagielski.ENDIF
4519*b1cdbd2cSJim Jagielski# overwrite the map file generate into the local output tree with the generated
4520*b1cdbd2cSJim Jagielski# exported symbols list
4521*b1cdbd2cSJim Jagielski	cp $@.exported-symbols $@
4522*b1cdbd2cSJim Jagielski.ENDIF # .IF "$(OS)"=="MACOSX"
4523*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL9VERSIONMAP)"!=""
4524*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_SHL9VERSIONMAP)"!=""
4525*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" != "UNX"
4526*b1cdbd2cSJim Jagielski
4527*b1cdbd2cSJim Jagielski.IF "$(UNIXVERSIONNAMES)"!=""
4528*b1cdbd2cSJim Jagielski.IF "$(OS)"!="MACOSX"
4529*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="UNX"
4530*b1cdbd2cSJim JagielskiSHL9SONAME=\"$(SONAME_SWITCH)$(SHL9TARGETN:f)\"
4531*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)"!="UNX"
4532*b1cdbd2cSJim Jagielski.ENDIF			# "$(OS)"!="MACOSX"
4533*b1cdbd2cSJim Jagielski.ENDIF			# "$(UNIXVERSIONNAMES)"!=""
4534*b1cdbd2cSJim Jagielski
4535*b1cdbd2cSJim Jagielski.IF "$(SHL9RES)"!=""
4536*b1cdbd2cSJim JagielskiSHL9ALLRES+=$(SHL9RES)
4537*b1cdbd2cSJim JagielskiSHL9LINKRES*=$(MISC)/$(SHL9TARGET).res
4538*b1cdbd2cSJim JagielskiSHL9LINKRESO*=$(MISC)/$(SHL9TARGET)_res.o
4539*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL9RES)"!=""
4540*b1cdbd2cSJim Jagielski
4541*b1cdbd2cSJim Jagielski.IF "$(SHL9DEFAULTRES)$(use_shl_versions)"!=""
4542*b1cdbd2cSJim JagielskiSHL9DEFAULTRES*=$(MISC)/$(SHL9TARGET)_def.res
4543*b1cdbd2cSJim JagielskiSHL9ALLRES+=$(SHL9DEFAULTRES)
4544*b1cdbd2cSJim JagielskiSHL9LINKRES*=$(MISC)/$(SHL9TARGET).res
4545*b1cdbd2cSJim JagielskiSHL9LINKRESO*=$(MISC)/$(SHL9TARGET)_res.o
4546*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL9DEFAULTRES)$(use_shl_versions)"!=""
4547*b1cdbd2cSJim Jagielski
4548*b1cdbd2cSJim Jagielski#.IF "$(SHL9TARGETN)"!=""
4549*b1cdbd2cSJim Jagielski
4550*b1cdbd2cSJim Jagielski.IF "$(linkinc)"!=""
4551*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
4552*b1cdbd2cSJim Jagielski.IF "$(SHL9LIBS)"!=""
4553*b1cdbd2cSJim Jagielski$(MISC)/$(SHL9TARGET)_linkinc.ls .PHONY:
4554*b1cdbd2cSJim Jagielski	@@-$(RM) $@
4555*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL9LIBS) $(i:s/.lib/.lin/)) >> $@
4556*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL9LIBS)"!=""
4557*b1cdbd2cSJim Jagielski.ENDIF
4558*b1cdbd2cSJim Jagielski
4559*b1cdbd2cSJim JagielskiLINKINCTARGETS+=$(MISC)/$(SHL9TARGETN:b)_linkinc.ls
4560*b1cdbd2cSJim Jagielski$(SHL9TARGETN) : $(LINKINCTARGETS)
4561*b1cdbd2cSJim Jagielski
4562*b1cdbd2cSJim Jagielski.ELSE
4563*b1cdbd2cSJim Jagielski.IF "$(SHL9USE_EXPORTS)"=="name"
4564*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
4565*b1cdbd2cSJim Jagielski.IF "$(COM)"!="GCC"
4566*b1cdbd2cSJim Jagielski.IF "$(SHL9LIBS)"!=""
4567*b1cdbd2cSJim JagielskiSHL9LINKLIST=$(MISC)/$(SHL9TARGET)_link.lst
4568*b1cdbd2cSJim JagielskiSHL9LINKLISTPARAM=@$(SHL9LINKLIST)
4569*b1cdbd2cSJim Jagielski$(SHL9LINKLIST) : $(SHL9LIBS)
4570*b1cdbd2cSJim Jagielski    @@-$(RM) $@
4571*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL9LIBS) $(i:s/.lib/.lin/)) >> $@
4572*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL9LIBS)"!=""
4573*b1cdbd2cSJim Jagielski.ENDIF          # "$(COM)"!="GCC"
4574*b1cdbd2cSJim Jagielski.ENDIF
4575*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL9USE_EXPORTS)"=="name"
4576*b1cdbd2cSJim Jagielski
4577*b1cdbd2cSJim Jagielski$(MISC)/%linkinc.ls:
4578*b1cdbd2cSJim Jagielski	@echo . > $@
4579*b1cdbd2cSJim Jagielski.ENDIF          # "$(linkinc)"!=""
4580*b1cdbd2cSJim Jagielski
4581*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "OS2"
4582*b1cdbd2cSJim Jagielski#21/02/2006 YD dll names must be 8.3, invoke fix script
4583*b1cdbd2cSJim Jagielski#check osl/os2/module.c/osl_loadModule()
4584*b1cdbd2cSJim JagielskiSHL9TARGET8=$(shell @fix_shl.cmd $(SHL9TARGET))
4585*b1cdbd2cSJim Jagielski.ENDIF
4586*b1cdbd2cSJim Jagielski
4587*b1cdbd2cSJim Jagielski
4588*b1cdbd2cSJim Jagielski$(SHL9TARGETN) : \
4589*b1cdbd2cSJim Jagielski					$(SHL9OBJS)\
4590*b1cdbd2cSJim Jagielski					$(SHL9LIBS)\
4591*b1cdbd2cSJim Jagielski					$(USE_9IMPLIB_DEPS)\
4592*b1cdbd2cSJim Jagielski					$(USE_SHL9DEF)\
4593*b1cdbd2cSJim Jagielski					$(USE_SHL9VERSIONMAP)\
4594*b1cdbd2cSJim Jagielski					$(SHL9RES)\
4595*b1cdbd2cSJim Jagielski					$(SHL9DEPN) \
4596*b1cdbd2cSJim Jagielski					$(SHL9LINKLIST)
4597*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f)
4598*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT"
4599*b1cdbd2cSJim Jagielski.IF "$(SHL9DEFAULTRES)"!=""
4600*b1cdbd2cSJim Jagielski	@@-$(RM) $(MISC)/$(SHL9DEFAULTRES:b).rc
4601*b1cdbd2cSJim Jagielski.IF "$(SHL9ICON)" != ""
4602*b1cdbd2cSJim Jagielski	@echo 1 ICON $(SHL9ICON) >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4603*b1cdbd2cSJim Jagielski.ENDIF
4604*b1cdbd2cSJim Jagielski.IF "$(use_shl_versions)" != ""
4605*b1cdbd2cSJim Jagielski.IF "$(SHL9ADD_VERINFO)"!=""
4606*b1cdbd2cSJim Jagielski	@echo $(EMQ)#include $(EMQ)"$(SHL9ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4607*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL9ADD_VERINFO)"!=""
4608*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4609*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4610*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4611*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL9ADD_VERINFO)"!=""
4612*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4613*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ORG_NAME	$(SHL9TARGET)$(DLLPOST) >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4614*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define INTERNAL_NAME $(SHL9TARGET:b) >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4615*b1cdbd2cSJim Jagielski	@echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4616*b1cdbd2cSJim Jagielski.ENDIF			# "$(use_shl_versions)" != ""
4617*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL9DEFAULTRES:b).rc
4618*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL9DEFAULTRES)"!=""
4619*b1cdbd2cSJim Jagielski.IF "$(SHL9ALLRES)"!=""
4620*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(TYPE) $(SHL9ALLRES) > $(SHL9LINKRES)
4621*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"
4622*b1cdbd2cSJim Jagielski	windres $(SHL9LINKRES) $(SHL9LINKRESO)
4623*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
4624*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL9ALLRES)"!=""
4625*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"	# always have to call dlltool explicitly as ld cannot handle # comment in .def
4626*b1cdbd2cSJim Jagielski	@echo dlltool --dllname $(SHL9TARGET)$(DLLPOST) \
4627*b1cdbd2cSJim Jagielski		--kill-at \\ > $(MISC)/$(TARGET).$(@:b)_9.cmd
4628*b1cdbd2cSJim Jagielski	@noop $(assign ALL9OBJLIST:=$(STDOBJ) $(SHL9OBJS) $(SHL9LINKRESO) $(shell $(TYPE) /dev/null $(SHL9LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g))
4629*b1cdbd2cSJim Jagielski.IF "$(DEFLIB9NAME)"!=""	# do not have to include objs
4630*b1cdbd2cSJim Jagielski	@noop $(assign DEF9OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB9NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g))
4631*b1cdbd2cSJim Jagielski	@noop $(foreach,i,$(DEF9OBJLIST) $(assign ALL9OBJLIST:=$(ALL9OBJLIST:s?$i??)))
4632*b1cdbd2cSJim Jagielski.ENDIF			# "$(DEFLIB9NAME)"!=""
4633*b1cdbd2cSJim Jagielski	@echo	--output-exp $(MISC)/$(@:b)_exp.o \\ >> $(MISC)/$(TARGET).$(@:b)_9.cmd
4634*b1cdbd2cSJim Jagielski.IF "$(SHL9DEF)"!=""
4635*b1cdbd2cSJim Jagielski	@echo	--input-def $(SHL9DEF) \\ >> $(MISC)/$(TARGET).$(@:b)_9.cmd
4636*b1cdbd2cSJim Jagielski.ELSE
4637*b1cdbd2cSJim Jagielski	@echo	$(SHL9VERSIONOBJ) $(SHL9DESCRIPTIONOBJ) \\ >> $(MISC)/$(TARGET).$(@:b)_9.cmd
4638*b1cdbd2cSJim Jagielski.ENDIF
4639*b1cdbd2cSJim Jagielski	@echo	$(ALL9OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_9.cmd
4640*b1cdbd2cSJim Jagielski	@echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \
4641*b1cdbd2cSJim Jagielski		$(STDOBJ) $(SHL9VERSIONOBJ) $(SHL9DESCRIPTIONOBJ) $(SHL9OBJS) $(SHL9LINKRESO) \
4642*b1cdbd2cSJim Jagielski		`$(TYPE) /dev/null $(SHL9LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
4643*b1cdbd2cSJim Jagielski		-Wl,--exclude-libs,ALL,--start-group $(SHL9STDLIBS) -Wl,--end-group \
4644*b1cdbd2cSJim Jagielski		$(SHL9STDSHL) $(STDSHL9) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \
4645*b1cdbd2cSJim Jagielski		-Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_9.cmd
4646*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
4647*b1cdbd2cSJim Jagielski	@$(TYPE)  $(MISC)/$(TARGET).$(@:b)_9.cmd
4648*b1cdbd2cSJim Jagielski  .ENDIF
4649*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_9.cmd
4650*b1cdbd2cSJim Jagielski.ELSE
4651*b1cdbd2cSJim Jagielski.IF "$(linkinc)"==""
4652*b1cdbd2cSJim Jagielski.IF "$(SHL9USE_EXPORTS)"!="name"
4653*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
4654*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL9LINKER) @$(mktmp \
4655*b1cdbd2cSJim Jagielski		$(SHL9LINKFLAGS) \
4656*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) \
4657*b1cdbd2cSJim Jagielski		$(SHL9STACK) $(SHL9BASEX)	\
4658*b1cdbd2cSJim Jagielski		-out:$@ \
4659*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:b).map \
4660*b1cdbd2cSJim Jagielski		-def:$(SHL9DEF) \
4661*b1cdbd2cSJim Jagielski		$(USE_9IMPLIB) \
4662*b1cdbd2cSJim Jagielski		$(STDOBJ) \
4663*b1cdbd2cSJim Jagielski		$(SHL9VERSIONOBJ) $(SHL9OBJS) \
4664*b1cdbd2cSJim Jagielski		$(SHL9LIBS) \
4665*b1cdbd2cSJim Jagielski		$(SHL9STDLIBS) \
4666*b1cdbd2cSJim Jagielski		$(SHL9STDSHL) $(STDSHL9) \
4667*b1cdbd2cSJim Jagielski		$(SHL9LINKRES) \
4668*b1cdbd2cSJim Jagielski	)
4669*b1cdbd2cSJim Jagielski# double check if target was really written... still making sense?
4670*b1cdbd2cSJim Jagielski    @@$(LS) $@
4671*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
4672*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
4673*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
4674*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
4675*b1cdbd2cSJim Jagielski.ELSE
4676*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
4677*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
4678*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
4679*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
4680*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)"!=""
4681*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL9LINKER) @$(mktmp	$(SHL9LINKFLAGS)			\
4682*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL9BASEX)		\
4683*b1cdbd2cSJim Jagielski		$(SHL9STACK) -out:$(SHL9TARGETN)	\
4684*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:B).map				\
4685*b1cdbd2cSJim Jagielski		$(LB)/$(SHL9IMPLIB).exp				\
4686*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
4687*b1cdbd2cSJim Jagielski		$(SHL9OBJS) $(SHL9VERSIONOBJ) \
4688*b1cdbd2cSJim Jagielski		$(SHL9LIBS)                         \
4689*b1cdbd2cSJim Jagielski		$(SHL9STDLIBS)                      \
4690*b1cdbd2cSJim Jagielski		$(SHL9STDSHL) $(STDSHL9)                           \
4691*b1cdbd2cSJim Jagielski		$(SHL9LINKRES) \
4692*b1cdbd2cSJim Jagielski	)
4693*b1cdbd2cSJim Jagielski# double check if target was really written... still making sense?
4694*b1cdbd2cSJim Jagielski    @@$(LS) $@
4695*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
4696*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
4697*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
4698*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
4699*b1cdbd2cSJim Jagielski.ELSE
4700*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
4701*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
4702*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
4703*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
4704*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"!=""
4705*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL9USE_EXPORTS)"!="name"
4706*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL9LINKER) @$(mktmp	$(SHL9LINKFLAGS)			\
4707*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL9BASEX)		\
4708*b1cdbd2cSJim Jagielski		$(SHL9STACK) -out:$(SHL9TARGETN)	\
4709*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:B).map				\
4710*b1cdbd2cSJim Jagielski		$(USE_9IMPLIB) \
4711*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
4712*b1cdbd2cSJim Jagielski		$(SHL9OBJS) $(SHL9VERSIONOBJ))   \
4713*b1cdbd2cSJim Jagielski		$(SHL9LINKLISTPARAM) \
4714*b1cdbd2cSJim Jagielski		@$(mktmp $(SHL9STDLIBS)                      \
4715*b1cdbd2cSJim Jagielski		$(SHL9STDSHL) $(STDSHL9)                           \
4716*b1cdbd2cSJim Jagielski		$(SHL9LINKRES) \
4717*b1cdbd2cSJim Jagielski	)
4718*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
4719*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
4720*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
4721*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
4722*b1cdbd2cSJim Jagielski.ELSE
4723*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
4724*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
4725*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
4726*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
4727*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL9USE_EXPORTS)"!="name"
4728*b1cdbd2cSJim Jagielski.ELSE			# "$(linkinc)"==""
4729*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL9TARGET).lnk
4730*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL9TARGET).lst
4731*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(TYPE) $(mktmp \
4732*b1cdbd2cSJim Jagielski		$(SHL9LINKFLAGS) \
4733*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL9BASEX) \
4734*b1cdbd2cSJim Jagielski		$(SHL9STACK) $(MAPFILE) \
4735*b1cdbd2cSJim Jagielski		-out:$@ \
4736*b1cdbd2cSJim Jagielski		$(LB)/$(SHL9IMPLIB).exp \
4737*b1cdbd2cSJim Jagielski		$(STDOBJ) \
4738*b1cdbd2cSJim Jagielski		$(SHL9OBJS) \
4739*b1cdbd2cSJim Jagielski		$(SHL9STDLIBS) \
4740*b1cdbd2cSJim Jagielski		$(SHL9STDSHL) $(STDSHL9) \
4741*b1cdbd2cSJim Jagielski		$(SHL9LINKRES) \
4742*b1cdbd2cSJim Jagielski		) >> $(MISC)/$(SHL9TARGET).lnk
4743*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL9TARGETN:b)_linkinc.ls  >> $(MISC)/$(SHL9TARGET).lnk
4744*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(SHL9LINKER) @$(MISC)/$(SHL9TARGET).lnk
4745*b1cdbd2cSJim Jagielski		@echo linking $@.manifest ...
4746*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
4747*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
4748*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
4749*b1cdbd2cSJim Jagielski.ELSE
4750*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
4751*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
4752*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
4753*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
4754*b1cdbd2cSJim Jagielski.ENDIF			# "$(linkinc)"==""
4755*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
4756*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "WNT"
4757*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="UNX"
4758*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
4759*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(@:b).list
4760*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(TARGET).$(@:b)_9.cmd
4761*b1cdbd2cSJim Jagielski	@echo $(STDSLO) $(SHL9OBJS:s/.obj/.o/) \
4762*b1cdbd2cSJim Jagielski	$(SHL9VERSIONOBJ) \
4763*b1cdbd2cSJim Jagielski	`cat /dev/null $(SHL9LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list
4764*b1cdbd2cSJim Jagielski	@echo -n $(SHL9LINKER) $(SHL9LINKFLAGS) $(SHL9VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \
4765*b1cdbd2cSJim Jagielski	$(SHL9STDLIBS) $(SHL9ARCHIVES) $(SHL9STDSHL) $(STDSHL9) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_9.cmd
4766*b1cdbd2cSJim Jagielski    @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \
4767*b1cdbd2cSJim Jagielski        `cat $(MISC)/$(TARGET).$(@:b)_9.cmd` \
4768*b1cdbd2cSJim Jagielski        >> $(MISC)/$(TARGET).$(@:b)_9.cmd
4769*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
4770*b1cdbd2cSJim Jagielski	@cat $(MISC)/$(TARGET).$(@:b)_9.cmd
4771*b1cdbd2cSJim Jagielski  .ENDIF
4772*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_9.cmd
4773*b1cdbd2cSJim Jagielski    @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \
4774*b1cdbd2cSJim Jagielski        shl $(SHL9RPATH) $@
4775*b1cdbd2cSJim Jagielski.IF "$(SHL9CREATEJNILIB)"!=""
4776*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f).jnilib
4777*b1cdbd2cSJim Jagielski	@macosx-create-bundle $@
4778*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL9CREATEJNILIB)"!=""
4779*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
4780*b1cdbd2cSJim Jagielski.IF "$(SHL9NOCHECK)"==""
4781*b1cdbd2cSJim Jagielski	$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS9) $(SHL9TARGETN)
4782*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL9NOCHECK)"!=""
4783*b1cdbd2cSJim Jagielski.ENDIF
4784*b1cdbd2cSJim Jagielski.ELSE			# "$(OS)"=="MACOSX"
4785*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(TARGET).$(@:b)_9.cmd
4786*b1cdbd2cSJim Jagielski	@echo $(SHL9LINKER) $(SHL9LINKFLAGS) $(SHL9SONAME) $(LINKFLAGSSHL) $(SHL9VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL9OBJS:s/.obj/.o/) \
4787*b1cdbd2cSJim Jagielski	$(SHL9VERSIONOBJ) -o $@ \
4788*b1cdbd2cSJim Jagielski	`cat /dev/null $(SHL9LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
4789*b1cdbd2cSJim Jagielski	$(SHL9STDLIBS) $(SHL9ARCHIVES) $(SHL9STDSHL) $(STDSHL9) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_9.cmd
4790*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
4791*b1cdbd2cSJim Jagielski	@cat $(MISC)/$(TARGET).$(@:b)_9.cmd
4792*b1cdbd2cSJim Jagielski  .ENDIF
4793*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_9.cmd
4794*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
4795*b1cdbd2cSJim Jagielski.IF "$(SHL9NOCHECK)"==""
4796*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)-$(RM) $(SHL9TARGETN:d)check_$(SHL9TARGETN:f)
4797*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RENAME) $(SHL9TARGETN) $(SHL9TARGETN:d)check_$(SHL9TARGETN:f)
4798*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)"=="TRUE"
4799*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS9) $(SHL9TARGETN:d)check_$(SHL9TARGETN:f)
4800*b1cdbd2cSJim Jagielski.ELSE
4801*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS9) -- -s $(SHL9TARGETN:d)check_$(SHL9TARGETN:f)
4802*b1cdbd2cSJim Jagielski.ENDIF
4803*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL9NOCHECK)"!=""
4804*b1cdbd2cSJim Jagielski.ENDIF			# "$(UPDATER)"=="YES"
4805*b1cdbd2cSJim Jagielski.ENDIF			# "$(OS)"=="MACOSX"
4806*b1cdbd2cSJim Jagielski.IF "$(UNIXVERSIONNAMES)"!=""
4807*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RM) $(LB)/$(SHL9TARGETN:b)
4808*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)cd $(LB) && ln -s $(SHL9TARGETN:f) $(SHL9TARGETN:b)
4809*b1cdbd2cSJim Jagielski.ENDIF			# "$(UNIXVERSIONNAMES)"!=""
4810*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)" == "TRUE"
4811*b1cdbd2cSJim Jagielski	@ls -l $@
4812*b1cdbd2cSJim Jagielski.ENDIF
4813*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "UNX"
4814*b1cdbd2cSJim Jagielski
4815*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "OS2"
4816*b1cdbd2cSJim Jagielski
4817*b1cdbd2cSJim Jagielski.IF "$(SHL9DEFAULTRES)"!=""
4818*b1cdbd2cSJim Jagielski	@+-$(RM) $(MISC)/$(SHL9DEFAULTRES:b).rc > $(NULLDEV)
4819*b1cdbd2cSJim Jagielski.IF "$(SHL9ICON)" != ""
4820*b1cdbd2cSJim Jagielski	@-+echo 1 ICON $(SHL9ICON) >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4821*b1cdbd2cSJim Jagielski.ENDIF
4822*b1cdbd2cSJim Jagielski.IF "$(use_shl_versions)" != ""
4823*b1cdbd2cSJim Jagielski.IF "$(SHL9ADD_VERINFO)"!=""
4824*b1cdbd2cSJim Jagielski	@-+echo $(EMQ)#include $(EMQ)"$(SHL9ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4825*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL9ADD_VERINFO)"!=""
4826*b1cdbd2cSJim Jagielski	@-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4827*b1cdbd2cSJim Jagielski#	@-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL9DEFAULTRES:b).rc
4828*b1cdbd2cSJim Jagielski.ENDIF			# "$(use_shl_versions)" != ""
4829*b1cdbd2cSJim Jagielski# YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR)
4830*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL9DEFAULTRES:b).rc
4831*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL9DEFAULTRES)"!=""
4832*b1cdbd2cSJim Jagielski
4833*b1cdbd2cSJim Jagielski.IF "$(SHL9ALLRES)"!=""
4834*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(TYPE) $(SHL9ALLRES) > $(SHL9LINKRES)
4835*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL9ALLRES)"!=""
4836*b1cdbd2cSJim Jagielski
4837*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
4838*b1cdbd2cSJim Jagielski
4839*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL9LINKER) $(SHL9LINKFLAGS) $(LINKFLAGSSHL) -o $@ \
4840*b1cdbd2cSJim Jagielski		$(SHL9DEF) \
4841*b1cdbd2cSJim Jagielski		$(STDOBJ) \
4842*b1cdbd2cSJim Jagielski		-L$(LB) \
4843*b1cdbd2cSJim Jagielski		-L$(SOLARVERSION)/$(INPATH)/lib \
4844*b1cdbd2cSJim Jagielski		$(SHL9OBJS) $(SHL9VERSIONOBJ) \
4845*b1cdbd2cSJim Jagielski		$(SHL9LIBS) \
4846*b1cdbd2cSJim Jagielski		$(SHL9LINKRES) \
4847*b1cdbd2cSJim Jagielski		$(SHL9STDLIBS) \
4848*b1cdbd2cSJim Jagielski		$(SHL9STDSHL) $(STDSHL9)
4849*b1cdbd2cSJim Jagielski
4850*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)"!=""
4851*b1cdbd2cSJim Jagielski
4852*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL9LINKER) $(SHL9LINKFLAGS)			\
4853*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL9BASEX)		\
4854*b1cdbd2cSJim Jagielski		$(SHL9STACK) -o $(SHL9TARGETN)	\
4855*b1cdbd2cSJim Jagielski		$(SHL9DEF) \
4856*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
4857*b1cdbd2cSJim Jagielski		-L$(LB) \
4858*b1cdbd2cSJim Jagielski		-L$(SOLARVERSION)/$(INPATH)/lib \
4859*b1cdbd2cSJim Jagielski		$(SHL9OBJS) $(SHL9VERSIONOBJ) \
4860*b1cdbd2cSJim Jagielski		$(SHL9LIBS) \
4861*b1cdbd2cSJim Jagielski		$(SHL9LINKRES) \
4862*b1cdbd2cSJim Jagielski		$(SHL9STDLIBS) \
4863*b1cdbd2cSJim Jagielski		$(SHL9STDSHL) $(STDSHL9)
4864*b1cdbd2cSJim Jagielski
4865*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"!=""
4866*b1cdbd2cSJim Jagielski
4867*b1cdbd2cSJim Jagielski.IF "$(SHL9USE_EXPORTS)"=="name"
4868*b1cdbd2cSJim Jagielski#03/11/2012  if 'name' is used, export from DLL file (only names, no ordinals)
4869*b1cdbd2cSJim Jagielski	@echo Build import library from DLL file.
4870*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(LB)/$(SHL9TARGETN:b).lib $@
4871*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL9USE_EXPORTS)"==""
4872*b1cdbd2cSJim Jagielski
4873*b1cdbd2cSJim Jagielski.IF "$(SHL9TARGET8)" != "$(SHL9TARGET)"
4874*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL9TARGET8).dll
4875*b1cdbd2cSJim Jagielski.ENDIF
4876*b1cdbd2cSJim Jagielski
4877*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "OS2"
4878*b1cdbd2cSJim Jagielski
4879*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL9TARGETN)"!=""
4880*b1cdbd2cSJim Jagielski
4881*b1cdbd2cSJim Jagielski# unroll begin
4882*b1cdbd2cSJim Jagielski
4883*b1cdbd2cSJim Jagielski.IF "$(SHL10TARGETN)"!=""
4884*b1cdbd2cSJim Jagielski
4885*b1cdbd2cSJim Jagielski.IF "$(OS)"=="AIX"
4886*b1cdbd2cSJim JagielskiSHL10STDLIBS=
4887*b1cdbd2cSJim Jagielski.ENDIF
4888*b1cdbd2cSJim Jagielski
4889*b1cdbd2cSJim Jagielski.IF "$(SHLLINKARCONLY)" != ""
4890*b1cdbd2cSJim JagielskiSHL10STDLIBS=
4891*b1cdbd2cSJim JagielskiSTDSHL=
4892*b1cdbd2cSJim Jagielski.ELSE
4893*b1cdbd2cSJim JagielskiSHL10ARCHIVES=
4894*b1cdbd2cSJim Jagielski.ENDIF
4895*b1cdbd2cSJim Jagielski
4896*b1cdbd2cSJim Jagielski# decide how to link
4897*b1cdbd2cSJim Jagielski.IF "$(SHL10CODETYPE)"=="C"
4898*b1cdbd2cSJim JagielskiSHL10LINKER=$(LINKC)
4899*b1cdbd2cSJim JagielskiSHL10STDSHL=$(subst,CPPRUNTIME, $(STDSHL))
4900*b1cdbd2cSJim JagielskiSHL10LINKFLAGS+=$(LINKCFLAGS)
4901*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL10CODETYPE)"=="C"
4902*b1cdbd2cSJim JagielskiSHL10LINKER=$(LINK)
4903*b1cdbd2cSJim JagielskiSHL10STDSHL=$(subst,CPPRUNTIME,$(STDLIBCPP) $(STDSHL))
4904*b1cdbd2cSJim JagielskiSHL10LINKFLAGS+=$(LINKFLAGS)
4905*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL10CODETYPE)"=="C"
4906*b1cdbd2cSJim Jagielski
4907*b1cdbd2cSJim JagielskiSHL10RPATH*=OOO
4908*b1cdbd2cSJim JagielskiLINKFLAGSRUNPATH_$(SHL10RPATH)*=/ERROR:/Bad_SHL10RPATH_value
4909*b1cdbd2cSJim JagielskiSHL10LINKFLAGS+=$(LINKFLAGSRUNPATH_$(SHL10RPATH))
4910*b1cdbd2cSJim Jagielski
4911*b1cdbd2cSJim Jagielski.IF "$(SHL10USE_EXPORTS)"=="" || "$(GUI)"=="OS2"
4912*b1cdbd2cSJim JagielskiSHL10DEF*=$(MISC)/$(SHL10TARGET).def
4913*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL10USE_EXPORTS)"==""
4914*b1cdbd2cSJim Jagielski
4915*b1cdbd2cSJim JagielskiEXTRALIBPATHS10=$(EXTRALIBPATHS)
4916*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
4917*b1cdbd2cSJim Jagielski.IF "$(SHL10NOCHECK)"==""
4918*b1cdbd2cSJim Jagielski.IF "$(SOLAR_STLLIBPATH)"!=""
4919*b1cdbd2cSJim JagielskiEXTRALIBPATHS10+=-L$(SOLAR_STLLIBPATH)
4920*b1cdbd2cSJim Jagielski.ENDIF
4921*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL10NOCHECK)"!=""
4922*b1cdbd2cSJim Jagielski.ENDIF
4923*b1cdbd2cSJim Jagielski#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4924*b1cdbd2cSJim Jagielski#+++++++++++    version object      ++++++++++++++++++++++++++++++++++++++++
4925*b1cdbd2cSJim Jagielski#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4926*b1cdbd2cSJim Jagielski
4927*b1cdbd2cSJim Jagielski.IF "$(L10N_framework)"==""
4928*b1cdbd2cSJim Jagielski.IF "$(VERSIONOBJ)"!=""
4929*b1cdbd2cSJim JagielskiSHL10VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL10TARGET))}$(VERSIONOBJ:f)
4930*b1cdbd2cSJim JagielskiUSE_VERSIONH:=$(INCCOM)/$(SHL10VERSIONOBJ:b).h
4931*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "UNX"
4932*b1cdbd2cSJim JagielskiSHL10VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL10TARGET))}$(VERSIONOBJ:f:s/.o/.obj/)
4933*b1cdbd2cSJim Jagielski.ELSE           # "$(GUI)" == "UNX"
4934*b1cdbd2cSJim JagielskiSHL10VERSIONOBJDEP:=$(VERSIONOBJ:d){$(subst,$(DLLPOSTFIX),_dflt $(SHL10TARGET))}$(VERSIONOBJ:f)
4935*b1cdbd2cSJim Jagielski.ENDIF          # "$(GUI)" == "UNX"
4936*b1cdbd2cSJim Jagielski$(MISC)/$(SHL10VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL10VERSIONOBJ:b).h
4937*b1cdbd2cSJim Jagielski#    $(COPY) $(SOLARENV)/src/version.c $@
4938*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL10VERSIONOBJ:b).h/ > $@
4939*b1cdbd2cSJim Jagielski
4940*b1cdbd2cSJim Jagielski.INIT : $(SHL10VERSIONOBJDEP)
4941*b1cdbd2cSJim Jagielski.ENDIF			# "$(VERSIONOBJ)"!=""
4942*b1cdbd2cSJim Jagielski.ENDIF
4943*b1cdbd2cSJim Jagielski
4944*b1cdbd2cSJim Jagielski.IF "$(GUI)" != "UNX"
4945*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
4946*b1cdbd2cSJim Jagielski.IF "$(SHL10IMPLIB)" == ""
4947*b1cdbd2cSJim JagielskiSHL10IMPLIB=i$(TARGET)_t10
4948*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL10IMPLIB)" == ""
4949*b1cdbd2cSJim Jagielski.IF "$(COM)" != "GCC"
4950*b1cdbd2cSJim JagielskiUSE_10IMPLIB=-implib:$(LB)/$(SHL10IMPLIB).lib
4951*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)" != "GCC"
4952*b1cdbd2cSJim JagielskiSHL10IMPLIBN=$(LB)/$(SHL10IMPLIB).lib
4953*b1cdbd2cSJim JagielskiALLTAR : $(SHL10IMPLIBN)
4954*b1cdbd2cSJim Jagielski
4955*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"==""
4956*b1cdbd2cSJim JagielskiUSE_10IMPLIB_DEPS=$(LB)/$(SHL10IMPLIB).lib
4957*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"==""
4958*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "WNT" || "$(GUI)" == "OS2"
4959*b1cdbd2cSJim JagielskiUSE_SHL10DEF=$(SHL10DEF)
4960*b1cdbd2cSJim Jagielski.ELSE			# "$(GUI)" != "UNX"
4961*b1cdbd2cSJim JagielskiUSE_SHL10DEF=
4962*b1cdbd2cSJim JagielskiSHL10DEPN+:=$(SHL10DEPNU)
4963*b1cdbd2cSJim Jagielski
4964*b1cdbd2cSJim Jagielski.IF "$(SHL10VERSIONMAP)"==""
4965*b1cdbd2cSJim Jagielski# to activate vmaps remove "#"
4966*b1cdbd2cSJim JagielskiUSE_SHL10VERSIONMAP=$(MISC)/$(SHL10TARGET).vmap
4967*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL10VERSIONMAP)"==""
4968*b1cdbd2cSJim Jagielski
4969*b1cdbd2cSJim Jagielski.IF "$(USE_SHL10VERSIONMAP)"!=""
4970*b1cdbd2cSJim Jagielski
4971*b1cdbd2cSJim Jagielski.IF "$(SHL10FILTERFILE)"!=""
4972*b1cdbd2cSJim Jagielski.IF "$(SHL10VERSIONMAP)"!=""
4973*b1cdbd2cSJim Jagielski#eine von beiden ist zuviel
4974*b1cdbd2cSJim JagielskiUSE_SHL10VERSIONMAP=$(MISC)/$(SHL10TARGET).vmap
4975*b1cdbd2cSJim Jagielski$(USE_SHL10VERSIONMAP) .PHONY:
4976*b1cdbd2cSJim Jagielski	@echo -----------------------------
4977*b1cdbd2cSJim Jagielski	@echo you should only use versionmap OR exportfile
4978*b1cdbd2cSJim Jagielski	@echo -----------------------------
4979*b1cdbd2cSJim Jagielski#	force_dmake_to_error
4980*b1cdbd2cSJim Jagielski
4981*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL10VERSIONMAP)"!=""
4982*b1cdbd2cSJim Jagielski
4983*b1cdbd2cSJim JagielskiSHL10VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL10VERSIONMAP)
4984*b1cdbd2cSJim Jagielski
4985*b1cdbd2cSJim Jagielski$(USE_SHL10VERSIONMAP): \
4986*b1cdbd2cSJim Jagielski					$(SHL10OBJS)\
4987*b1cdbd2cSJim Jagielski					$(SHL10LIBS)\
4988*b1cdbd2cSJim Jagielski					$(SHL10FILTERFILE)
4989*b1cdbd2cSJim Jagielski	@$(RM) $@.dump
4990*b1cdbd2cSJim Jagielski.IF "$(SHL10OBJS)"!=""
4991*b1cdbd2cSJim Jagielski# dump remaining objects on the fly
4992*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
4993*b1cdbd2cSJim Jagielski	@-nm $(SHL10OBJS:s/.obj/.o/) > $@.dump
4994*b1cdbd2cSJim Jagielski.ELSE
4995*b1cdbd2cSJim Jagielski	@nm $(SHL10OBJS:s/.obj/.o/) > $@.dump
4996*b1cdbd2cSJim Jagielski.ENDIF
4997*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL10OBJS)!"=""
4998*b1cdbd2cSJim Jagielski	@$(TYPE) /dev/null $(SHL10LIBS:s/.lib/.dump/) >> $@.dump
4999*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) $(PERL) $(SOLARENV)/bin/mapgen.pl -d $@.dump -s $(SHL10INTERFACE) -f $(SHL10FILTERFILE) -m $@
5000*b1cdbd2cSJim Jagielski
5001*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL10FILTERFILE)"!=""
5002*b1cdbd2cSJim JagielskiUSE_SHL10VERSIONMAP=$(MISC)/$(SHL10TARGET).vmap
5003*b1cdbd2cSJim Jagielski$(USE_SHL10VERSIONMAP) :
5004*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)" == "TRUE"
5005*b1cdbd2cSJim Jagielski	@echo -----------------------------
5006*b1cdbd2cSJim Jagielski	@echo SHL10FILTERFILE not set!
5007*b1cdbd2cSJim Jagielski	@echo -----------------------------
5008*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5009*b1cdbd2cSJim Jagielski	@echo dummy file to keep the dependencies for later use.
5010*b1cdbd2cSJim Jagielski.ELSE
5011*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5012*b1cdbd2cSJim Jagielski.ENDIF
5013*b1cdbd2cSJim Jagielski#	force_dmake_to_error
5014*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL10FILTERFILE)"!=""
5015*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_SHL10VERSIONMAP)"!=""
5016*b1cdbd2cSJim Jagielski
5017*b1cdbd2cSJim Jagielski#and now for the plain non-generic way...
5018*b1cdbd2cSJim Jagielski.IF "$(SHL10VERSIONMAP)"!=""
5019*b1cdbd2cSJim JagielskiUSE_SHL10VERSIONMAP=$(MISC)/$(SHL10VERSIONMAP:b)_$(SHL10TARGET)$(SHL10VERSIONMAP:e)
5020*b1cdbd2cSJim JagielskiSHL10VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL10VERSIONMAP)
5021*b1cdbd2cSJim Jagielski
5022*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
5023*b1cdbd2cSJim Jagielski$(USE_SHL10VERSIONMAP): $(SHL10OBJS) $(SHL10LIBS)
5024*b1cdbd2cSJim Jagielski.ENDIF
5025*b1cdbd2cSJim Jagielski
5026*b1cdbd2cSJim Jagielski# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@
5027*b1cdbd2cSJim Jagielski# even if the $(AWK) part fails:
5028*b1cdbd2cSJim Jagielski$(USE_SHL10VERSIONMAP) .ERRREMOVE: $(SHL10VERSIONMAP)
5029*b1cdbd2cSJim Jagielski	@@-$(RM) -f $@
5030*b1cdbd2cSJim Jagielski# The following files will only be generated and needed on Mac OS X as temporary files
5031*b1cdbd2cSJim Jagielski# in order to generate exported symbols list out of Linux/Solaris map files
5032*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
5033*b1cdbd2cSJim Jagielski	@-$(RM) -f $@.symregexp >& $(NULLDEV)
5034*b1cdbd2cSJim Jagielski	@-$(RM) -f $@.expsymlist >& $(NULLDEV)
5035*b1cdbd2cSJim Jagielski.ENDIF
5036*b1cdbd2cSJim Jagielski# Its questionable if the following condition '.IF "$(COMID)"=="gcc3"' makes sense and what
5037*b1cdbd2cSJim Jagielski# happens if somebody will change it in the future
5038*b1cdbd2cSJim Jagielski.IF "$(COMID)"=="gcc3"
5039*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL10VERSIONMAP) | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@
5040*b1cdbd2cSJim Jagielski.ELIF "$(COMNAME)"=="sunpro5"
5041*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL10VERSIONMAP) | $(GREP) -v $(IGNORE_SYMBOLS) > $@
5042*b1cdbd2cSJim Jagielski.ELSE           # "$(COMID)"=="gcc3"
5043*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO) tr -d "\015" < $(SHL10VERSIONMAP) > $@
5044*b1cdbd2cSJim Jagielski.ENDIF          # "$(COMID)"=="gcc3"
5045*b1cdbd2cSJim Jagielski	@chmod a+w $@
5046*b1cdbd2cSJim Jagielski# Mac OS X post-processing generate an exported symbols list from the generated map file
5047*b1cdbd2cSJim Jagielski# for details on exported symbols list see man ld on Mac OS X
5048*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
5049*b1cdbd2cSJim Jagielski	@-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep -v "\*\|?" > $@.exported-symbols
5050*b1cdbd2cSJim Jagielski	@-cat $@ | $(AWK) -f $(SOLARENV)/bin/unxmap-to-macosx-explist.awk | grep "\*\|?" > $@.symbols-regexp
5051*b1cdbd2cSJim Jagielski# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
5052*b1cdbd2cSJim Jagielski# Extract RTTI symbols from all the objects that will be used to build a shared library
5053*b1cdbd2cSJim Jagielski.IF "$(SHL10OBJS)"!=""
5054*b1cdbd2cSJim Jagielski	-echo $(foreach,i,$(SHL10OBJS:s/.obj/.o/) $i) | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
5055*b1cdbd2cSJim Jagielski.ENDIF
5056*b1cdbd2cSJim Jagielski.IF "$(SHL10LIBS)"!=""
5057*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)-$(TYPE) $(foreach,j,$(SHL10LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g | xargs -n1 nm -gx | $(SOLARENV)/bin/addsym-macosx.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
5058*b1cdbd2cSJim Jagielski.ENDIF
5059*b1cdbd2cSJim Jagielski# overwrite the map file generate into the local output tree with the generated
5060*b1cdbd2cSJim Jagielski# exported symbols list
5061*b1cdbd2cSJim Jagielski	cp $@.exported-symbols $@
5062*b1cdbd2cSJim Jagielski.ENDIF # .IF "$(OS)"=="MACOSX"
5063*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL10VERSIONMAP)"!=""
5064*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_SHL10VERSIONMAP)"!=""
5065*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" != "UNX"
5066*b1cdbd2cSJim Jagielski
5067*b1cdbd2cSJim Jagielski.IF "$(UNIXVERSIONNAMES)"!=""
5068*b1cdbd2cSJim Jagielski.IF "$(OS)"!="MACOSX"
5069*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="UNX"
5070*b1cdbd2cSJim JagielskiSHL10SONAME=\"$(SONAME_SWITCH)$(SHL10TARGETN:f)\"
5071*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)"!="UNX"
5072*b1cdbd2cSJim Jagielski.ENDIF			# "$(OS)"!="MACOSX"
5073*b1cdbd2cSJim Jagielski.ENDIF			# "$(UNIXVERSIONNAMES)"!=""
5074*b1cdbd2cSJim Jagielski
5075*b1cdbd2cSJim Jagielski.IF "$(SHL10RES)"!=""
5076*b1cdbd2cSJim JagielskiSHL10ALLRES+=$(SHL10RES)
5077*b1cdbd2cSJim JagielskiSHL10LINKRES*=$(MISC)/$(SHL10TARGET).res
5078*b1cdbd2cSJim JagielskiSHL10LINKRESO*=$(MISC)/$(SHL10TARGET)_res.o
5079*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL10RES)"!=""
5080*b1cdbd2cSJim Jagielski
5081*b1cdbd2cSJim Jagielski.IF "$(SHL10DEFAULTRES)$(use_shl_versions)"!=""
5082*b1cdbd2cSJim JagielskiSHL10DEFAULTRES*=$(MISC)/$(SHL10TARGET)_def.res
5083*b1cdbd2cSJim JagielskiSHL10ALLRES+=$(SHL10DEFAULTRES)
5084*b1cdbd2cSJim JagielskiSHL10LINKRES*=$(MISC)/$(SHL10TARGET).res
5085*b1cdbd2cSJim JagielskiSHL10LINKRESO*=$(MISC)/$(SHL10TARGET)_res.o
5086*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL10DEFAULTRES)$(use_shl_versions)"!=""
5087*b1cdbd2cSJim Jagielski
5088*b1cdbd2cSJim Jagielski#.IF "$(SHL10TARGETN)"!=""
5089*b1cdbd2cSJim Jagielski
5090*b1cdbd2cSJim Jagielski.IF "$(linkinc)"!=""
5091*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
5092*b1cdbd2cSJim Jagielski.IF "$(SHL10LIBS)"!=""
5093*b1cdbd2cSJim Jagielski$(MISC)/$(SHL10TARGET)_linkinc.ls .PHONY:
5094*b1cdbd2cSJim Jagielski	@@-$(RM) $@
5095*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL10LIBS) $(i:s/.lib/.lin/)) >> $@
5096*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL10LIBS)"!=""
5097*b1cdbd2cSJim Jagielski.ENDIF
5098*b1cdbd2cSJim Jagielski
5099*b1cdbd2cSJim JagielskiLINKINCTARGETS+=$(MISC)/$(SHL10TARGETN:b)_linkinc.ls
5100*b1cdbd2cSJim Jagielski$(SHL10TARGETN) : $(LINKINCTARGETS)
5101*b1cdbd2cSJim Jagielski
5102*b1cdbd2cSJim Jagielski.ELSE
5103*b1cdbd2cSJim Jagielski.IF "$(SHL10USE_EXPORTS)"=="name"
5104*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2"
5105*b1cdbd2cSJim Jagielski.IF "$(COM)"!="GCC"
5106*b1cdbd2cSJim Jagielski.IF "$(SHL10LIBS)"!=""
5107*b1cdbd2cSJim JagielskiSHL10LINKLIST=$(MISC)/$(SHL10TARGET)_link.lst
5108*b1cdbd2cSJim JagielskiSHL10LINKLISTPARAM=@$(SHL10LINKLIST)
5109*b1cdbd2cSJim Jagielski$(SHL10LINKLIST) : $(SHL10LIBS)
5110*b1cdbd2cSJim Jagielski    @@-$(RM) $@
5111*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SED) -f $(SOLARENV)/bin/chrel.sed $(foreach,i,$(SHL10LIBS) $(i:s/.lib/.lin/)) >> $@
5112*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL10LIBS)"!=""
5113*b1cdbd2cSJim Jagielski.ENDIF          # "$(COM)"!="GCC"
5114*b1cdbd2cSJim Jagielski.ENDIF
5115*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL10USE_EXPORTS)"=="name"
5116*b1cdbd2cSJim Jagielski
5117*b1cdbd2cSJim Jagielski$(MISC)/%linkinc.ls:
5118*b1cdbd2cSJim Jagielski	@echo . > $@
5119*b1cdbd2cSJim Jagielski.ENDIF          # "$(linkinc)"!=""
5120*b1cdbd2cSJim Jagielski
5121*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "OS2"
5122*b1cdbd2cSJim Jagielski#21/02/2006 YD dll names must be 8.3, invoke fix script
5123*b1cdbd2cSJim Jagielski#check osl/os2/module.c/osl_loadModule()
5124*b1cdbd2cSJim JagielskiSHL10TARGET8=$(shell @fix_shl.cmd $(SHL10TARGET))
5125*b1cdbd2cSJim Jagielski.ENDIF
5126*b1cdbd2cSJim Jagielski
5127*b1cdbd2cSJim Jagielski
5128*b1cdbd2cSJim Jagielski$(SHL10TARGETN) : \
5129*b1cdbd2cSJim Jagielski					$(SHL10OBJS)\
5130*b1cdbd2cSJim Jagielski					$(SHL10LIBS)\
5131*b1cdbd2cSJim Jagielski					$(USE_10IMPLIB_DEPS)\
5132*b1cdbd2cSJim Jagielski					$(USE_SHL10DEF)\
5133*b1cdbd2cSJim Jagielski					$(USE_SHL10VERSIONMAP)\
5134*b1cdbd2cSJim Jagielski					$(SHL10RES)\
5135*b1cdbd2cSJim Jagielski					$(SHL10DEPN) \
5136*b1cdbd2cSJim Jagielski					$(SHL10LINKLIST)
5137*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f)
5138*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT"
5139*b1cdbd2cSJim Jagielski.IF "$(SHL10DEFAULTRES)"!=""
5140*b1cdbd2cSJim Jagielski	@@-$(RM) $(MISC)/$(SHL10DEFAULTRES:b).rc
5141*b1cdbd2cSJim Jagielski.IF "$(SHL10ICON)" != ""
5142*b1cdbd2cSJim Jagielski	@echo 1 ICON $(SHL10ICON) >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5143*b1cdbd2cSJim Jagielski.ENDIF
5144*b1cdbd2cSJim Jagielski.IF "$(use_shl_versions)" != ""
5145*b1cdbd2cSJim Jagielski.IF "$(SHL10ADD_VERINFO)"!=""
5146*b1cdbd2cSJim Jagielski	@echo $(EMQ)#include $(EMQ)"$(SHL10ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5147*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL10ADD_VERINFO)"!=""
5148*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5149*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5150*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5151*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL10ADD_VERINFO)"!=""
5152*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define VERVARIANT	$(BUILD) >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5153*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define ORG_NAME	$(SHL10TARGET)$(DLLPOST) >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5154*b1cdbd2cSJim Jagielski	@echo $(EMQ)#define INTERNAL_NAME $(SHL10TARGET:b) >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5155*b1cdbd2cSJim Jagielski	@echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5156*b1cdbd2cSJim Jagielski.ENDIF			# "$(use_shl_versions)" != ""
5157*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL10DEFAULTRES:b).rc
5158*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL10DEFAULTRES)"!=""
5159*b1cdbd2cSJim Jagielski.IF "$(SHL10ALLRES)"!=""
5160*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(TYPE) $(SHL10ALLRES) > $(SHL10LINKRES)
5161*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"
5162*b1cdbd2cSJim Jagielski	windres $(SHL10LINKRES) $(SHL10LINKRESO)
5163*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
5164*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL10ALLRES)"!=""
5165*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"	# always have to call dlltool explicitly as ld cannot handle # comment in .def
5166*b1cdbd2cSJim Jagielski	@echo dlltool --dllname $(SHL10TARGET)$(DLLPOST) \
5167*b1cdbd2cSJim Jagielski		--kill-at \\ > $(MISC)/$(TARGET).$(@:b)_10.cmd
5168*b1cdbd2cSJim Jagielski	@noop $(assign ALL10OBJLIST:=$(STDOBJ) $(SHL10OBJS) $(SHL10LINKRESO) $(shell $(TYPE) /dev/null $(SHL10LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g))
5169*b1cdbd2cSJim Jagielski.IF "$(DEFLIB10NAME)"!=""	# do not have to include objs
5170*b1cdbd2cSJim Jagielski	@noop $(assign DEF10OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB10NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g))
5171*b1cdbd2cSJim Jagielski	@noop $(foreach,i,$(DEF10OBJLIST) $(assign ALL10OBJLIST:=$(ALL10OBJLIST:s?$i??)))
5172*b1cdbd2cSJim Jagielski.ENDIF			# "$(DEFLIB10NAME)"!=""
5173*b1cdbd2cSJim Jagielski	@echo	--output-exp $(MISC)/$(@:b)_exp.o \\ >> $(MISC)/$(TARGET).$(@:b)_10.cmd
5174*b1cdbd2cSJim Jagielski.IF "$(SHL10DEF)"!=""
5175*b1cdbd2cSJim Jagielski	@echo	--input-def $(SHL10DEF) \\ >> $(MISC)/$(TARGET).$(@:b)_10.cmd
5176*b1cdbd2cSJim Jagielski.ELSE
5177*b1cdbd2cSJim Jagielski	@echo	$(SHL10VERSIONOBJ) $(SHL10DESCRIPTIONOBJ) \\ >> $(MISC)/$(TARGET).$(@:b)_10.cmd
5178*b1cdbd2cSJim Jagielski.ENDIF
5179*b1cdbd2cSJim Jagielski	@echo	$(ALL10OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_10.cmd
5180*b1cdbd2cSJim Jagielski	@echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \
5181*b1cdbd2cSJim Jagielski		$(STDOBJ) $(SHL10VERSIONOBJ) $(SHL10DESCRIPTIONOBJ) $(SHL10OBJS) $(SHL10LINKRESO) \
5182*b1cdbd2cSJim Jagielski		`$(TYPE) /dev/null $(SHL10LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
5183*b1cdbd2cSJim Jagielski		-Wl,--exclude-libs,ALL,--start-group $(SHL10STDLIBS) -Wl,--end-group \
5184*b1cdbd2cSJim Jagielski		$(SHL10STDSHL) $(STDSHL10) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \
5185*b1cdbd2cSJim Jagielski		-Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_10.cmd
5186*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
5187*b1cdbd2cSJim Jagielski	@$(TYPE)  $(MISC)/$(TARGET).$(@:b)_10.cmd
5188*b1cdbd2cSJim Jagielski  .ENDIF
5189*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_10.cmd
5190*b1cdbd2cSJim Jagielski.ELSE
5191*b1cdbd2cSJim Jagielski.IF "$(linkinc)"==""
5192*b1cdbd2cSJim Jagielski.IF "$(SHL10USE_EXPORTS)"!="name"
5193*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
5194*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL10LINKER) @$(mktmp \
5195*b1cdbd2cSJim Jagielski		$(SHL10LINKFLAGS) \
5196*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) \
5197*b1cdbd2cSJim Jagielski		$(SHL10STACK) $(SHL10BASEX)	\
5198*b1cdbd2cSJim Jagielski		-out:$@ \
5199*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:b).map \
5200*b1cdbd2cSJim Jagielski		-def:$(SHL10DEF) \
5201*b1cdbd2cSJim Jagielski		$(USE_10IMPLIB) \
5202*b1cdbd2cSJim Jagielski		$(STDOBJ) \
5203*b1cdbd2cSJim Jagielski		$(SHL10VERSIONOBJ) $(SHL10OBJS) \
5204*b1cdbd2cSJim Jagielski		$(SHL10LIBS) \
5205*b1cdbd2cSJim Jagielski		$(SHL10STDLIBS) \
5206*b1cdbd2cSJim Jagielski		$(SHL10STDSHL) $(STDSHL10) \
5207*b1cdbd2cSJim Jagielski		$(SHL10LINKRES) \
5208*b1cdbd2cSJim Jagielski	)
5209*b1cdbd2cSJim Jagielski# double check if target was really written... still making sense?
5210*b1cdbd2cSJim Jagielski    @@$(LS) $@
5211*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
5212*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
5213*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
5214*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
5215*b1cdbd2cSJim Jagielski.ELSE
5216*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
5217*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
5218*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
5219*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
5220*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)"!=""
5221*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL10LINKER) @$(mktmp	$(SHL10LINKFLAGS)			\
5222*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL10BASEX)		\
5223*b1cdbd2cSJim Jagielski		$(SHL10STACK) -out:$(SHL10TARGETN)	\
5224*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:B).map				\
5225*b1cdbd2cSJim Jagielski		$(LB)/$(SHL10IMPLIB).exp				\
5226*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
5227*b1cdbd2cSJim Jagielski		$(SHL10OBJS) $(SHL10VERSIONOBJ) \
5228*b1cdbd2cSJim Jagielski		$(SHL10LIBS)                         \
5229*b1cdbd2cSJim Jagielski		$(SHL10STDLIBS)                      \
5230*b1cdbd2cSJim Jagielski		$(SHL10STDSHL) $(STDSHL10)                           \
5231*b1cdbd2cSJim Jagielski		$(SHL10LINKRES) \
5232*b1cdbd2cSJim Jagielski	)
5233*b1cdbd2cSJim Jagielski# double check if target was really written... still making sense?
5234*b1cdbd2cSJim Jagielski    @@$(LS) $@
5235*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
5236*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
5237*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
5238*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
5239*b1cdbd2cSJim Jagielski.ELSE
5240*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
5241*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
5242*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
5243*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
5244*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"!=""
5245*b1cdbd2cSJim Jagielski.ELSE			# "$(SHL10USE_EXPORTS)"!="name"
5246*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL10LINKER) @$(mktmp	$(SHL10LINKFLAGS)			\
5247*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL10BASEX)		\
5248*b1cdbd2cSJim Jagielski		$(SHL10STACK) -out:$(SHL10TARGETN)	\
5249*b1cdbd2cSJim Jagielski		-map:$(MISC)/$(@:B).map				\
5250*b1cdbd2cSJim Jagielski		$(USE_10IMPLIB) \
5251*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
5252*b1cdbd2cSJim Jagielski		$(SHL10OBJS) $(SHL10VERSIONOBJ))   \
5253*b1cdbd2cSJim Jagielski		$(SHL10LINKLISTPARAM) \
5254*b1cdbd2cSJim Jagielski		@$(mktmp $(SHL10STDLIBS)                      \
5255*b1cdbd2cSJim Jagielski		$(SHL10STDSHL) $(STDSHL10)                           \
5256*b1cdbd2cSJim Jagielski		$(SHL10LINKRES) \
5257*b1cdbd2cSJim Jagielski	)
5258*b1cdbd2cSJim Jagielski	@echo linking $@.manifest ...
5259*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
5260*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
5261*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
5262*b1cdbd2cSJim Jagielski.ELSE
5263*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
5264*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
5265*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
5266*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
5267*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL10USE_EXPORTS)"!="name"
5268*b1cdbd2cSJim Jagielski.ELSE			# "$(linkinc)"==""
5269*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)-$(RM) del $(MISC)/$(SHL10TARGET).lnk
5270*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)-$(RM) $(MISC)/$(SHL10TARGET).lst
5271*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(TYPE) $(mktmp \
5272*b1cdbd2cSJim Jagielski		$(SHL10LINKFLAGS) \
5273*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL10BASEX) \
5274*b1cdbd2cSJim Jagielski		$(SHL10STACK) $(MAPFILE) \
5275*b1cdbd2cSJim Jagielski		-out:$@ \
5276*b1cdbd2cSJim Jagielski		$(LB)/$(SHL10IMPLIB).exp \
5277*b1cdbd2cSJim Jagielski		$(STDOBJ) \
5278*b1cdbd2cSJim Jagielski		$(SHL10OBJS) \
5279*b1cdbd2cSJim Jagielski		$(SHL10STDLIBS) \
5280*b1cdbd2cSJim Jagielski		$(SHL10STDSHL) $(STDSHL10) \
5281*b1cdbd2cSJim Jagielski		$(SHL10LINKRES) \
5282*b1cdbd2cSJim Jagielski		) >> $(MISC)/$(SHL10TARGET).lnk
5283*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(TYPE) $(MISC)/$(SHL10TARGETN:b)_linkinc.ls  >> $(MISC)/$(SHL10TARGET).lnk
5284*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(SHL10LINKER) @$(MISC)/$(SHL10TARGET).lnk
5285*b1cdbd2cSJim Jagielski		@echo linking $@.manifest ...
5286*b1cdbd2cSJim Jagielski.IF "$(VISTA_MANIFEST)"!=""
5287*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
5288*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
5289*b1cdbd2cSJim Jagielski.ELSE
5290*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
5291*b1cdbd2cSJim Jagielski.ENDIF # "$(VISTA_MANIFEST)"!=""
5292*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
5293*b1cdbd2cSJim Jagielski		$(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
5294*b1cdbd2cSJim Jagielski.ENDIF			# "$(linkinc)"==""
5295*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
5296*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "WNT"
5297*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="UNX"
5298*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
5299*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(@:b).list
5300*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(TARGET).$(@:b)_10.cmd
5301*b1cdbd2cSJim Jagielski	@echo $(STDSLO) $(SHL10OBJS:s/.obj/.o/) \
5302*b1cdbd2cSJim Jagielski	$(SHL10VERSIONOBJ) \
5303*b1cdbd2cSJim Jagielski	`cat /dev/null $(SHL10LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list
5304*b1cdbd2cSJim Jagielski	@echo -n $(SHL10LINKER) $(SHL10LINKFLAGS) $(SHL10VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \
5305*b1cdbd2cSJim Jagielski	$(SHL10STDLIBS) $(SHL10ARCHIVES) $(SHL10STDSHL) $(STDSHL10) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_10.cmd
5306*b1cdbd2cSJim Jagielski    @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \
5307*b1cdbd2cSJim Jagielski        `cat $(MISC)/$(TARGET).$(@:b)_10.cmd` \
5308*b1cdbd2cSJim Jagielski        >> $(MISC)/$(TARGET).$(@:b)_10.cmd
5309*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
5310*b1cdbd2cSJim Jagielski	@cat $(MISC)/$(TARGET).$(@:b)_10.cmd
5311*b1cdbd2cSJim Jagielski  .ENDIF
5312*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_10.cmd
5313*b1cdbd2cSJim Jagielski    @$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl \
5314*b1cdbd2cSJim Jagielski        shl $(SHL10RPATH) $@
5315*b1cdbd2cSJim Jagielski.IF "$(SHL10CREATEJNILIB)"!=""
5316*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f).jnilib
5317*b1cdbd2cSJim Jagielski	@macosx-create-bundle $@
5318*b1cdbd2cSJim Jagielski.ENDIF          # "$(SHL10CREATEJNILIB)"!=""
5319*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
5320*b1cdbd2cSJim Jagielski.IF "$(SHL10NOCHECK)"==""
5321*b1cdbd2cSJim Jagielski	$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS10) $(SHL10TARGETN)
5322*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL10NOCHECK)"!=""
5323*b1cdbd2cSJim Jagielski.ENDIF
5324*b1cdbd2cSJim Jagielski.ELSE			# "$(OS)"=="MACOSX"
5325*b1cdbd2cSJim Jagielski	@-$(RM) $(MISC)/$(TARGET).$(@:b)_10.cmd
5326*b1cdbd2cSJim Jagielski	@echo $(SHL10LINKER) $(SHL10LINKFLAGS) $(SHL10SONAME) $(LINKFLAGSSHL) $(SHL10VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL10OBJS:s/.obj/.o/) \
5327*b1cdbd2cSJim Jagielski	$(SHL10VERSIONOBJ) -o $@ \
5328*b1cdbd2cSJim Jagielski	`cat /dev/null $(SHL10LIBS) | tr -s " " "\n" | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \
5329*b1cdbd2cSJim Jagielski	$(SHL10STDLIBS) $(SHL10ARCHIVES) $(SHL10STDSHL) $(STDSHL10) $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_10.cmd
5330*b1cdbd2cSJim Jagielski  .IF "$(VERBOSE)" == "TRUE"
5331*b1cdbd2cSJim Jagielski	@cat $(MISC)/$(TARGET).$(@:b)_10.cmd
5332*b1cdbd2cSJim Jagielski  .ENDIF
5333*b1cdbd2cSJim Jagielski	@+source $(MISC)/$(TARGET).$(@:b)_10.cmd
5334*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
5335*b1cdbd2cSJim Jagielski.IF "$(SHL10NOCHECK)"==""
5336*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)-$(RM) $(SHL10TARGETN:d)check_$(SHL10TARGETN:f)
5337*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RENAME) $(SHL10TARGETN) $(SHL10TARGETN:d)check_$(SHL10TARGETN:f)
5338*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)"=="TRUE"
5339*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS10) $(SHL10TARGETN:d)check_$(SHL10TARGETN:f)
5340*b1cdbd2cSJim Jagielski.ELSE
5341*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS10) -- -s $(SHL10TARGETN:d)check_$(SHL10TARGETN:f)
5342*b1cdbd2cSJim Jagielski.ENDIF
5343*b1cdbd2cSJim Jagielski.ENDIF				# "$(SHL10NOCHECK)"!=""
5344*b1cdbd2cSJim Jagielski.ENDIF			# "$(UPDATER)"=="YES"
5345*b1cdbd2cSJim Jagielski.ENDIF			# "$(OS)"=="MACOSX"
5346*b1cdbd2cSJim Jagielski.IF "$(UNIXVERSIONNAMES)"!=""
5347*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RM) $(LB)/$(SHL10TARGETN:b)
5348*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)cd $(LB) && ln -s $(SHL10TARGETN:f) $(SHL10TARGETN:b)
5349*b1cdbd2cSJim Jagielski.ENDIF			# "$(UNIXVERSIONNAMES)"!=""
5350*b1cdbd2cSJim Jagielski.IF "$(VERBOSE)" == "TRUE"
5351*b1cdbd2cSJim Jagielski	@ls -l $@
5352*b1cdbd2cSJim Jagielski.ENDIF
5353*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "UNX"
5354*b1cdbd2cSJim Jagielski
5355*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "OS2"
5356*b1cdbd2cSJim Jagielski
5357*b1cdbd2cSJim Jagielski.IF "$(SHL10DEFAULTRES)"!=""
5358*b1cdbd2cSJim Jagielski	@+-$(RM) $(MISC)/$(SHL10DEFAULTRES:b).rc > $(NULLDEV)
5359*b1cdbd2cSJim Jagielski.IF "$(SHL10ICON)" != ""
5360*b1cdbd2cSJim Jagielski	@-+echo 1 ICON $(SHL10ICON) >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5361*b1cdbd2cSJim Jagielski.ENDIF
5362*b1cdbd2cSJim Jagielski.IF "$(use_shl_versions)" != ""
5363*b1cdbd2cSJim Jagielski.IF "$(SHL10ADD_VERINFO)"!=""
5364*b1cdbd2cSJim Jagielski	@-+echo $(EMQ)#include $(EMQ)"$(SHL10ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5365*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL10ADD_VERINFO)"!=""
5366*b1cdbd2cSJim Jagielski	@-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5367*b1cdbd2cSJim Jagielski#	@-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL10DEFAULTRES:b).rc
5368*b1cdbd2cSJim Jagielski.ENDIF			# "$(use_shl_versions)" != ""
5369*b1cdbd2cSJim Jagielski# YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR)
5370*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL10DEFAULTRES:b).rc
5371*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL10DEFAULTRES)"!=""
5372*b1cdbd2cSJim Jagielski
5373*b1cdbd2cSJim Jagielski.IF "$(SHL10ALLRES)"!=""
5374*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(TYPE) $(SHL10ALLRES) > $(SHL10LINKRES)
5375*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL10ALLRES)"!=""
5376*b1cdbd2cSJim Jagielski
5377*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
5378*b1cdbd2cSJim Jagielski
5379*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL10LINKER) $(SHL10LINKFLAGS) $(LINKFLAGSSHL) -o $@ \
5380*b1cdbd2cSJim Jagielski		$(SHL10DEF) \
5381*b1cdbd2cSJim Jagielski		$(STDOBJ) \
5382*b1cdbd2cSJim Jagielski		-L$(LB) \
5383*b1cdbd2cSJim Jagielski		-L$(SOLARVERSION)/$(INPATH)/lib \
5384*b1cdbd2cSJim Jagielski		$(SHL10OBJS) $(SHL10VERSIONOBJ) \
5385*b1cdbd2cSJim Jagielski		$(SHL10LIBS) \
5386*b1cdbd2cSJim Jagielski		$(SHL10LINKRES) \
5387*b1cdbd2cSJim Jagielski		$(SHL10STDLIBS) \
5388*b1cdbd2cSJim Jagielski		$(SHL10STDSHL) $(STDSHL10)
5389*b1cdbd2cSJim Jagielski
5390*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)"!=""
5391*b1cdbd2cSJim Jagielski
5392*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)$(SHL10LINKER) $(SHL10LINKFLAGS)			\
5393*b1cdbd2cSJim Jagielski		$(LINKFLAGSSHL) $(SHL10BASEX)		\
5394*b1cdbd2cSJim Jagielski		$(SHL10STACK) -o $(SHL10TARGETN)	\
5395*b1cdbd2cSJim Jagielski		$(SHL10DEF) \
5396*b1cdbd2cSJim Jagielski		$(STDOBJ)							\
5397*b1cdbd2cSJim Jagielski		-L$(LB) \
5398*b1cdbd2cSJim Jagielski		-L$(SOLARVERSION)/$(INPATH)/lib \
5399*b1cdbd2cSJim Jagielski		$(SHL10OBJS) $(SHL10VERSIONOBJ) \
5400*b1cdbd2cSJim Jagielski		$(SHL10LIBS) \
5401*b1cdbd2cSJim Jagielski		$(SHL10LINKRES) \
5402*b1cdbd2cSJim Jagielski		$(SHL10STDLIBS) \
5403*b1cdbd2cSJim Jagielski		$(SHL10STDSHL) $(STDSHL10)
5404*b1cdbd2cSJim Jagielski
5405*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)"!=""
5406*b1cdbd2cSJim Jagielski
5407*b1cdbd2cSJim Jagielski.IF "$(SHL10USE_EXPORTS)"=="name"
5408*b1cdbd2cSJim Jagielski#03/11/2012  if 'name' is used, export from DLL file (only names, no ordinals)
5409*b1cdbd2cSJim Jagielski	@echo Build import library from DLL file.
5410*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(LB)/$(SHL10TARGETN:b).lib $@
5411*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL10USE_EXPORTS)"==""
5412*b1cdbd2cSJim Jagielski
5413*b1cdbd2cSJim Jagielski.IF "$(SHL10TARGET8)" != "$(SHL10TARGET)"
5414*b1cdbd2cSJim Jagielski	$(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL10TARGET8).dll
5415*b1cdbd2cSJim Jagielski.ENDIF
5416*b1cdbd2cSJim Jagielski
5417*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "OS2"
5418*b1cdbd2cSJim Jagielski
5419*b1cdbd2cSJim Jagielski.ENDIF			# "$(SHL10TARGETN)"!=""
5420*b1cdbd2cSJim Jagielski
5421*b1cdbd2cSJim Jagielski# unroll begin
5422*b1cdbd2cSJim Jagielski
5423*b1cdbd2cSJim Jagielski.IF "$(SHL1IMPLIBN)" != ""
5424*b1cdbd2cSJim Jagielski
5425*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
5426*b1cdbd2cSJim JagielskiUSELIB1DEPN+=$(SHL1LIBS)
5427*b1cdbd2cSJim Jagielski.ELSE
5428*b1cdbd2cSJim Jagielski.ENDIF
5429*b1cdbd2cSJim Jagielski
5430*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
5431*b1cdbd2cSJim JagielskiUSE_SHL1TARGET=$(SHL1TARGETN)
5432*b1cdbd2cSJim Jagielski.ENDIF
5433*b1cdbd2cSJim Jagielski
5434*b1cdbd2cSJim Jagielski.IF "$(GUI)" != "UNX"
5435*b1cdbd2cSJim Jagielski$(SHL1IMPLIBN):	\
5436*b1cdbd2cSJim Jagielski					$(SHL1DEF) \
5437*b1cdbd2cSJim Jagielski					$(USE_SHL1TARGET) \
5438*b1cdbd2cSJim Jagielski					$(USELIB1DEPN) \
5439*b1cdbd2cSJim Jagielski					$(USELIBDEPN)
5440*b1cdbd2cSJim Jagielski.ELSE
5441*b1cdbd2cSJim Jagielski$(SHL1IMPLIBN):	\
5442*b1cdbd2cSJim Jagielski					$(SHL1LIBS)
5443*b1cdbd2cSJim Jagielski.ENDIF
5444*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f)
5445*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT"
5446*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"
5447*b1cdbd2cSJim Jagielski	@echo no ImportLibs on mingw
5448*b1cdbd2cSJim Jagielski	@-$(RM) $@
5449*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5450*b1cdbd2cSJim Jagielski.ELSE			# "$(COM)=="GCC"
5451*b1cdbd2cSJim Jagielski# bei use_deffile implib von linker erstellt
5452*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"==""
5453*b1cdbd2cSJim Jagielski	$(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL1IMPLIBN) \
5454*b1cdbd2cSJim Jagielski	-def:$(SHL1DEF) )
5455*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)==""
5456*b1cdbd2cSJim Jagielski	@echo build of $(SHL1TARGETN) creates $@
5457*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5458*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)==""
5459*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
5460*b1cdbd2cSJim Jagielski
5461*b1cdbd2cSJim Jagielski.ELIF "$(GUI)" == "OS2"
5462*b1cdbd2cSJim Jagielski
5463*b1cdbd2cSJim Jagielski	@echo Import libs generated with .def file or with .dll file.
5464*b1cdbd2cSJim Jagielski# make 'dmake' happy
5465*b1cdbd2cSJim Jagielski	@-$(RM) $@
5466*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5467*b1cdbd2cSJim Jagielski
5468*b1cdbd2cSJim Jagielski.ELSE
5469*b1cdbd2cSJim Jagielski	@echo no ImportLibs on Mac and *ix
5470*b1cdbd2cSJim Jagielski	@-$(RM) $@
5471*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5472*b1cdbd2cSJim Jagielski.ENDIF
5473*b1cdbd2cSJim Jagielski.ENDIF
5474*b1cdbd2cSJim Jagielski
5475*b1cdbd2cSJim Jagielski# unroll begin
5476*b1cdbd2cSJim Jagielski
5477*b1cdbd2cSJim Jagielski.IF "$(SHL2IMPLIBN)" != ""
5478*b1cdbd2cSJim Jagielski
5479*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
5480*b1cdbd2cSJim JagielskiUSELIB2DEPN+=$(SHL2LIBS)
5481*b1cdbd2cSJim Jagielski.ELSE
5482*b1cdbd2cSJim Jagielski.ENDIF
5483*b1cdbd2cSJim Jagielski
5484*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
5485*b1cdbd2cSJim JagielskiUSE_SHL2TARGET=$(SHL2TARGETN)
5486*b1cdbd2cSJim Jagielski.ENDIF
5487*b1cdbd2cSJim Jagielski
5488*b1cdbd2cSJim Jagielski.IF "$(GUI)" != "UNX"
5489*b1cdbd2cSJim Jagielski$(SHL2IMPLIBN):	\
5490*b1cdbd2cSJim Jagielski					$(SHL2DEF) \
5491*b1cdbd2cSJim Jagielski					$(USE_SHL2TARGET) \
5492*b1cdbd2cSJim Jagielski					$(USELIB2DEPN) \
5493*b1cdbd2cSJim Jagielski					$(USELIBDEPN)
5494*b1cdbd2cSJim Jagielski.ELSE
5495*b1cdbd2cSJim Jagielski$(SHL2IMPLIBN):	\
5496*b1cdbd2cSJim Jagielski					$(SHL2LIBS)
5497*b1cdbd2cSJim Jagielski.ENDIF
5498*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f)
5499*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT"
5500*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"
5501*b1cdbd2cSJim Jagielski	@echo no ImportLibs on mingw
5502*b1cdbd2cSJim Jagielski	@-$(RM) $@
5503*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5504*b1cdbd2cSJim Jagielski.ELSE			# "$(COM)=="GCC"
5505*b1cdbd2cSJim Jagielski# bei use_deffile implib von linker erstellt
5506*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"==""
5507*b1cdbd2cSJim Jagielski	$(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL2IMPLIBN) \
5508*b1cdbd2cSJim Jagielski	-def:$(SHL2DEF) )
5509*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)==""
5510*b1cdbd2cSJim Jagielski	@echo build of $(SHL2TARGETN) creates $@
5511*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5512*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)==""
5513*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
5514*b1cdbd2cSJim Jagielski
5515*b1cdbd2cSJim Jagielski.ELIF "$(GUI)" == "OS2"
5516*b1cdbd2cSJim Jagielski
5517*b1cdbd2cSJim Jagielski	@echo Import libs generated with .def file or with .dll file.
5518*b1cdbd2cSJim Jagielski# make 'dmake' happy
5519*b1cdbd2cSJim Jagielski	@-$(RM) $@
5520*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5521*b1cdbd2cSJim Jagielski
5522*b1cdbd2cSJim Jagielski.ELSE
5523*b1cdbd2cSJim Jagielski	@echo no ImportLibs on Mac and *ix
5524*b1cdbd2cSJim Jagielski	@-$(RM) $@
5525*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5526*b1cdbd2cSJim Jagielski.ENDIF
5527*b1cdbd2cSJim Jagielski.ENDIF
5528*b1cdbd2cSJim Jagielski
5529*b1cdbd2cSJim Jagielski# unroll begin
5530*b1cdbd2cSJim Jagielski
5531*b1cdbd2cSJim Jagielski.IF "$(SHL3IMPLIBN)" != ""
5532*b1cdbd2cSJim Jagielski
5533*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
5534*b1cdbd2cSJim JagielskiUSELIB3DEPN+=$(SHL3LIBS)
5535*b1cdbd2cSJim Jagielski.ELSE
5536*b1cdbd2cSJim Jagielski.ENDIF
5537*b1cdbd2cSJim Jagielski
5538*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
5539*b1cdbd2cSJim JagielskiUSE_SHL3TARGET=$(SHL3TARGETN)
5540*b1cdbd2cSJim Jagielski.ENDIF
5541*b1cdbd2cSJim Jagielski
5542*b1cdbd2cSJim Jagielski.IF "$(GUI)" != "UNX"
5543*b1cdbd2cSJim Jagielski$(SHL3IMPLIBN):	\
5544*b1cdbd2cSJim Jagielski					$(SHL3DEF) \
5545*b1cdbd2cSJim Jagielski					$(USE_SHL3TARGET) \
5546*b1cdbd2cSJim Jagielski					$(USELIB3DEPN) \
5547*b1cdbd2cSJim Jagielski					$(USELIBDEPN)
5548*b1cdbd2cSJim Jagielski.ELSE
5549*b1cdbd2cSJim Jagielski$(SHL3IMPLIBN):	\
5550*b1cdbd2cSJim Jagielski					$(SHL3LIBS)
5551*b1cdbd2cSJim Jagielski.ENDIF
5552*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f)
5553*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT"
5554*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"
5555*b1cdbd2cSJim Jagielski	@echo no ImportLibs on mingw
5556*b1cdbd2cSJim Jagielski	@-$(RM) $@
5557*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5558*b1cdbd2cSJim Jagielski.ELSE			# "$(COM)=="GCC"
5559*b1cdbd2cSJim Jagielski# bei use_deffile implib von linker erstellt
5560*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"==""
5561*b1cdbd2cSJim Jagielski	$(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL3IMPLIBN) \
5562*b1cdbd2cSJim Jagielski	-def:$(SHL3DEF) )
5563*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)==""
5564*b1cdbd2cSJim Jagielski	@echo build of $(SHL3TARGETN) creates $@
5565*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5566*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)==""
5567*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
5568*b1cdbd2cSJim Jagielski
5569*b1cdbd2cSJim Jagielski.ELIF "$(GUI)" == "OS2"
5570*b1cdbd2cSJim Jagielski
5571*b1cdbd2cSJim Jagielski	@echo Import libs generated with .def file or with .dll file.
5572*b1cdbd2cSJim Jagielski# make 'dmake' happy
5573*b1cdbd2cSJim Jagielski	@-$(RM) $@
5574*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5575*b1cdbd2cSJim Jagielski
5576*b1cdbd2cSJim Jagielski.ELSE
5577*b1cdbd2cSJim Jagielski	@echo no ImportLibs on Mac and *ix
5578*b1cdbd2cSJim Jagielski	@-$(RM) $@
5579*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5580*b1cdbd2cSJim Jagielski.ENDIF
5581*b1cdbd2cSJim Jagielski.ENDIF
5582*b1cdbd2cSJim Jagielski
5583*b1cdbd2cSJim Jagielski# unroll begin
5584*b1cdbd2cSJim Jagielski
5585*b1cdbd2cSJim Jagielski.IF "$(SHL4IMPLIBN)" != ""
5586*b1cdbd2cSJim Jagielski
5587*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
5588*b1cdbd2cSJim JagielskiUSELIB4DEPN+=$(SHL4LIBS)
5589*b1cdbd2cSJim Jagielski.ELSE
5590*b1cdbd2cSJim Jagielski.ENDIF
5591*b1cdbd2cSJim Jagielski
5592*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
5593*b1cdbd2cSJim JagielskiUSE_SHL4TARGET=$(SHL4TARGETN)
5594*b1cdbd2cSJim Jagielski.ENDIF
5595*b1cdbd2cSJim Jagielski
5596*b1cdbd2cSJim Jagielski.IF "$(GUI)" != "UNX"
5597*b1cdbd2cSJim Jagielski$(SHL4IMPLIBN):	\
5598*b1cdbd2cSJim Jagielski					$(SHL4DEF) \
5599*b1cdbd2cSJim Jagielski					$(USE_SHL4TARGET) \
5600*b1cdbd2cSJim Jagielski					$(USELIB4DEPN) \
5601*b1cdbd2cSJim Jagielski					$(USELIBDEPN)
5602*b1cdbd2cSJim Jagielski.ELSE
5603*b1cdbd2cSJim Jagielski$(SHL4IMPLIBN):	\
5604*b1cdbd2cSJim Jagielski					$(SHL4LIBS)
5605*b1cdbd2cSJim Jagielski.ENDIF
5606*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f)
5607*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT"
5608*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"
5609*b1cdbd2cSJim Jagielski	@echo no ImportLibs on mingw
5610*b1cdbd2cSJim Jagielski	@-$(RM) $@
5611*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5612*b1cdbd2cSJim Jagielski.ELSE			# "$(COM)=="GCC"
5613*b1cdbd2cSJim Jagielski# bei use_deffile implib von linker erstellt
5614*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"==""
5615*b1cdbd2cSJim Jagielski	$(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL4IMPLIBN) \
5616*b1cdbd2cSJim Jagielski	-def:$(SHL4DEF) )
5617*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)==""
5618*b1cdbd2cSJim Jagielski	@echo build of $(SHL4TARGETN) creates $@
5619*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5620*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)==""
5621*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
5622*b1cdbd2cSJim Jagielski
5623*b1cdbd2cSJim Jagielski.ELIF "$(GUI)" == "OS2"
5624*b1cdbd2cSJim Jagielski
5625*b1cdbd2cSJim Jagielski	@echo Import libs generated with .def file or with .dll file.
5626*b1cdbd2cSJim Jagielski# make 'dmake' happy
5627*b1cdbd2cSJim Jagielski	@-$(RM) $@
5628*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5629*b1cdbd2cSJim Jagielski
5630*b1cdbd2cSJim Jagielski.ELSE
5631*b1cdbd2cSJim Jagielski	@echo no ImportLibs on Mac and *ix
5632*b1cdbd2cSJim Jagielski	@-$(RM) $@
5633*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5634*b1cdbd2cSJim Jagielski.ENDIF
5635*b1cdbd2cSJim Jagielski.ENDIF
5636*b1cdbd2cSJim Jagielski
5637*b1cdbd2cSJim Jagielski# unroll begin
5638*b1cdbd2cSJim Jagielski
5639*b1cdbd2cSJim Jagielski.IF "$(SHL5IMPLIBN)" != ""
5640*b1cdbd2cSJim Jagielski
5641*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
5642*b1cdbd2cSJim JagielskiUSELIB5DEPN+=$(SHL5LIBS)
5643*b1cdbd2cSJim Jagielski.ELSE
5644*b1cdbd2cSJim Jagielski.ENDIF
5645*b1cdbd2cSJim Jagielski
5646*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
5647*b1cdbd2cSJim JagielskiUSE_SHL5TARGET=$(SHL5TARGETN)
5648*b1cdbd2cSJim Jagielski.ENDIF
5649*b1cdbd2cSJim Jagielski
5650*b1cdbd2cSJim Jagielski.IF "$(GUI)" != "UNX"
5651*b1cdbd2cSJim Jagielski$(SHL5IMPLIBN):	\
5652*b1cdbd2cSJim Jagielski					$(SHL5DEF) \
5653*b1cdbd2cSJim Jagielski					$(USE_SHL5TARGET) \
5654*b1cdbd2cSJim Jagielski					$(USELIB5DEPN) \
5655*b1cdbd2cSJim Jagielski					$(USELIBDEPN)
5656*b1cdbd2cSJim Jagielski.ELSE
5657*b1cdbd2cSJim Jagielski$(SHL5IMPLIBN):	\
5658*b1cdbd2cSJim Jagielski					$(SHL5LIBS)
5659*b1cdbd2cSJim Jagielski.ENDIF
5660*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f)
5661*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT"
5662*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"
5663*b1cdbd2cSJim Jagielski	@echo no ImportLibs on mingw
5664*b1cdbd2cSJim Jagielski	@-$(RM) $@
5665*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5666*b1cdbd2cSJim Jagielski.ELSE			# "$(COM)=="GCC"
5667*b1cdbd2cSJim Jagielski# bei use_deffile implib von linker erstellt
5668*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"==""
5669*b1cdbd2cSJim Jagielski	$(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL5IMPLIBN) \
5670*b1cdbd2cSJim Jagielski	-def:$(SHL5DEF) )
5671*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)==""
5672*b1cdbd2cSJim Jagielski	@echo build of $(SHL5TARGETN) creates $@
5673*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5674*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)==""
5675*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
5676*b1cdbd2cSJim Jagielski
5677*b1cdbd2cSJim Jagielski.ELIF "$(GUI)" == "OS2"
5678*b1cdbd2cSJim Jagielski
5679*b1cdbd2cSJim Jagielski	@echo Import libs generated with .def file or with .dll file.
5680*b1cdbd2cSJim Jagielski# make 'dmake' happy
5681*b1cdbd2cSJim Jagielski	@-$(RM) $@
5682*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5683*b1cdbd2cSJim Jagielski
5684*b1cdbd2cSJim Jagielski.ELSE
5685*b1cdbd2cSJim Jagielski	@echo no ImportLibs on Mac and *ix
5686*b1cdbd2cSJim Jagielski	@-$(RM) $@
5687*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5688*b1cdbd2cSJim Jagielski.ENDIF
5689*b1cdbd2cSJim Jagielski.ENDIF
5690*b1cdbd2cSJim Jagielski
5691*b1cdbd2cSJim Jagielski# unroll begin
5692*b1cdbd2cSJim Jagielski
5693*b1cdbd2cSJim Jagielski.IF "$(SHL6IMPLIBN)" != ""
5694*b1cdbd2cSJim Jagielski
5695*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
5696*b1cdbd2cSJim JagielskiUSELIB6DEPN+=$(SHL6LIBS)
5697*b1cdbd2cSJim Jagielski.ELSE
5698*b1cdbd2cSJim Jagielski.ENDIF
5699*b1cdbd2cSJim Jagielski
5700*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
5701*b1cdbd2cSJim JagielskiUSE_SHL6TARGET=$(SHL6TARGETN)
5702*b1cdbd2cSJim Jagielski.ENDIF
5703*b1cdbd2cSJim Jagielski
5704*b1cdbd2cSJim Jagielski.IF "$(GUI)" != "UNX"
5705*b1cdbd2cSJim Jagielski$(SHL6IMPLIBN):	\
5706*b1cdbd2cSJim Jagielski					$(SHL6DEF) \
5707*b1cdbd2cSJim Jagielski					$(USE_SHL6TARGET) \
5708*b1cdbd2cSJim Jagielski					$(USELIB6DEPN) \
5709*b1cdbd2cSJim Jagielski					$(USELIBDEPN)
5710*b1cdbd2cSJim Jagielski.ELSE
5711*b1cdbd2cSJim Jagielski$(SHL6IMPLIBN):	\
5712*b1cdbd2cSJim Jagielski					$(SHL6LIBS)
5713*b1cdbd2cSJim Jagielski.ENDIF
5714*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f)
5715*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT"
5716*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"
5717*b1cdbd2cSJim Jagielski	@echo no ImportLibs on mingw
5718*b1cdbd2cSJim Jagielski	@-$(RM) $@
5719*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5720*b1cdbd2cSJim Jagielski.ELSE			# "$(COM)=="GCC"
5721*b1cdbd2cSJim Jagielski# bei use_deffile implib von linker erstellt
5722*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"==""
5723*b1cdbd2cSJim Jagielski	$(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL6IMPLIBN) \
5724*b1cdbd2cSJim Jagielski	-def:$(SHL6DEF) )
5725*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)==""
5726*b1cdbd2cSJim Jagielski	@echo build of $(SHL6TARGETN) creates $@
5727*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5728*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)==""
5729*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
5730*b1cdbd2cSJim Jagielski
5731*b1cdbd2cSJim Jagielski.ELIF "$(GUI)" == "OS2"
5732*b1cdbd2cSJim Jagielski
5733*b1cdbd2cSJim Jagielski	@echo Import libs generated with .def file or with .dll file.
5734*b1cdbd2cSJim Jagielski# make 'dmake' happy
5735*b1cdbd2cSJim Jagielski	@-$(RM) $@
5736*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5737*b1cdbd2cSJim Jagielski
5738*b1cdbd2cSJim Jagielski.ELSE
5739*b1cdbd2cSJim Jagielski	@echo no ImportLibs on Mac and *ix
5740*b1cdbd2cSJim Jagielski	@-$(RM) $@
5741*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5742*b1cdbd2cSJim Jagielski.ENDIF
5743*b1cdbd2cSJim Jagielski.ENDIF
5744*b1cdbd2cSJim Jagielski
5745*b1cdbd2cSJim Jagielski# unroll begin
5746*b1cdbd2cSJim Jagielski
5747*b1cdbd2cSJim Jagielski.IF "$(SHL7IMPLIBN)" != ""
5748*b1cdbd2cSJim Jagielski
5749*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
5750*b1cdbd2cSJim JagielskiUSELIB7DEPN+=$(SHL7LIBS)
5751*b1cdbd2cSJim Jagielski.ELSE
5752*b1cdbd2cSJim Jagielski.ENDIF
5753*b1cdbd2cSJim Jagielski
5754*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
5755*b1cdbd2cSJim JagielskiUSE_SHL7TARGET=$(SHL7TARGETN)
5756*b1cdbd2cSJim Jagielski.ENDIF
5757*b1cdbd2cSJim Jagielski
5758*b1cdbd2cSJim Jagielski.IF "$(GUI)" != "UNX"
5759*b1cdbd2cSJim Jagielski$(SHL7IMPLIBN):	\
5760*b1cdbd2cSJim Jagielski					$(SHL7DEF) \
5761*b1cdbd2cSJim Jagielski					$(USE_SHL7TARGET) \
5762*b1cdbd2cSJim Jagielski					$(USELIB7DEPN) \
5763*b1cdbd2cSJim Jagielski					$(USELIBDEPN)
5764*b1cdbd2cSJim Jagielski.ELSE
5765*b1cdbd2cSJim Jagielski$(SHL7IMPLIBN):	\
5766*b1cdbd2cSJim Jagielski					$(SHL7LIBS)
5767*b1cdbd2cSJim Jagielski.ENDIF
5768*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f)
5769*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT"
5770*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"
5771*b1cdbd2cSJim Jagielski	@echo no ImportLibs on mingw
5772*b1cdbd2cSJim Jagielski	@-$(RM) $@
5773*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5774*b1cdbd2cSJim Jagielski.ELSE			# "$(COM)=="GCC"
5775*b1cdbd2cSJim Jagielski# bei use_deffile implib von linker erstellt
5776*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"==""
5777*b1cdbd2cSJim Jagielski	$(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL7IMPLIBN) \
5778*b1cdbd2cSJim Jagielski	-def:$(SHL7DEF) )
5779*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)==""
5780*b1cdbd2cSJim Jagielski	@echo build of $(SHL7TARGETN) creates $@
5781*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5782*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)==""
5783*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
5784*b1cdbd2cSJim Jagielski
5785*b1cdbd2cSJim Jagielski.ELIF "$(GUI)" == "OS2"
5786*b1cdbd2cSJim Jagielski
5787*b1cdbd2cSJim Jagielski	@echo Import libs generated with .def file or with .dll file.
5788*b1cdbd2cSJim Jagielski# make 'dmake' happy
5789*b1cdbd2cSJim Jagielski	@-$(RM) $@
5790*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5791*b1cdbd2cSJim Jagielski
5792*b1cdbd2cSJim Jagielski.ELSE
5793*b1cdbd2cSJim Jagielski	@echo no ImportLibs on Mac and *ix
5794*b1cdbd2cSJim Jagielski	@-$(RM) $@
5795*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5796*b1cdbd2cSJim Jagielski.ENDIF
5797*b1cdbd2cSJim Jagielski.ENDIF
5798*b1cdbd2cSJim Jagielski
5799*b1cdbd2cSJim Jagielski# unroll begin
5800*b1cdbd2cSJim Jagielski
5801*b1cdbd2cSJim Jagielski.IF "$(SHL8IMPLIBN)" != ""
5802*b1cdbd2cSJim Jagielski
5803*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
5804*b1cdbd2cSJim JagielskiUSELIB8DEPN+=$(SHL8LIBS)
5805*b1cdbd2cSJim Jagielski.ELSE
5806*b1cdbd2cSJim Jagielski.ENDIF
5807*b1cdbd2cSJim Jagielski
5808*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
5809*b1cdbd2cSJim JagielskiUSE_SHL8TARGET=$(SHL8TARGETN)
5810*b1cdbd2cSJim Jagielski.ENDIF
5811*b1cdbd2cSJim Jagielski
5812*b1cdbd2cSJim Jagielski.IF "$(GUI)" != "UNX"
5813*b1cdbd2cSJim Jagielski$(SHL8IMPLIBN):	\
5814*b1cdbd2cSJim Jagielski					$(SHL8DEF) \
5815*b1cdbd2cSJim Jagielski					$(USE_SHL8TARGET) \
5816*b1cdbd2cSJim Jagielski					$(USELIB8DEPN) \
5817*b1cdbd2cSJim Jagielski					$(USELIBDEPN)
5818*b1cdbd2cSJim Jagielski.ELSE
5819*b1cdbd2cSJim Jagielski$(SHL8IMPLIBN):	\
5820*b1cdbd2cSJim Jagielski					$(SHL8LIBS)
5821*b1cdbd2cSJim Jagielski.ENDIF
5822*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f)
5823*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT"
5824*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"
5825*b1cdbd2cSJim Jagielski	@echo no ImportLibs on mingw
5826*b1cdbd2cSJim Jagielski	@-$(RM) $@
5827*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5828*b1cdbd2cSJim Jagielski.ELSE			# "$(COM)=="GCC"
5829*b1cdbd2cSJim Jagielski# bei use_deffile implib von linker erstellt
5830*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"==""
5831*b1cdbd2cSJim Jagielski	$(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL8IMPLIBN) \
5832*b1cdbd2cSJim Jagielski	-def:$(SHL8DEF) )
5833*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)==""
5834*b1cdbd2cSJim Jagielski	@echo build of $(SHL8TARGETN) creates $@
5835*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5836*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)==""
5837*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
5838*b1cdbd2cSJim Jagielski
5839*b1cdbd2cSJim Jagielski.ELIF "$(GUI)" == "OS2"
5840*b1cdbd2cSJim Jagielski
5841*b1cdbd2cSJim Jagielski	@echo Import libs generated with .def file or with .dll file.
5842*b1cdbd2cSJim Jagielski# make 'dmake' happy
5843*b1cdbd2cSJim Jagielski	@-$(RM) $@
5844*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5845*b1cdbd2cSJim Jagielski
5846*b1cdbd2cSJim Jagielski.ELSE
5847*b1cdbd2cSJim Jagielski	@echo no ImportLibs on Mac and *ix
5848*b1cdbd2cSJim Jagielski	@-$(RM) $@
5849*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5850*b1cdbd2cSJim Jagielski.ENDIF
5851*b1cdbd2cSJim Jagielski.ENDIF
5852*b1cdbd2cSJim Jagielski
5853*b1cdbd2cSJim Jagielski# unroll begin
5854*b1cdbd2cSJim Jagielski
5855*b1cdbd2cSJim Jagielski.IF "$(SHL9IMPLIBN)" != ""
5856*b1cdbd2cSJim Jagielski
5857*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
5858*b1cdbd2cSJim JagielskiUSELIB9DEPN+=$(SHL9LIBS)
5859*b1cdbd2cSJim Jagielski.ELSE
5860*b1cdbd2cSJim Jagielski.ENDIF
5861*b1cdbd2cSJim Jagielski
5862*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
5863*b1cdbd2cSJim JagielskiUSE_SHL9TARGET=$(SHL9TARGETN)
5864*b1cdbd2cSJim Jagielski.ENDIF
5865*b1cdbd2cSJim Jagielski
5866*b1cdbd2cSJim Jagielski.IF "$(GUI)" != "UNX"
5867*b1cdbd2cSJim Jagielski$(SHL9IMPLIBN):	\
5868*b1cdbd2cSJim Jagielski					$(SHL9DEF) \
5869*b1cdbd2cSJim Jagielski					$(USE_SHL9TARGET) \
5870*b1cdbd2cSJim Jagielski					$(USELIB9DEPN) \
5871*b1cdbd2cSJim Jagielski					$(USELIBDEPN)
5872*b1cdbd2cSJim Jagielski.ELSE
5873*b1cdbd2cSJim Jagielski$(SHL9IMPLIBN):	\
5874*b1cdbd2cSJim Jagielski					$(SHL9LIBS)
5875*b1cdbd2cSJim Jagielski.ENDIF
5876*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f)
5877*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT"
5878*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"
5879*b1cdbd2cSJim Jagielski	@echo no ImportLibs on mingw
5880*b1cdbd2cSJim Jagielski	@-$(RM) $@
5881*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5882*b1cdbd2cSJim Jagielski.ELSE			# "$(COM)=="GCC"
5883*b1cdbd2cSJim Jagielski# bei use_deffile implib von linker erstellt
5884*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"==""
5885*b1cdbd2cSJim Jagielski	$(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL9IMPLIBN) \
5886*b1cdbd2cSJim Jagielski	-def:$(SHL9DEF) )
5887*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)==""
5888*b1cdbd2cSJim Jagielski	@echo build of $(SHL9TARGETN) creates $@
5889*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5890*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)==""
5891*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
5892*b1cdbd2cSJim Jagielski
5893*b1cdbd2cSJim Jagielski.ELIF "$(GUI)" == "OS2"
5894*b1cdbd2cSJim Jagielski
5895*b1cdbd2cSJim Jagielski	@echo Import libs generated with .def file or with .dll file.
5896*b1cdbd2cSJim Jagielski# make 'dmake' happy
5897*b1cdbd2cSJim Jagielski	@-$(RM) $@
5898*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5899*b1cdbd2cSJim Jagielski
5900*b1cdbd2cSJim Jagielski.ELSE
5901*b1cdbd2cSJim Jagielski	@echo no ImportLibs on Mac and *ix
5902*b1cdbd2cSJim Jagielski	@-$(RM) $@
5903*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5904*b1cdbd2cSJim Jagielski.ENDIF
5905*b1cdbd2cSJim Jagielski.ENDIF
5906*b1cdbd2cSJim Jagielski
5907*b1cdbd2cSJim Jagielski# unroll begin
5908*b1cdbd2cSJim Jagielski
5909*b1cdbd2cSJim Jagielski.IF "$(SHL10IMPLIBN)" != ""
5910*b1cdbd2cSJim Jagielski
5911*b1cdbd2cSJim Jagielski.IF "$(UPDATER)"=="YES"
5912*b1cdbd2cSJim JagielskiUSELIB10DEPN+=$(SHL10LIBS)
5913*b1cdbd2cSJim Jagielski.ELSE
5914*b1cdbd2cSJim Jagielski.ENDIF
5915*b1cdbd2cSJim Jagielski
5916*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"!=""
5917*b1cdbd2cSJim JagielskiUSE_SHL10TARGET=$(SHL10TARGETN)
5918*b1cdbd2cSJim Jagielski.ENDIF
5919*b1cdbd2cSJim Jagielski
5920*b1cdbd2cSJim Jagielski.IF "$(GUI)" != "UNX"
5921*b1cdbd2cSJim Jagielski$(SHL10IMPLIBN):	\
5922*b1cdbd2cSJim Jagielski					$(SHL10DEF) \
5923*b1cdbd2cSJim Jagielski					$(USE_SHL10TARGET) \
5924*b1cdbd2cSJim Jagielski					$(USELIB10DEPN) \
5925*b1cdbd2cSJim Jagielski					$(USELIBDEPN)
5926*b1cdbd2cSJim Jagielski.ELSE
5927*b1cdbd2cSJim Jagielski$(SHL10IMPLIBN):	\
5928*b1cdbd2cSJim Jagielski					$(SHL10LIBS)
5929*b1cdbd2cSJim Jagielski.ENDIF
5930*b1cdbd2cSJim Jagielski	@echo "Making:   " $(@:f)
5931*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "WNT"
5932*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC"
5933*b1cdbd2cSJim Jagielski	@echo no ImportLibs on mingw
5934*b1cdbd2cSJim Jagielski	@-$(RM) $@
5935*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5936*b1cdbd2cSJim Jagielski.ELSE			# "$(COM)=="GCC"
5937*b1cdbd2cSJim Jagielski# bei use_deffile implib von linker erstellt
5938*b1cdbd2cSJim Jagielski.IF "$(USE_DEFFILE)"==""
5939*b1cdbd2cSJim Jagielski	$(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL10IMPLIBN) \
5940*b1cdbd2cSJim Jagielski	-def:$(SHL10DEF) )
5941*b1cdbd2cSJim Jagielski.ELSE			# "$(USE_DEFFILE)==""
5942*b1cdbd2cSJim Jagielski	@echo build of $(SHL10TARGETN) creates $@
5943*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5944*b1cdbd2cSJim Jagielski.ENDIF			# "$(USE_DEFFILE)==""
5945*b1cdbd2cSJim Jagielski.ENDIF			# "$(COM)"=="GCC"
5946*b1cdbd2cSJim Jagielski
5947*b1cdbd2cSJim Jagielski.ELIF "$(GUI)" == "OS2"
5948*b1cdbd2cSJim Jagielski
5949*b1cdbd2cSJim Jagielski	@echo Import libs generated with .def file or with .dll file.
5950*b1cdbd2cSJim Jagielski# make 'dmake' happy
5951*b1cdbd2cSJim Jagielski	@-$(RM) $@
5952*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5953*b1cdbd2cSJim Jagielski
5954*b1cdbd2cSJim Jagielski.ELSE
5955*b1cdbd2cSJim Jagielski	@echo no ImportLibs on Mac and *ix
5956*b1cdbd2cSJim Jagielski	@-$(RM) $@
5957*b1cdbd2cSJim Jagielski	@$(TOUCH) $@
5958*b1cdbd2cSJim Jagielski.ENDIF
5959*b1cdbd2cSJim Jagielski.ENDIF
5960*b1cdbd2cSJim Jagielski
5961