xref: /AOO41X/main/solenv/inc/tg_wntx64.mk (revision 54628ca40d27d15cc98fe861da7fff7e60c2f7d6)
1#**************************************************************
2#
3#  Licensed to the Apache Software Foundation (ASF) under one
4#  or more contributor license agreements.  See the NOTICE file
5#  distributed with this work for additional information
6#  regarding copyright ownership.  The ASF licenses this file
7#  to you under the Apache License, Version 2.0 (the
8#  "License"); you may not use this file except in compliance
9#  with the License.  You may obtain a copy of the License at
10#
11#    http://www.apache.org/licenses/LICENSE-2.0
12#
13#  Unless required by applicable law or agreed to in writing,
14#  software distributed under the License is distributed on an
15#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16#  KIND, either express or implied.  See the License for the
17#  specific language governing permissions and limitations
18#  under the License.
19#
20#**************************************************************
21
22
23###############################################
24#        Windows 64 bit special
25#   only used for 64 bit shell extension
26#          ( Windows Vista )
27# ---------------------------------------------
28# THIS FILE WILL BE DELETED when a fully ported
29# Windows 64 bit version is available
30###############################################
31
32.IF "$(BUILD_X64)"!=""
33
34.IF "$(SLOTARGET_X64)"!=""
35$(SLOTARGET_X64): $(SLOFILES_X64) $(IDLSLOFILES_X64)
36.IF "$(MDB)" != ""
37    @echo $(SLOTARGET_X64)
38    @echo $(&:+"\n")
39.ENDIF
40    @echo ------------------------------
41    @echo Making: $@
42    @-$(MKDIR) $(SLB_X64)
43.IF "$(LIBTARGET)"!="NO"
44    @-$(TYPE) $(mktmp $(&:+"\n")) > $(@:s/.lib/.lin/)
45.ENDIF          # "$(LIBTARGET)"!="NO"
46    $(LIBMGR_X64) $(LIBFLAGS_X64) /OUT:$@ @$(mktmp $(&:+"\n"))
47.ENDIF          # "$(SLOTARGET_X64)"!=""
48
49
50# decide how to link
51.IF "$(SHL1CODETYPE)"=="C"
52SHL1LINKFLAGS_X64+=$(LINKCFLAGS_X64)
53.ELSE           # "$(SHL1CODETYPE)"=="C"
54SHL1LINKFLAGS_X64+=$(LINKFLAGS_X64)
55.ENDIF          # "$(SHL1CODETYPE)"=="C"
56
57.IF "$(SHL2CODETYPE)"=="C"
58SHL2LINKFLAGS_X64+=$(LINKCFLAGS_X64)
59.ELSE           # "$(SHL2CODETYPE)"=="C"
60SHL2LINKFLAGS_X64+=$(LINKFLAGS_X64)
61.ENDIF          # "$(SHL2CODETYPE)"=="C"
62
63.IF "$(SHL1IMPLIB_X64)" == ""
64SHL1IMPLIB_X64=i$(TARGET)_t1
65.ENDIF          # "$(SHL1IMPLIB_X64)" == ""
66USE_1IMPLIB_X64=-implib:$(LB_X64)/$(SHL1IMPLIB_X64).lib
67.IF "$(SHL1TARGET_X64)"!=""
68SHL1IMPLIBN_X64=$(LB_X64)/$(SHL1IMPLIB_X64).lib
69.ENDIF # "$(SLOFILES_X64)$(OBJFILES_X64)"!=""
70
71make_x64_dirs :
72    -$(MKDIR) $(BIN_X64)
73    -$(MKDIR) $(MISC_X64)
74    -$(MKDIR) $(LB_X64)
75    -$(MKDIR) $(SLB_X64)
76
77
78.IF "$(LIBTARGET)" == ""
79ALLTAR : $(SHL1IMPLIBN_X64)
80.ENDIF "$(LIBTARGET)" == ""
81
82# ----------------------------- lib ------------------------------------------
83.IF "$(LIB1TARGET_X64)" != ""
84$(LIB1TARGET_X64) : $(LIB1FILES_X64) \
85                        $(LIB1OBJFILES_X64) \
86                        $(LIB1DEPN_X64)
87    @echo using: $(LIB1FILES_X64)
88    @echo using: $(LIB1TARGET_X64)
89    @echo ------------------------------
90    @echo Making: $@
91    -$(MKDIR) $(SLB_X64)
92    @@-$(RM) $@
93    $(LIBMGR_X64) $(LIBFLAGS_X64) /OUT:$@ @$(mktmp $(LIB1FILES_X64) $(LIB1OBJFILES_X64))
94    @-$(RM) $(@:s/.lib/.lin/)
95.IF "$(LIB1OBJFILES_X64)"!=""
96    @$(TYPE) $(mktmp $(LIB1OBJFILES_X64)) > $(null,$(LIB1OBJFILES_X64) $(NULLDEV) $(@:s/.lib/.lin/))
97.ENDIF          # "$(LIB1OBJFILES_X64)"!=""
98.IF "$(LIB1FILES_X64)"!=""
99    @-$(TYPE) $(foreach,i,$(LIB1FILES_X64) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/)
100.ENDIF          # "$(LIB1FILES_X64)"!=""
101    @$(ECHONL)
102.ENDIF          # "$(LIB1TARGET_X64)" != ""
103
104.IF "$(LIB2TARGET_X64)" != ""
105$(LIB2TARGET_X64) : $(LIB2FILES_X64) \
106                        $(LIB2OBJFILES_X64) \
107                        $(LIB2DEPN_X64)
108    @echo using: $(LIB2FILES_X64)
109    @echo using: $(LIB2TARGET_X64)
110    @echo ------------------------------
111    @echo Making: $@
112    -$(MKDIR) $(SLB_X64)
113    @@-$(RM) $@
114    $(LIBMGR_X64) $(LIBFLAGS_X64) /OUT:$@ @$(mktmp $(LIB2FILES_X64) $(LIB2OBJFILES_X64))
115    @-$(RM) $(@:s/.lib/.lin/)
116.IF "$(LIB2OBJFILES_X64)"!=""
117    @$(TYPE) $(mktmp $(LIB2OBJFILES_X64)) > $(null,$(LIB2OBJFILES_X64) $(NULLDEV) $(@:s/.lib/.lin/))
118.ENDIF          # "$(LIB2OBJFILES_X64)"!=""
119.IF "$(LIB2FILES_X64)"!=""
120    @-$(TYPE) $(foreach,i,$(LIB2FILES_X64) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/)
121.ENDIF          # "$(LIB2FILES_X64)"!=""
122    @$(ECHONL)
123.ENDIF          # "$(LIB2TARGET_X64)" != ""
124
125# -------------- def ----------------------
126.IF "$(DEF1TARGETN_X64)"!=""
127$(DEF1TARGETN_X64) : \
128        $(DEF1DEPN_X64) \
129        $(DEF1EXPORTFILE_X64)
130        @-$(MKDIR) $(MISC_X64)
131    @-$(RM) $@.tmpfile
132    @echo ------------------------------
133    @echo Making Module-Definitionfile : $@
134    @echo LIBRARY     $(EMQ)"$(SHL1TARGETN:f)$(EMQ)"                                 >$@.tmpfile
135    @echo HEAPSIZE    0                                             >>$@.tmpfile
136    @echo EXPORTS                                                   >>$@.tmpfile
137#   getversioninfo fuer alle!!
138    @echo GetVersionInfo        >>$@.tmpfile
139.IF "$(DEFLIB1NAME_X64)"!=""
140.IF "$(SHL1USE_EXPORTS_X64)"==""
141    @-$(EXPORT1_PROTECT) $(RMHACK1) $(MISC_X64)/$(SHL1TARGET_X64).exp
142    @$(EXPORT1_PROTECT) $(LIBMGR_X64) -EXTRACT:/ /OUT:$(MISC_X64)/$(SHL1TARGET_X64).exp $(SLB_X64)/$(DEFLIB1NAME_X64).lib
143    @$(EXPORT1_PROTECT) $(LDUMP2) -E 20 -F $(MISC_X64)/$(SHL1TARGET_X64).flt $(MISC_X64)/$(SHL1TARGET_X64).exp             >>$@.tmpfile
144    $(EXPORT1_PROTECT) $(RMHACK1) $(MISC_X64)/$(SHL1TARGET_X64).exp
145.ELSE           # "$(SHL1USE_EXPORTS_X64)"==""
146    @$(EXPORT1_PROTECT) $(DUMPBIN) -DIRECTIVES  $(foreach,i,$(DEFLIB1NAME_X64) $(SLB_X64)/$(i).lib) | $(GREP) EXPORT: > $(MISC_X64)/$(SHL1TARGET_X64).direct
147.IF "$(SHL1USE_EXPORTS_X64)"!="name"
148    @$(EXPORT1_PROTECT) $(LDUMP2) -D -E 20 -F $(DEF1FILTER_X64) $(MISC_X64)/$(SHL1TARGET_X64).direct >>$@.tmpfile
149.ELSE           # "$(SHL1USE_EXPORTS_X64)"!="name"
150    @$(EXPORT1_PROTECT) $(LDUMP2) -N -D -E 20 -F $(DEF1FILTER_X64) $(MISC_X64)/$(SHL1TARGET_X64).direct >>$@.tmpfile
151.ENDIF          # "$(SHL1USE_EXPORTS_X64)"!="name"
152.ENDIF          # "$(SHL1USE_EXPORTS)"==""
153.ENDIF              # "$(DEFLIB1NAME)"!=""
154.IF "$(DEF1EXPORT1_X64)"!=""
155    @echo $(DEF1EXPORT1_X64)                                        >>$@.tmpfile
156.ENDIF
157.IF "$(DEF1EXPORTFILE_X64)"!=""
158    $(COMMAND_ECHO)$(TYPE) $(DEF1EXPORTFILE_X64) >> $@.tmpfile
159.ENDIF
160    @-$(RM) $@
161    @$(RENAME) $@.tmpfile $@
162.ENDIF      # "$(DEF1TARGETN_X64)"!=""
163
164.IF "$(DEF2TARGETN_X64)"!=""
165$(DEF2TARGETN_X64) : \
166        $(DEF2DEPN_X64) \
167        $(DEF2EXPORTFILE_X64)
168    @-$(MKDIR) $(MISC_X64)
169    @-$(RM) $@.tmpfile
170    @echo Making Module-Definitionfile : $@
171    @echo LIBRARY     $(EMQ)"$(SHL2TARGETN:f)$(EMQ)"                                 >$@.tmpfile
172    @echo HEAPSIZE    0                                             >>$@.tmpfile
173    @echo EXPORTS                                                   >>$@.tmpfile
174#   getversioninfo fuer alle!!
175    @echo GetVersionInfo        >>$@.tmpfile
176.IF "$(DEFLIB2NAME_X64)"!=""
177.IF "$(SHL2USE_EXPORTS_X64)"==""
178    @-$(EXPORT2_PROTECT) $(RMHACK1) $(MISC_X64)/$(SHL2TARGET_X64).exp
179    @$(EXPORT2_PROTECT) $(LIBMGR_X64) -EXTRACT:/ /OUT:$(MISC_X64)/$(SHL2TARGET_X64).exp $(SLB_X64)/$(DEFLIB2NAME_X64).lib
180    @$(EXPORT2_PROTECT) $(LDUMP2) -E 20 -F $(MISC_X64)/$(SHL2TARGET_X64).flt $(MISC_X64)/$(SHL2TARGET_X64).exp             >>$@.tmpfile
181    $(EXPORT2_PROTECT) $(RMHACK1) $(MISC_X64)/$(SHL2TARGET_X64).exp
182.ELSE           # "$(SHL2USE_EXPORTS_X64)"==""
183    @$(EXPORT2_PROTECT) $(DUMPBIN) -DIRECTIVES  $(foreach,i,$(DEFLIB2NAME_X64) $(SLB_X64)/$(i).lib) | $(GREP) EXPORT: > $(MISC_X64)/$(SHL2TARGET_X64).direct
184.IF "$(SHL2USE_EXPORTS_X64)"!="name"
185    @$(EXPORT2_PROTECT) $(LDUMP2) -D -E 20 -F $(DEF2FILTER_X64) $(MISC_X64)/$(SHL2TARGET_X64).direct >>$@.tmpfile
186.ELSE           # "$(SHL2USE_EXPORTS_X64)"!="name"
187    @$(EXPORT2_PROTECT) $(LDUMP2) -N -D -E 20 -F $(DEF2FILTER_X64) $(MISC_X64)/$(SHL2TARGET_X64).direct >>$@.tmpfile
188.ENDIF          # "$(SHL2USE_EXPORTS_X64)"!="name"
189.ENDIF          # "$(SHL2USE_EXPORTS)"==""
190.ENDIF              # "$(DEFLIB1NAME)"!=""
191.IF "$(DEF2EXPORT2_X64)"!=""
192    @echo $(DEF2EXPORT2_X64)                                        >>$@.tmpfile
193.ENDIF
194.IF "$(DEF2EXPORTFILE_X64)"!=""
195    $(COMMAND_ECHO)$(TYPE) $(DEF2EXPORTFILE_X64) >> $@.tmpfile
196.ENDIF
197    @-$(RM) $@
198    @$(RENAME) $@.tmpfile $@
199.ENDIF      # "$(DEF2TARGETN_X64)"!=""
200#-----------------------------------------------------------------------------
201
202# -------------------------------- shl -----------------------------------------
203
204.IF "$(SHL1TARGET_X64)"!=""
205.IF "$(VERSIONOBJ_X64)"!=""
206SHL1VERSIONOBJ_X64:=$(VERSIONOBJ_X64:d){$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL1TARGET_X64))}$(VERSIONOBJ_X64:f)
207USE_VERSIONH_X64:=$(INCCOM)/$(SHL1VERSIONOBJ_X64:b).h
208SHL1VERSIONOBJDEP_X64:=$(VERSIONOBJ_X64:d){$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL1TARGET_X64))}$(VERSIONOBJ_X64:f)
209$(MISC_X64)/$(SHL1VERSIONOBJ_X64:b).c : make_x64_dirs $(SOLARENV)/src/version.c $(INCCOM)/$(SHL1VERSIONOBJ_X64:b).h
210    $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL1VERSIONOBJ_X64:b).h/ > $@
211.INIT : $(SHL1VERSIONOBJDEP_X64)
212.ENDIF
213
214.IF "$(USE_DEFFILE_X64)"==""
215USE_1IMPLIB_DEPS_X64=$(LB_X64)/$(SHL1IMPLIB_X64).lib
216.ENDIF          # "$(USE_DEFFILE_X64)"==""
217
218.IF "$(SHL1RES_X64)"!=""
219SHL1ALLRES_X64+=$(SHL1RES_X64)
220SHL1LINKRES_X64*=$(MISC_X64)/$(SHL1TARGET_X64).res
221SHL1LINKRESO_X64*=$(MISC_X64)/$(SHL1TARGET_X64)_res.o
222.ENDIF          # "$(SHL1RES_X64)"!=""
223
224.IF "$(SHL1DEFAULTRES_X64)$(use_shl_versions)"!=""
225SHL1DEFAULTRES_X64*=$(MISC_X64)/$(SHL1TARGET_X64)_def.res
226SHL1ALLRES_X64+=$(SHL1DEFAULTRES_X64)
227SHL1LINKRES_X64*=$(MISC_X64)/$(SHL1TARGET_X64).res
228SHL1LINKRESO_X64*=$(MISC_X64)/$(SHL1TARGET_X64)_res.o
229.ENDIF          # "$(SHL1DEFAULTRES)$(use_shl_versions)"!=""
230.ENDIF # "$(SHL1TARGET_X64)"=!""
231
232.IF "$(SHL1TARGETN_X64)"!=""
233$(SHL1TARGETN_X64) : \
234                    make_x64_dirs \
235                    $(SHL1OBJS_X64)\
236                    $(SHL1LIBS_X64)\
237                    $(USE_1IMPLIB_DEPS_X64)\
238                    $(USE_SHL1DEF_X64)\
239                    $(USE_SHL1VERSIONMAP_X64)\
240                    $(SHL1RES)\
241                    $(SHL1DEPN_X64) \
242                    $(SHL1LINKLIST_X64)
243    @echo Making: $(SHL1TARGETN_X64)
244.IF "$(SHL1DEFAULTRES_X64)"!=""
245    @@-$(RM) $(MISC_X64)/$(SHL1DEFAULTRES_X64:b).rc
246.IF "$(use_shl_versions)" != ""
247.IF "$(SHL1ADD_VERINFO_X64)"!=""
248    @echo $(EMQ)#include $(EMQ)"$(SHL1ADD_VERINFO)$(EMQ)" >> $(MISC_X64)/$(SHL1DEFAULTRES_X64:b).rc
249.ELSE           # "$(SHL1ADD_VERINFO_X64)"!=""
250    @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC_X64)/$(SHL1DEFAULTRES_X64:b).rc
251    @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC_X64)/$(SHL1DEFAULTRES_X64:b).rc
252    @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC_X64)/$(SHL1DEFAULTRES_X64:b).rc
253.ENDIF          # "$(SHL1ADD_VERINFO_X64)"!=""
254    @echo $(EMQ)#define VERVARIANT  $(BUILD) >> $(MISC_X64)/$(SHL1DEFAULTRES_X64:b).rc
255    @echo $(EMQ)#define ORG_NAME    $(SHL1TARGET_X64)$(DLLPOST) >> $(MISC_X64)/$(SHL1DEFAULTRES_X64:b).rc
256    @echo $(EMQ)#define INTERNAL_NAME $(SHL1TARGET_X64:b) >> $(MISC_X64)/$(SHL1DEFAULTRES_X64:b).rc
257    @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC_X64)/$(SHL1DEFAULTRES_X64:b).rc
258.ENDIF          # "$(use_shl_versions)" != ""
259    $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS_X64) $(MISC_X64)/$(SHL1DEFAULTRES_X64:b).rc
260.ENDIF # "$(SHL1DEFAULTRES_X64)"!=""
261.IF "$(SHL1ALLRES_X64)"!=""
262    $(COMMAND_ECHO)$(TYPE) $(SHL1ALLRES_X64) > $(SHL1LINKRES_X64)
263.ENDIF          # "$(SHL1ALLRES)"!=""
264.IF "$(USE_DEFFILE_X64)"!=""
265    $(LINK_X64) @$(mktmp \
266        $(SHL1LINKFLAGS_X64) \
267        $(LINKFLAGSSHL_X64) \
268        $(SHL1STACK_X64) $(SHL1BASEX_X64)   \
269        -out:$@ \
270        -map:$(MISC_X64)/$(@:b).map \
271        -def:$(SHL1DEF_X64) \
272        $(USE_1IMPLIB_X64) \
273        $(STDOBJ_X64) \
274        $(SHL1VERSIONOBJ_X64) $(SHL1OBJS_X64) \
275        $(SHL1LIBS_X64) \
276        $(SHL1STDLIBS_X64) \
277        $(SHL1STDSHL_X64) $(STDSHL1_X64) \
278        $(SHL1LINKRES_X64) \
279    ) $(LINKOUTPUTFILTER_X64)
280# double check if target was really written... still making sense?
281    @@$(LS) $@
282    @echo linking $@.manifest ...
283.IF "$(VISTA_MANIFEST)"!=""
284    $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
285    $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
286.ELSE
287    $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
288.ENDIF # "$(VISTA_MANIFEST)"!=""
289    $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
290    $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
291.ELSE           # "$(USE_DEFFILE)"!=""
292    $(LINK_X64) @$(mktmp    $(SHL1LINKFLAGS_X64)            \
293        $(LINKFLAGSSHL_X64) $(SHL1BASEX_X64)        \
294        $(SHL1STACK_X64) -out:$(SHL1TARGETN_X64)    \
295        -map:$(MISC_X64)/$(@:B).map             \
296        $(LB_X64)/$(SHL1IMPLIB_X64).exp             \
297        $(STDOBJ_X64)                           \
298        $(SHL1OBJS_X64) $(SHL1VERSIONOBJ_X64) \
299        $(SHL1LIBS_X64)                         \
300        $(SHL1STDLIBS_X64)                      \
301        $(SHL1STDSHL_X64) $(STDSHL1_X64)                           \
302        $(SHL1LINKRES_X64) \
303    ) $(LINKOUTPUTFILTER_X64)
304# double check if target was really written... still making sense?
305    @@$(LS) $@
306    @echo linking $@.manifest ...
307.IF "$(VISTA_MANIFEST)"!=""
308    $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
309    $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
310.ELSE
311    $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
312.ENDIF # "$(VISTA_MANIFEST)"!=""
313    $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
314    $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
315.ENDIF          # "$(USE_DEFFILE)"!=""
316# ------------------------------------------------------------------------------
317$(SHL1IMPLIBN_X64): \
318                    $(SHL1DEF_X64) \
319                    $(USE_SHL1TARGET_X64) \
320                    $(USELIB1DEPN_X64) \
321                    $(USELIBDEPN_X64)
322    @echo Making: $(SHL1IMPLIBN_X64)
323# bei use_deffile implib von linker erstellt
324    @-mkdir $(LB_X64)
325.IF "$(USE_DEFFILE_X64)"==""
326    $(IMPLIB_X64) $(IMPLIBFLAGS_X64) @$(mktmp -out:$(SHL1IMPLIBN_X64) \
327    -def:$(SHL1DEF_X64) )
328.ELSE           # "$(USE_DEFFILE_X64)==""
329    @echo build of $(SHL1TARGETN_X64) creates $@
330.ENDIF          # "$(USE_DEFFILE_X64)==""
331
332.ENDIF          # "$(SHL1TARGETN_X64)"!=""
333
334.IF "$(SHL2IMPLIB_X64)" == ""
335SHL2IMPLIB_X64=i$(TARGET)_t2
336.ENDIF          # "$(SHL2IMPLIB_X64)" == ""
337.IF "$(COM)" != "GCC"
338USE_2IMPLIB_X64=-implib:$(LB_X64)/$(SHL2IMPLIB_X64).lib
339.ENDIF          # "$(COM)" != "GCC"
340.IF "$(SHL2TARGET_X64)"!=""
341SHL2IMPLIBN_X64=$(LB_X64)/$(SHL2IMPLIB_X64).lib
342.ENDIF # "$(SLOFILES_X64)$(OBJFILES_X64)"!=""
343
344.IF "$(LIBTARGET)" == ""
345ALLTAR : $(SHL2IMPLIBN_X64)
346.ENDIF # "$(LIBTARGET)" == ""
347
348.IF "$(SHL2TARGET_X64)"!=""
349.IF "$(VERSIONOBJ_X64)"!=""
350SHL2VERSIONOBJ_X64:=$(VERSIONOBJ_X64:d){$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL2TARGET_X64))}$(VERSIONOBJ_X64:f)
351USE_VERSIONH_X64:=$(INCCOM)/$(SHL2VERSIONOBJ_X64:b).h
352SHL2VERSIONOBJDEP_X64:=$(VERSIONOBJ_X64:d){$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL2TARGET_X64))}$(VERSIONOBJ_X64:f)
353$(MISC_X64)/$(SHL2VERSIONOBJ_X64:b).c : make_x64_dirs $(SOLARENV)/src/version.c $(INCCOM)/$(SHL2VERSIONOBJ_X64:b).h
354    $(COMMAND_ECHO)$(TYPE) $(SOLARENV)/src/version.c | $(SED) s/_version.h/$(SHL2VERSIONOBJ_X64:b).h/ > $@
355.INIT : $(SHL2VERSIONOBJDEP_X64)
356.ENDIF
357
358.IF "$(USE_DEFFILE_X64)"==""
359USE_2IMPLIB_DEPS_X64=$(LB_X64)/$(SHL2IMPLIB_X64).lib
360.ENDIF          # "$(USE_DEFFILE_X64)"==""
361
362.IF "$(SHL2RES_X64)"!=""
363SHL2ALLRES_X64+=$(SHL2RES_X64)
364SHL2LINKRES_X64*=$(MISC_X64)/$(SHL2TARGET_X64).res
365SHL2LINKRESO_X64*=$(MISC_X64)/$(SHL2TARGET_X64)_res.o
366.ENDIF          # "$(SHL2RES_X64)"!=""
367
368.IF "$(SHL2DEFAULTRES_X64)$(use_shl_versions)"!=""
369SHL2DEFAULTRES_X64*=$(MISC_X64)/$(SHL2TARGET_X64)_def.res
370SHL2ALLRES_X64+=$(SHL2DEFAULTRES_X64)
371SHL2LINKRES_X64*=$(MISC_X64)/$(SHL2TARGET_X64).res
372SHL2LINKRESO_X64*=$(MISC_X64)/$(SHL2TARGET_X64)_res.o
373.ENDIF          # "$(SHL2DEFAULTRES)$(use_shl_versions)"!=""
374.ENDIF # "$(SHL2TARGET_X64)"=!""
375
376.IF "$(SHL2TARGETN_X64)"!=""
377$(SHL2TARGETN_X64) : \
378                    make_x64_dirs \
379                    $(SHL2OBJS_X64)\
380                    $(SHL2LIBS_X64)\
381                    $(USE_2IMPLIB_DEPS_X64)\
382                    $(USE_SHL2DEF_X64)\
383                    $(USE_SHL2VERSIONMAP_X64)\
384                    $(SHL2RES)\
385                    $(SHL2DEPN_X64) \
386                    $(SHL2LINKLIST_X64)
387    @echo Making: $(SHL2TARGETN_X64)
388.IF "$(SHL2DEFAULTRES_X64)"!=""
389    @@-$(RM) $(MISC_X64)/$(SHL2DEFAULTRES_X64:b).rc
390.IF "$(use_shl_versions)" != ""
391.IF "$(SHL2ADD_VERINFO_X64)"!=""
392    @echo $(EMQ)#include $(EMQ)"$(SHL2ADD_VERINFO)$(EMQ)" >> $(MISC_X64)/$(SHL2DEFAULTRES_X64:b).rc
393.ELSE           # "$(SHL2ADD_VERINFO_X64)"!=""
394    @echo $(EMQ)#define ADDITIONAL_VERINFO1 >> $(MISC_X64)/$(SHL2DEFAULTRES_X64:b).rc
395    @echo $(EMQ)#define ADDITIONAL_VERINFO2 >> $(MISC_X64)/$(SHL2DEFAULTRES_X64:b).rc
396    @echo $(EMQ)#define ADDITIONAL_VERINFO3 >> $(MISC_X64)/$(SHL2DEFAULTRES_X64:b).rc
397.ENDIF          # "$(SHL1ADD_VERINFO_X64)"!=""
398    @echo $(EMQ)#define VERVARIANT  $(BUILD) >> $(MISC_X64)/$(SHL2DEFAULTRES_X64:b).rc
399    @echo $(EMQ)#define ORG_NAME    $(SHL2TARGET_X64)$(DLLPOST) >> $(MISC_X64)/$(SHL2DEFAULTRES_X64:b).rc
400    @echo $(EMQ)#define INTERNAL_NAME $(SHL1TARGET_X64:b) >> $(MISC_X64)/$(SHL2DEFAULTRES_X64:b).rc
401    @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC_X64)/$(SHL2DEFAULTRES_X64:b).rc
402.ENDIF          # "$(use_shl_versions)" != ""
403    $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS_X64) $(MISC_X64)/$(SHL2DEFAULTRES_X64:b).rc
404.ENDIF # "$(SHL2DEFAULTRES_X64)"!=""
405.IF "$(SHL2ALLRES_X64)"!=""
406    $(COMMAND_ECHO)$(TYPE) $(SHL2ALLRES_X64) > $(SHL2LINKRES_X64)
407.ENDIF          # "$(SHL2ALLRES)"!=""
408.IF "$(USE_DEFFILE_X64)"!=""
409    $(LINK_X64) @$(mktmp \
410        $(SHL2LINKFLAGS_X64) \
411        $(LINKFLAGSSHL_X64) \
412        $(SHL2STACK_X64) $(SHL2BASEX_X64)   \
413        -out:$@ \
414        -map:$(MISC_X64)/$(@:b).map \
415        -def:$(SHL2DEF_X64) \
416        $(USE_2IMPLIB_X64) \
417        $(STDOBJ_X64) \
418        $(SHL2VERSIONOBJ_X64) $(SHL2OBJS_X64) \
419        $(SHL2LIBS_X64) \
420        $(SHL2STDLIBS_X64) \
421        $(SHL2STDSHL_X64) $(STDSHL2_X64) \
422        $(SHL2LINKRES_X64) \
423    ) $(LINKOUTPUTFILTER_X64)
424# double check if target was really written... still making sense?
425    @@$(LS) $@
426    @echo linking $@.manifest ...
427.IF "$(VISTA_MANIFEST)"!=""
428    $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
429    $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
430.ELSE
431    $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
432.ENDIF # "$(VISTA_MANIFEST)"!=""
433    $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
434    $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
435.ELSE           # "$(USE_DEFFILE)"!=""
436    $(LINK_X64) @$(mktmp    $(SHL2LINKFLAGS_X64)            \
437        $(LINKFLAGSSHL_X64) $(SHL2BASEX_X64)        \
438        $(SHL2STACK_X64) -out:$(SHL2TARGETN_X64)    \
439        -map:$(MISC_X64)/$(@:B).map             \
440        $(LB_X64)/$(SHL2IMPLIB_X64).exp             \
441        $(STDOBJ_X64)                           \
442        $(SHL2OBJS_X64) $(SHL2VERSIONOBJ_X64) \
443        $(SHL2LIBS_X64)                         \
444        $(SHL2STDLIBS_X64)                      \
445        $(SHL2STDSHL_X64) $(STDSHL2_X64)                           \
446        $(SHL2LINKRES_X64) \
447    ) $(LINKOUTPUTFILTER_X64)
448# double check if target was really written... still making sense?
449    @@$(LS) $@
450    @echo linking $@.manifest ...
451.IF "$(VISTA_MANIFEST)"!=""
452    $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -manifest $(TRUSTED_MANIFEST_LOCATION)/trustedinfo.manifest -out:$@.tmanifest$(EMQ) $(FI)
453    $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.tmanifest -outputresource:$@$(EMQ);2 $(FI)
454.ELSE
455    $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(MT) $(MTFLAGS) -manifest $@.manifest -outputresource:$@$(EMQ);2 $(FI)
456.ENDIF # "$(VISTA_MANIFEST)"!=""
457    $(COMMAND_ECHO)$(IFEXIST) $@.manifest $(THEN) $(RM:s/+//) $@.manifest $(FI)
458    $(COMMAND_ECHO)$(IFEXIST) $@.tmanifest $(THEN) $(RM:s/+//) $@.tmanifest $(FI)
459.ENDIF          # "$(USE_DEFFILE)"!=""
460
461$(SHL2IMPLIBN_X64): \
462                    $(SHL2DEF_X64) \
463                    $(USE_SHL2TARGET_X64) \
464                    $(USELIB2DEPN_X64) \
465                    $(USELIBDEPN_X64)
466    @echo Making: $(SHL2IMPLIBN_X64)
467# bei use_deffile implib von linker erstellt
468    @-mkdir $(LB_X64)
469.IF "$(USE_DEFFILE_X64)"==""
470    $(IMPLIB_X64) $(IMPLIBFLAGS_X64) @$(mktmp -out:$(SHL2IMPLIBN_X64) \
471    -def:$(SHL2DEF_X64) )
472.ELSE           # "$(USE_DEFFILE_X64)==""
473    @echo build of $(SHL2TARGETN_X64) creates $@
474.ENDIF          # "$(USE_DEFFILE_X64)==""
475
476.ENDIF          # "$(SHL2TARGETN_X64)"!=""
477
478
479$(SLO_X64)/%.obj : %.cpp
480    @echo ------------------------------
481    @echo Making: $@
482    @@-$(RM) $@ >& $(NULLDEV)
483    -$(MKDIR) $(@:d)
484    @-$(MKDIR) $(MISC_X64)
485    $(CAPTURE_COMMAND) $(CXX_X64) $(USE_CFLAGS_X64) $(INCLUDE_X64) $(CFLAGSCXX_X64) $(CFLAGSSLO_X64) $(USE_CDEFS_X64) $(CDEFSSLO_X64) $(CDEFSMT_X64) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(SLO_X64)/$*.obj $(CFLAGSINCXX)$(PWD)/$*.cpp $(CAPTURE_OUTPUT)
486
487$(SLO_X64)/%.obj : %.cxx
488    @echo Making: $@
489    @@-$(RM) $@ >& $(NULLDEV)
490    $(COMMAND_ECHO)-$(MKDIR) $(@:d)
491    $(COMMAND_ECHO)@-$(MKDIR) $(MISC_X64)
492    $(COMMAND_ECHO)$(CAPTURE_COMMAND) $(CXX_X64) $(USE_CFLAGS_X64) $(INCLUDE_X64) $(CFLAGSCXX_X64) $(CFLAGSSLO_X64) $(USE_CDEFS_X64) $(CDEFSSLO_X64) $(CDEFSMT_X64) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(SLO_X64)/$*.obj $(CFLAGSINCXX)$(PWD)/$*.cxx $(CAPTURE_OUTPUT)
493
494$(SLO_X64)/%.obj : $(MISC)/%.c
495    @echo Making: $@
496    $(COMMAND_ECHO)-$(MKDIR) $(@:d)
497    $(COMMAND_ECHO)@-$(MKDIR) $(MISC_X64)
498    @@-$(RM) $@
499    @$(TYPE) $(mktmp $(CC_X64) $(USE_CFLAGS_X64) $(INCLUDE_C) $(CFLAGSCC_X64) $(CFLAGSSLO_X64) $(USE_CDEFS_X64) $(CDEFSSLO_X64) $(CFLAGSAPPEND_X64) $(CFLAGSOUTOBJ)$(SLO_X64)/$*.obj $(MISC)/$*.c )
500    @$(ECHONL)
501    $(COMMAND_ECHO)$(CC_X64) @$(mktmp $(USE_CFLAGS_X64) $(INCLUDE_C) $(CFLAGSCC_X64) $(CFLAGSSLO_X64) $(USE_CDEFS_X64) $(CDEFSSLO_X64) $(CFLAGSAPPEND_X64) $(CFLAGSOUTOBJ)$(SLO_X64)/$*.obj $(MISC)/$*.c )
502
503$(SLO_X64)/%.obj : %.c
504    @echo Making: $@
505    $(COMMAND_ECHO)-$(MKDIR) $(@:d)
506    $(COMMAND_ECHO)@-$(MKDIR) $(MISC_X64)
507    @@-$(RM) $@
508    $(COMMAND_ECHO)$(CC_X64) @$(mktmp $(USE_CFLAGS_X64) $(INCLUDE_C) $(CFLAGSCC_X64) $(CFLAGSSLO_X64) $(USE_CDEFS_X64) $(CDEFSSLO_X64) $(CDEFSMT_X64) $(CFLAGSAPPEND_X64) $(CFLAGSOUTOBJ)$(SLO_X64)/$*.obj $*.c )
509
510.ENDIF          # "$(BUILD_X64)"!=""
511