diff options
| author | Marian Balakowicz <m8@semihalf.com> | 2006-09-01 19:49:50 +0200 | 
|---|---|---|
| committer | Marian Balakowicz <m8@semihalf.com> | 2006-09-01 19:49:50 +0200 | 
| commit | f93286397ed2a7084efb0362a43ee09f11702349 (patch) | |
| tree | 11e0c11781ba0b867831eff47a4178a464cf00b3 /tools/updater | |
| parent | 24d3d3754634532ae262075484e7c1d00d447152 (diff) | |
| download | olio-uboot-2014.01-f93286397ed2a7084efb0362a43ee09f11702349.tar.xz olio-uboot-2014.01-f93286397ed2a7084efb0362a43ee09f11702349.zip | |
Add support for a saving build objects in a separate directory.
Modifications are based on the linux kernel approach and
support two use cases:
  1) Add O= to the make command line
  'make O=/tmp/build all'
  2) Set environement variable BUILD_DIR to point to the desired location
  'export BUILD_DIR=/tmp/build'
  'make'
The second approach can also be used with a MAKEALL script
'export BUILD_DIR=/tmp/build'
'./MAKEALL'
Command line 'O=' setting overrides BUILD_DIR environent variable.
When none of the above methods is used the local build is performed and
the object files are placed in the source directory.
Diffstat (limited to 'tools/updater')
| -rw-r--r-- | tools/updater/Makefile | 93 | 
1 files changed, 56 insertions, 37 deletions
| diff --git a/tools/updater/Makefile b/tools/updater/Makefile index 3fa191241..e9684cb40 100644 --- a/tools/updater/Makefile +++ b/tools/updater/Makefile @@ -1,5 +1,5 @@  # -# (C) Copyright 2000 +# (C) Copyright 2000-2006  # Wolfgang Denk, DENX Software Engineering, wd@denx.de.  #  # See file CREDITS for list of people who contributed to this @@ -25,62 +25,81 @@ LOAD_ADDR = 0x40000  include $(TOPDIR)/config.mk -PROG    = updater -IMAGE   = updater.image -SRC     = update.c flash.c flash_hw.c utils.c cmd_flash.c string.c ctype.c dummy.c -ASRC    = ppcstring.S -OBJS	= $(SRC:.c=.o) $(ASRC:.S=.o) +PROG		= $(obj)updater +IMAGE		= $(obj)updater.image -LIB	= $(TOPDIR)/examples/libstubs.a -LIBAOBJS= -LIBCOBJS= $(TOPDIR)/examples/stubs.o -LIBOBJS	= $(LIBAOBJS) $(LIBCOBJS) +COBJS		= update.o flash.o flash_hw.o utils.o cmd_flash.o string.o ctype.o dummy.o +COBJS_LINKS	= stubs.o +AOBJS		= ppcstring.o +AOBJS_LINKS	= memio.o + +OBJS	:= $(addprefix $(obj),$(COBJS) $(COBJS_LINKS) $(AOBJS) $(AOBJS_LINKS)) +SRCS	:= $(COBJS:.o=.c) $(AOBJS:.o=.S) $(addprefix $(obj), $(COBJS_LINKS:.o:.c) $(AOBJS_LINKS:.o:.S))  CPPFLAGS += -I$(TOPDIR) -I$(TOPDIR)/board/MAI/AmigaOneG3SE  CFLAGS   += -I$(TOPDIR)/board/MAI/AmigaOneG3SE +AFLAGS   += -I$(TOPDIR)/board/MAI/AmigaOneG3SE + +DEPS = $(OBJTREE)/u-boot.bin $(OBJTREE)/tools/mkimage +ifneq ($(DEPS),$(wildcard $(DEPS))) +$(error "updater: Missing required objects, please run regular build first") +endif -all:	.depend $(LIB) $(PROG) +all:	$(obj).depend $(PROG) $(IMAGE)  ######################################################################### -$(LIB): .depend $(LIBOBJS) -	$(AR) crv $@ $(LIBOBJS) -%.srec:	%.o $(LIB) +$(obj)%.srec:	%.o $(LIB)  	$(LD) -g -Ttext $(LOAD_ADDR) -o $(<:.o=) -e $(<:.o=) $< $(LIB)  	$(OBJCOPY) -O srec $(<:.o=) $@ -%.o: %.c -	$(CC) $(CPPFLAGS) -c $< +$(obj)%.o: %.c +	$(CC) $(CFLAGS) -c -o $@ $< + +$(obj)%.o: %.S +	$(CC) $(AFLAGS) -c -o $@ $< + +$(obj)memio.o: $(obj)memio.S +	$(CC) $(AFLAGS) -c -o $@ $< -%.o: %.S -	$(CC) $(CPPFLAGS) -c $< +$(obj)memio.S: +	rm -f $(obj)memio.c +	ln -s $(SRCTREE)/board/MAI/AmigaOneG3SE/memio.S $(obj)memio.S + +$(obj)stubs.o: $(obj)stubs.c +	$(CC) $(CFLAGS) -c -o $@ $< + +$(obj)stubs.c: +	rm -f $(obj)stubs.c +	ln -s $(SRCTREE)/examples/stubs.c $(obj)stubs.c  ######################################################################### -updater: $(OBJS) $(LIB) $(TOPDIR)/board/MAI/AmigaOneG3SE/memio.o -	$(LD) -g -Ttext $(LOAD_ADDR) -o updater -e _main $(OBJS) $(LIB)  \ -	$(TOPDIR)/board/MAI/AmigaOneG3SE/memio.o -	$(OBJCOPY) -O binary updater updater.bin +$(obj)updater: $(OBJS) +	$(LD) -g -Ttext $(LOAD_ADDR) -o $(obj)updater -e _main $(OBJS) +	$(OBJCOPY) -O binary $(obj)updater $(obj)updater.bin -updater.image: updater $(TOPDIR)/u-boot.bin -	cat >/tmp/tempimage updater.bin junk $(TOPDIR)/u-boot.bin -	$(TOPDIR)/tools/mkimage -A ppc -O u-boot -T standalone -C none -a $(LOAD_ADDR) \ -	-e `ppc-elf32-nm updater | grep _main | cut --bytes=0-8` \ -	-n "Firmware Updater" -d /tmp/tempimage updater.image +$(obj)updater.image: $(obj)updater $(OBJTREE)/u-boot.bin +	cat >/tmp/tempimage $(obj)updater.bin junk $(OBJTREE)/u-boot.bin +	$(OBJTREE)/tools/mkimage -A ppc -O u-boot -T standalone -C none -a $(LOAD_ADDR) \ +	-e `$(NM) $(obj)updater | grep _main | cut --bytes=0-8` \ +	-n "Firmware Updater" -d /tmp/tempimage $(obj)updater.image  	rm /tmp/tempimage -	cp updater.image /tftpboot +	cp $(obj)updater.image /tftpboot -updater.image2: updater $(TOPDIR)/u-boot.bin -	cat >/tmp/tempimage updater.bin junk ../../create_image/image -	$(TOPDIR)/tools/mkimage -A ppc -O u-boot -T standalone -C none -a $(LOAD_ADDR) \ -	-e `ppc-elf32-nm updater | grep _main | cut --bytes=0-8` \ -	-n "Firmware Updater" -d /tmp/tempimage updater.image +(obj)updater.image2: $(obj)updater $(OBJTREE)/u-boot.bin +	cat >/tmp/tempimage $(obj)updater.bin junk ../../create_image/image +	$(OBJTREE)/tools/mkimage -A ppc -O u-boot -T standalone -C none -a $(LOAD_ADDR) \ +	-e `$(NM) $(obj)updater | grep _main | cut --bytes=0-8` \ +	-n "Firmware Updater" -d /tmp/tempimage $(obj)updater.image  	rm /tmp/tempimage -	cp updater.image /tftpboot +	cp $(obj)updater.image /tftpboot + +######################################################################### -.depend:	Makefile $(SRC) $(ASRC) $(LIBCOBJS:.o=.c) $(LIBAOBJS:.o=.S) -		$(CC) -M $(CFLAGS) $(SRC) $(ASRC) $(LIBCOBJS:.o=.c) $(LIBAOBJS:.o=.S) > $@ +# defines $(obj).depend target +include $(SRCTREE)/rules.mk -sinclude .depend +sinclude $(obj).depend  ######################################################################### |