mirror of
https://github.com/AdaCore/gprbuild.git
synced 2026-02-12 12:30:13 -08:00
Fix mistake in previous change by adding a missing call to do_install Change-Id: Iffe96920440a0fb92db4d9b86c350f9405a16c26 TN: TB20-050
187 lines
3.7 KiB
Bash
Executable File
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
|