################################################################################
# Copyright (c) 2008 XuYizhu(xuyizhu@live.cn)
# All rights reserved.
################################################################################
# Description: makefile模板,使用ADS1.2编译器
# Data : 2008.4.29
# Author : 徐亦朱
# Version : 1.1
##################################################
# Modify : 2008.4.30, XuYizhu
# Decription : 修正了指令区排列方式
# Version : 1.2
############################## 宏变量区 ########################################
PAT = /C/ADSv1_2/Bin
AR = $(PAT)/armar
AS = $(PAT)/armasm
CC = $(PAT)/armcc
#CXX
CPP = gcc
LD = $(PAT)/armlink
RM = rm -f
PS = c
OBJTOOL = $(PAT)/fromelf
#ARFLAGS
ASFLAGS = -keep -g
CFLAGS = -apcs //nointerwork/noropi/norwpi/noswstackcheck -ansic -cpu ARM7TDMI -g+ -O1 -Ono_known_library /
-zo -littleend
#CXXFLAGS
CPPFLAGS=
LDFLAGS = -info totals -entry 0x80000000 -scatter ./mem_a.scf
DESTINATION := test
SOURCES := $(wildcard *.$(PS))
OBJS := $(patsubst %.$(PS),%.o,$(SOURCES))
DEPS := $(patsubst %.$(PS),%.d,$(SOURCES))
############################## 搜索路径 ########################################
############################## 规则 ############################################
%.bin: %.axf
@echo "### 生成BIN档 ..."
$(OBJTOOL) -c -bin -output $@ $<
%.hex: %.axf
@echo "### 生成HEX文件 ..."
$(OBJTOOL) -c -i32 -output $@ $<
%.d: %.c
@echo "### 生成自动依赖关系 ...";/
set -e; $(RM) $@;/
$(CPP) -MM $(CPPFLAGS) $< > $@.$$$$;/
sed 's,/($*/)/.o[ :]*,/1.o $@ :,g'< $@.$$$$ > $@;/
$(RM) $@.$$$$
%.o: %.s
@echo "### 汇编中 ..."
$(AS) $(ASFLAGS) -o $@ $<
%.o: %.c
@echo "### 编译中 ..."
$(CC) $(CFLAGS) -c -o $@ $<
############################## 指令区 ##########################################
.PHONY: all bin hex deps objs clean rebuild
all: $(DESTINATION).axf $(DESTINATION).bin $(DESTINATION).hex
$(DESTINATION).axf: $(OBJS) Startup.o IRQ.o
@echo "### 连接中 ..."
$(LD) $(LDFLAGS) -o $@ $^
deps: $(DEPS)
-include $(DEPS)
objs: $(OBJS) Startup.o IRQ.o
clean:
@echo "### 清除中间文件 ..."
$(RM) *.o *.d
clean_all:
$(RM) *.o *.d $(DESTINATION).axf $(DESTINATION).bin $(DESTINATION).hex
rebuild: clean_all all
############################## END #############################################