You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

89 lines
1.9 KiB
Makefile

16 years ago
# Configuration for the Cisco 3620/3640 Routers
TARGET=c3600
MACHCODE=0x1e
TEXTADDR=0x80008000
ifndef CROSS_COMPILE
CROSS_COMPILE=mips-elf-
endif
# Configuration for the Cisco 3660 Routers
# TARGET=c3600
# MACHCODE=0x34
# TEXTADDR=0x80008000
# ifndef CROSS_COMPILE
# CROSS_COMPILE=mips-elf-
# endif
# Configuration for the Cisco 1700 Series Routers
# TARGET=c1700
# MACHINE=0x33
# TEXTADDR=0x80008000
# ifndef CROSS_COMPILE
# CROSS_COMPILE=powerpc-elf-
# endif
# additional CFLAGS
CFLAGS=
# don't modify anything below here
# ===================================================================
PROG=ciscoload
CC=$(CROSS_COMPILE)gcc
AR=$(CROSS_COMPILE)ar
LD=$(CROSS_COMPILE)ld
OBJCOPY=$(CROSS_COMPILE)objcopy
MACHDIR=mach/$(TARGET)
16 years ago
# command to prepare a binary
RAW=${OBJCOPY} --strip-unneeded --alt-machine-code ${MACHCODE}
INCLUDE=-Iinclude/ -Imach/${TARGET} -Iinclude/mach/${TARGET}
16 years ago
CFLAGS=$(INCLUDE) -fno-builtin -fomit-frame-pointer -fno-pic -mno-abicalls \
-Wall
ASFLAGS=-xassembler-with-cpp -traditional-cpp
LDFLAGS=--omagic -nostartfiles -nostdlib --discard-all --strip-all \
-Ttext ${TEXTADDR} --entry _start
OBJECTS=main.o printf.o elf_loader.o
LINKOBJ=${OBJECTS} $(MACHDIR)/promlib.o $(MACHDIR)/start.o #$(MACHDIR)/platform.o
THISFLAGS='LDFLAGS=$(LDFLAGS)' 'ASFLAGS=$(ASFLAGS)' \
'CROSS_COMPILE=$(CROSS_COMPILE)' 'CFLAGS=$(CFLAGS)' 'CC=$(CC)'
16 years ago
all: ${OBJECTS} ${PROG}
${PROG}: sub ${OBJECTS}
${CC} ${LDFLAGS} ${LINKOBJ} -o ${PROG}.elf
16 years ago
${RAW} ${PROG}.elf ${PROG}.bin
.c.o:
${CC} ${CFLAGS} -c $<
.S.o:
${CC} ${CFLAGS} ${ASFLAGS} -c $<
sub:
@for i in $(MACHDIR); do \
echo "Making all in $$i..."; \
(cd $$i; $(MAKE) $(MFLAGS) $(THISFLAGS) all); done
(cd second/; $(MAKE) $(MFLAGS))
subclean:
@for i in $(MACHDIR); do \
echo "Cleaning all in $$i..."; \
(cd $$i; $(MAKE) $(MFLAGS) clean); done
(cd second/; $(MAKE) $(MFLAGS) clean)
clean: subclean
-rm -f *.o
-rm -f ${PROG}.elf
-rm -f ${PROG}.bin