build: include homebrew include/library directory in cflags/ldflags on mac os x
[openwrt/svn-archive/archive.git] / include / image.mk
index a20e090fe73f65148a46500ec4c3e189239eb860..c59222e415fb56e279e76e08d883179f54ac753a 100644 (file)
@@ -15,6 +15,7 @@ override MAKE:=$(_SINGLE)$(SUBMAKE)
 override NO_TRACE_MAKE:=$(_SINGLE)$(NO_TRACE_MAKE)
 
 KDIR=$(KERNEL_BUILD_DIR)
+KDIR_TMP=$(KDIR)/tmp
 DTS_DIR:=$(LINUX_DIR)/arch/$(ARCH)/boot/dts/
 
 IMG_PREFIX:=openwrt-$(if $(CONFIG_VERSION_FILENAMES),$(VERSION_NUMBER)-)$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))
@@ -244,7 +245,7 @@ define Image/mkfs/cpiogz
 endef
 
 define Image/mkfs/targz
-       $(TAR) -czpf $(BIN_DIR)/$(IMG_PREFIX)$(if $(PROFILE),-$(PROFILE))-rootfs.tar.gz --numeric-owner --owner=0 --group=0 -C $(TARGET_DIR)/ .
+       $(TAR) -czpf $(BIN_DIR)/$(IMG_PREFIX)$(if $(PROFILE),-$(PROFILE))-rootfs.tar.gz --numeric-owner --owner=0 --group=0 --sort=name -C $(TARGET_DIR)/ .
 endef
 
 E2SIZE=$(shell echo $$(($(CONFIG_TARGET_ROOTFS_PARTSIZE)*1024*1024)))
@@ -298,11 +299,44 @@ define Build/uImage
        @mv $@.new $@
 endef
 
+define Build/netgear-chk
+       $(STAGING_DIR_HOST)/bin/mkchkimg \
+               -o $@.new \
+               -k $@ \
+               -b $(NETGEAR_BOARD_ID) \
+               -r $(NETGEAR_REGION)
+       mv $@.new $@
+endef
+
+define Build/netgear-dni
+       $(STAGING_DIR_HOST)/bin/mkdniimg \
+               -B $(NETGEAR_BOARD_ID) -v OpenWrt.$(REVISION) \
+               $(if $(NETGEAR_HW_ID),-H $(NETGEAR_HW_ID)) \
+               -r "$(1)" \
+               -i $@ -o $@.new
+       mv $@.new $@
+endef
+
+define Build/fit
+       $(TOPDIR)/scripts/mkits.sh \
+               -D $(DEVICE_NAME) -o $@.its -k $@ \
+               $(if $(word 2,$(1)),-d $(word 2,$(1))) -C $(word 1,$(1)) \
+               -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
+               -A $(ARCH) -v $(LINUX_VERSION)
+       PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $@.its $@.new
+       @mv $@.new $@
+endef
+
 define Build/lzma
        $(STAGING_DIR_HOST)/bin/lzma e $@ -lc1 -lp2 -pb2 $(1) $@.new
        @mv $@.new $@
 endef
 
+define Build/gzip
+       gzip -9n -c $@ $(1) > $@.new
+       @mv $@.new $@
+endef
+
 define Build/kernel-bin
        rm -f $@
        cp $^ $@
@@ -320,6 +354,16 @@ define Build/append-rootfs
        dd if=$(word 2,$^) $(if $(1),bs=$(1) conv=sync) >> $@
 endef
 
+define Build/append-ubi
+       sh $(TOPDIR)/scripts/ubinize-image.sh \
+               $(if $(KERNEL_IN_UBI),--kernel $(word 1,$^)) \
+               $(word 2,$^) \
+               $@.tmp \
+               -p $(BLOCKSIZE) -m $(PAGESIZE) -E 5
+       cat $@.tmp >> $@
+       rm $@.tmp
+endef
+
 define Build/pad-to
        dd if=$@ of=$@.new bs=$(1) conv=sync
        mv $@.new $@
@@ -341,7 +385,7 @@ define Build/pad-offset
 endef
 
 define Build/check-size
-       @[ $$(($(subst k,* 1024,$(subst m, * 1024k,$(1))))) -gt "$$(stat -c%s $@)" ] || { \
+       @[ $$(($(subst k,* 1024,$(subst m, * 1024k,$(1))))) -ge "$$(stat -c%s $@)" ] || { \
                echo "WARNING: Image file $@ is too big" >&2; \
                rm -f $@; \
        }
@@ -355,8 +399,17 @@ define Build/combined-image
        @mv $@.new $@
 endef
 
+define Build/sysupgrade-nand
+       sh $(TOPDIR)/scripts/sysupgrade-nand.sh \
+               --board $(if $(BOARD_NAME),$(BOARD_NAME),$(DEVICE_NAME)) \
+               --kernel $(word 1,$^) \
+               --rootfs $(word 2,$^) \
+               $@
+endef
+
 define Device/Init
   PROFILES := $(PROFILE)
+  DEVICE_NAME := $(1)
   KERNEL:=
   KERNEL_INITRAMFS = $$(KERNEL)
   KERNEL_SIZE:=
@@ -381,7 +434,7 @@ define Device/ExportVar
 
 endef
 define Device/Export
-  $(foreach var,$(DEVICE_VARS) KERNEL KERNEL_INITRAMFS,$(call Device/ExportVar,$(1),$(var)))
+  $(foreach var,$(DEVICE_VARS) DEVICE_NAME KERNEL KERNEL_INITRAMFS,$(call Device/ExportVar,$(1),$(var)))
   $(1) : FILESYSTEM:=$(2)
 endef
 
@@ -392,6 +445,7 @@ endef
 
 ifndef IB
 define Device/Build/initramfs
+  $(call Device/Export,$(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE),$(1))
   $$(_TARGET): $(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE)
 
   $(KDIR)/$$(KERNEL_NAME)-initramfs: image_prepare
@@ -405,7 +459,7 @@ endef
 endif
 
 define Device/Build/check_size
-       @[ $$(($(subst k,* 1024,$(subst m, * 1024k,$(1))))) -gt "$$(stat -c%s $@)" ] || { \
+       @[ $$(($(subst k,* 1024,$(subst m, * 1024k,$(1))))) -ge "$$(stat -c%s $@)" ] || { \
                echo "WARNING: Image file $@ is too big" >&2; \
                rm -f $@; \
        }
@@ -423,6 +477,7 @@ define Device/Build/kernel
   _KERNEL_IMAGES += $(KDIR)/$$(KERNEL_NAME)
   $(KDIR)/$$(KERNEL_NAME): image_prepare
   $$(_TARGET): $$(if $$(KERNEL_INSTALL),$(BIN_DIR)/$$(KERNEL_IMAGE))
+  $(call Device/Export,$(KDIR)/$$(KERNEL_IMAGE),$(1))
   $(BIN_DIR)/$$(KERNEL_IMAGE): $(KDIR)/$$(KERNEL_IMAGE)
        cp $$^ $$@
   ifndef IB
@@ -438,8 +493,6 @@ endef
 
 define Device/Build/image
   $$(_TARGET): $(BIN_DIR)/$(call IMAGE_NAME,$(1),$(2))
-  $(eval $(call Device/Export,$(KDIR)/$(KERNEL_IMAGE),$(1)))
-  $(eval $(call Device/Export,$(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE),$(1)))
   $(eval $(call Device/Export,$(KDIR)/tmp/$(call IMAGE_NAME,$(1),$(2)),$(1)))
   $(KDIR)/tmp/$(call IMAGE_NAME,$(1),$(2)): $(KDIR)/$$(KERNEL_IMAGE) $(KDIR)/root.$(1)
        @rm -f $$@