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 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209
|
#!/bin/bash
if [[ -z $1 ]]; then
cat<<EOF
$0 version
Compila el código de qtoctave para que sea un binario transportable.
version número de la versión
EOF
exit 0
fi
version=$1
echo
echo "Creando la versión" $version
echo
mkdir binaries
#install_path=`pwd`/binaries
install_path=/usr/local/opt/binaries/$version
echo $install_path
echo
echo "Compilando qtoctave"
echo
cd qtoctave
sh clean.sh
cmake "-DCMAKE_CXX_FLAGS_RELEASE:STRING=-O2 -pipe" "-DCMAKE_INSTALL_PREFIX:PATH=$install_path" .
make install
#
# echo
# echo "Compilando qtoctave independiente de instalación"
# echo
#
# sh clean.sh
# cmake "-DCMAKE_CXX_FLAGS_RELEASE:STRING=-O2 -s -pipe" "-DCMAKE_INSTALL_PREFIX:PATH=../" .
#make
cd ..
echo
echo "Copiando el fichero qtoctave generado a su destino"
echo
cp -R $install_path/* binaries/
echo
echo "Copiando ficheros de instalacion"
echo
####################################################################
#Herramienta de instalación
####################################################################
cat<<EOF > binaries/install.sh
#!/bin/bash
echo Installing...
mkdir -p $install_path
cp -R * $install_path
EOF
echo 'if [[ $? -ne 0 ]]; then' >> binaries/install.sh
cat<<EOF >> binaries/install.sh
echo "Error: Files can not be copied to $install_path"
echo "Maybe you will need be a root user"
exit 1
fi
cp --parents share/applications/qtoctave.desktop /usr/local/
cp --parents share/icons/hicolor/64x64/apps/qtoctave.png /usr/local/
EOF
for file in `ls binaries/bin`; do
cat<<EOF >> binaries/install.sh
cat<<EOL > /usr/local/bin/$file
#!/bin/bash
exec $install_path/bin/ld-linux.so.2 --library-path $install_path/bin/ $install_path/bin/$file
EOL
chmod +x /usr/local/bin/$file
EOF
done
cat<<EOF >> binaries/install.sh
echo
echo Execute qtoctave to start QtOctave
echo
EOF
chmod +x binaries/install.sh
####################################################################
#Herramienta de desinstalación
####################################################################
echo '#!/bin/bash' > binaries/uninstall-$version.sh
echo 'echo Uninstallig' $version >> binaries/uninstall-$version.sh
for file in `ls binaries/bin/`; do
cat<<EOL >> binaries/uninstall-$version.sh
rm -f /usr/local/bin/$file
rm -f /usr/local/share/applications/qtoctave.desktop
rm -f /usr/local/share/icons/hicolor/64x64/apps/qtoctave.png
EOL
echo 'if [[ $? -ne 0 ]]; then' >> binaries/uninstall-$version.sh
cat<<EOL >> binaries/uninstall-$version.sh
echo "Error: File /usr/local/bin/$file can not be removed"
echo "Maybe you will need be a root user"
fi
EOL
done
echo "exec rm -Rf $install_path" >> binaries/uninstall-$version.sh
chmod +x binaries/uninstall-$version.sh
echo
echo "Copiando bibliotecas"
echo
make
./libs_copy binaries/bin/qtoctave binaries/bin
echo
echo "Copiando licencias"
echo
cp qtoctave/LI* binaries/
echo
echo "Creando ficheros readme.txt y leeme.txt"
echo
cat<<EOL >> binaries/leeme.txt
QtOctave es un front-end para Octave.
Para realizar la instalación ejecutar el archivo "install.sh" como usuario root.
En Ubuntu en un terminal habría que ejecutar:
sudo install.sh
En otras distribuciones:
su
install.sh
Para realizar la desinstalación ejecutar el archivo "$install_path/uninstall-$version.sh" como usuario root.
EOL
cat<<EOL >> binaries/readme.txt
QtOctave is a simple front-end for Octave.
To install execute "install.sh" as root user.
In Ubuntu, write in terminal:
sudo install.sh
In others:
su
install.sh
To uninstall execute as root user "$install_path/uninstall-$version.sh"
EOL
echo
echo "Comprimiendo $version.tar.bz2"
echo
mv binaries $version
rm -f $version.binaries.tar.bz2
tar -cf $version.binaries.tar $version
bzip2 -9 $version.binaries.tar
#gzip -9 $version.binaries.tar
echo
echo Finalizado
echo
|