diff options
95 files changed, 2965 insertions, 64781 deletions
diff --git a/.gitignore b/.gitignore index dab5008b6..aa2ea3d93 100644 --- a/.gitignore +++ b/.gitignore @@ -29,4 +29,5 @@ package/*/Config.in package/*/Config.in.lib tools_build/ extra/ +bulkdir/ .menu @@ -110,7 +110,11 @@ config ADK_HOST_OPENBSD boolean config ADK_HOST_NETBSD - prompt "OpenBSD" + prompt "NetBSD" + boolean + +config ADK_HOST_CYGWIN + prompt "Cygwin" boolean endchoice @@ -1,12 +1,14 @@ # This file is part of the OpenADK project. OpenADK is copyrighted # material, please see the LICENCE file in the top-level directory. +_UNLIMIT= ulimit -dS $$(ulimit -dH 2>/dev/null ) 2>/dev/null; + all: .prereq_done - @${GMAKE_INV} all + @${_UNLIMIT} ${GMAKE_INV} all v: .prereq_done @(echo; echo "Build started on $$(LC_ALL=C LANGUAGE=C date)"; \ - set -x; ${GMAKE_FMK} VERBOSE=1 all) 2>&1 | tee -a make.log + set -x; ${_UNLIMIT} ${GMAKE_FMK} VERBOSE=1 all) 2>&1 | tee -a make.log help: @echo 'Common targets:' @@ -117,6 +119,9 @@ image_clean imageclean cleanimage: .prereq_done menuconfig: .prereq_done @${GMAKE_INV} menuconfig +defconfig: .prereq_done + @${GMAKE_INV} defconfig + allnoconfig: .prereq_done @${GMAKE_INV} _config W=-n @@ -163,7 +168,7 @@ NO_ERROR=0 fi @echo "TOPDIR:=$$(readlink -nf . 2>/dev/null || pwd -P)" >prereq.mk @echo "BASH:=$$(which bash)" >>prereq.mk - @if [ -z "$$(which gmake)" ]; then \ + @if [ -z "$$(which gmake 2>/dev/null )" ]; then \ echo "GMAKE:=$$(which make)" >>prereq.mk ;\ else \ echo "GMAKE:=$$(which gmake)" >>prereq.mk ;\ @@ -1,5 +1,4 @@ - netbsd build -- win cygwin build - macos x build - openbsd build - make rpm package backend working diff --git a/mk/build.mk b/mk/build.mk index 87271f863..2fb5bb3bf 100644 --- a/mk/build.mk +++ b/mk/build.mk @@ -80,6 +80,9 @@ include ${TOPDIR}/mk/split-cfg.mk all: world +allcopy: all + $(CP) $(BIN_DIR) $(TOPDIR)/bulkdir/${d}/ + ${TOPDIR}/package/Depends.mk: ${TOPDIR}/.config mksh ${TOPDIR}/package/depmaker @@ -200,14 +203,14 @@ cleantarget: @$(TRACE) cleantarget @$(MAKE) -C $(CONFIG) clean $(MAKE_TRACE) rm -rf $(BUILD_DIR) $(BIN_DIR) $(TARGET_DIR) ${TOPDIR}/.cfg - rm -rf $(TOOLCHAIN_BUILD_DIR) $(STAGING_PARENT) + rm -rf $(TOOLCHAIN_BUILD_DIR) $(STAGING_PARENT) all.config .defconfig rm -f .tmpconfig.h ${TOPDIR}/package/*/info.mk distclean: @$(TRACE) distclean @$(MAKE) -C $(CONFIG) clean $(MAKE_TRACE) @rm -rf $(BUILD_DIR_PFX) $(BIN_DIR_PFX) $(TARGET_DIR_PFX) $(DISTDIR) \ - ${TOPDIR}/.cfg* ${TOPDIR}/package/pkglist.d + ${TOPDIR}/.cfg* ${TOPDIR}/package/pkglist.d $(TOPDIR)/bulkdir @rm -rf $(TOOLCHAIN_BUILD_DIR_PFX) $(STAGING_PARENT_PFX) $(TOOLS_BUILD_DIR) @rm -f .config* .defconfig .tmpconfig.h all.config ${TOPDIR}/prereq.mk \ .menu ${TOPDIR}/package/*/info.mk ${TOPDIR}/package/Depends.mk @@ -236,7 +239,7 @@ $(CONFIG)/conf: $(CONFIG)/mconf: @$(MAKE) -C $(CONFIG) -defconfig: .menu +defconfig: .menu $(CONFIG)/conf ifeq (${OStype},Linux) @echo ADK_HOST_LINUX=y > $(TOPDIR)/.defconfig endif @@ -252,6 +255,9 @@ endif ifeq (${OStype},NetBSD) @echo ADK_HOST_NETBSD=y > $(TOPDIR)/.defconfig endif +ifneq (,$(filter CYGWIN%,${OStype})) + @echo ADK_HOST_CYGWIN=y > $(TOPDIR)/.defconfig +endif @if [ ! -z "$(TARGET)" ];then \ grep "^config" target/Config.in \ |grep -i "$(TARGET)" \ @@ -261,10 +267,10 @@ endif echo $$symbol >> $(TOPDIR)/.defconfig; \ done; \ fi -ifneq (,$(filter %_qemu,${TARGET})) +ifneq (,$(filter qemu%,${TARGET})) @echo ADK_LINUX_QEMU=y >> $(TOPDIR)/.defconfig endif -ifneq (,$(filter %_rescue,${TARGET})) +ifneq (,$(filter rescue%,${TARGET})) @echo ADK_LINUX_RESCUE=y >> $(TOPDIR)/.defconfig endif ifneq (,$(filter rb%,${TARGET})) @@ -344,14 +350,6 @@ _mconfig: ${CONFIG}/conf _mconfig2 _config _mconfig2: ${CONFIG}/conf modconfig .menu @${CONFIG}/conf -m ${RCONFIG} >/dev/null -# build all targets and combinations -bulk: - mkdir $(TOPDIR)/bulk - $(MAKE) TARGET=alix1c LIBC=uclibc FS=nfsroot PKG=ipkg allmodconfig - $(MAKE) v - $(CP) $(BIN_DIR) $(TOPDIR)/bulk - $(MAKE) cleantarget - distclean: @$(MAKE) -C $(CONFIG) clean @rm -rf $(BUILD_DIR) $(TOOLS_BUILD_DIR) $(BIN_DIR) $(DISTDIR) \ @@ -360,7 +358,28 @@ distclean: @rm -f .config* .defconfig all.config .tmpconfig.h ${TOPDIR}/prereq.mk \ .menu ${TOPDIR}/package/*/info.mk ${TOPDIR}/package/Depends.mk -endif # ifeq ($(strip $(ADK_HAVE_DOT_CONFIG)),y) +endif # ! ifeq ($(strip $(ADK_HAVE_DOT_CONFIG)),y) + +# build all targets and combinations +bulk: + while read target libc fs p; do \ + mkdir -p $(TOPDIR)/bulkdir/$$target-$$libc-$$fs; \ + ( \ + echo === building $$target $$libc $$fs on $$(date); \ + $(MAKE) prereq && \ + if [ "x$$p" = xy ];then \ + $(MAKE) TARGET=$$target LIBC=$$libc FS=$$fs PKG=ipkg \ + allmodconfig; \ + else \ + $(MAKE) TARGET=$$target LIBC=$$libc FS=$$fs PKG=ipkg \ + defconfig; \ + fi && \ + $(MAKE) VERBOSE=1 -f mk/build.mk allcopy \ + d=$$target-$$libc-$$fs && \ + $(MAKE) cleantarget; \ + rm .*config; \ + ) 2>&1 | tee $(TOPDIR)/bulkdir/$$target-$$libc-$$fs/log; \ + done <${TOPDIR}/target/bulk.lst .menu menu: mksh $(TOPDIR)/package/pkgmaker diff --git a/mk/image.mk b/mk/image.mk index a41e41482..c6f5ce266 100644 --- a/mk/image.mk +++ b/mk/image.mk @@ -48,27 +48,28 @@ image-prepare-post: chmod 4511 ${TARGET_DIR}/bin/busybox chmod 1777 ${TARGET_DIR}/tmp -INITRAMFS= ${ADK_TARGET}-${ARCH}-${FS} -ROOTFSSQUASHFS= ${ADK_TARGET}-${ARCH}-${FS}.img -ROOTFSTARBALL= ${ADK_TARGET}-${ARCH}-${FS}.tar.gz -INITRAMFS_PIGGYBACK= ${ADK_TARGET}-${ARCH}-${FS}.cpio +INITRAMFS= ${ADK_TARGET}-${ADK_LIBC}-${FS} +ROOTFSSQUASHFS= ${ADK_TARGET}-${ADK_LIBC}-${FS}.img +ROOTFSTARBALL= ${ADK_TARGET}-${ADK_LIBC}-${FS}.tar.gz +INITRAMFS_PIGGYBACK= ${ADK_TARGET}-${ADK_LIBC}-${FS}.cpio ${BIN_DIR}/${ROOTFSTARBALL}: ${TARGET_DIR} cd ${TARGET_DIR}; tar -cf - --owner=0 --group=0 . | gzip -n9 >$@ ${BIN_DIR}/${INITRAMFS}: ${TARGET_DIR} cd ${TARGET_DIR}; find . | sed -n '/^\.\//s///p' | sort | \ - cpio -R 0:0 --quiet -oC512 -Mdist -Hnewc | ${ADK_COMPRESSION_TOOL} >$@ + cpio -R 0:0 -oC512 -Mdist -Hnewc | ${ADK_COMPRESSION_TOOL} >$@ ${BUILD_DIR}/${INITRAMFS_PIGGYBACK}: ${TARGET_DIR} cd ${TARGET_DIR}; find . | sed -n '/^\.\//s///p' | sort | \ - cpio -R 0:0 --quiet -oC512 -Mdist -Hnewc >$@ + cpio -R 0:0 -oC512 -Mdist -Hnewc >$@ ${BIN_DIR}/${ROOTFSSQUASHFS}: ${TARGET_DIR} PATH='${TARGET_PATH}' \ mksquashfs ${TARGET_DIR} ${BUILD_DIR}/root.squashfs \ -nopad -noappend -root-owned $(MAKE_TRACE) - cat ${BIN_DIR}/${ADK_TARGET}-${ARCH}-kernel ${BUILD_DIR}/root.squashfs > \ + cat ${BIN_DIR}/${ADK_TARGET}-${FS}-kernel \ + ${BUILD_DIR}/root.squashfs > \ ${BUILD_DIR}/${ROOTFSSQUASHFS} # padding of images is required, foxboard only? #dd if=${BUILD_DIR}/${ROOTFSSQUASHFS} of=${BIN_DIR}/${ROOTFSSQUASHFS} \ diff --git a/mk/kernel-vars.mk b/mk/kernel-vars.mk index cbc1257ff..2f238c2c6 100644 --- a/mk/kernel-vars.mk +++ b/mk/kernel-vars.mk @@ -3,6 +3,6 @@ KERNEL_MAKE_OPTS:= -C "${LINUX_DIR}" V=1 ifneq ($(ADK_NATIVE),y) -KERNEL_MAKE_OPTS+= CROSS_COMPILE="$(TARGET_CROSS)" ARCH=$(ARCH) CC="$(TARGET_CC)" +KERNEL_MAKE_OPTS+= CROSS_COMPILE="$(TARGET_CROSS)" ARCH=$(ARCH) CC="$(TARGET_CC)" HOSTCC="${HOSTCC}" endif diff --git a/mk/package.mk b/mk/package.mk index c9d9c7978..f5a48dba8 100644 --- a/mk/package.mk +++ b/mk/package.mk @@ -229,7 +229,7 @@ endif find usr ! -type d 2>/dev/null | \ grep -v -e '^usr/share' -e '^usr/man' -e '^usr/info' | \ tee '$${STAGING_PARENT}/pkg/$(1)' | \ - cpio -apdlmu --quiet '$${STAGING_DIR}' + cpio -apdlmu '$${STAGING_DIR}' @cd '$${STAGING_DIR}'; grep 'usr/lib/.*\.la$$$$' \ '$${STAGING_PARENT}/pkg/$(1)' | while read fn; do \ chmod u+w $$$$fn; \ diff --git a/mk/pkg-bottom.mk b/mk/pkg-bottom.mk index e5870f331..3a7320d6e 100644 --- a/mk/pkg-bottom.mk +++ b/mk/pkg-bottom.mk @@ -140,7 +140,7 @@ endif find usr ! -type d 2>/dev/null | \ grep -v -e '^usr/share' -e '^usr/man' -e '^usr/info' | \ tee '${STAGING_PARENT}/pkg/${PKG_NAME}' | \ - cpio -apdlmu --quiet '${STAGING_DIR}' + cpio -apdlmu '${STAGING_DIR}' @cd '${STAGING_DIR}'; grep 'usr/lib/.*\.la$$' \ '${STAGING_PARENT}/pkg/${PKG_NAME}' | while read fn; do \ chmod u+w $$fn; \ |