Highley Recommended, Inc.
| NAVIGATION | ROM MAKEFILE |
|---|---|
|
CM Home |
##########################################################
# Copyright (C) 2000 Highley Recommended, Inc. #
# Distributed under GNU Copy Left Terms and Conditions. #
# #
# MAKEFILE NAME: Makefile #
# #
##########################################################
##########################################################
# MODIFICATION HISTORY #
# #
# Date Person Description #
# ---------- ------------ -------------------------- #
# 05/17/2000 D. Highley Original Release #
# #
##########################################################
############################
# Define local make macros #
############################
TOP = ../../../../..
SRC = ../../../../src
TARGET = ../../..
PRODUCT = xyz_prod
VENDOR = vendor
SHELL = $(TOP)/$(VENDOR)/tools/bin/sh.exe
RM = $(TOP)/$(VENDOR)/tools/bin/rm
CP = $(TOP)/$(VENDOR)/tools/bin/cp
ECHO = $(TOP)/$(VENDOR)/tools/bin/echo
TEST = $(TOP)/$(VENDOR)/tools/bin/test
CPU = PPCEC603
GCC_EXEC_PREFIX = $(TOP)/$(VENDOR)/tornado/host/x86-win32/lib/gcc-lib/
CC = GCC_EXEC_PREFIX=3D$(GCC_EXEC_PREFIX) \
$(TOP)/$(VENDOR)/tornado/host/x86-win32/bin/ccppc
DEBUG =
CFLAGS_LOC =
CFLAGS = -B$(TOP)/$(VENDOR)/tornado/host/x86-win32/lib/gcc-lib/ \
-c -mstrict-align -ansi -nostdinc -O2 -fvolatile \
-fno-builtin -fno-for-scope $(INCLUDES) -DCPU=$(CPU) \
$(DEBUG) $(CFLAGS_LOC)
INCLUDES = -I. \
-I$(SRC)/inc \
-I$(TARGET)/config/boot \
-I$(TARGET)/config/all \
-I$(TARGET)/h \
-I$(TARGET)/h/tffs \
-I$(TARGET)/comps/src \
-I$(TARGET)/src/drv
PROG = applicationrom
VPATH = $(TARGET)/config/boot/ $(TARGET)/config/all/
##################################
# Define source and object files #
##################################
SRCS = \
bootconfig.c \
version.c \
syslib.c \
ppc8260sio.c \
motfccend.c \
i2c.c \
miilib.c \
ledcontrol.c \
eeprom_mgmt.c \
changeboot.c \
rts_chk_sum.c \
systffs.c \
wavtffs.c \
i28f016.c \
cfiscs.c \
rtc_stubs.c
OBJS = $(SRCS:.c=3D.o)
# Some makes have there own idea of what to do so delete suffix rules.
# Create the ones we need to build with.
.SUFFIXES:
.SUFFIXES: .o .s .c .cpp
# Option -msoft-float is used almost everywhere, but not quite so we
# did not add it to the CFLAGS macro.
.c.o:
$(CC) $(CFLAGS) -Wall -msoft-float $<
.cpp.o:
$(CC) $(CFLAGS) -Wall -O $<
#####################
# Local Build Rules #
#####################
ROM_TEXT_ADRS = fff00100 # ROM entry address
ROM_SIZE = 00100000 # number of bytes of ROM space
ROM_WARM_ADRS = 0ff00100 # ROM wa$(RM) entry address
RAM_LOW_ADRS = 00100000 # RAM text/data address
RAM_HIGH_ADRS = 00300000 # RAM text/data address
CONVERT = $(TOP)/application/tools/bin/convert
all: version.tmp $(PROG).bin
$(PROG).bin: $(PROG).hex
@$(ECHO) " _______________________________________________________"
@$(ECHO) "|"
@$(ECHO) "| Building Target $@"
@$(ECHO) "|"
@$(ECHO) "|_______________________________________________________"
$(CONVERT) -s $? -a $@ -l fff00000
ELFHEX = $(TOP)/$(VENDOR)/tornado/host/x86-win32/bin/elfhex
$(PROG).hex: $(PROG) $(PROG).bdx
@$(ECHO) " _______________________________________________________"
@$(ECHO) "|"
@$(ECHO) "| Building Target $@"
@$(ECHO) "|"
@$(ECHO) "|_______________________________________________________"
$(ELFHEX) -a 0xfff00100 $(PROG).tmp >$@
$(PROG).bdx: $(PROG)
@$(ECHO) " _______________________________________________________"
@$(ECHO) "|"
@$(ECHO) "| Building Target $@"
@$(ECHO) "|"
@$(ECHO) "|_______________________________________________________"
$(CONVERT) -w $? -b $@ -c $(PROG).ab -t ppc
LD = $(TOP)/$(VENDOR)/tornado/host/x86-win32/bin/ldppc
LDFLAGS_LOC =
LDFLAGS = -X -N \
-L$(TARGET)/config/boot/zlib \
-L$(TARGET)/lib
ROM_ENTRY = _romInit
LIBS = -lppcec603gnuvx
ROMSIZE = $(TOP)/$(VENDOR)/tornado/host/x86-win32/bin/romsize -PPC
$(PROG): rominit.o bootinit.o version.o ledcontrol.o $(PROG).Z.o
@$(ECHO) " _______________________________________________________"
@$(ECHO) "|"
@$(ECHO) "| Building Target $@"
@$(ECHO) "|"
@$(ECHO) "|_______________________________________________________"
$(LD) $(LDFLAGS) -Map $@.map -e $(ROM_ENTRY) -Ttext $(ROM_SIZE) \
-o $@ rominit.o bootinit.o version.o ledcontrol.o $(LIBS) \
$(PROG).Z.o
$(ROMSIZE) -b $(ROM_SIZE) $@
# Make a copy of file since elfhex disturbs derived object file
# causing unecessary rebuilds, believe file is opened with
# write permission and clearmake assumes file has changed.
$(CP) $@ $@.tmp
bootinit.o: $(TARGET)/config/boot/bootinit.c
$(CC) $(CFLAGS) -Wall -msoft-float -o $@ $?
$(PROG).Z.o: $(PROG).Z.s
@$(ECHO) " _______________________________________________________"
@$(ECHO) "|"
@$(ECHO) "| Building Target $@"
@$(ECHO) "|"
@$(ECHO) "|_______________________________________________________"
$(CC) $(CFLAGS) -P -x assembler-with-cpp -o $@ $?
BINTOASM = $(TOP)/$(VENDOR)/tornado/host/x86-win32/bin/bintoasm
$(PROG).Z.s: $(PROG).Z
@$(ECHO) " _______________________________________________________"
@$(ECHO) "|"
@$(ECHO) "| Building Target $@"
@$(ECHO) "|"
@$(ECHO) "|_______________________________________________________"
$(BINTOASM) $? >$@
DEFLATE = $(TOP)/$(VENDOR)/tornado/host/x86-win32/bin/deflate
$(PROG).Z: $(PROG)o.bin
@$(ECHO) " _______________________________________________________"
@$(ECHO) "|"
@$(ECHO) "| Building Target $@"
@$(ECHO) "|"
@$(ECHO) "|_______________________________________________________"
$(DEFLATE) <$? >$@
ELFTOBIN = $(TOP)/$(VENDOR)/tornado/host/x86-win32/bin/elftobin
$(PROG)o.bin: $(PROG).o
@$(ECHO) " _______________________________________________________"
@$(ECHO) "|"
@$(ECHO) "| Building Target $@"
@$(ECHO) "|"
@$(ECHO) "|_______________________________________________________"
$(ELFTOBIN) <$? >$@
USR_ENTRY = usrInit
RAM_HIGH_ADRS = 00300000 # RAM text/data address
ZLIB = $(TARGET)/config/boot/zlib/libzlib.a
$(PROG).o: $(OBJS) $(ZLIB)
@$(ECHO) " _______________________________________________________"
@$(ECHO) "|"
@$(ECHO) "| Building Target $@"
@$(ECHO) "|"
@$(ECHO) "|_______________________________________________________"
$(LD) $(LDFLAGS) -e $(USR_ENTRY) -Ttext $(RAM_HIGH_ADRS) \
-o $@ $(OBJS) -lzlib $(LIBS)
$(ZLIB):
$(TEST) -d $(@D) || $(ECHO) "DIRECTORY $(@D) DOES NOT EXIST"
cd $(@D) && "$(MAKE)"
rominit.o: rominit.s
$(CC) $(CFLAGS) -P -x assembler-with-cpp -Wa,-W -o $@ $?
# Version Identification Target, must prevent winkins.
.NO_WINK_IN: version.c version.o
SET_VERSION = $(TOP)/$(PRODUCT)/tools/scripts/set_version
version.o: version.c
version.tmp:
$(SET_VERSION)
# Debug build target
ram: $(ZLIB) version.tmp
"$(MAKE)" \
DEBUG=-g \
CFLAGS_LOC="-DRAM_BASED -DDEBUG_PRINT=printErr" \
ROM_TEXT_ADRS=01000100 \
ROM_WARM_ADRS=01000100 \
RAM_HIGH_ADRS=00c00000 \
RAM_LOW_ADRS=00100000 \
$(PROG)_ram $(PROG)_ram.bdx
$(PROG)_ram: rominit.o bootinit_ram.o $(OBJS)
@$(ECHO) " _______________________________________________________"
@$(ECHO) "|"
@$(ECHO) "| Building Target $@"
@$(ECHO) "|"
@$(ECHO) "|_______________________________________________________"
$(LD) $(LDFLAGS) -e $(ROM_ENTRY) -Ttext $(RAM_HIGH_ADRS) \
-Map $@.map -o $@ $? -lzlib $(LIBS)
$(ROMSIZE) -b $(ROM_SIZE) $@
$(PROG)_ram.bdx: $(PROG)_ram
$(CONVERT) -w $? -b $@ -c $(PROG)_ram.ab -t ppc
bootinit_ram.o: $(TARGET)/config/boot/bootinit.c
@$(ECHO) " _______________________________________________________"
@$(ECHO) "|"
@$(ECHO) "| Building Target $@"
@$(ECHO) "|"
@$(ECHO) "|_______________________________________________________"
$(CC) $(CFLAGS) -DUNCOMPRESS -Wall -msoft-float -o $@ $?
clean:
$(RM) -f $(OBJS) version.c
$(RM) -f $(PROG) $(PROG).o $(PROG).hex $(PROG).bdx $(PROG).ab
$(RM) -f $(PROG).bin $(PROG)o.bin $(PROG).tmp
$(RM) -f rominit.o bootinit.o bootinit_ram.o
$(RM) -f $(PROG).map $(PROG).z $(PROG).z.o $(PROG).z.s
$(RM) -f $(PROG)_ram.map $(PROG)_ram.o
$(RM) -f $(PROG)_ram $(PROG)_ram.bdx $(PROG)_ram.ab
$(RM) -f $(PROG).abx $(PROG)_ram.abx
$(RM) -f .make.state .cmake.state makefile.bak
clobber: clean
$(RM) -f $(PROG).bin $(PROG)_ram
|