From b700bbdede249dd290dc67ff2ebdaf730e3ffa6a Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sat, 1 Mar 2014 09:32:10 +0100 Subject: move target/tools to tools, use ADK_HOST_NEED variable to build a tool, when required. Add archivers to tools, remove prereq checks for them. Rename host_ dir in preparation for shared openadk source via nfs/smb from different host systems. Make some abi cleanup --- mk/build.mk | 42 +++++++++++++++++++++--------------------- mk/host.mk | 2 +- mk/image.mk | 12 ++++++------ mk/kernel-vars.mk | 2 +- mk/package.mk | 2 +- mk/pkg-bottom.mk | 6 +++--- mk/vars.mk | 40 ++++++++++++++++++++++------------------ 7 files changed, 55 insertions(+), 51 deletions(-) (limited to 'mk') diff --git a/mk/build.mk b/mk/build.mk index eadccdcb3..d6fd9b20c 100644 --- a/mk/build.mk +++ b/mk/build.mk @@ -91,7 +91,7 @@ POSTCONFIG= -@\ if [ -f .adkinit ];then rm .adkinit;\ else \ if [ -f .config.old ];then \ - $(TOPDIR)/bin/pkgrebuild;\ + $(TOPDIR)/host_$(GNU_HOST_NAME)/usr/bin/pkgrebuild;\ rebuild=0; \ if [ "$$(grep ^BUSYBOX .config|md5sum)" != "$$(grep ^BUSYBOX .config.old|md5sum)" ];then \ touch .rebuild.busybox;\ @@ -138,7 +138,7 @@ include $(TOPDIR)/rules.mk all: world ${TOPDIR}/package/Depends.mk: ${TOPDIR}/.config $(wildcard ${TOPDIR}/package/*/Makefile) - $(BIN_DIR)/depmaker > ${TOPDIR}/package/Depends.mk + $(STAGING_HOST_DIR)/usr/bin/depmaker > ${TOPDIR}/package/Depends.mk .NOTPARALLEL: .PHONY: all world clean cleantarget cleandir distclean image_clean @@ -155,12 +155,12 @@ ifeq ($(ADK_NATIVE),y) else ifeq ($(ADK_TOOLCHAIN),y) ifeq ($(ADK_TOOLCHAIN_ONLY),y) - $(MAKE) -f mk/build.mk toolchain/fixup tools/install package/compile + $(MAKE) -f mk/build.mk tools/install toolchain/fixup package/compile else - $(MAKE) -f mk/build.mk toolchain/fixup tools/install package/compile root_clean package/install + $(MAKE) -f mk/build.mk tools/install toolchain/fixup package/compile root_clean package/install endif else - $(MAKE) -f mk/build.mk toolchain/fixup tools/install target/config-prepare target/compile package/compile root_clean package/install target/install package_index + $(MAKE) -f mk/build.mk tools/install toolchain/fixup target/config-prepare target/compile package/compile root_clean package/install target/install package_index endif endif @@ -250,13 +250,13 @@ root_clean: clean: @$(TRACE) clean $(MAKE) -C $(CONFIG) clean - for d in ${STAGING_PKG_DIR}; do \ - for f in $$(ls $$d/[a-z]* 2>/dev/null |grep -v [A-Z] 2>/dev/null); do \ - while read file ; do \ - rm ${STAGING_DIR}/$$file 2>/dev/null;\ - done < $$f ; \ - rm $$f ; \ - done \ + for f in $$(ls ${STAGING_PKG_DIR}/ 2>/dev/null |grep -v [A-Z]|grep -v stamps 2>/dev/null); do \ + while read file ; do \ + echo ${STAGING_DIR}/$$file ;\ + rm ${STAGING_DIR}/$$file 2>/dev/null;\ + done < $$f ; \ + echo ${STAGING_PKG_DIR}/$$f ;\ + rm ${STAGING_PKG_DIR}/$$f ; \ done rm -rf $(BUILD_DIR) $(FW_DIR) $(TARGET_DIR) \ ${TOPDIR}/package/pkglist.d @@ -619,24 +619,24 @@ bulkallmod: if [ -f .exit ];then echo "Bulk build failed!"; cat .exit;rm .exit; exit 1;fi \ done -${TOPDIR}/bin/pkgmaker: $(TOPDIR)/tools/adk/pkgmaker.c $(TOPDIR)/tools/adk/sortfile.c $(TOPDIR)/tools/adk/strmap.c - @mkdir -p ${TOPDIR}/bin +$(TOPDIR)/host_$(GNU_HOST_NAME)/usr/bin/pkgmaker: $(TOPDIR)/tools/adk/pkgmaker.c $(TOPDIR)/tools/adk/sortfile.c $(TOPDIR)/tools/adk/strmap.c + @mkdir -p host_$(GNU_HOST_NAME)/usr/bin @$(CC_FOR_BUILD) -g -o $@ tools/adk/pkgmaker.c tools/adk/sortfile.c tools/adk/strmap.c -${TOPDIR}/bin/pkgrebuild: $(TOPDIR)/tools/adk/pkgrebuild.c $(TOPDIR)/tools/adk/strmap.c +$(TOPDIR)/host_$(GNU_HOST_NAME)/usr/bin/pkgrebuild: $(TOPDIR)/tools/adk/pkgrebuild.c $(TOPDIR)/tools/adk/strmap.c @$(CC_FOR_BUILD) -g -o $@ tools/adk/pkgrebuild.c tools/adk/strmap.c -package/Config.in.auto menu .menu: $(wildcard ${TOPDIR}/package/*/Makefile) ${TOPDIR}/bin/pkgmaker ${TOPDIR}/bin/pkgrebuild +package/Config.in.auto menu .menu: $(wildcard ${TOPDIR}/package/*/Makefile) $(TOPDIR)/host_$(GNU_HOST_NAME)/usr/bin/pkgmaker $(TOPDIR)/host_$(GNU_HOST_NAME)/usr/bin/pkgrebuild @echo "Generating menu structure ..." - @$(TOPDIR)/bin/pkgmaker + @$(TOPDIR)/host_$(GNU_HOST_NAME)/usr/bin/pkgmaker @:>.menu -${TOPDIR}/bin/depmaker: $(TOPDIR)/tools/adk/depmaker.c - $(CC_FOR_BUILD) -g -o $(TOPDIR)/bin/depmaker $(TOPDIR)/tools/adk/depmaker.c +$(TOPDIR)/host_$(GNU_HOST_NAME)/usr/bin/depmaker: $(TOPDIR)/tools/adk/depmaker.c + $(CC_FOR_BUILD) -g -o $@ $(TOPDIR)/tools/adk/depmaker.c -dep: $(TOPDIR)/bin/depmaker +dep: $(TOPDIR)/host_$(GNU_HOST_NAME)/usr/bin/depmaker @echo "Generating dependencies ..." - @$(TOPDIR)/bin/depmaker > ${TOPDIR}/package/Depends.mk + @$(TOPDIR)/host_$(GNU_HOST_NAME)/usr/bin/depmaker > ${TOPDIR}/package/Depends.mk .PHONY: menu dep diff --git a/mk/host.mk b/mk/host.mk index 3fcca0664..aa88bab44 100644 --- a/mk/host.mk +++ b/mk/host.mk @@ -37,7 +37,7 @@ _HOST_PATCH_COOKIE= ${WRKDIST}/.prepared _HOST_CONFIGURE_COOKIE= ${WRKDIR}/.host_configure_done _HOST_BUILD_COOKIE= ${WRKDIR}/.host_build_done _HOST_FAKE_COOKIE= ${HOST_WRKINST}/.host_fake_done -_HOST_COOKIE= ${STAGING_PKG_DIR}/${PKG_NAME}${PKG_VERSION}-${PKG_RELEASE}-host +_HOST_COOKIE= ${STAGING_PKG_DIR}/stamps/${PKG_NAME}${PKG_VERSION}-${PKG_RELEASE}-host hostextract: ${_HOST_EXTRACT_COOKIE} hostpatch: ${_HOST_PATCH_COOKIE} diff --git a/mk/image.mk b/mk/image.mk index 9b60c2400..571752eaf 100644 --- a/mk/image.mk +++ b/mk/image.mk @@ -136,15 +136,15 @@ endif ${FW_DIR}/${ROOTFSTARBALL}: ${TARGET_DIR} kernel-package cd ${TARGET_DIR}; find . | sed -n '/^\.\//s///p' | \ sed "s#\(.*\)#:0:0::::::\1#" | sort | \ - ${BIN_DIR}/cpio -o -Hustar -P | gzip -n9 >$@ + ${STAGING_HOST_DIR}/usr/bin/cpio -o -Hustar -P | gzip -n9 >$@ ${FW_DIR}/${ROOTFSUSERTARBALL}: ${TARGET_DIR} cd ${TARGET_DIR}; find . | grep -v ./boot/ | sed -n '/^\.\//s///p' | \ sed "s#\(.*\)#:0:0::::::\1#" | sort | \ - ${BIN_DIR}/cpio -o -Hustar -P | gzip -n9 >$@ + ${STAGING_HOST_DIR}/usr/bin/cpio -o -Hustar -P | gzip -n9 >$@ ${FW_DIR}/${INITRAMFS}_list: ${TARGET_DIR} - bash ${LINUX_DIR}/scripts/gen_initramfs_list.sh -u squash -g squash \ + $(BASH) ${LINUX_DIR}/scripts/gen_initramfs_list.sh -u squash -g squash \ ${TARGET_DIR}/ >$@ ( \ echo "nod /dev/console 0644 0 0 c 5 1"; \ @@ -162,12 +162,12 @@ ${FW_DIR}/${INITRAMFS}: ${FW_DIR}/${INITRAMFS}_list ${ADK_COMPRESSION_TOOL} -c >$@ ${BUILD_DIR}/root.squashfs: ${TARGET_DIR} - ${STAGING_HOST_DIR}/bin/mksquashfs ${TARGET_DIR} \ + ${STAGING_HOST_DIR}/usr/bin/mksquashfs ${TARGET_DIR} \ ${BUILD_DIR}/root.squashfs -comp xz \ -nopad -noappend -root-owned $(MAKE_TRACE) ${FW_DIR}/${ROOTFSJFFS2}: ${TARGET_DIR} - ${STAGING_HOST_DIR}/bin/mkfs.jffs2 $(ADK_JFFS2_OPTS) -q -r ${TARGET_DIR} \ + ${STAGING_HOST_DIR}/usr/bin/mkfs.jffs2 $(ADK_JFFS2_OPTS) -q -r ${TARGET_DIR} \ --pad=$(ADK_TARGET_MTD_SIZE) -o ${FW_DIR}/${ROOTFSJFFS2} $(MAKE_TRACE) createinitramfs: ${FW_DIR}/${INITRAMFS}_list @@ -242,7 +242,7 @@ ${FW_DIR}/${ROOTFSISO}: ${TARGET_DIR} kernel-package ${TARGET_DIR}/boot/syslinux echo 'DEFAULT /boot/kernel root=/dev/sr0 init=/init' > \ ${TARGET_DIR}/boot/syslinux/isolinux.cfg - ${BIN_DIR}/mkisofs -R -uid 0 -gid 0 -o $@ \ + ${STAGING_HOST_DIR}/usr/bin/mkisofs -R -uid 0 -gid 0 -o $@ \ -b boot/syslinux/isolinux.bin \ -c boot/syslinux/boot.cat -no-emul-boot \ -boot-load-size 4 -boot-info-table ${TARGET_DIR} diff --git a/mk/kernel-vars.mk b/mk/kernel-vars.mk index d668f7edb..0b3e7ddbb 100644 --- a/mk/kernel-vars.mk +++ b/mk/kernel-vars.mk @@ -25,4 +25,4 @@ ADK_KCPPFLAGS+= -DBCM47XX_OVERRIDE_FLASHSIZE=0x800000 \ endif KERNEL_MAKE_ENV+= KCPPFLAGS='${ADK_KCPPFLAGS}' \ - PATH="${BIN_DIR}:$$PATH" + PATH="${STAGING_HOST_DIR}/usr/bin:$$PATH" diff --git a/mk/package.mk b/mk/package.mk index 125ed3d26..264cd06e0 100644 --- a/mk/package.mk +++ b/mk/package.mk @@ -249,7 +249,7 @@ endif find usr ! -type d 2>/dev/null | \ grep -E -v -e '^usr/lib/pkgconfig' -e '^usr/share' -e '^usr/doc' -e '^usr/src' -e '^usr/man' -e '^usr/info' -e '^usr/lib/libc.so' -e '^usr/bin/[a-z0-9-]+-config' | \ tee '$${STAGING_PKG_DIR}/$(1)' | \ - $(BIN_DIR)/cpio -padlmu '$${STAGING_DIR}' + $(STAGING_HOST_DIR)/usr/bin/cpio -padlmu '$${STAGING_DIR}' @cd '$${STAGING_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 d82a653ea..3988a676f 100644 --- a/mk/pkg-bottom.mk +++ b/mk/pkg-bottom.mk @@ -171,11 +171,11 @@ ifneq (,$(filter dev,${PKG_OPTS})) @mkdir -p $(WRKDIR)/fake-${CPU_ARCH}/pkg-$(PKG_LIBNAME)-dev/usr/include @test -d ${WRKINST}/usr/include && cd ${WRKINST}/usr/include; \ find . -name \*.h | \ - $(BIN_DIR)/cpio -padlmu $(WRKDIR)/fake-${CPU_ARCH}/pkg-$(PKG_LIBNAME)-dev/usr/include + $(STAGING_HOST_DIR)/usr/bin/cpio -padlmu $(WRKDIR)/fake-${CPU_ARCH}/pkg-$(PKG_LIBNAME)-dev/usr/include @mkdir -p $(WRKDIR)/fake-${CPU_ARCH}/pkg-$(PKG_LIBNAME)-dev/usr/lib/pkgconfig @test -d ${WRKINST}/usr/lib/pkgconfig && cd ${WRKINST}/usr/lib/pkgconfig; \ find . -name \*.pc | \ - $(BIN_DIR)/cpio -padlmu $(WRKDIR)/fake-${CPU_ARCH}/pkg-$(PKG_LIBNAME)-dev/usr/lib/pkgconfig + $(STAGING_HOST_DIR)/usr/bin/cpio -padlmu $(WRKDIR)/fake-${CPU_ARCH}/pkg-$(PKG_LIBNAME)-dev/usr/lib/pkgconfig @for a in ${WRKINST}/usr/bin/*-config*; do \ [[ -e $$a ]] || continue; \ mkdir -p $(WRKDIR)/fake-${CPU_ARCH}/pkg-$(PKG_LIBNAME)-dev/usr/bin; \ @@ -191,7 +191,7 @@ endif find usr ! -type d 2>/dev/null | \ grep -E -v -e '^usr/lib/pkgconfig' -e '^usr/share' -e '^usr/src' -e '^usr/doc' -e '^usr/local' -e '^usr/man' -e '^usr/info' -e '^usr/lib/libc.so' -e '^usr/bin/[a-z0-9-]+-config*' -e '^/usr/lib/libpthread_nonshared.a' | \ tee '${STAGING_PKG_DIR}/${PKG_NAME}' | \ - $(BIN_DIR)/cpio -padlmu '${STAGING_DIR}' + $(STAGING_HOST_DIR)/usr/bin/cpio -padlmu '${STAGING_DIR}' @cd '${STAGING_DIR}'; grep 'usr/lib/.*\.la$$' \ '${STAGING_PKG_DIR}/${PKG_NAME}' | while read fn; do \ chmod u+w $$fn; \ diff --git a/mk/vars.mk b/mk/vars.mk index 427b5b4ec..a9b213e4c 100644 --- a/mk/vars.mk +++ b/mk/vars.mk @@ -16,34 +16,38 @@ BUILD_DIR:= ${BASE_DIR}/build_${ADK_TARGET_SYSTEM}_${CPU_ARCH}_${ADK_TARGET_LIB BUILD_DIR_PFX:= $(BASE_DIR)/build_* STAGING_PKG_DIR:= ${BASE_DIR}/pkg_${ADK_TARGET_SYSTEM}_${CPU_ARCH}_${ADK_TARGET_LIBC} STAGING_PKG_DIR_PFX:= ${BASE_DIR}/pkg_* -STAGING_HOST_DIR:= ${BASE_DIR}/host_${CPU_ARCH}_${ADK_TARGET_SUFFIX}_${ADK_TARGET_LIBC} +STAGING_HOST_DIR:= ${BASE_DIR}/host_${GNU_HOST_NAME} STAGING_HOST_DIR_PFX:= ${BASE_DIR}/host_* # use headers and foo-config from system ifeq ($(ADK_NATIVE),y) STAGING_TARGET_DIR:= SCRIPT_TARGET_DIR:= /usr/bin else -STAGING_TARGET_DIR:= ${BASE_DIR}/target_${CPU_ARCH}_${ADK_TARGET_SUFFIX}_${ADK_TARGET_LIBC} +ifeq ($(ADK_TARGET_ABI),) +STAGING_TARGET_DIR:= ${BASE_DIR}/target_${CPU_ARCH}_${ADK_TARGET_LIBC} +STAGING_DIR:= ${BASE_DIR}/target_${CPU_ARCH}_${ADK_TARGET_LIBC} +STAGING_HOST2TARGET:= ../target_${CPU_ARCH}_${ADK_TARGET_LIBC} +TOOLCHAIN_BUILD_DIR= $(BASE_DIR)/toolchain_build_${CPU_ARCH}_${ADK_TARGET_LIBC} +else +STAGING_TARGET_DIR:= ${BASE_DIR}/target_${CPU_ARCH}_${ADK_TARGET_LIBC}_${ADK_TARGET_ABI} +STAGING_DIR:= ${BASE_DIR}/target_${CPU_ARCH}_${ADK_TARGET_LIBC}_${ADK_TARGET_ABI} +STAGING_HOST2TARGET:= ../target_${CPU_ARCH}_${ADK_TARGET_LIBC}_${ADK_TARGET_ABI} +TOOLCHAIN_BUILD_DIR= $(BASE_DIR)/toolchain_build_${CPU_ARCH}_${ADK_TARGET_LIBC}_${ADK_TARGET_ABI} +endif SCRIPT_TARGET_DIR:= ${STAGING_TARGET_DIR}/scripts endif -STAGING_DIR:= ${BASE_DIR}/target_${CPU_ARCH}_${ADK_TARGET_SUFFIX}_${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_SUFFIX}_${ADK_TARGET_LIBC} -TOOLCHAIN_BUILD_DIR= $(BASE_DIR)/toolchain_build_${CPU_ARCH}_${ADK_TARGET_SUFFIX}_${ADK_TARGET_LIBC} TOOLCHAIN_BUILD_DIR_PFX=$(BASE_DIR)/toolchain_build_* TOOLS_BUILD_DIR= $(BASE_DIR)/tools_build -BIN_DIR:= $(BASE_DIR)/bin SCRIPT_DIR:= $(BASE_DIR)/scripts FW_DIR:= $(BASE_DIR)/firmware/${ADK_TARGET_SYSTEM}_${CPU_ARCH}_${ADK_TARGET_LIBC} FW_DIR_PFX:= $(BASE_DIR)/firmware PACKAGE_DIR:= $(FW_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}:${BIN_DIR}:${STAGING_TARGET_DIR}/scripts:${STAGING_HOST_DIR}/bin:${STAGING_HOST_DIR}/usr/bin:${_PATH} -HOST_PATH= ${SCRIPT_DIR}:${BIN_DIR}:${STAGING_HOST_DIR}/bin:${STAGING_HOST_DIR}/usr/bin:${_PATH} -AUTOTOOL_PATH= ${BIN_DIR}:${STAGING_HOST_DIR}/bin:${STAGING_HOST_DIR}/usr/bin:${STAGING_TARGET_DIR}/scripts:${_PATH} +TARGET_PATH= ${SCRIPT_DIR}:${STAGING_TARGET_DIR}/scripts:${STAGING_HOST_DIR}/bin:${STAGING_HOST_DIR}/usr/bin:${_PATH} +HOST_PATH= ${SCRIPT_DIR}:${STAGING_HOST_DIR}/bin:${STAGING_HOST_DIR}/usr/bin:${_PATH} +AUTOTOOL_PATH= ${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 @@ -185,7 +189,7 @@ PKG_INSTALL:= IPKG_TMP=$(BUILD_DIR)/tmp \ IPKG_INSTROOT=$(TARGET_DIR) \ IPKG_CONF_DIR=$(STAGING_TARGET_DIR)/etc \ IPKG_OFFLINE_ROOT=$(TARGET_DIR) \ - BIN_DIR=$(BIN_DIR) \ + BIN_DIR=$(STAGING_HOST_DIR)/usr/bin \ ${BASH} ${SCRIPT_DIR}/ipkg \ -force-defaults -force-depends install PKG_STATE_DIR:= $(TARGET_DIR)/usr/lib/ipkg @@ -208,21 +212,21 @@ EXTRACT_CMD= mkdir -p ${WRKDIR}; \ cd ${WRKDIR} && \ for file in ${FULLDISTFILES}; do case $$file in \ *.cpio) \ - cat $$file | $(BIN_DIR)/cpio -i -d ;; \ + cat $$file | $(STAGING_HOST_DIR)/usr/bin/cpio -i -d ;; \ *.tar) \ tar -xf $$file ;; \ *.cpio.Z | *.cpio.gz | *.cgz | *.mcz) \ - gzip -dc $$file | $(BIN_DIR)/cpio -i -d ;; \ + gzip -dc $$file | $(STAGING_HOST_DIR)/usr/bin/cpio -i -d ;; \ *.tar.xz | *.txz) \ - xz -dc $$file | tar -xf - ;; \ + $(STAGING_HOST_DIR)/usr/bin/xz -dc $$file | tar -xf - ;; \ *.tar.Z | *.tar.gz | *.taz | *.tgz) \ gzip -dc $$file | tar -xf - ;; \ *.cpio.bz2 | *.cbz) \ - bzip2 -dc $$file | $(BIN_DIR)/cpio -i -d ;; \ + $(STAGING_HOST_DIR)/usr/bin/bzip2 -dc $$file | $(STAGING_HOST_DIR)/usr/bin/cpio -i -d ;; \ *.tar.bz2 | *.tbz | *.tbz2) \ - bzip2 -dc $$file | tar -xf - ;; \ + $(STAGING_HOST_DIR)/usr/bin/bzip2 -dc $$file | tar -xf - ;; \ *.zip) \ - cat $$file | $(BIN_DIR)/cpio -ivd -H zip ;; \ + cat $$file | $(STAGING_HOST_DIR)/usr/bin/cpio -ivd -H zip ;; \ *.arm) \ cp $$file ${WRKDIR} ;; \ *) \ -- cgit v1.2.3