diff options
Diffstat (limited to 'include')
36 files changed, 348 insertions, 228 deletions
diff --git a/include/autotools.mk b/include/autotools.mk index 879659856..7ebeff6c7 100644 --- a/include/autotools.mk +++ b/include/autotools.mk @@ -83,6 +83,15 @@ define patch_libtool_target $(PKG_BUILD_DIR))) 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') && \ + $(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 +endef + ifneq ($(filter patch-libtool,$(PKG_FIXUP)),) Hooks/Configure/Pre += patch_libtool_target endif @@ -107,6 +116,10 @@ ifneq ($(filter autoreconf,$(PKG_FIXUP)),) endif endif +ifneq ($(filter gettext-version,$(PKG_FIXUP)),) + Hooks/Configure/Pre += gettext_version_target +endif + HOST_FIXUP?=$(PKG_FIXUP) HOST_LIBTOOL_PATHS?=$(if $(PKG_LIBTOOL_PATHS),$(PKG_LIBTOOL_PATHS),.) diff --git a/include/cmake.mk b/include/cmake.mk index 4c4af502c..64a0654f9 100644 --- a/include/cmake.mk +++ b/include/cmake.mk @@ -4,6 +4,8 @@ ifneq ($(findstring c,$(OPENWRT_VERBOSE)),) MAKE_FLAGS+=VERBOSE=1 endif +CMAKE_SOURCE_DIR:=. + ifeq ($(CONFIG_CCACHE),) ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),) CMAKE_C_COMPILER:=$(TOOLCHAIN_DIR)/bin/$(TARGET_CC) @@ -53,8 +55,9 @@ define Build/Configure/Default -DCMAKE_STRIP=: \ -DCMAKE_INSTALL_PREFIX=/usr \ -DDL_LIBRARY=$(STAGING_DIR) \ + -DCMAKE_PREFIX_PATH=$(STAGING_DIR) \ $(CMAKE_OPTIONS) \ - . \ + $(CMAKE_SOURCE_DIR) \ ) endef diff --git a/include/download.mk b/include/download.mk index 823ddf93f..372db0319 100644 --- a/include/download.mk +++ b/include/download.mk @@ -29,8 +29,8 @@ $(strip \ endef # code for creating tarballs from cvs/svn/git/bzr/hg/darcs checkouts - useful for mirror support -dl_pack/bz2=$(TAR) cfj $(1) $(2) -dl_pack/gz=$(TAR) cfz $(1) $(2) +dl_pack/bz2=$(TAR) cjf $(1) $(2) +dl_pack/gz=$(TAR) czf $(1) $(2) dl_pack/unknown=echo "ERROR: Unknown pack format for file $(1)"; false define dl_pack $(if $(dl_pack/$(call ext,$(1))),$(dl_pack/$(call ext,$(1))),$(dl_pack/unknown)) diff --git a/include/host-build.mk b/include/host-build.mk index c4fcf94f1..126671a0b 100644 --- a/include/host-build.mk +++ b/include/host-build.mk @@ -9,11 +9,17 @@ HOST_BUILD_DIR ?= $(BUILD_DIR_HOST)/$(PKG_NAME)$(if $(PKG_VERSION),-$(PKG_VERSIO 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) +else + HOST_MAKE_J:=-j$(CONFIG_PKG_BUILD_JOBS) +endif + ifeq ($(strip $(HOST_BUILD_PARALLEL)),0) HOST_JOBS?=-j1 else HOST_JOBS?=$(if $(HOST_BUILD_PARALLEL)$(CONFIG_PKG_DEFAULT_PARALLEL),\ - $(if $(CONFIG_PKG_BUILD_PARALLEL),-j$(CONFIG_PKG_BUILD_JOBS),-j1),-j1) + $(if $(CONFIG_PKG_BUILD_PARALLEL),$(HOST_MAKE_J),-j1),-j1) endif include $(INCLUDE_DIR)/host.mk @@ -63,7 +69,9 @@ HOST_CONFIGURE_ARGS = \ --localstatedir=$(STAGING_DIR_HOST)/var \ --sbindir=$(STAGING_DIR_HOST)/bin -HOST_CONFIGURE_CMD = ./configure +HOST_MAKE_FLAGS = + +HOST_CONFIGURE_CMD = $(BASH) ./configure ifneq ($(HOST_OS),Darwin) ifeq ($(CONFIG_BUILD_STATIC_TOOLS),y) @@ -72,7 +80,7 @@ ifneq ($(HOST_OS),Darwin) endif define Host/Configure/Default - (cd $(HOST_BUILD_DIR)/$(3); \ + $(if $(HOST_CONFIGURE_PARALLEL),+)(cd $(HOST_BUILD_DIR)/$(3); \ if [ -x configure ]; then \ $(CP) $(SCRIPT_DIR)/config.{guess,sub} $(HOST_BUILD_DIR)/$(3)/ && \ $(2) \ @@ -89,7 +97,9 @@ define Host/Configure endef define Host/Compile/Default - $(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) $(1) + +$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) \ + $(HOST_MAKE_FLAGS) \ + $(1) endef define Host/Compile @@ -130,6 +140,8 @@ define Host/Exports/Default endef Host/Exports=$(Host/Exports/Default) +.NOTPARALLEL: + ifndef DUMP define HostBuild $(if $(HOST_QUILT),$(Host/Quilt)) @@ -152,42 +164,31 @@ ifndef DUMP touch $$@ $(call Host/Exports,$(HOST_STAMP_BUILT)) - ifdef Host/Install - host-install: $(if $(STAMP_BUILT),$(HOST_STAMP_BUILT),$(HOST_STAMP_INSTALLED)) - endif - - ifndef STAMP_BUILT - prepare: host-prepare - compile: host-compile - install: host-install - clean: host-clean - update: host-update - refresh: host-refresh - - $(HOST_STAMP_BUILT): $(HOST_STAMP_CONFIGURED) + $(HOST_STAMP_BUILT): $(HOST_STAMP_CONFIGURED) $(foreach hook,$(Hooks/HostCompile/Pre),$(call $(hook))$(sep)) $(call Host/Compile) $(foreach hook,$(Hooks/HostCompile/Post),$(call $(hook))$(sep)) touch $$@ - $(HOST_STAMP_INSTALLED): $(HOST_STAMP_BUILT) $(if $(FORCE_HOST_INSTALL),FORCE) + $(HOST_STAMP_INSTALLED): $(HOST_STAMP_BUILT) $(if $(FORCE_HOST_INSTALL),FORCE) $(call Host/Install) $(foreach hook,$(Hooks/HostInstall/Post),$(call $(hook))$(sep)) mkdir -p $$(shell dirname $$@) touch $$@ - else - $(HOST_STAMP_BUILT): $(HOST_STAMP_CONFIGURED) $(if $(FORCE_HOST_INSTALL),FORCE) - $(foreach hook,$(Hooks/HostCompile/Pre),$(call $(hook))$(sep)) - $(call Host/Compile) - $(foreach hook,$(Hooks/HostCompile/Post),$(call $(hook))$(sep)) - $(call Host/Install) - $(foreach hook,$(Hooks/HostInstall/Post),$(call $(hook))$(sep)) - touch $$@ + + ifndef STAMP_BUILT + prepare: host-prepare + compile: host-compile + install: host-install + clean: host-clean + update: host-update + refresh: host-refresh endif + host-prepare: $(HOST_STAMP_PREPARED) host-configure: $(HOST_STAMP_CONFIGURED) - host-compile: $(HOST_STAMP_BUILT) - host-install: + host-compile: $(HOST_STAMP_BUILT) $(if $(STAMP_BUILT),$(HOST_STAMP_INSTALLED)) + host-install: $(HOST_STAMP_INSTALLED) host-clean: FORCE $(call Host/Clean) $(call Host/Uninstall) diff --git a/include/host.mk b/include/host.mk index 9b8a32b67..b44c1bf1a 100644 --- a/include/host.mk +++ b/include/host.mk @@ -62,6 +62,9 @@ $(TMP_DIR)/.host.mk: $(TOPDIR)/include/host.mk PATCH=`which gpatch 2>/dev/null`; \ [ -n "$$PATCH" -a -x "$$PATCH" ] || PATCH=`which patch 2>/dev/null`; \ echo "PATCH:=$$PATCH" >> $@; \ + PYTHON=`which python2.7 2>/dev/null`; \ + [ -n "$$PYTHON" -a -x "$$PYTHON" ] || PYTHON=`which python 2>/dev/null`; \ + echo "PYTHON:=$$PYTHON" >> $@; \ ) endif diff --git a/include/image.mk b/include/image.mk index 1977fc84c..302228816 100644 --- a/include/image.mk +++ b/include/image.mk @@ -18,9 +18,9 @@ KDIR=$(KERNEL_BUILD_DIR) IMG_PREFIX:=openwrt-$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET)) ifneq ($(CONFIG_BIG_ENDIAN),) - JFFS2OPTS := --pad --big-endian --squash -v + JFFS2OPTS := --pad --big-endian --squash-uids -v else - JFFS2OPTS := --pad --little-endian --squash -v + JFFS2OPTS := --pad --little-endian --squash-uids -v endif ifeq ($(CONFIG_JFFS2_RTIME),y) @@ -50,7 +50,10 @@ ifeq ($(CONFIG_SQUASHFS_LZMA),y) SQUASHFSCOMP := lzma $(LZMA_XZ_OPTIONS) endif ifeq ($(CONFIG_SQUASHFS_XZ),y) - SQUASHFSCOMP := xz $(LZMA_XZ_OPTIONS) + ifneq ($(filter arm x86 powerpc sparc,$(LINUX_KARCH)),) + BCJ_FILTER:=-Xbcj $(LINUX_KARCH) + endif + SQUASHFSCOMP := xz $(LZMA_XZ_OPTIONS) $(BCJ_FILTER) endif JFFS2_BLOCKSIZE ?= 64k 128k @@ -98,6 +101,7 @@ else define Image/mkfs/ubifs $(CP) ./ubinize.cfg $(KDIR) $(STAGING_DIR_HOST)/bin/mkfs.ubifs $(UBIFS_OPTS) -o $(KDIR)/root.ubifs -d $(TARGET_DIR) + $(call Image/Build,ubifs) (cd $(KDIR); \ $(STAGING_DIR_HOST)/bin/ubinize $(UBINIZE_OPTS) -o $(KDIR)/root.ubi ubinize.cfg) $(call Image/Build,ubi) @@ -124,7 +128,7 @@ ifneq ($(CONFIG_TARGET_ROOTFS_EXT4FS),) define Image/mkfs/ext4 # generate an ext2 fs - $(STAGING_DIR_HOST)/bin/genext2fs -U -b $(E2SIZE) -N $(CONFIG_TARGET_ROOTFS_MAXINODE) -d $(TARGET_DIR)/ $(KDIR)/root.ext4 + $(STAGING_DIR_HOST)/bin/genext2fs -U -b $(E2SIZE) -N $(CONFIG_TARGET_ROOTFS_MAXINODE) -d $(TARGET_DIR)/ $(KDIR)/root.ext4 -m $(CONFIG_TARGET_ROOTFS_RESERVED_PCT) # convert it to ext4 $(STAGING_DIR_HOST)/bin/tune2fs -O extents,uninit_bg,dir_index $(KDIR)/root.ext4 # fix it up diff --git a/include/kernel-build.mk b/include/kernel-build.mk index cf8737c8e..095940c57 100644 --- a/include/kernel-build.mk +++ b/include/kernel-build.mk @@ -67,25 +67,33 @@ define BuildKernel $(Kernel/Prepare) touch $$@ - $(KERNEL_BUILD_DIR)/symtab.txt: FORCE + $(KERNEL_BUILD_DIR)/symtab.h: FORCE + rm -f $(KERNEL_BUILD_DIR)/symtab.h + touch $(KERNEL_BUILD_DIR)/symtab.h + +$(MAKE) $(KERNEL_MAKEOPTS) vmlinux find $(LINUX_DIR) $(STAGING_DIR_ROOT)/lib/modules -name \*.ko | \ xargs $(TARGET_CROSS)nm | \ awk '$$$$1 == "U" { print $$$$2 } ' | \ - sort -u > $$@ - - $(KERNEL_BUILD_DIR)/symtab.h: $(KERNEL_BUILD_DIR)/symtab.txt + sort -u > $(KERNEL_BUILD_DIR)/mod_symtab.txt + $(TARGET_CROSS)nm -n $(LINUX_DIR)/vmlinux.o | grep ' r __ksymtab' | sed -e 's,........ r __ksymtab_,,' > $(KERNEL_BUILD_DIR)/kernel_symtab.txt + grep -f $(KERNEL_BUILD_DIR)/mod_symtab.txt $(KERNEL_BUILD_DIR)/kernel_symtab.txt > $(KERNEL_BUILD_DIR)/sym_include.txt + grep -vf $(KERNEL_BUILD_DIR)/mod_symtab.txt $(KERNEL_BUILD_DIR)/kernel_symtab.txt > $(KERNEL_BUILD_DIR)/sym_exclude.txt ( \ echo '#define SYMTAB_KEEP \'; \ - cat $(KERNEL_BUILD_DIR)/symtab.txt | \ - awk '{print "*(__ksymtab." $$$$1 ") \\" }'; \ + cat $(KERNEL_BUILD_DIR)/sym_include.txt | \ + awk '{print "KEEP(*(___ksymtab+" $$$$1 ")) \\" }'; \ echo; \ echo '#define SYMTAB_KEEP_GPL \'; \ - cat $(KERNEL_BUILD_DIR)/symtab.txt | \ - awk '{print "*(__ksymtab_gpl." $$$$1 ") \\" }'; \ + cat $(KERNEL_BUILD_DIR)/sym_include.txt | \ + awk '{print "KEEP(*(___ksymtab_gpl+" $$$$1 ")) \\" }'; \ + echo; \ + echo '#define SYMTAB_DISCARD \'; \ + cat $(KERNEL_BUILD_DIR)/sym_exclude.txt | \ + awk '{print "*(___ksymtab+" $$$$1 ") \\" }'; \ echo; \ - echo '#define SYMTAB_KEEP_STR \'; \ - cat $(KERNEL_BUILD_DIR)/symtab.txt | \ - awk '{print "*(__ksymtab_strings." $$$$1 ") \\" }'; \ + echo '#define SYMTAB_DISCARD_GPL \'; \ + cat $(KERNEL_BUILD_DIR)/sym_exclude.txt | \ + awk '{print "*(___ksymtab_gpl+" $$$$1 ") \\" }'; \ echo; \ ) > $$@ diff --git a/include/kernel-defaults.mk b/include/kernel-defaults.mk index 3b1086952..043b56865 100644 --- a/include/kernel-defaults.mk +++ b/include/kernel-defaults.mk @@ -31,21 +31,21 @@ Kernel/Patch:=$(Kernel/Patch/Default) ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE)),"") ifeq ($(strip $(CONFIG_KERNEL_GIT_CLONE_URI)),"") define Kernel/Prepare/Default - bzcat $(DL_DIR)/$(LINUX_SOURCE) | $(TAR) -C $(KERNEL_BUILD_DIR) $(TAR_OPTIONS) + xzcat $(DL_DIR)/$(LINUX_SOURCE) | $(TAR) -C $(KERNEL_BUILD_DIR) $(TAR_OPTIONS) $(Kernel/Patch) touch $(LINUX_DIR)/.quilt_used endef else ifeq ($(strip $(CONFIG_KERNEL_GIT_LOCAL_REPOSITORY)),"") -define Kernel/Prepare/Default + define Kernel/Prepare/Default git clone $(CONFIG_KERNEL_GIT_CLONE_URI) $(LINUX_DIR) - endef - else - define Kernel/Prepare/Default + endef + else + define Kernel/Prepare/Default git clone --reference $(CONFIG_KERNEL_GIT_LOCAL_REPOSITORY) $(CONFIG_KERNEL_GIT_CLONE_URI) $(LINUX_DIR) - endef + endef + endif endif -endif else define Kernel/Prepare/Default mkdir -p $(KERNEL_BUILD_DIR) @@ -58,41 +58,36 @@ endif ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y) ifeq ($(strip $(CONFIG_EXTERNAL_CPIO)),"") - define Kernel/SetInitramfs - mv $(LINUX_DIR)/.config $(LINUX_DIR)/.config.old - grep -v -e INITRAMFS -e CONFIG_RD_ -e CONFIG_BLK_DEV_INITRD $(LINUX_DIR)/.config.old > $(LINUX_DIR)/.config - echo 'CONFIG_BLK_DEV_INITRD=y' >> $(LINUX_DIR)/.config - echo 'CONFIG_INITRAMFS_SOURCE="$(strip $(TARGET_DIR) $(INITRAMFS_EXTRA_FILES))"' >> $(LINUX_DIR)/.config - echo 'CONFIG_INITRAMFS_ROOT_UID=$(shell id -u)' >> $(LINUX_DIR)/.config - echo 'CONFIG_INITRAMFS_ROOT_GID=$(shell id -g)' >> $(LINUX_DIR)/.config - echo "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_NONE),CONFIG_INITRAMFS_COMPRESSION_NONE=y,# CONFIG_INITRAMFS_COMPRESSION_NONE is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_GZIP),CONFIG_INITRAMFS_COMPRESSION_GZIP=y\nCONFIG_RD_GZIP=y,# CONFIG_INITRAMFS_COMPRESSION_GZIP is not set\n# CONFIG_RD_GZIP is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_BZIP2),CONFIG_INITRAMFS_COMPRESSION_BZIP2=y\nCONFIG_RD_BZIP2=y,# CONFIG_INITRAMFS_COMPRESSION_BZIP2 is not set\n# CONFIG_RD_BZIP2 is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZMA),CONFIG_INITRAMFS_COMPRESSION_LZMA=y\nCONFIG_RD_LZMA=y,# CONFIG_INITRAMFS_COMPRESSION_LZMA is not set\n# CONFIG_RD_LZMA is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZO),CONFIG_INITRAMFS_COMPRESSION_LZO=y\nCONFIG_RD_LZO=y,# CONFIG_INITRAMFS_COMPRESSION_LZO is not set\n# CONFIG_RD_LZO is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_XZ),CONFIG_INITRAMFS_COMPRESSION_XZ=y\nCONFIG_RD_XZ=y,# CONFIG_INITRAMFS_COMPRESSION_XZ is not set\n# CONFIG_RD_XZ is not set)" >> $(LINUX_DIR)/.config + define Kernel/SetInitramfs/PreConfigure + grep -v -e INITRAMFS -e CONFIG_RD_ -e CONFIG_BLK_DEV_INITRD $(LINUX_DIR)/.config.old > $(LINUX_DIR)/.config + echo 'CONFIG_BLK_DEV_INITRD=y' >> $(LINUX_DIR)/.config + echo 'CONFIG_INITRAMFS_SOURCE="$(strip $(TARGET_DIR) $(INITRAMFS_EXTRA_FILES))"' >> $(LINUX_DIR)/.config endef else - define Kernel/SetInitramfs - mv $(LINUX_DIR)/.config $(LINUX_DIR)/.config.old - grep -v INITRAMFS $(LINUX_DIR)/.config.old > $(LINUX_DIR)/.config - echo 'CONFIG_INITRAMFS_SOURCE="$(call qstrip,$(CONFIG_EXTERNAL_CPIO))"' >> $(LINUX_DIR)/.config - echo 'CONFIG_INITRAMFS_ROOT_UID=$(shell id -u)' >> $(LINUX_DIR)/.config - echo 'CONFIG_INITRAMFS_ROOT_GID=$(shell id -g)' >> $(LINUX_DIR)/.config - echo "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_NONE),CONFIG_INITRAMFS_COMPRESSION_NONE=y,# CONFIG_INITRAMFS_COMPRESSION_NONE is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_GZIP),CONFIG_INITRAMFS_COMPRESSION_GZIP=y\nCONFIG_RD_GZIP=y,# CONFIG_INITRAMFS_COMPRESSION_GZIP is not set\n# CONFIG_RD_GZIP is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_BZIP2),CONFIG_INITRAMFS_COMPRESSION_BZIP2=y\nCONFIG_RD_BZIP2=y,# CONFIG_INITRAMFS_COMPRESSION_BZIP2 is not set\n# CONFIG_RD_BZIP2 is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZMA),CONFIG_INITRAMFS_COMPRESSION_LZMA=y\nCONFIG_RD_LZMA=y,# CONFIG_INITRAMFS_COMPRESSION_LZMA is not set\n# CONFIG_RD_LZMA is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZO),CONFIG_INITRAMFS_COMPRESSION_LZO=y\nCONFIG_RD_LZO=y,# CONFIG_INITRAMFS_COMPRESSION_LZO is not set\n# CONFIG_RD_LZO is not set)" >> $(LINUX_DIR)/.config - echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_XZ),CONFIG_INITRAMFS_COMPRESSION_XZ=y\nCONFIG_RD_XZ=y,# CONFIG_INITRAMFS_COMPRESSION_XZ is not set\n# CONFIG_RD_XZ is not set)" >> $(LINUX_DIR)/.config + define Kernel/SetInitramfs/PreConfigure + grep -v INITRAMFS $(LINUX_DIR)/.config.old > $(LINUX_DIR)/.config + echo 'CONFIG_INITRAMFS_SOURCE="$(call qstrip,$(CONFIG_EXTERNAL_CPIO))"' >> $(LINUX_DIR)/.config endef endif + + define Kernel/SetInitramfs + mv $(LINUX_DIR)/.config $(LINUX_DIR)/.config.old + $(call Kernel/SetInitramfs/PreConfigure) + echo 'CONFIG_INITRAMFS_ROOT_UID=$(shell id -u)' >> $(LINUX_DIR)/.config + echo 'CONFIG_INITRAMFS_ROOT_GID=$(shell id -g)' >> $(LINUX_DIR)/.config + echo "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_NONE),CONFIG_INITRAMFS_COMPRESSION_NONE=y,# CONFIG_INITRAMFS_COMPRESSION_NONE is not set)" >> $(LINUX_DIR)/.config + echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_GZIP),CONFIG_INITRAMFS_COMPRESSION_GZIP=y\nCONFIG_RD_GZIP=y,# CONFIG_INITRAMFS_COMPRESSION_GZIP is not set\n# CONFIG_RD_GZIP is not set)" >> $(LINUX_DIR)/.config + echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_BZIP2),CONFIG_INITRAMFS_COMPRESSION_BZIP2=y\nCONFIG_RD_BZIP2=y,# CONFIG_INITRAMFS_COMPRESSION_BZIP2 is not set\n# CONFIG_RD_BZIP2 is not set)" >> $(LINUX_DIR)/.config + echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZMA),CONFIG_INITRAMFS_COMPRESSION_LZMA=y\nCONFIG_RD_LZMA=y,# CONFIG_INITRAMFS_COMPRESSION_LZMA is not set\n# CONFIG_RD_LZMA is not set)" >> $(LINUX_DIR)/.config + echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZO),CONFIG_INITRAMFS_COMPRESSION_LZO=y\nCONFIG_RD_LZO=y,# CONFIG_INITRAMFS_COMPRESSION_LZO is not set\n# CONFIG_RD_LZO is not set)" >> $(LINUX_DIR)/.config + echo -e "$(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_XZ),CONFIG_INITRAMFS_COMPRESSION_XZ=y\nCONFIG_RD_XZ=y,# CONFIG_INITRAMFS_COMPRESSION_XZ is not set\n# CONFIG_RD_XZ is not set)" >> $(LINUX_DIR)/.config + endef else - define Kernel/SetInitramfs - 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 - endef + define Kernel/SetInitramfs + 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 + endef endif define Kernel/Configure/Default @@ -107,13 +102,13 @@ ifeq ($(CONFIG_TARGET_realtek),y) endif 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_KPROBES is not set" >> $(LINUX_DIR)/.config.target $(SCRIPT_DIR)/metadata.pl kconfig $(TMP_DIR)/.packageinfo $(TOPDIR)/.config > $(LINUX_DIR)/.config.override $(SCRIPT_DIR)/kconfig.pl 'm+' '+' $(LINUX_DIR)/.config.target /dev/null $(LINUX_DIR)/.config.override > $(LINUX_DIR)/.config $(call Kernel/SetInitramfs) - -$(_SINGLE)$(MAKE) $(KERNEL_MAKEOPTS) oldconfig prepare scripts rm -rf $(KERNEL_BUILD_DIR)/modules - $(MAKE) $(KERNEL_MAKEOPTS) INSTALL_HDR_PATH=$(LINUX_DIR)/user_headers headers_install + [ -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 endef diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 68cf67689..e883a78aa 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -2,44 +2,20 @@ LINUX_RELEASE?=1 -ifeq ($(LINUX_VERSION),2.6.30.10) - LINUX_KERNEL_MD5SUM:=eb6be465f914275967a5602cb33662f5 -endif -ifeq ($(LINUX_VERSION),2.6.31.14) - LINUX_KERNEL_MD5SUM:=3e7feb224197d8e174a90dd3759979fd -endif -ifeq ($(LINUX_VERSION),2.6.32.33) - LINUX_KERNEL_MD5SUM:=2b4e5ed210534d9b4f5a563089dfcc80 -endif -ifeq ($(LINUX_VERSION),2.6.34.8) - LINUX_KERNEL_MD5SUM:=6dedac89df1af57b08981fcc6ad387db -endif -ifeq ($(LINUX_VERSION),2.6.35.11) - LINUX_KERNEL_MD5SUM:=4c9ee33801f5ad0f4d5e615fac66d535 -endif -ifeq ($(LINUX_VERSION),2.6.36.4) - LINUX_KERNEL_MD5SUM:=c05dd941d0e249695e9f72568888e1bf -endif -ifeq ($(LINUX_VERSION),2.6.37.6) - LINUX_KERNEL_MD5SUM:=05970afdce8ec4323a10dcd42bc4fb0c -endif -ifeq ($(LINUX_VERSION),2.6.38.8) - LINUX_KERNEL_MD5SUM:=d27b85795c6bc56b5a38d7d31bf1d724 -endif -ifeq ($(LINUX_VERSION),2.6.39.4) - LINUX_KERNEL_MD5SUM:=a17c748c2070168f1e784e9605ca043d +ifeq ($(LINUX_VERSION),3.3.8) + LINUX_KERNEL_MD5SUM:=f1058f64eed085deb44f10cee8541d50 endif -ifeq ($(LINUX_VERSION),3.0.18) - LINUX_KERNEL_MD5SUM:=67252770d7009eabe8bac7c26e074f9d +ifeq ($(LINUX_VERSION),3.6.11) + LINUX_KERNEL_MD5SUM:=3d602ad7f7984509c3e923a5ae90bc54 endif -ifeq ($(LINUX_VERSION),3.1.10) - LINUX_KERNEL_MD5SUM:=3649bdaa50ffd9114cc16486ec54d83a +ifeq ($(LINUX_VERSION),3.7.10) + LINUX_KERNEL_MD5SUM:=09624c3702107076efcac5e1cd8a18ec endif -ifeq ($(LINUX_VERSION),3.2.16) - LINUX_KERNEL_MD5SUM:=246e6bd28ea44c90ec66c7f8b56e4803 +ifeq ($(LINUX_VERSION),3.8.12) + LINUX_KERNEL_MD5SUM:=a4be720ca9e61445562565856bb5154d endif -ifeq ($(LINUX_VERSION),3.3.8) - LINUX_KERNEL_MD5SUM:=21068f0fd262b9b3670947f7892e1d6b +ifeq ($(LINUX_VERSION),3.9.3) + LINUX_KERNEL_MD5SUM:=266e58f4e2f68f48b906ae109aba4dea endif # disable the md5sum check for unknown kernel versions diff --git a/include/kernel.mk b/include/kernel.mk index d154e6bc0..fc0d3d349 100644 --- a/include/kernel.mk +++ b/include/kernel.mk @@ -33,9 +33,11 @@ else PATCH_DIR ?= ./patches$(if $(wildcard ./patches-$(KERNEL_PATCHVER)),-$(KERNEL_PATCHVER)) FILES_DIR ?= $(foreach dir,$(wildcard ./files ./files-$(KERNEL_PATCHVER)),"$(dir)") endif - KERNEL_BUILD_DIR ?= $(BUILD_DIR_BASE)/linux-$(BOARD)$(if $(SUBTARGET),_$(SUBTARGET))$(if $(BUILD_SUFFIX),_$(BUILD_SUFFIX)) + KERNEL_BUILD_DIR ?= $(BUILD_DIR)/linux-$(BOARD)$(if $(SUBTARGET),_$(SUBTARGET)) LINUX_DIR ?= $(KERNEL_BUILD_DIR)/linux-$(LINUX_VERSION) - + ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,3.7.0)),1) + LINUX_UAPI_DIR=uapi/ + endif LINUX_VERMAGIC:=$(strip $(shell cat $(LINUX_DIR)/.vermagic 2>/dev/null)) LINUX_VERMAGIC:=$(if $(LINUX_VERMAGIC),$(LINUX_VERMAGIC),unknown) @@ -49,14 +51,10 @@ else LINUX_KERNEL:=$(KERNEL_BUILD_DIR)/vmlinux - LINUX_SOURCE:=linux-$(LINUX_VERSION).tar.bz2 + LINUX_SOURCE:=linux-$(LINUX_VERSION).tar.xz TESTING:=$(if $(findstring -rc,$(LINUX_VERSION)),/testing,) ifeq ($(call qstrip,$(CONFIG_EXTERNAL_KERNEL_TREE))$(call qstrip,$(CONFIG_KERNEL_GIT_CLONE_URI)),) - ifeq ($(word 1,$(subst ., ,$(KERNEL_BASE))),3) LINUX_SITE:=@KERNEL/linux/kernel/v3.x$(TESTING) - else - LINUX_SITE:=@KERNEL/linux/kernel/v$(KERNEL)$(TESTING) - endif endif ifneq ($(TARGET_BUILD),1) @@ -106,7 +104,7 @@ define ModuleAutoLoad mkdir -p $(2)/CONTROL; \ echo "#!/bin/sh" > $(2)/CONTROL/postinst; \ echo "[ -z \"\$$$$$$$$IPKG_INSTROOT\" ] || exit 0" >> $(2)/CONTROL/postinst; \ - echo ". /etc/functions.sh" >> $(2)/CONTROL/postinst; \ + echo ". /lib/functions.sh" >> $(2)/CONTROL/postinst; \ echo "load_modules $$$$$$$$modules" >> $(2)/CONTROL/postinst; \ chmod 0755 $(2)/CONTROL/postinst; \ fi @@ -165,11 +163,11 @@ $(call KernelPackage/$(1)/config) if grep -q "$$$$$$$${mod##$(LINUX_DIR)/}" "$(LINUX_DIR)/modules.builtin"; then \ echo "NOTICE: module '$$$$$$$$mod' is built-in."; \ else \ - echo "ERROR: module '$$$$$$$$mod' is missing."; \ + echo "ERROR: module '$$$$$$$$mod' is missing." >&2; \ exit 1; \ fi; \ else \ - echo "WARNING: module '$$$$$$$$mod' missing and modules.builtin not available, assuming built-in."; \ + echo "WARNING: module '$$$$$$$$mod' missing and modules.builtin not available, assuming built-in." >&2; \ fi; \ done; $(call ModuleAutoLoad,$(1),$$(1),$(AUTOLOAD)) @@ -180,7 +178,7 @@ $(call KernelPackage/$(1)/config) else compile: kmod-$(1)-unavailable kmod-$(1)-unavailable: - @echo "WARNING: kmod-$(1) is not available in the kernel config" + @echo "WARNING: kmod-$(1) is not available in the kernel config" >&2 ) endif $$(eval $$(call BuildPackage,kmod-$(1))) diff --git a/include/ltqtapi.mk b/include/ltqtapi.mk index 7699d30d1..f4d06add7 100644 --- a/include/ltqtapi.mk +++ b/include/ltqtapi.mk @@ -1,12 +1,12 @@ -LTQ_TAPI_BUILD_DEPENDS:=TARGET_lantiq_danube:kmod-ltq-tapi \ - TARGET_lantiq_danube:kmod-ltq-vmmc \ +LTQ_TAPI_BUILD_DEPENDS:=TARGET_lantiq_xway:kmod-ltq-tapi \ + TARGET_lantiq_xway:kmod-ltq-vmmc \ TARGET_lantiq_falcon:kmod-ltq-tapi \ TARGET_lantiq_falcon:kmod-ltq-vmmc -LTQ_TAPI_TARGET:=@(TARGET_lantiq_falcon||TARGET_lantiq_danube) +LTQ_TAPI_TARGET:=@(TARGET_lantiq_falcon||TARGET_lantiq_xway) LTQ_TAPI_DEPENDS:=$(LTQ_TAPI_TARGET) \ - +TARGET_lantiq_danube:kmod-ltq-tapi \ - +TARGET_lantiq_danube:kmod-ltq-vmmc \ + +TARGET_lantiq_xway:kmod-ltq-tapi \ + +TARGET_lantiq_xway:kmod-ltq-vmmc \ +TARGET_lantiq_falcon:kmod-ltq-tapi \ +TARGET_lantiq_falcon:kmod-ltq-vmmc diff --git a/include/netfilter.mk b/include/netfilter.mk index f5a3961cb..74c279bfb 100644 --- a/include/netfilter.mk +++ b/include/netfilter.mk @@ -1,5 +1,5 @@ # -# Copyright (C) 2006-2010 OpenWrt.org +# Copyright (C) 2006-2012 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -15,9 +15,15 @@ P_XT:=netfilter/ P_EBT:=bridge/netfilter/ endif +# 1: variable +# 2: kconfig symbols +# 3: file list +# 4: version dependency define nf_add - $(1)-$$($(2)) += $(3) - KCONFIG_$(1) += $(2) + $(if $(4),ifeq ($$(strip $$(call CompareKernelPatchVer,$$(KERNEL_PATCHVER),$(firstword $(4)),$(lastword $(4)))),1)) + $(1)-$$($(2)) += $(3) + $(if $(4),endif) + KCONFIG_$(1) = $(filter-out $(2),$(KCONFIG_$(1))) $(2) endef @@ -30,16 +36,25 @@ $(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))) +$(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_IP_NF_TARGET_LOG, $(P_V4)ipt_LOG)) +$(eval $(call nf_add,IPT_CORE,CONFIG_NETFILTER_XT_TARGET_LOG, $(P_XT)xt_LOG, ge 3.4.0)) +$(eval $(call nf_add,IPT_CORE,CONFIG_IP_NF_TARGET_LOG, $(P_V4)ipt_LOG, lt 3.4.0)) $(eval $(call nf_add,IPT_CORE,CONFIG_NETFILTER_XT_TARGET_TCPMSS, $(P_XT)xt_TCPMSS)) $(eval $(call nf_add,IPT_CORE,CONFIG_IP_NF_TARGET_REJECT, $(P_V4)ipt_REJECT)) +$(eval $(call nf_add,IPT_CORE,CONFIG_NETFILTER_XT_MATCH_TIME, $(P_XT)xt_time)) +$(eval $(call nf_add,IPT_CORE,CONFIG_NETFILTER_XT_MATCH_MARK, $(P_XT)xt_mark)) + +# kernel has xt_MARK.ko merged into xt_mark.ko, userspace is still separate +# kernel: xt_mark.ko +$(eval $(if $(NF_KMOD),$(call nf_add,IPT_CORE,CONFIG_NETFILTER_XT_TARGET_MARK, $(P_XT)xt_mark))) +# userland: xt_MARK.so +$(eval $(if $(NF_KMOD),,$(call nf_add,IPT_CORE,CONFIG_NETFILTER_XT_TARGET_MARK, $(P_XT)xt_MARK))) # conntrack @@ -51,7 +66,7 @@ $(eval $(if $(NF_KMOD),$(call nf_add,IPT_CONNTRACK,CONFIG_NF_CONNTRACK_IPV4, $(P $(eval $(call nf_add,IPT_CONNTRACK,CONFIG_NETFILTER_XT_MATCH_STATE, $(P_XT)xt_state)) $(eval $(call nf_add,IPT_CONNTRACK,CONFIG_IP_NF_RAW, $(P_V4)iptable_raw)) -$(eval $(call nf_add,IPT_CONNTRACK,CONFIG_NETFILTER_XT_TARGET_NOTRACK, $(P_XT)xt_NOTRACK)) +$(eval $(call nf_add,IPT_CONNTRACK,CONFIG_NETFILTER_XT_TARGET_NOTRACK, $(P_XT)xt_NOTRACK, lt 3.7.0)) $(eval $(call nf_add,IPT_CONNTRACK,CONFIG_NETFILTER_XT_TARGET_CT, $(P_XT)xt_CT)) $(eval $(call nf_add,IPT_CONNTRACK,CONFIG_NETFILTER_XT_MATCH_CONNTRACK, $(P_XT)xt_conntrack)) @@ -69,8 +84,7 @@ $(eval $(if $(NF_KMOD),,$(call nf_add,IPT_CONNTRACK_EXTRA,CONFIG_NETFILTER_XT_TA # extra -# kernel only - +$(eval $(call nf_add,IPT_EXTRA,CONFIG_NETFILTER_XT_MATCH_ADDRTYPE, $(if $(NF_KMOD),$(P_XT)xt_addrtype,$(P_XT)ipt_addrtype))) $(eval $(call nf_add,IPT_EXTRA,CONFIG_NETFILTER_XT_MATCH_OWNER, $(P_XT)xt_owner)) $(eval $(call nf_add,IPT_EXTRA,CONFIG_NETFILTER_XT_MATCH_PHYSDEV, $(P_XT)xt_physdev)) $(eval $(call nf_add,IPT_EXTRA,CONFIG_NETFILTER_XT_MATCH_PKTTYPE, $(P_XT)xt_pkttype)) @@ -87,32 +101,16 @@ $(eval $(call nf_add,IPT_FILTER,CONFIG_NETFILTER_XT_MATCH_STRING, $(P_XT)xt_stri # ipopt -$(eval $(call nf_add,IPT_IPOPT,CONFIG_IP_NF_TARGET_DSCP, $(P_V4)ipt_DSCP)) $(eval $(call nf_add,IPT_IPOPT,CONFIG_NETFILTER_XT_MATCH_DSCP, $(P_XT)xt_dscp)) $(eval $(call nf_add,IPT_IPOPT,CONFIG_NETFILTER_XT_TARGET_DSCP, $(P_XT)xt_DSCP)) $(eval $(call nf_add,IPT_HASHLIMIT,CONFIG_NETFILTER_XT_MATCH_HASHLIMIT, $(P_XT)xt_hashlimit)) -$(eval $(call nf_add,IPT_IPOPT,CONFIG_IP_NF_MATCH_LENGTH, $(P_V4)ipt_length)) $(eval $(call nf_add,IPT_IPOPT,CONFIG_NETFILTER_XT_MATCH_LENGTH, $(P_XT)xt_length)) -$(eval $(call nf_add,IPT_IPOPT,CONFIG_IP_NF_MATCH_MARK, $(P_V4)ipt_mark)) -$(eval $(call nf_add,IPT_IPOPT,CONFIG_NETFILTER_XT_MATCH_MARK, $(P_XT)xt_mark)) $(eval $(call nf_add,IPT_IPOPT,CONFIG_NETFILTER_XT_MATCH_STATISTIC, $(P_XT)xt_statistic)) -$(eval $(call nf_add,IPT_IPOPT,CONFIG_IP_NF_MATCH_TCPMSS, $(P_V4)ipt_tcpmss)) $(eval $(call nf_add,IPT_IPOPT,CONFIG_NETFILTER_XT_MATCH_TCPMSS, $(P_XT)xt_tcpmss)) -$(eval $(call nf_add,IPT_IPOPT,CONFIG_IP_NF_MATCH_TIME, $(P_V4)ipt_time)) -$(eval $(call nf_add,IPT_IPOPT,CONFIG_NETFILTER_XT_MATCH_TIME, $(P_XT)xt_time)) -$(eval $(call nf_add,IPT_IPOPT,CONFIG_IP_NF_MATCH_UNCLEAN, $(P_V4)ipt_unclean)) -$(eval $(call nf_add,IPT_IPOPT,CONFIG_IP_NF_TARGET_CLASSIFY, $(P_V4)ipt_CLASSIFY )) $(eval $(call nf_add,IPT_IPOPT,CONFIG_NETFILTER_XT_TARGET_CLASSIFY, $(P_XT)xt_CLASSIFY)) $(eval $(call nf_add,IPT_IPOPT,CONFIG_IP_NF_MATCH_DSCP, $(P_V4)ipt_dscp)) $(eval $(call nf_add,IPT_IPOPT,CONFIG_IP_NF_TARGET_ECN, $(P_V4)ipt_ECN)) -$(eval $(call nf_add,IPT_IPOPT,CONFIG_IP_NF_TARGET_MARK, $(P_V4)ipt_MARK)) - -# kernel has xt_MARK.ko merged into xt_mark.ko, userspace is still separate -# kernel: xt_mark.ko -$(eval $(if $(NF_KMOD),$(call nf_add,IPT_IPOPT,CONFIG_NETFILTER_XT_TARGET_MARK, $(P_XT)xt_mark))) -# userland: xt_MARK.so -$(eval $(if $(NF_KMOD),,$(call nf_add,IPT_IPOPT,CONFIG_NETFILTER_XT_TARGET_MARK, $(P_XT)xt_MARK))) $(eval $(call nf_add,IPT_IPOPT,CONFIG_NETFILTER_XT_MATCH_ECN, $(P_XT)xt_ecn)) @@ -146,6 +144,8 @@ $(eval $(if $(NF_KMOD),$(call nf_add,IPT_IPV6,CONFIG_IP6_NF_MANGLE, $(P_V6)ip6ta $(eval $(if $(NF_KMOD),$(call nf_add,IPT_IPV6,CONFIG_IP6_NF_QUEUE, $(P_V6)ip6_queue),)) $(eval $(if $(NF_KMOD),$(call nf_add,IPT_IPV6,CONFIG_IP6_NF_RAW, $(P_V6)ip6table_raw),)) +$(eval $(if $(NF_KMOD),,$(call nf_add,IPT_IPV6,CONFIG_IP6_NF_IPTABLES, ip6t_icmp6))) + $(eval $(call nf_add,IPT_IPV6,CONFIG_IP6_NF_MATCH_AH, $(P_V6)ip6t_ah)) $(eval $(call nf_add,IPT_IPV6,CONFIG_IP6_NF_MATCH_EUI64, $(P_V6)ip6t_eui64)) $(eval $(call nf_add,IPT_IPV6,CONFIG_IP6_NF_MATCH_FRAG, $(P_V6)ip6t_frag)) @@ -160,34 +160,40 @@ $(eval $(call nf_add,IPT_IPV6,CONFIG_IP6_NF_TARGET_REJECT, $(P_V6)ip6t_REJECT)) # nat # kernel only -$(eval $(if $(NF_KMOD),$(call nf_add,IPT_NAT,CONFIG_NF_NAT, $(P_V4)nf_nat $(P_V4)iptable_nat),)) +$(eval $(if $(NF_KMOD),$(call nf_add,IPT_NAT,CONFIG_NF_NAT, $(P_XT)nf_nat $(P_V4)nf_nat_ipv4 $(P_XT)xt_nat $(P_V4)iptable_nat, ge 3.7.0),)) +$(eval $(if $(NF_KMOD),$(call nf_add,IPT_NAT,CONFIG_NF_NAT, $(P_V4)nf_nat $(P_V4)iptable_nat, lt 3.7.0),)) # userland only $(eval $(if $(NF_KMOD),,$(call nf_add,IPT_NAT,CONFIG_NF_NAT, ipt_SNAT ipt_DNAT))) $(eval $(call nf_add,IPT_NAT,CONFIG_IP_NF_TARGET_MASQUERADE, $(P_V4)ipt_MASQUERADE)) +$(eval $(call nf_add,IPT_NAT,CONFIG_IP_NF_TARGET_REDIRECT, $(P_XT)xt_REDIRECT, ge 3.7.0)) +$(eval $(call nf_add,IPT_NAT,CONFIG_IP_NF_TARGET_REDIRECT, $(P_V4)ipt_REDIRECT, lt 3.7.0)) # nat-extra -$(eval $(call nf_add,IPT_NAT_EXTRA,CONFIG_IP_NF_TARGET_NETMAP, $(P_V4)ipt_NETMAP)) -$(eval $(call nf_add,IPT_NAT_EXTRA,CONFIG_IP_NF_TARGET_REDIRECT, $(P_V4)ipt_REDIRECT)) +$(eval $(call nf_add,IPT_NAT_EXTRA,CONFIG_IP_NF_TARGET_NETMAP, $(P_XT)xt_NETMAP, ge 3.7.0)) +$(eval $(call nf_add,IPT_NAT_EXTRA,CONFIG_IP_NF_TARGET_NETMAP, $(P_V4)ipt_NETMAP, lt 3.7.0)) # nathelper $(eval $(call nf_add,IPT_NATHELPER,CONFIG_IP_NF_NAT_FTP, $(P_V4)ip_nat_ftp)) $(eval $(call nf_add,IPT_NATHELPER,CONFIG_NF_CONNTRACK_FTP, $(P_XT)nf_conntrack_ftp)) -$(eval $(call nf_add,IPT_NATHELPER,CONFIG_NF_NAT_FTP, $(P_V4)nf_nat_ftp)) $(eval $(call nf_add,IPT_NATHELPER,CONFIG_NF_CONNTRACK_IRC, $(P_XT)nf_conntrack_irc)) -$(eval $(call nf_add,IPT_NATHELPER,CONFIG_NF_NAT_IRC, $(P_V4)nf_nat_irc)) +$(eval $(call nf_add,IPT_NATHELPER,CONFIG_NF_NAT_FTP, $(P_XT)nf_nat_ftp, ge 3.7.0)) +$(eval $(call nf_add,IPT_NATHELPER,CONFIG_NF_NAT_IRC, $(P_XT)nf_nat_irc, ge 3.7.0)) +$(eval $(call nf_add,IPT_NATHELPER,CONFIG_NF_NAT_FTP, $(P_V4)nf_nat_ftp, lt 3.7.0)) +$(eval $(call nf_add,IPT_NATHELPER,CONFIG_NF_NAT_IRC, $(P_V4)nf_nat_irc, lt 3.7.0)) # nathelper-extra $(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_NF_CONNTRACK_BROADCAST, $(P_XT)nf_conntrack_broadcast)) $(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_NF_CONNTRACK_AMANDA, $(P_XT)nf_conntrack_amanda)) -$(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_NF_NAT_AMANDA, $(P_V4)nf_nat_amanda)) +$(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_NF_NAT_AMANDA, $(P_XT)nf_nat_amanda, ge 3.7.0)) +$(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_NF_NAT_AMANDA, $(P_V4)nf_nat_amanda, lt 3.7.0)) $(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_NF_CT_PROTO_GRE, $(P_XT)nf_conntrack_proto_gre)) $(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_NF_NAT_PROTO_GRE, $(P_V4)nf_nat_proto_gre)) $(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_NF_CONNTRACK_H323, $(P_XT)nf_conntrack_h323)) @@ -195,16 +201,18 @@ $(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_NF_NAT_H323, $(P_V4)nf_nat_h323) $(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_NF_CONNTRACK_PPTP, $(P_XT)nf_conntrack_pptp)) $(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_NF_NAT_PPTP, $(P_V4)nf_nat_pptp)) $(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_NF_CONNTRACK_SIP, $(P_XT)nf_conntrack_sip)) -$(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_NF_NAT_SIP, $(P_V4)nf_nat_sip)) +$(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_NF_NAT_SIP, $(P_XT)nf_nat_sip, ge 3.7.0)) +$(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_NF_NAT_SIP, $(P_V4)nf_nat_sip, lt 3.7.0)) $(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_NF_CONNTRACK_SNMP, $(P_XT)nf_conntrack_snmp)) $(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_NF_NAT_SNMP_BASIC, $(P_V4)nf_nat_snmp_basic)) $(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_NF_CONNTRACK_TFTP, $(P_XT)nf_conntrack_tftp)) -$(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_NF_NAT_TFTP, $(P_V4)nf_nat_tftp)) +$(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_NF_NAT_TFTP, $(P_XT)nf_nat_tftp, ge 3.7.0)) +$(eval $(call nf_add,IPT_NATHELPER_EXTRA,CONFIG_NF_NAT_TFTP, $(P_V4)nf_nat_tftp, lt 3.7.0)) # queue -$(eval $(call nf_add,IPT_QUEUE,CONFIG_IP_NF_QUEUE, $(P_V4)ip_queue)) +$(eval $(call nf_add,IPT_QUEUE,CONFIG_IP_NF_QUEUE, $(P_V4)ip_queue, lt 3.5.0)) # ulog @@ -277,7 +285,7 @@ IPT_BUILTIN += $(IPT_FILTER-y) IPT_BUILTIN += $(IPT_IPOPT-y) IPT_BUILTIN += $(IPT_IPRANGE-y) IPT_BUILTIN += $(IPT_IPSEC-y) -IPT_BUILTIN += $(IPT_IPV6-y) +IPT_BUILTIN += $(IPT_IPV6-y) $(IPT_IPV6-m) IPT_BUILTIN += $(IPT_NAT-y) IPT_BUILTIN += $(IPT_NAT_EXTRA-y) IPT_BUILTIN += $(IPT_NATHELPER-y) diff --git a/include/package-bin.mk b/include/package-bin.mk index 96c1aeffc..dcb3a8acb 100644 --- a/include/package-bin.mk +++ b/include/package-bin.mk @@ -14,7 +14,7 @@ ifeq ($(DUMP),) else compile: $(1)-disabled $(1)-disabled: - @echo "WARNING: skipping $(1) -- package not selected" + @echo "WARNING: skipping $(1) -- package not selected" >&2 endif endif endif diff --git a/include/package-defaults.mk b/include/package-defaults.mk index c3496767c..0505a43c4 100644 --- a/include/package-defaults.mk +++ b/include/package-defaults.mk @@ -5,8 +5,10 @@ # See /LICENSE for more information. # +PKG_DEFAULT_DEPENDS = +libc +USE_EGLIBC:librt +USE_EGLIBC:libpthread + ifneq ($(PKG_NAME),toolchain) - PKG_FIXUP_DEPENDS = $(if $(filter kmod-%,$(1)),$(2),+libc $(filter-out +libc,$(2))) + PKG_FIXUP_DEPENDS = $(if $(filter kmod-%,$(1)),$(2),$(PKG_DEFAULT_DEPENDS) $(filter-out $(PKG_DEFAULT_DEPENDS),$(2))) else PKG_FIXUP_DEPENDS = $(2) endif @@ -19,7 +21,7 @@ define Package/Default MDEPENDS:= PROVIDES:= EXTRA_DEPENDS:= - MAINTAINER:=OpenWrt Developers Team <openwrt-devel@openwrt.org> + MAINTAINER:=$(PKG_MAINTAINER) SOURCE:=$(patsubst $(TOPDIR)/%,%,$(CURDIR)) ifneq ($(PKG_VERSION),) ifneq ($(PKG_RELEASE),) @@ -40,7 +42,6 @@ define Package/Default else PKGARCH:=$(BOARD) endif - PRIORITY:=optional DEFAULT:= MENU:= SUBMENU:= @@ -127,7 +128,7 @@ MAKE_INSTALL_FLAGS = \ MAKE_PATH = . define Build/Compile/Default - $(MAKE_VARS) \ + +$(MAKE_VARS) \ $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \ $(MAKE_FLAGS) \ $(1); diff --git a/include/package-ipkg.mk b/include/package-ipkg.mk index 14520cfd9..20361de9e 100644 --- a/include/package-ipkg.mk +++ b/include/package-ipkg.mk @@ -5,22 +5,6 @@ # See /LICENSE for more information. # -# where to build (and put) .ipk packages -OPKG:= \ - IPKG_TMP=$(TMP_DIR)/ipkg \ - IPKG_INSTROOT=$(TARGET_DIR) \ - IPKG_CONF_DIR=$(STAGING_DIR)/etc \ - IPKG_OFFLINE_ROOT=$(TARGET_DIR) \ - $(STAGING_DIR_HOST)/bin/opkg \ - --offline-root $(TARGET_DIR) \ - --force-depends \ - --force-overwrite \ - --force-postinstall \ - --force-maintainer \ - --add-dest root:/ \ - --add-arch all:100 \ - --add-arch $(if $(ARCH_PACKAGES),$(ARCH_PACKAGES),$(BOARD)):200 - # invoke ipkg-build with some default options IPKG_BUILD:= \ ipkg-build -c -o 0 -g 0 @@ -89,22 +73,29 @@ ifeq ($(DUMP),) define BuildTarget/ipkg IPKG_$(1):=$(PACKAGE_DIR)/$(1)_$(VERSION)_$(PKGARCH).ipk IDIR_$(1):=$(PKG_BUILD_DIR)/ipkg-$(PKGARCH)/$(1) - INFO_$(1):=$(IPKG_STATE_DIR)/info/$(1).list KEEP_$(1):=$(strip $(call Package/$(1)/conffiles)) - ifeq ($(if $(VARIANT),$(BUILD_VARIANT)),$(VARIANT)) + ifeq ($(BUILD_VARIANT),$$(if $$(VARIANT),$$(VARIANT),$(BUILD_VARIANT))) ifdef Package/$(1)/install ifneq ($(CONFIG_PACKAGE_$(1))$(SDK)$(DEVELOPER),) IPKGS += $(1) compile: $$(IPKG_$(1)) $(PKG_INFO_DIR)/$(1).provides $(STAGING_DIR_ROOT)/stamp/.$(1)_installed ifeq ($(CONFIG_PACKAGE_$(1)),y) - install: $$(INFO_$(1)) + .PHONY: $(PKG_INSTALL_STAMP).$(1) + compile: $(PKG_INSTALL_STAMP).$(1) + $(PKG_INSTALL_STAMP).$(1): + if [ -f $(PKG_INSTALL_STAMP).clean ]; then \ + rm -f \ + $(PKG_INSTALL_STAMP) \ + $(PKG_INSTALL_STAMP).clean; \ + fi; \ + echo "$(1)" >> $(PKG_INSTALL_STAMP) endif else compile: $(1)-disabled $(1)-disabled: - @echo "WARNING: skipping $(1) -- package not selected" + @echo "WARNING: skipping $(1) -- package not selected" >&2 endif endif endif @@ -155,14 +146,17 @@ ifeq ($(DUMP),) for depend in $$(filter-out @%,$$(IDEPEND_$(1))); do \ DEPENDS=$$$${DEPENDS:+$$$$DEPENDS, }$$$${depend##+}; \ done; \ - echo "Depends: $$$$DEPENDS"; \ - echo "Provides: $(PROVIDES)"; \ + [ -z "$$$$DEPENDS" ] || echo "Depends: $$$$DEPENDS"; \ + $(if $(PROVIDES), echo "Provides: $(PROVIDES)"; ) \ echo "Source: $(SOURCE)"; \ + $(if $(PKG_SOURCE), echo "SourceFile: $(PKG_SOURCE)"; ) \ + $(if $(PKG_SOURCE_URL), echo "SourceURL: $(PKG_SOURCE_URL)"; ) \ + $(if $(PKG_LICENSE), echo "License: $(PKG_LICENSE)"; ) \ + $(if $(PKG_LICENSE_FILES), echo "LicenseFiles: $(PKG_LICENSE_FILES)"; ) \ echo "Section: $(SECTION)"; \ - echo "Status: unknown $(if $(filter hold,$(PKG_FLAGS)),hold,ok) not-installed"; \ - echo "Essential: $(if $(filter essential,$(PKG_FLAGS)),yes,no)"; \ - echo "Priority: $(PRIORITY)"; \ - echo "Maintainer: $(MAINTAINER)"; \ + $(if $(filter hold,$(PKG_FLAGS)),echo "Status: unknown hold not-installed"; ) \ + $(if $(filter essential,$(PKG_FLAGS)), echo "Essential: yes"; ) \ + $(if $(MAINTAINER),echo "Maintainer: $(MAINTAINER)"; ) \ echo "Architecture: $(PKGARCH)"; \ echo "Installed-Size: 0"; \ echo -n "Description: "; $(SH_FUNC) getvar $(call shvar,Package/$(1)/description) | sed -e 's,^[[:space:]]*, ,g'; \ @@ -188,11 +182,6 @@ ifeq ($(DUMP),) $(IPKG_BUILD) $$(IDIR_$(1)) $(PACKAGE_DIR) @[ -f $$(IPKG_$(1)) ] - $$(INFO_$(1)): $$(IPKG_$(1)) - @[ -d $(TARGET_DIR)/tmp ] || mkdir -p $(TARGET_DIR)/tmp - $(OPKG) install $$(IPKG_$(1)) - $(if $(filter-out essential,$(PKG_FLAGS)),for flag in $(filter-out essential,$(PKG_FLAGS)); do $(OPKG) flag $$$$flag $(1); done,$(OPKG) flag ok $(1)) - $(1)-clean: rm -f $(PACKAGE_DIR)/$(1)_* diff --git a/include/package.mk b/include/package.mk index 64973b051..99d2dd270 100644 --- a/include/package.mk +++ b/include/package.mk @@ -13,13 +13,18 @@ PKG_BUILD_DIR ?= $(BUILD_DIR)/$(PKG_NAME)$(if $(PKG_VERSION),-$(PKG_VERSION)) PKG_INSTALL_DIR ?= $(PKG_BUILD_DIR)/ipkg-install PKG_MD5SUM ?= unknown PKG_BUILD_PARALLEL ?= -PKG_INFO_DIR := $(STAGING_DIR)/pkginfo + +ifneq ($(CONFIG_PKG_BUILD_USE_JOBSERVER),) + MAKE_J:=$(if $(MAKE_JOBSERVER),$(MAKE_JOBSERVER) -j) +else + MAKE_J:=-j$(CONFIG_PKG_BUILD_JOBS) +endif ifeq ($(strip $(PKG_BUILD_PARALLEL)),0) PKG_JOBS?=-j1 else PKG_JOBS?=$(if $(PKG_BUILD_PARALLEL)$(CONFIG_PKG_DEFAULT_PARALLEL),\ - $(if $(CONFIG_PKG_BUILD_PARALLEL),-j$(CONFIG_PKG_BUILD_JOBS),-j1),-j1) + $(if $(CONFIG_PKG_BUILD_PARALLEL),$(MAKE_J),-j1),-j1) endif include $(INCLUDE_DIR)/prereq.mk @@ -46,6 +51,9 @@ ifneq ($(if $(CONFIG_SRC_TREE_OVERRIDE),$(wildcard ./git-src)),) 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 include $(INCLUDE_DIR)/quilt.mk include $(INCLUDE_DIR)/package-defaults.mk @@ -207,7 +215,7 @@ define Package/$(1)/description endef endif - $(foreach FIELD, TITLE CATEGORY PRIORITY SECTION VERSION, + $(foreach FIELD, TITLE CATEGORY SECTION VERSION, ifeq ($($(FIELD)),) $$(error Package/$(1) is missing the $(FIELD) field) endif @@ -242,6 +250,14 @@ Build/Install=$(if $(PKG_INSTALL),$(call Build/Install/Default,)) Build/Dist=$(call Build/Dist/Default,) Build/DistCheck=$(call Build/DistCheck/Default,) +.NOTPARALLEL: + +.PHONY: prepare-package-install +prepare-package-install: + @mkdir -p $(PKG_INFO_DIR) + @touch $(PKG_INSTALL_STAMP).clean + @echo "$(filter-out essential,$(PKG_FLAGS))" > $(PKG_INSTALL_STAMP).flags + $(PACKAGE_DIR): mkdir -p $@ @@ -249,8 +265,8 @@ dumpinfo: download: prepare: configure: -compile: -install: +compile: prepare-package-install +install: compile clean-staging: FORCE rm -f $(STAMP_INSTALLED) @-(\ diff --git a/include/prereq-build.mk b/include/prereq-build.mk index c7d59f120..59ea7ef9a 100644 --- a/include/prereq-build.mk +++ b/include/prereq-build.mk @@ -39,6 +39,8 @@ $(eval $(call Require,case-sensitive-fs, \ )) define Require/getopt + gnugetopt --help 2>&1 | grep long >/dev/null || \ + /usr/local/bin/getopt --help 2>&1 | grep long >/dev/null || \ getopt --help 2>&1 | grep long >/dev/null endef $(eval $(call Require,getopt, \ @@ -134,15 +136,11 @@ $(eval $(call RequireCommand,bzip2, \ Please install bzip2. \ )) -$(eval $(call RequireCommand,patch, \ - Please install patch. \ -)) - $(eval $(call RequireCommand,perl, \ Please install perl. \ )) -$(eval $(call RequireCommand,python, \ +$(eval $(call RequireCommand,$(PYTHON), \ Please install python. \ )) diff --git a/include/site/arm-openwrt-linux-musl b/include/site/arm-openwrt-linux-musl new file mode 100644 index 000000000..f17d96abc --- /dev/null +++ b/include/site/arm-openwrt-linux-musl @@ -0,0 +1,5 @@ +#!/bin/sh + +. $TOPDIR/include/site/arm-linux +. $TOPDIR/include/site/linux-uclibc + diff --git a/include/site/arm-openwrt-linux-muslgnueabi b/include/site/arm-openwrt-linux-muslgnueabi new file mode 100644 index 000000000..f17d96abc --- /dev/null +++ b/include/site/arm-openwrt-linux-muslgnueabi @@ -0,0 +1,5 @@ +#!/bin/sh + +. $TOPDIR/include/site/arm-linux +. $TOPDIR/include/site/linux-uclibc + diff --git a/include/site/armeb-openwrt-linux-musl b/include/site/armeb-openwrt-linux-musl new file mode 100644 index 000000000..dd64a9c53 --- /dev/null +++ b/include/site/armeb-openwrt-linux-musl @@ -0,0 +1,5 @@ +#!/bin/sh + +. $TOPDIR/include/site/armeb-linux +. $TOPDIR/include/site/linux-uclibc + diff --git a/include/site/armeb-openwrt-linux-muslgnueabi b/include/site/armeb-openwrt-linux-muslgnueabi new file mode 100644 index 000000000..dd64a9c53 --- /dev/null +++ b/include/site/armeb-openwrt-linux-muslgnueabi @@ -0,0 +1,5 @@ +#!/bin/sh + +. $TOPDIR/include/site/armeb-linux +. $TOPDIR/include/site/linux-uclibc + diff --git a/include/site/i486-openwrt-linux-musl b/include/site/i486-openwrt-linux-musl new file mode 100644 index 000000000..4d796d683 --- /dev/null +++ b/include/site/i486-openwrt-linux-musl @@ -0,0 +1,5 @@ +#!/bin/sh + +. $TOPDIR/include/site/i486-linux +. $TOPDIR/include/site/linux-uclibc + diff --git a/include/site/i686-openwrt-linux-musl b/include/site/i686-openwrt-linux-musl new file mode 100644 index 000000000..ef073da32 --- /dev/null +++ b/include/site/i686-openwrt-linux-musl @@ -0,0 +1,5 @@ +#!/bin/sh + +. $TOPDIR/include/site/i686-linux +. $TOPDIR/include/site/linux-uclibc + diff --git a/include/site/mips-openwrt-linux-musl b/include/site/mips-openwrt-linux-musl new file mode 100644 index 000000000..76a1b2831 --- /dev/null +++ b/include/site/mips-openwrt-linux-musl @@ -0,0 +1,5 @@ +#!/bin/sh + +. $TOPDIR/include/site/mips-linux +. $TOPDIR/include/site/linux-uclibc + diff --git a/include/site/mipsel-openwrt-linux-musl b/include/site/mipsel-openwrt-linux-musl new file mode 100644 index 000000000..b53d4d484 --- /dev/null +++ b/include/site/mipsel-openwrt-linux-musl @@ -0,0 +1,5 @@ +#!/bin/sh + +. $TOPDIR/include/site/mipsel-linux +. $TOPDIR/include/site/linux-uclibc + diff --git a/include/site/powerpc-openwrt-linux-musl b/include/site/powerpc-openwrt-linux-musl new file mode 100644 index 000000000..bb48ee234 --- /dev/null +++ b/include/site/powerpc-openwrt-linux-musl @@ -0,0 +1,5 @@ +#!/bin/sh + +. $TOPDIR/include/site/powerpc-linux +. $TOPDIR/include/site/linux-uclibc + diff --git a/include/site/sparc-linux b/include/site/sparc-linux new file mode 100644 index 000000000..c421c51ad --- /dev/null +++ b/include/site/sparc-linux @@ -0,0 +1,28 @@ +ac_cv_c_littleendian=${ac_cv_c_littleendian=no} +ac_cv_c_bigendian=${ac_cv_c_bigendian=yes} + +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/site/sparc-linux-gnu b/include/site/sparc-linux-gnu new file mode 100644 index 000000000..2fc6bf552 --- /dev/null +++ b/include/site/sparc-linux-gnu @@ -0,0 +1,5 @@ +#!/bin/sh + +. $TOPDIR/include/site/sparc-linux +. $TOPDIR/include/site/linux-gnu + diff --git a/include/site/sparc-openwrt-linux-gnu b/include/site/sparc-openwrt-linux-gnu new file mode 100644 index 000000000..2fc6bf552 --- /dev/null +++ b/include/site/sparc-openwrt-linux-gnu @@ -0,0 +1,5 @@ +#!/bin/sh + +. $TOPDIR/include/site/sparc-linux +. $TOPDIR/include/site/linux-gnu + diff --git a/include/site/sparc-openwrt-linux-uclibc b/include/site/sparc-openwrt-linux-uclibc new file mode 100644 index 000000000..7a56dbd42 --- /dev/null +++ b/include/site/sparc-openwrt-linux-uclibc @@ -0,0 +1,5 @@ +#!/bin/sh + +. $TOPDIR/include/site/sparc-linux +. $TOPDIR/include/site/linux + diff --git a/include/site/x86_64-openwrt-linux-musl b/include/site/x86_64-openwrt-linux-musl new file mode 100644 index 000000000..cc351dfef --- /dev/null +++ b/include/site/x86_64-openwrt-linux-musl @@ -0,0 +1,5 @@ +#!/bin/sh + +. $TOPDIR/include/site/x86_64-linux +. $TOPDIR/include/site/linux-uclibc + diff --git a/include/target.mk b/include/target.mk index b08167326..9b2e2401a 100644 --- a/include/target.mk +++ b/include/target.mk @@ -14,7 +14,7 @@ DEVICE_TYPE?=router # Default packages - the really basic set DEFAULT_PACKAGES:=base-files libc libgcc busybox dropbear mtd uci opkg hotplug2 netifd # For router targets -DEFAULT_PACKAGES.router:=dnsmasq iptables ppp ppp-mod-pppoe kmod-ipt-nathelper firewall +DEFAULT_PACKAGES.router:=dnsmasq iptables ip6tables ppp ppp-mod-pppoe kmod-ipt-nathelper firewall3 6relayd odhcp6c DEFAULT_PACKAGES.bootloader:= ifneq ($(DUMP),) @@ -191,6 +191,7 @@ ifeq ($(DUMP),1) ifneq ($(CONFIG_RTC_CLASS),) FEATURES += rtc endif + FEATURES += $(foreach v,v4 v5 v6 v7,$(if $(findstring -march=arm$(v),$(CFLAGS)),arm_$(v))) # remove duplicates FEATURES:=$(sort $(FEATURES)) @@ -198,7 +199,7 @@ ifeq ($(DUMP),1) DEFAULT_CFLAGS_i386=-O2 -pipe -march=i486 -fno-caller-saves DEFAULT_CFLAGS_x86_64=-O2 -pipe -march=athlon64 -fno-caller-saves DEFAULT_CFLAGS_m68k=-Os -pipe -mcfv4e -fno-caller-saves - DEFAULT_CFLAGS_mips=-Os -pipe -mips32 -mtune=mips32 -fno-caller-saves + DEFAULT_CFLAGS_mips=-Os -pipe -mips32 -mtune=mips32 -fno-caller-saves -mno-branch-likely DEFAULT_CFLAGS_mipsel=$(DEFAULT_CFLAGS_mips) DEFAULT_CFLAGS_mips64=-Os -pipe -mips64 -mtune=mips64 -mabi=64 -fno-caller-saves DEFAULT_CFLAGS_mips64el=$(DEFAULT_CFLAGS_mips64) diff --git a/include/toolchain-build.mk b/include/toolchain-build.mk index d2fdb0281..a86f6aba7 100644 --- a/include/toolchain-build.mk +++ b/include/toolchain-build.mk @@ -11,8 +11,6 @@ REAL_STAGING_DIR_HOST:=$(STAGING_DIR_HOST) STAGING_DIR_HOST:=$(TOOLCHAIN_DIR) BUILD_DIR_HOST:=$(BUILD_DIR_TOOLCHAIN) -TOOLCHAIN_JOBS?=$(if $(CONFIG_TOOLCHAIN_PARALLEL),-j$(CONFIG_PKG_BUILD_JOBS)) - include $(INCLUDE_DIR)/host-build.mk HOST_STAMP_PREPARED=$(HOST_BUILD_DIR)/.prepared diff --git a/include/toplevel.mk b/include/toplevel.mk index d37ddb917..b8608eeae 100644 --- a/include/toplevel.mk +++ b/include/toplevel.mk @@ -1,14 +1,16 @@ # Makefile for OpenWrt # -# Copyright (C) 2007-2011 OpenWrt.org +# Copyright (C) 2007-2012 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # -RELEASE:=Attitude Adjustment +RELEASE:=Barrier Breaker PREP_MK= OPENWRT_BUILD= QUIET=0 +export IS_TTY=$(shell tty -s && echo 1 || echo 0) + include $(TOPDIR)/include/verbose.mk ifeq ($(SDK),1) @@ -22,10 +24,10 @@ OPENWRTVERSION:=$(RELEASE)$(if $(REVISION), ($(REVISION))) export RELEASE export REVISION export OPENWRTVERSION -export IS_TTY=$(shell tty -s && echo 1 || echo 0) export LD_LIBRARY_PATH:=$(subst ::,:,$(if $(LD_LIBRARY_PATH),$(LD_LIBRARY_PATH):)$(STAGING_DIR_HOST)/lib) export DYLD_LIBRARY_PATH:=$(subst ::,:,$(if $(DYLD_LIBRARY_PATH),$(DYLD_LIBRARY_PATH):)$(STAGING_DIR_HOST)/lib) export GIT_CONFIG_PARAMETERS='core.autocrlf=false' +export MAKE_JOBSERVER=$(filter --jobserver%,$(MAKEFLAGS)) # prevent perforce from messing with the patch utility unexport P4PORT P4USER P4CONFIG P4CLIENT @@ -50,6 +52,8 @@ export SCAN_COOKIE SUBMAKE:=umask 022; $(SUBMAKE) +ULIMIT_FIX=_limit=`ulimit -n`; [ "$$_limit" = "unlimited" -o "$$_limit" -ge 1024 ] || ulimit -n 1024; + prepare-mk: FORCE ; prepare-tmpinfo: FORCE @@ -85,10 +89,15 @@ config-clean: FORCE defconfig: scripts/config/conf prepare-tmpinfo FORCE touch .config - $< -D .config Config.in + $< --defconfig=.config Config.in + +confdefault-y=allyes +confdefault-m=allmod +confdefault-n=allno +confdefault:=$(confdefault-$(CONFDEFAULT)) oldconfig: scripts/config/conf prepare-tmpinfo FORCE - $< -$(if $(CONFDEFAULT),$(CONFDEFAULT),o) Config.in + $< --$(if $(confdefault),$(confdefault),old)config Config.in menuconfig: scripts/config/mconf prepare-tmpinfo FORCE if [ \! -e .config -a -e $(HOME)/.openwrt/defconfig ]; then \ @@ -143,12 +152,12 @@ prereq:: prepare-tmpinfo .config @+$(PREP_MK) $(NO_TRACE_MAKE) -r -s prereq @( \ cp .config tmp/.config; \ - ./scripts/config/conf -D tmp/.config -w tmp/.config Config.in > /dev/null 2>&1; \ + ./scripts/config/conf --defconfig tmp/.config -w tmp/.config Config.in > /dev/null 2>&1; \ if ./scripts/kconfig.pl '>' .config tmp/.config | grep -q CONFIG; then \ - echo "WARNING: your configuration is out of sync. Please run make menuconfig, oldconfig or defconfig!"; \ + printf "$(_R)WARNING: your configuration is out of sync. Please run make menuconfig, oldconfig or defconfig!$(_N)\n" >&2; \ fi \ ) - @+$(SUBMAKE) -r $@ + @+$(ULIMIT_FIX) $(SUBMAKE) -r $@ help: cat README diff --git a/include/verbose.mk b/include/verbose.mk index 2e8ace442..d34f55fc4 100644 --- a/include/verbose.mk +++ b/include/verbose.mk @@ -27,6 +27,7 @@ endif ifeq ($(IS_TTY),1) ifneq ($(strip $(NO_COLOR)),1) _Y:=\\033[33m + _R:=\\033[31m _N:=\\033[m endif endif @@ -36,6 +37,10 @@ ifeq ($(findstring s,$(OPENWRT_VERBOSE)),) printf "$(_Y)%s$(_N)\n" "$(1)" >&8 endef + define ERROR_MESSAGE + printf "$(_R)%s$(_N)\n" "$(1)" >&8 + endef + ifeq ($(QUIET),1) ifneq ($(CURDIR),$(TOPDIR)) _DIR:=$(patsubst $(TOPDIR)/%,%,${CURDIR}) @@ -58,4 +63,5 @@ else define MESSAGE printf "%s\n" "$(1)" endef + ERROR_MESSAGE=$(MESSAGE) endif diff --git a/include/version.mk b/include/version.mk index 4687dcc2e..2bf709e56 100644 --- a/include/version.mk +++ b/include/version.mk @@ -40,4 +40,4 @@ VERSION_SED:=$(SED) 's,%U,$(VERSION_REPO),g' \ -e 's,%d,\L$(subst $(space),_,$(VERSION_DIST)),g' \ -e 's,%R,$(REVISION),g' \ -e 's,%T,$(BOARD),g' \ - -e 's,%S,$(BOARD)$(if $(SUBTARGET),/$(SUBTARGET)),g' \ + -e 's,%S,$(BOARD)/$(if $(SUBTARGET),$(SUBTARGET),generic),g' \ |