URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
[/] [or1k/] [trunk/] [rtems-20020807/] [tools/] [build/] [multigen] - Rev 1765
Compare with Previous | Blame | View Log
#!/bin/sh
# multigen,v 1.4 2000/09/12 12:50:02 joel Exp
version=0.1
verbose=0
target=
custom=0
config=0
usage()
{
program=`basename $0`
cat << EOF
$program generates RTEMS custom/*.cfgs and config-files for gcc multilib
variants a target's gcc supports
Usage: $program [options]
Options:
--target=STRING target
--custom generate make/custom/*.cfg files
--config generate config scripts
--rtems=DIR use DIR as location of RTEMS source tree
-v, --verbose verbose
-h, --help Print this usage
--version Print version and exit
Examples:
$program --config --target=sh-rtems --rtems=/usr/src/rtems-4.5.0
Generates config scripts for all possible bare BSPs from all
valid multilib variants sh-rtems-gcc supports
$program --custom --target=sh-rtems --rtems=/usr/src/rtems-4.5.0
Generates /usr/src/rtems-4.5.0/make/custom/*.cfg files
for all possible bare BSPs from the multilib variants
sh-rtems-gcc supports
Written by Ralf Corsepius <corsepiu@faw.uni-ulm.de>
EOF
}
while test $# -gt 0; do
case "$1" in
--rtems=*)
rtems_srcdir=`echo "$1" | sed -e 's%--rtems=\(.*\)%\1%g'`
;;
--target=*)
target=`echo "$1" | sed -e 's%--target=\(.*\)%\1%g'`
;;
-v|--verbose)
verbose=1
;;
--custom)
custom=1
;;
--config)
config=1
;;
--version)
echo `basename $0` version $version
exit 0
;;
-h|--help)
usage
exit 1
;;
*)
echo "unknown option $1"
usage
exit 1
;;
esac
shift
done
if test $# -gt 0; then
echo "Invalid number of arguments"
exit 1
fi
if test x$target = x; then
echo "Missing required option:"
echo " --target"
exit 1
fi
if test x$rtems_srcdir = x; then
echo "Missing required option:"
echo " --rtems"
exit 1
fi
if test $config -eq 0 && test $custom -eq 0; then
echo "Missing required option:"
echo " --config"
echo " --custom"
echo " (At least one of these is required)"
exit 1
fi
if test ! -r $rtems_srcdir/VERSION; then
echo "Can't find rtems"
echo "Check value passed to --rtems=<DIR>"
exit 1
fi
if test x$target != x ;then
target_prefix=$target-
fi
# Check for CC
saved_IFS=$IFS; IFS=":"
for i in $PATH; do
if test -f $i/${target_prefix}gcc; then
CC=$i/${target_prefix}gcc
break
fi
done
IFS=$saved_IFS
if test x$CC = x; then
echo "No valid gcc found"
exit 1
fi
test $verbose -gt 0 && echo "Using $CC"
for i in `${CC} --print-multi-lib 2>/dev/null`; do
dir=`echo $i | sed -e 's/;.*$//'`
case $dir in
.) f=$target
flags=""
;;
*) f=`echo $target-$dir | sed -e 's%\/%-%g'`
flags=`echo $i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`
;;
esac
if test $config -gt 0; then
cfg="rtems-config.$f"
test $verbose -gt 0 && echo "Generating: $cfg"
cat << EOF > $cfg
#!/bin/sh
${rtems_srcdir}/configure --target=$target \\
'--enable-bare-cpu-cflags=$flags' \\
--enable-rtemsbsp="bare" \\
--enable-bare-cpu-model=NONE \\
--disable-networking \\
--disable-tests \\
--enable-maintainer-mode
EOF
chmod +x $cfg
fi
if test $custom -gt 0; then
cfg=${rtems_srcdir}/make/custom/bare-$f.cfg
test $verbose -gt 0 && echo "Generating: $cfg"
cat << EOF > $cfg
# Config file for the bare-$f BSP
BARE_CPU_CFLAGS=$flags
BARE_CPU_MODEL=NONE
include \$(RTEMS_ROOT)/make/custom/bare.cfg
EOF
fi
done
exit 0