summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Kleine-Budde <mkl@pengutronix.de>2008-09-19 10:15:02 +0000
committerMarc Kleine-Budde <mkl@pengutronix.de>2008-09-19 10:15:02 +0000
commita3536e4ea123630d2e98c67861e0891f1a54e480 (patch)
treec8b854b25d3a017a2fa349d279a524c3907de05a
parent413b39dc02211eb2fadea8cf21f0d5f58dfd0cc4 (diff)
downloadOSELAS.Toolchain-a3536e4ea123630d2e98c67861e0891f1a54e480.tar.gz
OSELAS.Toolchain-a3536e4ea123630d2e98c67861e0891f1a54e480.tar.xz
git-svn-id: https://svn.pengutronix.de/svn/oselas/toolchain/trunks/OSELAS.Toolchain-trunk@7474 f8d472c7-5700-0410-ac5a-87979cec3adf
-rwxr-xr-xfixup_ptxconfigs.sh184
1 files changed, 172 insertions, 12 deletions
diff --git a/fixup_ptxconfigs.sh b/fixup_ptxconfigs.sh
index 897ea01..80dec5c 100755
--- a/fixup_ptxconfigs.sh
+++ b/fixup_ptxconfigs.sh
@@ -1,19 +1,179 @@
#!/bin/bash
+get_replace()
+{
+ local var="${1}"
+
+ if [ "${!var}" = "y" ]; then
+ echo "-e \"s~\# \(${var}\) is not set.*~\1=${!var}~\""
+ #FIXME turn it off again
+ else
+ echo "-e \"s~\(${var}\)=.*~\1=\\\"${!var}\\\"~\""
+ fi
+}
+
fixup() {
-
- PARMS=`echo ${1} | sed -e "s/ptxconfigs\/\(.*\)_gcc-\(.*\)_glibc-\(.*\)_linux-\([^_-]*\).*\.ptxconfig/TARGET=\1 GCC=\2 GLIBC=\3 LINUX=\4/"`
- if test ! -e "${PARMS}"; then
- eval ${PARMS}
-
- sed -i \
- -e "s/\(PTXCONF_GNU_TARGET\)=.*/\1=\"${TARGET}\"/" \
- -e "s/\(PTXCONF_CROSS_GCC_VERSION\)=.*/\1=\"${GCC}\"/" \
- -e "s/\(PTXCONF_GLIBC_VERSION\)=.*/\1=\"${GLIBC}\"/" \
- -e "s/\(PTXCONF_KERNEL_HEADERS_VERSION\)=.*/\1=\"${LINUX}\"/" \
- -e "s:\(PTXCONF_PREFIX\)=.*:\1=\"/opt\":" \
- ${1}
+ local config="${1}"
+
+ touple="${config##*/}"
+ touple="${touple%.ptxconfig}"
+
+ local ifs_old="${IFS}"
+ IFS="_"
+ set -- ${touple}
+ IFS="${ifs_orig}"
+
+ while [ ${#} -ne 0 ]; do
+ part="${1}"
+ shift
+
+ case "${part}" in
+ gcc*)
+ PTXCONF_CROSS_GCC_VERSION="${part##gcc-}"
+ ;;
+ glibc*)
+ PTXCONF_GLIBC_VERSION="${part##glibc-}"
+ ;;
+ libc*)
+ PTXCONF_AVRLIB_VERSION="${part##libc-}"
+ ;;
+ binutils*)
+ PTXCONF_CROSS_BINUTILS_VERSION="${part##binutils-}"
+ ;;
+ linux*)
+ PTXCONF_KERNEL_HEADERS_VERSION="${part##linux-}"
+ PTXCONF_KERNEL_HEADERS_VERSION="${PTXCONF_KERNEL_HEADERS_VERSION%-sanitized}"
+
+ case "${part}" in
+ *-sanitized)
+ PTXCONF_KERNEL_HEADERS_SANITIZED=y
+ ;;
+ esac
+ ;;
+ j*)
+ PTXCONF_CROSS_GCC_LANG_JAVA=y
+ ;;
+ *)
+ PTXCONF_GNU_TARGET="${PTXCONF_GNU_TARGET}${PTXCONF_GNU_TARGET:+_}${part}"
+ ;;
+ esac
+ done
+
+ # version
+ PTXCONF_CONFIGFILE_VERSION="1.99.6"
+ PTXCONF_PROJECT="OSELAS.Toolchain-trunk"
+
+ # defaults
+ PTXCONF_PREFIX="/opt"
+ PTXCONF_GLIBC_EXTRA_CONFIG=""
+ PTXCONF_GLIBC_TIMESTAMP=""
+
+ # ARM eabi hack
+ case "${PTXCONF_GNU_TARGET}" in
+ arm*gnueabi)
+ PTXCONF_GLIBC_HEADERS_FAKE_CROSS="-D__ARM_EABI__"
+ ;;
+ *)
+ ;;
+ esac
+
+ case "${PTXCONF_GNU_TARGET}" in
+ # hard fpa
+ arm-v4t_hardfloat-linux-gnu)
+ PTXCONF_CROSS_GCC_EXTRA_CONFIG="--with-float=hard --with-fpu=fpa --with-arch=armv4t"
+ ;;
+ arm-xscale_hardfloat-linux-gnu)
+ PTXCONF_CROSS_GCC_EXTRA_CONFIG="--with-float=hard --with-fpu=fpa --with-cpu=xscale"
+ ;;
+
+ # softfp, vfp
+ arm-1136jfs-linux-gnueabi)
+ PTXCONF_CROSS_GCC_EXTRA_CONFIG="--with-float=softfp --with-fpu=vfp --with-cpu=arm1136jf-s"
+ ;;
+
+ # soft, vfp
+ armeb-xscale-linux-gnueabi|armeb-xscale-linux-gnu)
+ PTXCONF_CROSS_GCC_EXTRA_CONFIG="--with-float=soft --with-fpu=vfp --with-cpu=xscale"
+ PTXCONF_GLIBC_EXTRA_CONFIG="--without-fp"
+ ;;
+ arm-iwmmx-linux-gnueabi)
+ PTXCONF_CROSS_GCC_EXTRA_CONFIG="--with-float=soft --with-fpu=vfp --with-cpu=iwmmxt"
+ PTXCONF_GLIBC_EXTRA_CONFIG="--without-fp"
+ ;;
+ arm-v4t-linux-gnueabi|arm-v4t-linux-gnu)
+ PTXCONF_CROSS_GCC_EXTRA_CONFIG="--with-float=soft --with-fpu=vfp --with-arch=armv4t"
+ PTXCONF_GLIBC_EXTRA_CONFIG="--without-fp"
+ ;;
+ arm-v5te-linux-gnueabi)
+ PTXCONF_CROSS_GCC_EXTRA_CONFIG="--with-float=soft --with-fpu=vfp --with-cpu=arm926ej-s --with-arch=armv5te"
+ PTXCONF_GLIBC_EXTRA_CONFIG="--without-fp"
+ ;;
+ arm-xscale-linux-gnueabi|arm-xscale-linux-gnu)
+ PTXCONF_CROSS_GCC_EXTRA_CONFIG="--with-float=soft --with-fpu=vfp --with-cpu=xscale"
+ PTXCONF_GLIBC_EXTRA_CONFIG="--without-fp"
+ ;;
+
+
+ i586-unknown-linux-gnu)
+ PTXCONF_CROSS_GCC_EXTRA_CONFIG="--with-arch=i586"
+ ;;
+ i686-unknown-linux-gnu)
+ PTXCONF_CROSS_GCC_EXTRA_CONFIG="--with-arch=i686"
+ ;;
+
+ mipsel-softfloat-linux-gnu)
+ PTXCONF_GLIBC_EXTRA_CONFIG="--without-fp"
+ ;;
+ powerpc-603e-linux-gnu)
+ PTXCONF_CROSS_GCC_EXTRA_CONFIG="--with-cpu=603e --disable-altivec"
+ ;;
+
+ avr)
+ ;;
+
+ *)
+ echo "unknown target: ${PTXCONF_GNU_TARGET}"
+ exit 1
+ ;;
+ esac
+
+ case "${PTXCONF_KERNEL_HEADERS_VERSION}" in
+ 2.6.18)
+ PTXCONF_GLIBC_ENABLE_KERNEL="2.6.16"
+ ;;
+ 2.6.26)
+ PTXCONF_GLIBC_ENABLE_KERNEL="2.6.23"
+ ;;
+ *)
+ ;;
+ esac
+
+
+ clear
+
+ local sed_magic=""
+ for var in ${!PTXCONF_@}; do
+ # remove tabs :)
+ eval "${var}"=\"$(echo ${!var} | sed -e "s/[\t]\+/ /g")\"
+
+ echo "${var}"="${!var}"
+ sed_magic="${sed_magic} $(get_replace "${var}")"
+ unset "${var}"
+ done
+
+ eval sed -i "${sed_magic}" "${config}"
+
+ if [ -e selected_ptxconfig ]; then
+ rm selected_ptxconfig
fi
+
+ echo
+ echo
+ echo
+
+ ptxdist --force-config select ${config}
+ ptxdist oldconfig
+
}
#