Diff of /trunk/wharfie/wharfie.mk [000000] .. [r2]  Maximize  Restore

Switch to side-by-side view

--- a
+++ b/trunk/wharfie/wharfie.mk
@@ -0,0 +1,149 @@
+SHELL=/bin/bash
+SUDO=$(shell which sudo)
+DBOOTSTRAP=$(shell ${SUDO} which qemu-debootstrap)
+DBOOTSTRAP2=$(shell ${SUDO} which debootstrap)
+FAKEROOT=$(shell which fakeroot)
+PACKAGES=locales systemd
+
+MAKEFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
+CWD := $(dir $(MAKEFILE_PATH))
+
+# extend path to sbin binaries
+export PATH := /usr/sbin:${PATH}
+
+ifeq (${FAKEROOT},)
+$(error fakeroot not found. On debian, you may install the package fakeroot first)
+endif
+
+ifeq (${DBOOTSTRAP},)
+$(error qemu-debootstrap not found. On debian, you may install the package qemu-user-static first)
+endif
+
+ifeq (${DBOOTSTRAP2},)
+$(error debootstrap not found. On debian, you may install the package debootstrap first)
+endif
+
+FAKEROOT+=-s ${CWD}/.fakeroot
+
+-include debian_version.mk
+
+.PHONY: test
+test:
+	echo ${FAKEROOT}
+
+
+#
+# Debian / ARM Hardfloat
+#
+.PHONY: debian_armhf_%.tar
+debian_armhf_%.tar: 
+	-mkdir ./$$(basename $@ .tar)
+	${SUDO} ${DBOOTSTRAP} --arch=armhf --variant=minbase --include="${PACKAGES}" $* ./$$(basename $@ .tar) http://ftp.debian.org/debian/
+	(echo "deb http://ftp.debian.org/debian $* main"; \
+	 echo "deb-src http://ftp.debian.org/debian $* main") | ${SUDO} tee ./$$(basename $@ .tar)/etc/apt/sources.list
+	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
+
+#
+# Debian / ARM EABI
+#
+.PHONY: 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"; \
+	 echo "deb-src http://ftp.debian.org/debian $* main") | ${SUDO} tee ./$$(basename $@ .tar)/etc/apt/sources.list
+	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
+
+#
+# Debian x86
+#
+.PHONY: debian_%.tar
+debian_%.tar: 
+	-mkdir ./$$(basename $@ .tar)
+	${SUDO} ${DBOOTSTRAP} --arch=i386 --variant=minbase --include="${PACKAGES}" $* ./$$(basename $@ .tar) http://ftp.debian.org/debian/
+	(echo "deb http://ftp.debian.org/debian $* main"; \
+	 echo "deb-src http://ftp.debian.org/debian $* main") | ${SUDO} tee ./$$(basename $@ .tar)/etc/apt/sources.list
+	cd $$(basename $@ .tar); ${SUDO} tar -cf "../$@" .
+	${SUDO} rm -R ./$$(basename $@ .tar)
+	echo DEBIAN_VERSION=$* > debian_version.mk
+	echo GCC_POSTFIX= >> debian_version.mk
+	echo LIBC_POSTFIX= >> debian_version.mk
+
+#
+# Debian Cross-Toolchain
+#
+debian_toolchain.tar:
+	-mkdir ./$$(basename $@ .tar)
+	${SUDO} ${DBOOTSTRAP} --arch=i386 --variant=minbase --include="gcc${GCC_POSTFIX} libstdc++-6-dev${LIBC_POSTFIX} libc6-dev${LIBC_POSTFIX}" ${DEBIAN_VERSION} ./$$(basename $@ .tar) http://ftp.debian.org/debian/
+	cd $$(basename $@ .tar); ${SUDO} tar -cf "../$@" .
+	${SUDO} rm -R ./$$(basename $@ .tar)
+
+#
+# Export environment shell script for the toolchain
+#
+
+define ENV_SH
+TC_PATH=$$(dirname $$_)
+
+SYSROOT=$${TC_PATH}/target
+INCLUDEDIR=$${TC_PATH}/host/usr/arm-linux-gnueabihf/include/
+LIBRARYDIR=$${TC_PATH}/target/usr/lib/arm-linux-gnueabihf/
+
+COMPILE_PREFIX=$${TC_PATH}/host/usr/bin/arm-none-eabi-
+PLUGINDIR=$$(dirname $$(readlink -f $${TC_PATH}/host/usr/lib/gcc/arm-none-eabi/*/liblto_plugin.so))
+HOSTLIBDIR=$${TC_PATH}/host/usr/lib/i386-linux-gnu/:$${TC_PATH}/host/usr/lib/:$${TC_PATH}/host/lib
+
+LD_LIBRARY_PATH=$${HOSTLIBDIR}
+CC=$${COMPILE_PREFIX}gcc
+CXX=$${COMPILE_PREFIX}cpp
+LD=$${COMPILE_PREFIX}ld
+AS=$${COMPILE_PREFIX}as
+AR=$${COMPILE_PREFIX}ar
+NM=$${COMPILE_PREFIX}nm
+GCOV=$${COMPILE_PREFIX}gcov
+OBJDUMP=$${COMPILE_PREFIX}objdump
+CFLAGS=
+LDFLAGS=
+# common C/LD Flags
+CFLAGS="$${CFLAGS} --sysroot=$${SYSROOT}"
+CFLAGS="$${CFLAGS} -B$${PLUGINDIR} -mfloat-abi=hard"
+LDFLAGS="$${CFLAGS}"
+# CFLAGS
+CFLAGS="$${CFLAGS} --sysroot=$${SYSROOT}"
+CFLAGS="-I$${INCLUDEDIR}"
+
+# LDFLAGS
+LDFALGS="-L$${LIBRARYDIR}"
+LDFLAGS="$${LDFLAGS} -L$${LIBRARYDIR}"
+LDFLAGS="$${LDFLAGS} -B$${LIBRARYDIR}"
+LDFLAGS="$${LDFLAGS} -lc"
+
+export CC
+export CXX
+export LD
+export AS
+export AR
+export NM
+export GCOV
+export OBJDUMP
+export CFLAGS
+export LDFLAGS
+export LD_LIBRARY_PATH
+endef
+
+export ENV_SH
+
+debian_toolchain_env.sh:
+	@echo "$${ENV_SH}" > $@
+
+clean:
+	rm -f *.piling.tar
+	for i in ???????.piling/proc; do sudo umount "./$$i"; sudo rm -Rf "./$$(dirname $$i)"; done