--- a/trunk/wharfie/wharfie.mk +++ b/trunk/wharfie/wharfie.mk @@ -65,6 +65,23 @@ test: echo ${FAKEROOT} +# +# Set version specific system variables for the toolchain +# +debian_armhf_%.tar: gcc_postfix=-arm-none-eabi +debian_armhf_%.tar: libc_postfix=-armhf-cross +debian_armel_%.tar: gcc_postfix=-arm-none-eabi +debian_armel_%.tar: libc_postfix=-armhf-cross +debian_arm64_%.tar: gcc_postfix=-aarch64-linux-gnu +debian_arm64_%.tar: libc_postfix=-arm64-cross + +# stretch changed doesn't support ARM non-eabi anymore, but has more specific ones +debian_armhf_stretch.tar: gcc_postfix=-arm-linux-gnueabihf +debian_armel_stretch.tar: gcc_postfix=-arm-linux-gnueabi + +# since stretch, ARM supports g++ +debian_armhf_stretch.tar: additional_arch_packages+=g++-arm-linux-gnueabihf +debian_armel_stretch.tar: additional_arch_packages+=g++-arm-linux-gnueabi # # Debian / ARM Hardfloat @@ -78,14 +95,15 @@ cd $$(basename $@ .tar); ${SUDO} tar -cf "../$@" . ${SUDO} rm -R ./$$(basename $@ .tar) echo DEBIAN_VERSION=$* > debian_version.mk - echo GCC_POSTFIX=-arm-none-eabi >> debian_version.mk - echo LIBC_POSTFIX=-armhf-cross >> debian_version.mk + echo GCC_POSTFIX=${gcc_postfix} >> debian_version.mk + echo LIBC_POSTFIX=${libc_postfix} >> debian_version.mk + echo ADDITIONAL_ARCH_PACKAGES=${additional_arch_packages} >> debian_version.mk # # Debian / ARM EABI # .PHONY: debian_armel_%.tar -debian_armel_%.tar: +debian_armel_%.tar: -mkdir ./$$(basename $@ .tar) ${SUDO} ${DBOOTSTRAP} --arch=armel --variant=minbase --include="${PACKAGES}" $* ./$$(basename $@ .tar) http://ftp.debian.org/debian/ (echo "deb http://ftp.debian.org/debian $* main"; \ @@ -93,14 +111,15 @@ cd $$(basename $@ .tar); ${SUDO} tar -cf "../$@" . ${SUDO} rm -R ./$$(basename $@ .tar) echo DEBIAN_VERSION=$* > debian_version.mk - echo GCC_POSTFIX=-arm-none-eabi >> debian_version.mk - echo LIBC_POSTFIX=-armel-cross >> debian_version.mk + echo GCC_POSTFIX=${gcc_postfix} >> debian_version.mk + echo LIBC_POSTFIX=${libc_postfix} >> debian_version.mk + echo ADDITIONAL_ARCH_PACKAGES=${additional_arch_packages} >> debian_version.mk # # Debian / ARM64 # -.PHONY: debian_armel_%.tar -debian_arm64_%.tar: +.PHONY: debian_arm64_%.tar +debian_arm64_%.tar: -mkdir ./$$(basename $@ .tar) ${SUDO} ${DBOOTSTRAP} --arch=arm64 --variant=minbase --include="${PACKAGES}" $* ./$$(basename $@ .tar) http://ftp.debian.org/debian/ (echo "deb http://ftp.debian.org/debian $* main"; \ @@ -108,15 +127,16 @@ cd $$(basename $@ .tar); ${SUDO} tar -cf "../$@" . ${SUDO} rm -R ./$$(basename $@ .tar) echo DEBIAN_VERSION=$* > debian_version.mk - echo GCC_POSTFIX=-aarch64-linux-gnu >> debian_version.mk - echo LIBC_POSTFIX=-arm64-cross >> debian_version.mk + echo GCC_POSTFIX=${gcc_postfix} >> debian_version.mk + echo LIBC_POSTFIX=${libc_postfix} >> debian_version.mk + echo ADDITIONAL_ARCH_PACKAGES=${additional_arch_packages} >> debian_version.mk # # Debian x86/amd64... # extended for debian_{amd64,i386}_{deb_version}.tar # or old format "debian_{deb_version}.tar" .PHONY: debian_%.tar -debian_%.tar: +debian_%.tar: $(eval ARCH:=$(if $(word 3,$(subst _, ,$@)),$(word 2,$(subst _, ,$@)),"i386")) $(eval VERSION:=$(if $(word 3,$(subst _, ,$@)),$(basename $(word 3,$(subst _, ,$@))),$(basename $(word 2,$(subst _, ,$@))))) -mkdir ./$$(basename $@ .tar) @@ -126,8 +146,9 @@ cd $$(basename $@ .tar); ${SUDO} tar -cf "../$@" . ${SUDO} rm -R ./$$(basename $@ .tar) echo DEBIAN_VERSION=${VERSION} > debian_version.mk - echo GCC_POSTFIX= >> debian_version.mk - echo LIBC_POSTFIX= >> debian_version.mk + echo GCC_POSTFIX=${gcc_postfix} >> debian_version.mk + echo LIBC_POSTFIX=${libc_postfix} >> debian_version.mk + echo ADDITIONAL_ARCH_PACKAGES=${additional_arch_packages} >> debian_version.mk -include debian_version.mk @@ -141,7 +162,7 @@ .PHONY: make_toolchain make_toolchain: -mkdir ./debian_toolchain - ${SUDO} ${DBOOTSTRAP} --arch=amd64 --variant=minbase --include="${ADDITIONAL_TOOLCHAIN_PACKAGES} gcc${GCC_POSTFIX} libc6-dev${LIBC_POSTFIX}" ${DEBIAN_VERSION} ./debian_toolchain http://ftp.debian.org/debian/ + ${SUDO} ${DBOOTSTRAP} --arch=amd64 --variant=minbase --include="${ADDITIONAL_TOOLCHAIN_PACKAGES} gcc${GCC_POSTFIX} libc6-dev${LIBC_POSTFIX} ${ADDITIONAL_ARCH_PACKAGES}" ${DEBIAN_VERSION} ./debian_toolchain http://ftp.debian.org/debian/ ${SUDO} chroot ./debian_toolchain ldconfig cd debian_toolchain && ${SUDO} tar -cf "../debian_toolchain.tar" . ${SUDO} rm -R ./debian_toolchain @@ -212,6 +233,8 @@ printf "IP: %s (if target is running)\n" $$(ping -c 1 "$${targethostname}" 2>&1 | sed -n '/bytes from/ s,.*(\([^)]*\)).*,\1, p'); clean: + rm -f debian_version.mk + rm -f debian_*.tar rm -f *.piling.tar *.piling.tar.snar for i in ???????.piling/; do sudo rm -Rf "./$$i"; done for i in ????????.piling/; do sudo rm -Rf "./$$i"; done