# Makefile to compile OMAP3 PuppyBeagle BootLoader
#
# Copyright (c) 2010, Amarnath B Revanna, amarnath.revanna@gmail.com
###############################################################################
###############################################################################
# Final output binary name
###############################################################################
BINNAME = puppy_beagle
###############################################################################
# toolchain specific stuff
###############################################################################
PREFIX = arm-none-eabi-
CC = $(PREFIX)gcc
AR = $(PREFIX)ar
LD = $(PREFIX)ld
DISASM = $(PREFIX)objdump
BINARY = $(PREFIX)objcopy
RM = rm -f
###############################################################################
# ARM Architecture stuff
###############################################################################
ARM_CPU = cortex-a8
CC_ARM = -mcpu=$(ARM_CPU)
###############################################################################
###############################################################################
# compiler flags
###############################################################################
CC_COMPILER = -c
###############################################################################
###############################################################################
# Warnings
###############################################################################
CC_WARNINGS = -Wa,-EL
###############################################################################
# Includes
###############################################################################
CC_INCLUDE =
###############################################################################
# Need additional debug information?
###############################################################################
CC_DEBUG =
###############################################################################
# Produce listing of assembler output
###############################################################################
CC_LIST = -Wa,-a=$(patsubst %.o,%.lst,$@)
###############################################################################
###############################################################################
# => Resulting C-Flags
###############################################################################
CC_FLAGS = $(CC_ARM) \
$(CC_WARNINGS) \
$(CC_INCLUDE) \
$(CC_DEBUG)
CFLAGS = $(CC_FLAGS) $(CC_LIST) $(CC_COMPILER)
###############################################################################
###############################################################################
# LD Flags
##############################################################################
LDFLAGS = -Map $(patsubst %,%.map,$(BINNAME))
###############################################################################
###############################################################################
SOURCEFILES := *.S *.c Makefile
###############################################################################
###############################################################################
# Make-Rules
#
# "make" or "make default" : compile $(BINNAME)
# "make clean" : cleanup - remove all *.o and $(BINNAME)
# "make distclean" : same as clean, additonally remove all *~
###############################################################################
default: startup.o low_init.o sprint.o main.o i2c.o mmc.o
$(LD) $(LDFLAGS) -T PB.ld startup.o low_init.o sprint.o main.o i2c.o mmc.o -o $(BINNAME)
$(BINARY) -I elf32-little -O binary $(BINNAME) $(BINNAME).bin
$(RM) $(BINNAME)
startup.o:
$(CC) $(CFLAGS) -o startup.o startup.S
low_init.o:
$(CC) $(CFLAGS) -o low_init.o low_init.c
sprint.o:
$(CC) $(CFLAGS) -o sprint.o sprint.c
main.o:
$(CC) $(CFLAGS) -o main.o main.c
mmc.o:
$(CC) $(CFLAGS) -o mmc.o mmc.c
i2c.o:
$(CC) $(CFLAGS) -o i2c.o i2c.c
clean:
$(RM) *.o *.lst *.map $(BINNAME)
distclean:
$(RM) *.o *.lst *.map *.bin $(BINNAME) *~
No comments:
Post a Comment