File: doinstall

package info (click to toggle)
libgtkada 21.0.0.785f3cf4-3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, sid
  • size: 41,160 kB
  • sloc: ada: 203,114; xml: 8,403; python: 4,501; perl: 3,838; ansic: 2,949; sh: 2,851; makefile: 351; objc: 160; javascript: 100
file content (162 lines) | stat: -rwxr-xr-x 3,982 bytes parent folder | download | duplicates (3)
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
#!/bin/sh

begin_message() {
   clear
   cat <<EOF

  This script is provided to simplify the installation of GtkAda.

  You will be asked for confirmation before the actual installation is
  done. You can break out of this script at any time before this.

  Hit RETURN to continue.
EOF

   read x
}

current_dir="`/bin/pwd`"

# Checks for the presence of a Gtk+ binary package in gtk-bin/
check_gtk_bin() {
   gtk_bin_dir="`pwd`/gtk-bin"
   if test ! -d "$gtk_bin_dir"; then
      echo "Gtk+ binary package not found. Aborting the installation process."
      exit
   fi
}

## Read the base directory (absolute path name)
## Sets the variable  $basedir
ask_basedir() {
   clear
   default_dir="`type gnatmake 2>/dev/null| cut -d' ' -f3`"
   default_dir="`dirname \"$default_dir\" 2>/dev/null`"

   if [ "$default_dir" != "" -a "$default_dir" != "." -a "$default_dir" != "/usr/bin" ]; then
      default_dir="`cd "$default_dir/.."; pwd`"
      cat <<EOF

  GNAT has been found in $default_dir.
  Do you want to install GtkAda there too? Hit RETURN if yes or enter
  the name of the directory in which GtkAda should be installed:

EOF
   else
     default_dir=/opt/gtkada
     cat <<EOF
  Enter the name of the directory in which you would like to install GtkAda

EOF
   fi

   while [ "$basedir" = "" ]; do
      printf "[$default_dir] "
      read basedir
      if echo "$basedir" | egrep "[ ]" >/dev/null; then
         echo "GtkAda cannot be installed in a path that contains spaces."
         echo "Please enter another directory."
         basedir=""
      else
         if [ "$basedir" = "" ]; then
            basedir="$default_dir"
         fi
         if echo "$basedir" | egrep "^[/~]" >/dev/null; then
            true
         else
            basedir="`pwd`"/"$basedir"
         fi
      fi
   done

   # Suppress the final / in basedir
   basedir="`echo "$basedir" | sed -e 's/\/$//'`"

   # Check that we have permission to write in $basedir
   if test -d "$basedir"; then
     if test -w "$basedir"; then
        if [ -x "$basedir/bin/gtkada" ]; then
           echo "  $basedir/bin/gtkada found."
           printf "  Do you want to overwrite existing installation [Y/n] ? "
           read x
           if [ "$x" = "n" -o "$x" = "N" ]; then
              echo "Aborting the installation process"
	      exit
           fi
        fi
     else
        echo "You do not have permission to write in $basedir"
        echo "Please check whether you should be root to install in that directory."
        echo "Aborting the installation process"
        exit
     fi
   else
     echo ""
     echo "  Directory $basedir does not exist."
     printf "  Do you want to create it [Y/n] ? "
     read x
     if [ "$x" = "n" -o "$x" = "N" ]; then
        echo "Aborting the installation process"
	exit
     fi
     mkdir -p "$basedir"
   fi

   echo ""
   printf "  Are you now ready to proceed with the installation [Y/n] ? "
   read x
   if [ "$x" = "n" -o "$x" = "N" ]; then
      echo "Aborting the installation process"
      exit
   fi
}

##################################
## Do the actual installation
##################################

install_binaries() {

  echo "Copying the Gtk+ binaries"

  cp -r "$gtk_bin_dir"/* "$basedir"

  echo "Setting up the environment"
  eval `"$basedir"/bin/gtkada-env.sh --print-only`

  echo "Compiling GtkAda"
  ./configure --prefix="$basedir" --with-GL=no && make all install 2>&1 | \
     tee install.log

  # Test for the presence of a gtkada.gpr as check that the install succeeded
  if [ ! -f "$basedir/lib/gnat/gtkada.gpr" ]; then
     echo ""
     echo "An error occurred. Please see install.log."""
     exit 1
  fi
}

##
##  Write the end message
##
end_message() {
   clear
   cat <<EOF

   GtkAda has now been installed on your machine.

   You can enter the GtkAda environment by doing:

      "$basedir/bin/gtkada-env.sh"

EOF
}

## Main program

check_gtk_bin
begin_message
ask_basedir
install_binaries
end_message