Dev:MSYS2 Build
Contents
Notes
- If you are using the released versions instead of GIT, none of the libtoolize or autoreconf steps are necessary. For released versions, "./configure && make && sudo make install" should be enough.
- pkg-config might not 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.
- If you intend to build code repetitively you can export export CXX="/usr/bin/ccache /usr/bin/g++". This allows to not rebuild the already build modules so they taken from the cache.
- After you obtain the source code using the git repository, you obtain a single synfig/ folder where the three main modules (ETL, synfig-core and synfig-studio) are up to date.
- If you want to test a particular branch of the repository do the following:
~/synfig$ git branch -r
You'll obtain a list of the remote branches that exists in the repo. For example:
origin/0.64.2 origin/0.64.x origin/1.0.x origin/HEAD -> origin/master origin/dev-1.0.1 origin/eldruin_new_cairo_core origin/eldruin_transformation_matrix origin/genete_cairo_core origin/genete_new_cairo_core origin/master
To properly checkout a remote branch you have to create a local branch to track a particular remote branch and checkout. For example:
~/synfig$ git branch --track test_cairo origin/eldruin_new_cairo_core ~/synfig$ git checkout test_cairo
Your code is now ready to be built on that branch.
- 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, run something like these commands before starting:
prefix=$(pwd)/install export PKG_CONFIG_PATH="$prefix/lib/pkgconfig" export PATH=$(pwd)/synfig-core/src/tool/.libs:$PATH export CXX="/usr/bin/ccache /usr/bin/g++"
- export PKG_CONFIG_PATH="$prefix/lib/pkgconfig" allows to find the linking libraries.
- export PATH=$(pwd)/synfig-core/src/tool/.libs:$PATH allows synfigstudio find the correct * libraries to render the icons for the toolbox etc.
- export CXX="/usr/bin/ccache /usr/bin/g++" allows to use the cache to avoid rebuilding.
--prefix $prefix
System wide build Instructions
MSYS2 - Mingw64
1. Follow the instructions to install MSYS2 here:
https://msys2.github.io/
"MinGW-w64 Win64 Shell"
- These steps should be improved, but they seem to work for now...
- The following 'pacman' command is incomplete... Refer to other wiki build pages for more dependecies...
$ pacman -S \ git \ nano \ base-devel \ mingw-w64-`uname -m`-binutils \ mingw-w64-`uname -m`-boost \ mingw-w64-`uname -m`-cairo \ mingw-w64-`uname -m`-cairomm \ mingw-w64-`uname -m`-ccache \ mingw-w64-`uname -m`-crt-git \ mingw-w64-`uname -m`-openexr \ mingw-w64-`uname -m`-freetype \ mingw-w64-`uname -m`-gcc \ mingw-w64-`uname -m`-glibmm \ mingw-w64-`uname -m`-gtk2 \ mingw-w64-`uname -m`-gtk3 \ mingw-w64-`uname -m`-gtkmm \ mingw-w64-`uname -m`-gtkmm3 \ mingw-w64-`uname -m`-ilmbase \ mingw-w64-`uname -m`-imagemagick \ mingw-w64-`uname -m`-libpng \ mingw-w64-`uname -m`-libsigc++ \ mingw-w64-`uname -m`-libtool \ mingw-w64-`uname -m`-libxml++ \ mingw-w64-`uname -m`-make \ mingw-w64-`uname -m`-mesa \ mingw-w64-`uname -m`-libmng \ mingw-w64-`uname -m`-nsis \ mingw-w64-`uname -m`-nsis-nsisunz \ mingw-w64-`uname -m`-opencl-headers \ mingw-w64-`uname -m`-openexr \ mingw-w64-`uname -m`-pangomm \ mingw-w64-`uname -m`-pkg-config \ mingw-w64-`uname -m`-png2ico \ $ pacman -Ss <package> # Search for <package>
MLT
https://sourceforge.net/projects/mlt/files/latest/download?source=files $ tar xvf mlt-6*.tar.gz $ cd mlt-6.0.0/ $ ./configure --prefix=/mingw64 --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 \ --disable-debug \ --disable-frei0r \ --without-kde \ --disable-sdl \ $ make $ make install
ETL
ETL is a template library, there is nothing to build really, it just needs to be installed.
Requires: autoconf automake
Type the following commands from the directory where you cloned the git repo
$ cd synfig/ETL $ autoreconf --install --force $ ./configure --prefix=/mingw64 \ --build=`uname -m`-w64-mingw32 \ --host=`uname -m`-w64-mingw32 $ make install # Optional
synfig-core
Requires: ETL (etl-dev, already installed if you successfully built etl), libxml++, libsigc++, libltdl, libtool, gettext, autopoint (part of gettext-dev), cvs, boost-program-options
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).
Note: the 'configure.ac' file in the synfig-core directory doesn't work with libtool version 2; put a "#" at the front of the line with this command:
sed -i 's/^AC_CONFIG_SUBDIRS/# AC_CONFIG_SUBDIRS/' synfig-core/configure.ac
Optional: libpng, libmng, libjpeg, libfreetype, libfontconfig, libopenexr, libavcodec, libmagick++, vimage (MacOS only, proprietary)
Runtime: encodedv (from libdv), ffmpeg, convert (from imagemagick)
Type the following commands from the directory where you cloned the git repo
$ cd synfig/synfig-core $ libtoolize --copy --force $ autoreconf --install --force $ ./configure --prefix=/mingw64 \ --build=x86_64-w64-mingw32 \ --host=x86_64-w64-mingw32 \ --with-boost-libdir=/mingw64/lib $ make $ make install # Optional
Note:
- Don't use --enable-half, it is slow.
- If ETL was installed in a non-standard directory using --prefix=<location>, it suffices to run the configure script with an updated PKG_CONFIG_PATH environment variable. E.g.:
PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:/my/install/prefix/lib/pkgconfig ./configure --prefix=/my/install/prefix
synfig-studio
Requires: ETL (etl-dev, already installed if you successfully built etl), synfig (libsynfig-dev, already installed if you successfully built synfig-core), gtkmm >= 2.4, gtk >= 2.0, glibmm, libsigc++, libltdl, libtool, gettext, cvs, intltool, libboost >= 1.53, libcairo >= 1.12
Optional: fonts (for the images), FMOD (version 3.x, proprietary)
- ttf-freefont ttf-dejavu ttf-dustin
- freefonts dejavu
Type the following commands from the directory where you cloned the git repo
$ cd synfig/synfig-studio $ ./bootstrap.sh # Necessary? $ ./configure --prefix=/mingw64 --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw3 $ make $ make install # Optional