summaryrefslogtreecommitdiffstats
path: root/scripts/gccnewlib/mkspec.in
blob: 442c403bebf458e11ec68721a1cfb4479e2a8686 (plain) (blame)
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
#!/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-${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,@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}