#!/bin/bash KERNEL_TOOLCHAIN_VERSION=r10381 KERNEL_TOOLCHAIN_FILENAME_SUFFIX=freetz-${KERNEL_TOOLCHAIN_VERSION}-shared-glibc TARGET_TOOLCHAIN_VERSION=r10381 TARGET_TOOLCHAIN_FILENAME_SUFFIX=freetz-${TARGET_TOOLCHAIN_VERSION}-shared-glibc TOOL_CONF=tools/config/conf DOT_CONFIG=.config DOWNLOADS=~/dl miniconfig() { local i for i in "$@"; do echo "$i=y"; done cat << EOF FREETZ_USER_LEVEL_EXPERT=y FREETZ_BUILD_TOOLCHAIN=y FREETZ_TOOLCHAIN_32BIT=y EOF } # # required kernel compiler versions: # 3.4 LE # 4.6 LE/BE # # required uClibc versions: # 0.9.28 LE # 0.9.29 LE # 0.9.32.x LE/BE # # kernel uClibc # FREETZ_TYPE_WLAN 3.4 LE 0.9.28 LE # FREETZ_TYPE_7270_V1+IPv6 3.4 LE 0.9.29 LE # FREETZ_TYPE_7270_V3 4.6 LE 0.9.32.x LE # # FREETZ_TYPE_7390 4.6 BE 0.9.32.x BE # mkdir -p $DOWNLOADS for options in \ FREETZ_TYPE_WLAN \ "FREETZ_TYPE_7270_V1 FREETZ_TARGET_IPV6_SUPPORT" \ FREETZ_TYPE_7270_V3 \ FREETZ_TYPE_7390 \ ; do optionsCommaSep=$(echo $options | sed -e 's| |,|g') optionsUnderscoreSep=$(echo $options | sed -e 's| |_|g') echo "Building toolchains for $optionsCommaSep" make distclean rm -rf dl 2>/dev/null ln -sf $DOWNLOADS dl make $TOOL_CONF miniconfig $options > $DOT_CONFIG $TOOL_CONF --oldnoconfig Config.in cp -a $DOT_CONFIG $DOT_CONFIG.$optionsUnderscoreSep make KTV=${KERNEL_TOOLCHAIN_FILENAME_SUFFIX} TTV=${TARGET_TOOLCHAIN_FILENAME_SUFFIX} toolchain done