mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-11-16 12:34:45 +00:00
The testsuites/ada/sptests/sp19/Makefile was added to document how sptest.adb is generated. However, this Makefile is in the way of ./bootstrap -c. Add an exception.
327 lines
8.5 KiB
Bash
Executable File
327 lines
8.5 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# helps bootstrapping, when checked out from CVS
|
|
# requires GNU autoconf and GNU automake
|
|
#
|
|
# this is not meant to be exported outside the source tree
|
|
#
|
|
# NOTE: Inspired by libtool's autogen script
|
|
#
|
|
# to be run from the toplevel directory of RTEMS'
|
|
# source tree
|
|
|
|
progname=`basename $0`
|
|
top_srcdir=`dirname $0`
|
|
|
|
LC_ALL=C
|
|
export LC_ALL
|
|
|
|
verbose=""
|
|
quiet="false"
|
|
mode="autoreconf"
|
|
force=0
|
|
|
|
usage()
|
|
{
|
|
echo
|
|
echo "usage: ${progname} [-c|-h|-H] [-q][-v]"
|
|
echo
|
|
echo "options:"
|
|
echo " -c .. clean, remove all aclocal/autoconf/automake generated files"
|
|
echo " -h .. display this message and exit"
|
|
echo " -H .. regenerate headers.am files"
|
|
echo " -q .. quiet, don't display directories"
|
|
echo " -v .. verbose, pass -v to autotools"
|
|
echo
|
|
exit 1
|
|
}
|
|
|
|
if test ! -f $top_srcdir/aclocal/version.m4; then
|
|
echo "${progname}:"
|
|
echo " Installation problem: Can't find file aclocal/version.m4"
|
|
exit 1
|
|
fi
|
|
|
|
while test $# -gt 0; do
|
|
case $1 in
|
|
-h|--he|--hel|--help)
|
|
usage ;;
|
|
-q|--qu|--qui|--quie|--quiet)
|
|
quiet="true"
|
|
shift;;
|
|
-v|--ve|--ver|--verb|--verbo|--verbos|--verbose)
|
|
verbose="-v"
|
|
shift;;
|
|
-c|--cl|--cle|--clea|--clean)
|
|
mode="clean"
|
|
shift;;
|
|
-f|--fo|--for|--forc|--force)
|
|
force=`expr $force + 1`
|
|
shift;;
|
|
-H|--headers)
|
|
mode="headers"
|
|
shift;;
|
|
-r|--re|--rec|--reco|--recon|--reconf)
|
|
mode="autoreconf"
|
|
shift;;
|
|
-g|--ge|--gen|--gene|--gener|--genera|--generat|--generate)
|
|
mode="generate"
|
|
shift;;
|
|
-*) echo "unknown option $1"
|
|
usage ;;
|
|
*) echo "invalid parameter $1"
|
|
usage ;;
|
|
esac
|
|
done
|
|
|
|
case $mode in
|
|
headers)
|
|
if test "." != "$top_srcdir"; then
|
|
echo "To generate the headers.am you must call the script via \"./$progname -H\""
|
|
exit 1
|
|
fi
|
|
base="$PWD"
|
|
|
|
# Generate cpukit/header-dirs.am
|
|
tmp="$base/cpukit/header-dirs.am.new"
|
|
hdr_dirs=`for i in cpukit/include cpukit/libnetworking cpukit/score/cpu/*/include ; do
|
|
cd "$i"
|
|
find -mindepth 1 -type d
|
|
cd "$base"
|
|
done | sort -u | sed 's%^\./%%'`
|
|
echo '## This file was generated by "./boostrap -H".' > "$tmp"
|
|
echo 'include_HEADERS =' >> "$tmp"
|
|
for dir in $hdr_dirs ; do
|
|
am_dir=`echo $dir | sed 's%[/-]%_%g'`
|
|
echo "include_${am_dir}dir = \$(includedir)/$dir" >> "$tmp"
|
|
echo "include_${am_dir}_HEADERS =" >> "$tmp"
|
|
done
|
|
diff -q "$tmp" "cpukit/header-dirs.am" || mv "$tmp" "cpukit/header-dirs.am"
|
|
rm -f "$tmp"
|
|
|
|
# Generate cpukit/*/headers.am
|
|
tmp="$base/headers.am.new"
|
|
cpukit="$base/cpukit"
|
|
cd "$cpukit"
|
|
for inc in include score/cpu/*/include ; do
|
|
echo '## This file was generated by "./boostrap -H".' > "$tmp"
|
|
hdr=`dirname $inc`
|
|
am_dir=""
|
|
cd $inc
|
|
for b in `find -type d | sort` ; do
|
|
for j in `find $b -mindepth 1 -maxdepth 1 -name '*.h' | sed 's%^\.%%' | sed 's%^/%%' | sort` ; do
|
|
dir=`dirname $j`
|
|
if test x$dir != x. ; then
|
|
am_dir=`echo $dir | sed 's%[/-]%_%g'`
|
|
am_dir="_$am_dir"
|
|
else
|
|
am_dir=""
|
|
fi
|
|
echo "include${am_dir}_HEADERS += $inc/$j" >> "$tmp"
|
|
done
|
|
done
|
|
cd "$cpukit"
|
|
diff -q "$tmp" "${hdr}/headers.am" || mv "$tmp" "${hdr}/headers.am"
|
|
done
|
|
rm -f "$tmp"
|
|
cd "$base"
|
|
|
|
# Generate bsps/*/headers.am
|
|
tmp="$base/headers.am.new"
|
|
for i in bsps/include bsps/*/include bsps/*/*/include ; do
|
|
dir=""
|
|
am_dir=""
|
|
echo '## This file was generated by "./boostrap -H".' > "$tmp"
|
|
case $i in
|
|
bsps/*/*/include)
|
|
hdr="../"
|
|
inc="../../../../../../$i/"
|
|
;;
|
|
bsps/*/include)
|
|
hdr="../"
|
|
inc="../../../../../$i/"
|
|
;;
|
|
bsps/include)
|
|
hdr="../"
|
|
inc="../../$i/"
|
|
;;
|
|
*)
|
|
hdr=""
|
|
inc=""
|
|
;;
|
|
esac
|
|
cd $i
|
|
for b in `find -type d | sort` ; do
|
|
for j in `find $b -mindepth 1 -maxdepth 1 -name '*.h' -or -name '*.inc' | sed 's%^\.%%' | sed 's%^/%%' | sort` ; do
|
|
d=`dirname $j`
|
|
if test x$d != x$dir ; then
|
|
dir=$d
|
|
if test x$d != x. ; then
|
|
am_dir=`echo $dir | sed 's%[/-]%_%g'`
|
|
am_dir="_$am_dir"
|
|
printf "\ninclude%sdir = \$(includedir)/$dir\n" "$am_dir" >> "$tmp"
|
|
else
|
|
am_dir=""
|
|
echo "" >> "$tmp"
|
|
fi
|
|
echo "include${am_dir}_HEADERS =" >> "$tmp"
|
|
fi
|
|
echo "include${am_dir}_HEADERS += $inc$j" >> "$tmp"
|
|
if test $j = bsp.h ; then
|
|
echo "include_HEADERS += include/bspopts.h" >> "$tmp"
|
|
fi
|
|
done
|
|
done
|
|
cd "$base"
|
|
diff -q "$tmp" "$i/${hdr}headers.am" || mv "$tmp" "$i/${hdr}headers.am"
|
|
done
|
|
rm -f "$tmp"
|
|
;;
|
|
|
|
generate)
|
|
AUTOCONF=${AUTOCONF-autoconf}
|
|
if test -z "$AUTOCONF"; then
|
|
echo "You must have autoconf installed to run $program"
|
|
exit 1
|
|
fi
|
|
|
|
AUTOHEADER=${AUTOHEADER-autoheader}
|
|
if test -z "$AUTOHEADER"; then
|
|
echo "You must have autoconf installed to run $program"
|
|
exit 1
|
|
fi
|
|
|
|
AUTOMAKE=${AUTOMAKE-automake}
|
|
if test -z "$AUTOMAKE"; then
|
|
echo "You must have automake installed to run $program"
|
|
exit 1
|
|
fi
|
|
|
|
ACLOCAL=${ACLOCAL-aclocal}
|
|
if test -z "$ACLOCAL"; then
|
|
echo "You must have automake installed to run $program"
|
|
exit 1
|
|
fi
|
|
|
|
case $top_srcdir in
|
|
/* ) aclocal_dir=$top_srcdir
|
|
;;
|
|
*) aclocal_dir=`pwd`/$top_srcdir
|
|
;;
|
|
esac
|
|
|
|
confs=`find . \( -name 'configure.in' -o -name 'configure.ac' \) -print`
|
|
for i in $confs; do
|
|
dir=`dirname $i`
|
|
configure=`basename $i`
|
|
( test "$quiet" = "true" || echo "$dir"
|
|
cd $dir
|
|
pat="s,\$(RTEMS_TOPdir),${aclocal_dir},g"
|
|
aclocal_args=`grep '^[ ]*ACLOCAL_AMFLAGS' Makefile.am | \
|
|
sed -e 's%.*ACLOCAL_AMFLAGS.*\=[ ]*%%g' -e $pat `
|
|
test "$verbose" = "-v" && echo "${ACLOCAL} $aclocal_args"
|
|
${ACLOCAL} $aclocal_args
|
|
test -n "`grep CONFIG_HEADER ${configure}`" && ${AUTOHEADER} \
|
|
&& test "$verbose" = "-v" && echo "${AUTOHEADER}"
|
|
test -n "`grep RTEMS_BSP_CONFIGURE ${configure}`" && ${AUTOHEADER} \
|
|
&& test "$verbose" = "-v" && echo "${AUTOHEADER}"
|
|
test -f Makefile.am && ${AUTOMAKE} -a -c $verbose
|
|
${AUTOCONF}
|
|
test -f Makefile.am && test -n "`grep 'stamp-h\.in' Makefile.in`" \
|
|
&& echo timestamp > stamp-h.in
|
|
)
|
|
done
|
|
;;
|
|
|
|
autoreconf)
|
|
AUTORECONF=${AUTORECONF-autoreconf}
|
|
if test -z "$AUTORECONF"; then
|
|
echo "You must have autoreconf installed to run $program"
|
|
exit 1
|
|
fi
|
|
|
|
confs=`find . -name 'configure.ac' -print`
|
|
for i in $confs; do
|
|
dir=`dirname $i`
|
|
configure=`basename $i`
|
|
( test "$quiet" = "true" || echo "$dir"
|
|
cd $dir
|
|
${AUTORECONF} -i --no-recursive $verbose
|
|
test -f Makefile.am && test -n "`grep 'stamp-h\.in' Makefile.in`" \
|
|
&& echo timestamp > stamp-h.in
|
|
)
|
|
done
|
|
;;
|
|
|
|
clean)
|
|
test "$quiet" = "true" || echo "removing automake generated Makefile.in files"
|
|
files=`find . -name 'Makefile.am' -print | sed -e 's%\.am%\.in%g'`
|
|
for i in $files; do
|
|
if test -f $i; then
|
|
rm -f $i
|
|
test "$verbose" = "-v" && echo "$i"
|
|
fi
|
|
done
|
|
|
|
test "$quiet" = "true" || echo "removing configure files"
|
|
files=`find . -name 'configure' -print`
|
|
for i in $files; do
|
|
if test -f $i; then
|
|
rm -f $i
|
|
test "$verbose" = "-v" && echo "$i"
|
|
fi
|
|
done
|
|
|
|
if test $force -gt 0; then
|
|
needles=""
|
|
if test $force -gt 1; then
|
|
# Manually maintained
|
|
needles="$needles config.sub"
|
|
needles="$needles config.guess"
|
|
fi
|
|
if test $force -gt 0; then
|
|
# Inherited from automake
|
|
needles="$needles compile"
|
|
needles="$needles depcomp"
|
|
needles="$needles install-sh"
|
|
needles="$needles missing"
|
|
needles="$needles mdate-sh"
|
|
fi
|
|
for j in $needles; do
|
|
files=`find . -name "$j" -print`
|
|
for i in $files; do
|
|
if test -f $i; then
|
|
rm -f $i
|
|
test "$verbose" = "-v" && echo "$i"
|
|
fi
|
|
done
|
|
done
|
|
fi
|
|
|
|
test "$quiet" = "true" || echo "removing aclocal.m4 files"
|
|
files=`find . -name 'aclocal.m4' -print`
|
|
test "$verbose" = "-v" && test -n "$files" && echo "$files"
|
|
for i in $files; do
|
|
if test -f $i; then
|
|
rm -f $i
|
|
test "$verbose" = "-v" && echo "$i"
|
|
fi
|
|
done
|
|
|
|
find . -name '*~' -print | xargs rm -f
|
|
find . -name 'bspopts.h.in' -print | xargs rm -f
|
|
find . -name '*.orig' -print | xargs rm -f
|
|
find . -name '*.rej' -print | xargs rm -f
|
|
find . -name 'config.status' -print | xargs rm -f
|
|
find . -name 'config.log' -print | xargs rm -f
|
|
find . -name 'config.cache' -print | xargs rm -f
|
|
find . -name 'Makefile' -and -not -path ./testsuites/ada/sptests/sp19/Makefile -print | xargs rm -f
|
|
find . -name '.deps' -print | xargs rm -rf
|
|
find . -name '.libs' -print | xargs rm -rf
|
|
find . -name 'stamp-h.in' | xargs rm -rf
|
|
find . -name 'autom4te*.cache' | xargs rm -rf
|
|
;;
|
|
esac
|
|
|
|
exit 0
|