aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/autotools.mk4
-rw-r--r--include/cmake.mk15
-rw-r--r--include/download.mk16
-rw-r--r--include/feeds.mk6
-rw-r--r--include/host-build.mk34
-rw-r--r--include/image.mk141
-rw-r--r--include/kernel-build.mk5
-rw-r--r--include/kernel-defaults.mk38
-rw-r--r--include/kernel-version.mk12
-rw-r--r--include/kernel.mk19
-rw-r--r--include/netfilter.mk9
-rw-r--r--include/nls.mk4
-rw-r--r--include/package-defaults.mk1
-rw-r--r--include/package-dumpinfo.mk2
-rw-r--r--include/package-ipkg.mk2
-rw-r--r--include/package.mk35
-rw-r--r--include/prereq-build.mk22
-rw-r--r--include/prereq.mk1
-rw-r--r--include/quilt.mk1
-rw-r--r--include/site/arc30
-rw-r--r--include/subdir.mk22
-rw-r--r--include/target.mk18
-rw-r--r--include/toplevel.mk29
-rw-r--r--include/version.mk5
24 files changed, 344 insertions, 127 deletions
diff --git a/include/autotools.mk b/include/autotools.mk
index 3316998dc9..259569b14f 100644
--- a/include/autotools.mk
+++ b/include/autotools.mk
@@ -85,11 +85,11 @@ endef
define gettext_version_target
(cd $(PKG_BUILD_DIR) && \
- GETTEXT_VERSION=$(shell $(STAGING_DIR_HOST)/bin/gettext -V | $(STAGING_DIR_HOST)/bin/sed -ne '1s/.* //p') && \
+ GETTEXT_VERSION=$(shell $(STAGING_DIR)/host/bin/gettext -V | $(STAGING_DIR_HOST)/bin/sed -ne '1s/.* //p') && \
$(STAGING_DIR_HOST)/bin/sed \
-i $(PKG_BUILD_DIR)/configure.ac \
-e "s/AM_GNU_GETTEXT_VERSION(.*)/AM_GNU_GETTEXT_VERSION(\[$$$$GETTEXT_VERSION\])/g" && \
- $(STAGING_DIR_HOST)/bin/autopoint --force \
+ $(STAGING_DIR)/host/bin/autopoint --force \
);
endef
diff --git a/include/cmake.mk b/include/cmake.mk
index 4207a4dcee..009c6c2772 100644
--- a/include/cmake.mk
+++ b/include/cmake.mk
@@ -1,3 +1,5 @@
+cmake_bool = $(patsubst %,-D%:BOOL=$(if $($(1)),ON,OFF),$(2))
+
PKG_INSTALL:=1
ifneq ($(findstring c,$(OPENWRT_VERBOSE)),)
@@ -18,10 +20,7 @@ ifeq ($(CONFIG_CCACHE),)
CMAKE_C_COMPILER_ARG1:=
CMAKE_CXX_COMPILER_ARG1:=
else
- CCACHE:=$(shell which ccache)
- ifeq ($(CCACHE),)
- CCACHE:=$(STAGING_DIR_HOST)/bin/ccache
- endif
+ CCACHE:=$(STAGING_DIR_HOST)/bin/ccache
CMAKE_C_COMPILER:=$(CCACHE)
CMAKE_C_COMPILER_ARG1:=$(TARGET_CC_NOCACHE)
CMAKE_CXX_COMPILER:=$(CCACHE)
@@ -31,8 +30,8 @@ CMAKE_AR:=$(call cmake_tool,$(TARGET_AR))
CMAKE_NM:=$(call cmake_tool,$(TARGET_NM))
CMAKE_RANLIB:=$(call cmake_tool,$(TARGET_RANLIB))
-CMAKE_FIND_ROOT_PATH:=$(STAGING_DIR);$(TOOLCHAIN_DIR)$(if $(CONFIG_EXTERNAL_TOOLCHAIN),;$(CONFIG_TOOLCHAIN_ROOT))
-CMAKE_HOST_FIND_ROOT_PATH:=$(STAGING_DIR_HOST)
+CMAKE_FIND_ROOT_PATH:=$(STAGING_DIR)/usr;$(TOOLCHAIN_DIR)$(if $(CONFIG_EXTERNAL_TOOLCHAIN),;$(CONFIG_TOOLCHAIN_ROOT))
+CMAKE_HOST_FIND_ROOT_PATH:=$(STAGING_DIR)/host;$(STAGING_DIR_HOST)
CMAKE_SHARED_LDFLAGS:=-Wl,-Bsymbolic-functions
define Build/Configure/Default
@@ -97,8 +96,8 @@ define Host/Configure/Default
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
-DCMAKE_STRIP=: \
- -DCMAKE_INSTALL_PREFIX=$(STAGING_DIR_HOST) \
- -DCMAKE_PREFIX_PATH=$(STAGING_DIR_HOST) \
+ -DCMAKE_INSTALL_PREFIX=$(HOST_BUILD_PREFIX) \
+ -DCMAKE_PREFIX_PATH=$(HOST_BUILD_PREFIX) \
-DCMAKE_SKIP_RPATH=TRUE \
$(CMAKE_HOST_OPTIONS) \
$(CMAKE_SOURCE_DIR) \
diff --git a/include/download.mk b/include/download.mk
index adaa2e6ac5..a359514002 100644
--- a/include/download.mk
+++ b/include/download.mk
@@ -5,13 +5,15 @@
# See /LICENSE for more information.
#
+OPENWRT_GIT = http://git.openwrt.org
+
DOWNLOAD_RDEP=$(STAMP_PREPARED) $(HOST_STAMP_PREPARED)
# Try to guess the download method from the URL
define dl_method
$(strip \
$(if $(2),$(2), \
- $(if $(filter @GNOME/% @GNU/% @KERNEL/% @SF/% @SAVANNAH/% ftp://% http://% https://% file://%,$(1)),default, \
+ $(if $(filter @APACHE/% @GITHUB/% @GNOME/% @GNU/% @KERNEL/% @SF/% @SAVANNAH/% ftp://% http://% https://% file://%,$(1)),default, \
$(if $(filter git://%,$(1)),git, \
$(if $(filter svn://%,$(1)),svn, \
$(if $(filter cvs://%,$(1)),cvs, \
@@ -42,11 +44,11 @@ define DownloadMethod/unknown
endef
define DownloadMethod/default
- $(SCRIPT_DIR)/download.pl "$(DL_DIR)" "$(FILE)" "$(MD5SUM)" $(foreach url,$(URL),"$(url)")
+ $(SCRIPT_DIR)/download.pl "$(DL_DIR)" "$(FILE)" "$(MD5SUM)" "$(URL_FILE)" $(foreach url,$(URL),"$(url)")
endef
define wrap_mirror
- $(if $(if $(MIRROR),$(filter-out x,$(MIRROR_MD5SUM))),@$(SCRIPT_DIR)/download.pl "$(DL_DIR)" "$(FILE)" "$(MIRROR_MD5SUM)" || ( $(1) ),$(1))
+$(if $(if $(MIRROR),$(filter-out x,$(MIRROR_MD5SUM))),$(SCRIPT_DIR)/download.pl "$(DL_DIR)" "$(FILE)" "$(MIRROR_MD5SUM)" "" || ( $(1) ),$(1))
endef
define DownloadMethod/cvs
@@ -88,8 +90,9 @@ define DownloadMethod/git
cd $(TMP_DIR)/dl && \
rm -rf $(SUBDIR) && \
[ \! -d $(SUBDIR) ] && \
- git clone $(URL) $(SUBDIR) --recursive && \
- (cd $(SUBDIR) && git checkout $(VERSION) && git submodule update) && \
+ git clone $(URL) $(SUBDIR) && \
+ (cd $(SUBDIR) && git checkout $(VERSION) && \
+ git submodule update --init --recursive) && \
echo "Packing checkout..." && \
rm -rf $(SUBDIR)/.git && \
$(call dl_pack,$(TMP_DIR)/dl/$(FILE),$(SUBDIR)) && \
@@ -155,6 +158,7 @@ Validate/darcs=VERSION SUBDIR
define Download/Defaults
URL:=
FILE:=
+ URL_FILE:=
PROTO:=
MD5SUM:=
SUBDIR:=
@@ -179,6 +183,6 @@ define Download
$(DL_DIR)/$(FILE):
mkdir -p $(DL_DIR)
- $(if $(DownloadMethod/$(call dl_method,$(URL),$(PROTO))),$(DownloadMethod/$(call dl_method,$(URL),$(PROTO))),$(DownloadMethod/unknown))
+ $(call locked,$(if $(DownloadMethod/$(call dl_method,$(URL),$(PROTO))),$(DownloadMethod/$(call dl_method,$(URL),$(PROTO))),$(DownloadMethod/unknown)),$(FILE))
endef
diff --git a/include/feeds.mk b/include/feeds.mk
index b1a8f81da9..4f71b39940 100644
--- a/include/feeds.mk
+++ b/include/feeds.mk
@@ -5,7 +5,7 @@
# See /LICENSE for more information.
#
--include $(TMP_DIR)/.packagefeeds
+-include $(TMP_DIR)/.packagesubdirs
FEEDS_AVAILABLE:=$(shell $(SCRIPT_DIR)/feeds list -n)
FEEDS_INSTALLED:=$(notdir $(wildcard $(TOPDIR)/package/feeds/*))
@@ -21,7 +21,7 @@ PKG_CONFIG_DEPENDS += \
# 1: package name
define FeedPackageDir
$(strip $(if $(CONFIG_PER_FEED_REPO), \
- $(abspath $(PACKAGE_DIR)/$(if $(Package/$(1)/feed),$(Package/$(1)/feed),base)), \
+ $(abspath $(PACKAGE_DIR)/$(if $(Package/$(1)/subdir),$(Package/$(1)/subdir),base)), \
$(PACKAGE_DIR)))
endef
@@ -29,7 +29,7 @@ endef
define FeedSourcesAppend
( \
$(strip $(if $(CONFIG_PER_FEED_REPO), \
- $(foreach feed,base $(FEEDS_ENABLED),echo "src/gz %n_$(feed) %U/$(feed)";) \
+ $(foreach feed,base kernel $(FEEDS_ENABLED),echo "src/gz %n_$(feed) %U/$(feed)";) \
$(if $(CONFIG_PER_FEED_REPO_ADD_DISABLED), \
$(foreach feed,$(FEEDS_DISABLED),echo "$(if $(CONFIG_PER_FEED_REPO_ADD_COMMENTED),# )src/gz %n_$(feed) %U/$(feed)";)) \
, \
diff --git a/include/host-build.mk b/include/host-build.mk
index 760d38b371..72b32597d4 100644
--- a/include/host-build.mk
+++ b/include/host-build.mk
@@ -10,7 +10,7 @@ HOST_INSTALL_DIR ?= $(HOST_BUILD_DIR)/host-install
HOST_BUILD_PARALLEL ?=
ifneq ($(CONFIG_PKG_BUILD_USE_JOBSERVER),)
- HOST_MAKE_J:=$(if $(MAKE_JOBSERVER),$(MAKE_JOBSERVER) -j)
+ HOST_MAKE_J:=$(if $(MAKE_JOBSERVER),$(MAKE_JOBSERVER) $(if $(filter 3.% 4.0 4.1,$(MAKE_VERSION)),-j))
else
HOST_MAKE_J:=-j$(CONFIG_PKG_BUILD_JOBS)
endif
@@ -30,7 +30,8 @@ BUILD_TYPES += host
HOST_STAMP_PREPARED=$(HOST_BUILD_DIR)/.prepared$(if $(HOST_QUILT)$(DUMP),,$(shell $(call find_md5,${CURDIR} $(PKG_FILE_DEPENDS),)))
HOST_STAMP_CONFIGURED:=$(HOST_BUILD_DIR)/.configured
HOST_STAMP_BUILT:=$(HOST_BUILD_DIR)/.built
-HOST_STAMP_INSTALLED:=$(STAGING_DIR_HOST)/stamp/.$(PKG_NAME)_installed
+HOST_BUILD_PREFIX:=$(if $(IS_PACKAGE_BUILD),$(STAGING_DIR)/host,$(STAGING_DIR_HOST))
+HOST_STAMP_INSTALLED:=$(HOST_BUILD_PREFIX)/stamp/.$(PKG_NAME)_installed
override MAKEFLAGS=
@@ -50,6 +51,11 @@ define Host/Prepare
$(call Host/Prepare/Default)
endef
+ifeq ($(HOST_OS),Darwin)
+ HOST_CFLAGS += -I/usr/local/opt/openssl/include
+ HOST_LDFLAGS += -L/usr/local/opt/openssl/lib
+endif
+
HOST_CONFIGURE_VARS = \
CC="$(HOSTCC)" \
CFLAGS="$(HOST_CFLAGS)" \
@@ -63,11 +69,11 @@ HOST_CONFIGURE_ARGS = \
--build=$(GNU_HOST_NAME) \
--program-prefix="" \
--program-suffix="" \
- --prefix=$(STAGING_DIR_HOST) \
- --exec-prefix=$(STAGING_DIR_HOST) \
- --sysconfdir=$(STAGING_DIR_HOST)/etc \
- --localstatedir=$(STAGING_DIR_HOST)/var \
- --sbindir=$(STAGING_DIR_HOST)/bin
+ --prefix=$(HOST_BUILD_PREFIX) \
+ --exec-prefix=$(HOST_BUILD_PREFIX) \
+ --sysconfdir=$(HOST_BUILD_PREFIX)/etc \
+ --localstatedir=$(HOST_BUILD_PREFIX)/var \
+ --sbindir=$(HOST_BUILD_PREFIX)/bin
HOST_MAKE_FLAGS =
@@ -105,7 +111,7 @@ define Host/Install/Default
endef
define Host/Install
- $(call Host/Install/Default)
+ $(call Host/Install/Default,$(HOST_BUILD_PREFIX))
endef
@@ -127,11 +133,12 @@ define Download/default
endef
define Host/Exports/Default
- $(1) : export ACLOCAL_INCLUDE=$$(foreach p,$$(wildcard $$(STAGING_DIR_HOST)/share/aclocal $$(STAGING_DIR_HOST)/share/aclocal-*),-I $$(p))
- $(1) : export STAGING_PREFIX=$$(STAGING_DIR_HOST)
- $(1) : export PKG_CONFIG_PATH=$$(STAGING_DIR_HOST)/lib/pkgconfig
- $(1) : export PKG_CONFIG_LIBDIR=$$(STAGING_DIR_HOST)/lib/pkgconfig
+ $(1) : export ACLOCAL_INCLUDE=$$(foreach p,$$(wildcard $$(STAGING_DIR_HOST)/share/aclocal $$(STAGING_DIR_HOST)/share/aclocal-* $(if $(IS_PACKAGE_BUILD),$$(STAGING_DIR)/host/share/aclocal $$(STAGING_DIR)/host/share/aclocal-*)),-I $$(p))
+ $(1) : export STAGING_PREFIX=$$(HOST_BUILD_PREFIX)
+ $(1) : export PKG_CONFIG_PATH=$$(STAGING_DIR_HOST)/lib/pkgconfig:$$(HOST_BUILD_PREFIX)/lib/pkgconfig
+ $(1) : export PKG_CONFIG_LIBDIR=$$(HOST_BUILD_PREFIX)/lib/pkgconfig
$(1) : export CCACHE_DIR:=$(STAGING_DIR_HOST)/ccache
+ $(if $(IS_PACKAGE_BUILD),$(1) : export PATH=$$(TARGET_PATH_PKG))
endef
Host/Exports=$(Host/Exports/Default)
@@ -165,8 +172,9 @@ ifndef DUMP
$(foreach hook,$(Hooks/HostCompile/Post),$(call $(hook))$(sep))
touch $$@
+ $(call Host/Exports,$(HOST_STAMP_INSTALLED))
$(HOST_STAMP_INSTALLED): $(HOST_STAMP_BUILT) $(if $(FORCE_HOST_INSTALL),FORCE)
- $(call Host/Install)
+ $(call Host/Install,$(HOST_BUILD_PREFIX))
$(foreach hook,$(Hooks/HostInstall/Post),$(call $(hook))$(sep))
mkdir -p $$(shell dirname $$@)
touch $(HOST_STAMP_BUILT)
diff --git a/include/image.mk b/include/image.mk
index 9dfce111a6..a47a7087ef 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -15,9 +15,15 @@ override MAKE:=$(_SINGLE)$(SUBMAKE)
override NO_TRACE_MAKE:=$(_SINGLE)$(NO_TRACE_MAKE)
KDIR=$(KERNEL_BUILD_DIR)
-DTS_DIR:=$(LINUX_DIR)/arch/$(ARCH)/boot/dts/
+KDIR_TMP=$(KDIR)/tmp
+DTS_DIR:=$(LINUX_DIR)/arch/$(LINUX_KARCH)/boot/dts
-IMG_PREFIX:=openwrt-$(if $(CONFIG_VERSION_FILENAMES),$(VERSION_NUMBER)-)$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))
+sanitize = $(call tolower,$(subst _,-,$(1)))
+
+DIST_SANITIZED:=$(call sanitize,$(VERSION_DIST))
+EXTRA_NAME_SANITIZED=$(call sanitize,$(EXTRA_IMAGE_NAME))
+
+IMG_PREFIX:=$(DIST_SANITIZED)-$(if $(CONFIG_VERSION_FILENAMES),$(VERSION_NUMBER)-)$(if $(EXTRA_NAME_SANITIZED),$(EXTRA_NAME_SANITIZED)-)$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))
MKFS_DEVTABLE_OPT := -D $(INCLUDE_DIR)/device_table.txt
@@ -84,9 +90,7 @@ define add_jffs2_mark
echo -ne '\xde\xad\xc0\xde' >> $(1)
endef
-define toupper
-$(shell echo $(1) | tr '[:lower:]' '[:upper:]')
-endef
+PROFILE_SANITIZED := $(call sanitize,$(PROFILE))
define split_args
$(foreach data, \
@@ -131,9 +135,9 @@ endef
# $(3) extra CPP flags
# $(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 \
+ $(TARGET_CROSS)cpp -nostdinc -x assembler-with-cpp \
+ -I$(DTS_DIR) \
+ -I$(DTS_DIR)/include \
-undef -D__DTS__ $(3) \
-o $(2).tmp $(1)
$(LINUX_DIR)/scripts/dtc/dtc -O dtb \
@@ -169,7 +173,7 @@ $(eval $(foreach S,$(JFFS2_BLOCKSIZE),$(call Image/mkfs/jffs2/template,$(S))))
$(eval $(foreach S,$(NAND_BLOCKSIZE),$(call Image/mkfs/jffs2-nand/template,$(S))))
define Image/mkfs/squashfs
- $(STAGING_DIR_HOST)/bin/mksquashfs4 $(TARGET_DIR) $(KDIR)/root.squashfs -nopad -noappend -root-owned -comp $(SQUASHFSCOMP) $(SQUASHFSOPT) -processors $(if $(CONFIG_PKG_BUILD_JOBS),$(CONFIG_PKG_BUILD_JOBS),1)
+ $(STAGING_DIR_HOST)/bin/mksquashfs4 $(TARGET_DIR) $(KDIR)/root.squashfs -nopad -noappend -root-owned -comp $(SQUASHFSCOMP) $(SQUASHFSOPT) -processors $(if $(CONFIG_PKG_BUILD_JOBS),$(CONFIG_PKG_BUILD_JOBS),1) $(if $(SOURCE_DATE_EPOCH),-fixed-time $(SOURCE_DATE_EPOCH))
endef
# $(1): board name
@@ -182,7 +186,9 @@ ifneq ($(CONFIG_NAND_SUPPORT),)
[ -z "$(2)" ] || $(CP) "$(KDIR)/root.$(2)" "$(KDIR_TMP)/sysupgrade-$(1)/root"
[ -z "$(3)" ] || $(CP) "$(3)" "$(KDIR_TMP)/sysupgrade-$(1)/kernel"
(cd "$(KDIR_TMP)"; $(TAR) cvf \
- "$(BIN_DIR)/$(IMG_PREFIX)-$(1)-$(2)-sysupgrade.tar" sysupgrade-$(1))
+ "$(BIN_DIR)/$(IMG_PREFIX)-$(1)-$(2)-sysupgrade.tar" sysupgrade-$(1) \
+ $(if $(SOURCE_DATE_EPOCH),--mtime="@$(SOURCE_DATE_EPOCH)") \
+ )
endef
# $(1) board name
@@ -244,7 +250,9 @@ 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) -cp --numeric-owner --owner=0 --group=0 --sort=name \
+ $(if $(SOURCE_DATE_EPOCH),--mtime="@$(SOURCE_DATE_EPOCH)") \
+ -C $(TARGET_DIR)/ . | gzip -9n > $(BIN_DIR)/$(IMG_PREFIX)$(if $(PROFILE_SANITIZED),-$(PROFILE_SANITIZED))-rootfs.tar.gz
endef
E2SIZE=$(shell echo $$(($(CONFIG_TARGET_ROOTFS_PARTSIZE)*1024*1024)))
@@ -255,6 +263,7 @@ define Image/mkfs/ext4
-i $(CONFIG_TARGET_EXT4_MAXINODE) \
-m $(CONFIG_TARGET_EXT4_RESERVED_PCT) \
$(if $(CONFIG_TARGET_EXT4_JOURNAL),,-J) \
+ $(if $(SOURCE_DATE_EPOCH),-T $(SOURCE_DATE_EPOCH)) \
$(KDIR)/root.ext4 $(TARGET_DIR)/
endef
@@ -281,7 +290,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))
@@ -298,14 +307,78 @@ 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/tplink-safeloader
+ -$(STAGING_DIR_HOST)/bin/tplink-safeloader \
+ -B $(TPLINK_BOARD_NAME) \
+ -V $(REVISION) \
+ -k $(word 1,$^) \
+ -r $@ \
+ -o $@.new \
+ -j \
+ $(wordlist 2,$(words $(1)),$(1)) \
+ $(if $(findstring sysupgrade,$(word 1,$(1))),-S) && mv $@.new $@ || rm -f $@
+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
+ $(call Build/lzma-no-dict,-lc1 -lp2 -pb2 $(1))
+endef
+
+define Build/lzma-no-dict
+ $(STAGING_DIR_HOST)/bin/lzma e $@ $(1) $@.new
+ @mv $@.new $@
+endef
+
+define Build/gzip
+ gzip -9n -c $@ $(1) > $@.new
+ @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 $^ $@
+ cp $< $@
endef
define Build/patch-cmdline
@@ -320,6 +393,18 @@ 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 $(UBOOTENV_IN_UBI),--uboot-env) \
+ $(if $(KERNEL_IN_UBI),--kernel $(word 1,$^)) \
+ $(word 2,$^) \
+ $@.tmp \
+ -p $(BLOCKSIZE) -m $(PAGESIZE) -E 5 \
+ $(if $(SUBPAGESIZE),-s $(SUBPAGESIZE))
+ cat $@.tmp >> $@
+ rm $@.tmp
+endef
+
define Build/pad-to
dd if=$@ of=$@.new bs=$(1) conv=sync
mv $@.new $@
@@ -341,7 +426,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 +440,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:=
@@ -369,8 +463,10 @@ 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_DEPENDS :=
KERNEL_SIZE :=
FILESYSTEMS := $(TARGET_FILESYSTEMS)
@@ -381,7 +477,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 KERNEL_INITRAMFS_IMAGE,$(call Device/ExportVar,$(1),$(var)))
$(1) : FILESYSTEM:=$(2)
endef
@@ -395,18 +491,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) $(CURDIR)/Makefile $$(KERNEL_DEPENDS)
@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 $@; \
}
@@ -422,7 +518,7 @@ endef
define Device/Build/kernel
_KERNEL_IMAGES += $(KDIR)/$$(KERNEL_NAME)
- $(KDIR)/$$(KERNEL_NAME): image_prepare
+ $(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)
@@ -431,7 +527,7 @@ define Device/Build/kernel
ifdef CONFIG_IB
install: $(KDIR)/$$(KERNEL_IMAGE)
endif
- $(KDIR)/$$(KERNEL_IMAGE): $(KDIR)/$$(KERNEL_NAME)
+ $(KDIR)/$$(KERNEL_IMAGE): $(KDIR)/$$(KERNEL_NAME) $(CURDIR)/Makefile $$(KERNEL_DEPENDS)
@rm -f $$@
$$(call concat_cmd,$$(KERNEL))
$$(if $$(KERNEL_SIZE),$$(call Device/Build/check_size,$$(KERNEL_SIZE)))
@@ -508,9 +604,6 @@ define BuildImage
$(foreach device,$(TARGET_DEVICES),$(call Device,$(device)))
$(foreach fs,$(TARGET_FILESYSTEMS) $(fs-subtypes-y),$(call BuildImage/mkfs,$(fs)))
- $$(sort $$(_KERNEL_IMAGES)):
- @touch $$@
-
install: kernel_prepare
$(foreach fs,$(TARGET_FILESYSTEMS),
$(call Image/Build,$(fs))
diff --git a/include/kernel-build.mk b/include/kernel-build.mk
index 9abfd542e8..a52c90d9e7 100644
--- a/include/kernel-build.mk
+++ b/include/kernel-build.mk
@@ -54,7 +54,9 @@ ifdef CONFIG_COLLECT_KERNEL_DEBUG
$(STAGING_DIR_ROOT)/lib/modules/$(LINUX_VERSION)/* \
$(KERNEL_BUILD_DIR)/debug/modules/
$(FIND) $(KERNEL_BUILD_DIR)/debug -type f | $(XARGS) $(KERNEL_CROSS)strip --only-keep-debug
- $(TAR) c -C $(KERNEL_BUILD_DIR) debug | bzip2 -c -9 > $(BIN_DIR)/kernel-debug.tar.bz2
+ $(TAR) c -C $(KERNEL_BUILD_DIR) debug \
+ $(if $(SOURCE_DATE_EPOCH),--mtime="@$(SOURCE_DATE_EPOCH)") \
+ | bzip2 -c -9 > $(BIN_DIR)/kernel-debug.tar.bz2
endef
endif
@@ -125,6 +127,7 @@ define BuildKernel
$(MAKE) -C image compile TARGET_BUILD=
oldconfig menuconfig nconfig: $(STAMP_PREPARED) $(STAMP_CHECKED) FORCE
+ rm -f $(LINUX_DIR)/.config.prev
rm -f $(STAMP_CONFIGURED)
$(LINUX_RECONF_CMD) > $(LINUX_DIR)/.config
$(_SINGLE)$(MAKE) -C $(LINUX_DIR) $(KERNEL_MAKEOPTS) $$@
diff --git a/include/kernel-defaults.mk b/include/kernel-defaults.mk
index 24d26308b1..406fd46343 100644
--- a/include/kernel-defaults.mk
+++ b/include/kernel-defaults.mk
@@ -10,8 +10,11 @@ KERNEL_MAKEOPTS := -C $(LINUX_DIR) \
CROSS_COMPILE="$(KERNEL_CROSS)" \
ARCH="$(LINUX_KARCH)" \
KBUILD_HAVE_NLS=no \
+ KBUILD_BUILD_USER="$(call qstrip,$(CONFIG_KERNEL_BUILD_USER))" \
+ KBUILD_BUILD_HOST="$(call qstrip,$(CONFIG_KERNEL_BUILD_DOMAIN))" \
CONFIG_SHELL="$(BASH)" \
- $(if $(findstring c,$(OPENWRT_VERBOSE)),V=1,V='')
+ $(if $(findstring c,$(OPENWRT_VERBOSE)),V=1,V='') \
+ $(if $(PKG_BUILD_ID),LDFLAGS_MODULE=--build-id=0x$(PKG_BUILD_ID))
ifdef CONFIG_STRIP_KERNEL_EXPORTS
KERNEL_MAKEOPTS += \
@@ -79,6 +82,7 @@ ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y)
endif
define Kernel/SetInitramfs
+ rm -f $(LINUX_DIR)/.config.prev
mv $(LINUX_DIR)/.config $(LINUX_DIR)/.config.old
$(call Kernel/SetInitramfs/PreConfigure)
echo 'CONFIG_INITRAMFS_ROOT_UID=$(shell id -u)' >> $(LINUX_DIR)/.config
@@ -95,9 +99,9 @@ else
endif
define Kernel/SetNoInitramfs
- mv $(LINUX_DIR)/.config $(LINUX_DIR)/.config.old
- grep -v INITRAMFS $(LINUX_DIR)/.config.old > $(LINUX_DIR)/.config
- echo 'CONFIG_INITRAMFS_SOURCE=""' >> $(LINUX_DIR)/.config
+ mv $(LINUX_DIR)/.config.set $(LINUX_DIR)/.config.old
+ grep -v INITRAMFS $(LINUX_DIR)/.config.old > $(LINUX_DIR)/.config.set
+ echo 'CONFIG_INITRAMFS_SOURCE=""' >> $(LINUX_DIR)/.config.set
endef
define Kernel/Configure/Default
@@ -106,13 +110,17 @@ define Kernel/Configure/Default
awk '/^(#[[:space:]]+)?CONFIG_KERNEL/{sub("CONFIG_KERNEL_","CONFIG_");print}' $(TOPDIR)/.config >> $(LINUX_DIR)/.config.target
echo "# CONFIG_KALLSYMS_EXTRA_PASS is not set" >> $(LINUX_DIR)/.config.target
echo "# CONFIG_KALLSYMS_ALL is not set" >> $(LINUX_DIR)/.config.target
- echo "# CONFIG_KALLSYMS_UNCOMPRESSED is not set" >> $(LINUX_DIR)/.config.target
+ echo "CONFIG_KALLSYMS_UNCOMPRESSED=y" >> $(LINUX_DIR)/.config.target
$(SCRIPT_DIR)/metadata.pl kconfig $(TMP_DIR)/.packageinfo $(TOPDIR)/.config $(KERNEL_PATCHVER) > $(LINUX_DIR)/.config.override
- $(SCRIPT_DIR)/kconfig.pl 'm+' '+' $(LINUX_DIR)/.config.target /dev/null $(LINUX_DIR)/.config.override > $(LINUX_DIR)/.config
+ $(SCRIPT_DIR)/kconfig.pl 'm+' '+' $(LINUX_DIR)/.config.target /dev/null $(LINUX_DIR)/.config.override > $(LINUX_DIR)/.config.set
$(call Kernel/SetNoInitramfs)
rm -rf $(KERNEL_BUILD_DIR)/modules
+ cmp -s $(LINUX_DIR)/.config.set $(LINUX_DIR)/.config.prev || { \
+ cp $(LINUX_DIR)/.config.set $(LINUX_DIR)/.config; \
+ cp $(LINUX_DIR)/.config.set $(LINUX_DIR)/.config.prev; \
+ }
$(_SINGLE) [ -d $(LINUX_DIR)/user_headers ] || $(MAKE) $(KERNEL_MAKEOPTS) INSTALL_HDR_PATH=$(LINUX_DIR)/user_headers headers_install
- $(SH_FUNC) grep '=[ym]' $(LINUX_DIR)/.config | LC_ALL=C sort | md5s > $(LINUX_DIR)/.vermagic
+ $(SH_FUNC) grep '=[ym]' $(LINUX_DIR)/.config.set | LC_ALL=C sort | md5s > $(LINUX_DIR)/.vermagic
endef
define Kernel/Configure/Initramfs
@@ -132,13 +140,15 @@ IMAGES_DIR:=../../x86/boot
endif
define Kernel/CopyImage
- $(KERNEL_CROSS)objcopy -O binary $(OBJCOPY_STRIP) -S $(LINUX_DIR)/vmlinux $(LINUX_KERNEL)$(1)
- $(KERNEL_CROSS)objcopy $(OBJCOPY_STRIP) -S $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux$(1).elf
- $(CP) $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux.debug
- $(foreach k, \
- $(if $(KERNEL_IMAGES),$(KERNEL_IMAGES),$(filter-out dtbs,$(KERNELNAME))), \
- $(CP) $(LINUX_DIR)/arch/$(LINUX_KARCH)/boot/$(IMAGES_DIR)/$(k) $(KERNEL_BUILD_DIR)/$(k)$(1); \
- )
+ cmp -s $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux$(1).debug || { \
+ $(KERNEL_CROSS)objcopy -O binary $(OBJCOPY_STRIP) -S $(LINUX_DIR)/vmlinux $(LINUX_KERNEL)$(1); \
+ $(KERNEL_CROSS)objcopy $(OBJCOPY_STRIP) -S $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux$(1).elf; \
+ $(CP) $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux$(1).debug; \
+ $(foreach k, \
+ $(if $(KERNEL_IMAGES),$(KERNEL_IMAGES),$(filter-out dtbs,$(KERNELNAME))), \
+ $(CP) $(LINUX_DIR)/arch/$(LINUX_KARCH)/boot/$(IMAGES_DIR)/$(k) $(KERNEL_BUILD_DIR)/$(k)$(1); \
+ ) \
+ }
endef
define Kernel/CompileImage/Default
diff --git a/include/kernel-version.mk b/include/kernel-version.mk
index 8937cd0db8..ad7cf4a6b1 100644
--- a/include/kernel-version.mk
+++ b/include/kernel-version.mk
@@ -2,13 +2,13 @@
LINUX_RELEASE?=1
-LINUX_VERSION-3.18 = .20
-LINUX_VERSION-4.0 = .9
-LINUX_VERSION-4.1 = .4
+LINUX_VERSION-3.18 = .44
+LINUX_VERSION-4.1 = .35
+LINUX_VERSION-4.4 = .14
-LINUX_KERNEL_MD5SUM-3.18.20 = 952c9159acdf4efbc96e08a27109d994
-LINUX_KERNEL_MD5SUM-4.0.9 = 40fc5f6e2d718e539b45e6601c71985b
-LINUX_KERNEL_MD5SUM-4.1.4 = 32cb4dd9f14d37bf71bafa6ed368f769
+LINUX_KERNEL_MD5SUM-3.18.44 = 7c52da2f54381a84960118b5bf23381a
+LINUX_KERNEL_MD5SUM-4.1.35 = 14ca049674ee83a651be1dc69f5b8d2c
+LINUX_KERNEL_MD5SUM-4.4.14 = 59e99c3bf5d495f1f95d26257962ca3e
ifdef KERNEL_PATCHVER
LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
diff --git a/include/kernel.mk b/include/kernel.mk
index 7a0a170c35..432e8ce123 100644
--- a/include/kernel.mk
+++ b/include/kernel.mk
@@ -62,15 +62,17 @@ endif
ifneq (,$(findstring uml,$(BOARD)))
LINUX_KARCH=um
-else ifneq (,$(findstring $(ARCH), aarch64 aarch64_be))
+else ifneq (,$(findstring $(ARCH) , aarch64 aarch64_be ))
LINUX_KARCH := arm64
-else ifneq (,$(findstring $(ARCH), armeb))
+else ifneq (,$(findstring $(ARCH) , arceb ))
+ LINUX_KARCH := arc
+else ifneq (,$(findstring $(ARCH) , armeb ))
LINUX_KARCH := arm
-else ifneq (,$(findstring $(ARCH), mipsel mips64 mips64el))
+else ifneq (,$(findstring $(ARCH) , mipsel mips64 mips64el ))
LINUX_KARCH := mips
-else ifneq (,$(findstring $(ARCH), sh2 sh3 sh4))
+else ifneq (,$(findstring $(ARCH) , sh2 sh3 sh4 ))
LINUX_KARCH := sh
-else ifneq (,$(findstring $(ARCH), i386 x86_64))
+else ifneq (,$(findstring $(ARCH) , i386 x86_64 ))
LINUX_KARCH := x86
else
LINUX_KARCH := $(ARCH)
@@ -88,7 +90,7 @@ define ModuleAutoLoad
mods="$$$$$$$$1"; \
boot="$$$$$$$$2"; \
shift 2; \
- for mod in $$$$$$$$mods; do \
+ for mod in $(sort $$$$$$$$mods); do \
mkdir -p $(2)/etc/modules.d; \
echo "$$$$$$$$mod" >> $(2)/etc/modules.d/$(1); \
done; \
@@ -105,7 +107,7 @@ define ModuleAutoLoad
mods="$$$$$$$$2"; \
boot="$$$$$$$$3"; \
shift 3; \
- for mod in $$$$$$$$mods; do \
+ for mod in $(sort $$$$$$$$mods); do \
mkdir -p $(2)/etc/modules.d; \
echo "$$$$$$$$mod" >> $(2)/etc/modules.d/$$$$$$$$priority-$(1); \
done; \
@@ -153,6 +155,7 @@ define KernelPackage
DESCRIPTION:=$(DESCRIPTION)
EXTRA_DEPENDS:=kernel (=$(LINUX_VERSION)-$(LINUX_RELEASE)-$(LINUX_VERMAGIC))
VERSION:=$(LINUX_VERSION)$(if $(PKG_VERSION),+$(PKG_VERSION))-$(if $(PKG_RELEASE),$(PKG_RELEASE),$(LINUX_RELEASE))
+ PACKAGE_SUBDIR:=$(if $(FEED),$(FEED),kernel)
$(call KernelPackage/$(1))
$(call KernelPackage/$(1)/$(BOARD))
endef
@@ -178,7 +181,7 @@ $(call KernelPackage/$(1)/config)
$(call KernelPackage/depends)
ifneq ($(if $(filter-out %=y %=n %=m,$(KCONFIG)),$(filter m y,$(foreach c,$(filter-out %=y %=n %=m,$(KCONFIG)),$($(c)))),.),)
- ifneq ($(if $(SDK),$(filter-out $(LINUX_DIR)/%.ko,$(FILES)),$(strip $(FILES))),)
+ ifneq ($(strip $(FILES)),)
define Package/kmod-$(1)/install
@for mod in $$(call version_filter,$$(FILES)); do \
if grep -q "$$$$$$$${mod##$(LINUX_DIR)/}" "$(LINUX_DIR)/modules.builtin"; then \
diff --git a/include/netfilter.mk b/include/netfilter.mk
index 68af50b1df..2882d25fd7 100644
--- a/include/netfilter.mk
+++ b/include/netfilter.mk
@@ -38,13 +38,12 @@ $(eval $(if $(NF_KMOD),$(call nf_add,IPT_CORE,CONFIG_IP_NF_FILTER, $(P_V4)iptabl
$(eval $(if $(NF_KMOD),$(call nf_add,IPT_CORE,CONFIG_IP_NF_MANGLE, $(P_V4)iptable_mangle),))
# userland only
-$(eval $(if $(NF_KMOD),,$(call nf_add,IPT_CORE,CONFIG_IP_NF_IPTABLES, xt_standard ipt_icmp xt_tcp xt_udp xt_comment xt_id xt_set xt_SET)))
+$(eval $(if $(NF_KMOD),,$(call nf_add,IPT_CORE,CONFIG_IP_NF_IPTABLES, xt_standard ipt_icmp xt_tcp xt_udp xt_comment xt_set xt_SET)))
$(eval $(call nf_add,IPT_CORE,CONFIG_NETFILTER_XT_MATCH_LIMIT, $(P_XT)xt_limit))
$(eval $(call nf_add,IPT_CORE,CONFIG_NETFILTER_XT_MATCH_MAC, $(P_XT)xt_mac))
$(eval $(call nf_add,IPT_CORE,CONFIG_NETFILTER_XT_MATCH_MULTIPORT, $(P_XT)xt_multiport))
$(eval $(call nf_add,IPT_CORE,CONFIG_NETFILTER_XT_MATCH_COMMENT, $(P_XT)xt_comment))
-$(eval $(call nf_add,IPT_CORE,CONFIG_NETFILTER_XT_MATCH_ID, $(P_XT)xt_id))
#cluster
$(eval $(call nf_add,IPT_CLUSTER,CONFIG_NETFILTER_XT_MATCH_CLUSTER, $(P_XT)xt_cluster))
@@ -255,11 +254,17 @@ $(eval $(call nf_add,IPT_LED,CONFIG_NETFILTER_XT_TARGET_LED, $(P_XT)xt_LED))
# tee
$(eval $(call nf_add,IPT_TEE,CONFIG_NETFILTER_XT_TARGET_TEE, $(P_XT)xt_TEE))
+$(eval $(if $(NF_KMOD),$(call nf_add,IPT_TEE,CONFIG_NF_DUP_IPV4, $(P_V4)nf_dup_ipv4, ge 4.3),))
+$(eval $(if $(NF_KMOD),$(call nf_add,IPT_TEE,CONFIG_NF_DUP_IPV6, $(P_V6)nf_dup_ipv6, ge 4.3),))
# u32
$(eval $(call nf_add,IPT_U32,CONFIG_NETFILTER_XT_MATCH_U32, $(P_XT)xt_u32))
+# checksum
+
+$(eval $(call nf_add,IPT_CHECKSUM,CONFIG_NETFILTER_XT_TARGET_CHECKSUM, $(P_XT)xt_CHECKSUM))
+
# netlink
diff --git a/include/nls.mk b/include/nls.mk
index 118000d3ee..51463b9f12 100644
--- a/include/nls.mk
+++ b/include/nls.mk
@@ -28,12 +28,12 @@ PKG_BUILD_DEPENDS += !BUILD_NLS:libiconv !BUILD_NLS:libintl
ICONV_DEPENDS:=+BUILD_NLS:libiconv-full
ICONV_CFLAGS:=-I$(ICONV_PREFIX)/include
ICONV_CPPFLAGS:=-I$(ICONV_PREFIX)/include
-ICONV_LDFLAGS:=-L$(ICONV_PREFIX)/lib
+ICONV_LDFLAGS:=-L$(ICONV_PREFIX)/lib -Wl,-rpath-link=$(ICONV_PREFIX)/lib
INTL_DEPENDS:=+BUILD_NLS:libintl-full
INTL_CFLAGS:=-I$(INTL_PREFIX)/include
INTL_CPPFLAGS:=-I$(INTL_PREFIX)/include
-INTL_LDFLAGS:=-L$(INTL_PREFIX)/lib
+INTL_LDFLAGS:=-L$(INTL_PREFIX)/lib -Wl,-rpath-link=$(INTL_PREFIX)/lib
TARGET_CFLAGS += $(ICONV_CFLAGS) $(INTL_CFLAGS)
TARGET_CPPFLAGS += $(ICONV_CPPFLAGS) $(INTL_CPPFLAGS)
diff --git a/include/package-defaults.mk b/include/package-defaults.mk
index 2896b4c783..09efaa39b8 100644
--- a/include/package-defaults.mk
+++ b/include/package-defaults.mk
@@ -17,6 +17,7 @@ define Package/Default
CONFIGFILE:=
SECTION:=opt
CATEGORY:=Extra packages
+ PACKAGE_SUBDIR:=$(FEED)
DEPENDS:=
MDEPENDS:=
CONFLICTS:=
diff --git a/include/package-dumpinfo.mk b/include/package-dumpinfo.mk
index 5bc931e6ab..666e9635bb 100644
--- a/include/package-dumpinfo.mk
+++ b/include/package-dumpinfo.mk
@@ -51,7 +51,7 @@ $(if $(PKG_LICENSE),License: $(PKG_LICENSE)
$(if $(KCONFIG),Kernel-Config: $(KCONFIG)
)$(if $(BUILDONLY),Build-Only: $(BUILDONLY)
)$(if $(HIDDEN),Hidden: $(HIDDEN)
-)$(if $(FEED),Feed: $(FEED)
+)$(if $(PACKAGE_SUBDIR),Package-Subdir: $(PACKAGE_SUBDIR)
)Description: $(if $(Package/$(1)/description),$(Package/$(1)/description),$(TITLE))
$(if $(URL),$(URL)
)$(MAINTAINER)
diff --git a/include/package-ipkg.mk b/include/package-ipkg.mk
index eb4c874047..f06b651e07 100644
--- a/include/package-ipkg.mk
+++ b/include/package-ipkg.mk
@@ -131,6 +131,7 @@ ifeq ($(DUMP),)
$(eval $(call BuildIPKGVariable,$(1),prerm,-pkg,1))
$(eval $(call BuildIPKGVariable,$(1),postrm,,1))
+ $(STAGING_DIR_ROOT)/stamp/.$(1)_installed : export PATH=$$(TARGET_PATH_PKG)
$(STAGING_DIR_ROOT)/stamp/.$(1)_installed: $(STAMP_BUILT)
rm -rf $(STAGING_DIR_ROOT)/tmp-$(1)
mkdir -p $(STAGING_DIR_ROOT)/stamp $(STAGING_DIR_ROOT)/tmp-$(1)
@@ -170,6 +171,7 @@ $(_endef)
$(PKG_INFO_DIR)/$(1).provides: $$(IPKG_$(1))
$$(IPKG_$(1)) : export CONTROL=$$(Package/$(1)/CONTROL)
$$(IPKG_$(1)) : export DESCRIPTION=$$(Package/$(1)/description)
+ $$(IPKG_$(1)) : export PATH=$$(TARGET_PATH_PKG)
$$(IPKG_$(1)): $(STAMP_BUILT) $(INCLUDE_DIR)/package-ipkg.mk
@rm -rf $$(PDIR_$(1))/$(1)_* $$(IDIR_$(1))
mkdir -p $(PACKAGE_DIR) $$(IDIR_$(1))/CONTROL $(PKG_INFO_DIR)
diff --git a/include/package.mk b/include/package.mk
index 6538afe3e2..4962bd68d1 100644
--- a/include/package.mk
+++ b/include/package.mk
@@ -14,9 +14,10 @@ PKG_INSTALL_DIR ?= $(PKG_BUILD_DIR)/ipkg-install
PKG_MD5SUM ?= unknown
PKG_BUILD_PARALLEL ?=
PKG_USE_MIPS16 ?= 1
+PKG_IREMAP ?= 1
ifneq ($(CONFIG_PKG_BUILD_USE_JOBSERVER),)
- MAKE_J:=$(if $(MAKE_JOBSERVER),$(MAKE_JOBSERVER) -j)
+ MAKE_J:=$(if $(MAKE_JOBSERVER),$(MAKE_JOBSERVER) $(if $(filter 3.% 4.0 4.1,$(MAKE_VERSION)),-j))
else
MAKE_J:=-j$(CONFIG_PKG_BUILD_JOBS)
endif
@@ -33,6 +34,10 @@ ifdef CONFIG_USE_MIPS16
TARGET_CFLAGS += -mips16 -minterlink-mips16
endif
endif
+ifeq ($(strip $(PKG_IREMAP)),1)
+ IREMAP_CFLAGS = $(call iremap,$(PKG_BUILD_DIR),$(notdir $(PKG_BUILD_DIR)))
+ TARGET_CFLAGS += $(IREMAP_CFLAGS)
+endif
include $(INCLUDE_DIR)/hardening.mk
include $(INCLUDE_DIR)/prereq.mk
@@ -49,6 +54,7 @@ find_library_dependencies = $(wildcard $(patsubst %,$(STAGING_DIR)/pkginfo/%.ver
) \
))))
+PKG_DIR_NAME:=$(lastword $(subst /,$(space),$(CURDIR)))
STAMP_NO_AUTOREBUILD=$(wildcard $(PKG_BUILD_DIR)/.no_autorebuild)
PREV_STAMP_PREPARED:=$(if $(STAMP_NO_AUTOREBUILD),$(wildcard $(PKG_BUILD_DIR)/.prepared*))
ifneq ($(PREV_STAMP_PREPARED),)
@@ -60,9 +66,9 @@ endif
STAMP_CONFIGURED=$(PKG_BUILD_DIR)/.configured$(if $(DUMP),,_$(call confvar,$(PKG_CONFIG_DEPENDS)))
STAMP_CONFIGURED_WILDCARD=$(patsubst %_$(call confvar,$(PKG_CONFIG_DEPENDS)),%_*,$(STAMP_CONFIGURED))
STAMP_BUILT:=$(PKG_BUILD_DIR)/.built
-STAMP_INSTALLED:=$(STAGING_DIR)/stamp/.$(PKG_NAME)$(if $(BUILD_VARIANT),.$(BUILD_VARIANT),)_installed
+STAMP_INSTALLED:=$(STAGING_DIR)/stamp/.$(PKG_DIR_NAME)$(if $(BUILD_VARIANT),.$(BUILD_VARIANT),)_installed
-STAGING_FILES_LIST:=$(PKG_NAME)$(if $(BUILD_VARIANT),.$(BUILD_VARIANT),).list
+STAGING_FILES_LIST:=$(PKG_DIR_NAME)$(if $(BUILD_VARIANT),.$(BUILD_VARIANT),).list
define CleanStaging
rm -f $(STAMP_INSTALLED)
@@ -85,7 +91,6 @@ ifneq ($(wildcard $(PKG_BUILD_DIR)/.source_dir),)
QUILT:=1
endif
-PKG_DIR_NAME:=$(lastword $(subst /,$(space),$(CURDIR)))
PKG_INSTALL_STAMP:=$(PKG_INFO_DIR)/$(PKG_DIR_NAME).$(if $(BUILD_VARIANT),$(BUILD_VARIANT),default).install
include $(INCLUDE_DIR)/download.mk
@@ -190,28 +195,28 @@ define Build/DefaultTargets
$(STAMP_INSTALLED) : export PATH=$$(TARGET_PATH_PKG)
$(STAMP_INSTALLED): $(STAMP_BUILT)
- rm -rf $(TMP_DIR)/stage-$(PKG_NAME)
- mkdir -p $(TMP_DIR)/stage-$(PKG_NAME)/host $(STAGING_DIR)/packages $(STAGING_DIR_HOST)/packages
+ rm -rf $(TMP_DIR)/stage-$(PKG_DIR_NAME)
+ mkdir -p $(TMP_DIR)/stage-$(PKG_DIR_NAME)/host $(STAGING_DIR)/packages $(STAGING_DIR_HOST)/packages
$(foreach hook,$(Hooks/InstallDev/Pre),\
- $(call $(hook),$(TMP_DIR)/stage-$(PKG_NAME),$(TMP_DIR)/stage-$(PKG_NAME)/host)$(sep)\
+ $(call $(hook),$(TMP_DIR)/stage-$(PKG_DIR_NAME),$(TMP_DIR)/stage-$(PKG_DIR_NAME)/host)$(sep)\
)
- $(call Build/InstallDev,$(TMP_DIR)/stage-$(PKG_NAME),$(TMP_DIR)/stage-$(PKG_NAME)/host)
+ $(call Build/InstallDev,$(TMP_DIR)/stage-$(PKG_DIR_NAME),$(TMP_DIR)/stage-$(PKG_DIR_NAME)/host)
$(foreach hook,$(Hooks/InstallDev/Post),\
- $(call $(hook),$(TMP_DIR)/stage-$(PKG_NAME),$(TMP_DIR)/stage-$(PKG_NAME)/host)$(sep)\
+ $(call $(hook),$(TMP_DIR)/stage-$(PKG_DIR_NAME),$(TMP_DIR)/stage-$(PKG_DIR_NAME)/host)$(sep)\
)
if [ -f $(STAGING_DIR)/packages/$(STAGING_FILES_LIST) ]; then \
$(SCRIPT_DIR)/clean-package.sh \
"$(STAGING_DIR)/packages/$(STAGING_FILES_LIST)" \
"$(STAGING_DIR)"; \
fi
- if [ -d $(TMP_DIR)/stage-$(PKG_NAME) ]; then \
- (cd $(TMP_DIR)/stage-$(PKG_NAME); find ./ > $(TMP_DIR)/stage-$(PKG_NAME).files); \
+ if [ -d $(TMP_DIR)/stage-$(PKG_DIR_NAME) ]; then \
+ (cd $(TMP_DIR)/stage-$(PKG_DIR_NAME); find ./ > $(TMP_DIR)/stage-$(PKG_DIR_NAME).files); \
$(call locked, \
- mv $(TMP_DIR)/stage-$(PKG_NAME).files $(STAGING_DIR)/packages/$(STAGING_FILES_LIST) && \
- $(CP) $(TMP_DIR)/stage-$(PKG_NAME)/* $(STAGING_DIR)/; \
+ mv $(TMP_DIR)/stage-$(PKG_DIR_NAME).files $(STAGING_DIR)/packages/$(STAGING_FILES_LIST) && \
+ $(CP) $(TMP_DIR)/stage-$(PKG_DIR_NAME)/* $(STAGING_DIR)/; \
,staging-dir); \
fi
- rm -rf $(TMP_DIR)/stage-$(PKG_NAME)
+ rm -rf $(TMP_DIR)/stage-$(PKG_DIR_NAME)
touch $$@
ifdef Build/InstallDev
@@ -228,7 +233,7 @@ define Build/DefaultTargets
endef
define Build/IncludeOverlay
- $(eval -include $(wildcard $(TOPDIR)/overlay/*/$(PKG_NAME).mk))
+ $(eval -include $(wildcard $(TOPDIR)/overlay/*/$(PKG_DIR_NAME).mk))
define Build/IncludeOverlay
endef
endef
diff --git a/include/prereq-build.mk b/include/prereq-build.mk
index 211201af3d..a53065576c 100644
--- a/include/prereq-build.mk
+++ b/include/prereq-build.mk
@@ -60,15 +60,25 @@ $(eval $(call TestHostCommand,ncurses, \
echo 'int main(int argc, char **argv) { initscr(); return 0; }' | \
gcc -include ncurses.h -x c -o $(TMP_DIR)/a.out - -lncurses))
+ifeq ($(HOST_OS),Linux)
+ zlib_link_flags := -Wl,-Bstatic -lz -Wl,-Bdynamic
+else
+ zlib_link_flags := -lz
+endif
+
$(eval $(call TestHostCommand,zlib, \
- Please install zlib. (Missing libz.so or zlib.h), \
+ Please install a static zlib. (Missing libz.a or zlib.h), \
echo 'int main(int argc, char **argv) { gzdopen(0, "rb"); return 0; }' | \
- gcc -include zlib.h -x c -o $(TMP_DIR)/a.out - -lz))
+ gcc -include zlib.h -x c -o $(TMP_DIR)/a.out - $(zlib_link_flags)))
$(eval $(call TestHostCommand,libssl, \
Please install the openssl library (with development headers), \
echo 'int main(int argc, char **argv) { SSL_library_init(); return 0; }' | \
- gcc -include openssl/ssl.h -x c -o $(TMP_DIR)/a.out - -lcrypto -lssl))
+ gcc $(HOST_CFLAGS) -include openssl/ssl.h -x c -o $(TMP_DIR)/a.out - -lcrypto -lssl $(HOST_LDFLAGS)))
+
+$(eval $(call TestHostCommand,perl-thread-queue, \
+ Please install the Perl Thread::Queue module, \
+ perl -MThread::Queue -e 1))
$(eval $(call SetupHostCommand,tar,Please install GNU 'tar', \
@@ -144,14 +154,14 @@ $(eval $(call SetupHostCommand,python,Please install Python 2.x, \
$(eval $(call SetupHostCommand,svn,Please install the Subversion client, \
svn --version | grep Subversion))
-$(eval $(call SetupHostCommand,git,Please install Git (git-core) >= 1.6.5, \
- git clone 2>&1 | grep -- --recursive))
+$(eval $(call SetupHostCommand,git,Please install Git (git-core) >= 1.7.12.2, \
+ git --exec-path | xargs -I % -- grep -q -- --recursive %/git-submodule))
$(eval $(call SetupHostCommand,file,Please install the 'file' package, \
file --version 2>&1 | grep file))
$(eval $(call SetupHostCommand,openssl,Please install the 'openssl' utility, \
- openssl version | grep OpenSSL))
+ openssl version | grep '\(OpenSSL\|LibreSSL\)'))
# Install ldconfig stub
diff --git a/include/prereq.mk b/include/prereq.mk
index 33ac278232..6cb590e360 100644
--- a/include/prereq.mk
+++ b/include/prereq.mk
@@ -86,6 +86,7 @@ endef
# 3+: candidates
define SetupHostCommand
define Require/$(1)
+ [ -f "$(STAGING_DIR_HOST)/bin/$(strip $(1))" ] && exit 0; \
for cmd in $(call QuoteHostCommand,$(3)) $(call QuoteHostCommand,$(4)) \
$(call QuoteHostCommand,$(5)) $(call QuoteHostCommand,$(6)) \
$(call QuoteHostCommand,$(7)) $(call QuoteHostCommand,$(8)) \
diff --git a/include/quilt.mk b/include/quilt.mk
index 3377eb1055..b18b6364fe 100644
--- a/include/quilt.mk
+++ b/include/quilt.mk
@@ -17,6 +17,7 @@ HOST_FILES_DIR?=$(FILES_DIR)
ifeq ($(MAKECMDGOALS),refresh)
override QUILT=1
+ override HOST_QUILT=1
endif
QUILT_CMD:=quilt --quiltrc=-
diff --git a/include/site/arc b/include/site/arc
new file mode 100644
index 0000000000..72a3805c64
--- /dev/null
+++ b/include/site/arc
@@ -0,0 +1,30 @@
+#!/bin/sh
+. $TOPDIR/include/site/linux
+ac_cv_c_littleendian=${ac_cv_c_littleendian=yes}
+ac_cv_c_bigendian=${ac_cv_c_bigendian=no}
+
+ac_cv_sizeof___int64=0
+ac_cv_sizeof_char=1
+ac_cv_sizeof_int=4
+ac_cv_sizeof_int16_t=2
+ac_cv_sizeof_int32_t=4
+ac_cv_sizeof_int64_t=8
+ac_cv_sizeof_long_int=4
+ac_cv_sizeof_long_long=8
+ac_cv_sizeof_long=4
+ac_cv_sizeof_off_t=8
+ac_cv_sizeof_short_int=2
+ac_cv_sizeof_short=2
+ac_cv_sizeof_size_t=4
+ac_cv_sizeof_ssize_t=4
+ac_cv_sizeof_u_int16_t=2
+ac_cv_sizeof_u_int32_t=4
+ac_cv_sizeof_u_int64_t=8
+ac_cv_sizeof_uint16_t=2
+ac_cv_sizeof_uint32_t=4
+ac_cv_sizeof_uint64_t=8
+ac_cv_sizeof_unsigned_int=4
+ac_cv_sizeof_unsigned_long=4
+ac_cv_sizeof_unsigned_long_long=8
+ac_cv_sizeof_unsigned_short=2
+ac_cv_sizeof_void_p=4
diff --git a/include/subdir.mk b/include/subdir.mk
index 8dc9a78d7d..f4085f9df4 100644
--- a/include/subdir.mk
+++ b/include/subdir.mk
@@ -29,6 +29,20 @@ endef
lastdir=$(word $(words $(subst /, ,$(1))),$(subst /, ,$(1)))
diralias=$(if $(findstring $(1),$(call lastdir,$(1))),,$(call lastdir,$(1)))
+# 1: subdir
+# 2: target
+# 3: build type
+# 4: build variant
+log_make = \
+ $(if $(call debug,$(1),v),,@)+ \
+ $(if $(BUILD_LOG), \
+ set -o pipefail; \
+ mkdir -p $(BUILD_LOG_DIR)/$(1)$(if $(4),/$(4));) \
+ $$(SUBMAKE) -r -C $(1) $(if $(3),$(3)-)$(2) \
+ BUILD_SUBDIR="$(1)" \
+ BUILD_VARIANT="$(4)" \
+ $(if $(BUILD_LOG),SILENT= 2>&1 | tee $(BUILD_LOG_DIR)/$(1)$(if $(4),/$(4))/$(if $(3),$(3)-)$(2).txt)
+
# Parameters: <subdir>
define subdir
$(call warn,$(1),d,D $(1))
@@ -37,13 +51,15 @@ define subdir
$(foreach target,$(SUBTARGETS),
$(foreach btype,$(buildtypes-$(bd)),
$(call warn_eval,$(1)/$(bd),t,T,$(1)/$(bd)/$(btype)/$(target): $(if $(QUILT),,$($(1)/$(bd)/$(btype)/$(target)) $(call $(1)//$(btype)/$(target),$(1)/$(bd)/$(btype))))
- $(if $(call debug,$(1)/$(bd),v),,@)+$$(SUBMAKE) -r -C $(1)/$(bd) $(btype)-$(target) $(if $(findstring $(bd),$($(1)/builddirs-ignore-$(btype)-$(target))), || $(call ERROR,$(1), ERROR: $(1)/$(bd) [$(btype)] failed to build.))
+ $(call log_make,$(1)/$(bd),$(target),$(btype),$(filter-out __default,$(variant))) \
+ $(if $(findstring $(bd),$($(1)/builddirs-ignore-$(btype)-$(target))), || $(call ERROR,$(1), ERROR: $(1)/$(bd) [$(btype)] failed to build.))
$(if $(call diralias,$(bd)),$(call warn_eval,$(1)/$(bd),l,T,$(1)/$(call diralias,$(bd))/$(btype)/$(target): $(1)/$(bd)/$(btype)/$(target)))
)
$(call warn_eval,$(1)/$(bd),t,T,$(1)/$(bd)/$(target): $(if $(QUILT),,$($(1)/$(bd)/$(target)) $(call $(1)//$(target),$(1)/$(bd))))
- $(if $(BUILD_LOG),@mkdir -p $(BUILD_LOG_DIR)/$(1)/$(bd))
$(foreach variant,$(if $(BUILD_VARIANT),$(BUILD_VARIANT),$(if $(strip $($(1)/$(bd)/variants)),$($(1)/$(bd)/variants),$(if $($(1)/$(bd)/default-variant),$($(1)/$(bd)/default-variant),__default))),
- $(if $(call debug,$(1)/$(bd),v),,@)+$(if $(BUILD_LOG),set -o pipefail;) $$(SUBMAKE) -r -C $(1)/$(bd) $(target) BUILD_VARIANT="$(filter-out __default,$(variant))" $(if $(BUILD_LOG),SILENT= 2>&1 | tee $(BUILD_LOG_DIR)/$(1)/$(bd)/$(target).txt) $(if $(findstring $(bd),$($(1)/builddirs-ignore-$(target))), || $(call ERROR,$(1), ERROR: $(1)/$(bd) failed to build$(if $(filter-out __default,$(variant)), (build variant: $(variant))).))
+ $(if $(BUILD_LOG),@mkdir -p $(BUILD_LOG_DIR)/$(1)/$(bd)/$(filter-out __default,$(variant)))
+ $(call log_make,$(1)/$(bd),$(target),,$(filter-out __default,$(variant))) \
+ $(if $(findstring $(bd),$($(1)/builddirs-ignore-$(target))), || $(call ERROR,$(1), ERROR: $(1)/$(bd) failed to build$(if $(filter-out __default,$(variant)), (build variant: $(variant))).))
)
$(if $(PREREQ_ONLY)$(DUMP_TARGET_DB),,
# aliases
diff --git a/include/target.mk b/include/target.mk
index 3e7f17d57e..8211ba094f 100644
--- a/include/target.mk
+++ b/include/target.mk
@@ -12,11 +12,11 @@ __target_inc=1
DEVICE_TYPE?=router
# Default packages - the really basic set
-DEFAULT_PACKAGES:=base-files libc libgcc busybox dropbear mtd uci opkg netifd fstools
+DEFAULT_PACKAGES:=base-files libc libgcc busybox dropbear mtd uci opkg netifd fstools uclient-fetch logd
# For nas targets
DEFAULT_PACKAGES.nas:=block-mount fdisk lsblk mdadm
# For router targets
-DEFAULT_PACKAGES.router:=dnsmasq iptables ip6tables ppp ppp-mod-pppoe kmod-nf-nathelper firewall odhcpd odhcp6c
+DEFAULT_PACKAGES.router:=dnsmasq iptables ip6tables ppp ppp-mod-pppoe firewall odhcpd odhcp6c
DEFAULT_PACKAGES.bootloader:=
ifneq ($(DUMP),)
@@ -56,14 +56,14 @@ DEFAULT_PACKAGES += $(DEFAULT_PACKAGES.$(DEVICE_TYPE))
filter_packages = $(filter-out -% $(patsubst -%,%,$(filter -%,$(1))),$(1))
extra_packages = $(if $(filter wpad-mini wpad nas,$(1)),iwinfo)
-define Profile/Default
+define ProfileDefault
NAME:=
PACKAGES:=
endef
ifndef Profile
define Profile
- $(eval $(call Profile/Default))
+ $(eval $(call ProfileDefault))
$(eval $(call Profile/$(1)))
dumpinfo : $(call shexport,Profile/$(1)/Config)
dumpinfo : $(call shexport,Profile/$(1)/Description)
@@ -212,9 +212,11 @@ ifeq ($(DUMP),1)
CPU_CFLAGS_mips32 = -mips32 -mtune=mips32
CPU_CFLAGS_mips32r2 = -mips32r2 -mtune=mips32r2
CPU_CFLAGS_mips64 = -mips64 -mtune=mips64 -mabi=64
+ CPU_CFLAGS_24kc = -mips32r2 -mtune=24kc
CPU_CFLAGS_24kec = -mips32r2 -mtune=24kec
CPU_CFLAGS_34kc = -mips32r2 -mtune=34kc
CPU_CFLAGS_74kc = -mips32r2 -mtune=74kc
+ CPU_CFLAGS_1004kc = -mips32r2 -mtune=1004kc
CPU_CFLAGS_octeon = -march=octeon -mabi=64
CPU_CFLAGS_dsp = -mdsp
CPU_CFLAGS_dsp2 = -mdspr2
@@ -236,6 +238,7 @@ ifeq ($(DUMP),1)
CPU_CFLAGS_cortex-a8 = -march=armv7-a -mtune=cortex-a8
CPU_CFLAGS_cortex-a9 = -march=armv7-a -mtune=cortex-a9
CPU_CFLAGS_cortex-a15 = -march=armv7-a -mtune=cortex-a15
+ CPU_CFLAGS_cortex-a53 = -march=armv8-a -mtune=cortex-a53
CPU_CFLAGS_fa526 = -march=armv4 -mtune=fa526
CPU_CFLAGS_mpcore = -march=armv6k -mtune=mpcore
CPU_CFLAGS_xscale = -march=armv5te -mtune=xscale
@@ -243,6 +246,7 @@ ifeq ($(DUMP),1)
CPU_CFLAGS_neon = -mfpu=neon
CPU_CFLAGS_vfp = -mfpu=vfp
CPU_CFLAGS_vfpv3 = -mfpu=vfpv3-d16
+ CPU_CFLAGS_neon-vfpv4 = -mfpu=neon-vfpv4
endif
endif
ifeq ($(ARCH),powerpc)
@@ -259,6 +263,12 @@ ifeq ($(DUMP),1)
CPU_TYPE ?= armv8-a
CPU_CFLAGS_armv8-a = -mcpu=armv8-a
endif
+ ifeq ($(ARCH),arc)
+ CPU_TYPE ?= arc700
+ CPU_CFLAGS += -matomic
+ CPU_CFLAGS_arc700 = -marc700
+ CPU_CFLAGS_archs = -marchs
+ endif
DEFAULT_CFLAGS=$(strip $(CPU_CFLAGS) $(CPU_CFLAGS_$(CPU_TYPE)) $(CPU_CFLAGS_$(CPU_SUBTYPE)))
endif
diff --git a/include/toplevel.mk b/include/toplevel.mk
index 11b2dd9e29..97093021ba 100644
--- a/include/toplevel.mk
+++ b/include/toplevel.mk
@@ -6,7 +6,7 @@
# See /LICENSE for more information.
#
-RELEASE:=Chaos Calmer
+RELEASE:=Designated Driver
PREP_MK= OPENWRT_BUILD= QUIET=0
export IS_TTY=$(shell tty -s && echo 1 || echo 0)
@@ -20,14 +20,11 @@ else
endif
HOSTCC ?= $(CC)
-OPENWRTVERSION:=$(RELEASE)$(if $(REVISION), ($(REVISION)))
export RELEASE
export REVISION
-export OPENWRTVERSION
-export LD_LIBRARY_PATH:=$(subst ::,:,$(if $(LD_LIBRARY_PATH),$(LD_LIBRARY_PATH):)$(TOPDIR)/staging_dir/host/lib)
-export DYLD_LIBRARY_PATH:=$(subst ::,:,$(if $(DYLD_LIBRARY_PATH),$(DYLD_LIBRARY_PATH):)$(TOPDIR)/staging_dir/host/lib)
export GIT_CONFIG_PARAMETERS='core.autocrlf=false'
export MAKE_JOBSERVER=$(filter --jobserver%,$(MAKEFLAGS))
+export SOURCE_DATE_EPOCH:=$(shell $(TOPDIR)/scripts/get_source_date_epoch.sh)
# prevent perforce from messing with the patch utility
unexport P4PORT P4USER P4CONFIG P4CLIENT
@@ -42,6 +39,14 @@ unexport LPATH
# make sure that a predefined CFLAGS variable does not disturb packages
export CFLAGS=
+export LDFLAGS=
+
+empty:=
+space:= $(empty) $(empty)
+path:=$(subst :,$(space),$(PATH))
+path:=$(filter-out .%,$(path))
+path:=$(subst $(space),:,$(path))
+export PATH:=$(path)
unexport TAR_OPTIONS
@@ -65,6 +70,12 @@ ULIMIT_FIX=_limit=`ulimit -n`; [ "$$_limit" = "unlimited" -o "$$_limit" -ge 1024
prepare-mk: FORCE ;
+ifdef SDK
+ IGNORE_PACKAGES = linux
+endif
+
+_ignore = $(foreach p,$(IGNORE_PACKAGES),--ignore $(p))
+
prepare-tmpinfo: FORCE
@+$(MAKE) -r -s staging_dir/host/.prereq-build $(PREP_MK)
mkdir -p tmp/info
@@ -72,11 +83,11 @@ prepare-tmpinfo: FORCE
$(_SINGLE)$(NO_TRACE_MAKE) -j1 -r -s -f include/scan.mk SCAN_TARGET="targetinfo" SCAN_DIR="target/linux" SCAN_NAME="target" SCAN_DEPS="profiles/*.mk $(TOPDIR)/include/kernel*.mk $(TOPDIR)/include/target.mk" SCAN_DEPTH=2 SCAN_EXTRA="" SCAN_MAKEOPTS="TARGET_BUILD=1"
for type in package target; do \
f=tmp/.$${type}info; t=tmp/.config-$${type}.in; \
- [ "$$t" -nt "$$f" ] || ./scripts/metadata.pl $${type}_config "$$f" > "$$t" || { rm -f "$$t"; echo "Failed to build $$t"; false; break; }; \
+ [ "$$t" -nt "$$f" ] || ./scripts/metadata.pl $(_ignore) $${type}_config "$$f" > "$$t" || { rm -f "$$t"; echo "Failed to build $$t"; false; break; }; \
done
- [ tmp/.config-feeds.in -nt tmp/.packagefeeds ] || ./scripts/feeds feed_config > tmp/.config-feeds.in
+ [ tmp/.config-feeds.in -nt tmp/.packagesubdirs ] || ./scripts/feeds feed_config > tmp/.config-feeds.in
./scripts/metadata.pl package_mk tmp/.packageinfo > tmp/.packagedeps || { rm -f tmp/.packagedeps; false; }
- ./scripts/metadata.pl package_feeds tmp/.packageinfo > tmp/.packagefeeds || { rm -f tmp/.packagefeeds; false; }
+ ./scripts/metadata.pl package_subdirs tmp/.packageinfo > tmp/.packagesubdirs || { rm -f tmp/.packagesubdirs; false; }
touch $(TOPDIR)/tmp/.build
.config: ./scripts/config/conf $(if $(CONFIG_HAVE_DOT_CONFIG),,prepare-tmpinfo)
@@ -217,7 +228,7 @@ docs/clean: FORCE
@$(_SINGLE)$(SUBMAKE) -C docs clean
distclean:
- rm -rf tmp build_dir staging_dir dl .config* feeds package/feeds package/openwrt-packages bin
+ rm -rf bin build_dir .config* dl feeds key-build* logs package/feeds package/openwrt-packages staging_dir tmp
@$(_SINGLE)$(SUBMAKE) -C scripts/config clean
ifeq ($(findstring v,$(DEBUG)),)
diff --git a/include/version.mk b/include/version.mk
index 69141ff696..4bce0965ca 100644
--- a/include/version.mk
+++ b/include/version.mk
@@ -14,6 +14,7 @@ PKG_CONFIG_DEPENDS += \
CONFIG_VERSION_REPO \
CONFIG_VERSION_DIST \
CONFIG_VERSION_MANUFACTURER \
+ CONFIG_VERSION_MANUFACTURER_URL \
CONFIG_VERSION_PRODUCT \
CONFIG_VERSION_HWREV \
@@ -38,6 +39,9 @@ VERSION_DIST:=$(if $(VERSION_DIST),$(VERSION_DIST),OpenWrt)
VERSION_MANUFACTURER:=$(call qstrip_escape,$(CONFIG_VERSION_MANUFACTURER))
VERSION_MANUFACTURER:=$(if $(VERSION_MANUFACTURER),$(VERSION_MANUFACTURER),OpenWrt)
+VERSION_MANUFACTURER_URL:=$(call qstrip_escape,$(CONFIG_VERSION_MANUFACTURER_URL))
+VERSION_MANUFACTURER_URL:=$(if $(VERSION_MANUFACTURER_URL),$(VERSION_MANUFACTURER_URL),http://www.openwrt.org/)
+
VERSION_PRODUCT:=$(call qstrip_escape,$(CONFIG_VERSION_PRODUCT))
VERSION_PRODUCT:=$(if $(VERSION_PRODUCT),$(VERSION_PRODUCT),Generic)
@@ -82,6 +86,7 @@ VERSION_SED:=$(SED) 's,%U,$(VERSION_REPO),g' \
-e 's,%S,$(BOARD)/$(if $(SUBTARGET),$(SUBTARGET),generic),g' \
-e 's,%t,$(VERSION_TAINTS),g' \
-e 's,%M,$(VERSION_MANUFACTURER),g' \
+ -e 's,%m,$(VERSION_MANUFACTURER_URL),g' \
-e 's,%P,$(VERSION_PRODUCT),g' \
-e 's,%h,$(VERSION_HWREV),g'