summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2011-01-18 18:10:19 +0100
committerWaldemar Brodkorb <wbx@openadk.org>2011-01-18 18:10:19 +0100
commit46b2bb3001ce838ba2483a08418587d8a027f3a9 (patch)
treeb2b618839b5afcc859fcb90556e6f199d9a9a10c /mk
parent88d3e6d6c572143bd95a589a44e30bfefd616b88 (diff)
parent902ee7e7b23751ca7a8264d36a837aa4aae12032 (diff)
Merge branch 'master' of git+ssh://openadk.org/git/openadk
Diffstat (limited to 'mk')
-rw-r--r--mk/build.mk48
-rw-r--r--mk/buildhlp.mk5
-rw-r--r--mk/image.mk42
-rw-r--r--mk/kernel-build.mk8
-rw-r--r--mk/kernel-vars.mk10
-rw-r--r--mk/kernel-ver.mk4
-rw-r--r--mk/kernel.mk2
-rw-r--r--mk/modules.mk10
-rw-r--r--mk/package.mk16
-rw-r--r--mk/pkg-bottom.mk4
-rw-r--r--mk/python.mk4
-rw-r--r--mk/vars.mk33
12 files changed, 122 insertions, 64 deletions
diff --git a/mk/build.mk b/mk/build.mk
index f8143311c..156555af3 100644
--- a/mk/build.mk
+++ b/mk/build.mk
@@ -14,17 +14,11 @@ DEFCONFIG= ADK_DEBUG=n \
ADK_STATIC=n \
ADK_MAKE_PARALLEL=y \
ADK_MAKE_JOBS=4 \
- ADK_PACKAGE_BZR=n \
ADK_PACKAGE_GRUB=n \
- ADK_PACKAGE_AUFS2_UTIL=n \
ADK_PACKAGE_BASE_FILES=y \
- ADK_PACKAGE_MGETTY=n \
- ADK_COMPILE_HEIMDAL=n \
- ADK_PACKAGE_HEIMDAL_PKINIT=n \
- ADK_PACKAGE_HEIMDAL_SERVER=n \
- ADK_PACKAGE_LIBHEIMDAL=n \
- ADK_PACKAGE_LIBHEIMDAL_CLIENT=n \
ADK_PACKAGE_PYTHON=n \
+ ADK_TOOLCHAIN_GCC_USE_SSP=n \
+ ADK_TOOLCHAIN_GCC_USE_LTO=n \
BUSYBOX_BBCONFIG=n \
BUSYBOX_SELINUX=n \
BUSYBOX_INSTALL_NO_USR=n \
@@ -113,7 +107,9 @@ ${TOPDIR}/package/Depends.mk: ${TOPDIR}/.config $(wildcard ${TOPDIR}/package/*/M
.NOTPARALLEL:
.PHONY: all world clean cleantarget cleandir distclean image_clean
-world: $(DISTDIR) $(BUILD_DIR) $(TARGET_DIR) $(PACKAGE_DIR)
+world:
+ mkdir -p $(DISTDIR) $(BUILD_DIR) $(TARGET_DIR) $(PACKAGE_DIR)/.stamps \
+ $(TOOLS_DIR) $(TOOLS_BUILD_DIR) $(TOOLCHAIN_BUILD_DIR)
${BASH} ${TOPDIR}/scripts/scan-pkgs.sh
${BASH} ${TOPDIR}/scripts/update-sys
${BASH} ${TOPDIR}/scripts/update-pkg
@@ -133,21 +129,9 @@ ifeq ($(ADK_TARGET_PACKAGE_IPKG),y)
${BASH} ${TOPDIR}/scripts/ipkg-make-index.sh . >Packages
endif
-$(DISTDIR):
- mkdir -p $(DISTDIR)
-
-$(BUILD_DIR):
- mkdir -p $(BUILD_DIR)
-
-$(TARGET_DIR):
- mkdir -p $(TARGET_DIR)
-
-$(PACKAGE_DIR):
- mkdir -p ${PACKAGE_DIR}/.stamps
-
${STAGING_TARGET_DIR} ${STAGING_TARGET_DIR}/etc ${STAGING_HOST_DIR}:
- mkdir -p ${STAGING_TARGET_DIR}/{bin,etc,lib,usr/include} \
- ${STAGING_HOST_DIR}/{bin,lib}
+ mkdir -p ${STAGING_TARGET_DIR}/{bin,etc,lib,usr/include,usr/lib} \
+ ${STAGING_HOST_DIR}/{bin,lib,usr/bin,usr/lib}
${STAGING_TARGET_DIR}/etc/ipkg.conf: ${STAGING_TARGET_DIR}/etc
ifeq ($(ADK_TARGET_PACKAGE_IPKG),y)
@@ -191,9 +175,9 @@ switch:
fi
kernelconfig:
- cp $(TOPDIR)/target/$(ARCH)/kernel.config $(BUILD_DIR)/linux/.config
- $(MAKE) -C $(BUILD_DIR)/linux/ ARCH=$(ARCH) menuconfig
- cp $(BUILD_DIR)/linux/.config $(TOPDIR)/target/$(ARCH)/kernel.config
+ cp $(TOPDIR)/target/$(ADK_TARGET_ARCH)/kernel.config $(BUILD_DIR)/linux/.config
+ ${KERNEL_MAKE_ENV} ${MAKE} ${KERNEL_MAKE_OPTS} -C $(BUILD_DIR)/linux menuconfig
+ cp $(BUILD_DIR)/linux/.config $(TOPDIR)/target/$(ADK_TARGET_ARCH)/kernel.config
# create a new package from package/.template
newpackage:
@@ -211,7 +195,7 @@ root_clean:
mkdir -p $(TARGET_DIR)
# Do a per-package clean here, too. This way stale headers and
-# libraries from cross_*/target/ get wiped away, which keeps
+# libraries from target_*/ get wiped away, which keeps
# future package build's configure scripts from returning false
# dependencies information.
@@ -221,7 +205,7 @@ clean:
for d in ${STAGING_PKG_DIR}; do \
for f in $$(ls $$d/[a-z]* 2>/dev/null); do \
while read file ; do \
- rm $$d/target/$$file 2>/dev/null; \
+ rm ${STAGING_TARGET_DIR}/$$file 2>/dev/null;\
done < $$f ; \
rm $$f ; \
done \
@@ -563,12 +547,11 @@ bulkallmod:
done <${TOPDIR}/target/arch.lst ;\
done
-${TOPDIR}/bin/tools/pkgmaker:
+${TOPDIR}/bin/tools/pkgmaker: tools/adk/pkgmaker.c tools/adk/sortfile.c tools/adk/strmap.c
@mkdir -p $(TOPDIR)/bin/tools
@$(HOSTCC) -Wall -g -o $@ tools/adk/pkgmaker.c tools/adk/sortfile.c tools/adk/strmap.c
${TOPDIR}/bin/tools/pkgrebuild:
- @mkdir -p $(TOPDIR)/bin/tools
@$(HOSTCC) -Wall -g -o $@ tools/adk/pkgrebuild.c tools/adk/strmap.c
package/Config.in.auto menu .menu: $(wildcard ${TOPDIR}/package/*/Makefile) ${TOPDIR}/bin/tools/pkgmaker ${TOPDIR}/bin/tools/pkgrebuild
@@ -576,10 +559,7 @@ package/Config.in.auto menu .menu: $(wildcard ${TOPDIR}/package/*/Makefile) ${TO
@$(TOPDIR)/bin/tools/pkgmaker
@:>.menu
-$(TOPDIR)/bin/tools:
- @mkdir -p $(TOPDIR)/bin/tools
-
-${TOPDIR}/bin/tools/depmaker: $(TOPDIR)/bin/tools
+${TOPDIR}/bin/tools/depmaker:
$(HOSTCC) -g -o $(TOPDIR)/bin/tools/depmaker $(TOPDIR)/tools/adk/depmaker.c
dep: $(TOPDIR)/bin/tools/depmaker
diff --git a/mk/buildhlp.mk b/mk/buildhlp.mk
index 35d4eebd0..2cb4f1714 100644
--- a/mk/buildhlp.mk
+++ b/mk/buildhlp.mk
@@ -24,7 +24,10 @@ else
_CHECKSUM_COOKIE=
endif
-post-extract:
+${PACKAGE_DIR}/.stamps:
+ @mkdir -p ${PACKAGE_DIR}/.stamps
+
+post-extract: ${PACKAGE_DIR}/.stamps
ifeq ($(strip ${NO_DISTFILES}),1)
${WRKDIST}/.extract_done:
diff --git a/mk/image.mk b/mk/image.mk
index 1b7178eef..5c3d27c41 100644
--- a/mk/image.mk
+++ b/mk/image.mk
@@ -1,6 +1,34 @@
# This file is part of the OpenADK project. OpenADK is copyrighted
# material, please see the LICENCE file in the top-level directory.
+# relative paths, like 'mksh' or '../usr/bin/foosh'
+ifeq (${ADK_BINSH_ASH},y)
+BINSH:=ash
+else ifeq (${ADK_BINSH_BASH},y)
+BINSH:=bash
+else ifeq (${ADK_BINSH_MKSH},y)
+BINSH:=mksh
+else ifeq (${ADK_BINSH_ZSH},y)
+BINSH:=zsh
+else
+$(error No /bin/sh configured!)
+endif
+
+# absolute paths
+ifeq (${ADK_ROOTSH_ASH},y)
+ROOTSH:=/bin/ash
+else ifeq (${ADK_ROOTSH_BASH},y)
+ROOTSH:=/bin/bash
+else ifeq (${ADK_ROOTSH_MKSH},y)
+ROOTSH:=/bin/mksh
+else ifeq (${ADK_ROOTSH_TCSH},y)
+ROOTSH:=/usr/bin/tcsh
+else ifeq (${ADK_ROOTSH_ZSH},y)
+ROOTSH:=/bin/zsh
+else
+$(error No login shell configured!)
+endif
+
imageprepare: image-prepare-post extra-install
# if an extra directory exist in TOPDIR, copy all content over the
@@ -14,12 +42,14 @@ image-prepare-post:
dd if=$$rng bs=512 count=1 >>${TARGET_DIR}/etc/.rnd 2>/dev/null; \
chmod 600 ${TARGET_DIR}/etc/.rnd
chmod 4511 ${TARGET_DIR}/bin/busybox
- chmod 1777 ${TARGET_DIR}/tmp
@if [ -d ${TARGET_DIR}/usr/share/fonts/X11 ];then \
for i in $$(ls ${TARGET_DIR}/usr/share/fonts/X11/);do \
mkfontdir ${TARGET_DIR}/usr/share/fonts/X11/$${i}; \
done; \
fi
+ sed -i '/^root:/s!:/bin/sh$$!:${ROOTSH}!' ${TARGET_DIR}/etc/passwd
+ -rm -f ${TARGET_DIR}/bin/sh
+ ln -sf ${BINSH} ${TARGET_DIR}/bin/sh
KERNEL_PKGDIR:=$(LINUX_BUILD_DIR)/kernel-pkg
KERNEL_PKG:=$(PACKAGE_DIR)/kernel_$(KERNEL_VERSION)_$(CPU_ARCH).$(PKG_SUFFIX)
@@ -65,12 +95,16 @@ ${BUILD_DIR}/${INITRAMFS_PIGGYBACK}: ${TARGET_DIR}
sed "s#\(.*\)#:0:0::::::\1#" | sort | \
${TOOLS_DIR}/cpio -o -C512 -Hnewc -P >$@ 2>/dev/null
-${BIN_DIR}/${ROOTFSSQUASHFS}: ${TARGET_DIR}
+${BUILD_DIR}/root.squashfs: ${TARGET_DIR}
${STAGING_HOST_DIR}/bin/mksquashfs ${TARGET_DIR} \
${BUILD_DIR}/root.squashfs \
-nopad -noappend -root-owned $(MAKE_TRACE)
- cat ${BUILD_DIR}/${TARGET_KERNEL} ${BUILD_DIR}/root.squashfs > \
- ${BUILD_DIR}/${ROOTFSSQUASHFS}
+
+ifeq (,${CUSTOM_ROOTFSSQUASHFS_BUILD})
+${BUILD_DIR}/${ROOTFSSQUASHFS}: ${BUILD_DIR}/root.squashfs
+ cat ${BUILD_DIR}/${TARGET_KERNEL} ${BUILD_DIR}/root.squashfs \
+ >${BUILD_DIR}/${ROOTFSSQUASHFS}
+endif
createinitramfs:
@-rm $(LINUX_DIR)/usr/initramfs_data.cpio* $(MAKE_TRACE)
diff --git a/mk/kernel-build.mk b/mk/kernel-build.mk
index ba3259b16..986eb9c29 100644
--- a/mk/kernel-build.mk
+++ b/mk/kernel-build.mk
@@ -21,16 +21,16 @@ $(LINUX_DIR)/.config: $(LINUX_DIR)/.prepared $(BUILD_DIR)/.kernelconfig $(TOPDIR
$(TRACE) target/$(ADK_TARGET_ARCH)-kernel-configure
for f in $(TARGETS);do if [ -f $$f ];then rm $$f;fi;done $(MAKE_TRACE)
$(CP) $(BUILD_DIR)/.kernelconfig $(LINUX_DIR)/.config
- echo N | $(MAKE) ${KERNEL_MAKE_OPTS} oldconfig $(MAKE_TRACE)
- $(MAKE) ${KERNEL_MAKE_OPTS} prepare scripts $(MAKE_TRACE)
+ echo N | ${KERNEL_MAKE_ENV} $(MAKE) ${KERNEL_MAKE_OPTS} oldconfig $(MAKE_TRACE)
+ ${KERNEL_MAKE_ENV} $(MAKE) ${KERNEL_MAKE_OPTS} prepare scripts $(MAKE_TRACE)
touch -c $(LINUX_DIR)/.config
$(LINUX_DIR)/vmlinux: $(LINUX_DIR)/.config
$(TRACE) target/$(ADK_TARGET_ARCH)-kernel-compile
- $(MAKE) ${KERNEL_MAKE_OPTS} -j${ADK_MAKE_JOBS} LOCALVERSION="" $(MAKE_TRACE)
+ ${KERNEL_MAKE_ENV} $(MAKE) ${KERNEL_MAKE_OPTS} -j${ADK_MAKE_JOBS} LOCALVERSION="" $(MAKE_TRACE)
$(TRACE) target/$(ADK_TARGET_ARCH)-kernel-modules-install
rm -rf $(LINUX_BUILD_DIR)/modules
- $(MAKE) ${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 48b7023b5..f66b238e0 100644
--- a/mk/kernel-vars.mk
+++ b/mk/kernel-vars.mk
@@ -3,5 +3,13 @@
KERNEL_MAKE_OPTS:= -C "${LINUX_DIR}" V=1
ifneq ($(ADK_NATIVE),y)
-KERNEL_MAKE_OPTS+= CROSS_COMPILE="$(TARGET_CROSS)" ARCH=$(ARCH) CC="$(TARGET_CC)" HOSTCC="${HOSTCC}"
+KERNEL_MAKE_OPTS+= CROSS_COMPILE="$(TARGET_CROSS)" ARCH=$(ARCH) \
+ CC="$(TARGET_CC)" HOSTCC="${HOSTCC}" \
+ HOSTCFLAGS='${HOSTCFLAGS}'
endif
+
+ifeq (${ADK_TARGET_SYSTEM_LINKSYS_WRT54G},y)
+ADK_KCPPFLAGS+= -DBCM47XX_OVERRIDE_FLASHSIZE=0x400000
+endif
+
+KERNEL_MAKE_ENV+= KCPPFLAGS='${ADK_KCPPFLAGS}'
diff --git a/mk/kernel-ver.mk b/mk/kernel-ver.mk
index 50b8c4056..1741c62d0 100644
--- a/mk/kernel-ver.mk
+++ b/mk/kernel-ver.mk
@@ -1,3 +1,3 @@
-KERNEL_VERSION:= 2.6.36
+KERNEL_VERSION:= 2.6.37
KERNEL_RELEASE:= 1
-KERNEL_MD5SUM:= 61f3739a73afb6914cb007f37fb09b62
+KERNEL_MD5SUM:= c8ee37b4fdccdb651e0603d35350b434
diff --git a/mk/kernel.mk b/mk/kernel.mk
index 2ce156694..d5288cd7e 100644
--- a/mk/kernel.mk
+++ b/mk/kernel.mk
@@ -33,6 +33,7 @@ IDEPENDK_$(1):=kernel ($(KERNEL_VERSION)) $(foreach pkg,$(5),", $(pkg)")
PKG_$(1) := $(PACKAGE_DIR)/kmod-$(2)_$(KERNEL_VERSION)-$(KERNEL_RELEASE)_$(CPU_ARCH).$(PKG_SUFFIX)
I_$(1) := $(KMOD_BUILD_DIR)/ipkg/$(2)
+ifeq ($${ADK_TARGET_KERNEL_CUSTOMISING},y)
ifeq ($$(ADK_KPACKAGE_KMOD_$(1)),m)
TARGETS+=$$(PKG_$(1))
endif
@@ -40,6 +41,7 @@ ifeq ($$(ADK_KPACKAGE_KMOD_$(1)),y)
TARGETS+=$$(PKG_$(1))
INSTALL_TARGETS+=$$(PKG_$(1))
endif
+endif
$$(PKG_$(1)):
rm -rf $$(I_$(1))
diff --git a/mk/modules.mk b/mk/modules.mk
index 94a1d235a..27b02bbf7 100644
--- a/mk/modules.mk
+++ b/mk/modules.mk
@@ -926,11 +926,13 @@ $(eval $(call KMOD_template,CRYPTO_FCRYPT,crypto-fcrypt,\
,11))
ZLIB:=lib/zlib_deflate/zlib_deflate
-ifeq ($(ADK_LINUX_CRIS_FOXBOARD),)
-ifeq ($(ADK_LINUX_MIPS_AG241),)
+ifeq ($(ADK_TARGET_SYSTEM_FOXBOARD_LX832),y)
+ifeq ($(ADK_TARGET_SYSTEM_FOXBOARD_LX416),y)
+ifeq ($(ADK_TARGET_SYSTEM_LINKSYS_AG241),y)
ZLIB+=lib/zlib_inflate/zlib_inflate
endif
endif
+endif
$(eval $(call KMOD_template,CRYPTO_DEFLATE,crypto-deflate,\
$(foreach mod, $(ZLIB),$(MODULES_DIR)/kernel/$(mod)) \
@@ -1177,11 +1179,13 @@ $(eval $(call KMOD_template,INPUT_EVDEV,input-evdev,\
# USB
#
-ifeq ($(ADK_LINUX_CRIS_FOXBOARD),)
+ifeq ($(ADK_TARGET_SYSTEM_FOXBOARD_LX832),)
+ifeq ($(ADK_TARGET_SYSTEM_FOXBOARD_LX416),)
$(eval $(call KMOD_template,USB,usb,\
$(MODULES_DIR)/kernel/drivers/usb/core/usbcore \
,50))
endif
+endif
$(eval $(call KMOD_template,USB_EHCI_HCD,usb-ehci-hcd,\
$(MODULES_DIR)/kernel/drivers/usb/host/ehci-hcd \
diff --git a/mk/package.mk b/mk/package.mk
index edbf3c6d5..bacee71f4 100644
--- a/mk/package.mk
+++ b/mk/package.mk
@@ -3,6 +3,10 @@
all: build-all-pkgs
+ifeq ($(ADK_HOST_CYGWIN),y)
+EXEEXT:= .exe
+endif
+
TCFLAGS:= ${TARGET_CFLAGS}
TCXXFLAGS:= ${TARGET_CFLAGS}
TCPPFLAGS:= ${TARGET_CPPFLAGS}
@@ -36,7 +40,8 @@ CONFIGURE_ARGS+= --enable-debug
endif
endif
-CONFIGURE_ENV+= CONFIG_SHELL='$(strip ${SHELL})' \
+CONFIGURE_ENV+= GCC_HONOUR_COPTS=s \
+ CONFIG_SHELL='$(strip ${SHELL})' \
CFLAGS='$(strip ${TCFLAGS})' \
CXXFLAGS='$(strip ${TCXXFLAGS})' \
CPPFLAGS='$(strip ${TCPPFLAGS})' \
@@ -74,9 +79,12 @@ MAKE_ENV+= PATH='${TARGET_PATH}' \
${HOST_CONFIGURE_OPTS} \
CC='${TARGET_CC}' \
CXX='${TARGET_CXX}' \
+ LD='${TARGET_LD}' \
AR='${TARGET_CROSS}ar' \
RANLIB='${TARGET_CROSS}ranlib' \
NM='${TARGET_CROSS}nm' \
+ OBJCOPY='${TARGET_CROSS}objcopy' \
+ RANLIB='${TARGET_CROSS}ranlib' \
STRIP='${TARGET_CROSS}strip' \
CROSS="$(TARGET_CROSS)"
endif
@@ -142,6 +150,8 @@ IDIR_$(1)= $(WRKDIR)/fake-${CPU_ARCH}/pkg-$(2)
ifneq (${ADK_PACKAGE_$(1)}${DEVELOPER},)
ALL_IPKGS+= $$(IPKG_$(1))
ALL_IDIRS+= $${IDIR_$(1)}
+ALL_POSTINST+= $(2)-install
+$(2)-install:
endif
INFO_$(1)= $(PKG_STATE_DIR)/info/$(2).list
@@ -181,6 +191,7 @@ $$(IPKG_$(1)): $$(IDIR_$(1))/CONTROL/control $${_FAKE_COOKIE}
ifeq ($(ADK_DEBUG),)
$${RSTRIP} $${IDIR_$(1)} $(MAKE_TRACE)
endif
+ifeq (${ADK_INSTALL_PACKAGE_INIT_SCRIPTS},y)
@for file in $$$$(ls ./files/*.init 2>/dev/null); do \
fname=$$$$(echo $$$$file| sed -e "s#.*/##" -e "s#.init##"); \
check=$$$$(grep PKG $$$$file|cut -d ' ' -f 2); \
@@ -192,6 +203,7 @@ endif
[[ -e $$$$script ]] || continue; \
chmod 0755 "$$$$script"; \
done
+endif
@mkdir -p $${PACKAGE_DIR} '$${STAGING_PKG_DIR}' \
'$${STAGING_TARGET_DIR}/scripts'
ifeq (,$(filter noremove,$(7)))
@@ -216,7 +228,7 @@ endif
find usr ! -type d 2>/dev/null | \
grep -v -e '^usr/share' -e '^usr/man' -e '^usr/info' -e '^usr/lib/libc.so' | \
tee '$${STAGING_PKG_DIR}/$(1)' | \
- $(TOPDIR)/bin/tools/cpio -padlmu '$${STAGING_TARGET_DIR}'
+ $(TOOLS_DIR)/cpio -padlmu '$${STAGING_TARGET_DIR}'
@cd '$${STAGING_TARGET_DIR}'; grep 'usr/lib/.*\.la$$$$' \
'$${STAGING_PKG_DIR}/$(1)' | while read fn; do \
chmod u+w $$$$fn; \
diff --git a/mk/pkg-bottom.mk b/mk/pkg-bottom.mk
index 122198e45..f91e1bb45 100644
--- a/mk/pkg-bottom.mk
+++ b/mk/pkg-bottom.mk
@@ -127,6 +127,7 @@ endif
pre-install:
do-install:
post-install:
+spkg-install: ${ALL_POSTINST}
${_FAKE_COOKIE}: ${_BUILD_COOKIE}
-rm -f ${_ALL_CONTROLS}
@mkdir -p '${STAGING_PKG_DIR}' ${WRKINST} '${STAGING_TARGET_DIR}/scripts'
@@ -145,6 +146,7 @@ else
@echo "Invalid INSTALL_STYLE '${INSTALL_STYLE}'" >&2
@exit 1
endif
+ env ${MAKE_ENV} ${MAKE} spkg-install $(MAKE_TRACE)
ifeq ($(ADK_NATIVE),)
@for a in ${WRKINST}/usr/{bin/*-config,lib/pkgconfig/*.pc}; do \
[[ -e $$a ]] || continue; \
@@ -168,7 +170,7 @@ endif
find usr ! -type d 2>/dev/null | \
grep -v -e '^usr/share' -e '^usr/man' -e '^usr/info' -e '^usr/lib/libc.so' | \
tee '${STAGING_PKG_DIR}/${PKG_NAME}' | \
- $(TOPDIR)/bin/tools/cpio -padlmu '${STAGING_TARGET_DIR}'
+ $(TOOLS_DIR)/cpio -padlmu '${STAGING_TARGET_DIR}'
@cd '${STAGING_TARGET_DIR}'; grep 'usr/lib/.*\.la$$' \
'${STAGING_PKG_DIR}/${PKG_NAME}' | while read fn; do \
chmod u+w $$fn; \
diff --git a/mk/python.mk b/mk/python.mk
index e0fce5f0e..5767b12f7 100644
--- a/mk/python.mk
+++ b/mk/python.mk
@@ -1,3 +1,3 @@
PYTHON_VERSION=2.7
-PYTHON_LIBDIR:=$(STAGING_HOST_DIR)/lib
-PYTHON:=${STAGING_HOST_DIR}/bin/hostpython
+PYTHON_LIBDIR:=$(STAGING_HOST_DIR)/usr/lib
+PYTHON:=${STAGING_HOST_DIR}/usr/bin/hostpython
diff --git a/mk/vars.mk b/mk/vars.mk
index 25b285518..ab247901f 100644
--- a/mk/vars.mk
+++ b/mk/vars.mk
@@ -9,12 +9,25 @@ INSTALL_SCRIPT= install -m0755
MAKEFLAGS= $(EXTRA_MAKEFLAGS)
BUILD_USER= $(shell id -un)
BUILD_GROUP= $(shell id -gn)
+
+# target compiler settings
+TARGET_CPPFLAGS+= -I${STAGING_TARGET_DIR}/usr/include
+TARGET_LDFLAGS+= -Wl,-O2
ifneq ($(ADK_DEBUG),)
TARGET_DEBUGGING:= -g3 -fno-omit-frame-pointer
else
-TARGET_DEBUGGING:= -fomit-frame-pointer $(TARGET_OPTIMIZATION)
+TARGET_DEBUGGING:= $(TARGET_OPTIMIZATION) -fomit-frame-pointer
endif
TARGET_CFLAGS:= $(TARGET_CFLAGS_ARCH) $(TARGET_DEBUGGING) -fwrapv
+ifneq ($(ADK_TOOLCHAIN_GCC_USE_SSP),)
+TARGET_CFLAGS+= -fstack-protector
+TARGET_CXXFLAGS+= -fstack-protector
+TARGET_LDFLAGS+= -fstack-protector
+endif
+ifneq ($(ADK_TOOLCHAIN_GCC_USE_LTO),)
+TARGET_CFLAGS+= -flto
+TARGET_LDFLAGS+= -flto
+endif
BASE_DIR:= $(TOPDIR)
DISTDIR?= ${BASE_DIR}/dl
@@ -26,6 +39,9 @@ STAGING_HOST_DIR:= ${BASE_DIR}/host_${CPU_ARCH}_${ADK_TARGET_LIBC}
STAGING_HOST_DIR_PFX:= ${BASE_DIR}/host_*
STAGING_TARGET_DIR:= ${BASE_DIR}/target_${CPU_ARCH}_${ADK_TARGET_LIBC}
STAGING_TARGET_DIR_PFX:=${BASE_DIR}/target_*
+# relation from STAGING_HOST_DIR to STAGING_TARGET_DIR (for gcc to find
+# its sysroot while staying relocatable)
+STAGING_HOST2TARGET:= ../target_${CPU_ARCH}_${ADK_TARGET_LIBC}
TOOLCHAIN_BUILD_DIR= $(BASE_DIR)/toolchain_build_${CPU_ARCH}_${ADK_TARGET_LIBC}
TOOLCHAIN_BUILD_DIR_PFX=$(BASE_DIR)/toolchain_build_*
TOOLS_BUILD_DIR= $(BASE_DIR)/tools_build
@@ -36,10 +52,9 @@ BIN_DIR_PFX:= $(BASE_DIR)/bin
PACKAGE_DIR:= $(BIN_DIR)/packages
TARGET_DIR:= $(BASE_DIR)/root_${ADK_TARGET_SYSTEM}_${CPU_ARCH}_${ADK_TARGET_LIBC}
TARGET_DIR_PFX:= $(BASE_DIR)/root_*
-TARGET_PATH= ${SCRIPT_DIR}:${TOOLS_DIR}:${STAGING_HOST_DIR}/bin:${STAGING_TARGET_DIR}/scripts:${_PATH}
+TARGET_PATH= ${SCRIPT_DIR}:${TOOLS_DIR}:${STAGING_HOST_DIR}/bin:${STAGING_HOST_DIR}/usr/bin:${STAGING_TARGET_DIR}/scripts:${_PATH}
REAL_GNU_TARGET_NAME= $(CPU_ARCH)-$(ADK_VENDOR)-linux-$(ADK_TARGET_SUFFIX)
GNU_TARGET_NAME= $(CPU_ARCH)-$(ADK_VENDOR)-linux
-TOOLCHAIN_SYSROOT:= $(TOOLCHAIN_BUILD_DIR)/libc_dev
ifeq ($(ADK_NATIVE),y)
TARGET_CROSS:=
TARGET_COMPILER_PREFIX?=
@@ -50,8 +65,6 @@ endif
TARGET_CC:= ${TARGET_COMPILER_PREFIX}gcc
TARGET_CXX:= ${TARGET_COMPILER_PREFIX}g++
TARGET_LD:= ${TARGET_COMPILER_PREFIX}ld
-TARGET_CPPFLAGS+= -I${STAGING_TARGET_DIR}/usr/include
-TARGET_LDFLAGS+= -Wl,-O2
PATCH= ${BASH} $(SCRIPT_DIR)/patch.sh
SED:= sed -i -e
LINUX_DIR:= $(BUILD_DIR)/linux
@@ -102,19 +115,19 @@ EXTRACT_CMD= mkdir -p ${WRKDIR}; \
cd ${WRKDIR} && \
for file in ${FULLDISTFILES}; do case $$file in \
*.cpio) \
- cat $$file | $(TOPDIR)/bin/tools/cpio -i -d ;; \
+ cat $$file | $(TOOLS_DIR)/cpio -i -d ;; \
*.tar) \
tar -xf $$file ;; \
*.cpio.Z | *.cpio.gz | *.cgz | *.mcz) \
- gzip -dc $$file | $(TOPDIR)/bin/tools/cpio -i -d ;; \
+ gzip -dc $$file | $(TOOLS_DIR)/cpio -i -d ;; \
*.tar.Z | *.tar.gz | *.taz | *.tgz) \
gzip -dc $$file | tar -xf - ;; \
*.cpio.bz2 | *.cbz) \
- bzip2 -dc $$file | $(TOPDIR)/bin/tools/cpio -i -d ;; \
+ bzip2 -dc $$file | $(TOOLS_DIR)/cpio -i -d ;; \
*.tar.bz2 | *.tbz | *.tbz2) \
bzip2 -dc $$file | tar -xf - ;; \
*.zip) \
- cat $$file | $(TOPDIR)/bin/tools/cpio -ivd -H zip ;; \
+ cat $$file | $(TOOLS_DIR)/cpio -ivd -H zip ;; \
*.arm) \
cp $$file ${WRKDIR} ;; \
*) \
@@ -127,6 +140,6 @@ QUIET:=
else
QUIET:= --quiet
endif
-FETCH_CMD?= wget --tries=1 --timeout=30 $(QUIET)
+FETCH_CMD?= wget --timeout=30 $(QUIET)
include $(TOPDIR)/mk/mirrors.mk