📄 makefile
字号:
###############################################################################
#
# Makefile for building a monitor for the PPC405-WALNUT evaluation board
# platform.
#
#
# The current (8-2000) version of the PPC405 requires a patch utility be
# run on the executable to cover for a few remaining errata. The variables
# PATCHPROG and PATCHFILE must be coordinated with the version of the silicon
# this monitor is being built for.
#
PATCHPROG = patch405c
PATCHFILE = patchtblc
PLATFORM = WALNUT
FLASH = 29f040
TGTDIR = walnut_eval
MONBASE = ../../..
TGTBASE = $(MONBASE)/targets/$(TGTDIR)
COMBASE = $(MONBASE)/common
COMCPU = $(COMBASE)/cpu
ZLIB = $(COMBASE)/zlib
COMMON = $(COMBASE)/monitor
FLASHDIR = $(COMBASE)/flash/$(FLASH)
DATEREGBASE = -DDATEREGBASE=0xf0001ff8
TARGET = ppc-elf
include $(COMMON)/tools.make
CFLAGS = -c -Wall -O -fno-for-scope -mcpu=405 -DPLATFORM_$(PLATFORM)=1 \
-mno-sdata -msoft-float -nostdinc -fno-builtin -g -o $@ \
-I. -I$(COMMON) -I$(COMCPU) -I$(FLASHDIR)
ASFLAGS = -mbig -o $@
ASMCPP = cpp -D PLATFORM_$(PLATFORM)=1 -D ASSEMBLY_ONLY \
-I$(COMCPU) -I$(COMMON)
AOUT = mon$(PLATFORM)
LIBS = libz.a $(LIBGCC)
PREFILL = obj/prefill.o
OBJS1=obj/reset.o obj/$(PATCHFILE).o obj/ppcuic.o obj/asm_ppc.o \
obj/ppcmal.o obj/vectors_403.o obj/monprof.o obj/bbc.o \
obj/cpuio.o obj/start.o obj/uart_405.o obj/devices.o obj/devtbl.o \
obj/chario.o obj/cache.o obj/mprintf.o obj/docmd.o obj/at.o \
obj/cmdtbl.o obj/genlib.o obj/ee.o obj/dis_ppc.o obj/dld.o \
obj/env.o obj/edit.o obj/flash.o obj/flashpic.o obj/symtbl.o \
obj/dallasdate.o \
obj/flashdev.o obj/go.o obj/memcmds.o obj/except_403.o obj/idev.o \
obj/mstat.o obj/reg_cache.o obj/tfs.o obj/unpack.o obj/pio_ppc405.o \
obj/tfsclean2.o obj/tfsloader.o obj/tfslog.o obj/tfsapi.o obj/tfscli.o \
obj/sbrk.o obj/malloc.o obj/moncom.o obj/xmodem.o obj/lboot.o obj/cmds_ppc.o \
obj/ethernet.o obj/dhcpboot.o obj/dhcp_00.o obj/tftp.o obj/tcpstuff.o \
obj/if.o obj/arp.o obj/icmp.o obj/lineedit.o obj/redirect.o obj/memtrace.o \
obj/phy.o obj/etherdev.o obj/dcache.o obj/strace_ppc.o obj/cast.o \
obj/misccmds.o obj/password.o obj/crypt.o obj/main.o obj/misc.o
OBJS=$(OBJS1) obj/resetvector.o
include $(ZLIB)/zlib.objlist
###############################################################################
#
# all:
# Standard monitor build, destined for installation using newmon tool.
#
all: info $(OBJS) libz.a obj/monlib.o makefile
$(LD) -e coldstart -o $(AOUT) -T monWALNUT.lnk $(OBJS) $(LIBS)
$(PATCHPROG) $(AOUT)
rm -f tags
ctags -n -L cscope.files
elf -m $(AOUT)
elf -i4 -B $(AOUT).bin $(AOUT)
ls -l $(AOUT).bin
$(NM) --numeric-sort $(AOUT) > $(AOUT).sym
###############################################################################
#
# ram:
# Version of monitor for download into RAM.
#
ram: info $(OBJS1) libz.a obj/monlib.o makefile
$(LD) -e coldstart -o $(AOUT) -T ram.lnk $(OBJS1) $(LIBS)
$(PATCHPROG) $(AOUT)
$(OBJCOPY) --strip-unneeded $(AOUT) stripped
rm -f tags
ctags -n -L cscope.files
elf -m $(AOUT)
ls -l $(AOUT).bin
$(NM) --numeric-sort $(AOUT) > $(AOUT).sym
###############################################################################
#
# filldevice:
# This builds a version of the monitor binary that fills the entire boot
# flash. This is useful for some external device programmer that may get
# confused if they are asked to begin programming at some point other than
# the base of the device.
#
filldevice: info $(OBJS) libz.a $(PREFILL) obj/monlib.o makefile
$(LD) -e coldstart -o $(AOUT) -T filldevice.lnk $(OBJS) $(PREFILL) $(LIBS)
$(PATCHPROG) $(AOUT)
rm -f tags
ctags -n -L cscope.files
elf -m $(AOUT)
elf -i4 -B $(AOUT).bin $(AOUT)
ls -l $(AOUT).bin
$(NM) --numeric-sort $(AOUT) > $(AOUT).sym
libz.a: $(ZOBJS)
$(AR) rc libz.a $(ZOBJS)
info:
defdate -f %H:%M:%S BUILDTIME >info.h
defdate -f %m/%d/%y BUILDDATE >>info.h
###############################################################################
#
# Individual rules:
#
include $(COMMON)/common.make
include $(ZLIB)/zlib.make
obj/cpuio.o: cpuio.c config.h cpuio.h $(COMMON)/genlib.h \
$(COMMON)/ether.h $(COMMON)/stddefs.h \
$(COMMON)/devices.h devtbl.h
$(CC) $(CFLAGS) cpuio.c
obj/cmds_ppc.o: $(COMCPU)/cmds_ppc.c config.h $(COMMON)/cli.h \
$(COMMON)/genlib.h $(COMMON)/stddefs.h
$(CC) $(CFLAGS) $(COMCPU)/cmds_ppc.c
obj/dallasdate.o: $(COMMON)/dallasdate.c config.h $(COMMON)/genlib.h \
$(COMMON)/stddefs.h $(COMMON)/tfs.h
$(CC) $(CFLAGS) $(DATEREGBASE) $(COMMON)/dallasdate.c
obj/dcache.o: dcache.c config.h
$(CC) $(CFLAGS) dcache.c
obj/devtbl.o: devtbl.c $(COMMON)/devices.h devtbl.h
$(CC) $(CFLAGS) devtbl.c
obj/dis_ppc.o: $(COMCPU)/dis_ppc.c $(COMMON)/genlib.h config.h
$(CC) $(CFLAGS) $(COMCPU)/dis_ppc.c
obj/phy.o: phy.c $(COMMON)/genlib.h \
$(COMMON)/stddefs.h cpuio.h phy.h enetemac.h
$(CC) $(CFLAGS) phy.c
obj/etherdev.o: etherdev.c $(COMMON)/genlib.h \
$(COMMON)/stddefs.h enetemac.h cpuio.h \
$(COMCPU)/ppcmal.h $(COMCPU)/ppcuic.h $(COMMON)/ether.h
$(CC) $(CFLAGS) etherdev.c
obj/except_403.o: $(COMCPU)/except_403.c config.h cpu.h cpuio.h \
$(COMMON)/stddefs.h $(COMMON)/genlib.h \
$(COMCPU)/cpu_403.h
$(CC) $(CFLAGS) $(COMCPU)/except_403.c
obj/flashdev.o: $(FLASHDIR)/flashdev.c $(COMMON)/flash.h \
$(FLASHDIR)/flashdev.h config.h
$(CC) $(CFLAGS) $(FLASHDIR)/flashdev.c
obj/flashpic.o: $(FLASHDIR)/flashpic.c $(COMMON)/flash.h \
$(FLASHDIR)/flashdev.h config.h
$(CC) $(CFLAGS) $(FLASHDIR)/flashpic.c
obj/lboot.o: lboot.c config.h $(COMMON)/genlib.h $(COMMON)/cli.h \
$(COMMON)/stddefs.h $(COMMON)/tfs.h
$(CC) $(CFLAGS) lboot.c
obj/pio_ppc405.o: $(COMCPU)/pio_ppc405.c cpu.h cpuio.h config.h
$(CC) $(CFLAGS) $(COMCPU)/pio_ppc405.c
obj/main.o: main.c config.h cpu.h $(COMMON)/tfs.h \
$(COMMON)/genlib.h $(COMMON)/ether.h \
$(COMMON)/monflags.h $(COMMON)/stddefs.h
$(CC) $(CFLAGS) main.c
obj/mstat.o: mstat.c config.h cpu.h cpuio.h $(COMMON)/genlib.h
$(CC) $(CFLAGS) mstat.c
obj/strace_ppc.o: $(COMCPU)/strace_ppc.c config.h
$(CC) $(CFLAGS) $(COMCPU)/strace_ppc.c
obj/uart_405.o: $(COMCPU)/uart_405.c config.h $(COMMON)/devices.h \
$(COMMON)/stddefs.h $(COMMON)/ether.h
$(CC) $(CFLAGS) $(COMCPU)/uart_405.c
obj/asm_ppc.o: $(COMCPU)/asm_ppc.s $(COMCPU)/arch_ppc.h
$(ASMCPP) $(COMCPU)/asm_ppc.s >tmp.s
$(ASM) $(ASFLAGS) tmp.s
rm tmp.s
obj/ppcuic.o: $(COMCPU)/ppcuic.s $(COMCPU)/arch_ppc.h
$(ASMCPP) $(COMCPU)/ppcuic.s >tmp.s
$(ASM) $(ASFLAGS) tmp.s
rm tmp.s
obj/ppcmal.o: $(COMCPU)/ppcmal.s $(COMCPU)/arch_ppc.h
$(ASMCPP) $(COMCPU)/ppcmal.s >tmp.s
$(ASM) $(ASFLAGS) tmp.s
rm tmp.s
obj/vectors_403.o: $(COMCPU)/vectors_403.s $(COMCPU)/arch_ppc.h $(COMCPU)/cpu_403.h
$(ASMCPP) $(COMCPU)/vectors_403.s >tmp.s
$(ASM) $(ASFLAGS) tmp.s
rm tmp.s
obj/$(PATCHFILE).o: $(PATCHFILE).s
$(ASMCPP) $(PATCHFILE).s >tmp.s
$(ASM) $(ASFLAGS) tmp.s
rm tmp.s
obj/reset.o: reset.s config.h $(COMCPU)/arch_ppc.h $(COMCPU)/cpu_403.h
$(ASMCPP) reset.s >tmp.s
$(ASM) $(ASFLAGS) tmp.s
rm tmp.s
obj/prefill.o: $(COMCPU)/prefill.s
$(ASMCPP) $(COMCPU)/prefill.s >tmp.s
$(ASM) $(ASFLAGS) tmp.s
rm tmp.s
obj/resetvector.o: $(COMCPU)/resetvector.s
$(ASMCPP) $(COMCPU)/resetvector.s >tmp.s
$(ASM) $(ASFLAGS) tmp.s
rm tmp.s
###############################################################################
#
# Miscellaneous utilities:
# (generic utilities are in $(COMMON)/common.make)
#
clobber1:
rm -f $(PATCHPROG).out
cscope1:
ls $(COMCPU)/*ppc* >cscope.files
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -