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.
706 lines
16 KiB
706 lines
16 KiB
# rules.mak
|
|
# Copyright 1995 Microsoft Corp.
|
|
#
|
|
#
|
|
# Include file for make files
|
|
# Provides a consistent definition of macros and Inference Rules
|
|
#
|
|
|
|
################
|
|
##
|
|
## Override these environment variable to make sure we are
|
|
## getting only our tools, libraries and include files
|
|
##
|
|
################
|
|
|
|
INIT=
|
|
INCLUDE=
|
|
LIB=
|
|
PATH=
|
|
|
|
#
|
|
# Here's a few global vars used by the build process
|
|
RULES_MAK="rules.mak"
|
|
DBG_MK=yes
|
|
|
|
!ifdef WIN32
|
|
TargetEnvironment = WIN32
|
|
!endif
|
|
|
|
################
|
|
##
|
|
## Set up global derived variables
|
|
##
|
|
################
|
|
|
|
#
|
|
# Target platform selection-
|
|
# The target is selected according to CPU, as well as O/S.
|
|
# The O/S can be: (os_h = Host O/S, os_t = Target O/S)
|
|
# win95 Win95
|
|
# nash Nashville
|
|
# nt_sur NT, Shell Update Release
|
|
# cairo Cairo
|
|
#
|
|
# The CPU can be: (cpu_h = Host CPU, cpu_t = Target CPU)
|
|
# X86 Intel (386, 486, P5, P6)
|
|
# ALPHA DEC Alpha RISC chip
|
|
# MIPS MIPS R4000, R4200, R4400, or R4600
|
|
# PPC IBM PowerPC chips
|
|
#
|
|
# If you want to select a TargetPlatform, you must select both
|
|
# CPU and OS, with CPU first. Please note that some combinations
|
|
# are not legit (like MIPS and DOS). Examples:
|
|
# "TargetPlatform=X86.nash"
|
|
# "TargetPlatform=MIPS.nt_sur"
|
|
|
|
##############################
|
|
# Detect the Host CPU type
|
|
##############################
|
|
|
|
!if "$(cpu_h)" == ""
|
|
|
|
!if "$(PROCESSOR_ARCHITECTURE)" == ""
|
|
!message defaulting to X86 builds
|
|
cpu_h = X86
|
|
!endif
|
|
|
|
!if "$(PROCESSOR_ARCHITECTURE)" == "x86"
|
|
cpu_h = X86
|
|
!endif
|
|
|
|
!if "$(PROCESSOR_ARCHITECTURE)" == "MIPS"
|
|
cpu_h = MIPS
|
|
!endif
|
|
|
|
!if "$(PROCESSOR_ARCHITECTURE)" == "PPC"
|
|
cpu_h = PPC
|
|
!endif
|
|
|
|
!if "$(PROCESSOR_ARCHITECTURE)" == "ALPHA"
|
|
cpu_h = ALPHA
|
|
!endif
|
|
|
|
!if "$(cpu_h)" == ""
|
|
!message $(RULES_MAK) ERROR: Unknown Host CPU type: $(PROCESSOR_ARCHITECTURE)
|
|
!message Please update the $(RULES_MAK) file
|
|
!error
|
|
!endif
|
|
!endif
|
|
|
|
|
|
###################################
|
|
# Detect the Host Operating System
|
|
###################################
|
|
|
|
!if "$(os_h)" == ""
|
|
os_h=nash
|
|
!endif
|
|
|
|
#####################################
|
|
# Detect the Target Operating System
|
|
#####################################
|
|
|
|
!if "$(os_t)" == ""
|
|
os_t=$(os_h)
|
|
!endif
|
|
|
|
#####################################
|
|
# Detect the Target CPU chip
|
|
#####################################
|
|
|
|
!if "$(cpu_t)" == ""
|
|
cpu_t=$(cpu_h)
|
|
!endif
|
|
|
|
#####################################
|
|
# Get default TargetPlatform
|
|
#####################################
|
|
|
|
!if "$(TargetPlatform)" == ""
|
|
TargetPlatform=$(cpu_t).$(os_t)
|
|
!endif
|
|
|
|
#
|
|
# A few sanity checks...
|
|
!if "$(cpu_t)" != "X86"
|
|
! if "$(os_t)" != "CAIRO" && "$(os_t)" != "NT_SUR"
|
|
! error $(RULES_MAK) ERROR: cannot run $(os_t) build on a $(cpu_t) system
|
|
! endif
|
|
!endif
|
|
|
|
# Short Cut for win32 compatablity
|
|
|
|
!if ("$(os_t)" == "WIN95") || ("$(os_t)" == "nash")
|
|
WIN32=1
|
|
!endif
|
|
|
|
!if "$(TargetEnvironment)" == "WIN32"
|
|
RCDEFINES=/DWIN32=1
|
|
|
|
!IF "$(DEBUG)" == "ON"
|
|
RCDEFINES=$(RCDEFINES) -DDEBUG
|
|
!endif
|
|
|
|
!endif
|
|
|
|
#####################################
|
|
# Set the location for the obj files
|
|
#####################################
|
|
|
|
!if "$(DEBUG)" == "ON"
|
|
OBJDOT = dbg
|
|
!else
|
|
!if "$(TEST)" == "ON"
|
|
OBJDOT = tst
|
|
!else
|
|
!if "$(BBT)" == "ON"
|
|
OBJDOT = bbt
|
|
!else
|
|
OBJDOT = ret
|
|
!endif
|
|
!endif
|
|
!endif
|
|
|
|
!if "$(os_t)" == "NT_SUR"
|
|
OBJBASE = nt$(cpu_t)
|
|
!else if "$(os_t)" == "CAIRO"
|
|
OBJBASE = cro$(cpu_t)
|
|
!else
|
|
OBJBASE = $(os_t)
|
|
!endif
|
|
OBJDIR = $(OBJBASE).$(OBJDOT)
|
|
|
|
################
|
|
##
|
|
## Tools
|
|
##
|
|
################
|
|
|
|
# Windows slm root and the project root
|
|
ROOT = $(ProjectRootPath)
|
|
# MSIPHONEROOT = $(ROOT)\TELECOM\MSIPHONE
|
|
WABROOT = $(ROOT)
|
|
|
|
# Tools
|
|
DEVROOT = $(WABROOT)\dev
|
|
TOOLSROOT = $(DEVROOT)\tools
|
|
TOOLbin = $(TOOLSROOT)\bin
|
|
TOOLDOSbin = $(TOOLSROOT)\bin
|
|
SLMbin = $(DEVROOT)\slm
|
|
|
|
## SLM Tools -- Found in dev\slm
|
|
OUT =$(SLMbin)\out.exe
|
|
IN =$(SLMbin)\in.exe
|
|
|
|
## DOS Tools -- Found in tools\bin
|
|
AWK =$(TOOLDOSbin)\awk.exe
|
|
TOUCH =$(TOOLDOSbin)\touch.exe
|
|
SED =$(TOOLDOSbin)\sed.exe
|
|
RM =$(TOOLbin)\rm.exe
|
|
|
|
## Independent Dos Only Tools -- Our special tools found in tools\binw
|
|
CHMODE = $(TOOLbin)\chmode.exe
|
|
GREP = $(TOOLbin)\grep.exe
|
|
WALK = $(TOOLbin)\walk.exe
|
|
EXP = $(TOOLbin)\exp.exe
|
|
CTAGS = $(TOOLbin)\ctags.exe
|
|
RM = $(TOOLbin)\rm.exe /x
|
|
MV = $(TOOLbin)\mv.exe
|
|
INCLUDES = $(TOOLbin)\mkdep.exe
|
|
|
|
## Some things are provided by the OS
|
|
CP = COPY
|
|
DELNODE = DELTREE /Y
|
|
CAT = TYPE
|
|
CHMOD = CHMODE
|
|
|
|
|
|
################
|
|
##
|
|
## Compiler and Linker tools and flags
|
|
##
|
|
################
|
|
|
|
###########################################
|
|
# Chicago and Nashville builds (WIN32 only)
|
|
###########################################
|
|
|
|
!if "$(TargetPlatform)" == "X86.WIN95" || \
|
|
"$(TargetPlatform)" == "X86.nash"
|
|
|
|
# Directories of tools, headers and libraries
|
|
WINDEV_PATH = $(WABROOT)\DEV
|
|
STDCTOOLS_PATH = $(WINDEV_PATH)\TOOLS\C1032
|
|
CMNCTOOLS_PATH = $(WINDEV_PATH)\TOOLS\COMMON
|
|
WINSDK_PATH = $(WINDEV_PATH)\SDK
|
|
WINDDK_PATH = $(WINDEV_PATH)\DDK
|
|
MFC32 = $(WINDEV_PATH)\MFC32
|
|
MSDEV_PATH = $(WINDEV_PATH)\MSDEV
|
|
|
|
CC = $(STDCTOOLS_PATH)\bin\cl.exe
|
|
RC = $(STDCTOOLS_PATH)\bin\rc.exe
|
|
LINK = $(STDCTOOLS_PATH)\bin\link.exe
|
|
LIBUTIL = $(STDCTOOLS_PATH)\bin\lib.exe
|
|
CVPACK = $(STDCTOOLS_PATH)\bin\cvpack.exe
|
|
BSCMAKE = $(STDCTOOLS_PATH)\bin\bscmake.exe
|
|
MAPSYM = $(CMNCTOOLS_PATH)\mapsym.exe
|
|
BBT = $(WINDEV_PATH)\tools\lego
|
|
|
|
# Header files path
|
|
#SDKhpath = $(MSDEV_PATH)\include;$(WINDEV_PATH)\inc;$(WINSDK_PATH)\inc;$(WINDEV_PATH)\inc16
|
|
SDKhpath = $(MSDEV_PATH)\include;$(WINDEV_PATH)\inc;$(WINSDK_PATH)\inc;
|
|
# same as SDKhpath for mkdep
|
|
SDKIhpath = -I$(MSDEV_PATH)\include -I$(WINDEV_PATH)\inc -I$(WINSDK_PATH)\inc -I$(WINDEV_PATH)\inc16
|
|
STDChpath = $(STDCTOOLS_PATH)\inc
|
|
MFChpath = $(MFC32)\include
|
|
# DDKhpath =
|
|
|
|
# Library files path
|
|
SDKlibpath = $(MSDEV_PATH)\lib;$(WINSDK_PATH)\lib;$(WINDEV_PATH)\lib;
|
|
STDClibpath = $(STDCTOOLS_PATH)\lib
|
|
MFClibpath = $(MFC32)\lib
|
|
BBTlibpath = $(BBT)\lib
|
|
# DDKlibpath = $(NEWTOOLS_PATH)\x86\w95.ddk\lib
|
|
|
|
|
|
######################
|
|
##
|
|
## SPECIAL ONE-OFF THINGS
|
|
## GO HERE
|
|
##
|
|
|
|
##
|
|
######################
|
|
|
|
# Compiler and linker flags
|
|
#
|
|
# CFLAGS
|
|
#
|
|
CC_Defines = /DWIN32 /D_X86_ /D_$(os_t)_ /DNO_STRICT /DNULL=0 /D_MT /YX /Fp$(OBJDIR)\$(BASECOMPNAME).PCH /D_DLL /DWIN4
|
|
LIBRARIES = kernel32.lib user32.lib gdi32.lib advapi32.lib version.lib
|
|
|
|
|
|
!if "$(DEBUG)" == "ON"
|
|
|
|
CFLAGS = /Odi -DDEBUG /Zpi /W3\
|
|
$(CC_Defines) /Fo$(OBJDIR)\ /Fd$(OBJDIR)\ /Fc$(OBJDIR)\ /GF3s
|
|
L_DebugFlag=/DEBUG:FULL /DEBUGTYPE:CV /PDB:NONE
|
|
|
|
!else
|
|
|
|
!ifndef CC_OFlag
|
|
CC_OFlag=x
|
|
!endif
|
|
CFLAGS = /O$(CC_OFlag)i /Zlpe /W3\
|
|
$(CC_Defines) /Fo$(OBJDIR)\ /Fd$(OBJDIR)\ /Fc$(OBJDIR)\ /GF3s
|
|
|
|
!endif
|
|
|
|
!if "$(TEST)" == "ON"
|
|
CFLAGS=-DTEST $(CFLAGS)
|
|
!endif
|
|
|
|
|
|
!if "$(BBT)" == "ON"
|
|
CFLAGS = /O$(CC_OFlag)i /Zi /W3\
|
|
$(CC_Defines) /Fo$(OBJDIR)\ /Fd$(OBJDIR)\ /Fc$(OBJDIR)\ /GF3s
|
|
!endif
|
|
|
|
|
|
# LFLAGS
|
|
#
|
|
LFLAGS = /NODEFAULTLIB $(L_DebugFlag)
|
|
|
|
!IF "$(LibType)"=="dll"
|
|
LFLAGS = $(LFLAGS) /DLL
|
|
!IFDEF LibMain
|
|
LFLAGS = $(LFLAGS) /ENTRY:$(LibMain)
|
|
!ENDIF
|
|
!ENDIF
|
|
|
|
## If console, else all others are windows.
|
|
!IFDEF CONSOLE
|
|
AppType =console
|
|
!ELSE
|
|
AppType =windows
|
|
!ENDIF
|
|
|
|
LFLAGS = -subsystem:$(AppType),4.0 $(LFLAGS)
|
|
# LFLAGS = -subsystem:$(AppType),4.0 -merge:.bss=.data -merge:.rdata=.text $(LFLAGS)
|
|
|
|
!if "$(BBT)" == "ON"
|
|
LFLAGS = /DEBUG /DEBUGTYPE:CV,FIXUP $(LFLAGS)
|
|
!endif
|
|
|
|
!ifndef MSVCRT
|
|
MSVCRT = msvcrt.lib
|
|
!endif
|
|
|
|
###########################################
|
|
# NT_SUR
|
|
###########################################
|
|
|
|
!elseif "$(os_t)" == "NT_SUR"
|
|
!error NT_SUR builds not supported at this time.
|
|
|
|
###########################################
|
|
# Cairo
|
|
###########################################
|
|
|
|
!elseif "$(os_t)" == "CAIRO"
|
|
!error CAIRO builds not supported at this time.
|
|
!endif
|
|
|
|
################
|
|
##
|
|
## Misc (MFC, MAPI, etc)
|
|
##
|
|
################
|
|
|
|
###########################################
|
|
# MFC
|
|
###########################################
|
|
|
|
!if DEFINED(UseMFC) || "$(usingMFC)" == "YES"
|
|
MFChpath = $(STDCTOOLS_PATH)\mfc\include
|
|
MFClibpath = $(STDCTOOLS_PATH)\mfc\lib
|
|
!endif
|
|
|
|
###########################################
|
|
# MFC
|
|
###########################################
|
|
|
|
!if DEFINED(UseMAPI) || "$(usingMAPI)"=="YES"
|
|
|
|
MAPIhpath = $(SDKhpath)
|
|
MAPIlibpath = $(SDKlibpath)
|
|
|
|
!endif
|
|
|
|
###########################################
|
|
# Headers and libraries path list
|
|
###########################################
|
|
|
|
!if "$(LocalCIncludePaths)" != ""
|
|
LocalCIncludePaths = $(LocalCIncludePaths);
|
|
!endif
|
|
|
|
!if "$(STDChpath)" != ""
|
|
STDCIhpath = -I$(STDChpath)
|
|
!endif
|
|
|
|
!if "$(MAPIhpath)" != ""
|
|
MAPIhpath = $(MAPIhpath);
|
|
MAPIIhpath = -I$(MAPIhpath)
|
|
!endif
|
|
|
|
!if "$(MFChpath)" != ""
|
|
MFChpath = $(MFChpath);
|
|
MFCIhpath = -I$(MFChpath)
|
|
!endif
|
|
|
|
!if "$(SDKhpath)" != ""
|
|
SDKhpath = $(SDKhpath);
|
|
!endif
|
|
|
|
!if "$(DDKhpath)" != ""
|
|
DDKhpath = $(DDKhpath);
|
|
DDKIhpath = -I$(DDKhpath)
|
|
!endif
|
|
|
|
!if "$(Locallibpath)" != ""
|
|
Locallibpath = $(Locallibpath);
|
|
!endif
|
|
|
|
!if "$(MAPIlibpath)" != ""
|
|
MAPIlibpath = $(MAPIlibpath);
|
|
!endif
|
|
|
|
!if "$(MFClibpath)" != ""
|
|
MFClibpath = $(MFClibpath);
|
|
!endif
|
|
|
|
!if "$(SDKlibpath)" != ""
|
|
SDKlibpath = $(SDKlibpath);
|
|
!endif
|
|
|
|
!if "$(DDKlibpath)" != ""
|
|
DDKlibpath = $(DDKlibpath);
|
|
!endif
|
|
|
|
PROJhpath = $(ProjectRootPath)\common\h;
|
|
PROJIhpath = -I$(ProjectRootPath)\common\h
|
|
|
|
# Do not split this line, as that inserts a space which rc cannot handle
|
|
CIncludePaths = .;$(LocalCIncludePaths)$(PROJhpath)$(MAPIhpath)$(SDKhpath)$(DDKhpath)$(MFChpath)$(STDChpath)
|
|
|
|
# This is for mkdep utility - it wants dirs in -Ifoo -Ibar format.
|
|
CCmdIncPaths = -I. $(Hfiles) $(PROJIhpath) $(MAPIIhpath) $(SDKIhpath) $(DDKIhpath) $(MFCIhpath) $(STDCIhpath)
|
|
MKDEP_options = -n -s.obj $(CCmdIncPaths)
|
|
|
|
# Do not split this line,as it confuses some versions of the linker!
|
|
LIBRULES = $(PROJlibpath);$(Locallibpath)$(MAPIlibpath)$(SDKlibpath)$(DDKlibpath)$(MFClibpath)$(STDClibpath)
|
|
|
|
!if "$(BBT)" == "ON"
|
|
LIBRULES = $(BBTlibpath);$(LIBRULES)
|
|
!endif
|
|
|
|
|
|
!IF "$(OBJBASE)" == "ntX86"
|
|
libdir=i386
|
|
!ENDIF
|
|
!IF "$(OBJBASE)" != "ntX86"
|
|
libdir = $(PROCESSOR_ARCHITECTURE)
|
|
!ENDIF
|
|
|
|
PROJlibpath=$(ProjectRootPath)\common\lib\$(libdir)
|
|
|
|
##############################################################################
|
|
# Inference Rules
|
|
##############################################################################
|
|
|
|
.SUFFIXES:
|
|
.SUFFIXES: .obj .c .cpp .asm .res .rc .sym .map
|
|
|
|
!IFDEF MASM510
|
|
|
|
.asm.obj:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set INCLUDE=$(AIncludePaths)
|
|
set PATH=$(PATH)
|
|
$(ASM) $(LocalAFLAGS) $<;
|
|
|
|
.asm{$(OBJDIR)}.obj:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set INCLUDE=$(AIncludePaths)
|
|
set PATH=$(PATH)
|
|
$(ASM) $(LocalAFLAGS) $<,$(@D)\;
|
|
|
|
{$(SRCDIR1)}.asm{$(OBJDIR)}.obj:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set INCLUDE=$(AIncludePaths)
|
|
set PATH=$(PATH)
|
|
$(ASM) $(LocalAFLAGS) $<,$(@D)\;
|
|
|
|
{$(SRCDIR2)}.asm{$(OBJDIR)}.obj:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set INCLUDE=$(AIncludePaths)
|
|
set PATH=$(PATH)
|
|
$(ASM) $(LocalAFLAGS) $<,$(@D)\;
|
|
|
|
{$(SRCDIR3)}.asm{$(OBJDIR)}.obj:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set INCLUDE=$(AIncludePaths)
|
|
set PATH=$(PATH)
|
|
$(ASM) $(LocalAFLAGS) $<,$(@D)\;
|
|
|
|
{$(SRCDIR4)}.asm{$(OBJDIR)}.obj:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set INCLUDE=$(AIncludePaths)
|
|
set PATH=$(PATH)
|
|
$(ASM) $(LocalAFLAGS) $<,$(@D)\;
|
|
|
|
.asm.lst:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set INCLUDE=$(AIncludePaths)
|
|
set PATH=$(PATH)
|
|
$(ASM) $(LocalAFLAGS) -L $<,,$*.lst,,
|
|
|
|
!ELSE
|
|
|
|
.asm.obj:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set INCLUDE=$(AIncludePaths)
|
|
set ML=$(AFLAGS)
|
|
set PATH=$(PATH)
|
|
$(ASM) $(LocalAFLAGS) $<
|
|
|
|
.asm{$(OBJDIR)}.obj:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set INCLUDE=$(AIncludePaths)
|
|
set ML=$(AFLAGS)
|
|
set PATH=$(PATH)
|
|
$(ASM) $(LocalAFLAGS) $<
|
|
|
|
{$(SRCDIR1)}.asm{$(OBJDIR)}.obj:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set INCLUDE=$(AIncludePaths)
|
|
set ML=$(AFLAGS)
|
|
set PATH=$(PATH)
|
|
$(ASM) $(LocalAFLAGS) $<
|
|
|
|
{$(SRCDIR2)}.asm{$(OBJDIR)}.obj:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set INCLUDE=$(AIncludePaths)
|
|
set ML=$(AFLAGS)
|
|
set PATH=$(PATH)
|
|
$(ASM) $(LocalAFLAGS) $<
|
|
|
|
{$(SRCDIR3)}.asm{$(OBJDIR)}.obj:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set INCLUDE=$(AIncludePaths)
|
|
set ML=$(AFLAGS)
|
|
set PATH=$(PATH)
|
|
$(ASM) $(LocalAFLAGS) $<
|
|
|
|
{$(SRCDIR4)}.asm{$(OBJDIR)}.obj:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set INCLUDE=$(AIncludePaths)
|
|
set ML=$(AFLAGS)
|
|
set PATH=$(PATH)
|
|
$(ASM) $(LocalAFLAGS) $<
|
|
|
|
.asm.lst:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set INCLUDE=$(AIncludePaths)
|
|
set ML=$(AFLAGS)
|
|
set PATH=$(PATH)
|
|
$(ASM) $(LocalAFLAGS) $<
|
|
|
|
!ENDIF
|
|
|
|
#### C Rules
|
|
.c.obj:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set PATH=$(PATH)
|
|
set INCLUDE=$(CIncludePaths)
|
|
set CL=-c $(CFLAGS)
|
|
$(CC) $(LocalCFLAGS) $<
|
|
|
|
.c{$(OBJDIR)}.obj:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set PATH=$(PATH)
|
|
set INCLUDE=$(CIncludePaths)
|
|
set CL=-c $(CFLAGS)
|
|
$(CC) $(LocalCFLAGS) $<
|
|
|
|
{$(SRCDIR1)}.c{$(OBJDIR)}.obj:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set PATH=$(PATH)
|
|
set INCLUDE=$(CIncludePaths)
|
|
set CL=-c $(CFLAGS)
|
|
$(CC) $(LocalCFLAGS) $<
|
|
|
|
{$(SRCDIR2)}.c{$(OBJDIR)}.obj:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set PATH=$(PATH)
|
|
set INCLUDE=$(CIncludePaths)
|
|
set CL=-c $(CFLAGS)
|
|
$(CC) $(LocalCFLAGS) $<
|
|
|
|
{$(SRCDIR3)}.c{$(OBJDIR)}.obj:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set INCLUDE=$(CIncludePaths)
|
|
set CL=-c $(CFLAGS)
|
|
set PATH=$(PATH)
|
|
$(CC) $(LocalCFLAGS) $<
|
|
|
|
{$(SRCDIR4)}.c{$(OBJDIR)}.obj:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set INCLUDE=$(CIncludePaths)
|
|
set CL=-c $(CFLAGS)
|
|
set PATH=$(PATH)
|
|
$(CC) $(LocalCFLAGS) $<
|
|
|
|
.c.cod:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set INCLUDE=$(CIncludePaths)
|
|
set CL=-c $(CFLAGS)
|
|
set PATH=$(PATH)
|
|
$(CC) $(LocalCFLAGS) -Fc$(OBJDIR)\ $<
|
|
|
|
.c.i:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set INCLUDE=$(CIncludePaths)
|
|
set CL=$(CFLAGS) $(LocalCFLAGS)
|
|
set PATH=$(PATH)
|
|
$(CC) -C -P $<
|
|
|
|
.c.p:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set INCLUDE=$(CIncludePaths)
|
|
set CL=$(CFLAGS) $(LocalCFLAGS)
|
|
set PATH=$(PATH)
|
|
$(CC) -Zg $< > $*.p
|
|
|
|
#### C++ Rules
|
|
|
|
.cpp.obj:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set INCLUDE=$(CIncludePaths)
|
|
set CL=-c $(CFLAGS)
|
|
set PATH=$(PATH)
|
|
$(CC) $(LocalCFLAGS) $<
|
|
|
|
.cpp{$(OBJDIR)}.obj:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set PATH=$(PATH)
|
|
set INCLUDE=$(CIncludePaths)
|
|
set CL=-c $(CFLAGS)
|
|
$(CC) $(LocalCFLAGS) $<
|
|
|
|
{$(SRCDIR1)}.cpp{$(OBJDIR)}.obj:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set PATH=$(PATH)
|
|
set INCLUDE=$(CIncludePaths)
|
|
set CL=-c $(CFLAGS)
|
|
$(CC) $(LocalCFLAGS) $<
|
|
|
|
{$(SRCDIR2)}.cpp{$(OBJDIR)}.obj:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set PATH=$(PATH)
|
|
set INCLUDE=$(CIncludePaths)
|
|
set CL=-c $(CFLAGS)
|
|
$(CC) $(LocalCFLAGS) $<
|
|
|
|
.cpp.cod:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set INCLUDE=$(CIncludePaths)
|
|
set CL=-c $(CFLAGS)
|
|
set PATH=$(PATH)
|
|
$(CC) $(LocalCFLAGS) -Fc$(OBJDIR)\ $<
|
|
|
|
#### Miscellaneous
|
|
|
|
.obj.exe:
|
|
@echo Attempting link from inference rules $<
|
|
|
|
.obj5.dll:
|
|
@echo Attempting link from inference rules $<
|
|
|
|
.map.sym:
|
|
$(MAPSYM) $<
|
|
|
|
{$(OBJDIR)}.map{$(OBJDIR)}.sym:
|
|
cd $(OBJDIR)
|
|
$(MAPSYM) $(<F)
|
|
cd ..
|
|
|
|
.h.inc:
|
|
$(H2INC) $(H2INC_options) $< -o $@
|
|
|
|
#### Resource Compilation
|
|
.rc.res:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set INCLUDE=$(CIncludePaths)
|
|
set PATH=$(PATH)
|
|
$(RC) $(RCDEFINES) $(LocalRCFLAGS) /r /Fo$@ $<
|
|
|
|
.rc{$(OBJDIR)}.res:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set INCLUDE=$(CIncludePaths)
|
|
set PATH=$(PATH)
|
|
$(RC) $(RCDEFINES) $(LocalRCFLAGS) /r /Feo$@ $<
|
|
|
|
{$(SRCDIR1)}.rc{$(OBJDIR)}.res:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set INCLUDE=$(CIncludePaths)
|
|
set PATH=$(PATH)
|
|
$(RC) $(RCDEFINES) $(LocalRCFLAGS) /r /Fo$@ $<
|
|
|
|
{$(RES_DIR)}.rc{$(OBJDIR)}.res:
|
|
@if not exist $(OBJDIR) mkdir $(OBJDIR)
|
|
set INCLUDE=$(CIncludePaths)
|
|
set PATH=$(PATH)
|
|
$(RC) $(RCDEFINES) $(LocalRCFLAGS) /r /Fo$@ $<
|