windows-nt/Source/XPSP1/NT/base/crts/srcrel/common.mkf
2020-09-26 16:20:57 +08:00

197 lines
5.4 KiB
Plaintext

# Set up DEVTOOLSBIN, DEVTOOLSLIB, DEVTOOLSINC, and DEVTOOLSSDKLIB to point
# to the compiler tools to be used. Also set PA as a short alias for
# PROCESSOR_ARCHITECTURE, and CPUDIR to the proper subdirectory name for
# built files for the target architecture.
#
# If doing a 64-bit CRT build on a 32-bit system, use the native 32-bit
# compiler, not a 64-bit-targetting cross-compiler
#
# Find the proper tools somewhere under $(DEVTOOLS), unless overridden by
# explicit definitions
PA = $(PROCESSOR_ARCHITECTURE) # Use a shorter name
!if "$(PA)"=="IA64" || ("$(PA)"=="x86" && "$(LLP64)"=="1")
TARGET_CPU = IA64
CPUDIR = ia64
!elseif "$(PA)"=="x86"
TARGET_CPU = i386
CPUDIR = intel
!elseif "$(PA)"=="ALPHA"
!if "$(LLP64)"=="1"
TARGET_CPU = ALPHA64
CPUDIR = alpha64
!else
TARGET_CPU = ALPHA
CPUDIR = alpha
!endif
!elseif "$(PA)"=="MIPS"
TARGET_CPU = MIPS
CPUDIR = mips
!elseif "$(PA)"=="PPC"
TARGET_CPU = PPC
CPUDIR = ppc
!else
!error makefile: unknown host CPU
!endif
!message TARGET: $(TARGET_CPU)
!if "$(LLP64)" == ""
LLP64 = 0
!elseif "$(LLP64)" != "0" && "$(LLP64)" != "1"
! error LLP64 = $(LLP64), should be 0 or 1
!endif
!message LLP64: $(LLP64)
!if "$(BLD_SYSCRT)" == ""
! if "$(LLP64)" == "0"
BLD_SYSCRT = 0
! else
BLD_SYSCRT = 1
! endif
!elseif "$(BLD_SYSCRT)" != "0" && "$(BLD_SYSCRT)" != "1"
! error BLD_SYSCRT = $(BLD_SYSCRT), should be 0 or 1
!endif
!message BLD_SYSCRT: $(BLD_SYSCRT)
# By default, we set up pointers to the compiler tool directories by searching
# for the following subdirectories of DEVTOOLS, in this order:
#
# DEVTOOLSBIN: $(DEVTOOLS)\$(PA)\vc7\bin
# else $(DEVTOOLS)\$(PA)\vclkg\bin
#
# DEVTOOLSLIB: $(DEVTOOLS)\$(PA)\vc7\lib
# else $(DEVTOOLS)\$(PA)\vclkg\lib
#
# DEVTOOLSINC: $(DEVTOOLS)\common\vc7\inc
# else $(DEVTOOLS)\common\vc7\include
# else $(DEVTOOLS)\common\vclkg\inc
# else $(DEVTOOLS)\common\vclkg\include
#
# DEVTOOLSSDKLIB: $(DEVTOOLS)\$(PA)\win32sdk\lib
#
# You can avoid all automatic choice by explicitly setting DEVTOOLSBIN,
# DEVTOOLSLIB, DEVTOOLSINC, and DEVTOOLSSDKLIB.
# check that DEVTOOLS is set if it is needed
!if !defined(DEVTOOLSBIN) || !defined(DEVTOOLSLIB) \
|| !defined(DEVTOOLSINC) \
|| !defined(DEVTOOLSSDKLIB)
! if !defined(DEVTOOLS)
! message
! message *** ERROR: %DEVTOOLS% must be defined, or else define explicit
! message *** path variables as follows:
! message
! message DEVTOOLSBIN: path to native CL.EXE
! message DEVTOOLSINC: path to VC++ headers
! message DEVTOOLSLIB: path to native VC++ libs
! message DEVTOOLSSDKLIB: path to native Win32 SDK libs
! message
! error Set environment variables and rebuild.
! endif
! if !exist("$(DEVTOOLS)")
! message
! message *** ERROR: %DEVTOOLS% is set to "$(DEVTOOLS)", but that directory
! message *** does not exist.
! message
! error Correct DEVTOOLS and rebuild.
! endif
! if defined(VCFLAVOR)
! if !exist("$(DEVTOOLS)\$(PA)\$(VCFLAVOR)")
! message
! message *** ERROR: %VCFLAVOR% is set to "$(VCFLAVOR)", but the directory
! message *** $(DEVTOOLS)\$(PA)\$(VCFLAVOR) does not exist.
! message *** VCFLAVOR should generally be set to "vc7" or "vclkg".
! message
! error Correct VCFLAVOR and rebuild.
! endif
! elseif exist("$(DEVTOOLS)\$(PA)\vc7")
VCFLAVOR = vc7
! elseif exist("$(DEVTOOLS)\$(PA)\vclkg")
VCFLAVOR = vclkg
! else
! error Unable to find $(DEVTOOLS)\$(PA)\vc7 or vclkg
! endif
!endif
!message Paths to native-hosted toolset used to build SRCREL tools:
!if defined(DEVTOOLS)
! message DEVTOOLS: $(DEVTOOLS)
!endif
!if defined(VCFLAVOR)
! message VCFLAVOR: $(VCFLAVOR)
!endif
# set DEVTOOLSCPUVC if needed
!if !defined(DEVTOOLSBIN) || !defined(DEVTOOLSLIB)
DEVTOOLSCPUVC = $(DEVTOOLS)\$(PA)\$(VCFLAVOR)
! if !exist("$(DEVTOOLSCPUVC)")
! error Unable to find $(DEVTOOLSCPUVC)
! endif
!endif
# set DEVTOOLSCOMMONVC if needed
!if !defined(DEVTOOLSINC)
DEVTOOLSCOMMONVC = $(DEVTOOLS)\common\$(VCFLAVOR)
! if !exist("$(DEVTOOLSCOMMONVC)")
! error Unable to find $(DEVTOOLSCOMMONVC)
! endif
!endif
# set DEVTOOLSCPUSDK if needed
!if !defined(DEVTOOLSSDKLIB)
DEVTOOLSCPUSDK = $(DEVTOOLS)\$(PA)\win32sdk
! if !exist("$(DEVTOOLSCPUSDK)")
! error Unable to find $(DEVTOOLSCPUSDK)
! endif
!endif
# set DEVTOOLSBIN if not already defined
!if !defined(DEVTOOLSBIN)
DEVTOOLSBIN = $(DEVTOOLSCPUVC)\bin
!endif
# set DEVTOOLSLIB if not already defined
!if !defined(DEVTOOLSLIB)
DEVTOOLSLIB = $(DEVTOOLSCPUVC)\lib
!endif
# set DEVTOOLSINC if not already defined
!if !defined(DEVTOOLSINC)
! if exist("$(DEVTOOLSCOMMONVC)\inc")
DEVTOOLSINC = $(DEVTOOLSCOMMONVC)\inc
! elseif exist("$(DEVTOOLSCOMMONVC)\include")
DEVTOOLSINC = $(DEVTOOLSCOMMONVC)\include
! else
# For better error-reporting below
DEVTOOLSINC = $(DEVTOOLSCOMMONVC)\inc
! endif
!endif
# set DEVTOOLSSDKLIB if not already defined
!if !defined(DEVTOOLSSDKLIB)
DEVTOOLSSDKLIB = $(DEVTOOLSCPUSDK)\lib
!endif
!message DEVTOOLSBIN: $(DEVTOOLSBIN)
!if !exist("$(DEVTOOLSBIN)")
! error Unable to find $(DEVTOOLSBIN)
!endif
!message DEVTOOLSINC: $(DEVTOOLSINC)
!if !exist("$(DEVTOOLSINC)")
! error Unable to find $(DEVTOOLSINC)
!endif
!message DEVTOOLSLIB: $(DEVTOOLSLIB)
!if !exist("$(DEVTOOLSLIB)")
! error Unable to find $(DEVTOOLSLIB)
!endif
!message DEVTOOLSSDKLIB: $(DEVTOOLSSDKLIB)
!if !exist("$(DEVTOOLSSDKLIB)")
! error Unable to find $(DEVTOOLSSDKLIB)
!endif
!message