Windows2000/private/shell/common.inc
2020-09-30 17:12:32 +02:00

335 lines
8.6 KiB
PHP

##########################################################################
#
# Microsoft Confidential
# Copyright (C) Microsoft Corporation 1991-1998
# All Rights Reserved.
#
##########################################################################
#
# Common include file 'sources' files in the shell project.
#
#
# These definitions are required in your sources file:
#
# CCSHELL_DIR
# Path to ccshell root.
#
# FREEBUILD
# Set by makefile.def file for you. One of the following:
# 0 - build debug
# 1 - build retail
#
#
# Definitions used if defined:
#
# TARGET_WIN95
# Build component explicitly for the Win95 platform. If this is
# not defined, default is NT or both.
#
# TARGET_BOTH
# Build component to run on both platforms.
#
# NO_PRIVATE_HEADERS
# If set to 1, this is defined as a manifest constant, so the
# stub headers in shell\inc\stubs do not include the private
# companion headers.
#
# BUILD_PRIVLIB
# Build a private import library too. See the comments in
# makefile.inc.
#
# USE_NT_PRODUCT_VER
# If defined, this will use the NT team's product version
# numbers, as opposed to the IE team's numbers.
#
#
# Environment Variables and their meanings
#
# ATL_DEBUG_QI
# When set to 1, debug builds will also have _ATL_DEBUG_QI
# defined. ATL code spews a bunch of debug stuff during QueryInterface.
#
# ATL_DEBUG_REFCOUNT
# When set to 1, debug builds will also have _ATL_DEBUG_REFCOUNT
# defined. ATL code spews a bunch of debug stuff during AddRef
# and Release.
#
# FULL_DEBUG
# If set to 1, then debug builds will also have FULL_DEBUG defined.
# Retail builds unaffected. This is highly encouraged for regular
# development purposes. Not to be set or used by the build labs.
#
# MEASURE_PERF
# If set to 1, enables performance timing code for both debug and
# retail builds. This code squirts the timings for interesting
# events to the debug terminal.
#
# USE_LEGO
# Define lego macros
#
!if !defined(CCSHELL_DIR)
!error CCSHELL_DIR must be defined in sources file
!endif
#
# Set private paths
#
INCLUDES = \
..;\
$(CCSHELL_DIR)\inc;\
$(CCSHELL_DIR)\inc\stubs;\
$(BASEDIR)\private\windows\inc;\
$(SDK_INC_PATH);\
$(BASEDIR)\private\inc;\
$(INCLUDES)
#
# Skip these files when determining dependencies
#
CONDITIONAL_INCLUDES = $(CONDITIONAL_INCLUDES) \
atlbase.h \
atlcom.h \
atlconv.h \
atlctl.h \
atlctl.cpp \
atliface.h \
atlimpl.cpp \
atlwin.h \
atlwin.cpp \
ia64inst.h \
macapi.h \
macname1.h \
macname2.h \
macocidl.h \
macpub.h \
macwin32.h \
mainwin.h \
mwversion.h \
penwin.h \
pshpck16.h \
rpcerr.h \
rpcmac.h \
setupx.h \
skbapi.h \
statreg.h \
statreg.cpp \
unixstuff.h \
version.h \
winwlm.h \
..\inc16\shellapi.h \
\vobs\userx\userx\public\sdk\inc\winbase.h \
\vobs\userx\userx\public\sdk\inc\wingdi.h \
\vobs\userx\userx\public\sdk\inc\winuser.h \
\vobs\userx\userx\public\sdk\inc\shellapi.h \
\vobs\userx\userx\public\sdk\inc\winspool.h \
\vobs\userx\userx\public\sdk\inc\prsht.h \
\vobs\userx\userx\public\sdk\inc\commdlg.h \
\vobs\userx\userx\public\sdk\inc\shlobj.h \
\vobs\userx\userx\public\sdk\inc\commctrl.h \
\vobs\userx\userx\public\sdk\inc\shlguid.h \
\vobs\userx\userx\public\sdk\inc\shlwapi.h \
\vobs\userx\userx\public\sdk\inc\intshcut.h \
!if !defined(TARGET_WIN95)
LIBRARY_PLATFORM_PATH = $(BASEDIR)\public\sdk\lib
!else
# (use 'chicago' since that is already used in the NT tree)
INCLUDES = $(INCLUDES);$(CCSHELL_DIR)\inc\win95;
LIBRARY_PLATFORM_PATH = $(BASEDIR)\public\sdk\lib\chicago
ALT_PROJECT_TARGET = chicago
!endif
#
# Set common options
#
# Do this to assure that we run on NT 4.0 and Win95, even with
# NT5/Memphis headers.
!if !defined(WIN32_WINNT_VERSION)
WIN32_WINNT_VERSION=0x0400
!endif
!if !defined(WIN32_WIN95_VERSION)
WIN32_WIN95_VERSION=0x0400
!endif
!if !defined(WIN32_IE_VERSION)
# WARNING! If you increment WIN32_IE_VERSION, make sure to tell the
# Wx86 people or their build will break!
WIN32_IE_VERSION=0x0501
!endif
# Override NT5 settings
SUBSYSTEM_VERSION=4.00
# Defining this allows windows.h to include other headers
NOT_LEAN_AND_MEAN= 1
# Don't link to the runtime libs
USE_NOLIBS = 1
# Don't link to NTDLL if this runs on both platforms
!ifdef TARGET_BOTH
NO_NTDLL=1
!endif
!if defined(TARGET_WIN95)
# Don't define WINNT
CHICAGO_PRODUCT = 1
!endif
UMTYPE = windows
# Ignore the following linker warnings
# 4049:locally defined symbol "Xxx" imported
LINKER_FLAGS = $(LINKER_FLAGS) -ignore:4049
#
# Lego options
#
!if defined(USE_LEGO)
NTBBT = 1
NTPROFILEINPUT = 1
!endif
#
# Additional compiler flags
#
C_DEFINES = $(C_DEFINES) -DWIN32 -D_WIN32 -DPOSTSPLIT -DUSE_MIRRORING
C_DEFINES = $(C_DEFINES) -DUNICODE_SHDOCVW
!if defined(TARGET_DEMO)
C_DEFINES = $(C_DEFINES) -DWINNT_6DEMO
!endif
!ifdef USE_ICECAP
C_DEFINES = $(C_DEFINES) -DPRODUCT_PROF
!endif
!if !defined(TARGET_WIN95)
C_DEFINES = $(C_DEFINES) -DNT
! if !defined(NOT_UNICODE)
C_DEFINES = $(C_DEFINES) -DUNICODE -D_UNICODE
! endif
!endif
# ------ Debug Only Defines --------
!if "$(FREEBUILD)" == "0"
C_DEFINES = $(C_DEFINES) -DDEBUG
LINKER_NOICF = 1 # ICF is s-l-o-w
# Check for missing PURE directives in interface decls (debug only)
C_DEFINES = $(C_DEFINES) -DNO_NOVTABLE
# Define FULL_DEBUG for asserts to break by default
! if "$(FULL_DEBUG)" == "1"
C_DEFINES = $(C_DEFINES) -DFULL_DEBUG
! endif
# Allow someone to have ATL_DEBUG_REFCOUNT and ATL_DEBUG_QI set
# in their environment to turn this on
! if "$(ATL_DEBUG_REFCOUNT)" == "1"
C_DEFINES = $(C_DEFINES) -D_ATL_DEBUG_REFCOUNT
! endif
! if "$(ATL_DEBUG_QI)" == "1"
C_DEFINES = $(C_DEFINES) -D_ATL_DEBUG_QI
! endif
!endif
# ------ End Debug Only Defines --------
!if "$(MEASURE_PERF)" == "1"
C_DEFINES = $(C_DEFINES) -DMEASURE_PERF
!endif
!if "$(NO_PRIVATE_HEADERS)" == "1"
C_DEFINES = $(C_DEFINES) -DNO_PRIVATE_HEADERS
!endif
!ifdef USE_NT_PRODUCT_VER
# Use the NT product version numbers
C_DEFINES = $(C_DEFINES) -UNASHVILLE
!else
# Use the IE product version numbers. (The ntverp.h file checks
# for NASHVILLE.)
C_DEFINES = $(C_DEFINES) -DNASHVILLE
!endif
# This define helps us distinguish our development environment
# BUGBUG (scotth): I think we can get rid of this now
C_DEFINES = $(C_DEFINES) -DWINNT_ENV
# IE40-only features
FEATURE_IE40 = 1
!ifdef FEATURE_IE40
C_DEFINES = $(C_DEFINES) -DFEATURE_IE40 -DNASH
!endif
# Make warnings equivalent to errors
!if !defined(MSC_WARNING_LEVEL)
MSC_WARNING_LEVEL= /W3
!endif
MSC_WARNING_LEVEL= $(MSC_WARNING_LEVEL) /WX
!if defined(TARGET_WIN95) || defined(TARGET_BOTH)
USE_MAPSYM = 1
!endif
!if !defined(CLEANINF_FLAGS)
# Cleaninf flags
CLEANINF_FLAGS = -w
!endif
# Cleaninf utility
CLEANINF = cleaninf.exe $(CLEANINF_FLAGS)
!ifdef BUILD_PRIVLIB
NTTARGETFILE1 = $(NTTARGETFILE1) $(TARGETPATHLIB)\*\$(PRIVLIB)
!endif
# Short: if you're a shell dev, you should have SHELLDEV=1 set in your
# environment.
#
# Long: Components like BROWSEUI.DLL build standard and alternate DLLs depending
# on the BUILD_PRODUCT environment variable. (See browseui\sources.inc for
# more details.) Because of other expectations in iedev\lib that we (the
# shell team) need, we must have our razzle environment set BUILD_PRODUCT=IE.
# However, in the scope of the shell project, we need to change this to
# BUILD_PRODUCT=NT so we mimic the NT build lab's settings. But the IE team
# needs the BUILD_PRODUCT to remain "IE". We key off of SHELLDEV to know
# whether to switch.
#
!if "$(SHELLDEV)" == "1"
BUILD_PRODUCT = NT
!endif
#
# Linker flags
#
!if "$(BUILD_PRODUCT)" == "IE"
USE_WIN98OPT=1
!endif