kopia lustrzana https://github.com/OpenDroneMap/ODM
errorchecking and less verbosity
rodzic
4be998f2a7
commit
37cccbd820
367
install.sh
367
install.sh
|
@ -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
|
Ładowanie…
Reference in New Issue