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_PPC
) += sched
16 # Some versions of make do not handle trailing white spaces properly;
17 # leading to build failures. The problem was found with GNU Make 3.80.
18 # Using 'strip' as a workaround for the problem.
20 ELF
:= $(strip $(extra-y
))
22 extra-y
+= $(addsuffix .srec
,$(extra-y
)) $(addsuffix .bin
,$(extra-y
))
23 clean-files
:= *.srec
*.bin
27 LIB
= $(obj
)/libstubs.o
29 LIBOBJS-
$(CONFIG_PPC
) += ppc_longjmp.o ppc_setjmp.o
32 .SECONDARY
: $(call objectify
,$(COBJS
))
33 targets
+= $(patsubst $(obj
)/%,%,$(LIB
)) $(COBJS
) $(LIBOBJS-y
)
35 LIBOBJS
:= $(addprefix $(obj
)/,$(LIBOBJS-y
))
36 ELF
:= $(addprefix $(obj
)/,$(ELF
))
38 # For PowerPC there's no need to compile standalone applications as a
39 # relocatable executable. The relocation data is not needed, and
40 # also causes the entry point of the standalone application to be
42 ifeq ($(CONFIG_PPC
),y
)
43 PLATFORM_CPPFLAGS
:= $(filter-out $(RELFLAGS
),$(PLATFORM_CPPFLAGS
))
46 # We don't want gcc reordering functions if possible. This ensures that an
47 # application's entry point will be the first function in the application's
49 ccflags-y
+= $(call cc-option
,-fno-toplevel-reorder
)
51 #########################################################################
53 quiet_cmd_link_lib
= LD
$@
54 cmd_link_lib
= $(LD
) $(ld_flags
) -r
-o
$@
$(filter $(LIBOBJS
), $^
)
56 $(LIB
): $(LIBOBJS
) FORCE
57 $(call if_changed
,link_lib
)
59 quiet_cmd_link_elf
= LD
$@
60 cmd_link_elf
= $(LD
) $(LDFLAGS
) -g
-Ttext
$(CONFIG_STANDALONE_LOAD_ADDR
) \
61 -o
$@
-e
$(SYM_PREFIX
)$(@F
) $< $(LIB
) $(PLATFORM_LIBGCC
)
63 $(ELF
): $(obj
)/%: $(obj
)/%.o
$(LIB
) FORCE
64 $(call if_changed
,link_elf
)
66 $(obj
)/%.srec
: OBJCOPYFLAGS
:= -O srec
67 $(obj
)/%.srec
: $(obj
)/% FORCE
68 $(call if_changed
,objcopy
)
70 $(obj
)/%.bin
: OBJCOPYFLAGS
:= -O binary
71 $(obj
)/%.bin
: $(obj
)/% FORCE
72 $(call if_changed
,objcopy
)
74 # some files can only build in ARM or THUMB2, not THUMB1
76 ifdef CONFIG_SYS_THUMB_BUILD
77 ifndef CONFIG_HAS_THUMB2
79 CFLAGS_stubs.o
:= -marm