xref: /aoo4110/main/solenv/inc/set_wntx64.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
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielski###############################################
24*b1cdbd2cSJim Jagielski#        Windows 64 bit special
25*b1cdbd2cSJim Jagielski#	only used for 64 bit shell extension
26*b1cdbd2cSJim Jagielski#          ( Windows Vista )
27*b1cdbd2cSJim Jagielski# ---------------------------------------------
28*b1cdbd2cSJim Jagielski# THIS FILE WILL BE DELETED when a fully ported
29*b1cdbd2cSJim Jagielski# Windows 64 bit version is available
30*b1cdbd2cSJim Jagielski###############################################
31*b1cdbd2cSJim Jagielski
32*b1cdbd2cSJim Jagielski.IF "$(BUILD_X64)"!=""
33*b1cdbd2cSJim Jagielski# ----------------- settings for x64 --------------------
34*b1cdbd2cSJim JagielskiCC_X64*:=$(WRAPCMD) $(CXX_X64_BINARY)
35*b1cdbd2cSJim JagielskiCXX_X64*:=$(WRAPCMD) $(CXX_X64_BINARY)
36*b1cdbd2cSJim JagielskiLINK_X64*:=$(WRAPCMD) $(LINK_X64_BINARY) $(NOLOGO) -MACHINE:X64
37*b1cdbd2cSJim JagielskiLIBMGR_X64=$(WRAPCMD) $(LIBMGR_X64_BINARY) $(NOLOGO)
38*b1cdbd2cSJim JagielskiIMPLIB_X64=$(WRAPCMD) $(LIBMGR_X64_BINARY)
39*b1cdbd2cSJim Jagielski
40*b1cdbd2cSJim JagielskiUSE_CFLAGS_X64=-c -nologo -Gs $(NOLOGO) -Zm500 -Zc:wchar_t- -GR
41*b1cdbd2cSJim Jagielski
42*b1cdbd2cSJim Jagielski# Stack buffer overrun detection.
43*b1cdbd2cSJim JagielskiCFLAGS+=-GS
44*b1cdbd2cSJim Jagielski
45*b1cdbd2cSJim JagielskiUSE_CDEFS_X64+= -DWIN32 -D_AMD64_=1 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NON_CONFORMING_SWPRINTFS
46*b1cdbd2cSJim Jagielski.IF "$(debug)"!=""
47*b1cdbd2cSJim JagielskiUSE_CFLAGS_X64+=-Zi -Fd$(MISC_X64)/$(@:b).pdb
48*b1cdbd2cSJim JagielskiUSE_CDEFS_X64+=-DDEBUG
49*b1cdbd2cSJim Jagielski.ENDIF # "$(debug)"!=""
50*b1cdbd2cSJim Jagielski# Required for correct Windows function call ABI for expat static library
51*b1cdbd2cSJim Jagielski.IF "$(SYSTEM_EXPAT)"=="NO"
52*b1cdbd2cSJim JagielskiUSE_CDEFS_X64+=-DXML_STATIC
53*b1cdbd2cSJim Jagielski.ENDIF
54*b1cdbd2cSJim JagielskiUSE_CFLAGS_X64+=$(CFLAGS_X64)
55*b1cdbd2cSJim JagielskiUSE_CDEFS_X64+=$(CDEFS_X64)
56*b1cdbd2cSJim JagielskiINCLUDE_X64=$(subst,/stl$(SPACECHAR),dont_use_stl$(SPACECHAR) $(INCLUDE))
57*b1cdbd2cSJim Jagielski
58*b1cdbd2cSJim Jagielski.IF "$(product)" != ""
59*b1cdbd2cSJim JagielskiUSE_CFLAGS_X64+=-Gy
60*b1cdbd2cSJim Jagielski.ENDIF # "$(product)" != ""
61*b1cdbd2cSJim Jagielski
62*b1cdbd2cSJim Jagielski# inline expansion
63*b1cdbd2cSJim JagielskiUSE_CFLAGS_X64+=-Ob1
64*b1cdbd2cSJim Jagielski
65*b1cdbd2cSJim Jagielski.IF "$(DYNAMIC_CRT)"!=""
66*b1cdbd2cSJim JagielskiCDEFSSLOMT_X64+=-D_MT -D_DLL
67*b1cdbd2cSJim JagielskiCDEFSSLOMT_X64+=-D_MT -D_DLL
68*b1cdbd2cSJim Jagielski.IF "$(NO_DYNAMIC_OBJ)"==""
69*b1cdbd2cSJim JagielskiCDEFSOBJMT_X64+=-D_MT -D_DLL
70*b1cdbd2cSJim JagielskiCDEFSOBJMT_X64+=-D_MT -D_DLL
71*b1cdbd2cSJim Jagielski.ELSE
72*b1cdbd2cSJim JagielskiCDEFSOBJMT_X64+=-D_MT
73*b1cdbd2cSJim JagielskiCDEFSOBJMT_X64+=-D_MT
74*b1cdbd2cSJim Jagielski.ENDIF # "$(NO_DYNAMIC_OBJ)"==""
75*b1cdbd2cSJim Jagielski.ELSE
76*b1cdbd2cSJim JagielskiCDEFSSLOMT_X64+=-D_MT
77*b1cdbd2cSJim JagielskiCDEFSOBJMT_X64+=-D_MT
78*b1cdbd2cSJim Jagielski.ENDIF # "$(DYNAMIC_CRT)"!=""
79*b1cdbd2cSJim Jagielski
80*b1cdbd2cSJim Jagielski.IF "$(PRODUCT)"!="full"
81*b1cdbd2cSJim Jagielski.ELSE
82*b1cdbd2cSJim JagielskiLINKFLAGS_X64=/MAP /OPT:NOREF
83*b1cdbd2cSJim Jagielski.ENDIF
84*b1cdbd2cSJim Jagielski
85*b1cdbd2cSJim Jagielski# excetion handling protection
86*b1cdbd2cSJim JagielskiLINKFLAGS+=-safeseh
87*b1cdbd2cSJim Jagielski
88*b1cdbd2cSJim Jagielski# enable DEP
89*b1cdbd2cSJim JagielskiLINKFLAGS+=-nxcompat
90*b1cdbd2cSJim Jagielski
91*b1cdbd2cSJim Jagielski# enable ASLR
92*b1cdbd2cSJim JagielskiLINKFLAGS+=-dynamicbase
93*b1cdbd2cSJim Jagielski
94*b1cdbd2cSJim Jagielski.IF "$(PRODUCT)"!="full"
95*b1cdbd2cSJim JagielskiLINKFLAGS_X64+= -NODEFAULTLIB -DEBUG
96*b1cdbd2cSJim Jagielski.ELSE # "$(PRODUCT)"!="full"
97*b1cdbd2cSJim JagielskiLINKFLAGS_X64+= -NODEFAULTLIB -RELEASE -DEBUG -INCREMENTAL:NO
98*b1cdbd2cSJim Jagielski.ENDIF # "$(PRODUCT)"!="full"
99*b1cdbd2cSJim JagielskiMAPFILE=-out:$$@
100*b1cdbd2cSJim Jagielski
101*b1cdbd2cSJim Jagielski.IF "$(debug)" != ""
102*b1cdbd2cSJim JagielskiLINKFLAGS_X64+= $(LINKFLAGSDEBUG)
103*b1cdbd2cSJim Jagielski.ENDIF
104*b1cdbd2cSJim Jagielski
105*b1cdbd2cSJim JagielskiLINKFLAGSSHLCUI_X64=/SUBSYSTEM:CONSOLE /DLL
106*b1cdbd2cSJim JagielskiLINKFLAGSSHL_X64=$(LINKFLAGSSHLCUI_X64)
107*b1cdbd2cSJim JagielskiCDEFSSLO_X64+=$(CDEFSMT_X64) $(CDEFSOBJMT_X64)
108*b1cdbd2cSJim JagielskiCFLAGSSLO_X64+=-MT
109*b1cdbd2cSJim Jagielski
110*b1cdbd2cSJim JagielskiSTDOBJGUI_X64=
111*b1cdbd2cSJim JagielskiSTDSLOGUI_X64=
112*b1cdbd2cSJim JagielskiSTDOBJCUI_X64=
113*b1cdbd2cSJim JagielskiSTDSLOCUI_X64=
114*b1cdbd2cSJim Jagielski
115*b1cdbd2cSJim JagielskiIMPLIBFLAGS_X64=-machine:X64
116*b1cdbd2cSJim Jagielski
117*b1cdbd2cSJim JagielskiLIBPATH_X64=$(PSDK_HOME)/lib/x64
118*b1cdbd2cSJim JagielskiLIBPATH_VC_X64=$(COMPATH)/lib/amd64
119*b1cdbd2cSJim Jagielski
120*b1cdbd2cSJim JagielskiADVAPI32LIB_X64=$(LIBPATH_X64)/advapi32.lib
121*b1cdbd2cSJim JagielskiSHELL32LIB_X64=$(LIBPATH_X64)/shell32.lib
122*b1cdbd2cSJim JagielskiGDI32LIB_X64=$(LIBPATH_X64)/gdi32.lib
123*b1cdbd2cSJim JagielskiOLE32LIB_X64=$(LIBPATH_X64)/ole32.lib
124*b1cdbd2cSJim JagielskiOLEAUT32LIB_X64=$(LIBPATH_X64)/oleaut32.lib
125*b1cdbd2cSJim JagielskiUUIDLIB_X64=$(LIBPATH_X64)/uuid.lib
126*b1cdbd2cSJim JagielskiWINSPOOLLIB_X64=$(LIBPATH_X64)/winspool.lib
127*b1cdbd2cSJim JagielskiIMM32LIB_X64=$(LIBPATH_X64)/imm32.lib
128*b1cdbd2cSJim JagielskiVERSIONLIB_X64=$(LIBPATH_X64)/version.lib
129*b1cdbd2cSJim JagielskiWINMMLIB_X64=$(LIBPATH_X64)/winmm.lib
130*b1cdbd2cSJim JagielskiWSOCK32LIB_X64=$(LIBPATH_X64)/wsock32.lib
131*b1cdbd2cSJim JagielskiMPRLIB_X64=$(LIBPATH_X64)/mpr.lib
132*b1cdbd2cSJim JagielskiWS2_32LIB_X64=$(LIBPATH_X64)/ws2_32.lib
133*b1cdbd2cSJim JagielskiKERNEL32LIB_X64=$(LIBPATH_X64)/kernel32.lib
134*b1cdbd2cSJim JagielskiUSER32LIB_X64=$(LIBPATH_X64)/user32.lib
135*b1cdbd2cSJim JagielskiCOMDLG32LIB_X64=$(LIBPATH_X64)/comdlg32.lib
136*b1cdbd2cSJim JagielskiCOMCTL32LIB_X64=$(LIBPATH_X64)/comctl32.lib
137*b1cdbd2cSJim JagielskiCRYPT32LIB_X64=$(LIBPATH_X64)/crypt32.lib
138*b1cdbd2cSJim JagielskiGDIPLUSLIB_X64=$(LIBPATH_X64)/gdiplus.lib
139*b1cdbd2cSJim JagielskiDBGHELPLIB_X64=$(LIBPATH_X64)/dbghelp.lib
140*b1cdbd2cSJim JagielskiPROPSYSLIB_X64=$(LIBPATH_X64)/propsys.lib
141*b1cdbd2cSJim JagielskiMSILIB_X64=$(LIBPATH_X64)/msi.lib
142*b1cdbd2cSJim JagielskiDDRAWLIB_X64=$(LIBPATH_X64)/ddraw.lib
143*b1cdbd2cSJim JagielskiSHLWAPILIB_X64=$(LIBPATH_X64)/shlwapi.lib
144*b1cdbd2cSJim JagielskiURLMONLIB_X64=$(LIBPATH_X64)/urlmon.lib
145*b1cdbd2cSJim JagielskiWININETLIB_X64=$(LIBPATH_X64)/wininet.lib
146*b1cdbd2cSJim JagielskiOLDNAMESLIB_X64=$(LIBPATH_VC_X64)/oldnames.lib
147*b1cdbd2cSJim JagielskiMSIMG32LIB_X64=$(LIBPATH_X64)/msimg32.lib
148*b1cdbd2cSJim JagielskiMSVCPRT_X64=$(LIBPATH_VC_X64)/msvcprt.lib
149*b1cdbd2cSJim JagielskiMSVCRT_X64=$(LIBPATH_VC_X64)/msvcrt.lib
150*b1cdbd2cSJim Jagielski
151*b1cdbd2cSJim JagielskiMISC_X64=$(MISC)/x64
152*b1cdbd2cSJim JagielskiOBJ_X64=$(OBJ)/x64
153*b1cdbd2cSJim JagielskiSLO_X64=$(SLO)/x64
154*b1cdbd2cSJim JagielskiLB_X64=$(LB)/x64
155*b1cdbd2cSJim JagielskiSLB_X64=$(SLB)/x64
156*b1cdbd2cSJim JagielskiL_X64=$(SOLARLIBDIR_X64)
157*b1cdbd2cSJim JagielskiVERSIONOBJ_X64=$(SLO_X64)/_version.obj
158*b1cdbd2cSJim JagielskiBIN_X64=$(BIN)/x64
159*b1cdbd2cSJim JagielskiRES_X64=$(RES)/x64
160*b1cdbd2cSJim JagielskiSOLARLIBDIR_X64=$(SOLARVERSION)/$(INPATH)/lib$(UPDMINOREXT)/x64
161*b1cdbd2cSJim JagielskiLIB_X64:=$(LB_X64);$(SLB_X64);$(ILIB_X64)
162*b1cdbd2cSJim Jagielski
163*b1cdbd2cSJim Jagielski.IF "$(LIBTARGET)"==""
164*b1cdbd2cSJim Jagielski.IF "$(OBJFILES_X64)$(IDLOBJFILES_X64)"!=""
165*b1cdbd2cSJim JagielskiOBJTARGET_X64=$(LB_X64)/$(TARGET).lib
166*b1cdbd2cSJim Jagielski.ENDIF # "$(OBJFILES_X64)$(IDLOBJFILES_X64)"!=""
167*b1cdbd2cSJim Jagielski.IF "$(SLOFILES_X64)$(IDLSLOFILES_x64)"!=""
168*b1cdbd2cSJim JagielskiSLOTARGET_X64=$(SLB_X64)/$(TARGET).lib
169*b1cdbd2cSJim Jagielski.ENDIF # "$(SLOFILES_X64)$(IDLSLOFILES_x64)"!=""
170*b1cdbd2cSJim Jagielski.ENDIF # "$(LIBTARGET)"==""
171*b1cdbd2cSJim Jagielski
172*b1cdbd2cSJim Jagielski.IF "$(OBJFILES_X64)"!=""
173*b1cdbd2cSJim Jagielski.IF "$(LIBTARGET)" != ""
174*b1cdbd2cSJim JagielskiNOLIBOBJTARGET_X64=$(OBJFILES_X64)
175*b1cdbd2cSJim Jagielski.ENDIF
176*b1cdbd2cSJim Jagielski.ENDIF
177*b1cdbd2cSJim Jagielski
178*b1cdbd2cSJim Jagielski.IF "$(SLOFILES_X64)"!=""
179*b1cdbd2cSJim Jagielski.IF "$(LIBTARGET)" != ""
180*b1cdbd2cSJim JagielskiNOLIBSLOTARGET_X64=$(SLOFILES_X64)
181*b1cdbd2cSJim Jagielski.ENDIF
182*b1cdbd2cSJim Jagielski.ENDIF
183*b1cdbd2cSJim Jagielski
184*b1cdbd2cSJim Jagielski.IF "$(SHL1TARGET_X64)"!=""
185*b1cdbd2cSJim JagielskiSHL1TARGETN_X64=$(BIN_X64)/$(DLLPRE)$(SHL1TARGET_X64)$(DLLPOST)
186*b1cdbd2cSJim Jagielski.ENDIF
187*b1cdbd2cSJim Jagielski.IF "$(SHL2TARGET_X64)"!=""
188*b1cdbd2cSJim JagielskiSHL2TARGETN_X64=$(BIN_X64)/$(DLLPRE)$(SHL2TARGET_X64)$(DLLPOST)
189*b1cdbd2cSJim Jagielski.ENDIF
190*b1cdbd2cSJim Jagielski.IF "$(LIB1TARGET_X64)" != ""
191*b1cdbd2cSJim JagielskiLIB1TARGETN_X64=$(LIB1TARGET_X64)
192*b1cdbd2cSJim Jagielski.ENDIF
193*b1cdbd2cSJim Jagielski.IF "$(LIB2TARGET_X64)" != ""
194*b1cdbd2cSJim JagielskiLIB2TARGETN_X64=$(LIB2TARGET_X64)
195*b1cdbd2cSJim Jagielski.ENDIF
196*b1cdbd2cSJim Jagielski.IF "$(DEF1NAME_X64)"!=""
197*b1cdbd2cSJim JagielskiDEF1TARGETN_X64=$(MISC_X64)/$(DEF1NAME_X64).def
198*b1cdbd2cSJim Jagielski.ENDIF
199*b1cdbd2cSJim Jagielski.IF "$(DEF2NAME_X64)"!=""
200*b1cdbd2cSJim JagielskiDEF2TARGETN_X64=$(MISC_X64)/$(DEF2NAME_X64).def
201*b1cdbd2cSJim Jagielski.ENDIF
202*b1cdbd2cSJim Jagielski
203*b1cdbd2cSJim Jagielski$(SLO_X64)/%.obj : $(MISC_X64)/%.c
204*b1cdbd2cSJim Jagielski    @echo ------------------------------
205*b1cdbd2cSJim Jagielski    @echo Making: $@
206*b1cdbd2cSJim Jagielski    -$(MKDIR) $(@:d)
207*b1cdbd2cSJim Jagielski	@-$(MKDIR) $(MISC_X64)
208*b1cdbd2cSJim Jagielski    @@-$(RM) $@
209*b1cdbd2cSJim Jagielski    @$(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_X64)/$*.c )
210*b1cdbd2cSJim Jagielski    @$(ECHONL)
211*b1cdbd2cSJim Jagielski    $(CC_X64) @$(mktmp $(USE_CFLAGS_X64) $(INCLUDE_C) $(CFLAGSCC_X64) $(CFLAGSSLO_X64) $(USE_CDEFS_X64) $(CDEFSSLO_X64) $(CFLAGSAPPEND_X64) $(CFLAGSOUTOBJ)$(SLO_X64)/$*.obj $(MISC_X64)/$*.c )
212*b1cdbd2cSJim Jagielski
213*b1cdbd2cSJim Jagielski.ENDIF # "$(BUILD_X64)"!=""
214*b1cdbd2cSJim Jagielski
215