2 # (C) Copyright 2000-2006
3 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
5 # See file CREDITS for list of people who contributed to this
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.
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.
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,
24 include $(TOPDIR
)/config.mk
31 ELF-
$(CONFIG_SMC91111
) += smc91111_eeprom
32 ELF-
$(CONFIG_SMC911X
) += smc911x_eeprom
33 ELF-
$(CONFIG_SPI_FLASH_ATMEL
) += atmel_df_pow2
34 ELF-i386
+= 82559_eeprom
35 ELF-mpc5xxx
+= interrupt
36 ELF-mpc8xx
+= test_burst timer
37 ELF-mpc8260
+= mem_to_mem_idma2intr
39 ELF-oxc
+= eepro100_eeprom
42 # Some versions of make do not handle trailing white spaces properly;
43 # leading to build failures. The problem was found with GNU Make 3.80.
44 # Using 'strip' as a workaround for the problem.
46 ELF
:= $(strip $(ELF-y
) $(ELF-
$(ARCH
)) $(ELF-
$(BOARD
)) $(ELF-
$(CPU
)))
48 SREC
:= $(addsuffix .srec
,$(ELF
))
49 BIN
:= $(addsuffix .bin
,$(ELF
))
53 LIB
= $(obj
)libstubs.o
57 LIBAOBJS-ppc
+= $(ARCH
)_longjmp.o
$(ARCH
)_setjmp.o
58 LIBAOBJS-mpc8xx
+= test_burst_lib.o
59 LIBAOBJS
:= $(LIBAOBJS-
$(ARCH
)) $(LIBAOBJS-
$(CPU
))
63 LIBOBJS
= $(addprefix $(obj
),$(LIBAOBJS
) $(LIBCOBJS
))
65 SRCS
:= $(COBJS
:.o
=.c
) $(LIBCOBJS
:.o
=.c
) $(LIBAOBJS
:.o
=.S
)
66 OBJS
:= $(addprefix $(obj
),$(COBJS
))
67 ELF
:= $(addprefix $(obj
),$(ELF
))
68 BIN
:= $(addprefix $(obj
),$(BIN
))
69 SREC
:= $(addprefix $(obj
),$(SREC
))
71 gcclibdir
:= $(shell dirname
`$(CC) -print-libgcc-file-name`)
75 # For PowerPC there's no need to compile standalone applications as a
76 # relocatable executable. The relocation data is not needed, and
77 # also causes the entry point of the standalone application to be
79 ifeq ($(ARCH
),powerpc
)
80 AFLAGS
:= $(filter-out $(RELFLAGS
),$(AFLAGS
))
81 CFLAGS
:= $(filter-out $(RELFLAGS
),$(CFLAGS
))
82 CPPFLAGS
:= $(filter-out $(RELFLAGS
),$(CPPFLAGS
))
85 # We don't want gcc reordering functions if possible. This ensures that an
86 # application's entry point will be the first function in the application's
88 CFLAGS
+= $(call cc-option
,-fno-toplevel-reorder
)
90 all: $(obj
).depend
$(OBJS
) $(LIB
) $(SREC
) $(BIN
) $(ELF
)
92 #########################################################################
93 $(LIB
): $(obj
).depend
$(LIBOBJS
)
94 $(call cmd_link_o_target
, $(LIBOBJS
))
97 $(obj
)%: $(obj
)%.o
$(LIB
)
98 $(LD
) -g
-Ttext
$(CONFIG_STANDALONE_LOAD_ADDR
) \
99 -o
$@
-e
$(SYM_PREFIX
)$(notdir $(<:.o
=)) $< $(LIB
) \
103 $(obj
)%.srec
: $(obj
)%
104 $(OBJCOPY
) -O srec
$< $@
2>/dev
/null
108 $(OBJCOPY
) -O binary
$< $@
2>/dev
/null
110 #########################################################################
112 # defines $(obj).depend target
113 include $(SRCTREE
)/rules.mk
115 sinclude
$(obj
).depend
117 #########################################################################