windows-nt/Source/XPSP1/NT/base/crts/crtw32/crt32.nt

143 lines
4 KiB
Plaintext
Raw Normal View History

2020-09-26 03:20:57 -05:00
####
#crt32.def - definitions for the crt32 build
#
# Copyright (c) 1991-2000, Microsoft Corporation. All rights reserved.
#
#Purpose:
# This file is included in the 'sources' files in this tree
#
# Key to CRT32 environment variables:
#
# CRTLIBDEBUG = debug flag (define for debug libs)
# CRTLIBTYPE = [dll/mt/st], dll = dynalink, mt = multithread,
# st = singlethread
#
# [Other variables are used directly by the NT build tool.]
#
#Revision History:
# 09-29-91 JCR File created.
# 10-04-91 JCR Added mt vs st build
# 01-06-92 GJF Added DLL support. Cleaned up a bit.
# 04-16-92 DJM POSIX support.
# 08-28-92 GJF Fixed POSIX support.
# 09-02-92 SRW Removed -D_INTL from all versions until
# Win32 NLS API calls are faster. When that
# happens, add it back to all but Posix version.
# 12-03-92 KRS Added optional _MBCS defines.
# 05-22-93 SRW Compile runtines with no debug info except globals.
# 06-03-93 SRW Okay to allow FPO now, as crt32\startup\mlock.c has
# been fixed to explicitly disable FPO for itself.
# 10-18-93 SRW Disable intrinsics on Alpha
# 01-18-94 GJF Picked up _MB_MAP_DIRECT from crtwin32\crt32.def.
# Picked up _NTSYSTEM_ from crt32\crt32.def (source
# tree on \\orville\razzle).
# 09-06-94 CFW Remove MTHREAD, _INTL, _CRTHEAP_, and _MBCS_OS definitions.
# 03-19-01 BWT Add LTCG rules and fix C_DEFINES macro from NT tree
#
################################################################################
# The CRT can't be built with link-time code generation because of
# LNK1237: "code gen introduced reference to non-native symbol" for intrinsics.
FORCENATIVEOBJECT = 1
NTLEGO=1
LINKER_FLAGS=-ignore:4006
LIBRARIAN_FLAGS=-ignore:4006
MSC_WARNING_LEVEL=/W3 /WX
!if "$(LANGAPI)" == ""
# Assume at the same level as crtroot.
LANGAPI = ..\..\..\langapi
!endif
INCLUDES=..\h;..\..\h;..\$(TARGET_DIRECTORY);$(PROJECT_ROOT)\ntos\inc
CONDITIONAL_INCLUDES = dosx32.h \
except.h \
undname.inl
386_STDCALL=0
!if 0
!if $(FREEBUILD)
DEBUG_CDEFINE = -DNDEBUG
D=
!else
DEBUG_CDEFINE = -D_DEBUG
D=d
!endif
!endif
TARGETTYPE=LIBRARY
TARGETPATH=obj
!IF "$(CRTLIBTYPE)" == "DLL" || "$(CRTLIBTYPE)" == "DLLLIB"
TARGETNAMESUFFIX=dll
TARGETTYPE=LIBRARY
!if "$(CRTLIBTYPE)" == "DLLLIB"
MTOPTION=-D_MT -D_DLL -DCRTDLL
!else
MTOPTION=-D_MT -DCRTDLL -D_CRTIMP=
!endif
ASM_DEFINES1=-D_WIN32
C_DEFINES1=$(DEBUG_CDEFINE)
IA64_OPTIMIZATION=/O1 # Workaround until crtw32\eh\frame.cpp can build /Oxs or /Oxt
!ELSEIF "$(CRTLIBTYPE)" == "MT"
TARGETNAMESUFFIX=mt
TARGETTYPE=LIBRARY
MTOPTION=-D_MT
ASM_DEFINES1=-D_WIN32
C_DEFINES1=$(DEBUG_CDEFINE)
IA64_OPTIMIZATION=/O1 # Workaround until crtw32\eh\frame.cpp can build /Oxs or /Oxt
!ELSEIF "$(CRTLIBTYPE)" == "ST"
TARGETNAMESUFFIX=
TARGETTYPE=LIBRARY
MTOPTION=
ASM_DEFINES1=-D_WIN32
C_DEFINES1=$(DEBUG_CDEFINE)
IA64_OPTIMIZATION=/O1 # Workaround until crtw32\eh\frame.cpp can build /Oxs or /Oxt
!ELSEIF "$(CRTLIBTYPE)" == "STP"
TARGETNAMESUFFIX=stp
TARGETTYPE=LIBRARY
MTOPTION=
ASM_DEFINES1=-D_WIN32
C_DEFINES1=$(DEBUG_CDEFINE)
!ELSEIF "$(CRTLIBTYPE)" == "NT"
TARGETNAMESUFFIX=nt
TARGETTYPE=LIBRARY
MTOPTION=
C_DEFINES1=-D_NTSUBSET_ -D_NTSYSTEM_
ASM_DEFINES1=-D_NTSUBSET_ -D_NTSYSTEM_ -D_WIN32
!ELSEIF "$(CRTLIBTYPE)" == "POSIX"
TARGETNAMESUFFIX=psx
TARGETTYPE=LIBRARY
MTOPTION=
C_DEFINES1=-D_POSIX_
ASM_DEFINES1=-D_POSIX_
INCLUDES=$(SDK_INC_PATH)\posix;$(INCLUDES)
!ELSE
!ERROR Unsupported Library CRTLIBTYPE: $(CRTLIBTYPE)
!ENDIF
C_DEFINES1 = $(C_DEFINES1) -DNT_BUILD -D_CRTBLD -DWINHEAP -D_SYSCRT
ASM_DEFINES1 = $(ASM_DEFINES1) -DNT_BUILD -D_CRTBLD -D_SYSCRT
# Standard MBCS build
MBCS_DEFINES=-D_MBCS -D_MB_MAP_DIRECT -D_KANJI
C_DEFINES=$(C_DEFINES) $(C_DEFINES1) $(MTOPTION) $(MBCS_DEFINES)
ASM_DEFINES=$(ASM_DEFINES1) $(MTOPTION) $(MBCS_DEFINES)
USE_NATIVE_EH=1