ath9k: Allow configuration of LED polarity in platform data.
[openwrt.git] / include / image.mk
index fb89ed1..6b2fb1a 100644 (file)
@@ -16,7 +16,7 @@ override NO_TRACE_MAKE:=$(_SINGLE)$(NO_TRACE_MAKE)
 
 KDIR=$(KERNEL_BUILD_DIR)
 KDIR_TMP=$(KDIR)/tmp
-DTS_DIR:=$(LINUX_DIR)/arch/$(ARCH)/boot/dts/
+DTS_DIR:=$(LINUX_DIR)/arch/$(LINUX_KARCH)/boot/dts
 
 IMG_PREFIX:=openwrt-$(if $(CONFIG_VERSION_FILENAMES),$(VERSION_NUMBER)-)$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))
 
@@ -89,6 +89,16 @@ define toupper
 $(shell echo $(1) | tr '[:lower:]' '[:upper:]')
 endef
 
+define tolower
+$(shell echo $(1) | tr '[:upper:]' '[:lower:]')
+endef
+
+define sanitize
+$(shell echo $(call tolower,$(1)) | sed 's/_/-/g')
+endef
+
+PROFILE_SANITIZED := $(call sanitize,$(PROFILE))
+
 define split_args
 $(foreach data, \
        $(subst |,$(space),\
@@ -133,8 +143,8 @@ endef
 # $(4) extra DTC flags
 define Image/BuildDTB
        $(CPP) -nostdinc -x assembler-with-cpp \
-               -I$(LINUX_DIR)/arch/$(ARCH)/boot/dts \
-               -I$(LINUX_DIR)/arch/$(ARCH)/boot/dts/include \
+               -I$(DTS_DIR) \
+               -I$(DTS_DIR)/include \
                -undef -D__DTS__ $(3) \
                -o $(2).tmp $(1)
        $(LINUX_DIR)/scripts/dtc/dtc -O dtb \
@@ -245,7 +255,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_SANITIZED),-$(PROFILE_SANITIZED))-rootfs.tar.gz --numeric-owner --owner=0 --group=0 --sort=name -C $(TARGET_DIR)/ .
 endef
 
 E2SIZE=$(shell echo $$(($(CONFIG_TARGET_ROOTFS_PARTSIZE)*1024*1024)))
@@ -282,7 +292,7 @@ endef
 define BuildImage/mkfs
   install: mkfs-$(1)
   .PHONY: mkfs-$(1)
-  mkfs-$(1): mkfs_prepare
+  mkfs-$(1): kernel_prepare
        $(Image/mkfs/$(1))
        $(call Build/mkfs/default,$(1))
        $(call Build/mkfs/$(1),$(1))
@@ -308,6 +318,15 @@ define Build/netgear-chk
        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 $@ \
@@ -328,6 +347,21 @@ define Build/gzip
        @mv $@.new $@
 endef
 
+define Build/jffs2
+       rm -rf $(KDIR_TMP)/$(DEVICE_NAME)/jffs2 && \
+               mkdir -p $(KDIR_TMP)/$(DEVICE_NAME)/jffs2/$$(dirname $(1)) && \
+               cp $@ $(KDIR_TMP)/$(DEVICE_NAME)/jffs2/$(1) && \
+               $(STAGING_DIR_HOST)/bin/mkfs.jffs2 --pad \
+                       $(if $(CONFIG_BIG_ENDIAN),--big-endian,--little-endian) \
+                       --squash-uids -v -e $(patsubst %k,%KiB,$(BLOCKSIZE)) \
+                       -o $@.new \
+                       -d $(KDIR_TMP)/$(DEVICE_NAME)/jffs2 \
+                       2>&1 1>/dev/null | awk '/^.+$$$$/' && \
+               $(STAGING_DIR_HOST)/bin/padjffs2 $@.new -J $(patsubst %k,,$(BLOCKSIZE))
+       -rm -rf $(KDIR_TMP)/$(DEVICE_NAME)/jffs2/
+       @mv $@.new $@
+endef
+
 define Build/kernel-bin
        rm -f $@
        cp $^ $@
@@ -350,7 +384,8 @@ define Build/append-ubi
                $(if $(KERNEL_IN_UBI),--kernel $(word 1,$^)) \
                $(word 2,$^) \
                $@.tmp \
-               -p $(BLOCKSIZE) -m $(PAGESIZE) -E 5
+               -p $(BLOCKSIZE) -m $(PAGESIZE) -E 5 \
+               $(if $(SUBPAGESIZE),-s $(SUBPAGESIZE))
        cat $@.tmp >> $@
        rm $@.tmp
 endef
@@ -376,7 +411,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 $@; \
        }
@@ -390,6 +425,14 @@ 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)
@@ -405,6 +448,7 @@ define Device/Init
   KERNEL_IMAGE = $$(KERNEL_PREFIX)$$(KERNEL_SUFFIX)
   KERNEL_INITRAMFS_PREFIX = $$(IMAGE_PREFIX)-initramfs
   KERNEL_INITRAMFS_IMAGE = $$(KERNEL_INITRAMFS_PREFIX)$$(KERNEL_SUFFIX)
+  KERNEL_INITRAMFS_NAME = $$(KERNEL_NAME)-initramfs
   KERNEL_INSTALL :=
   KERNEL_NAME := vmlinux
   KERNEL_SIZE :=
@@ -431,18 +475,18 @@ 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
+  $(KDIR)/$$(KERNEL_INITRAMFS_NAME): image_prepare
   $(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE): $(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE)
        cp $$^ $$@
 
-  $(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE): $(KDIR)/$$(KERNEL_NAME)-initramfs
+  $(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE): $(KDIR)/$$(KERNEL_INITRAMFS_NAME)
        @rm -f $$@
        $$(call concat_cmd,$$(KERNEL_INITRAMFS))
 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 $@; \
        }