summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbrodkorb@conet.de>2015-03-04 09:21:57 +0100
committerWaldemar Brodkorb <wbrodkorb@conet.de>2015-03-04 09:21:57 +0100
commit4fc74012b67cfc62c5481b8d7b6d95052f40c2bf (patch)
treed6f7c860195c63564d98f53c143acbf0082ea3ca /mk
parent68b4cb5aaa95eb39401bcbaa7c517cfd31c3edcf (diff)
parent9919c4bc2f53037331313edace085c386c2af4cc (diff)
Merge branch 'master' of git+ssh://openadk.org/git/openadk
Diffstat (limited to 'mk')
-rw-r--r--mk/build.mk4
-rw-r--r--mk/fetch.mk2
-rw-r--r--mk/image.mk17
-rw-r--r--mk/kernel-build.mk6
-rw-r--r--mk/kernel-vars.mk2
-rw-r--r--mk/kernel-ver.mk6
-rw-r--r--mk/modules.mk14
-rw-r--r--mk/os.mk11
-rw-r--r--mk/package.mk2
-rw-r--r--mk/vars.mk35
10 files changed, 80 insertions, 19 deletions
diff --git a/mk/build.mk b/mk/build.mk
index 214c52e88..d8d1a047c 100644
--- a/mk/build.mk
+++ b/mk/build.mk
@@ -223,7 +223,7 @@ kernelconfig:
${KERNEL_MAKE_ENV} ${MAKE} \
ARCH=$(ADK_TARGET_ARCH) \
${KERNEL_MAKE_OPTS} \
- -C $(BUILD_DIR)/linux menuconfig
+ menuconfig
# create a new package from package/.template
newpackage:
@@ -514,7 +514,7 @@ endif
@if [ ! -z "$(ADK_TARGET_SYSTEM)" ];then \
system=$$(echo "$(ADK_TARGET_SYSTEM)" |sed -e "s/-/_/g"); \
grep -h "^config" target/*/Config.in.systems \
- |grep -i "$$system" \
+ |grep -i "$$system$$" \
|sed -e "s#^config \(.*\)#\1=y#" \
>> $(ADK_TOPDIR)/all.config; \
fi
diff --git a/mk/fetch.mk b/mk/fetch.mk
index 5fb13a29e..6365b4c13 100644
--- a/mk/fetch.mk
+++ b/mk/fetch.mk
@@ -28,7 +28,7 @@ ifeq ($(strip ${PKG_NOCHECKSUM}),)
${_CHECKSUM_COOKIE}: ${FULLDISTFILES}
-rm -rf ${WRKDIR}
ifneq ($(ADK_DISABLE_CHECKSUM),y)
- @if [ ! -e "${FULLDISTFILES}.nohash" ]; then \
+ @if [ ! -e $(firstword ${FULLDISTFILES}).nohash ]; then \
OK=n; \
allsums="$(strip ${PKG_HASH})"; \
(shasum -a 256 ${FULLDISTFILES}; echo exit) | while read sum name; do \
diff --git a/mk/image.mk b/mk/image.mk
index bd7d66f96..7d982d773 100644
--- a/mk/image.mk
+++ b/mk/image.mk
@@ -37,7 +37,7 @@ else
$(error No login shell configured!)
endif
-imageprepare: image-prepare-post extra-install
+imageprepare: image-prepare-post extra-install prelink
# if an extra directory exist in ADK_TOPDIR, copy all content over the
# root directory, do the same if make extra=/dir/to/extra is used
@@ -79,6 +79,19 @@ ifneq ($(ADK_TARGET_ARCH_AARCH64)$(ADK_TARGET_ARCH_X86_64)$(ADK_TARGET_ARCH_PPC6
(cd ${TARGET_DIR}/usr ; ln -sf ${ADK_TARGET_LIBC_PATH} lib)
endif
+ifeq (${ADK_PRELINK},)
+prelink:
+else
+${TARGET_DIR}/etc/prelink.conf:
+ echo '/' > $@
+
+prelink: ${TARGET_DIR}/etc/prelink.conf
+ $(TRACE) target/prelink
+ ${TARGET_CROSS}prelink ${ADK_PRELINK_OPTS} \
+ --ld-library-path=${STAGING_TARGET_DIR}/usr/lib:${STAGING_TARGET_DIR}/lib \
+ --root=${TARGET_DIR} -a $(MAKE_TRACE)
+endif
+
KERNEL_PKGDIR:=$(LINUX_BUILD_DIR)/kernel-pkg
KERNEL_PKG:=$(PACKAGE_DIR)/kernel_$(KERNEL_VERSION)_$(ADK_TARGET_CPU_ARCH).$(PKG_SUFFIX)
TARGET_KERNEL= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_FS}-kernel
@@ -203,7 +216,7 @@ ifeq ($(ADK_KERNEL_COMP_BZIP2),y)
echo "CONFIG_INITRAMFS_COMPRESSION_BZIP2=y" >> ${LINUX_DIR}/.config
endif
@-rm $(LINUX_DIR)/usr/initramfs_data.cpio* 2>/dev/null
- env $(KERNEL_MAKE_ENV) $(MAKE) -C $(LINUX_DIR) $(KERNEL_MAKE_OPTS) \
+ env $(KERNEL_MAKE_ENV) $(MAKE) $(KERNEL_MAKE_OPTS) \
-j${ADK_MAKE_JOBS} $(ADK_TARGET_KERNEL) $(MAKE_TRACE)
@cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
diff --git a/mk/kernel-build.mk b/mk/kernel-build.mk
index b66f71132..37570909e 100644
--- a/mk/kernel-build.mk
+++ b/mk/kernel-build.mk
@@ -35,18 +35,18 @@ $(LINUX_DIR)/.config: $(LINUX_DIR)/.prepared $(BUILD_DIR)/.kernelconfig $(ADK_TO
$(TRACE) target/$(ADK_TARGET_ARCH)-kernel-configure
-for f in $(TARGETS);do if [ -f $$f ];then rm $$f;fi;done
$(CP) $(BUILD_DIR)/.kernelconfig $(LINUX_DIR)/mini.config
- ${KERNEL_MAKE_ENV} $(MAKE) -C "${LINUX_DIR}" ${KERNEL_MAKE_OPTS} KCONFIG_ALLCONFIG=mini.config allnoconfig $(MAKE_TRACE)
+ ${KERNEL_MAKE_ENV} $(MAKE) ${KERNEL_MAKE_OPTS} KCONFIG_ALLCONFIG=mini.config allnoconfig $(MAKE_TRACE)
touch -c $(LINUX_DIR)/.config
$(LINUX_DIR)/$(KERNEL_FILE): $(LINUX_DIR)/.config
$(TRACE) target/$(ADK_TARGET_ARCH)-kernel-compile
- ${KERNEL_MAKE_ENV} $(MAKE) -C "${LINUX_DIR}" ${KERNEL_MAKE_OPTS} -j${ADK_MAKE_JOBS} LOCALVERSION="" $(KERNEL_TARGET) modules $(MAKE_TRACE)
+ ${KERNEL_MAKE_ENV} $(MAKE) ${KERNEL_MAKE_OPTS} -j${ADK_MAKE_JOBS} LOCALVERSION="" $(KERNEL_TARGET) modules $(MAKE_TRACE)
touch -c $(LINUX_DIR)/$(KERNEL_FILE)
$(LINUX_BUILD_DIR)/modules: $(LINUX_DIR)/$(KERNEL_FILE)
$(TRACE) target/$(ADK_TARGET_ARCH)-kernel-modules-install
rm -rf $(LINUX_BUILD_DIR)/modules
- ${KERNEL_MAKE_ENV} $(MAKE) -C "${LINUX_DIR}" ${KERNEL_MAKE_OPTS} DEPMOD=true \
+ ${KERNEL_MAKE_ENV} $(MAKE) ${KERNEL_MAKE_OPTS} DEPMOD=true \
INSTALL_MOD_PATH=$(LINUX_BUILD_DIR)/modules \
LOCALVERSION="" \
modules_install $(MAKE_TRACE)
diff --git a/mk/kernel-vars.mk b/mk/kernel-vars.mk
index 17a8d23a2..89ba10dd9 100644
--- a/mk/kernel-vars.mk
+++ b/mk/kernel-vars.mk
@@ -1,7 +1,7 @@
# This file is part of the OpenADK project. OpenADK is copyrighted
# material, please see the LICENCE file in the top-level directory.
-KERNEL_MAKE_OPTS:= V=1 \
+KERNEL_MAKE_OPTS:= V=1 -C "${LINUX_DIR}" \
ARCH="$(ADK_TARGET_KARCH)" \
CROSS_COMPILE="$(TARGET_CROSS)" \
CC="$(TARGET_CC)" \
diff --git a/mk/kernel-ver.mk b/mk/kernel-ver.mk
index fa0ac4e39..6404b6ef5 100644
--- a/mk/kernel-ver.mk
+++ b/mk/kernel-ver.mk
@@ -4,11 +4,11 @@ KERNEL_MOD_VERSION:= $(KERNEL_VERSION).0
KERNEL_RELEASE:= 1
KERNEL_HASH:= be42511fe5321012bb4a2009167ce56a9e5fe362b4af43e8c371b3666859806c
endif
-ifeq ($(ADK_KERNEL_VERSION_3_18_6),y)
-KERNEL_VERSION:= 3.18.6
+ifeq ($(ADK_KERNEL_VERSION_3_18_8),y)
+KERNEL_VERSION:= 3.18.8
KERNEL_MOD_VERSION:= $(KERNEL_VERSION)
KERNEL_RELEASE:= 1
-KERNEL_HASH:= c4c1a4841173aa572d79b7530db92ce493dbefe8049e6f461a46dd897df253f5
+KERNEL_HASH:= 9cfbd9d403f2b27951893f5ed73f694f65409c63f20a2fd394598a3d7004aadb
endif
ifeq ($(ADK_KERNEL_VERSION_3_14_28),y)
KERNEL_VERSION:= 3.14.28
diff --git a/mk/modules.mk b/mk/modules.mk
index ccb48ba3e..3bf580ec1 100644
--- a/mk/modules.mk
+++ b/mk/modules.mk
@@ -473,13 +473,13 @@ $(eval $(call KMOD_template,NF_CONNTRACK,nf-conntrack,\
$(MODULES_DIR)/kernel/net/netfilter/xt_conntrack \
,41))
-$(eval $(call KMOD_template,NETFILTER_XT_NAT,netfilter-xt-nat,\
- $(MODULES_DIR)/kernel/net/netfilter/xt_nat \
-,40))
-
$(eval $(call KMOD_template,NF_NAT,nf-nat,\
$(MODULES_DIR)/kernel/net/netfilter/nf_nat \
-,45))
+,42))
+
+$(eval $(call KMOD_template,NETFILTER_XT_NAT,netfilter-xt-nat,\
+ $(MODULES_DIR)/kernel/net/netfilter/xt_nat \
+,43))
$(eval $(call KMOD_template,NF_CONNTRACK_IPV4,nf-conntrack-ipv4,\
$(MODULES_DIR)/kernel/net/ipv4/netfilter/nf_defrag_ipv4 \
@@ -488,6 +488,7 @@ $(eval $(call KMOD_template,NF_CONNTRACK_IPV4,nf-conntrack-ipv4,\
$(eval $(call KMOD_template,NF_NAT_IPV4,nf-nat-ipv4,\
$(MODULES_DIR)/kernel/net/ipv4/netfilter/nf_nat_ipv4 \
+ $(MODULES_DIR)/kernel/net/ipv4/netfilter/nf_nat_masquerade_ipv4 \
,50))
$(eval $(call KMOD_template,IP_NF_NAT,ip-nf-nat,\
@@ -588,6 +589,7 @@ $(eval $(call KMOD_template,IP_NF_FILTER,ip-nf-filter,\
,55))
$(eval $(call KMOD_template,IP_NF_TARGET_REJECT,ip-nf-target-reject,\
+ $(MODULES_DIR)/kernel/net/ipv4/netfilter/nf_reject_ipv4 \
$(MODULES_DIR)/kernel/net/ipv4/netfilter/ipt_REJECT \
,60))
@@ -677,6 +679,7 @@ $(eval $(call KMOD_template,IP6_NF_FILTER,ip6-nf-filter,\
,55))
$(eval $(call KMOD_template,IP6_NF_TARGET_REJECT,ip6-nf-target-reject,\
+ $(MODULES_DIR)/kernel/net/ipv6/netfilter/nf_reject_ipv6 \
$(MODULES_DIR)/kernel/net/ipv6/netfilter/ip6t_REJECT \
,60))
@@ -1099,6 +1102,7 @@ $(eval $(call KMOD_template,RPCSEC_GSS_KRB5,rpcsec-gss-krb5,\
,26))
$(eval $(call KMOD_template,LOCKD,lockd,\
+ $(MODULES_DIR)/kernel/fs/nfs_common/grace \
$(MODULES_DIR)/kernel/fs/lockd/lockd \
,27))
diff --git a/mk/os.mk b/mk/os.mk
new file mode 100644
index 000000000..38a2e53f3
--- /dev/null
+++ b/mk/os.mk
@@ -0,0 +1,11 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+# operating system quirks
+ifeq (${OStype},Darwin)
+HOST_CC:=clang -fbracket-depth=1024
+HOST_CXX:=clang++ -fbracket-depth=1024
+else
+HOST_CC:=${CC}
+HOST_CXX:=${CXX}
+endif
diff --git a/mk/package.mk b/mk/package.mk
index 65d9c8f9f..3b27d1278 100644
--- a/mk/package.mk
+++ b/mk/package.mk
@@ -308,7 +308,7 @@ clean-targets:
clean:
@$(CMD_TRACE) "cleaning... "
@$(MAKE) clean-targets $(MAKE_TRACE)
- rm -rf ${WRKDIR} ${ALL_IPKGS} ${STAGING_PKG_DIR}/stamps/${PKG_NAME}${PKG_VERSION}
+ rm -rf ${WRKDIR} ${ALL_IPKGS} ${_IPKGS_COOKIE}
distclean: clean
rm -f ${FULLDISTFILES}
diff --git a/mk/vars.mk b/mk/vars.mk
index 73929643c..605248a37 100644
--- a/mk/vars.mk
+++ b/mk/vars.mk
@@ -107,6 +107,7 @@ TARGET_LDFLAGS:= -L$(STAGING_TARGET_DIR)/lib -L$(STAGING_TARGET_DIR)/usr/lib \
-Wl,-O1 -Wl,-rpath -Wl,/usr/lib \
-Wl,-rpath-link -Wl,${STAGING_TARGET_DIR}/usr/lib
+# for archiectures where gcc --with-cpu matches -mcpu=
ifneq ($(ADK_TARGET_GCC_CPU),)
ifeq ($(ADK_CPU_ARC700),y)
TARGET_CFLAGS+= -mcpu=ARC700
@@ -117,16 +118,44 @@ TARGET_CXXFLAGS+= -mcpu=$(ADK_TARGET_GCC_CPU)
endif
endif
+# for archiectures where gcc --with-arch matches -march=
ifneq ($(ADK_TARGET_GCC_ARCH),)
TARGET_CFLAGS+= -march=$(ADK_TARGET_GCC_ARCH)
TARGET_CXXFLAGS+= -march=$(ADK_TARGET_GCC_ARCH)
endif
+ifneq ($(ADK_TARGET_CPU_FLAGS),)
+TARGET_CFLAGS+= $(ADK_TARGET_CPU_FLAGS)
+TARGET_CXXFLAGS+= $(ADK_TARGET_CPU_FLAGS)
+endif
+
+ifneq ($(ADK_TARGET_FPU),)
+TARGET_CFLAGS+= -mfpu=$(ADK_TARGET_FPU)
+TARGET_CXXFLAGS+= -mfpu=$(ADK_TARGET_FPU)
+endif
+
+ifneq ($(ADK_TARGET_FLOAT),)
+ifeq ($(ADK_TARGET_ARCH_ARM),y)
+TARGET_CFLAGS+= -mfloat-abi=$(ADK_TARGET_FLOAT)
+TARGET_CXXFLAGS+= -mfloat-abi=$(ADK_TARGET_FLOAT)
+endif
+ifeq ($(ADK_TARGET_ARCH_MIPS),y)
+TARGET_CFLAGS+= -m$(ADK_TARGET_FLOAT)-float
+TARGET_CXXFLAGS+= -m$(ADK_TARGET_FLOAT)-float
+endif
+endif
+
+ifeq ($(ADK_TARGET_ARCH_ARM),y)
ifeq ($(ADK_TARGET_BINFMT_FLAT),y)
-TARGET_LDFLAGS+= -elf2flt
+TARGET_CFLAGS+= -Wl,-elf2flt
+TARGET_CXXFLAGS+= -Wl,-elf2flt
+endif
endif
ifeq ($(ADK_TARGET_ARCH_M68K),y)
+ifeq ($(ADK_TARGET_BINFMT_FLAT),y)
+TARGET_LDFLAGS+= -elf2flt
+endif
ifeq ($(ADK_TARGET_BINFMT_FLAT_SEP_DATA),y)
TARGET_CFLAGS+= -msep-data
TARGET_CXXFLAGS+= -msep-data
@@ -215,6 +244,10 @@ TARGET_CXXFLAGS+= -fno-unwind-tables -fno-asynchronous-unwind-tables
endif
ifeq ($(ADK_TARGET_ARCH_ARM),y)
+ifeq ($(ADK_TARGET_CPU_WITH_NEON),y)
+TARGET_CFLAGS+= -funsafe-math-optimizations
+TARGET_CXXFLAGS+= -funsafe-math-optimizations
+endif
ifeq ($(ADK_TARGET_ARCH_ARM_WITH_THUMB),y)
TARGET_CFLAGS+= -mthumb -Wa,-mimplicit-it=thumb
TARGET_CXXFLAGS+= -mthumb -Wa,-mimplicit-it=thumb