blob: 82a50d465901dd32eb31dcb809a784eb599e6b32 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
#!/bin/sh
# $Id$
#
# Copyright (C) 2003 Ixia Communications, by Dan Kegel
#
# See CREDITS for details about who has contributed to this project.
#
# For further information about the PTXdist project and license conditions
# see the README file.
#
# Script to set up ptxdist to use a crosstool-generated toolchain
# Must be run from main ptxdist directory.
#
# Example: TARGET=powerpc-405-linux-gnu PREFIX=/opt/blartfast sh scripts/settoolchain.sh
abort() {
echo "$@"
exec /bin/false
}
test -z "${TARGET}" && abort "Please set TARGET to the Gnu target identifier (e.g. pentium-unknown-linux-gnu)"
test -z "${PREFIX}" && abort "Please set PREFIX to where you want the toolchain installed."
test -f scripts/settoolchain.sh || abort "Please run from main ptxdist directory."
# Grumble. Convert TARGET to internal ptxdist booleans.
# This is really fragile, and I probably missed a bunch of subarch flags. (dank)
#
# yes: arm le/be discrimination, but I added this (mkl)
# x86 also added (mkl)
#
# fixed mips (mkl)
# fixed help message (mkl)
#
case $TARGET in
*-*-*-*) ;;
*) abort "Please use a canonical target name. These always contain three dashes, e.g. mipsle-unknown-linux-gnu." ;;
esac
case $TARGET in
*arm*uclinux*) PTXARCH=ARM_NOMMU ;;
*armb*) PTXARCH=ARM ; PTXSUBARCH=ARM_ARCH_BE;;
*arm*) PTXARCH=ARM ; PTXSUBARCH=ARM_ARCH_LE;;
*i386*) PTXARCH=X86 ; PTXSUBARCH=OPT_I386;;
*i486*) PTXARCH=X86 ; PTXSUBARCH=OPT_I486;;
*i586*) PTXARCH=X86 ; PTXSUBARCH=OPT_I586;;
*i686*) PTXARCH=X86 ; PTXSUBARCH=OPT_I686;;
*pentium*) PTXARCH=X86 ; PTXSUBARCH=OPT_I586;;
*ppc*) abort "Please use a target of powerpc-*-*-* rather than ppc-*" ;;
*powerpc-405-*) PTXARCH=PPC; PTXSUBARCH=OPT_PPC405;;
*powerpc-750-*) PTXARCH=PPC; PTXSUBARCH=OPT_PPC750;;
*powerpc-7450-*) PTXARCH=PPC; PTXSUBARCH=OPT_PPC7450;;
*powerpc*) PTXARCH=PPC ; PTXSUBARCH=OPT_PPC;;
*sparc*) PTXARCH=SPARC ;;
*mipsle*) PTXARCH=MIPS ; PTXSUBARCH=MIPS_ARCH_LE ;;
*mips*) PTXARCH=MIPS ; PTXSUBARCH=MIPS_ARCH_BE ;;
*cris*) PTXARCH=CRIS ;;
*parisc*) PTXARCH=PARISC ;;
*sh3*) PTXARCH=SH ; PTXSUBARCH=SH_ARCH_SH3 ; PTXOPT=OPT_SH3 ;;
*sh4*) PTXARCH=SH ; PTXSUBARCH=SH_ARCH_SH4 ; PTXOPT=OPT_SH4 ;;
*sh*) PTXARCH=SH ;;
*alpha*) PTXARCH=ALPHA ;;
*) abort "unrecognized target $TARGET"
esac
echo PTXCONF_GNU_TARGET=\"$TARGET\" > .config.tmp
echo "PTXCONF_ARCH_$PTXARCH=y" >> .config.tmp
test x$PTXSUBARCH != x && echo "PTXCONF_$PTXSUBARCH=y" >> .config.tmp
test x$PTXOPT != x && echo "PTXCONF_$PTXOPT=y" >> .config.tmp
echo PTXCONF_PREFIX=\"$PREFIX\" >> .config.tmp
echo PTXCONF_ROOT=\"$PREFIX/target\" >> .config.tmp
echo '# PTXCONF_BUILD_CROSSCHAIN is not set' >> .config.tmp
# need to set experimental to get some arches
echo "PTXCONF_EXPERIMENTAL=y" >> .config.tmp
echo "PTXCONF_EXPERIMENTAL_MORE=y" >> .config.tmp
egrep -v "PTXCONF_ARCH=|PTXCONF_ARCH_|PTXCONF_ARM|PTXCONF_GNU_TARGET|PTXCONF_OPT_|PTXCONF_PREFIX|PTXCONF_ROOT=|PTXCONF_SH_ARCH_|PTXCONF_TARGET_CONFIG_FILE" .config >> .config.tmp
test -f .config && cp .config .config.bak
mv .config.tmp .config
# Use 'make oldconfig' to propagate settings into variables we don't know about here
yes '' | make oldconfig
# sanity check: make sure gnu target was not changed (it gets set by target.in)
NEW_GNU_TARGET=`cat .config | grep PTXCONF_GNU_TARGET | sed 's/.*="//;s/".*//'`
test x$TARGET = x$NEW_GNU_TARGET || abort "make oldconfig mangled the target $TARGET into $NEW_GNU_TARGET; you may need to use a canonical target, or fix config/target.in"
|