2 # (C) Copyright 2000-2006
3 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
5 # SPDX-License-Identifier: GPL-2.0+
9 extra-
$(CONFIG_SMC91111
) += smc91111_eeprom
10 extra-
$(CONFIG_SMC911X
) += smc911x_eeprom
11 extra-
$(CONFIG_SPI_FLASH_ATMEL
) += atmel_df_pow2
12 extra-
$(CONFIG_MPC5xxx
) += interrupt
13 extra-
$(CONFIG_8xx
) += test_burst timer
14 extra-
$(CONFIG_8260
) += mem_to_mem_idma2intr
15 extra-
$(CONFIG_PPC
) += sched
18 # Some versions of make do not handle trailing white spaces properly;
19 # leading to build failures. The problem was found with GNU Make 3.80.
20 # Using 'strip' as a workaround for the problem.
22 ELF
:= $(strip $(extra-y
))
24 extra-y
+= $(addsuffix .srec
,$(extra-y
)) $(addsuffix .bin
,$(extra-y
))
25 clean-files
:= $(extra-
) $(addsuffix .srec
,$(extra-
)) $(addsuffix .bin
,$(extra-
))
29 LIB
= $(obj
)/libstubs.o
31 LIBOBJS-
$(CONFIG_PPC
) += ppc_longjmp.o ppc_setjmp.o
32 LIBOBJS-
$(CONFIG_8xx
) += test_burst_lib.o
35 .SECONDARY
: $(call objectify
,$(COBJS
))
36 targets
+= $(patsubst $(obj
)/%,%,$(LIB
)) $(COBJS
) $(LIBOBJS-y
)
38 LIBOBJS
:= $(addprefix $(obj
)/,$(LIBOBJS-y
))
39 ELF
:= $(addprefix $(obj
)/,$(ELF
))
41 gcclibdir
:= $(shell dirname
`$(CC) -print-libgcc-file-name`)
43 # For PowerPC there's no need to compile standalone applications as a
44 # relocatable executable. The relocation data is not needed, and
45 # also causes the entry point of the standalone application to be
47 ifeq ($(CONFIG_PPC
),y
)
48 PLATFORM_CPPFLAGS
:= $(filter-out $(RELFLAGS
),$(PLATFORM_CPPFLAGS
))
51 # We don't want gcc reordering functions if possible. This ensures that an
52 # application's entry point will be the first function in the application's
54 ccflags-y
+= $(call cc-option
,-fno-toplevel-reorder
)
56 #########################################################################
58 quiet_cmd_link_lib
= LD
$@
59 cmd_link_lib
= $(LD
) $(ld_flags
) -r
-o
$@
$(filter $(LIBOBJS
), $^
)
61 $(LIB
): $(LIBOBJS
) FORCE
62 $(call if_changed
,link_lib
)
64 quiet_cmd_link_elf
= LD
$@
65 cmd_link_elf
= $(LD
) $(LDFLAGS
) -g
-Ttext
$(CONFIG_STANDALONE_LOAD_ADDR
) \
66 -o
$@
-e
$(SYM_PREFIX
)$(@F
) $< $(LIB
) -L
$(gcclibdir
) -lgcc
68 $(ELF
): $(obj
)/%: $(obj
)/%.o
$(LIB
) FORCE
69 $(call if_changed
,link_elf
)
71 $(obj
)/%.srec
: OBJCOPYFLAGS
:= -O srec
72 $(obj
)/%.srec
: $(obj
)/% FORCE
73 $(call if_changed
,objcopy
)
75 $(obj
)/%.bin
: OBJCOPYFLAGS
:= -O binary
76 $(obj
)/%.bin
: $(obj
)/% FORCE
77 $(call if_changed
,objcopy
)