# ***********************************************************************
# *        File:  makefile
# *     Version:  1.0.0
# *   Copyright:  2013 (c) Guo Wenxue <guowenxue@gmail.com>
# * Description:  Makefile used to cross compile the ASM and C source code
# *   ChangeLog:  1, Release initial version on "Mon Feb 25 23:03:35 CST 2013"
# *
# ***********************************************************************

BINAME = bootstrap-s3c6410
TEXTBASE = 0x0c000000

CROSS = /opt/buildroot-2012.08/arm1176jzfs/usr/bin/arm-linux-
#CROSS = /opt/crosstool/arm-arm1176jzfs-linux-gnueabi/bin/arm-linux-
CC      = $(CROSS)gcc
LD      = $(CROSS)ld
AR      = $(CROSS)ar
OBJCOPY = $(CROSS)objcopy
OBJDUMP = $(CROSS)objdump
STRIP   = $(CROSS)strip
READELF = $(CROSS)readelf

CFLAGS  = -g -O2 -Wall -nostdinc -nostdlib -fno-builtin -Iinclude
AFLAGS  = $(CFLAGS) -D__ASSEMBLY__

LDSCRIPT = bootstrap.lds
LDFLAGS  = -nostartfiles -T $(LDSCRIPT) -Ttext $(TEXTBASE)

SRC_C   = $(wildcard *.c)
SRC_S   = $(wildcard *.S)
OBJ_C   = $(patsubst %.c,%.o,$(SRC_C)) 
OBJ_S   = $(patsubst %.S,%.o,$(SRC_S)) 

OBJ_ALL = $(OBJ_C) $(OBJ_S) 


.PHONY : all
all: ${OBJ_ALL}
	${LD} $(LDFLAGS) -o ${BINAME}.elf ${OBJ_ALL}
	${OBJCOPY} -O binary -S ${BINAME}.elf ${BINAME}.bin
	${OBJDUMP} -D ${BINAME}.elf > ${BINAME}.maps
	rm -f *.elf *.o

%.o: %.S
	        $(CC) $(AFLAGS) -c -o $@ $<
%.o: %.c
	        $(CC) $(CFLAGS) -c -o $@ $<

install:
	cp ${BINAME}.bin /tftp -f --reply=yes

clean:
	rm -f *.elf *.o *.maps
	rm -f ${BINAME}.bin
