11bc15386SPeter Tyser# 21bc15386SPeter Tyser# (C) Copyright 2000-2006 31bc15386SPeter Tyser# Wolfgang Denk, DENX Software Engineering, wd@denx.de. 41bc15386SPeter Tyser# 51bc15386SPeter Tyser# See file CREDITS for list of people who contributed to this 61bc15386SPeter Tyser# project. 71bc15386SPeter Tyser# 81bc15386SPeter Tyser# This program is free software; you can redistribute it and/or 91bc15386SPeter Tyser# modify it under the terms of the GNU General Public License as 101bc15386SPeter Tyser# published by the Free Software Foundation; either version 2 of 111bc15386SPeter Tyser# the License, or (at your option) any later version. 121bc15386SPeter Tyser# 131bc15386SPeter Tyser# This program is distributed in the hope that it will be useful, 141bc15386SPeter Tyser# but WITHOUT ANY WARRANTY; without even the implied warranty of 151bc15386SPeter Tyser# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 161bc15386SPeter Tyser# GNU General Public License for more details. 171bc15386SPeter Tyser# 181bc15386SPeter Tyser# You should have received a copy of the GNU General Public License 191bc15386SPeter Tyser# along with this program; if not, write to the Free Software 201bc15386SPeter Tyser# Foundation, Inc., 59 Temple Place, Suite 330, Boston, 211bc15386SPeter Tyser# MA 02111-1307 USA 221bc15386SPeter Tyser# 231bc15386SPeter Tyser 241bc15386SPeter Tyserifeq ($(ARCH),ppc) 251bc15386SPeter TyserLOAD_ADDR = 0x40000 261bc15386SPeter Tyserendif 271bc15386SPeter Tyser 281bc15386SPeter Tyserifeq ($(ARCH),i386) 291bc15386SPeter TyserLOAD_ADDR = 0x40000 301bc15386SPeter Tyserendif 311bc15386SPeter Tyser 321bc15386SPeter Tyserifeq ($(ARCH),arm) 331bc15386SPeter Tyserifeq ($(BOARD),omap2420h4) 341bc15386SPeter TyserLOAD_ADDR = 0x80300000 351bc15386SPeter Tyserelse 3661c68ae0SMichael Evansifeq ($(SOC),omap3) 371bc15386SPeter TyserLOAD_ADDR = 0x80300000 381bc15386SPeter Tyserelse 391bc15386SPeter TyserLOAD_ADDR = 0xc100000 401bc15386SPeter Tyserendif 411bc15386SPeter Tyserendif 421bc15386SPeter Tyserendif 431bc15386SPeter Tyser 441bc15386SPeter Tyserifeq ($(ARCH),mips) 451bc15386SPeter TyserLOAD_ADDR = 0x80200000 -T mips.lds 461bc15386SPeter Tyserendif 471bc15386SPeter Tyser 481bc15386SPeter Tyserifeq ($(ARCH),nios) 491bc15386SPeter TyserLOAD_ADDR = 0x00800000 -L $(gcclibdir)/m32 -T nios.lds 501bc15386SPeter Tyserendif 511bc15386SPeter Tyser 521bc15386SPeter Tyserifeq ($(ARCH),nios2) 531bc15386SPeter TyserLOAD_ADDR = 0x02000000 -L $(gcclibdir) -T nios2.lds 541bc15386SPeter Tyserendif 551bc15386SPeter Tyser 561bc15386SPeter Tyserifeq ($(ARCH),m68k) 571bc15386SPeter TyserLOAD_ADDR = 0x20000 -L $(clibdir) 581bc15386SPeter Tyserendif 591bc15386SPeter Tyser 601bc15386SPeter Tyserifeq ($(ARCH),microblaze) 611bc15386SPeter TyserLOAD_ADDR = 0x80F00000 621bc15386SPeter Tyserendif 631bc15386SPeter Tyser 641bc15386SPeter Tyserifeq ($(ARCH),blackfin) 651bc15386SPeter TyserLOAD_ADDR = 0x1000 661bc15386SPeter Tyserendif 671bc15386SPeter Tyser 681bc15386SPeter Tyserifeq ($(ARCH),avr32) 691bc15386SPeter TyserLOAD_ADDR = 0x00000000 701bc15386SPeter Tyserendif 711bc15386SPeter Tyser 721bc15386SPeter Tyserifeq ($(ARCH),sh) 731bc15386SPeter TyserLOAD_ADDR = 0x8C000000 741bc15386SPeter Tyserifeq ($(CPU),sh2) 751bc15386SPeter TyserBIG_ENDIAN=y 761bc15386SPeter Tyserendif 771bc15386SPeter Tyserendif 781bc15386SPeter Tyser 791bc15386SPeter Tyserifeq ($(ARCH),sparc) 801bc15386SPeter TyserLOAD_ADDR = 0x00000000 -L $(gcclibdir) -T sparc.lds 811bc15386SPeter Tyserendif 821bc15386SPeter Tyser 831bc15386SPeter Tyserinclude $(TOPDIR)/config.mk 841bc15386SPeter Tyser 851bc15386SPeter TyserELF = hello_world 861bc15386SPeter TyserSREC = hello_world.srec 871bc15386SPeter TyserBIN = hello_world.bin 881bc15386SPeter Tyser 89*65f6f07bSMike FrysingerELF += atmel_df_pow2 90*65f6f07bSMike FrysingerSREC += atmel_df_pow2.srec 91*65f6f07bSMike FrysingerBIN += atmel_df_pow2.bin 92*65f6f07bSMike Frysinger 931bc15386SPeter Tyserifeq ($(CPU),mpc8xx) 941bc15386SPeter TyserELF += test_burst 951bc15386SPeter TyserSREC += test_burst.srec 961bc15386SPeter TyserBIN += test_burst.bin 971bc15386SPeter Tyserendif 981bc15386SPeter Tyser 991bc15386SPeter Tyserifeq ($(ARCH),i386) 1001bc15386SPeter TyserELF += 82559_eeprom 1011bc15386SPeter TyserSREC += 82559_eeprom.srec 1021bc15386SPeter TyserBIN += 82559_eeprom.bin 1031bc15386SPeter Tyserendif 1041bc15386SPeter Tyser 1051bc15386SPeter Tyserifeq ($(ARCH),ppc) 1061bc15386SPeter TyserELF += sched 1071bc15386SPeter TyserSREC += sched.srec 1081bc15386SPeter TyserBIN += sched.bin 1091bc15386SPeter Tyserendif 1101bc15386SPeter Tyser 1111bc15386SPeter Tyserifeq ($(ARCH),blackfin) 1121bc15386SPeter TyserBFIN_BIN = smc91111_eeprom smc911x_eeprom 1131bc15386SPeter TyserELF += $(BFIN_BIN) 1141bc15386SPeter TyserSREC += $(addsuffix .srec,$(BFIN_BIN)) 1151bc15386SPeter TyserBIN += $(addsuffix .bin,$(BFIN_BIN)) 1161bc15386SPeter Tyserendif 1171bc15386SPeter Tyser 1181bc15386SPeter Tyser# The following example is pretty 8xx specific... 1191bc15386SPeter Tyserifeq ($(CPU),mpc8xx) 1201bc15386SPeter TyserELF += timer 1211bc15386SPeter TyserSREC += timer.srec 1221bc15386SPeter TyserBIN += timer.bin 1231bc15386SPeter Tyserendif 1241bc15386SPeter Tyser 1251bc15386SPeter Tyser# The following example is 8260 specific... 1261bc15386SPeter Tyserifeq ($(CPU),mpc8260) 1271bc15386SPeter TyserELF += mem_to_mem_idma2intr 1281bc15386SPeter TyserSREC += mem_to_mem_idma2intr.srec 1291bc15386SPeter TyserBIN += mem_to_mem_idma2intr.bin 1301bc15386SPeter Tyserendif 1311bc15386SPeter Tyser 1321bc15386SPeter Tyser# Demo for 52xx IRQs 1331bc15386SPeter Tyserifeq ($(CPU),mpc5xxx) 1341bc15386SPeter TyserELF += interrupt 1351bc15386SPeter TyserSREC += interrupt.srec 1361bc15386SPeter TyserBIN += interrupt.bin 1371bc15386SPeter Tyserendif 1381bc15386SPeter Tyser 1391bc15386SPeter Tyser# Utility for resetting i82559 EEPROM 1401bc15386SPeter Tyserifeq ($(BOARD),oxc) 1411bc15386SPeter TyserELF += eepro100_eeprom 1421bc15386SPeter TyserSREC += eepro100_eeprom.srec 1431bc15386SPeter TyserBIN += eepro100_eeprom.bin 1441bc15386SPeter Tyserendif 1451bc15386SPeter Tyser 1461bc15386SPeter Tyserifeq ($(BIG_ENDIAN),y) 1471bc15386SPeter TyserEX_LDFLAGS += -EB 1481bc15386SPeter Tyserendif 1491bc15386SPeter Tyser 1501bc15386SPeter TyserCOBJS := $(SREC:.srec=.o) 1511bc15386SPeter Tyser 1521bc15386SPeter TyserLIB = $(obj)libstubs.a 1531bc15386SPeter TyserLIBAOBJS= 1541bc15386SPeter Tyserifeq ($(ARCH),ppc) 1551bc15386SPeter TyserLIBAOBJS+= $(ARCH)_longjmp.o $(ARCH)_setjmp.o 1561bc15386SPeter Tyserendif 1571bc15386SPeter Tyserifeq ($(CPU),mpc8xx) 1581bc15386SPeter TyserLIBAOBJS+= test_burst_lib.o 1591bc15386SPeter Tyserendif 1601bc15386SPeter TyserLIBCOBJS= stubs.o 1611bc15386SPeter Tyser 1621bc15386SPeter TyserLIBOBJS = $(addprefix $(obj),$(LIBAOBJS) $(LIBCOBJS)) 1631bc15386SPeter Tyser 1641bc15386SPeter TyserSRCS := $(COBJS:.o=.c) $(LIBCOBJS:.o=.c) $(if $(LIBAOBJS),$(LIBAOBJS:.o=.S)) 1651bc15386SPeter TyserOBJS := $(addprefix $(obj),$(COBJS)) 1661bc15386SPeter TyserELF := $(addprefix $(obj),$(ELF)) 1671bc15386SPeter TyserBIN := $(addprefix $(obj),$(BIN)) 1681bc15386SPeter TyserSREC := $(addprefix $(obj),$(SREC)) 1691bc15386SPeter Tyser 1701bc15386SPeter Tysergcclibdir := $(shell dirname `$(CC) -print-libgcc-file-name`) 1711bc15386SPeter Tyserclibdir := $(shell dirname `$(CC) $(CFLAGS) -print-file-name=libc.a`) 1721bc15386SPeter Tyser 1731bc15386SPeter TyserCPPFLAGS += -I.. 1741bc15386SPeter Tyser 1751bc15386SPeter Tyserall: $(obj).depend $(OBJS) $(LIB) $(SREC) $(BIN) $(ELF) 1761bc15386SPeter Tyser 1771bc15386SPeter Tyser######################################################################### 1781bc15386SPeter Tyser$(LIB): $(obj).depend $(LIBOBJS) 1791bc15386SPeter Tyser $(AR) $(ARFLAGS) $@ $(LIBOBJS) 1801bc15386SPeter Tyser 1811bc15386SPeter Tyser$(ELF): 1821bc15386SPeter Tyser$(obj)%: $(obj)%.o $(LIB) 1831bc15386SPeter Tyser $(LD) -g $(EX_LDFLAGS) -Ttext $(LOAD_ADDR) \ 1841bc15386SPeter Tyser -o $@ -e $(SYM_PREFIX)$(notdir $(<:.o=)) $< $(LIB) \ 1851bc15386SPeter Tyser -L$(gcclibdir) -lgcc 1861bc15386SPeter Tyser 1871bc15386SPeter Tyser$(SREC): 1881bc15386SPeter Tyser$(obj)%.srec: $(obj)% 1891bc15386SPeter Tyser $(OBJCOPY) -O srec $< $@ 2>/dev/null 1901bc15386SPeter Tyser 1911bc15386SPeter Tyser$(BIN): 1921bc15386SPeter Tyser$(obj)%.bin: $(obj)% 1931bc15386SPeter Tyser $(OBJCOPY) -O binary $< $@ 2>/dev/null 1941bc15386SPeter Tyser 1951bc15386SPeter Tyser######################################################################### 1961bc15386SPeter Tyser 1971bc15386SPeter Tyser# defines $(obj).depend target 1981bc15386SPeter Tyserinclude $(SRCTREE)/rules.mk 1991bc15386SPeter Tyser 2001bc15386SPeter Tysersinclude $(obj).depend 2011bc15386SPeter Tyser 2021bc15386SPeter Tyser######################################################################### 203