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