📄 common.make
字号:
#
# Copyright (C) ARM Limited 1998. All rights reserved.
# Makefile for uHAL Demonstration programs.
# File: common.make
# Assumes that uHAL/rules.in are somehow included
#
ifeq ($(ADS_BUILD),1)
ADEFS := $(ADEFS)
else
ADEFS := $(ADEFS) -apcs 3/32bit
endif
CDEFS := $(CDEFS)
SOURCES = ../../Sources
INCLUDEFILES = $(UHAL_INCLUDE_FILES)
INCL := $(INCL) -I$(SOURCES)/ -I.
$(TARGET)_all: $(TARGET)/bubble.axf \
$(TARGET)/hello.axf $(TARGET)/sieve.axf \
$(TARGET)/queens.axf \
$(TARGET)/heap.axf $(TARGET)/led.axf \
$(TARGET)/system-timer.axf $(TARGET)/io.axf \
$(TARGET)/simple-caches.axf \
$(TARGET)/bubble.aifbin \
$(TARGET)/hello.aifbin $(TARGET)/sieve.aifbin \
$(TARGET)/queens.aifbin \
$(TARGET)/heap.aifbin $(TARGET)/led.aifbin \
$(TARGET)/system-timer.aifbin $(TARGET)/io.aifbin \
$(TARGET)/simple-caches.aifbin \
$(TARGET)/bubble.bin \
$(TARGET)/hello.bin $(TARGET)/sieve.bin \
$(TARGET)/queens.bin \
$(TARGET)/heap.bin $(TARGET)/led.bin \
$(TARGET)/system-timer.bin $(TARGET)/io.bin \
$(TARGET)/simple-caches.bin
#------------------------------------------------------------
# The flavour of uHAL library that it depends upon
#------------------------------------------------------------
$(UHALLIB): $(UHAL_SOURCE_FILES)
(echo '*** making uHAL' ; cd $(UHAL_BASE)/Build/$(BOARD_NAME).b; $(MAKE) TARGET=$(TARGET))
#************************************************************
# Header file for all tests.
#************************************************************
$(TARGET)/pr_head.o : $(SOURCES)/pr_head.c $(SYSTEM_INCLUDE_FILES)
$(ARMCC) $(CFL) $(CDEFS) -c $(INCL) $< -o $*.o
#************************************************************
# Initialisation stuff
#************************************************************
$(TARGET)/target.o : $(SOURCES)/target.c $(SYSTEM_INCLUDE_FILES)
$(ARMCC) $(CDEFS) -c $(INCL) $< -o $*.o
#************************************************************
# Interrupt test program
#************************************************************
$(TARGET)/tick.o : $(SOURCES)/tick.c $(SYSTEM_INCLUDE_FILES)
$(ARMCC) $(CDEFS) -c $(INCL) $< -o $*.o
$(TARGET)/tick.axf: $(TARGET)/tick.o $(TARGET)/pr_head.o $(UHALLIB)
$(ARMLINK) $(LDEFS) $(SYM_LIST) $(TARGET)/tick.sym $(UHALLIB) \
$(TARGET)/tick.o $(TARGET)/pr_head.o -o $(TARGET)/tick.axf
$(TARGET)/tick.aifbin: $(TARGET)/tick.axf
$(FROMELF) $(ELFDEFS) $(TARGET)/tick.axf -aifbin $(TARGET)/tick.aifbin
$(TARGET)/tick.bin: $(TARGET)/tick.axf
$(FROMELF) $(ELFDEFS) $(TARGET)/tick.axf -bin $(TARGET)/tick.bin
#************************************************************
# Hello world program.
#************************************************************
$(TARGET)/hello.o : $(SOURCES)/hello.c $(SYSTEM_INCLUDE_FILES)
$(ARMCC) $(CFL) $(CDEFS) -c $(INCL) $< -o $*.o
$(TARGET)/hello.axf: $(TARGET)/hello.o $(TARGET)/pr_head.o $(UHALLIB)
$(ARMLINK) $(LDEFS) $(SYM_LIST) $(TARGET)/hello.sym $(UHALLIB) \
$(TARGET)/hello.o $(TARGET)/pr_head.o -o $(TARGET)/hello.axf
$(TARGET)/hello.aifbin: $(TARGET)/hello.axf
$(FROMELF) $(ELFDEFS) $(TARGET)/hello.axf -aifbin $(TARGET)/hello.aifbin
$(TARGET)/hello.bin: $(TARGET)/hello.axf
$(FROMELF) $(ELFDEFS) $(TARGET)/hello.axf -bin $(TARGET)/hello.bin
#************************************************************
# LED flashing program
#************************************************************
$(TARGET)/led.o : $(SOURCES)/led.c $(SYSTEM_INCLUDE_FILES)
$(ARMCC) $(CFL) $(CDEFS) -c $(INCL) $< -o $*.o
ifeq ($(TARGET),semihosted)
LEDOBJS=$(TARGET)/led.o $(TARGET)/pr_head.o
else
LEDOBJS=$(TARGET)/led.o
endif
$(TARGET)/led.axf: $(LEDOBJS) $(UHALLIB)
$(ARMLINK) $(LDEFS) $(SYM_LIST) $(TARGET)/led.sym $(UHALLIB) $(LEDOBJS) \
-o $(TARGET)/led.axf
$(TARGET)/led.aifbin: $(TARGET)/led.axf
$(FROMELF) $(ELFDEFS) $(TARGET)/led.axf -aifbin $(TARGET)/led.aifbin
$(TARGET)/led.bin: $(TARGET)/led.axf
$(FROMELF) $(ELFDEFS) $(TARGET)/led.axf -bin $(TARGET)/led.bin
#************************************************************
# IO routines
#************************************************************
$(TARGET)/io.o : $(SOURCES)/io.c $(SYSTEM_INCLUDE_FILES)
$(ARMCC) $(CFL) $(CDEFS) -c $(INCL) $< -o $*.o
$(TARGET)/io.axf: $(TARGET)/io.o $(TARGET)/pr_head.o $(UHALLIB)
$(ARMLINK) $(LDEFS) $(SYM_LIST) $(TARGET)/io.sym $(UHALLIB) \
$(TARGET)/io.o $(TARGET)/pr_head.o -o $(TARGET)/io.axf
$(TARGET)/io.aifbin: $(TARGET)/io.axf
$(FROMELF) $(ELFDEFS) $(TARGET)/io.axf -aifbin $(TARGET)/io.aifbin
$(TARGET)/io.bin: $(TARGET)/io.axf
$(FROMELF) $(ELFDEFS) $(TARGET)/io.axf -bin $(TARGET)/io.bin
#************************************************************
# Cache routines
#************************************************************
$(TARGET)/simple-caches.o : $(SOURCES)/simple-caches.c $(SYSTEM_INCLUDE_FILES)
$(ARMCC) $(CFL) $(CDEFS) -c $(INCL) $< -o $*.o
$(TARGET)/simple-caches.axf: \
$(TARGET)/simple-caches.o $(TARGET)/pr_head.o $(UHALLIB)
$(ARMLINK) $(LDEFS) $(SYM_LIST) $(TARGET)/simple-caches.sym $(UHALLIB) \
$(TARGET)/simple-caches.o $(TARGET)/pr_head.o -o $(TARGET)/simple-caches.axf
$(TARGET)/simple-caches.aifbin: $(TARGET)/simple-caches.axf
$(FROMELF) $(ELFDEFS) $(TARGET)/simple-caches.axf -aifbin $(TARGET)/simple-caches.aifbin
$(TARGET)/simple-caches.bin: $(TARGET)/simple-caches.axf
$(FROMELF) $(ELFDEFS) $(TARGET)/simple-caches.axf -bin $(TARGET)/simple-caches.bin
#************************************************************
# Heap allocator/deallocator
#************************************************************
$(TARGET)/heap.o : $(SOURCES)/heap.c $(SYSTEM_INCLUDE_FILES)
$(ARMCC) $(CFL) $(CDEFS) -c $(INCL) $< -o $*.o
$(TARGET)/heap.axf: $(TARGET)/heap.o $(TARGET)/pr_head.o $(UHALLIB)
$(ARMLINK) $(LDEFS) $(SYM_LIST) $(TARGET)/heap.sym $(UHALLIB) \
$(TARGET)/heap.o $(TARGET)/pr_head.o -o $(TARGET)/heap.axf
$(TARGET)/heap.aifbin: $(TARGET)/heap.axf
$(FROMELF) $(ELFDEFS) $(TARGET)/heap.axf -aifbin $(TARGET)/heap.aifbin
$(TARGET)/heap.bin: $(TARGET)/heap.axf
$(FROMELF) $(ELFDEFS) $(TARGET)/heap.axf -bin $(TARGET)/heap.bin
#************************************************************
# System-Timer example program
#************************************************************
$(TARGET)/system-timer.o : $(SOURCES)/system-timer.c $(SYSTEM_INCLUDE_FILES)
$(ARMCC) $(CFL) $(CDEFS) -c $(INCL) $< -o $*.o
$(TARGET)/system-timer.axf: $(TARGET)/system-timer.o $(TARGET)/pr_head.o $(UHALLIB)
$(ARMLINK) $(LDEFS) $(SYM_LIST) $(TARGET)/system-timer.sym $(UHALLIB) \
$(TARGET)/system-timer.o $(TARGET)/pr_head.o -o $(TARGET)/system-timer.axf
$(TARGET)/system-timer.aifbin: $(TARGET)/system-timer.axf
$(FROMELF) $(ELFDEFS) $(TARGET)/system-timer.axf -aifbin $(TARGET)/system-timer.aifbin
$(TARGET)/system-timer.bin: $(TARGET)/system-timer.axf
$(FROMELF) $(ELFDEFS) $(TARGET)/system-timer.axf -bin $(TARGET)/system-timer.bin
#************************************************************
# Test harness to test programs under different mmu regimes.
#************************************************************
$(TARGET)/test.o : $(SOURCES)/test.c $(SYSTEM_INCLUDE_FILES)
$(ARMCC) $(CFL) $(CDEFS) -c $(INCL) $< -o $*.o
#************************************************************
# The tests themselves.
#************************************************************
#------------------------------------------------------------
# Bubble test.
#------------------------------------------------------------
$(TARGET)/bubble.o: $(SOURCES)/bubble.c $(SYSTEM_INCLUDE_FILES)
$(ARMCC) $(CDEFS) -c $(INCL) $< -o $*.o
$(TARGET)/bubble.axf: $(TARGET)/test.o $(TARGET)/target.o $(TARGET)/bubble.o \
$(UHALLIB) $(TARGET)/pr_head.o
$(ARMLINK) $(LDEFS) $(SYM_LIST) $(TARGET)/bubble.sym $(UHALLIB) $(TARGET)/test.o \
$(TARGET)/pr_head.o $(TARGET)/target.o $(TARGET)/bubble.o \
-o $(TARGET)/bubble.axf
$(TARGET)/bubble.aifbin: $(TARGET)/bubble.axf
$(FROMELF) $(ELFDEFS) $(TARGET)/bubble.axf -aifbin $(TARGET)/bubble.aifbin
$(TARGET)/bubble.bin: $(TARGET)/bubble.axf
$(FROMELF) $(ELFDEFS) $(TARGET)/bubble.axf -bin $(TARGET)/bubble.bin
#------------------------------------------------------------
# Sieve test.
#------------------------------------------------------------
$(TARGET)/sieve.o: $(SOURCES)/sieve.c $(SYSTEM_INCLUDE_FILES)
$(ARMCC) $(CDEFS) -c $(INCL) $< -o $*.o
$(TARGET)/sieve.axf: $(TARGET)/test.o $(TARGET)/target.o $(TARGET)/sieve.o \
$(TARGET)/pr_head.o $(UHALLIB)
$(ARMLINK) $(LDEFS) $(SYM_LIST) $(TARGET)/sieve.sym $(TARGET)/test.o \
$(TARGET)/target.o $(TARGET)/pr_head.o $(TARGET)/sieve.o \
$(UHALLIB) -o $(TARGET)/sieve.axf
$(TARGET)/sieve.aifbin: $(TARGET)/sieve.axf
$(FROMELF) $(ELFDEFS) $(TARGET)/sieve.axf -aifbin $(TARGET)/sieve.aifbin
$(TARGET)/sieve.bin: $(TARGET)/sieve.axf
$(FROMELF) $(ELFDEFS) $(TARGET)/sieve.axf -bin $(TARGET)/sieve.bin
#------------------------------------------------------------
# Sieve 500 test.
#------------------------------------------------------------
$(TARGET)/sieve500.o: $(SOURCES)/sieve500.c $(SYSTEM_INCLUDE_FILES)
$(ARMCC) $(CFL) $(CDEFS) -c $(INCL) $< -o $*.o
$(TARGET)/sieve500.axf: \
$(TARGET)/test.o $(TARGET)/target.o $(TARGET)/sieve500.o \
$(TARGET)/pr_head.o $(UHALLIB)
$(ARMLINK) $(LDEFS) $(SYM_LIST) $(TARGET)/sieve500.sym $(UHALLIB) \
$(TARGET)/test.o $(TARGET)/target.o $(TARGET)/pr_head.o \
$(TARGET)/sieve500.o -o $(TARGET)/sieve500.axf
$(TARGET)/sieve500.aifbin: $(TARGET)/sieve500.axf
$(FROMELF) $(ELFDEFS) $(TARGET)/sieve500.axf -aifbin $(TARGET)/sieve500.aifbin
$(TARGET)/sieve500.bin: $(TARGET)/sieve500.axf
$(FROMELF) $(ELFDEFS) $(TARGET)/sieve500.axf -bin $(TARGET)/sieve500.bin
#------------------------------------------------------------
# Queens test.
#------------------------------------------------------------
$(TARGET)/queens.o: $(SOURCES)/queens.c $(SYSTEM_INCLUDE_FILES)
$(ARMCC) $(CDEFS) -c $(INCL) $< -o $*.o
$(TARGET)/queens.axf: \
$(TARGET)/test.o $(TARGET)/target.o $(TARGET)/queens.o \
$(TARGET)/pr_head.o $(UHALLIB)
$(ARMLINK) $(LDEFS) $(SYM_LIST) $(TARGET)/queens.sym $(TARGET)/test.o \
$(TARGET)/target.o $(TARGET)/pr_head.o \
$(TARGET)/queens.o $(UHALLIB) -o $(TARGET)/queens.axf
$(TARGET)/queens.aifbin: $(TARGET)/queens.axf
$(FROMELF) $(ELFDEFS) $(TARGET)/queens.axf -aifbin $(TARGET)/queens.aifbin
$(TARGET)/queens.bin: $(TARGET)/queens.axf
$(FROMELF) $(ELFDEFS) $(TARGET)/queens.axf -bin $(TARGET)/queens.bin
#************************************************************
# clean up the development tree.
#************************************************************
$(TARGET)_clean: # clean up
rm -f *~
rm -f $(TARGET)/*.o
rm -f $(TARGET)/*.axf
rm -f $(TARGET)/*.sym
rm -f $(TARGET)/*.bin
rm -f $(TARGET)/*.aifbin
rm -f $(TARGET)/*.elf
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -