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# mk file for $(OS)$(COM)$(CPU) == WNTMSCX 25 26SOLAR_JAVA*=TRUE 27FULL_DESK=TRUE 28JAVAFLAGSDEBUG=-g 29 30# SOLAR JAva Unterstuetzung nur fuer wntmscx 31 32ASM=ml 33AFLAGS=/c /Cp /coff 34 35# architecture dependent flags for the C and C++ compiler that can be changed by 36# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build 37ARCH_FLAGS*= 38 39CC*:=cl 40.IF "$(bndchk)" != "" 41CXX*=nmcl 42.ELSE 43.IF "$(truetime)" != "" 44CXX*=nmcl /NMttOn 45.ELSE 46CXX*:=cl 47.ENDIF 48.ENDIF # "$(bndchk)" != "" 49 50.IF "$(stoponerror)" != "" 51CXX+= /NMstoponerror 52.ENDIF 53 54.IF "$(nmpass)" != "" 55CXX+= /NMpass 56.ENDIF 57 58.IF "$(ttinlines)" != "" 59CXX+= /NMttInlines 60.ENDIF 61 62.IF "$(ttnolines)" != "" 63CXX+= /NMttNoLines 64.ENDIF 65 66.IF "$(VERBOSE)" != "TRUE" 67NOLOGO*=-nologo 68.ENDIF 69 70.IF "$(VERBOSE)" != "TRUE" 71COMPILE_ECHO_SWITCH=-n 72COMPILE_ECHO_FILE= 73.ENDIF 74 75# Flags for COMEX == 11 76 77# disable "warning C4675: resolved overload was found by argument-dependent 78# lookup": 79# -wd4251 -wd4275 -wd4290 -wd4675 -wd4786 -wd4800 80CFLAGS+=-Zm500 -Zc:wchar_t- -GR 81 82# main\sal\qa\OStringBuffer\rtl_OStringBuffer.cxx 83# "fatal error C1128: number of sections exceeded object file format limit : compile with /bigobj" 84CFLAGS+=-bigobj 85 86# Stack buffer overrun detection. 87CFLAGS+=-GS 88 89CFLAGS+=-c -nologo -Gs $(NOLOGO) 90 91CDEFS+= -D_AMD64_=1 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NON_CONFORMING_SWPRINTFS 92 93.IF "$(product)" != "" 94CFLAGS+= -Gy 95.ENDIF # "$(product)" != "" 96 97.IF "$(bndchk)" == "" 98.IF "$(VC_STANDARD)"=="" 99CFLAGS+= -Ob1 100.ENDIF # "$(VC_STANDARD)"=="" 101.ENDIF 102 103# flags to enable build with symbols; required for crashdump feature 104#CFLAGSENABLESYMBOLS=-Zi -Fd$(MISC)/_ooo_st_$(TARGET).PDB 105CFLAGSENABLESYMBOLS=-Z7 -Yd 106 107.IF "$(bndchk)" != "" 108.IF "$(debug)" == "" 109CFLAGS+= -Z7 110.ENDIF 111.ENDIF 112 113.IF "$(truetime)" != "" 114.IF "$(debug)" == "" 115CFLAGS+= -Z7 116.ENDIF 117.ENDIF 118 119.IF "$(FULL_DESK)"!="" 120CDEFS+=-DFULL_DESK 121RSCDEFS+=-DFULL_DESK 122.ENDIF 123 124CFLAGSEXCEPTIONS=-EHa 125CFLAGS_NO_EXCEPTIONS= 126 127# boost support for __cdecl (SAL_CALL) C++-UNO interface methods 128# would normally be necessary, but on Windows/x64 that produces 129# errors, as cdecl is a no-op, so it produces duplicate functions/methods 130# that fail to compile. So NEVER EVER EVER set this flag: 131### CDEFS+=-DBOOST_MEM_FN_ENABLE_CDECL 132 133# with the current debug switches PCH won't work 134# anyway. so keep the existing .pch intact and don't 135# touch it 136.IF "$(debug)"!="" 137ENABLE_PCH:= 138.ENDIF "$(debug)"!="" 139 140CFLAGS_CREATE_PCH=-I$(INCPCH) -Fo$(SLO)/pchname.obj -Ycprecompiled_$(PRJNAME).hxx -DPRECOMPILED_HEADERS 141CFLAGS_USE_PCH=-I$(INCPCH) -Yuprecompiled_$(PRJNAME).hxx -Fp$(SLO)/pch/precompiled_$(PRJNAME).hxx$(PCHPOST) -DPRECOMPILED_HEADERS 142CFLAGS_USE_EXCEPTIONS_PCH=-I$(INCPCH) -Yuprecompiled_$(PRJNAME).hxx -Fp$(SLO)/pch_ex/precompiled_$(PRJNAME).hxx$(PCHPOST) -DPRECOMPILED_HEADERS 143.IF "$(CALL_CDECL)"=="TRUE" 144CFLAGSCALL=-Gd 145.ELSE # "$(CALL_CDECL)"=="TRUE" 146CFLAGSCALL=-Gz 147.ENDIF # "$(CALL_CDECL)"=="TRUE" 148 149CFLAGSCC=$(ARCH_FLAGS) 150.IF "$(DYNAMIC_CRT)"!="" 151CDEFSSLOMT+=-DWIN32 -D_MT -D_DLL 152CDEFSSLOMT+=-DWIN32 -D_MT -D_DLL 153.IF "$(NO_DYNAMIC_OBJ)"=="" 154CDEFSOBJMT+=-DWIN32 -D_MT -D_DLL 155CDEFSOBJMT+=-DWIN32 -D_MT -D_DLL 156.ELSE 157CDEFSOBJMT+=-DWIN32 -D_MT 158CDEFSOBJMT+=-DWIN32 -D_MT 159.ENDIF # "$(NO_DYNAMIC_OBJ)"=="" 160.ELSE 161CDEFSSLOMT+=-DWIN32 -D_MT 162CDEFSSLOMT+=-DWIN32 -D_MT 163CDEFSOBJMT+=-DWIN32 -D_MT 164CDEFSOBJMT+=-DWIN32 -D_MT 165.ENDIF # "$(DYNAMIC_CRT)"!="" 166 167CFLAGSPROF=-Gh -Fd$(MISC)/$(@:b).pdb 168CFLAGSDEBUG=-Zi -Fd$(MISC)/$(@:b).pdb 169CFLAGSDBGUTIL= 170.IF "$(VC_STANDARD)"=="" 171CFLAGSOPT=-Oxs -Oy- 172CFLAGSNOOPT=-Od 173.ELSE # "$(VC_STANDARD)"=="" 174CFLAGSOPT= 175CFLAGSNOOPT= 176.ENDIF # "$(VC_STANDARD)"=="" 177CFLAGSOUTOBJ=-Fo 178 179# For C and C++, certain warnings are disabled globally, as they result in 180# spurious warnings and are hard or impossible to workaround: 181# - "warning C4061: enumerate in switch of enum is not explicitly handled by a 182# case label", 183# - "warning C4127: conditional expression is constant", 184# - "warning C4191: unsafe conversion from function type to function type", 185# - "warning C4217: member template functions cannot be used for copy-assignment 186# or copy-construction", 187# - "warning C4250: 'class1' : inherits 'class2::member' via dominance", 188# - "warning C4355: 'this' used in base member initializer list", 189# - "warning C4511: copy constructor could not be generated", 190# - "warning C4512: assignment operator could not be generated", 191# - "warning C4514: unreferenced inline function has been removed", 192# - "warning C4611: interaction between '_setjmp' and C++ object destruction is 193# non-portable", 194# - "warning C4625: copy constructor could not be generated because a base class 195# copy constructor is inaccessible", 196# - "warning C4626: assignment operator could not be generated because a base 197# class assignment operator is inaccessible", 198# - "warning C4675: resolved overload was found by argument-dependent lookup", 199# - "warning C4710: function not inlined", 200# - "warning C4711: function selected for automatic inline expansion", 201# - "warning C4820: padding added after member". 202# - "warning C4503: 'identifier' : decorated name length exceeded, name was truncated" 203# (http://msdn2.microsoft.com/en-us/library/074af4b6.aspx) 204# - "warning C4180: qualifier applied to function type has no meaning; ignored" 205# (frequently seen with a recent boost) 206# For C, certain warnings from system headers (stdlib.h etc.) have to be 207# disabled globally (for C++, this is not necessary, as the system headers are 208# wrapped by STLport): 209# - "warning C4255: no function prototype given: converting 210# '()' to '(void)'". 211# - "warning C4365: conversion from ... to ... signed/unsigned mismatch" 212 213CFLAGSWARNCXX=-Wall -wd4061 -wd4127 -wd4191 -wd4217 -wd4250 -wd4251 -wd4275 \ 214 -wd4290 -wd4294 -wd4355 -wd4511 -wd4512 -wd4514 -wd4611 -wd4625 -wd4626 \ 215 -wd4640 -wd4675 -wd4710 -wd4711 -wd4786 -wd4800 -wd4820 -wd4503 -wd4619 \ 216 -wd4365 -wd4668 -wd4738 -wd4826 -wd4350 -wd4505 -wd4692 -wd4189 -wd4005 \ 217 -wd4180 218CFLAGSWARNCC=$(CFLAGSWARNCXX) -wd4255 219CFLAGSWALLCC=$(CFLAGSWARNCC) 220CFLAGSWALLCXX=$(CFLAGSWARNCXX) 221CFLAGSWERRCC=-WX 222 223# Once all modules on this platform compile without warnings, set 224# COMPILER_WARN_ERRORS=TRUE here instead of setting MODULES_WITH_WARNINGS (see 225# settings.mk): 226MODULES_WITH_WARNINGS := 227 228CDEFS+=-D_MT -DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0500 229.IF "$(COMEX)" == "11" 230_VC_MANIFEST_BASENAME=__VC80 231.ELSE 232_VC_MANIFEST_BASENAME=__VC90 233.ENDIF 234 235LINK=link /MACHINE:X64 /IGNORE:4102 /IGNORE:4197 236 # do *not* add $(NOLOGO) to LINK or LINKFLAGS. Strangely, the wntmsci12 linker links fine then, but exits with 237 # a return value 1, which makes dmake think it failed 238.IF "$(PRODUCT)"!="full" 239.ELSE 240LINKFLAGS=/MAP /OPT:NOREF 241.ENDIF 242 243# excetion handling protection isn't used on Win64 244 245# enable DEP 246LINKFLAGS+=-nxcompat 247 248# enable ASLR 249LINKFLAGS+=-dynamicbase 250 251.IF "$(linkinc)" != "" 252LINKFLAGS+=-NODEFAULTLIB -INCREMENTAL:YES -DEBUG 253MAPFILE= 254_VC_MANIFEST_INC=1 255.ELSE # "$(linkinc)" != "" 256_VC_MANIFEST_INC=0 257.IF "$(PRODUCT)"!="full" 258LINKFLAGS+= -NODEFAULTLIB -DEBUG 259.ELSE # "$(PRODUCT)"!="full" 260LINKFLAGS+= -NODEFAULTLIB -RELEASE -DEBUG -INCREMENTAL:NO 261.ENDIF # "$(PRODUCT)"!="full" 262MAPFILE=-out:$$@ 263.ENDIF # "$(linkinc)" != "" 264 265.IF "$(bndchk)" != "" 266LINK=nmlink $(COMMENTFLAG) $(NOLOGO) /MACHINE:X64 267LINKFLAGS=-NODEFAULTLIB -DEBUG 268.ENDIF 269 270.IF "$(truetime)" != "" 271LINK=nmlink /NMttOn $(COMMENTFLAG) $(NOLOGO) /MACHINE:X64 272LINKFLAGS=-NODEFAULTLIB -DEBUG 273.ENDIF 274 275.IF "$(COMEX)" == "11" 276LINKFLAGSAPPGUI=/SUBSYSTEM:WINDOWS,4.0 277LINKFLAGSSHLGUI=/SUBSYSTEM:WINDOWS,4.0 /DLL 278.ELSE 279LINKFLAGSAPPGUI=/SUBSYSTEM:WINDOWS 280LINKFLAGSSHLGUI=/SUBSYSTEM:WINDOWS /DLL 281.ENDIF # "$(COMEX)" == "11" 282LINKFLAGSAPPCUI=/SUBSYSTEM:CONSOLE /BASE:0x1b000000 283LINKFLAGSSHLCUI=/SUBSYSTEM:CONSOLE /DLL 284LINKFLAGSTACK=/STACK: 285LINKFLAGSPROF=/DEBUG:mapped,partial /DEBUGTYPE:coff cap.lib 286LINKFLAGSWST=/DEBUG:mapped,partial /DEBUGTYPE:coff wst.lib /NODEFAULTLIB 287LINKFLAGSDEBUG=-DEBUG 288LINKFLAGSOPT= 289 290UWINAPILIB*=uwinapi.lib 291.IF "$(DYNAMIC_CRT)"!="" 292.IF "$(USE_STLP_DEBUG)" != "" 293LIBCMT=msvcrt.lib 294.ELSE # "$(USE_STLP_DEBUG)" != "" 295LIBCMT=msvcrt.lib 296.ENDIF # "$(USE_STLP_DEBUG)" != "" 297.ELSE # "$(DYNAMIC_CRT)"!="" 298.IF "$(USE_STLP_DEBUG)" != "" 299LIBCMT=libcmt.lib 300.ELSE # "$(USE_STLP_DEBUG)" != "" 301LIBCMT=libcmt.lib 302.ENDIF # "$(USE_STLP_DEBUG)" != "" 303.ENDIF # "$(DYNAMIC_CRT)"!="" 304 305STDOBJVCL=$(L)/salmain.obj 306STDOBJGUI= 307STDSLOGUI= 308STDOBJCUI= 309STDSLOCUI= 310 311STDLIBGUIMT=$(LIBCMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib 312STDLIBCUIMT=$(LIBCMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib 313STDSHLGUIMT=$(LIBCMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib 314STDSHLCUIMT=$(LIBCMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib 315 316.IF "$(USE_SYSTEM_STL)" == "YES" 317.IF "$(DYNAMIC_CRT)"!="" 318.IF "$(USE_STLP_DEBUG)" != "" 319LIBCMT+= msvcprt.lib 320.ELSE 321LIBCMT+= msvcprt.lib 322.ENDIF 323.ELSE # "$(DYNAMIC_CRT)"=="" 324.IF "$(USE_STLP_DEBUG)" != "" 325LIBCMT+= libcpmt.lib 326.ELSE 327LIBCMT+= libcpmt.lib 328.ENDIF "$(USE_STLP_DEBUG)" == "" 329.ENDIF # "$(DYNAMIC_CRT)"!="" 330.ELSE # !USE_SYSTEM_STL 331.IF "$(USE_STLP_DEBUG)" != "" 332LIBSTLPORT=stlport_vc71_stldebug.lib 333LIBSTLPORTST=stlport_vc71_stldebug_static.lib 334.ELSE 335LIBSTLPORT=stlport_vc71.lib 336LIBSTLPORTST=stlport_vc71_static.lib 337.ENDIF 338.ENDIF 339 340.IF "$(PROF_EDITION)" == "" 341ATL_INCLUDE*=$(COMPATH)/PlatformSDK/include/atl 342ATL_LIB*=$(COMPATH)/atlmfc/lib 343MFC_INCLUDE*=$(COMPATH)/PlatformSDK/include/mfc 344MFC_LIB*=$(COMPATH)/atlmfc/lib 345.ELSE 346ATL_INCLUDE*=$(COMPATH)/atlmfc/include 347ATL_LIB*=$(COMPATH)/atlmfc/lib 348MFC_INCLUDE*=$(COMPATH)/atlmfc/include 349MFC_LIB*=$(COMPATH)/atlmfc/lib 350.ENDIF 351 352LIBMGR=lib $(NOLOGO) 353IMPLIB=lib 354LIBFLAGS= 355 356IMPLIBFLAGS=-machine:X64 357 358MAPSYM= 359MAPSYMFLAGS= 360 361RC=rc 362RCFLAGS=-r -DWIN32 -fo$@ $(RCFILES) 363RCLINK=rc 364RCLINKFLAGS= 365RCSETVERSION= 366 367MT=mt.exe 368MTFLAGS=$(NOLOGO) 369 370 371DLLPOSTFIX= 372PCHPOST=.pch 373 374CSC*=$(FLIPCMD) csc 375VBC*=vbc 376 377ADVAPI32LIB=advapi32.lib 378SHELL32LIB=shell32.lib 379GDI32LIB=gdi32.lib 380OLE32LIB=ole32.lib 381OLEAUT32LIB=oleaut32.lib 382UUIDLIB=uuid.lib 383WINSPOOLLIB=winspool.lib 384IMM32LIB=imm32.lib 385VERSIONLIB=version.lib 386WINMMLIB=winmm.lib 387WSOCK32LIB=wsock32.lib 388MPRLIB=mpr.lib 389WS2_32LIB=ws2_32.lib 390KERNEL32LIB=kernel32.lib 391USER32LIB=user32.lib 392COMDLG32LIB=comdlg32.lib 393COMCTL32LIB=comctl32.lib 394CRYPT32LIB=crypt32.lib 395GDIPLUSLIB=gdiplus.lib 396DBGHELPLIB=dbghelp.lib 397MSILIB=msi.lib 398DDRAWLIB=ddraw.lib 399SHLWAPILIB=shlwapi.lib 400URLMONLIB=urlmon.lib 401WININETLIB=wininet.lib 402OLDNAMESLIB=oldnames.lib 403MSIMG32LIB=msimg32.lib 404PROPSYSLIB=propsys.lib 405