Hugin Compiling Ubuntu

From Wiki
Revision as of 00:54, 10 December 2007 by Bruno (talk | contribs) (some updates from Stefan F.)
Jump to: navigation, search

These instructions are work in progress. Initially tested on a blank installation of Kubuntu 6.06 (Edgy Eft) on a AMD64 computer, they have also been tested on Ubuntu 7.04 on a AMD64 computer and Ubuntu 7.10 on an AMD Athlon XP computer. Apart from the odd change in package name, nothing should be substantially different (and if does not work, please leave a comment here and on the hugin-ptx mailing list. Don't worry if the same package appears twice in an apt-get install line - apt-get will update existing packages if there is a newer version, and ignore duplicates if the latest version is already installed. On the other hand, if apt-get says that it can't find a package, it might be the odd change in package name. You can find a replacement package by using apt-cache search with a substring of the package required, e.g.

apt-cache search wxW

The goal is to build hugin and the whole set of helper applications required.

Building environment

Since we are going to build hugin, libpano13 and enblend we need to download and install all the development packages. This is very easy with apt-get. In a terminal window (K menu -> System -> Konsole or Applications -> Accessories -> Terminal)

sudo apt-get install build-essential autoconf automake1.9 libtool flex bison gdb 

In a amd64 environment you will need the following packages

sudo apt-get install libc6-dev-amd64 lib64gcc1

In a i386 system the equivalent is probably (COULD SOMEBODY CHECK THIS ONE?)

sudo apt-get install libc6-dev libgcc1

To get the bleeding edge we'll need access to the SVN and CVS repositories, and for this we need the correct tools:

 sudo apt-get install subversion cvs

Building Enblend

Get the dependencies. If you are working with large images (300 megapixels and up), you should have a libtiff-devel compiled with large file support and libstdc++6.

sudo apt-get install pkg-config libtiff4-dev libboost-graph-dev libboost-thread-dev \
  liblcms1-dev libglew-dev libplot-dev libglut3-dev libopenexr-dev libopenexr2c2a libxi-dev

Once all dependencies are in place, we get the code from CVS (simply press ENTER when prompted for a password on the login command) and build it.

cvs login
cvs -z3 co -P enblend
cd enblend

We are then ready to compile.

make -f Makefile.cvs

The second make step can be very long and memory consuming. Make sure you have enough swap space, and go get a healthy snack while the computer is compiling.

If you encounter problems at any of these stages, please report back to the hugin-ptx mailing list. Report what command in the sequence you were executing, what machine/operating system, the revision checked out from CVS, and all other relevant information.

You are then ready to install with

sudo make install

Building libpano13

libpano13 is the new version of the PanoTools libraries. This is a necessary component for hugin, and we need to build it first. To build libpano13 we need some libraries and particularly their dev package:

sudo apt-get install lib64z1 lib64z1-dev libpng12-dev libjpeg62-dev libtiff4-dev

We then need to download the source code from SVN:

svn co libpano13
cd libpano13

If any libraries are missing, the script will complain (or at least, let you know that some library hasn't been found). In that case you probably need to install the library. To find in what package is that library, a general rule is to run the command apt-cache search missingfile, find the relevant library and install both the library and the related -dev package. Run the ./configure script and repeat this process until you have met all the dependencies. Then we are ready to launch the make process with


If the library successfully compiles, you have to install it with

sudo make install
sudo ldconfig

The last part is for the OS to be aware of the new library (that has been installed in /usr/local/lib). We can now go back up one folder level and get ready for hugin.

cd ..

Building hugin

Some additional libraries are needed. We need first to activate the universe repository (in adept package manager, or by editing the /etc/apt/sources.lst file for example).

sudo apt-get install cmake libopenexr-dev libboost-dev boost-build libboost-thread-dev libboost-graph-dev gettext libwxgtk2.8-dev

We download the source from SVN, as before

svn co hugin
cd hugin

Important: at the time of writing hugin is under development. The SVN trunk is likely to change often and can sometimes have critical bugs. Try the above first. If it does not work, please report back to the hugin-ptx mailing list. If you need a recent working version of hugin, find out from the mailing list what is the latest working revision number and plug it in after the -r switch in

svn co -r 2539 hugin
cd hugin

hugin has to be built using cmake (which we installed before).

cmake -DCMAKE_INSTALL_PREFIX=/usr/local .

Note: If we want to compile the additional tools, such as align_image_stack, we need to de-comment the "add_subdirectory(tools)" line in the CMakeLists.txt file located in hugin/src/hugin1 before cmaking. Don't forget to copy (or link) the align_image_stack binary to /usr/local/bin if you want to use it with external applications, such as qtpsfgui.

Finally, launch the compilation and installation with

sudo make install
sudo ldconfig

Reference: [1]