# make.defs - common variable definitions
#
# modification history
# --------------------
# 04-12-02,mj	created
#

DEPENDENCIES=makedeps

ifeq ($(TARGET_CPU),MIPS)

CPU_TOOL=mips

ifeq ($(TOR_VER),2.1)
CPU=MIPS64
CC_ARCH_SPEC1= -mips4 -G 0 -B$(VX_ROOT)/host/x86-win32/lib/gcc-lib/ -mno-branch-likely -fno-builtin -funroll-loops -Wall
else
CPU=R4000
CC_ARCH_SPEC1= -mcpu=r4000 -mips3 -mgp32 -mfp32 -G 0 -B$(VX_ROOT)/host/x86-win32/lib/gcc-lib/
endif

ifeq ($(ENDIAN),EL)
CC_ARCH_SPEC = -EL $(CC_ARCH_SPEC1)
else
CC_ARCH_SPEC = -EB $(CC_ARCH_SPEC1)
endif

# ARM CPU
else

CPU_TOOL=arm
CPU		= ARMARCH4
CC_ARCH_SPEC1 = -march=armv4 -mapcs-32

ifeq ($(ENDIAN),LE)
CC_ARCH_SPEC = $(CC_ARCH_SPEC1) -mlittle-endian
else
CC_ARCH_SPEC = $(CC_ARCH_SPEC1)
endif

endif

TOOL       = gnu

SW_ROOT = $(subst \,/,$(DSDT_USER_BASE))
SRC_BASE_PATH = $(SW_ROOT)/src
QD_INCLUDE_PATH = $(SW_ROOT)/Include/h

VX_ROOT = $(subst \,/,$(WIND_BASE))
OS_INCLUDE_PATH = $(VX_ROOT)/target/h

LIB_DIR = $(SW_ROOT)/library
OBJDIR = obj

CC      =cc$(CPU_TOOL)
LD      =ld$(CPU_TOOL)
MAKE    =make
CD		=cd
RM      =del
ECHO	=echo

CFLAGS = $(CFLAGS1) $(CFLAGS2) $(INCLUDE_PATH) $(CDEBUG_DEFINES)

CFLAGS1 = -DCPU=$(CPU) -D_$(OS_RUN) $(CC_ARCH_SPEC) -g $(DEBUG_TYPE)
CFLAGS2 = $(CC_OPTIM) $(CC_COMPILER) $(CC_WARNINGS_ALL)

CC_OPTIM = $(CC_OPTIM_TARGET)

ifeq ($(TARGET_CPU),MIPS)
#CC_COMPILER	=  -ansi -nostdinc
CC_COMPILER	=  -ansi
else
CC_COMPILER	=  -ansi -fdollars-in-identifiers -mno-sched-prolog -fvolatile
endif

CC_OPTIM_TARGET	= -O2 -funroll-loops -fno-for-scope -fno-builtin
CC_WARNINGS_ALL	= -Wall

ifeq ($(RELEASE),NO)
CDEBUG_DEFINES=-DDEBUG=1 -DDEBUG_QD
else
CDEBUG_DEFINES=
endif

ifeq ($(TARGET_CPU),MIPS)
LDFLAGS1 = -nostdlib -r -X -N
ARFLAGS =  crus
else
#LDFLAGS	= -nostdlib -X -EL -r
LDFLAGS1	= -nostdlib -X -N -r
endif

ifeq ($(ENDIAN),EL)
LDFLAGS = $(LDFLAGS1) -EL
else
LDFLAGS = $(LDFLAGS1)
endif


INCLUDE_PATH = -I. \
               -I$(QD_INCLUDE_PATH)/driver \
               -I$(QD_INCLUDE_PATH)/msApi \
               -I$(QD_INCLUDE_PATH)/platform \
               -I$(SW_ROOT)/include \
               -I$(OS_INCLUDE_PATH)
