Dev:Build Instructions

From Synfig Studio :: Documentation
Revision as of 18:58, 1 May 2009 by Genete (Talk | contribs) (synfig: Added exception for Ubuntu 9.04)

Jump to: navigation, search


Notes

If you are using the released versions instead of SVN, none of the libtoolize or autoreconf steps are necessary. For released versions, "./configure && make && sudo make install" should be enough.

If you are using packages for synfig's dependencies, you want the development packages not the main packages. Check below for your distribution's packages.

Please read the source code page to check out the latest code. Please also check the download page and the FAQ to find out about any issues that you may run into along the way.

Some Linux/BSD distros have a pkg-config that doesn't look in /usr/local/lib/pkgconfig by default. So if you are installing in anywhere other than the system pkg-config path, please run "export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig" or similar before building or installing anything.

Don't use automake 1.4, there are problems with it.

Using automake 1.9, 'make install' seems to re-link and re-install all the synfig core modules every time whether they have changed or not. here is an ugly workaround - it's only worth using if you intend to rebuild synfig repeatedly

The instructions below result in 3 separate subversion working directories being created. This is inconvenient to work with - you'll need to 'svn commit' in 3 different places to send changes, 'svn update' in 3 different places to get the latest updates, etc. This page shows how to arrange for the code to be checked out into a single working directory. You can also download a daily updated tarball that uses this from the source code page.

The CVS requirement is only because the autopoint program run by autoreconf needs CVS. You can avoid the need for CVS by disabling the translation/gettext stuff in configure.ac.

If you don't want to install to a system-wide directory using sudo, run something like these commands before starting:

export PREFIX="$HOME/opt"
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$PREFIX/lib/pkgconfig"
export PATH="$PATH:$PREFIX/bin"

And when you run ./configure, run it with --prefix="$PREFIX" and don't use sudo when you do make install.

Automatic build/update script

You can use this script to quickly build/update synfigstudio from SVN (software installed in ~/synfig-svn by default).

To use the script just execute following single command in terminal:

cd && \
wget http://zelgadis.profusehost.net/files/synfig/synfigstudio-svn-build && \
chmod +x synfigstudio-svn-build && \
./synfigstudio-svn-build initialize

WARNING: Your system must satisfy synfig's build requiments, the sript won't do it for you.

System-specific instructions

ETL

ETL is a template library, there is nothing to build really, it just needed to be installed.

Requires: autoconf automake

  • Debian: build-essential autoconf automake

Type the following commands at the directory that holds ETL:

$ autoreconf --install --force
$ ./configure
$ sudo make install

synfig

Requires: ETL (etl-dev, already installed if you successfully built etl), libxml++, libsigc++, libltdl, libtool, gettext, cvs

  • Debian: etl-dev libxml++2.6-dev libsigc++-2.0-dev libltdl3-dev libtool gettext cvs
  • Gentoo: virtual/ETL dev-cpp/libxmlpp dev-libs/libsigc++ dev-util/cvs
    • If you are using ./configure --prefix="$PREFIX" to configure synfig, do not install virtual/ETL.

Note: libpng isn't required to build synfig, but if you build synfig without PNG support and go on to build synfigstudio, that step will fail (because the build process for synfigstudio uses synfig to create .png icon files). The package is libpng12-dev on Debian or media-libs/libpng on Gentoo.

Note: the 'configure.ac' file in the synfig-core directory doesn't work with libtool version 2, as shipped with ubuntu 8.10. To work around the problem until a proper fix is found, comment out line 622 (it says "AC_CONFIG_SUBDIRS(libltdl)") by putting a "#" at the front of the line. The line is required for older versions of libtool, as shipped with other distributions.

Optional: libpng, libmng, libjpeg, libfreetype, libfontconfig, libopenexr, libavcodec, libmagick++, vimage (MacOS only, proprietary)

  • Debian: libpng12-dev libmng-dev libjpeg62-dev libfreetype6-dev libfontconfig1-dev libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libmagick++9-dev
  • Gentoo: sys-devel/libtool media-libs/libpng media-libs/libmng media-libs/jpeg media-libs/freetype media-libs/fontconfig media-libs/openexr media-libs/libavcodec
  • Ubuntu (since Jaunty): Same libraries as Debian but do not use libmagick++9-dev, use graphicsmagick-libmagick-dev-compat instead.

Runtime: encodedv (from libdv), ffmpeg, convert (from imagemagick)

  • Debian: libdv-bin ffmpeg imagemagick
  • Gentoo: media-libs/libdv media-video/ffmpeg media-gfx/imagemagick

Type the following commands at the directory that holds synfig-core:

$ libtoolize --ltdl --copy --force
$ autoreconf --install --force
$ ./configure
$ make
$ sudo make install

Notes:

  • Don't use --enable-half, it is slow.

synfigstudio

Requires: ETL (etl-dev, already installed if you successfully built etl), synfig (libsynfig-dev, already installed if you successfully built synfig), gtkmm >= 2.4, gtk >= 2.0, glibmm, libsigc++, libltdl, libtool, gettext, cvs

  • Debian: etl-dev libsynfig-dev libgtkmm-2.4-dev libgtk2.0-dev libglibmm-2.4-dev libsigc++-2.0-dev libltdl3-dev libtool gettext cvs
  • Gentoo: virtual/ETL virtual/synfig dev-cpp/gtkmm-2.4 dev-libs/libsigc++ sys-devel/libtool
    • If you are using ./configure --prefix="$PREFIX" to configure synfigstudio, do not install virtual/ETL or virtual/synfig.

Optional: fonts (for the images), FMOD (version 3.x, proprietary)

  • Debian: ttf-freefont ttf-dejavu ttf-dustin
  • Gentoo: freefonts dejavu

Type the following commands at the directory that holds synfig-studio:

$ autoreconf --install --force
$ ./configure
$ make
$ sudo make install


finalizing

Depending on where you installed synfig to, you might have to tell your system where the libraries can be found. That can be done via the following command:

$ sudo ldconfig