| # *********************************************************************** | 
| # *        File:  makefile | 
| # *     Version:  1.0.0 | 
| # *   Copyright:  2011 (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 Mar 21 21:09:52 CST 2011" | 
| # * | 
| # *********************************************************************** | 
|   | 
| 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 | 
| AFLAGS  = $(CFLAGS) -D__ASSEMBLY__ | 
|   | 
| LDFLAGS  = -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 | 
|     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 | 
|     rm -f ${BINAME}.bin ${BINAME}.maps |