📄 makefile
字号:
#/***********************************************************************#* Copyright (C) ARM Ltd 1999. All rights reserved.#************************************************************************## $Id: Makefile,v 1.14 1999/12/07 10:46:52 asims Exp $ Makefile,v 1.6 1999/01/28 10:59:15 mquinn Exp $#ADS_BUILD=0TARGET = Evaluator7tIMAGE = angEvaluator7tROOTDIR = ../..UHAL_BASE = $(ROOTDIR)/../uHAL/UHAL_BOARD_DIR = $(UHAL_BASE)/Boards/EVALUATOR7TTARGDIR = $(ROOTDIR)/Evaluator7tETHDIR = $(ROOTDIR)/ethernetARMDBG = $(ROOTDIR)/../armdbgCLIB = $(ROOTDIR)/../500/clCLX = $(ROOTDIR)/../clxPROCESSOR = ARM7TTHUMB_SUPPORT = 1LATE_STARTUP= 0MINIMAL_ANGEL= 0# Set this to 1 for debugging version of Angel, 0 for Release.DEBUG= 0# Set this for assertions in C codeASSERT_ENABLED= 0# Define this only if DEBUG_METHOD is set to logterm in devconf.hLOGTERM_DEBUGGING=0# Build the release text sting using whatever text is supplied. Default to# unreleased.ifdef RELEASE ARM_RELEASE="\"$(RELEASE)"\"else ARM_RELEASE="\"unreleased"\"endif# The Evaluator has an ARM7TDMI, which is architecture 4T# Build without software stack checking and without a frame pointerifeq ($(ADS_BUILD),1) APCS= /noswst CPUTYPE= -cpu 4Telse APCS= 3/32bit/noswst/nofp #APCS= 3/32bit/swst/fp CPUTYPE= -arch 4Tendif# This is the default endianess - it can be overwritten on the# make command line by ENDIAN=BIGENDIAN = LITTLELITTLE_ENDIANFLAG= -liLITTLE_ENDIANDEFN= -DLITTLE_ENDIANLITTLE_ENDIANSFX= lLITTLE_ENDIANOBJDIR= littleBIG_ENDIANFLAG= -biBIG_ENDIANDEFN= -DBIG_ENDIANBIG_ENDIANSFX= bBIG_ENDIANOBJDIR= bigENDIANFLAG= $($(ENDIAN)_ENDIANFLAG)ENDIANDEFN= $($(ENDIAN)_ENDIANDEFN)ENDIANSFX= $($(ENDIAN)_ENDIANSFX)## now make compiler and assembler arguments#CCENDIAN= $(ENDIANFLAG) $(ENDIANDEFN)ASENDIAN= $(ENDIANFLAG)# The default is to build without ethernet supportETHERNET_SUPPORTED=0ETHEROBJDIR_0=ETHEROBJDIR_1= _ethTYPEOBJDIR_0= _relTYPEOBJDIR_1= _debOBJDIR = $($(ENDIAN)_ENDIANOBJDIR)$(TYPEOBJDIR_$(DEBUG))$(ETHEROBJDIR_$(ETHERNET_SUPPORTED))CDEFS= -DTARGET -DTHUMB_SUPPORT=$(THUMB_SUPPORT) -DANGELVSN=$(ANGELVSN) \ -DROADDR=$(ROADDR) -DLOGTERM_DEBUGGING=$(LOGTERM_DEBUGGING) \ -DRWADDR=$(RWADDR) -DMINIMAL_ANGEL=$(MINIMAL_ANGEL) \ -DLATE_STARTUP=$(LATE_STARTUP) -DASSERT_ENABLED=$(ASSERT_ENABLED) \ -DETHERNET_SUPPORTED=$(ETHERNET_SUPPORTED) -DDEBUG=$(DEBUG) -D$(PROCESSOR) \ -DADS_BUILD=$(ADS_BUILD) -DARM_RELEASE=$(ARM_RELEASE)# Extra debugging flags: choose from:# NO_RXE_DATA -- don't print received data bytes.# CLEAR_BUFFERS -- clear Angel buffers on allocation/deallocation# NO_LOG_INFO -- Allow LogWarning/LogError, but kill LogInfo.# Saves ~35K code# DEBUG_FILE_TOO -- include file names in debug info available (define# format too) (includes quite a bit of extra text)# ASSERT_ENABLED -- Allow Assertions with ASSERT(cond, info) macro# HAVE_DISASS -- a routine disass(...) exists which disassembles an# instruction (see logterm.c/disass.h for details of# call). Adds ~15Kb.#ifeq ($(DEBUG),1) # ANGEL_DEBUG = -g+ # ANGEL_DEBUG = -g -DCLEAR_BUFFERS ANGEL_DEBUG = -g -DNO_LOG_INFO # ANGEL_DEBUG = -go DEBUG_LOGS = -DDEBUG_BASE=$(TASKLOG_BASE) -DDEBUG_SIZE=$(TASKLOG_SIZE) # Clear this definition when debugging with symbols etc. LINKDEBUG =else ANGEL_DEBUG= -g- DEBUG_LOGS = LINKDEBUG = -nodebugendif# Extra debug flags for task logging, target-specific output etc..TASKLOG_BASE = 0x03FE0000TASKLOG_SIZE = 0x00001000EXTRA_DEBUG = $(DEBUG_BRUTUS) $(DEBUG_LOGS)ASSERT_ENABLED= 0# Leave this one alone - comment, uncomment and edit the two macros above# as necessary#ALL_DEBUG= $(ANGEL_DEBUG) $(FUSION_DEBUG) $(EXTRA_DEBUG)ifeq ($(ADS_BUILD),1) CFLAGS= -fah -apcs $(APCS) -c \ -I$(ROOTDIR) -I$(TARGDIR) -I$(UHAL_BOARD_DIR) -I$(CLX) -I$(ARMDBG) -I$(ETHDIR) \ -I$(UHAL_BASE)/h -I$(UHAL_BASE)/Processors/ -I$(UHAL_BASE)/Processors/$(PROCESSOR) \ $(CCENDIAN) $(CFL) $(CDEFS) $(ALL_DEBUG)else CFLAGS= -fc -fah -apcs $(APCS) -c \ -I$(ROOTDIR) -I$(TARGDIR) -I$(UHAL_BOARD_DIR) -I$(CLX) -I$(ARMDBG) -I$(ETHDIR) \ -I$(UHAL_BASE)/h -I$(UHAL_BASE)/Processors/ -I$(UHAL_BASE)/Processors/$(PROCESSOR) \ $(CCENDIAN) $(CFL) $(CDEFS) $(ALL_DEBUG)endifAFLAGS= -g -apcs $(APCS) $(ASENDIAN) $(CPUTYPE) \ -I$(OBJDIR) \ -I$(ROOTDIR) -I$(TARGDIR) -I$(UHAL_BOARD_DIR) -I$(CLIB) -I$(UHAL_BASE)/h \ -I$(UHAL_BASE)/Processors -I$(UHAL_BASE)/Processors/$(PROCESSOR) \ -PD "LOGTERM_DEBUGGING SETA $(LOGTERM_DEBUGGING)" \ -PD "ANGELVSN SETA $(ANGELVSN)" \ -PD "DEBUG SETA $(DEBUG)" \ -PD "DEBUG_BRUTUS SETA $(DEBUG)" \ -PD "LATE_STARTUP SETA $(LATE_STARTUP)" \ -PD "ROADDR SETA $(ROADDR)" \ -PD "THUMB_SUPPORT SETA $(THUMB_SUPPORT)" \ -PD "ASSERT_ENABLED SETA $(ASSERT_ENABLED)" \ -PD "MINIMAL_ANGEL SETA $(MINIMAL_ANGEL)" \ -PD "ETHERNET_SUPPORTED SETA $(ETHERNET_SUPPORTED)" \ -PD "DEBUG_BASE SETA $(TASKLOG_BASE)" \ -PD "DEBUG_SIZE SETA $(TASKLOG_SIZE)" \ -PD "$(PROCESSOR) SETL {TRUE}" \ -PD "ADS_BUILD SETA $(ADS_BUILD)" # set armtools to point to the tools you wish to use (otherwise the default ones will be used)CC = $(ARMTOOLS)armccAS = $(ARMTOOLS)armasmLD = $(ARMTOOLS)armlinkifeq ($(ADS_BUILD),1) AR= $(ARMTOOLS)armar ELF_FLAGS = $(LINKDEBUG) ELF_OUTPUT= -o LDFLAGS= -noremove -info totals -symbols -list $(OBJDIR)/$(IMAGE).axf.sym.lst -first '$(IMAGE).o(ROMStartup)'else AR= $(ARMTOOLS)armlib ELF_FLAGS= $(LINK_DEBUG) -nozeropad ELF_OUTPUT= LDFLAGS= -info totals -symbols $(OBJDIR)/$(IMAGE).axf.sym.lst -first 'little_rel/$(IMAGE).o(ROMStartup)'endifFROMELF= $(ARMTOOLS)fromelfLOGOBJS_1= $(OBJDIR)/panicblk.o $(OBJDIR)/logterm.o $(OBJDIR)/logadp.o \ $(OBJDIR)/ladpasm.o $(OBJDIR)/disass.oLOGOBJS_0=LOGOBJS=$(LOGOBJS_$(LOGTERM_DEBUGGING))OBJS = $(OBJDIR)/debug.o $(OBJDIR)/debughwi.o $(OBJDIR)/info.o \ $(OBJDIR)/ctrl.o $(OBJDIR)/debugos.o $(OBJDIR)/boot.o \ $(OBJDIR)/serlock.o $(OBJDIR)/serlasm.o $(OBJDIR)/devices.o \ $(OBJDIR)/devmisc.o $(OBJDIR)/devappl.o $(OBJDIR)/devshare.o \ $(OBJDIR)/devraw.o $(OBJDIR)/devclnt.o $(OBJDIR)/channels.o \ $(OBJDIR)/buffers.o $(OBJDIR)/rx.o $(OBJDIR)/tx.o $(OBJDIR)/crc.o \ $(OBJDIR)/logging.o $(OBJDIR)/msgbuild.o $(OBJDIR)/params.o \ $(OBJDIR)/except.o $(OBJDIR)/startlib.o $(OBJDIR)/sys.o \ $(OBJDIR)/serial.o $(OBJDIR)/driver.o $(OBJDIR)/memmap.o \ $(OBJDIR)/serpkt.o $(OBJDIR)/list.o \ $(OBJDIR)/serraw.o $(OBJDIR)/stacks.o $(OBJDIR)/suppasm.o \ $(OBJDIR)/interrupt.o $(OBJDIR)/stackrom.o \ $(OBJDIR)/delay.o \ $(LOGOBJS)# $(OBJDIR)/timerdev.o <- timers not yet supported, slip in before delay.o## Link Angel to run from the top of SRAM#ROADDR = 0x00074000RWADDR = 0x00000100ANGELVSN = 0x0001# The following are useful during testing ...all: OBJECT_DIR $(OBJDIR)/$(IMAGE).axfOBJECT_DIR: @if [ ! -d $(OBJDIR) ]; then mkdir $(OBJDIR); fi## Build binary Angel image.#$(OBJDIR)/$(IMAGE).axf: $(OBJS) $(ETHEROBJS) $(OBJDIR)/$(IMAGE).o $(LD) $(LDFLAGS) $(OBJS) $(OBJDIR)/$(IMAGE).o $(ETHEROBJS) \ -ro-base $(ROADDR) -rw-base ${RWADDR} -entry $(ROADDR) \ -o $(OBJDIR)/$(IMAGE).axf sort -f $@.sym.lst > $@.alpha.lst sort -b +1 $@.sym.lst > $@.num.lst $(FROMELF) $(ELF_FLAGS) $(OBJDIR)/$(IMAGE).axf -bin $(ELF_OUTPUT) $(OBJDIR)/$(IMAGE).bin $(FROMELF) $(ELF_FLAGS) $(OBJDIR)/$(IMAGE).axf -m32 $(ELF_OUTPUT) $(OBJDIR)/$(IMAGE).m32## It's always a good idea to be able to clean up.#clean: rm -f $(OBJDIR)/*.o rm -f $(OBJDIR)/$(IMAGE).* rm -f $(OBJDIR)/makelo rm -f $(OBJDIR)/lolevel.s# Rules for creating dependencies, to standard output, which can then be# cut and pasted back into this makefile above.depends: debug.dep debughwi.dep info.dep ctrl.dep debugos.dep boot.depdepends: serlock.dep devices.dep devmisc.dep devappl.dep devshare.depdepends: devraw.dep devclnt.dep channels.dep buffers.dep rx.dep tx.depdepends: crc.dep logging.dep msgbuild.dep params.dep sys.dep serial.depdepends: serpkt.dep serraw.dep stacks.dep arm_ether.dep timerdev.depdebug.dep: $(ROOTDIR)/debug.c @$(CC) -Mx $(CFLAGS) $(CFLdebug) $(ROOTDIR)/debug.c @echo " $$(CC) $$(CFLAGS) $$(CFL"`basename $? .c`") $?" @echo ""params.dep: $(ROOTDIR)/params.c @$(CC) -Mx $(CFLAGS) $(CFLparams) $(ROOTDIR)/params.c @echo " $$(CC) $$(CFLAGS) $$(CFL"`basename $? .c`") $?" @echo ""debughwi.dep: $(ROOTDIR)/debughwi.c @$(CC) -Mx $(CFLAGS) $(CFLdebughwi) $(ROOTDIR)/debughwi.c @echo " $$(CC) $$(CFLAGS) $$(CFL"`basename $? .c`") $?" @echo ""info.dep: $(ROOTDIR)/info.c @$(CC) -Mx $(CFLAGS) $(CFLinfo) $(ROOTDIR)/info.c @echo " $$(CC) $$(CFLAGS) $$(CFL"`basename $? .c`") $?" @echo ""ctrl.dep: $(ROOTDIR)/ctrl.c @$(CC) -Mx $(CFLAGS) $(CFLctrl) $(ROOTDIR)/ctrl.c @echo " $$(CC) $$(CFLAGS) $$(CFL"`basename $? .c`") $?" @echo ""debugos.dep: $(ROOTDIR)/debugos.c @$(CC) -Mx $(CFLAGS) $(CFLdebugos) $(ROOTDIR)/debugos.c @echo " $$(CC) $$(CFLAGS) $$(CFL"`basename $? .c`") $?" @echo ""boot.dep: $(ROOTDIR)/boot.c @$(CC) -Mx $(CFLAGS) $(CFLboot) $(ROOTDIR)/boot.c @echo " $$(CC) $$(CFLAGS) $$(CFL"`basename $? .c`") $?" @echo ""serlock.dep: $(ROOTDIR)/serlock.c @$(CC) -Mx $(CFLAGS) $(CFLserlock) $(ROOTDIR)/serlock.c @echo " $$(CC) $$(CFLAGS) $$(CFL"`basename $? .c`") $?" @echo ""devices.dep: $(TARGDIR)/devices.c @$(CC) -Mx $(CFLAGS) $(CFLdevices) $(TARGDIR)/devices.c @echo " $$(CC) $$(CFLAGS) $$(CFL"`basename $? .c`") $?" @echo ""devmisc.dep: $(ROOTDIR)/devmisc.c @$(CC) -Mx $(CFLAGS) $(CFLdevmisc) $(ROOTDIR)/devmisc.c @echo " $$(CC) $$(CFLAGS) $$(CFL"`basename $? .c`") $?" @echo ""devappl.dep: $(ROOTDIR)/devappl.c @$(CC) -Mx $(CFLAGS) $(CFLdevappl) $(ROOTDIR)/devappl.c @echo " $$(CC) $$(CFLAGS) $$(CFL"`basename $? .c`") $?" @echo ""devshare.dep: $(ROOTDIR)/devshare.c @$(CC) -Mx $(CFLAGS) $(CFLdevshare) $(ROOTDIR)/devshare.c @echo " $$(CC) $$(CFLAGS) $$(CFL"`basename $? .c`") $?" @echo ""devraw.dep: $(ROOTDIR)/devraw.c @$(CC) -Mx $(CFLAGS) $(CFLdevraw) $(ROOTDIR)/devraw.c @echo " $$(CC) $$(CFLAGS) $$(CFL"`basename $? .c`") $?" @echo ""devclnt.dep: $(ROOTDIR)/devclnt.c @$(CC) -Mx $(CFLAGS) $(CFLdevclnt) $(ROOTDIR)/devclnt.c @echo " $$(CC) $$(CFLAGS) $$(CFL"`basename $? .c`") $?"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -