openwrtv4/target/linux/au1000/image/Makefile
John Crispin 8247d9926a au1000: create sysupgrade binary for each file system type
This patch should prevent overriding of sysupgrade binaries in the bin directory
if we build images for more then one file system type.

Discussion:

https://lists.openwrt.org/pipermail/openwrt-devel/2013-October/022108.html

Signed-off-by: Philipp Borgers <borgers@mi.fu-berlin.de>

SVN-Revision: 38674
2013-11-07 12:46:12 +00:00

71 lines
2.4 KiB
Makefile

#
# Copyright (C) 2006-2010 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/image.mk
LOADADDR = 0x81000000 # RAM start + 16M
KERNEL_ENTRY = 0x80100000
RAMSIZE = 0x00100000 # 1MB
JFFS2_BLOCKSIZE = 128k
FLASH_KERNEL := 0xBFD00000
FLASH_FS := 0xBE000000
LOADER_MAKEOPTS= \
KDIR=$(KDIR) \
LOADADDR=$(LOADADDR) \
KERNEL_ENTRY=$(KERNEL_ENTRY) \
RAMSIZE=$(RAMSIZE)
define Build/Clean
$(MAKE) -C $(GENERIC_PLATFORM_DIR)/image/lzma-loader $(LOADER_MAKEOPTS) clean
endef
DROP_SECTIONS := .reginfo .mdebug .comment .note .pdr .options .MIPS.options
OBJCOPY_SREC := $(TARGET_CROSS)objcopy -S -O srec $(addprefix --remove-section=,$(DROP_SECTIONS))
OBJCOPY_BIN := $(TARGET_CROSS)objcopy -S -O binary $(addprefix --remove-section=,$(DROP_SECTIONS))
define Image/Prepare
cat $(KDIR)/vmlinux | $(STAGING_DIR_HOST)/bin/lzma e -si -so -eos -lc1 -lp2 -pb2 > $(KDIR)/vmlinux.lzma
# Build RAM image
$(MAKE) -C $(GENERIC_PLATFORM_DIR)/image/lzma-loader \
$(LOADER_MAKEOPTS) \
clean compile
$(OBJCOPY_SREC) $(KDIR)/loader.elf $(KDIR)/kernel.ram.srec
# Build Flash image
$(MAKE) -C $(GENERIC_PLATFORM_DIR)/image/lzma-loader \
$(LOADER_MAKEOPTS) \
IMAGE_COPY=1 \
LOADER_ENTRY=$(FLASH_KERNEL) \
LOADER_TYPE=_flash \
clean compile
$(OBJCOPY_SREC) $(KDIR)/loader_flash.elf $(KDIR)/kernel.flash.srec
$(OBJCOPY_BIN) $(KDIR)/loader_flash.elf $(KDIR)/kernel.flash.bin
endef
define Image/Build/Initramfs
$(OBJCOPY_SREC) $(KDIR)/vmlinux-initramfs.elf $(BIN_DIR)/$(IMG_PREFIX)-vmlinux-initramfs.srec
endef
define Image/Build
$(TARGET_CROSS)objcopy -O srec -I binary --adjust-vma $(FLASH_FS) $(KDIR)/root.$(1) $(KDIR)/root.$(1).srec
grep -v S7 $(KDIR)/root.$(1).srec > $(BIN_DIR)/$(IMG_PREFIX)-$(1).srec
grep -v S0 $(KDIR)/kernel.flash.srec >> $(BIN_DIR)/$(IMG_PREFIX)-$(1).srec
$(INSTALL_BIN) $(KDIR)/kernel.flash.bin $(BIN_DIR)/$(IMG_PREFIX)-vmlinux.bin
$(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(1).fs
$(CP) $(KDIR)/kernel.flash.srec $(BIN_DIR)/$(IMG_PREFIX)-vmlinux-flash.srec
$(CP) $(KDIR)/kernel.ram.srec $(BIN_DIR)/$(IMG_PREFIX)-vmlinux-ram.srec
tar -C $(BIN_DIR) -cvzf $(BIN_DIR)/$(IMG_PREFIX)-$(1)-sysupgrade.bin $(IMG_PREFIX)-vmlinux.bin $(IMG_PREFIX)-$(1).fs
ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y)
$(call Image/Build/Initramfs)
endif
endef
$(eval $(call BuildImage))