Highley Recommended, Inc.
| NAVIGATION | APLICATION MAKEFILE |
|---|---|
|
CM Home |
##########################################################
# Copyright (C) 2000 Highley Recommended, Inc. #
# Distrubuted under GNU Copy Left Terms and Conditions. #
# #
# MAKEFILE NAME: Application 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
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=$(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 -Wall $(INCLUDES) \
-DCPU=$(CPU) $(DEBUG) -DPRJ_BUILD \
-DREMOVE_THIS_FLASH_ADDRESSING_HACK_DNF
INCLUDES := \
-I$(SRC)/inc \
-I../ \
-I$(TARGET)/h \
-I$(TARGET)/h/tffs \
-I$(TARGET)/comps/src \
-I$(TARGET)/src/config \
-I$(TARGET)/src/drv
PROG := application
VPATH = ../ $(TARGET)/config/all/
##################################
# Define source and object files #
##################################
# Subsystems:
# To add a new subsystem make and entry below, add macro to
# SUBSYSTEMS macro and then add a new target near end of makefile.
SUB1 := $(SRC)/sub1/sub1.o
SUB2 := $(SRC)/sub2/sub2.o
SUB3 := $(SRC)/sub3/sub3.o
SUB4 := $(SRC)/sub4/sub4.o
SUBSYSTEMS := \
$(SUB1) \
$(SUB2) \
$(SUB3) \
SRCS := \
ppc8260sio.c \
motfccend.c \
i2c.c \
usrlib.c \
miilib.c \
usrappinit.c \
systffs.c \
wavtffs.c \
i28f016.c \
cfiscs.c \
rtc_stubs.c
OBJS := \
datasegpad.o \
sysalib.o \
syslib.o \
$(SRCS:.c=.o) \
$(SUBSYSTEMS) \
usrconfig.o \
version.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
# Implicit rules
.c.o:
$(CC) $(CFLAGS) -msoft-float $<
.cpp.o:
$(CC) $(CFLAGS) -O $<
#####################
# Local Build Rules #
#####################
LD := $(TOP)/$(VENDOR)/tornado/host/x86-win32/bin/ldppc
LDFLAGS_LOC =
LDFLAGS := -X -N -e _sysInit -Ttext $(LDFLAGS_LOC)
SYS_ENTRY := 00300000
LD_LOW_FLAGS := 00100000
VXSIZE := $(TOP)/$(VENDOR)/tornado/host/x86-win32/bin/vxsize PPC -v
CONVERT = $(TOP)/$(PRODUCT)/tools/bin/convert
$(PROG).st: version.tmp $(PROG).o symtbl.o ctdt.o
@$(ECHO) " _______________________________________________________"
@$(ECHO) "|"
@$(ECHO) "| Building Target $@"
@$(ECHO) "|"
@$(ECHO) "|_______________________________________________________"
$(LD) $(LDFLAGS) $(LD_LOW_FLAGS) -Map $@.map -o $@ $?
$(CONVERT) -w $@ -b $(PROG).bdx -c $(PROG).ab -t ppc
$(VXSIZE) $(SYS_ENTRY) $(LD_LOW_FLAGS) $@
MKSYMTBL := PATH=$(TOP)/$(VENDOR)/tornado/host/x86-win32/bin \
$(TOP)/$(VENDOR)/tornado/host/x86-win32/bin/makesymtbl PPC
# Explicit and derived targets
symtbl.o: symtbl.c
$(CC) $(CFLAGS) -fdollars-in-identifiers -msoft-float $?
symtbl.c: $(PROG).o
$(MKSYMTBL) $? > symtbl.c
ctdt.o: ctdt.c
$(CC) $(CFLAGS) -traditional -msoft-float $?
NM := $(TOP)/$(VENDOR)/tornado/host/x86-win32/bin/nmppc
MUNCH := $(TOP)/$(VENDOR)/tornado/host/x86-win32/bin/wtxtcl \
$(TOP)/$(VENDOR)/tornado/host/src/hutils/munch.tcl \
-asm ppc
ctdt.c: $(PROG).o
$(NM) $? | $(MUNCH) >$@
LD_PARTIAL := $(TOP)/$(VENDOR)/tornado/host/x86-win32/bin/ldppc -X -r
LIBS := -lppcec603gnuvx
$(PROG).o: $(OBJS)
@$(ECHO) " _______________________________________________________"
@$(ECHO) "|"
@$(ECHO) "| Building Target $@"
@$(ECHO) "|"
@$(ECHO) "|_______________________________________________________"
$(LD_PARTIAL) -o $@ -L$(TARGET)/lib $? $(LIBS)
# Targets not in SRCS list because they needed to be included in
# the LINK_LIST in a specific order.
datasegpad.o: ../datasegpad.c
$(CC) $(CFLAGS) -msoft-float -o $@ ../datasegpad.c
sysalib.o: ../sysalib.s
$(CC) $(CFLAGS) -P -x assembler-with-cpp -o $@ $?
syslib.o: ../syslib.c
$(CC) $(CFLAGS) -msoft-float -o $@ $?
usrconfig.o: ../usrconfig.c
$(CC) $(CFLAGS) -DSTANDALONE -msoft-float $?
# Version Identification Target, must prevent winkins.
.NO_WINK_IN: version.c version.o
version.o: version.c
SET_VERSION = $(TOP)/$(PRODUCT)/tools/scripts/set_version
version.tmp:
$(SET_VERSION)
# Targets to insure SUBSYSTEMS relocatable object files are up to date.
# To add a new subsystem create a target below. Go to top of makefile
# create a new macro for subsystem relocatable object file and add
# new macro to SUBSYSTEMS macro.
$(SUB1):
@$(ECHO) " _______________________________________________________"
@$(ECHO) "|"
@$(ECHO) "| Building Sub System $@"
@$(ECHO) "|"
@$(ECHO) "|_______________________________________________________"
@$(TEST) -d $(@D) || $(ECHO) "DIRECTORY $(@D) DOES NOT EXIST"
cd $(@D) && "$(MAKE)"
$(SUB2):
@$(ECHO) " _______________________________________________________"
@$(ECHO) "|"
@$(ECHO) "| Building Sub System $@"
@$(ECHO) "|"
@$(ECHO) "|_______________________________________________________"
@$(TEST) -d $(@D) || $(ECHO) "DIRECTORY $(@D) DOES NOT EXIST"
cd $(@D) && "$(MAKE)"
$(SUB3):
@$(ECHO) " _______________________________________________________"
@$(ECHO) "|"
@$(ECHO) "| Building Sub System $@"
@$(ECHO) "|"
@$(ECHO) "|_______________________________________________________"
@$(TEST) -d $(@D) || $(ECHO) "DIRECTORY $(@D) DOES NOT EXIST"
cd $(@D) && "$(MAKE)"
$(SUB4):
@$(ECHO) " _______________________________________________________"
@$(ECHO) "|"
@$(ECHO) "| Building Sub System $@"
@$(ECHO) "|"
@$(ECHO) "|_______________________________________________________"
@$(TEST) -d $(@D) || $(ECHO) "DIRECTORY $(@D) DOES NOT EXIST"
cd $(@D) && "$(MAKE)"
clean: rmversion.c
$(RM) -f $(OBJS)
$(RM) -f $(PROG).st.map $(PROG).o
$(RM) -f ctdt.c ctdt.o
$(RM) -f symtbl.c symtbl.o
$(RM) -f $(PROG).bdx $(PROG).abx $(PROG).ab
$(RM) -f .make.state .cmake.state makefile.bak
clobber: clean
$(RM) -f $(PROG).st
|