forked from Imagelibrary/rtems
85 lines
2.0 KiB
Bash
85 lines
2.0 KiB
Bash
#!/bin/sh
|
|
#
|
|
# Usage: mkspec CPU
|
|
#
|
|
|
|
RTEMS_DIR=`dirname $0`/@top_srcdir@
|
|
|
|
CFG=../setup.cache
|
|
|
|
usage()
|
|
{
|
|
echo "$0 [options] <target_alias>"
|
|
echo " options:"
|
|
echo " -cfg <setup.cache>"
|
|
echo " -a <alternate specs.in>"
|
|
exit 1 ;
|
|
}
|
|
|
|
specsrc=./gccnewlib.spec.in
|
|
|
|
while test $# -ge 2; do
|
|
case $1 in
|
|
-cfg)
|
|
shift
|
|
CFG=$1
|
|
shift
|
|
;;
|
|
-a) # alternate specs file
|
|
shift
|
|
specsrc=$1
|
|
shift
|
|
;;
|
|
-*)
|
|
echo "invalid option $1";
|
|
usage
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if test ! $# -eq 1;
|
|
then
|
|
echo "Invalid number of arguments"
|
|
usage
|
|
fi
|
|
|
|
# target to build for
|
|
target_alias=$1
|
|
|
|
. ./$CFG
|
|
|
|
if test -n "${gcc_patch_version}"; then
|
|
PATCH0="Patch0: gcc-core-${gcc_version}-rtems-${gcc_patch_version}.diff"
|
|
PATCH1="Patch1: gcc-g++-${gcc_version}-rtems-${gcc_patch_version}.diff"
|
|
PATCH2="Patch2: gcc-fortran-${gcc_version}-rtems-${gcc_patch_version}.diff"
|
|
PATCH3="Patch3: gcc-gcj-${gcc_version}-rtems-${gcc_patch_version}.diff"
|
|
PATCH4="Patch4: gcc-ada-${gcc_version}-rtems-${gcc_patch_version}.diff"
|
|
PATCH5="Patch5: gcc-objc-${gcc_version}-rtems-${gcc_patch_version}.diff"
|
|
fi
|
|
|
|
if test -n "${newlib_patch_version}"; then
|
|
PATCH50="Patch50: newlib-${newlib_version}-rtems-${newlib_patch_version}.diff"
|
|
fi
|
|
|
|
# note that the variables in the gccnewlib directory are actually the same
|
|
sed -e "s,@PATCH0\@,${PATCH0}," \
|
|
-e "s,@PATCH1\@,${PATCH1}," \
|
|
-e "s,@PATCH2\@,${PATCH2}," \
|
|
-e "s,@PATCH3\@,${PATCH3}," \
|
|
-e "s,@PATCH4\@,${PATCH4}," \
|
|
-e "s,@PATCH5\@,${PATCH5}," \
|
|
-e "s,@PATCH50\@,${PATCH50}," \
|
|
-e "s,@Release\@,${gccnewlib_rpm_release},g" \
|
|
-e "s,@target_alias\@,${target_alias},g" \
|
|
-e "s,@prefix\@,@prefix@,g" \
|
|
-e "s,@rpmprefix\@,@rpmprefix@,g" \
|
|
-e "s,@rpmgroup\@,@rpmgroup@,g" \
|
|
-e "s,@osversion\@,@osversion@,g" \
|
|
-e "s,@gcc_version\@,${gcc_version},g" \
|
|
-e "s,@gcc_patch_version\@,${gcc_patch_version},g" \
|
|
-e "s,@gcc_suffix\@,${gcc_suffix},g" \
|
|
-e "s,@newlib_version\@,${newlib_version},g" \
|
|
-e "s,@newlib_patch_version\@,${newlib_patch_version},g" \
|
|
-e "s,@newlib_suffix\@,${newlib_suffix},g" \
|
|
< ${specsrc}
|