Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

247 lines
5.5 KiB

!IF 0
Copyright (c) 1994 Microsoft Corporation
Module Name:
i386mk.inc
Abstract:
This module contains the x86 specific build controls. It is included
by makefile.def.
Author:
Jeff Havens (jhavens) 13-Feb-1994
Revision History:
!ENDIF
#
# x86 option control
#
UMBASE=$(UMBASE:*=i386)
UMLIBS=$(UMLIBS:*=i386)
NTRES=$(NTRES:*=i386)
UMRES=$(UMRES:*=i386)
UMOBJS=$(UMOBJS:*=i386)
LINKLIBS=$(LINKLIBS:*=i386)
DLLBASE=$(DLLBASE:*=i386)
DLLDEF=$(DLLDEF:*=i386)
MACHINE_TARGETLIBS=$(MACHINE_TARGETLIBS:*=i386)
TARGET=$(TARGET:*=i386)
DYNLINK_LIB=$(DYNLINK_LIB:*=i386)
TARGETEXEFILES=$(TARGETEXEFILES:*=i386)
TARGETLIBFILES=$(TARGETLIBFILES:*=i386)
TARGETOBJFILES=$(TARGETOBJFILES:*=i386)
UMOBJFILES=$(UMOBJFILES:*=i386)
UMEXEFILES=$(UMEXEFILES:*=i386)
HEADERFILE=$(HEADERFILE:*=i386)
HEADEROBJNAME=$(HEADEROBJNAME:*=i386)
HEADEROBJ=$(HEADEROBJ:*=i386)
PRECOMPILED=$(PRECOMPILED:*=i386)
PRECOMPILED_CXX=$(PRECOMPILED_CXX:*=i386)
PRECOMPILED_TARGET=$(PRECOMPILED_TARGET:*=i386)
!ifdef NTTARGETFILES
NTTARGETFILES=$(NTTARGETFILES:*=i386)
!endif
!ifdef NTTARGETFILE0
NTTARGETFILE0=$(NTTARGETFILE0:*=i386)
!endif
!ifdef NTTARGETFILE1
NTTARGETFILE1=$(NTTARGETFILE1:*=i386)
!endif
!IF "$(DLLENTRY)" != "-noentry"
DLLENTRY=$(DLLENTRY)@12
!ENDIF
!IFDEF STD_CALL_ENTRY
UMENTRY=$(UMENTRY)@4
!ENDIF
ENTRY_SUFFIX=@8
GDI_ENTRY_SUFFIX=@12
!IFDEF 386_WARNING_LEVEL
MSC_WARNING_LEVEL=$(386_WARNING_LEVEL)
!ENDIF
!IFDEF 386_OPTIMIZATION
MSC_OPTIMIZATION=$(386_OPTIMIZATION)
!message $(MAKEDIR)\sources (1) : Overriding default optimizations with $(386_OPTIMIZATION)
!ELSE
!IF "$(CBSTRING)" == ""
MSC_OPTIMIZATION=$(MSC_OPTIMIZATION) /Gf /QI6
!ELSE
MSC_OPTIMIZATION=$(MSC_OPTIMIZATION) /QI6
!ENDIF
!ENDIF
!IFDEF 386_CPPFLAGS
MSC_CPPFLAGS=$(386_CPPFLAGS)
!ENDIF
STDFLAGS= /c /Zel /Zp8 /Gy $(CBSTRING) $(MSC_WARNING_LEVEL) $(MSC_CALL_TYPE) /G4 $(MFC_FLAGS)
#LINKLIBS=$(LINKLIBS) $(BASEDIR)\public\sdk\lib\i386\int64.lib
!IF "$(TARGETTYPE)"=="DRIVER" || \
"$(TARGETTYPE)"=="GDI_DRIVER" || \
"$(TARGETTYPE)"=="MINIPORT"
#
#Drivers don't link with link libs.
#
MACHINE_TARGETLIBS=$(MACHINE_TARGETLIBS) $(BASEDIR)\public\sdk\lib\i386\int64.lib
!ENDIF
!IF "$(386_STDCALL)" == "0"
MSC_CALL_TYPE=/Gd
MSC_CALL_DEFINE=
!ELSE
! IF "$(386_STDCALL)" == "2"
MSC_CALL_TYPE=/Gr
MSC_CALL_DEFINE=
! ELSE
MSC_CALL_TYPE=/Gz
MSC_CALL_DEFINE=-DSTD_CALL
! ENDIF
!ENDIF
!IF "$(NTDEBUG)" == "retail" || "$(NTDEBUG)" == ""
! IFDEF NTNOFPO
!MESSAGE $(NTMAKEENV)\i386mk.inc(1) : Overriding FPO default with NTNOFPO
TARGET_DBG_DEFINES= $(TARGET_DBG_DEFINES) -DFPO=0
DBGFLAGS=$(DBGFLAGS) /Oy-
! ELSE
TARGET_DBG_DEFINES= $(TARGET_DBG_DEFINES) -DFPO=1
DBGFLAGS=$(DBGFLAGS) /Oy
! ENDIF
!ELSE
TARGET_DBG_DEFINES= $(TARGET_DBG_DEFINES) -DFPO=0
DBGFLAGS=$(DBGFLAGS) /Oy-
386_ADBGFLAGS=$(386_ADBGFLAGS) /Zi
!ENDIF
# Use /Z7 instead of /Zi
DBGFLAGS=$(DBGFLAGS:/Zi=/Z7)
!IFDEF NTLEGO
DBGFLAGS=$(DBGFLAGS) /Z7
386_ADBGFLAGS=$(386_ADBGFLAGS) /Zi
LINKER_FLAGS=$(LINKER_FLAGS) -debug:full -debugtype:cv,fixup
LINKER_MERGE_RDATA=
!ENDIF
!IF "$(BROWSER_INFO)" == "yes"
BROWSER= -FR$*.sbr
!ELSE
BROWSER=
!ENDIF
#
# 386 option control
#
ENV_DEFINES= $(MSC_CPPFLAGS) $(NTCPPFLAGS)
!IF "$(HALTYPE)" == ""
HALDEF=
!ELSE
HALDEF=-D$(HALTYPE)=1
!ENDIF
STD_DEFINES= -D_X86_=1 -Di386=1 $(HALDEF) $(MSC_CALL_DEFINE) $(STD_DEFINES)
CDEFINES=$(STD_DEFINES) $(TARGET_DBG_DEFINES) $(ENV_DEFINES) \
$(LIBC_DEFINES) $(C_DEFINES) $(NET_C_DEFINES)
CFLAGS=$(386_FLAGS) $(NT386FLAGS) $(STDFLAGS) $(DBGFLAGS) \
$(BROWSER) $(386_PERFFLAGS) $(USER_C_FLAGS)
386_ASMFLAGS=$(386_ADBGFLAGS) $(BROWSER) $(STD_DEFINES) \
$(TARGET_DBG_DEFINES) $(ENV_DEFINES) $(ASM_DEFINES)
386_CDEFINES=$(CDEFINES)
386_CFLAGS=$(CFLAGS)
CC_NAME = cl -nologo
C_COMPILER_NAME = $(CC_NAME)
CXX_COMPILER_NAME = $(CC_NAME)
C_PREPROCESSOR_NAME = $(CC_NAME)
GLOBAL_C_FLAGS = -Ii386\ -I. $(INCPATH1) $(CDEFINES) $(CFLAGS)
C_COMPILER_FLAGS = $(GLOBAL_C_FLAGS) $(PRECOMPILED) $(COMPILER_WARNINGS)
CXX_COMPILER_FLAGS = $(GLOBAL_C_FLAGS) $(PRECOMPILED_CXX) $(COMPILER_WARNINGS)
C_PREPROCESSOR_FLAGS = $(GLOBAL_C_FLAGS) -EP -Tc
C_COMPILER = $(C_COMPILER_NAME) $(C_COMPILER_FLAGS)
CXX_COMPILER = $(CXX_COMPILER_NAME) $(CXX_COMPILER_FLAGS)
C_PREPROCESSOR = $(C_PREPROCESSOR_NAME) $(C_PREPROCESSOR_FLAGS)
386_ASSEMBLER=ml -c -coff -Cx -nologo -Ii386\ -I. $(INCPATH1) -Zm $(386_ASMFLAGS)
ECHO_MSG=$(C_COMPILER) $<
ECHO_PRECOMPILED_MSG=$(C_COMPILER) /Yl$(TARGETNAME) $(HEADERFILE) $(HEADEROBJ) $(PRECOMPILED_FLAG) $(PRECOMPILED_INCLUDE)
{}.c{}.asm:
$(C_COMPILER_NAME) @<< /Fa $(MAKEDIR)\$(<F)
$(C_COMPILER_FLAGS: =
)
<<NOKEEP
{..\i386\}.asm{}.lst:
$(386_ASSEMBLER) /Fl$@ /Foobj\i386\$(@B).obj $<
{i386\}.asm{}.lst:
$(386_ASSEMBLER) /Fl$@ /Fo$(MAKEDIR)\obj\i386\$(@B).obj $<
{..\i386\}.asm{obj\i386\}.obj:
$(386_ASSEMBLER) -Fo$(MAKEDIR)\$@ $<
{i386\}.asm{obj\i386\}.obj:
$(386_ASSEMBLER) -Fo$(MAKEDIR)\$@ $<
LINKFLAGS=$(LNKFLAGS)
LIBRARY_OBJS=$(LINKLIBS) $(OBJECTS)
!IFDEF TUKWILA
_NTTREE=$(_NT386TREE)
!ENDIF
!IF DEFINED (CAIRO_PRODUCT)
! IF DEFINED (_CAIRO386TREE)
_NTTREE=$(_CAIRO386TREE)
! ENDIF
!ELSEIF DEFINED (CHICAGO_PRODUCT)
! IF DEFINED (_CHICAGO386TREE)
_NTTREE=$(_CHICAGO386TREE)
! elseif defined(_NT386TREE)
_NTTREE=$(_NT386TREE)
! ENDIF
!ELSEIF DEFINED (_NT386TREE)
_NTTREE=$(_NT386TREE)
!ENDIF
!IFDEF KERNEL_MODE
_NTTREE=$(_NT386TREE)\km
!ENDIF
!IFDEF _NT386LIBS
_NTLIBS=$(_NT386LIBS)
!ENDIF
COPYDST=$(386COPYDST)
LIB_COPY=nti386cp.cmd
!IF "$(NTDEBUGTYPE)" == "windbg" || "$(NTDEBUGTYPE)" == "both"
NTTEST_LINK_OPTIONS=-entry:main
!ELSE
NTTEST_LINK_OPTIONS=-fixed -base:0x80100000 -entry:main
!ENDIF