diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/autotools.mk | 4 | ||||
-rw-r--r-- | include/cmake.mk | 15 | ||||
-rw-r--r-- | include/download.mk | 16 | ||||
-rw-r--r-- | include/feeds.mk | 6 | ||||
-rw-r--r-- | include/host-build.mk | 34 | ||||
-rw-r--r-- | include/image.mk | 141 | ||||
-rw-r--r-- | include/kernel-build.mk | 5 | ||||
-rw-r--r-- | include/kernel-defaults.mk | 38 | ||||
-rw-r--r-- | include/kernel-version.mk | 12 | ||||
-rw-r--r-- | include/kernel.mk | 19 | ||||
-rw-r--r-- | include/netfilter.mk | 9 | ||||
-rw-r--r-- | include/nls.mk | 4 | ||||
-rw-r--r-- | include/package-defaults.mk | 1 | ||||
-rw-r--r-- | include/package-dumpinfo.mk | 2 | ||||
-rw-r--r-- | include/package-ipkg.mk | 2 | ||||
-rw-r--r-- | include/package.mk | 35 | ||||
-rw-r--r-- | include/prereq-build.mk | 22 | ||||
-rw-r--r-- | include/prereq.mk | 1 | ||||
-rw-r--r-- | include/quilt.mk | 1 | ||||
-rw-r--r-- | include/site/arc | 30 | ||||
-rw-r--r-- | include/subdir.mk | 22 | ||||
-rw-r--r-- | include/target.mk | 18 | ||||
-rw-r--r-- | include/toplevel.mk | 29 | ||||
-rw-r--r-- | include/version.mk | 5 |
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' |