Files
gprbuild/doinstall
Arnaud Charlet a8cf96855f Restore support for running doinstall unattended
Fix mistake in previous change by adding a missing call to do_install

Change-Id: Iffe96920440a0fb92db4d9b86c350f9405a16c26
TN: TB20-050
2020-11-24 20:12:11 +01:00

187 lines
3.7 KiB
Bash
Executable File

#!/bin/sh
prefix=''
has_gnatpro=n
machine=''
installdir=''
# --------------------- Actual Installation of Gprbuild --------------
do_install ()
{
if [ ! -d $installdir ]; then
mkdir -p $installdir
fi
if tar cf - bin libexec share | (cd $installdir && tar xf -) ; then
# --------------------------- End of the script -----------------------
clear
echo " "
echo "gprbuild has been installed in $installdir"
echo "Thank you for using gprbuild!"
echo " "
else
echo
echo "The installation of gprbuild failed."
echo "Please check the error messages above."
echo
fi
}
if [ $# -eq 1 ]; then
if [ "$1" = "--help" ]; then
cat << EOF
Usage: $0 [install_dir]
When no argument is specified, runs the gprbuild installer
interactively, otherwise installs automatically under install_dir.
EOF
else
echo " installing gprbuild under $1"
installdir="$1"
do_install
fi
exit 0
fi
# Otherwise perform interactive install
ggd_prefix=''
if [ "x$ggd_prefix" = "x" ]; then
ggd_prog="gnatmake"
else
ggd_prog="$ggd_prefix-gnatmake"
fi
if type $ggd_prog > /dev/null 2>&1 &&
$ggd_prog -v 2>&1 | grep GNATMAKE | grep -q Pro;
then
has_gnatpro=y
saved_IFS="$IFS"
IFS=:
for d in $PATH; do
if [ -x "$d/$ggd_prog" ]; then
prefix=$d
break
fi
done
IFS="$saved_IFS"
machine=`$prefix/gcc -dumpmachine || true`
fi
# remove last 'bin' from prefix as it's not expected
prefix=`echo $prefix | sed 's/\/bin$//'`
clear
cat << EOF
This script is provided to simplify the installation of the $machine
binary distribution of gprbuild - the multi languages project builder.
For information on commercial support, please contact sales@adacore.com.
This script will ask a few questions regarding the gprbuild installation.
Confirmation is required before any write action is taken.
Please press RETURN to continue.
EOF
read x
# --------------------- Select installation option --------------------
clear
cat << EOF
There are 2 options for installation:
EOF
if [ "$has_gnatpro" = "y" ]; then
cat <<EOF
1) Install gprbuild in the standard GNAT Pro location.
($prefix)
EOF
else
cat <<EOF
1) Install gprbuild in /usr/local (must be root)
EOF
fi
cat <<EOF
2) Install gprbuild in non-standard locations that you will
specify.
EOF
if [ "$has_gnatpro" = "y" ]; then
cat <<EOF
Option 1 provides simplest use of gprbuild.
EOF
fi
while [ true ]; do
echo "Type 1, or 2 (then RETURN) to choose an option: "
read answer
case $answer in
# ------------------ Custom installation ---------------------------
2)
clear
cat << EOF
To install gprbuild in a non-standard location you need to
specify a base directory. All the files will be installed in
subdirectories that are created under this directory.
Important Note: You should not use ~ or ~username wildcards
when specifying this directory name.
Specify the base directory you want to use for installation:
EOF
read basedir
while [ true ]; do
if [ "X" = "X`echo $basedir|sed -n -e 's%^/.*%/%p'`" ]; then
basedir=`pwd`/$basedir
fi
echo " " The base directory is $basedir
echo " " To accept this choice enter RETURN.
echo " " Otherwise type a new name.
read answer
if [ "X$answer" = "X" ]; then
break
fi
basedir=$answer
done
clear
installdir=$basedir
break
;;
# ------------------ Regular installation ---------------------------
1)
if [ "$has_gnatpro" = "y" ]; then
installdir=$prefix
else
installdir="/usr/local"
fi
break
;;
*)
echo "Incorrect choice"
;;
esac
done
do_install