Libraries needed iceWing is targeted at Unix-like operating systems and was actually tested on Linux, Alpha/True64, Solaris, and Mac OSX. For compiling and using it some programs and libraries must be installed:
Additional optional libraries extend the functionality of iceWing:
When the jpeg and png libraries are not available, iceWing can only save the various PNM formats and AVI movies with a raw uncompressed codec.
During development of iceWing different released versions starting from version 0.5 (3. of March, 2009) till version 1.0 (28. of September, 2012) and different SVN and GIT snapshots till 1. of October, 2012 where used. You can find the FFmpeg SVN snapshot version from June 2009 at the iceWing homepage. Older versions, especially the old release version 0.4.9-pre1 are too old and will not work.
Attention: You will always need the development files, especially header files, for the
different libraries. We will show for RedHat packages (rpm) how to verify that everything is
installed. Debian packages are quite similar. You can easily check with the following shell
command
> rpm -qa | grep gtk
which packages are installed and which version that libraries have. iceWing needs the
headers, too, and often separate developer packets provide them. If you compile your own
libraries from sources, you have to add the headers into the default-include path, so iceWing
will find them. After verifying all this, you only need to get the iceWing tarball
“icewing-version.tar.bz2”.
Further stuff You can use DACS for your own iceWing plugins to communicate with other external net wide processes. It works quite similar to Corba. You do not need DACS for any iceWing internal communication (iceWing - plugin, plugin - plugin) or to e.g. access files of the system. Additionally, iceWing has integrated support for reading/publishing images to/from other programs and for remote control of plugin sliders via DACS. If DACS is not available, these features can be disabled during compiling.
More information about DACS can be found in the Web under this address:
Lets assume you have the iceWing tarball in “./”. Then simply start by
> bunzip2 -c
icewing-version.tar.bz2 | tar -xv
> cd icewing-version
where version is the particular iceWing version number you are using.
To proceed, you have two distinct possibilities, as there are two installation procedures available: Using CMake to configure iceWing and generate necessary build files or to adapt and use the hand written makefiles.
CMake, available from http://www.cmake.org, is a utility to configure a software package
and generate build files for it. If you would like to use it for iceWing, verify that you
have CMake installed. After that go to the cmake directory inside the iceWing
sources and start the cmake utility, i.e.:
> cd {wherever your sources
are}/cmake
> cmake ..
This will generate the necessary build files for building iceWing in the cmake subdirectory
and for installing it to “/usr/local”. Compiling and installing is then done by
>
make
> make install
inside the cmake subdirectory. Optionally, “VERBOSE=1 make” will show the exact
commands that are run during the make process. “make install” will create a file
“install_manifest.txt” in the cmake directory, which contains the list of all installed
files.
Additionally, you can pass different variable settings to CMake with the “-D” command line to influence the configuration step, i.e.: “cmake -DNAME_OF_THE_VARIABLE=value ..”. Important available variables are:
On Alpha/True64 systems the libAVVideo is needed for all grabber access. On Linux, support for Composite and SVideo cameras is based on the “Video for Linux Two” interface (see “http://linuxtv.org/wiki/”) and directly integrated in iceWing. If available, the libv4lconvert library (see “http://git.linuxtv.org/v4l-utils.git”) is used to support different additional pixel formats, pixel formats which are sometimes used be web cams.
FireWire (IEEE1394) cameras supporting the “Digital Camera Specification” are supported via the raw1394 and dc1394 libraries. If available version 2 of the dc1394 library is used, otherwise version 1.2 is used. Cameras conforming to the NET iCube interface are supported if the iCube NETUSBCAM library can be found. Cameras conforming to the MATRIX VISION impact acquire interface are supported if the impact aquire libraries can be found. Cameras conforming to the IDS Imaging uEye interface are supported if the uEye libraries can be found. Cameras using the GenICam standard are supported by the aravis library. Additional hardware is supported if the unicap library is available.
CMake will try to find all necessary and supported libraries automatically. If you want to disable this and prevent the usage of a library, you can do so by using one of the following variables:
If you have headers and libraries installed in non-standard locations that CMake cannot find, then set the following two environment variables. Despite the similar naming convention, these will not work as arguments on the cmake command line:
After the “make install”, if the new “icewing”-executable is in the execute-path, you can right away start “icewing”, the executable (see section 3.1 “quicktour”). If you are interested in what is where in this installation, have a look at section 8.1 “filesystem hierarchy”.
Alternatively to the CMake build system, hand written makefiles are available for compiling the iceWing package. To use these, you have to edit the Makefile to adopt it to your system and in- or exclude the support for additional packages. Mostly it will be uncommenting some few lines that you probably will not need on your system.
On Linux support for image grabbing is directly integrated into iceWing. This gets activated if WITH_GRABBER is defined. Composite and SVideo cameras are supported with the help of the “Video for Linux Two” interface (see “http://linuxtv.org/wiki/”). If WITH_LIBV4L is defined the libv4lconvert library (see “http://git.linuxtv.org/v4l-utils.git”) is used to support different additional pixel formats, pixel formats which are sometimes used be web cams. WITH_LIBV4L gives the location of the libv4lconvert library and header files.
If additionally WITH_FIRE is defined FireWire (IEEE1394) cameras supporting the “Digital Camera Specification” are supported as well. WITH_FIRE gives the location of the needed raw1394 and dc1394 libraries and header files, for example “/usr” or “/usr/local”. If WITH_FIRE2 is defined, version 2 of the dc1394 library is used instead of version 1.2. WITH_ICUBE activates support for cameras conforming to the NET iCube interface (see “http://www.net-gmbh.com”). WITH_ICUBE gives the location of the iCube NETUSBCAM library and header files. WITH_MVIMPACT activates support for cameras conforming to the MATRIX VISION impact acquire interface (see “http://www.matrix-vision.com”). WITH_MVIMPACT gives the location of the impact aquire libraries and header files. WITH_UEYE activates support for cameras conforming to the IDS uEye interface (see “http://www.ids-imaging.com”). WITH_UEYE gives the location of the uEye libraries and header files. WITH_ARAVIS additionally to WITH_GRABBER activates support for the aravis library, which supports cameras conforming to the GenICam standard (see “http://live.gnome.org/Aravis”). WITH_ARAVIS gives the location of the aravis library and header files. By defining WITH_UNICAP additionally to WITH_GRABBER support for the unicap library gets integrated. WITH_UNICAP gives the location of the unicap library and header files (see “http://unicap-imaging.org”).
“make” it all
After adopting the Makefile, you can build the installation files from the sources:
>
cd {wherever your sources are}
> make depend
> make
You must now login as admin/root, if ${PREFIX} is not writable for the current user.
The Makefile expects the directory that is named in ${PREFIX} to be existing - if not:
> mkdir ${PREFIX}
The installation is now fully prepared. Now the time for installation has come!
> cd
{wherever your sources are}
> make install
To all the cautious admins: You eventually want to check the groups and rights of the new
dirs now.
That’s it! For further details about what was done, just have insight into the installation log file, which is located at “${PREFIX}/share/log/iceWing.log”.
If the new “icewing”-executable is in the execute-path, you can right away start “icewing”, the executable (see section 3.1 quicktour). If you are interested in what is where in this installation, have a look at section 8.1 Filesystem.
Troubleshooting
Check the output for errors, also the installation-logfile. You are sure, that you installed
the needed libraries properly, but
> make
produced errors like:
/bin/sh: gdk-pixbuf-config: command not found
Let’s again assume you used the RedHat package named “gdk-pixbuf-devel” (well, Debian
packages are treated similar). Then check via
> rpm -ql gdk-pixbuf-devel | grep
gdk-pixbuf-config
or with full search
> find / -name gdk-pixbuf-config
where the needed packed-files got installed. Maybe they are simply not in the
default-execute path!?
Assume you find “gdk-pixbuf-config” in “/opt/gnome/bin/gdk-pixbuf-config”. With the
bash-shell you can replace the compiling
> make
command by:
> PATH=$PATH:/opt/gnome/bin make
Or you change the Makefile entry “GDK_PIXBUF = gdk-pixbuf-config” to “GDK_PIXBUF =
/opt/gnome/bin/gdk-pixbuf-config”.