xref: /rk3399_rockchip-uboot/examples/standalone/Makefile (revision 604f7ce55ad74694ef8743ad2e99933dc0265e46)
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 Tyserinclude $(TOPDIR)/config.mk
251bc15386SPeter Tyser
26557555feSMike FrysingerELF-$(ARCH)  :=
27557555feSMike FrysingerELF-$(BOARD) :=
28557555feSMike FrysingerELF-$(CPU)   :=
29557555feSMike FrysingerELF-y        := hello_world
301bc15386SPeter Tyser
31557555feSMike FrysingerELF-$(CONFIG_SMC91111)           += smc91111_eeprom
32557555feSMike FrysingerELF-$(CONFIG_SMC911X)            += smc911x_eeprom
33557555feSMike FrysingerELF-$(CONFIG_SPI_FLASH_ATMEL)    += atmel_df_pow2
34557555feSMike FrysingerELF-i386                         += 82559_eeprom
35557555feSMike FrysingerELF-mpc5xxx                      += interrupt
36557555feSMike FrysingerELF-mpc8xx                       += test_burst timer
37557555feSMike FrysingerELF-mpc8260                      += mem_to_mem_idma2intr
38557555feSMike FrysingerELF-ppc                          += sched
39557555feSMike FrysingerELF-oxc                          += eepro100_eeprom
4065f6f07bSMike Frysinger
41*604f7ce5SSanjeev Premi#
42*604f7ce5SSanjeev Premi# Some versions of make do not handle trailing white spaces properly;
43*604f7ce5SSanjeev Premi# leading to build failures. The problem was found with GNU Make 3.80.
44*604f7ce5SSanjeev Premi# Using 'strip' as a workaround for the problem.
45*604f7ce5SSanjeev Premi#
46*604f7ce5SSanjeev PremiELF := $(strip $(ELF-y) $(ELF-$(ARCH)) $(ELF-$(BOARD)) $(ELF-$(CPU)))
47*604f7ce5SSanjeev Premi
48557555feSMike FrysingerSREC = $(addsuffix .srec,$(ELF))
49557555feSMike FrysingerBIN  = $(addsuffix .bin,$(ELF))
501bc15386SPeter Tyser
51557555feSMike FrysingerCOBJS	:= $(ELF:=.o)
521bc15386SPeter Tyser
531bc15386SPeter TyserLIB	= $(obj)libstubs.a
54557555feSMike Frysinger
55557555feSMike FrysingerLIBAOBJS-$(ARCH)     :=
56557555feSMike FrysingerLIBAOBJS-$(CPU)      :=
57557555feSMike FrysingerLIBAOBJS-ppc         += $(ARCH)_longjmp.o $(ARCH)_setjmp.o
58557555feSMike FrysingerLIBAOBJS-mpc8xx      += test_burst_lib.o
59557555feSMike FrysingerLIBAOBJS := $(LIBAOBJS-$(ARCH)) $(LIBAOBJS-$(CPU))
60557555feSMike Frysinger
611bc15386SPeter TyserLIBCOBJS = stubs.o
621bc15386SPeter Tyser
631bc15386SPeter TyserLIBOBJS	= $(addprefix $(obj),$(LIBAOBJS) $(LIBCOBJS))
641bc15386SPeter Tyser
65557555feSMike FrysingerSRCS	:= $(COBJS:.o=.c) $(LIBCOBJS:.o=.c) $(LIBAOBJS:.o=.S)
661bc15386SPeter TyserOBJS	:= $(addprefix $(obj),$(COBJS))
671bc15386SPeter TyserELF	:= $(addprefix $(obj),$(ELF))
681bc15386SPeter TyserBIN	:= $(addprefix $(obj),$(BIN))
691bc15386SPeter TyserSREC	:= $(addprefix $(obj),$(SREC))
701bc15386SPeter Tyser
711bc15386SPeter Tysergcclibdir := $(shell dirname `$(CC) -print-libgcc-file-name`)
721bc15386SPeter Tyser
731bc15386SPeter TyserCPPFLAGS += -I..
741bc15386SPeter Tyser
751bc15386SPeter Tyserall:	$(obj).depend $(OBJS) $(LIB) $(SREC) $(BIN) $(ELF)
761bc15386SPeter Tyser
771bc15386SPeter Tyser#########################################################################
781bc15386SPeter Tyser$(LIB):	$(obj).depend $(LIBOBJS)
791bc15386SPeter Tyser		$(AR) $(ARFLAGS) $@ $(LIBOBJS)
801bc15386SPeter Tyser
811bc15386SPeter Tyser$(ELF):
821bc15386SPeter Tyser$(obj)%:	$(obj)%.o $(LIB)
83262ae0a6SMike Frysinger		$(LD) -g -Ttext $(STANDALONE_LOAD_ADDR) \
841bc15386SPeter Tyser			-o $@ -e $(SYM_PREFIX)$(notdir $(<:.o=)) $< $(LIB) \
851bc15386SPeter Tyser			-L$(gcclibdir) -lgcc
861bc15386SPeter Tyser
871bc15386SPeter Tyser$(SREC):
881bc15386SPeter Tyser$(obj)%.srec:	$(obj)%
891bc15386SPeter Tyser		$(OBJCOPY) -O srec $< $@ 2>/dev/null
901bc15386SPeter Tyser
911bc15386SPeter Tyser$(BIN):
921bc15386SPeter Tyser$(obj)%.bin:	$(obj)%
931bc15386SPeter Tyser		$(OBJCOPY) -O binary $< $@ 2>/dev/null
941bc15386SPeter Tyser
951bc15386SPeter Tyser#########################################################################
961bc15386SPeter Tyser
971bc15386SPeter Tyser# defines $(obj).depend target
981bc15386SPeter Tyserinclude $(SRCTREE)/rules.mk
991bc15386SPeter Tyser
1001bc15386SPeter Tysersinclude $(obj).depend
1011bc15386SPeter Tyser
1021bc15386SPeter Tyser#########################################################################
103