summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
Diffstat (limited to 'mk')
-rw-r--r--mk/build.mk46
-rw-r--r--mk/image.mk9
-rw-r--r--mk/package.mk6
-rw-r--r--mk/pkg-bottom.mk2
-rw-r--r--mk/vars.mk5
5 files changed, 49 insertions, 19 deletions
diff --git a/mk/build.mk b/mk/build.mk
index 3108ec064..2d4523e75 100644
--- a/mk/build.mk
+++ b/mk/build.mk
@@ -104,7 +104,7 @@ POSTCONFIG= -@\
fi; \
done; \
if [ "$$(grep ^ADK_RUNTIME_TIMEZONE .config|md5sum)" != "$$(grep ^ADK_RUNTIME_TIMEZONE .config.old|md5sum)" ];then \
- touch .rebuild.eglibc .rebuild.uclibc .rebuild.glibc;\
+ touch .rebuild.musl .rebuild.uclibc .rebuild.glibc;\
rebuild=1;\
fi; \
if [ "$$(grep ^ADK_RUNTIME_SSH_PUBKEY .config|md5sum)" != "$$(grep ^ADK_RUNTIME_SSH_PUBKEY .config.old|md5sum)" ];then \
@@ -141,7 +141,7 @@ ${TOPDIR}/package/Depends.mk: ${TOPDIR}/.config $(wildcard ${TOPDIR}/package/*/M
$(STAGING_HOST_DIR)/usr/bin/depmaker > ${TOPDIR}/package/Depends.mk
.NOTPARALLEL:
-.PHONY: all world clean cleantarget cleandir distclean image_clean
+.PHONY: all world clean cleantarget cleandir cleantoolchain distclean image_clean
world:
mkdir -p $(DISTDIR) $(BUILD_DIR) $(TARGET_DIR) $(FW_DIR) \
@@ -252,10 +252,8 @@ clean:
$(MAKE) -C $(CONFIG) clean
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 ;\
+ done < ${STAGING_PKG_DIR}/$$f ; \
rm ${STAGING_PKG_DIR}/$$f ; \
done
rm -rf $(BUILD_DIR) $(FW_DIR) $(TARGET_DIR) \
@@ -275,6 +273,15 @@ cleandir:
rm -rf $(STAGING_TARGET_DIR_PFX) $(STAGING_PKG_DIR_PFX)
rm -f .menu .tmpconfig.h .rebuild* ${TOPDIR}/package/Depends.mk ${TOPDIR}/prereq.mk
+cleantoolchain:
+ @$(TRACE) cleantoolchain
+ @$(MAKE) -C $(CONFIG) clean $(MAKE_TRACE)
+ rm -rf $(BUILD_DIR_PFX) $(TARGET_DIR_PFX) \
+ ${TOPDIR}/package/pkglist.d ${TOPDIR}/package/pkgconfigs.d
+ rm -rf $(TOOLCHAIN_BUILD_DIR_PFX) $(STAGING_HOST_DIR_PFX) $(TOOLS_BUILD_DIR)
+ rm -rf $(STAGING_TARGET_DIR_PFX) $(STAGING_PKG_DIR_PFX)
+ rm -f .menu .tmpconfig.h .rebuild* ${TOPDIR}/package/Depends.mk ${TOPDIR}/prereq.mk
+
cleantarget:
@$(TRACE) cleantarget
@$(MAKE) -C $(CONFIG) clean $(MAKE_TRACE)
@@ -526,7 +533,7 @@ endif # ! ifeq ($(strip $(ADK_HAVE_DOT_CONFIG)),y)
# build all target architecture and libc combinations (toolchain only)
bulktoolchain:
- for libc in glibc eglibc uclibc musl;do \
+ for libc in glibc uclibc musl;do \
while read arch; do \
mkdir -p $(TOPDIR)/firmware/toolchain_$${arch}_$$libc; \
( \
@@ -535,7 +542,8 @@ bulktoolchain:
$(GMAKE) prereq && \
$(GMAKE) ARCH=$$tarch SYSTEM=toolchain-$$arch LIBC=$$libc defconfig; \
$(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit;fi; \
- tar -cvJf ${TOPDIR}/firmware/toolchain_$${arch}_$${libc}.tar.xz host_$${arch}_*_$${libc} target_$${arch}_*_$${libc}; \
+ tar -cvJf ${TOPDIR}/firmware/toolchain_$${arch}_$${libc}.tar.xz host_* target_$${arch}_$${libc}_*; \
+ $(GMAKE) cleantoolchain; \
rm .config; \
) 2>&1 | tee $(TOPDIR)/firmware/toolchain_$${arch}_$${libc}/build.log; \
if [ -f .exit ];then break;fi \
@@ -543,8 +551,24 @@ bulktoolchain:
if [ -f .exit ];then echo "Bulk build failed!"; rm .exit; exit 1;fi \
done
+test-framework:
+ for libc in uclibc glibc musl;do \
+ mkdir -p $(TOPDIR)/firmware/$(SYSTEM)_$(ARCH)_$$libc; \
+ ( \
+ for arch in arm mips mipsel x86 x86_64;do \
+ echo === building qemu-$$arch for $$libc on $$(date); \
+ $(GMAKE) prereq && \
+ $(GMAKE) ARCH=$$arch SYSTEM=qemu-$$arch LIBC=$$libc FS=archive defconfig; \
+ $(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit; exit 1;fi; \
+ rm .config; \
+ done; \
+ ) 2>&1 | tee $(TOPDIR)/firmware/$(SYSTEM)_$(ARCH)_$$libc/build.log; \
+ if [ -f .exit ];then echo "Bulk build failed!"; break;fi \
+ done
+ if [ -f .exit ];then rm .exit;exit 1;fi
+
release:
- for libc in uclibc eglibc glibc musl;do \
+ for libc in uclibc glibc musl;do \
mkdir -p $(TOPDIR)/firmware/$(SYSTEM)_$(ARCH)_$$libc; \
( \
echo === building $$libc on $$(date); \
@@ -559,7 +583,7 @@ release:
# build all target architecture, target systems and libc combinations
bulk:
- for libc in uclibc eglibc glibc musl;do \
+ for libc in uclibc glibc musl;do \
while read arch; do \
systems=$$(./scripts/getsystems $$arch|grep -v toolchain); \
for system in $$systems;do \
@@ -579,7 +603,7 @@ bulk:
done
bulkall:
- for libc in uclibc eglibc glibc musl;do \
+ for libc in uclibc glibc musl;do \
while read arch; do \
systems=$$(./scripts/getsystems $$arch| grep -v toolchain); \
for system in $$systems;do \
@@ -599,7 +623,7 @@ bulkall:
done
bulkallmod:
- for libc in uclibc eglibc glibc musl;do \
+ for libc in uclibc glibc musl;do \
while read arch; do \
systems=$$(./scripts/getsystems $$arch| grep -v toolchain); \
for system in $$systems;do \
diff --git a/mk/image.mk b/mk/image.mk
index 571752eaf..3f199c9cc 100644
--- a/mk/image.mk
+++ b/mk/image.mk
@@ -51,6 +51,7 @@ image-prepare-post:
-rm -f ${TARGET_DIR}/bin/sh
ln -sf ${BINSH} ${TARGET_DIR}/bin/sh
ifeq ($(ADK_LINUX_X86_64),y)
+ifneq ($(ADK_TARGET_ABI_X32),y)
# fixup lib dirs
mv ${TARGET_DIR}/lib/* ${TARGET_DIR}/${ADK_TARGET_LIBC_PATH}
rm -rf ${TARGET_DIR}/lib/
@@ -60,6 +61,7 @@ ifeq ($(ADK_LINUX_X86_64),y)
rm -rf ${TARGET_DIR}/usr/lib/
(cd ${TARGET_DIR}/usr ; ln -sf ${ADK_TARGET_LIBC_PATH} lib)
endif
+endif
ifeq ($(ADK_LINUX_PPC64),y)
# fixup lib dirs
mv ${TARGET_DIR}/lib/* ${TARGET_DIR}/${ADK_TARGET_LIBC_PATH}
@@ -175,10 +177,11 @@ createinitramfs: ${FW_DIR}/${INITRAMFS}_list
${LINUX_DIR}/.config
( \
echo "CONFIG_BLK_DEV_INITRD=y"; \
+ echo "CONFIG_ACPI_INITRD_TABLE_OVERRIDE=n"; \
echo 'CONFIG_INITRAMFS_SOURCE="${FW_DIR}/${INITRAMFS}_list"'; \
- echo '# CONFIG_INITRAMFS_COMPRESSION_NONE is not set' >> ${LINUX_DIR}/.config; \
- echo 'CONFIG_INITRAMFS_ROOT_UID=0' >> ${LINUX_DIR}/.config; \
- echo 'CONFIG_INITRAMFS_ROOT_GID=0' >> ${LINUX_DIR}/.config; \
+ echo '# CONFIG_INITRAMFS_COMPRESSION_NONE is not set'; \
+ echo 'CONFIG_INITRAMFS_ROOT_UID=0'; \
+ echo 'CONFIG_INITRAMFS_ROOT_GID=0'; \
) >> ${LINUX_DIR}/.config
ifeq ($(ADK_KERNEL_COMP_XZ),y)
echo "CONFIG_RD_BZIP2=n" >> ${LINUX_DIR}/.config
diff --git a/mk/package.mk b/mk/package.mk
index 264cd06e0..d5d48c1e1 100644
--- a/mk/package.mk
+++ b/mk/package.mk
@@ -112,7 +112,7 @@ build-all-pkgs: ${_IPKGS_COOKIE}
# noscripts -> do not install scripts to $(STAGING_TARGET_DIR)/scripts
# (needed for example for autoconf/automake)
# noremove -> do not remove files from $(STAGING_TARGET_DIR)/target while
-# cleaning (needed for toolchain packages like glibc/eglibc)
+# cleaning (needed for toolchain packages like glibc)
# dev -> create a development subpackage with headers and pkg-config files
# should be package format independent and modular in the future
define PKG_template
@@ -242,7 +242,7 @@ endif
'ramdisk location:' >&2; \
echo "$$$$x" | sed 's/^/- /' >&2; \
fi; \
- if [ "${PKG_NAME}" != "uClibc" -a "${PKG_NAME}" != "glibc" -a "${PKG_NAME}" != "eglibc" -a "${PKG_NAME}" != "libpthread" -a "${PKG_NAME}" != "libstdcxx" -a "${PKG_NAME}" != "libgcc" -a "${PKG_NAME}" != "libthread-db" -a "${PKG_NAME}" != "musl" ];then \
+ if [ "${PKG_NAME}" != "uClibc" -a "${PKG_NAME}" != "glibc" -a "${PKG_NAME}" != "libpthread" -a "${PKG_NAME}" != "libstdcxx" -a "${PKG_NAME}" != "libgcc" -a "${PKG_NAME}" != "libthread-db" -a "${PKG_NAME}" != "musl" ];then \
find lib \( -name lib\*.so\* -o -name lib\*.a \) \
-exec echo 'WARNING: $${IPKG_$(1)} installs files in /lib -' \
' fix this!' >&2 \; -quit 2>/dev/null; fi; \
@@ -300,7 +300,6 @@ $$(INFO_$(1)_DBG): $$(IPKG_$(1)_DBG)
$(PKG_INSTALL) $$(IPKG_$(1)_DBG)
ifneq ($(1),UCLIBC)
-ifneq ($(1),EGLIBC)
ifneq ($(1),GLIBC)
ifneq ($(1),MUSL)
$$(INFO_$(1)_DEV): $$(IPKG_$(1)_DEV)
@@ -308,7 +307,6 @@ $$(INFO_$(1)_DEV): $$(IPKG_$(1)_DEV)
endif
endif
endif
-endif
endef
diff --git a/mk/pkg-bottom.mk b/mk/pkg-bottom.mk
index 3988a676f..66feea33c 100644
--- a/mk/pkg-bottom.mk
+++ b/mk/pkg-bottom.mk
@@ -184,7 +184,7 @@ ifneq (,$(filter dev,${PKG_OPTS}))
done
endif
@-cd ${WRKINST}; \
- if [ "${PKG_NAME}" != "uClibc" -a "${PKG_NAME}" != "eglibc" -a "${PKG_NAME}" != "glibc" -a "${PKG_NAME}" != "libpthread" -a "${PKG_NAME}" != "libstdcxx" -a "${PKG_NAME}" != "libgcc" -a "${PKG_NAME}" != "libthread-db" -a "${PKG_NAME}" != "musl" -a "${PKG_NAME}" != "pam" ];then \
+ if [ "${PKG_NAME}" != "uClibc" -a "${PKG_NAME}" != "glibc" -a "${PKG_NAME}" != "libpthread" -a "${PKG_NAME}" != "libstdcxx" -a "${PKG_NAME}" != "libgcc" -a "${PKG_NAME}" != "libthread-db" -a "${PKG_NAME}" != "musl" -a "${PKG_NAME}" != "pam" ];then \
find lib \( -name lib\*.so\* -o -name lib\*.a \) \
-exec echo 'WARNING: ${PKG_NAME} installs files in /lib -' \
' fix this!' >&2 \; -quit 2>/dev/null; fi;\
diff --git a/mk/vars.mk b/mk/vars.mk
index a0898ae2d..ef50e59d8 100644
--- a/mk/vars.mk
+++ b/mk/vars.mk
@@ -48,8 +48,13 @@ TARGET_DIR_PFX:= $(BASE_DIR)/root_*
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}
+ifeq ($(ADK_TARGET_ABI_X32),y)
+REAL_GNU_TARGET_NAME= $(CPU_ARCH)-x32-linux-$(ADK_TARGET_SUFFIX)
+GNU_TARGET_NAME= $(CPU_ARCH)-x32-linux
+else
REAL_GNU_TARGET_NAME= $(CPU_ARCH)-$(ADK_VENDOR)-linux-$(ADK_TARGET_SUFFIX)
GNU_TARGET_NAME= $(CPU_ARCH)-$(ADK_VENDOR)-linux
+endif
ifeq ($(ADK_DISABLE_HONOUR_CFLAGS),)
GCC_CHECK:= GCC_HONOUR_COPTS=2