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# enable boost support for __cdecl (SAL_CALL) C++-UNO interface methods 128CDEFS+=-DBOOST_MEM_FN_ENABLE_CDECL 129 130# with the current debug switches PCH won't work 131# anyway. so keep the existing .pch intact and don't 132# touch it 133.IF "$(debug)"!="" 134ENABLE_PCH:= 135.ENDIF "$(debug)"!="" 136 137CFLAGS_CREATE_PCH=-I$(INCPCH) -Fo$(SLO)/pchname.obj -Ycprecompiled_$(PRJNAME).hxx -DPRECOMPILED_HEADERS 138CFLAGS_USE_PCH=-I$(INCPCH) -Yuprecompiled_$(PRJNAME).hxx -Fp$(SLO)/pch/precompiled_$(PRJNAME).hxx$(PCHPOST) -DPRECOMPILED_HEADERS 139CFLAGS_USE_EXCEPTIONS_PCH=-I$(INCPCH) -Yuprecompiled_$(PRJNAME).hxx -Fp$(SLO)/pch_ex/precompiled_$(PRJNAME).hxx$(PCHPOST) -DPRECOMPILED_HEADERS 140.IF "$(CALL_CDECL)"=="TRUE" 141CFLAGSCALL=-Gd 142.ELSE # "$(CALL_CDECL)"=="TRUE" 143CFLAGSCALL=-Gz 144.ENDIF # "$(CALL_CDECL)"=="TRUE" 145 146CFLAGSCC=$(ARCH_FLAGS) 147.IF "$(DYNAMIC_CRT)"!="" 148CDEFSSLOMT+=-DWIN32 -D_MT -D_DLL 149CDEFSSLOMT+=-DWIN32 -D_MT -D_DLL 150.IF "$(NO_DYNAMIC_OBJ)"=="" 151CDEFSOBJMT+=-DWIN32 -D_MT -D_DLL 152CDEFSOBJMT+=-DWIN32 -D_MT -D_DLL 153.ELSE 154CDEFSOBJMT+=-DWIN32 -D_MT 155CDEFSOBJMT+=-DWIN32 -D_MT 156.ENDIF # "$(NO_DYNAMIC_OBJ)"=="" 157.ELSE 158CDEFSSLOMT+=-DWIN32 -D_MT 159CDEFSSLOMT+=-DWIN32 -D_MT 160CDEFSOBJMT+=-DWIN32 -D_MT 161CDEFSOBJMT+=-DWIN32 -D_MT 162.ENDIF # "$(DYNAMIC_CRT)"!="" 163 164CFLAGSPROF=-Gh -Fd$(MISC)/$(@:b).pdb 165CFLAGSDEBUG=-Zi -Fd$(MISC)/$(@:b).pdb 166CFLAGSDBGUTIL= 167.IF "$(VC_STANDARD)"=="" 168CFLAGSOPT=-Oxs -Oy- 169CFLAGSNOOPT=-Od 170.ELSE # "$(VC_STANDARD)"=="" 171CFLAGSOPT= 172CFLAGSNOOPT= 173.ENDIF # "$(VC_STANDARD)"=="" 174CFLAGSOUTOBJ=-Fo 175 176# For C and C++, certain warnings are disabled globally, as they result in 177# spurious warnings and are hard or impossible to workaround: 178# - "warning C4061: enumerate in switch of enum is not explicitly handled by a 179# case label", 180# - "warning C4127: conditional expression is constant", 181# - "warning C4191: unsafe conversion from function type to function type", 182# - "warning C4217: member template functions cannot be used for copy-assignment 183# or copy-construction", 184# - "warning C4250: 'class1' : inherits 'class2::member' via dominance", 185# - "warning C4355: 'this' used in base member initializer list", 186# - "warning C4511: copy constructor could not be generated", 187# - "warning C4512: assignment operator could not be generated", 188# - "warning C4514: unreferenced inline function has been removed", 189# - "warning C4611: interaction between '_setjmp' and C++ object destruction is 190# non-portable", 191# - "warning C4625: copy constructor could not be generated because a base class 192# copy constructor is inaccessible", 193# - "warning C4626: assignment operator could not be generated because a base 194# class assignment operator is inaccessible", 195# - "warning C4675: resolved overload was found by argument-dependent lookup", 196# - "warning C4710: function not inlined", 197# - "warning C4711: function selected for automatic inline expansion", 198# - "warning C4820: padding added after member". 199# - "warning C4503: 'identifier' : decorated name length exceeded, name was truncated" 200# (http://msdn2.microsoft.com/en-us/library/074af4b6.aspx) 201# - "warning C4180: qualifier applied to function type has no meaning; ignored" 202# (frequently seen with a recent boost) 203# For C, certain warnings from system headers (stdlib.h etc.) have to be 204# disabled globally (for C++, this is not necessary, as the system headers are 205# wrapped by STLport): 206# - "warning C4255: no function prototype given: converting 207# '()' to '(void)'". 208# - "warning C4365: conversion from ... to ... signed/unsigned mismatch" 209 210CFLAGSWARNCXX=-Wall -wd4061 -wd4127 -wd4191 -wd4217 -wd4250 -wd4251 -wd4275 \ 211 -wd4290 -wd4294 -wd4355 -wd4511 -wd4512 -wd4514 -wd4611 -wd4625 -wd4626 \ 212 -wd4640 -wd4675 -wd4710 -wd4711 -wd4786 -wd4800 -wd4820 -wd4503 -wd4619 \ 213 -wd4365 -wd4668 -wd4738 -wd4826 -wd4350 -wd4505 -wd4692 -wd4189 -wd4005 \ 214 -wd4180 215CFLAGSWARNCC=$(CFLAGSWARNCXX) -wd4255 216CFLAGSWALLCC=$(CFLAGSWARNCC) 217CFLAGSWALLCXX=$(CFLAGSWARNCXX) 218CFLAGSWERRCC=-WX 219 220# Once all modules on this platform compile without warnings, set 221# COMPILER_WARN_ERRORS=TRUE here instead of setting MODULES_WITH_WARNINGS (see 222# settings.mk): 223MODULES_WITH_WARNINGS := 224 225CDEFS+=-D_MT -DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0500 226.IF "$(COMEX)" == "11" 227_VC_MANIFEST_BASENAME=__VC80 228.ELSE 229_VC_MANIFEST_BASENAME=__VC90 230.ENDIF 231 232LINK=link /MACHINE:X64 /IGNORE:4102 /IGNORE:4197 233 # do *not* add $(NOLOGO) to LINK or LINKFLAGS. Strangely, the wntmsci12 linker links fine then, but exits with 234 # a return value 1, which makes dmake think it failed 235.IF "$(PRODUCT)"!="full" 236.ELSE 237LINKFLAGS=/MAP /OPT:NOREF 238.ENDIF 239 240# excetion handling protection isn't used on Win64 241 242# enable DEP 243LINKFLAGS+=-nxcompat 244 245# enable ASLR 246LINKFLAGS+=-dynamicbase 247 248.IF "$(linkinc)" != "" 249LINKFLAGS+=-NODEFAULTLIB -INCREMENTAL:YES -DEBUG 250MAPFILE= 251_VC_MANIFEST_INC=1 252.ELSE # "$(linkinc)" != "" 253_VC_MANIFEST_INC=0 254.IF "$(PRODUCT)"!="full" 255LINKFLAGS+= -NODEFAULTLIB -DEBUG 256.ELSE # "$(PRODUCT)"!="full" 257LINKFLAGS+= -NODEFAULTLIB -RELEASE -DEBUG -INCREMENTAL:NO 258.ENDIF # "$(PRODUCT)"!="full" 259MAPFILE=-out:$$@ 260.ENDIF # "$(linkinc)" != "" 261 262.IF "$(bndchk)" != "" 263LINK=nmlink $(COMMENTFLAG) $(NOLOGO) /MACHINE:X64 264LINKFLAGS=-NODEFAULTLIB -DEBUG 265.ENDIF 266 267.IF "$(truetime)" != "" 268LINK=nmlink /NMttOn $(COMMENTFLAG) $(NOLOGO) /MACHINE:X64 269LINKFLAGS=-NODEFAULTLIB -DEBUG 270.ENDIF 271 272.IF "$(COMEX)" == "11" 273LINKFLAGSAPPGUI=/SUBSYSTEM:WINDOWS,4.0 274LINKFLAGSSHLGUI=/SUBSYSTEM:WINDOWS,4.0 /DLL 275.ELSE 276LINKFLAGSAPPGUI=/SUBSYSTEM:WINDOWS 277LINKFLAGSSHLGUI=/SUBSYSTEM:WINDOWS /DLL 278.ENDIF # "$(COMEX)" == "11" 279LINKFLAGSAPPCUI=/SUBSYSTEM:CONSOLE /BASE:0x1b000000 280LINKFLAGSSHLCUI=/SUBSYSTEM:CONSOLE /DLL 281LINKFLAGSTACK=/STACK: 282LINKFLAGSPROF=/DEBUG:mapped,partial /DEBUGTYPE:coff cap.lib 283LINKFLAGSWST=/DEBUG:mapped,partial /DEBUGTYPE:coff wst.lib /NODEFAULTLIB 284LINKFLAGSDEBUG=-DEBUG 285LINKFLAGSOPT= 286 287UWINAPILIB*=uwinapi.lib 288.IF "$(DYNAMIC_CRT)"!="" 289.IF "$(USE_STLP_DEBUG)" != "" 290LIBCMT=msvcrt.lib 291.ELSE # "$(USE_STLP_DEBUG)" != "" 292LIBCMT=msvcrt.lib 293.ENDIF # "$(USE_STLP_DEBUG)" != "" 294.ELSE # "$(DYNAMIC_CRT)"!="" 295.IF "$(USE_STLP_DEBUG)" != "" 296LIBCMT=libcmt.lib 297.ELSE # "$(USE_STLP_DEBUG)" != "" 298LIBCMT=libcmt.lib 299.ENDIF # "$(USE_STLP_DEBUG)" != "" 300.ENDIF # "$(DYNAMIC_CRT)"!="" 301 302STDOBJVCL=$(L)/salmain.obj 303STDOBJGUI= 304STDSLOGUI= 305STDOBJCUI= 306STDSLOCUI= 307 308STDLIBGUIMT=$(LIBCMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib 309STDLIBCUIMT=$(LIBCMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib 310STDSHLGUIMT=$(LIBCMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib 311STDSHLCUIMT=$(LIBCMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib 312 313.IF "$(USE_SYSTEM_STL)" == "YES" 314.IF "$(DYNAMIC_CRT)"!="" 315.IF "$(USE_STLP_DEBUG)" != "" 316LIBCMT+= msvcprt.lib 317.ELSE 318LIBCMT+= msvcprt.lib 319.ENDIF 320.ELSE # "$(DYNAMIC_CRT)"=="" 321.IF "$(USE_STLP_DEBUG)" != "" 322LIBCMT+= libcpmt.lib 323.ELSE 324LIBCMT+= libcpmt.lib 325.ENDIF "$(USE_STLP_DEBUG)" == "" 326.ENDIF # "$(DYNAMIC_CRT)"!="" 327.ELSE # !USE_SYSTEM_STL 328.IF "$(USE_STLP_DEBUG)" != "" 329LIBSTLPORT=stlport_vc71_stldebug.lib 330LIBSTLPORTST=stlport_vc71_stldebug_static.lib 331.ELSE 332LIBSTLPORT=stlport_vc71.lib 333LIBSTLPORTST=stlport_vc71_static.lib 334.ENDIF 335.ENDIF 336 337.IF "$(PROF_EDITION)" == "" 338ATL_INCLUDE*=$(COMPATH)/PlatformSDK/include/atl 339ATL_LIB*=$(COMPATH)/atlmfc/lib 340MFC_INCLUDE*=$(COMPATH)/PlatformSDK/include/mfc 341MFC_LIB*=$(COMPATH)/atlmfc/lib 342.ELSE 343ATL_INCLUDE*=$(COMPATH)/atlmfc/include 344ATL_LIB*=$(COMPATH)/atlmfc/lib 345MFC_INCLUDE*=$(COMPATH)/atlmfc/include 346MFC_LIB*=$(COMPATH)/atlmfc/lib 347.ENDIF 348 349LIBMGR=lib $(NOLOGO) 350IMPLIB=lib 351LIBFLAGS= 352 353IMPLIBFLAGS=-machine:X64 354 355MAPSYM= 356MAPSYMFLAGS= 357 358RC=rc 359RCFLAGS=-r -DWIN32 -fo$@ $(RCFILES) 360RCLINK=rc 361RCLINKFLAGS= 362RCSETVERSION= 363 364MT=mt.exe 365MTFLAGS=$(NOLOGO) 366 367 368DLLPOSTFIX= 369PCHPOST=.pch 370 371CSC*=$(FLIPCMD) csc 372VBC*=vbc 373 374ADVAPI32LIB=advapi32.lib 375SHELL32LIB=shell32.lib 376GDI32LIB=gdi32.lib 377OLE32LIB=ole32.lib 378OLEAUT32LIB=oleaut32.lib 379UUIDLIB=uuid.lib 380WINSPOOLLIB=winspool.lib 381IMM32LIB=imm32.lib 382VERSIONLIB=version.lib 383WINMMLIB=winmm.lib 384WSOCK32LIB=wsock32.lib 385MPRLIB=mpr.lib 386WS2_32LIB=ws2_32.lib 387KERNEL32LIB=kernel32.lib 388USER32LIB=user32.lib 389COMDLG32LIB=comdlg32.lib 390COMCTL32LIB=comctl32.lib 391CRYPT32LIB=crypt32.lib 392GDIPLUSLIB=gdiplus.lib 393DBGHELPLIB=dbghelp.lib 394MSILIB=msi.lib 395DDRAWLIB=ddraw.lib 396SHLWAPILIB=shlwapi.lib 397URLMONLIB=urlmon.lib 398WININETLIB=wininet.lib 399OLDNAMESLIB=oldnames.lib 400MSIMG32LIB=msimg32.lib 401PROPSYSLIB=propsys.lib 402 403