Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

932 lines
24 KiB

##
## Copyright (c) 2000, Intel Corporation
## All rights reserved.
##
## WARRANTY DISCLAIMER
##
## THESE MATERIALS ARE PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
## EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
## PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
## PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
## OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING
## NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THESE
## MATERIALS, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
##
## Intel Corporation is the author of the Materials, and requests that all
## problem reports or change requests be submitted to it directly at
## http://developer.intel.com/opensource.
##
########################################################################
#
# Tools common Makefile.inc
#
# NOTES FOR Windows/NT environment
# 1. In WINNT, absolute path must BEGIN with back-slash (\) in order
# to find the RCS file for an absolute file-name on the server.
# 2. The substitution of /topg_drive is done only by the ToolBuster tools.
# It souldn't be used for other tools, e.g. cl.exe -I/topg_drive... won't work
# This variable should be substituted before the command issuing.
# 3. Absolute path with leading back-slash is not recognized as expected by MS tools.
# Either use absolute path with leading slash, or qoute the name with Double-Qoutes (").
# Different set of variables (macros) can contain Absolute path with leading slash,
# and with leading back-slash
# add the server drive to VAPTH to find RCS files for absolute file-names
VPATH += /topg_drive
ifeq ($(HOSTTYPE), WINNT)
# ???????
WINNT = winnt
endif # of WINNT
ifndef LOCALBASEDIR
ifeq ($(HOSTTYPE), PARISC)
LOCALBASEDIR = $(WORK_AREA)
LOCALDIR = $(LOCALBASEDIR)
else # of PARISC
ifeq ($(HOSTTYPE), WINNT)
# For absolute path name in NT, use leading back-slash
LOCALDIR = \x86sw
else # of WINNT
LOCALBASEDIR = $(HOME)
ifndef WORK_AREA
LOCALDIR = $(LOCALBASEDIR)/x86sw
else # of WORK_AREA
LOCALDIR = $(WORK_AREA)
endif # of WORK_AREA
endif # of WINNT
endif # of PARISC
else # of LOCALBASEDIR
ifndef LOCALDIR
LOCALDIR = $(LOCALBASEDIR)/x86sw
endif # of LOCALDIR
endif # of LOCALBASEDIR
ifndef SERVER_AREA
ifeq ($(HOSTTYPE), WINNT)
# This variable cann't be use in dependencies, the : are the problem
SERVER_AREA = j:/x86sw
else # of WINNT
ifeq ($(HOSTTYPE), PARISC)
SERVER_AREA = /gambit/src/official
else # of PARISC
SERVER_AREA = /home/x86sw
endif # of PARISC
endif # of WINNT
endif # of SERVER_AREA
ifndef STT_LOCAL_BIN
STT_LOCAL_BIN = /usr/local/bin
endif
CI = $(STT_LOCAL_BIN)/ci
CO = $(STT_LOCAL_BIN)/co
ifdef REMOTE
INSTALLDIR = $(LOCALDIR)
ifeq ($(REMOTE), SC)
RELEASEDIR = /md7/arch/tools/current/tools
else # of SC
ifeq ($(REMOTE), OR)
RELEASEDIR = /home2/tools64/current/tools
else # of OR
@echo check your REMOTE environment variable, should be one of
@echo SC, OR
@exit 1
endif # of OR
endif # of SC
else # of REMOTE
ifeq ($(HOSTTYPE), PARISC)
INSTALLDIR = $(WORK_AREA)
PINSTALLDIR = $(WORK_AREA)/prereleases
else # of PARISC
INSTALLDIR = $(SERVER_AREA)
PINSTALLDIR = $(INSTALLDIR)/preleases
endif
RELEASEDIR = /export/iswp_02/tools64/current/tools
endif # of REMOTE
ifneq ($(HOSTTYPE), WINNT)
DATE := $(shell date "+%d-%m-%y, %H:%M")
UNAME := $(shell uname)
endif # of WINNT
#ifeq ($(HOSTTYPE), PARISC)
# SERVER_DIR = $(WORK_AREA)
#else # of PARISC
# ifdef SERVER_AREA
# SERVER_DIR = $(SERVER_AREA)
# else # of SERVER_AREA
# ifeq ($(HOSTTYPE), WINNT)
# SERVER_DIR = j:/x86sw
# else # of WINNT
# SERVER_DIR = /home/x86sw
# endif # of SERVER_AREA
#endif # of PARISC
ifeq ($(HOSTTYPE), i386)
HOSTTYPE := UNIX386
endif
ifeq ($(HOSTTYPE), i486)
HOSTTYPE := UNIX386
endif
ifeq ($(HOSTTYPE), iAPX386)
ifeq ($(UNAME), SunOS)
HOSTTYPE := x86Solaris
else
HOSTTYPE := UNIX386
endif
endif
ifeq ($(HOSTTYPE), UNIX)
HOSTTYPE := UNIX386
endif
ifeq ($(UNAME), OSF1)
HOSTTYPE := MACH386
endif
ifneq ($(HOSTTYPE), PARISC)
RCSDIFF = rcsdiff -q
else
RCSDIFF = rcsdiff
endif
ifeq ($(HOSTTYPE), UNIX386)
ifeq ($(OSTYPE), svr5)
OS_DIR = svr5
SYS = -DSVR4 -DSVR5 -DUNIX
GCC_BIN = /usr/ccs/bin/cc
CC_BIN = /usr/ccs/bin/cc
RGCC_BIN = /usr/topgun/bin/rgcc
AWK_BIN = /usr/bin/nawk
AS_BIN = /usr/ccs/bin/as
LD_BIN = /usr/ccs/bin/ld
YACC_BIN = /usr/ccs/bin/yacc
GCC_WARN = -Xc
GCC_FLAGS =
GCC_DEBUG = -g $(GCC_WARN)
GCC_OPT = -O $(GCC_WARN)
CC_FLAGS = -Xc -Xt
CC_DEBUG = -g $(PROF_FLAGS)
CC_OPT = -O
RGCC_FLAGS= -Xa -Di386
RGCC_DEBUG= -g
RGCC_OPT = -Knoieee -Kinline -O ### -Kpentium
AS_FLAGS =
LD_FLAGS = -r
YC_FLAGS = -d -v
AR_BIN = /usr/ccs/bin/ar
CP_BIN = /usr/bin/cp
LN_BIN = /usr/bin/ln
MV_BIN = /usr/bin/mv
RM_BIN = /usr/bin/rm
CHMOD_BIN = /usr/bin/chmod
STRIP_BIN = /usr/ccs/bin/strip
AWK = gawk
PERL = /usr/intel/bin/perl -I /usr/gnu/lib/perl5/
AS_FLAGS = -n
else
OS_DIR = svr4
SYS = -DSVR4 -DUNIX
GCC_BIN = /usr/local/bin/gcc
CC_BIN = /usr/bin/cc
RGCC_BIN = /usr/topgun/bin/rgcc
AWK_BIN = /usr/bin/nawk
AS_BIN = /usr/bin/as
LD_BIN = /usr/bin/ld
YACC_BIN = /usr/bin/yacc
GCC_WARN = -Wall -Wshadow -Wpointer-arith -Wcast-align \
-Wconversion -Wmissing-prototypes -Wnested-externs
GCC_FLAGS = -m486
GCC_DEBUG = -g $(GCC_WARN)
GCC_OPT = -O2 -DNDEBUG $(GCC_WARN)
CC_FLAGS = -Xa -Di386
CC_DEBUG = -g $(PROF_FLAGS)
CC_OPT = -O
RGCC_FLAGS= -Xa -Di386
RGCC_DEBUG= -g
RGCC_OPT = -Knoieee -Kinline -O ### -Kpentium
AS_FLAGS =
LD_FLAGS = -r
YC_FLAGS = -d -v
AR_BIN = /usr/bin/ar
CP_BIN = /usr/bin/cp
LN_BIN = /usr/bin/ln
MV_BIN = /usr/bin/mv
RM_BIN = /usr/bin/rm
CHMOD_BIN = /usr/bin/chmod
STRIP_BIN = /usr/bin/strip
AWK = gawk
AS_FLAGS = -n
# GCC_O_WS = -Wmissing-prototypes
endif
else
ifeq ($(HOSTTYPE), i386-linux)
OS_DIR = linux
SYS = -DSVR4 -DUNIX
GCC_BIN = /usr/cygnus/redhat-980810/H-i386-pc-linux-gnu/bin/gcc
GCC_BIN = /usr/bin/gcc
CC_BIN = /usr/cygnus/redhat-980810/H-i386-pc-linux-gnu/bin/gcc
CC_BIN = /usr/bin/gcc
RGCC_BIN = /usr/topgun/bin/rgcc
AWK_BIN = /usr/bin/nawk
AS_BIN = /usr/bin/as
LD_BIN = /usr/bin/ld
YACC_BIN = /usr/bin/yacc
GCC_WARN = -Wall -Wshadow -Wpointer-arith -Wcast-align \
-Wconversion -Wmissing-prototypes -Wnested-externs
GCC_FLAGS = -m486
GCC_DEBUG = -g $(GCC_WARN)
GCC_OPT = -O2 -DNDEBUG $(GCC_WARN)
CC_FLAGS = $(GCC_FLAGS)
CC_DEBUG = $(GCC_DEBUG)
CC_OPT = $(GCC_OPT)
RGCC_FLAGS= -Xa -Di386
RGCC_DEBUG= -g
RGCC_OPT = -Knoieee -Kinline -O ### -Kpentium
AS_FLAGS =
LD_FLAGS = -r
YC_FLAGS = -d -v
AR_BIN = /usr/bin/ar
CP_BIN = /bin/cp
LN_BIN = /bin/ln
MV_BIN = /bin/mv
RM_BIN = /bin/rm
CHMOD_BIN = /bin/chmod
STRIP_BIN = /usr/bin/strip
AWK = gawk
AS_FLAGS = -n
CO = /usr/bin/co
CI = /usr/bin/ci
else
ifeq ($(HOSTTYPE), i486-linux)
OS_DIR = linux
PERL = /usr/bin/perl
SYS = -DSVR4 -DUNIX
GCC_BIN = /usr/bin/gcc
CC_BIN = /usr/bin/gcc
RGCC_BIN = /usr/topgun/bin/rgcc
AWK_BIN = /usr/bin/nawk
AS_BIN = /usr/bin/as
LD_BIN = /usr/bin/ld
YACC_BIN = /usr/bin/yacc
GCC_WARN = -Wall -Wshadow -Wpointer-arith -Wcast-align \
-Wconversion -Wmissing-prototypes -Wnested-externs
GCC_FLAGS = -m486
GCC_DEBUG = -g $(GCC_WARN)
GCC_OPT = -O2 -DNDEBUG $(GCC_WARN)
CC_FLAGS = $(GCC_FLAGS)
CC_DEBUG = $(GCC_DEBUG)
CC_OPT = $(GCC_OPT)
RGCC_FLAGS= -Xa -Di386
RGCC_DEBUG= -g
RGCC_OPT = -Knoieee -Kinline -O ### -Kpentium
AS_FLAGS =
LD_FLAGS = -r
YC_FLAGS = -d -v
AR_BIN = /usr/bin/ar
CP_BIN = /bin/cp
LN_BIN = /bin/ln
MV_BIN = /bin/mv
RM_BIN = /bin/rm
CHMOD_BIN = /bin/chmod
STRIP_BIN = /usr/bin/strip
AWK = gawk
AS_FLAGS = -n
CO = /usr/intel/bin/co
CI = /usr/intel/bin/ci
else
ifeq ($(HOSTTYPE), PARISC)
OS_DIR = $(MACHINE)
SYS = -DHPUX -DSVR4 -DUNIX -DPY -DSTRICT_ALIGN
GCC_BIN = /usr/local/bin/gcc
CC_BIN = /usr/bin/cc
RGCC_BIN = /usr/topgun/bin/rgcc
AWK_BIN = /usr/bin/nawk
AS_BIN = /usr/bin/as
LD_BIN = /usr/bin/ld
YACC_BIN = /usr/bin/yacc
GCC_FLAGS =
GCC_WARN = -Wall -Wshadow -Wpointer-arith -Wcast-align \
-Wconversion -Wmissing-prototypes -Wnested-externs
GCC_DEBUG = -g $(GCC_WARN)
GCC_OPT = -O2
CC_FLAGS = -Xa -Di386
CC_DEBUG = -g $(PROF_FLAGS)
CC_OPT = -O
RGCC_FLAGS= -Xa -Di386
GCC_DEBUG = -g $(GCC_WARN)
RGCC_OPT = -Knoieee -Kinline -O ### -Kpentium
AS_FLAGS =
LD_FLAGS = -r
YC_FLAGS = -d -v
#
# Changed for HPUX, from /usr/bin/ar for SVR4.
#
AR_BIN = /bin/ar
CP_BIN = /usr/bin/cp
LN_BIN = /usr/bin/ln
MV_BIN = /usr/bin/mv
RM_BIN = /usr/bin/rm
CHMOD_BIN = /usr/bin/chmod
STRIP_BIN = /usr/bin/strip
AWK = gawk
AS_FLAGS = -n
# GCC_O = -ansi -Wall -Wshadow -Wpointer-arith -Wcast-align \
# -Wconversion -Wmissing-prototypes \
# -Wnested-externs
else
ifeq ($(HOSTTYPE), UNIX386_TEST)
OS_DIR = svr4
SYS = -DSVR4 -DUNIX
GCC_BIN = /usr/local/bin/gcc -Wa,-t386 -Wa,-Nwa
CC_BIN = /usr/bin/cc
RGCC_BIN = /usr/topgun/bin/rgcc
AWK_BIN = /usr/bin/nawk
AS_BIN = /usr/bin/as
LD_BIN = /usr/bin/ld
YACC_BIN = /usr/bin/yacc
GCC_FLAGS = -m486
GCC_DEBUG = -g $(GCC_WARN)
GCC_OPT = -O2
CC_FLAGS = -Xa -Di386
CC_DEBUG = -g
CC_OPT = -O
RGCC_FLAGS= -Xa -Di386
GCC_DEBUG = -g $(GCC_WARN)
RGCC_OPT = -Knoieee -Kinline -O ### -Kpentium
AS_FLAGS =
LD_FLAGS = -r
YC_FLAGS = -d -v
AR_BIN = /usr/bin/ar
CP_BIN = /usr/bin/cp
LN_BIN = /usr/bin/ln
MV_BIN = /usr/bin/mv
RM_BIN = /usr/bin/rm
CHMOD_BIN = /usr/bin/chmod
STRIP_BIN = /usr/bin/strip
else
ifeq ($(HOSTTYPE), WINNT)
# ToolBusterDir should be defined in the environment
PERL = perl -I$(ToolBusterDir)/lib/perl
EXEXT = .exe
OS_DIR = win32
PWD =
SYS = -DWINNT
GCC_BIN = cl.exe
CXX = cl.exe
CC_BIN = cl.exe
AS_BIN = $(ToolBusterDir)/lib/gcc-lib/winnt386/2_4_5/as
LD_BIN = $(ToolBusterDir)/lib/gcc-lib/winnt386/2_4_5/ld
LD_BIN = lib
CAT_BIN = cat.exe
AR_BIN = lib.exe
CP_BIN = cp.exe
MV_BIN = mv.exe
RM_BIN = rm.exe
CHMOD_BIN = chmod.exe
AWK_BIN = gawk
CO = co.exe
CI = ci.exe
LIBMOFL = libmofl.lib
ELF_H = elf.h
GCC_OPT = -O2 -DNDEBUG
CFLAGS_D_DEXE32 = /nologo /Za /W3 /YX /D "_X86_" /D "_DEBUG" \
/D "_CONSOLE" /D "__WINNT__" /D "EX86stuff" \
/FR /ML /Fd"ILD.PDB" /Fp"ILD.PCH"
else
ifeq ($(HOSTTYPE), x86Solaris)
OS_DIR = solaris
SYS = -DSVR4 -DUNIX
GCC_BIN = /usr/local/bin/gcc
CC_BIN = /usr/bin/cc
RGCC_BIN = /usr/topgun/bin/rgcc
AWK_BIN = /usr/bin/nawk
AS_BIN = /usr/bin/as
LD_BIN = /usr/ccs/bin/ld
YACC_BIN = /usr/bin/yacc
GCC_FLAGS = -m486
GCC_DEBUG = -g $(GCC_WARN)
GCC_OPT = -O2
CC_FLAGS = -Xa -Di386
CC_DEBUG = -g
CC_OPT = -O
RGCC_FLAGS= -Xa -Di386
RGCC_DEBUG= -g
RGCC_OPT = -Knoieee -Kinline -O ### -Kpentium
AS_FLAGS =
LD_FLAGS = -r
YC_FLAGS = -d -v
AR_BIN = /usr/bin/ar
CP_BIN = /bin/cp
LN_BIN = /usr/bin/ln
MV_BIN = /usr/bin/mv
RM_BIN = /usr/bin/rm
CHMOD_BIN = /usr/bin/chmod
STRIP_BIN = /usr/ccs/bin/strip
else
ifeq ($(HOSTTYPE), MACH386)
OS_DIR = osf
SYS = -DOSF1 -DUNIX
GCC_BIN = /usr/local/bin/ngcc
CC_BIN = /bin/cc
AWK_BIN = /usr/local/bin/gawk
AS_BIN = /bin/as
LD_BIN = /bin/ld
YACC_BIN = /bin/yacc
GCC_FLAGS = -m486
GCC_DEBUG = -g $(GCC_WARN)
GCC_OPT = -O2
CC_FLAGS =
CC_DEBUG = -g
CC_OPT = -O
AS_FLAGS =
LD_FLAGS = -r
YC_FLAGS = -d -v
AR_BIN = /bin/ar
CP_BIN = /bin/cp
LN_BIN = /bin/ln
MV_BIN = /bin/mv
RM_BIN = /bin/rm
CHMOD_BIN = /bin/chmod
STRIP_BIN = /bin/strip
else
ifeq ($(HOSTTYPE), rs6000)
OS_DIR = aix
SYS = -DRS6000 -DAIX -DUNIX -DBIG_ENDIAN -DSTRICT_ALIGN
GCC_BIN = /usr/intel/bin/gcc
CC_BIN = /bin/cc
AWK_BIN = /usr/local/bin/gawk
AS_BIN = /bin/as
LD_BIN = /bin/ld
YACC_BIN = /bin/yacc
GCC_FLAGS =
GCC_DEBUG = -g $(GCC_WARN)
GCC_OPT = -O2
CC_FLAGS =
CC_DEBUG = -g
CC_OPT = -O
AS_FLAGS =
LD_FLAGS = -r
YC_FLAGS = -d -v
AR_BIN = /bin/ar
CP_BIN = /bin/cp
LN_BIN = /bin/ln
MV_BIN = /bin/mv
RM_BIN = /bin/rm
CHMOD_BIN = /bin/chmod
STRIP_BIN = /bin/strip
else
ifeq ($(HOSTTYPE), sun4)
OS_DIR = sparc
SYS = -DSPARC -DSUNOS -DUNIX -DBIG_ENDIAN -DEWS -DSTRICT_ALIGN
GCC_BIN = /usr/local/bin/gcc
CC_BIN = /bin/cc
AWK_BIN = /usr/local/bin/gawk
AS_BIN = /bin/as
LD_BIN = /bin/ld
YACC_BIN = /bin/yacc
GCC_FLAGS =
GCC_DEBUG = -g $(GCC_WARN)
GCC_OPT = -O2
CC_FLAGS =
CC_DEBUG = -g
CC_OPT = -O
AS_FLAGS =
LD_FLAGS = -r
YC_FLAGS = -d -v
AR_BIN = /bin/ar
CP_BIN = /bin/cp
LN_BIN = /bin/ln
MV_BIN = /bin/mv
RM_BIN = /bin/rm
CHMOD_BIN = /bin/chmod
STRIP_BIN = /bin/strip
else
ifeq ($(HOSTTYPE), HP)
OS_DIR = hp
SYS = -DUNIX -DHPUX -DBIG_ENDIAN -DSTRICT_ALIGN
GCC_BIN = /usr/local/gnu/cygnus/progressive-95q2/H-hppa1.1-hp-hpux9.05/bin/gcc
CC_BIN = /bin/cc
AWK_BIN = /usr/local/bin/gawk
AS_BIN = /bin/as
LD_BIN = /bin/ld
YACC_BIN = /bin/yacc
GCC_FLAGS =
GCC_DEBUG = -g $(GCC_WARN)
GCC_WARN = -Wall -Wshadow -Wpointer-arith -Wcast-align \
-Wconversion -Wmissing-prototypes -Wnested-externs
GCC_OPT = -O2
CC_FLAGS =
CC_DEBUG = -g
CC_OPT = -O
AS_FLAGS =
LD_FLAGS = -r
YC_FLAGS = -d -v
AR_BIN = /bin/ar
CP_BIN = /bin/cp
LN_BIN = /bin/ln
MV_BIN = /bin/mv
RM_BIN = /bin/rm
CHMOD_BIN = /bin/chmod
STRIP_BIN = /bin/strip
else
ifeq ($(HOSTTYPE),hp9000s700)
OS_DIR = hp
SYS = -DUNIX -DHPUX -DBIG_ENDIAN -DSTRICT_ALIGN
GCC_BIN = /usr/intel/bin/gcc -fPIC
CC_BIN = /bin/cc
AWK_BIN = /usr/local/bin/gawk
AS_BIN = /bin/as
LD_BIN = /bin/ld
YACC_BIN = /bin/yacc
GCC_FLAGS =
GCC_WARN = -Wall -Wshadow -Wpointer-arith -Wcast-align \
-Wconversion -Wmissing-prototypes -Wnested-externs
GCC_DEBUG = -g $(GCC_WARN)
GCC_OPT = -O2 -DNDEBUG
CC_FLAGS =
CC_DEBUG =
CC_OPT = -O
AS_FLAGS =
LD_FLAGS = -r
YC_FLAGS = -d -v
AR_BIN = /bin/ar
CP_BIN = /bin/cp
LN_BIN = /bin/ln
MV_BIN = /bin/mv
RM_BIN = /bin/rm
CHMOD_BIN = /bin/chmod
STRIP_BIN = /bin/strip
else
ifeq ($(HOSTTYPE), SCO)
OS_DIR = sco
SYS = -DSCO -DUNIX
GCC_BIN = /usr/local/bin/gcc
CC_BIN = /bin/cc
AWK_BIN = /usr/local/bin/gawk
AS_BIN = /usr/local/bin/as
LD_BIN = /bin/ld
YACC_BIN = /usr/bin/yacc
GCC_FLAGS = -m486
GCC_DEBUG = -g $(GCC_WARN)
GCC_OPT = -O2
CC_FLAGS = -Xa -Di386
CC_DEBUG = -g
CC_OPT = -O
AS_FLAGS =
LD_FLAGS = -r
YC_FLAGS = -d -v
AR_BIN = /bin/ar
CP_BIN = /bin/cp
LN_BIN = /bin/ln
MV_BIN = /bin/mv
RM_BIN = /bin/rm
CHMOD_BIN = /bin/chmod
STRIP_BIN = /bin/strip
else
ifeq ($(HOSTTYPE), UNIX64)
OS_DIR =
SYS = -DSVR4 -DUNIX
GCC_BIN = gcc64
# CC_BIN = /bin/cc
AWK_BIN = /usr/local/bin/gawk
AS_BIN = ias
LD_BIN = ild
YACC_BIN = /usr/bin/yacc
GCC_FLAGS = -milp32
GCC_DEBUG = -g $(GCC_WARN)
GCC_OPT = -O2
# CC_FLAGS = -Xa -Di386
# CC_DEBUG = -g
# CC_OPT = -O
AS_FLAGS =
LD_FLAGS = -r
YC_FLAGS = -d -v
AR_BIN = iar
CP_BIN = /bin/cp
LN_BIN = /bin/ln
MV_BIN = /bin/mv
RM_BIN = /bin/rm
CHMOD_BIN = /bin/chmod
STRIP_BIN = /bin/strip
else
ifeq ($(HOSTTYPE), UNIX64E) #Electron, 32 bit, EM
OS_DIR = eas
SYS = -DSVR4 -DUNIX
GCC_BIN = ecc.eas -32 -noannotate -D__PTR32__
# CC_BIN = /bin/cc
AWK_BIN = /usr/local/bin/gawk
AS_BIN = ias.eas
LD_BIN = ild.eas
YACC_BIN = /usr/bin/yacc
GCC_FLAGS =
GCC_DEBUG = $(GCC_WARN)
GCC_OPT =
# CC_FLAGS = -Xa -Di386
# CC_DEBUG = -g
# CC_OPT = -O
AS_FLAGS =
LD_FLAGS = -r
YC_FLAGS = -d -v
AR_BIN = iar
CP_BIN = /bin/cp
LN_BIN = /bin/ln
MV_BIN = /bin/mv
RM_BIN = /bin/rm
CHMOD_BIN = /bin/chmod
STRIP_BIN = /bin/strip
else
ifeq ($(HOSTTYPE), WINNT64E) #Electron, 32 bit, EM
# ToolBusterDir should be defined in the environment
PERL = perl -I$(ToolBusterDir)/lib/perl
EXEXT = .exe
OS_DIR = win32em
PWD =
SYS = -DWINNT
GCC_BIN = icl.exe
CXX = icl.exe
CC_BIN = icl.exe
AS_BIN = ias.exe
LD_BIN = ilib ### ??
CAT_BIN = cat.exe
AR_BIN = ilib.exe
CP_BIN = cp.exe
MV_BIN = mv.exe
RM_BIN = rm.exe
CHMOD_BIN = chmod.exe
AWK_BIN = gawk
CO = co.exe
CI = ci.exe
LIBMOFL = libmofl.lib
ELF_H = elf.h
GCC_OPT = -DNDEBUG
CFLAGS_D_DEXE32 = /nologo /Za /W3 /YX /D "_X86_" /D "_DEBUG" \
/D "_CONSOLE" /D "__WINNT__" /D "EX86stuff" \
/FR /ML /Fd"ILD.PDB" /Fp"ILD.PCH" ### ??
else
GCC_BIN = @echo HOSTTYPE undefined
CC_BIN = $(GCC_BIN)
hosttype_error:
@echo check your HOSTTYPE environment variable, should be one of
@echo i386, i486 iAPX386, UNIX386, UNIX, MACH386, rs6000, sun4, HP
@exit 1
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
ifeq ($(HOSTTYPE), WINNT)
AR_OPT = /out:
OEXT = obj
LEXT = lib
LDEXT = dll
EEXT = .exe
DOPT = /D
IOPT = /I
ifdef STAT_LIB
COPT = /c
else
COPT = /c /MD
endif
FOPT =
TC_FLAG = /Tc
FE_FLAG = /Fe
FO_FLAG = /Fo
R_FLAG =
O_FLAG =
OUT_FLAG = /out:
DEBUG_FLAG = /Zi
NT_O_FLAG = /Fo
DLL_LINK_FLAG = /link /DLL
NAME_FLAG = /name:
DLL = dll
ECHO = $(ToolBusterDir)/bin/echo
DELPARA = $(PERL) $(ToolBusterDir)/perlScripts/delpara
SEPR = &
LINK_CC = link /SUBSYSTEM:console /MACHINE:i386
LINK_DEBUG_FLAG = /DEBUG /FORCE:MULTIPLE
else
AR_OPT = cr
OEXT = o
LEXT = a
LDEXT = so
EEXT =
DOPT = -D
IOPT = -I
COPT = -c
FOPT = -f
TC_FLAG =
FE_FLAG =
FO_FLAG =
R_FLAG = -r
O_FLAG = -o
OUT_FLAG =
DEBUG_FLAG = -g
NAME_FLAG =
DLL_LINK_FLAG = -G
DLL = so
LIB = a
ECHO = echo
DELPARA = $(PERL) $(SERVER_AREA)/scripts/delpara
SEPR = ;
LINK_CC = $(CC)
LINK_DEBUG_FLAG = $(DEBUG_FLAG)
endif
ifdef USE_LPROF
PROF_FLAGS = -ql
USECC = 1
CC_OPT =
endif
# ToolBusterDir should be defined in the environment
# $$$ Default should be supplied
ifeq ($(HOSTTYPE), WINNT)
MHDR = $(PERL) $(ToolBusterDir)/perlScripts/mhdr -c
else
MHDR = $(PERL) $(SERVER_AREA)/scripts/mhdr -c
endif
LOCALBIN = $(LOCALDIR)/bin.$(OS_DIR)
LOCALLIB = $(LOCALDIR)/lib.$(OS_DIR)
INSTALLBIN = $(INSTALLDIR)/bin.$(OS_DIR)
INSTALLLIB = $(INSTALLDIR)/lib.$(OS_DIR)
PINSTALLBIN = $(PINSTALLDIR)/bin.$(OS_DIR)
PINSTALLLIB = $(PINSTALLDIR)/lib.$(OS_DIR)
ifndef INSTALLINC
ifeq ($(HOSTTYPE), WINNT)
INSTALLINC = /topg_drive/x86sw/include
else
INSTALLINC = $(INSTALLDIR)/include
endif
endif
RELEASEBIN = $(RELEASEDIR)/bin.$(OS_DIR)
RELEASELIB = $(RELEASEDIR)/lib.$(OS_DIR)
RELEASEINC = $(RELEASEDIR)/include
RELEASEMAN = $(RELEASEDIR)/man/man1
RELEASEDEMO = $(RELEASEDIR)/demo
EAS_EXT = .eas
ifneq ($(HOSTTYPE), WINNT)
CUR_DIR = $(shell pwd)
MAKE_DIR = $(PWD)
endif
BINDIR = $(LOCALBIN)
SRCDIR = $(LOCALDIR)/src
INCDIR = $(INSTALLINC)
CTLDIR = $(SRCDIR)/CTL64
DECDIR = $(SRCDIR)/idecoder
DISDIR = $(SRCDIR)/idasm
EMDBDIR = $(SRCDIR)/emdb
DEC_TST_DIR = $(LOCALDIR)/tst/idecoder
DIS_TST_DIR = $(LOCALDIR)/tst/idasm
SIGNON = $(INCDIR)/signon.h
USER_CFLAGS =
CFLAGS = $(COPT) $(TOOL_FLAG) $(VFLAG) $(SYS) $(USER_CFLAGS)
CXXFLAGS = $(CFLAGS)
# additional suffixes
.SUFFIXES: .spec .dir .s .c .o .l .a
ifdef OPTIMIZE # default is using debug info
CC_COM = $(CC_BIN) $(CC_FLAGS) $(CC_OPT)
GCC_COM = $(GCC_BIN) $(GCC_FLAGS) $(GCC_OPT)
RGCC_COM = $(RGCC_BIN) $(RGCC_FLAGS) $(RGCC_OPT)
else
CC_COM = $(CC_BIN) $(CC_FLAGS) $(CC_DEBUG)
GCC_COM = $(GCC_BIN) $(GCC_FLAGS) $(GCC_DEBUG)
RGCC_COM = $(RGCC_BIN) $(RGCC_FLAGS) $(RGCC_DEBUG)
endif
ifdef USECC
CC = $(CC_COM)
else
ifdef USERGCC
CC = $(RGCC_COM)
else # default is using gcc !
USEGCC = 1 # allow user to condition his flags upon this one
CC = $(GCC_COM)
endif
endif
AWK = $(AWK_BIN)
AS = $(AS_BIN) $(AS_FLAGS)
LD = $(LD_BIN) $(LD_FLAGS)
LD2 = $(CC)
AR = $(AR_BIN)
CP = $(CP_BIN)
LN = $(LN_BIN)
MV = $(MV_BIN) $(FOPT)
RM = $(RM_BIN) $(FOPT)
CHMOD = $(CHMOD_BIN)
STRIP = $(STRIP_BIN)
YACC = $(YACC_BIN) $(YC_FLAGS)
ifdef RCS_NO_UPDATE # default is update RCS
ifneq ($(HOSTTYPE),WINNT)
%:: RCS/%,v
@test ! -f $@ || $(RCSDIFF) $@ > /dev/null || echo $@ need to be checked out 1>&2
@test -f $@ || $(CO) $(COFLAGS) $< $@
else # of WINNT
%:: RCS/%,v
@test ! -f "$@" || $(RCSDIFF) "$@" > NUL: || echo $@ need to be checked out 1>&2
@test -f "$@" || $(CO) $(COFLAGS) "$@"
endif # of WINNT
else # of RCS_NO_UPDATE
ifneq ($(HOSTTYPE),WINNT)
%:: RCS/%,v
@echo updating $@ 1>&2
$(CO) $(COFLAGS) $@
else # of WINNT
%:: RCS/%,v
@echo updating "$@" 1>&2
$(CO) $(COFLAGS) "$@"
endif # of WINNT
endif # of RCS_NO_UPDATE
ifeq ($(HOSTTYPE),WINNT)
%.obj: %.c
$(CC) $(CFLAGS) /Fo$@ /Tc$<
endif
.c.o:
ifneq ($(HOSTTYPE),WINNT)
ifdef USECC
$(CC) $(CFLAGS) ${CUR_DIR}/$<
# Do the move only if not in place
$(patsubst $@-noexist,$(MV) $(@F) $@, $(filter-out $(filter $(@F), $@),$(firstword $(filter $(@F), $@) $@-noexist)))
else
$(CC) $(CFLAGS) -o ${CUR_DIR}/$@ ${CUR_DIR}/$<
endif
else
$(CC) $(CFLAGS) /Fo$@ /Tc$<
endif
.PHONY: force
include $(INCDIR)/Make_Arch.inc
ifeq ($(HOSTTYPE), WINNT)
CUTPERL = $(PERL) cut.perl
else
CUTPERL = cut.perl
endif
# Hook for Makefile debug purpose
echo_%:
+@echo variable $* is "$($*)" its origin is "$(origin $*)"
# Every file of this type is not erased if it was an intermediate target
.PRECIOUS: %.c %.s %.h
# to avoid infinite loop, don't retry if.
# in case no other rule apply, try to build the target in that directory
ifndef TRIED_THIS_TRICK
.DEFAULT: %
@echo !!!! Trying last resort default
$(MAKE) -C $(@D) TRIED_THIS_TRICK=1 $(@F)
endif