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