errorchecking and less verbosity

pull/1/head
Daniel 2010-11-02 17:55:48 -07:00
rodzic 4be998f2a7
commit 37cccbd820
1 zmienionych plików z 220 dodań i 147 usunięć

Wyświetl plik

@ -3,17 +3,23 @@
set -o nounset
set -o errexit
echo "created by Daniel Schwarz/daniel.schwarz@topoi.org"
echo "released under Creative Commons/CC-BY-NC"
echo "Attribution Non-Commercial"
echo
echo " created by Daniel Schwarz/daniel.schwarz@topoi.org"
echo " released under Creative Commons/CC-BY-NC"
echo " Attribution Non-Commercial"
echo
echo " if the script doesn't finish properly (i.e. printing \"script finished\" at the end)"
echo " please email me the content of the logs folder"
echo
ARCH=`uname -m`
TOOLS_PATH=$PWD
TOOLS_BIN_PATH=$TOOLS_PATH/bin
TOOLS_INC_PATH=$TOOLS_PATH/includes
INC_PATH="/usr/include"
LIB_PATH="/usr/lib"
BIN_PATH="/usr/bin"
INC_PATH="/usr/include"
TOOLS_LOG_PATH=$TOOLS_PATH/logs
BUNDLER_PATH="$TOOLS_PATH/bundler"
CMVS_PATH="$TOOLS_PATH/cmvs"
@ -24,12 +30,26 @@ CLAPACK_PATH="$TOOLS_PATH/lib/clapack"
OPENCV_PATH="$TOOLS_PATH/lib/openCv"
VLFEAT_PATH="$TOOLS_PATH/lib/vlfeat"
echo
echo ---- installing required packages ----
echo
## removing old stuff
rm -iRf `ls -1 | egrep -v '\.zip$|\.tgz$|\.bz2$|\.gz$|\.sh$|^bin$' | xargs`
rm -if `find bin | egrep -v '\.pl$|^bin$' | xargs`
sudo apt-get update
sudo apt-get install --assume-yes --install-recommends \
## create needed directories
mkdir -p $TOOLS_LOG_PATH
mkdir -p $INC_PATH
mkdir -p $TOOLS_PATH/lib
mkdir -p $TOOLS_BIN_PATH
## output sys info
echo "System info:" > $TOOLS_LOG_PATH/sysinfo.txt
uname -a > $TOOLS_LOG_PATH/sysinfo.txt
## install packages
echo
echo " - installing required packages"
sudo apt-get update --assume-yes --quiet > /dev/null
sudo apt-get install --assume-yes --quiet --install-recommends \
gcc g++ gFortran cmake build-essential \
imagemagick unzip wget \
libzip-dev libjpeg-dev libtiff-dev libpng-dev libjasper-dev libann-dev \
@ -43,83 +63,214 @@ sudo apt-get install --assume-yes --install-recommends \
gtk2-engines doxygen \
libpthread-stubs0 libpthread-stubs0-dev \
libxext-dev libxext6 \
libboost-dev
libboost-dev > /dev/null
echo " done"
## downloading sources
echo
echo ---- getting the tools ----
echo
wget -O clapack.tgz http://www.netlib.org/clapack/clapack-3.2.1-CMAKE.tgz
wget -O bundler.zip http://phototour.cs.washington.edu/bundler/distr/bundler-v0.4-source.zip
wget -O sift.zip http://www.cs.ubc.ca/~lowe/keypoints/siftDemoV4.zip
wget -O graclus.tar.gz --no-check-certificate https://www.topoi.hu-berlin.de/graclus1.2.tar.gz
wget -O opencv.tar.bz2 http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.1/OpenCV-2.1.0.tar.bz2/download
#wget -O pmvs.tar.gz http://grail.cs.washington.edu/software/pmvs/pmvs-2-fix0.tar.gz
wget -O cmvs.tar.gz http://grail.cs.washington.edu/software/cmvs/cmvs-fix1.tar.gz
echo
echo ---- unzipping ----
echo " - getting the tools"
if [ ! -f "clapack.tgz" ]
then
echo "downloading clapack in background ..."
wget -O clapack.tgz http://www.netlib.org/clapack/clapack-3.2.1-CMAKE.tgz > /dev/null & PID_CLAPACK_DL=$!
fi
if [ ! -f "bundler.zip" ]
then
echo "downloading bundler in background ..."
wget -O bundler.zip http://phototour.cs.washington.edu/bundler/distr/bundler-v0.4-source.zip > /dev/null & PID_BUNDLER_DL=$!
fi
if [ ! -f "sift.zip" ]
then
echo "downloading sift in background ..."
wget -O sift.zip http://www.cs.ubc.ca/~lowe/keypoints/siftDemoV4.zip > /dev/null & PID_SIFT_DL=$!
fi
if [ ! -f "graclus.tar.gz" ]
then
echo "downloading graclus in background ..."
wget -O graclus.tar.gz --no-check-certificate https://www.topoi.hu-berlin.de/graclus1.2.tar.gz > /dev/null & PID_GRACLUS_DL=$!
fi
if [ ! -f "opencv.tar.bz2" ]
then
echo "downloading opencv in background ..."
wget -O opencv.tar.bz2 http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.1/OpenCV-2.1.0.tar.bz2/download > /dev/null & PID_OPENCV_DL=$!
fi
if [ ! -f "cmvs.tar.gz" ]
then
echo "downloading cmvs"
wget -O cmvs.tar.gz http://grail.cs.washington.edu/software/cmvs/cmvs-fix1.tar.gz
fi
wait
echo " done"
## unzipping sources and getting git projects
echo
echo " - unzipping sources"
tar -xf opencv.tar.bz2& PID_OPENCV=$!
tar -xzf clapack.tgz& PID_CLAPACK=$!
tar -xzf graclus.tar.gz& PID_GRACLUS=$!
unzip -qo bundler.zip& PID_BUNDLER=$!
tar -xzf cmvs.tar.gz& PID_CMVS=$!
tar -xzf graclus.tar.gz& PID_GRACLUS=$!
unzip -qo sift.zip& PID_SIFT=$!
tar -xf opencv.tar.bz2& PID_OPENCV=$!
#tar -xzf pmvs.tar.gz& PID_PMVS=$!
unzip -qo sift.zip& PID_SIFT=$!
git clone git://github.com/vlfeat/vlfeat.git --quiet > vlfeat_0_get.log 2>&1
git clone git://github.com/vlfeat/vlfeat.git& PID_VLFEAT=$!
wait $PID_CLAPACK
wait $PID_BUNDLER
#wait $PID_PMVS
wait $PID_CMVS
wait $PID_GRACLUS
wait $PID_SIFT
wait $PID_OPENCV
wait $PID_VLFEAT
rm -f wget*
#rm -f clapack.tgz
#rm -f bundler.zip
#rm -f pmvs.tar.gz
#rm -f graclus.tar.gz
#rm -f cmvs.tar.gz
#rm -f sift.zip
#rm -f opencv.tar.bz2
echo
echo ---- renaming ----
echo
mkdir -p $TOOLS_PATH/lib
wait
mv -f OpenCV-2.1.0 $OPENCV_PATH
mv -f clapack-3.2.1-CMAKE $CLAPACK_PATH
mv -f bundler-v0.4-source $BUNDLER_PATH
mv -f vlfeat $VLFEAT_PATH
mv -f graclus1.2 $GRACLUS_PATH
mv -f bundler-v0.4-source $BUNDLER_PATH
mv -f siftDemoV4 $SIFT_PATH
#mv -f cmvs $CMVS_PATH
mv -f OpenCV-2.1.0 $OPENCV_PATH
#mv -f pmvs $PMVS_PATH
mv -f vlfeat $VLFEAT_PATH
sudo cp -R $CLAPACK_PATH/INCLUDE $INC_PATH/clapack
echo " done"
## building
echo
echo ---- fixing ----
echo " - building (will take some time ...)"
sudo chown -R $USER:$USER *
sudo chmod -R 777 *
echo " > opencv"
mkdir -p $OPENCV_PATH/release
cd $OPENCV_PATH/release
echo " - generating makefiles for opencv"
(sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=$TOOLS_PATH ..) > $TOOLS_LOG_PATH/opencv_1_cmake.log 2>&1
echo " - cleaning opencv"
sudo make clean > opencv_2_clean.log 2>&1
echo " - building opencv"
sudo make > $TOOLS_LOG_PATH/opencv_3_build.log 2>&1
echo " - installing opencv"
sudo make install > $TOOLS_LOG_PATH/opencv_4_install.log 2>&1
cp -Rf ../include/* $TOOLS_INC_PATH
mkdir -p $TOOLS_LIB_PATH/opencv
cp -Rf ../release/lib/* $TOOLS_LIB_PATH/opencv/*
echo " < done"
echo
echo " > clapack"
cd $CLAPACK_PATH
cp make.inc.example make.inc
exit
mkdir -p $CLAPACK_PATH/release
cd $CLAPACK_PATH/release
echo " - generating makefiles for clapack"
(sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=$TOOLS_PATH ..) > $TOOLS_LOG_PATH/clapack_1_build.log 2>&1
echo " - cleaning clapack"
sudo make clean > clapack_2_clean.log 2>&1
echo " - building clapack"
sudo make > $TOOLS_LOG_PATH/clapack_3_build.log 2>&1
echo " - installing clapack"
sudo make install > $TOOLS_LOG_PATH/clapack_4_install.log 2>&1
cp -Rf ../INCLUDE $TOOLS_INC_PATH/clapack
echo " < done"
echo
echo " > vlfeat"
cd $VLFEAT_PATH
echo " - cleaning vlfeat"
sudo make clean > $TOOLS_LOG_PATH/vlfeat_1_clean.log 2>&1
echo " - building vlfeat"
sudo make > $TOOLS_LOG_PATH/vlfeat_2_build.log 2>&1
if [ "$ARCH" = "i686" ]; then
cp -f $VLFEAT_PATH/bin/glx/sift $TOOLS_BIN_PATH/vlsift
sudo cp -f $VLFEAT_PATH/bin/glx/libvl.so $LIB_PATH/
fi
if [ "$ARCH" = "x86_64" ]; then
cp -f $VLFEAT_PATH/bin/a64/sift $TOOLS_BIN_PATH/vlsift
sudo cp -f $VLFEAT_PATH/bin/a64/libvl.so $LIB_PATH/
fi
echo " < done"
echo
echo " > graclus"
cd $GRACLUS_PATH
if [ "$ARCH" = "i686" ]; then
sed -i $GRACLUS_PATH/Makefile.in -e "11c\COPTIONS = -DNUMBITS=32"
fi
if [ "$ARCH" = "x86_64" ]; then
sed -i $GRACLUS_PATH/Makefile.in -e "11c\COPTIONS = -DNUMBITS=64"
fi
echo " - cleaning graclus"
sudo make clean > $TOOLS_LOG_PATH/graclus_1_clean.log 2>&1
echo " - building graclus"
sudo make > $TOOLS_LOG_PATH/graclus_2_build.log 2>&1
sudo cp -f lib* $TOOLS_BIN_PATH/
echo " < done"
echo
echo " > bundler"
cd $BUNDLER_PATH
echo " - cleaning bundler"
sudo make clean > $TOOLS_LOG_PATH/bundler_1_clean.log 2>&1
echo " - building bundler"
sudo make > $TOOLS_LOG_PATH/bundler_2_build.log 2>&1
cp -f $BUNDLER_PATH/bin/Bundle2PMVS $BUNDLER_PATH/bin/Bundle2Vis $BUNDLER_PATH/bin/KeyMatchFull $BUNDLER_PATH/bin/bundler $BUNDLER_PATH/bin/extract_focal.pl $BUNDLER_PATH/bin/RadialUndistort $TOOLS_BIN_PATH/
sudo cp -f $BUNDLER_PATH/lib/libANN_char.so $LIB_PATH/
sed -i $BUNDLER_PATH/bin/extract_focal.pl -e '18c\ $JHEAD_EXE = "jhead";'
echo " < done"
echo
echo " > cmvs"
cd $CMVS_PATH/program/main
sed -i $CMVS_PATH/program/main/genOption.cc -e "5c\#include <stdlib.h>\n"
sed -i $CMVS_PATH/program/base/cmvs/bundle.cc -e "3c\#include <numeric>\n"
sed -i $CMVS_PATH/program/main/Makefile -e "10c\#Your INCLUDE path (e.g., -I\/usr\/include)"
sed -i $CMVS_PATH/program/main/Makefile -e "11c\YOUR_INCLUDE_PATH =-I$INC_PATH"
sed -i $CMVS_PATH/program/main/Makefile -e "13c\#Your metis directory (contains header files under graclus1.2/metisLib/)"
sed -i $CMVS_PATH/program/main/Makefile -e "14c\YOUR_INCLUDE_METIS_PATH = -I$GRACLUS_PATH/metisLib/"
sed -i $CMVS_PATH/program/main/Makefile -e "14c\YOUR_INCLUDE_METIS_PATH = -I$GRACLUS_PATH/metisLib/ -I$INC_PATH -I$TOOLS_INC_PATH"
sed -i $CMVS_PATH/program/main/Makefile -e "16c\#Your LDLIBRARY path (e.g., -L/usr/lib)"
sed -i $CMVS_PATH/program/main/Makefile -e "17c\YOUR_LDLIB_PATH = -L$LIB_PATH"
sed -i $CMVS_PATH/program/main/Makefile -e "17c\YOUR_LDLIB_PATH = -L$LIB_PATH -L$TOOLS_BIN_PATH"
if [ "$ARCH" = "i686" ]; then
sed -i $CMVS_PATH/program/main/Makefile -e "22c\CXXFLAGS_CMVS = -O2 -Wall -Wno-deprecated -DNUMBITS=32 \\\\"
@ -131,97 +282,19 @@ if [ "$ARCH" = "x86_64" ]; then
sed -i $CMVS_PATH/program/main/Makefile -e '24c\ -fopenmp -DNUMBITS=64 ${OPENMP_FLAG}'
fi
#sed -i $PMVS_PATH/program/main/Makefile -e "11c\#Your INCLUDE path (e.g., -I\/usr\/include)"
#sed -i $PMVS_PATH/program/main/Makefile -e "12c\YOUR_INCLUDE_PATH =-I$INC_PATH"
#sed -i $PMVS_PATH/program/main/Makefile -e "14c\#Your LDLIBRARY path (e.g., -L/usr/lib)"
#sed -i $PMVS_PATH/program/main/Makefile -e "15c\YOUR_LDLIB_PATH = -L$LIB_PATH"
echo " - cleaning cmvs"
sudo make clean > $TOOLS_LOG_PATH/cmvs_1_clean.log 2>&1
sed -i $BUNDLER_PATH/bin/extract_focal.pl -e '18c\ $JHEAD_EXE = "jhead";'
sed -i $BUNDLER_PATH/bin/ToSift.sh -e '36c\ echo "SIFT -o $key_file -x $d; gzip -f $key_file"'
echo " - building cmvs"
sudo make > $TOOLS_LOG_PATH/cmvs_2_build.log 2>&1
if [ "$ARCH" = "i686" ]; then
sed -i $GRACLUS_PATH/Makefile.in -e "11c\COPTIONS = -DNUMBITS=32"
fi
if [ "$ARCH" = "x86_64" ]; then
sed -i $GRACLUS_PATH/Makefile.in -e "11c\COPTIONS = -DNUMBITS=64"
fi
cp -f $CMVS_PATH/program/main/cmvs $CMVS_PATH/program/main/pmvs2 $CMVS_PATH/program/main/genOption $TOOLS_BIN_PATH/
echo " < done"
echo
echo ---- building ----
echo
sudo chown -R $USER:$USER *
sudo chmod -R 755 *
cd $OPENCV_PATH
cmake .
sudo make
sudo make install
cd $SIFTFEAT_PATH
sudo make
cd $CLAPACK_PATH
sudo cp make.inc.example make.inc
sudo make
sudo make preinstall
sudo make lapack
cd $BUNDLER_PATH
rm -f bin/bundler bin/Bundle2PMVS bin/Bundle2Vis bin/bundler bin/jhead bin/jhead.exe bin/KeyMatchFull bin/libANN_char.so bin/RadialUndistort bin/zlib1.dll
sudo make clean
sudo make
cd $GRACLUS_PATH
sudo make
sudo cp lib* /usr/lib/
cd $PMVS_PATH/program/main
sudo make clean
sudo make depend
sudo make
cd $CMVS_PATH/program/main
sudo make clean
sudo make depend
sudo make
cd $VLFEAT_PATH/
sudo make clean
sudo make
cd $TOOLS_PATH
echo
echo ---- copying to dest loactions ----
echo
mkdir $TOOLS_BIN_PATH
cd $TOOLS_BIN_PATH
#wget --no-check-certificate https://www.topoi.hu-berlin.de/run.sh
#sudo chmod a+x $TOOLS_BIN_PATH/run.sh
cp $SIFT_PATH/sift $TOOLS_BIN_PATH/
cp $VLFEAT_PATH/bin/glx/sift $TOOLS_BIN_PATH/vlsift
#cp $SIFTFEAT_PATH/bin/siftfeat $TOOLS_BIN_PATH/
cp $BUNDLER_PATH/bin/Bundle2PMVS $BUNDLER_PATH/bin/Bundle2Vis $BUNDLER_PATH/bin/KeyMatchFull $BUNDLER_PATH/bin/bundler $BUNDLER_PATH/bin/extract_focal.pl $BUNDLER_PATH/bin/RadialUndistort $TOOLS_BIN_PATH/
cp $CMVS_PATH/program/main/cmvs $CMVS_PATH/program/main/pmvs2 $CMVS_PATH/program/main/genOption $TOOLS_BIN_PATH/
sudo cp $VLFEAT_PATH/bin/glx/libvl.so $LIB_PATH/
sudo cp $BUNDLER_PATH/lib/libANN_char.so $LIB_PATH/
if [ "$ARCH" = "i686" ]; then
cp $VLFEAT_PATH/bin/glx/sift $TOOLS_BIN_PATH/vlsift
sudo cp $VLFEAT_PATH/bin/glx/libvl.so $LIB_PATH/
fi
if [ "$ARCH" = "x86_64" ]; then
cp $VLFEAT_PATH/bin/a64/sift $TOOLS_BIN_PATH/vlsift
sudo cp $VLFEAT_PATH/bin/a64/libvl.so $LIB_PATH/
fi
echo " - script finished"
exit