1# 2# (C) Copyright 2000-2006 3# Wolfgang Denk, DENX Software Engineering, wd@denx.de. 4# 5# See file CREDITS for list of people who contributed to this 6# project. 7# 8# This program is free software; you can redistribute it and/or 9# modify it under the terms of the GNU General Public License as 10# published by the Free Software Foundation; either version 2 of 11# the License, or (at your option) any later version. 12# 13# This program is distributed in the hope that it will be useful, 14# but WITHOUT ANY WARRANTY; without even the implied warranty of 15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16# GNU General Public License for more details. 17# 18# You should have received a copy of the GNU General Public License 19# along with this program; if not, write to the Free Software 20# Foundation, Inc., 59 Temple Place, Suite 330, Boston, 21# MA 02111-1307 USA 22# 23 24include $(TOPDIR)/config.mk 25 26ELF = hello_world 27SREC = hello_world.srec 28BIN = hello_world.bin 29 30ELF += atmel_df_pow2 31SREC += atmel_df_pow2.srec 32BIN += atmel_df_pow2.bin 33 34ifeq ($(CPU),mpc8xx) 35ELF += test_burst 36SREC += test_burst.srec 37BIN += test_burst.bin 38endif 39 40ifeq ($(ARCH),i386) 41ELF += 82559_eeprom 42SREC += 82559_eeprom.srec 43BIN += 82559_eeprom.bin 44endif 45 46ifeq ($(ARCH),ppc) 47ELF += sched 48SREC += sched.srec 49BIN += sched.bin 50endif 51 52ifeq ($(ARCH),blackfin) 53BFIN_BIN = smc91111_eeprom smc911x_eeprom 54ELF += $(BFIN_BIN) 55SREC += $(addsuffix .srec,$(BFIN_BIN)) 56BIN += $(addsuffix .bin,$(BFIN_BIN)) 57endif 58 59# The following example is pretty 8xx specific... 60ifeq ($(CPU),mpc8xx) 61ELF += timer 62SREC += timer.srec 63BIN += timer.bin 64endif 65 66# The following example is 8260 specific... 67ifeq ($(CPU),mpc8260) 68ELF += mem_to_mem_idma2intr 69SREC += mem_to_mem_idma2intr.srec 70BIN += mem_to_mem_idma2intr.bin 71endif 72 73# Demo for 52xx IRQs 74ifeq ($(CPU),mpc5xxx) 75ELF += interrupt 76SREC += interrupt.srec 77BIN += interrupt.bin 78endif 79 80# Utility for resetting i82559 EEPROM 81ifeq ($(BOARD),oxc) 82ELF += eepro100_eeprom 83SREC += eepro100_eeprom.srec 84BIN += eepro100_eeprom.bin 85endif 86 87 88COBJS := $(SREC:.srec=.o) 89 90LIB = $(obj)libstubs.a 91LIBAOBJS= 92ifeq ($(ARCH),ppc) 93LIBAOBJS+= $(ARCH)_longjmp.o $(ARCH)_setjmp.o 94endif 95ifeq ($(CPU),mpc8xx) 96LIBAOBJS+= test_burst_lib.o 97endif 98LIBCOBJS= stubs.o 99 100LIBOBJS = $(addprefix $(obj),$(LIBAOBJS) $(LIBCOBJS)) 101 102SRCS := $(COBJS:.o=.c) $(LIBCOBJS:.o=.c) $(if $(LIBAOBJS),$(LIBAOBJS:.o=.S)) 103OBJS := $(addprefix $(obj),$(COBJS)) 104ELF := $(addprefix $(obj),$(ELF)) 105BIN := $(addprefix $(obj),$(BIN)) 106SREC := $(addprefix $(obj),$(SREC)) 107 108gcclibdir := $(shell dirname `$(CC) -print-libgcc-file-name`) 109 110CPPFLAGS += -I.. 111 112all: $(obj).depend $(OBJS) $(LIB) $(SREC) $(BIN) $(ELF) 113 114######################################################################### 115$(LIB): $(obj).depend $(LIBOBJS) 116 $(AR) $(ARFLAGS) $@ $(LIBOBJS) 117 118$(ELF): 119$(obj)%: $(obj)%.o $(LIB) 120 $(LD) -g -Ttext $(STANDALONE_LOAD_ADDR) \ 121 -o $@ -e $(SYM_PREFIX)$(notdir $(<:.o=)) $< $(LIB) \ 122 -L$(gcclibdir) -lgcc 123 124$(SREC): 125$(obj)%.srec: $(obj)% 126 $(OBJCOPY) -O srec $< $@ 2>/dev/null 127 128$(BIN): 129$(obj)%.bin: $(obj)% 130 $(OBJCOPY) -O binary $< $@ 2>/dev/null 131 132######################################################################### 133 134# defines $(obj).depend target 135include $(SRCTREE)/rules.mk 136 137sinclude $(obj).depend 138 139######################################################################### 140