https://wiki.inkscape.org/wiki/api.php?action=feedcontributions&user=211.222.247.120&feedformat=atomInkscape Wiki - User contributions [en]2024-03-28T18:55:33ZUser contributionsMediaWiki 1.36.1https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape&diff=534Compiling Inkscape2004-09-01T09:27:03Z<p>211.222.247.120: *</p>
<hr />
<div>Hopefully, Inkscape will compile right out of the box. If it doesn't, well that's what this page is for.<br />
<br />
Jot down notes, questions, findings, tips, etc. here on things you run into. It's a good idea to<br />
make mention of what version of the code you're trying to compile, the distribution you're running,<br />
and other such information that might be pertinent.<br />
<br />
If legitimate bugs are found or patches developed, please move them to the tracker at Sourceforge<br />
rather than inlining them here. <br />
<br />
= OS &amp; Distribution Specific =<br />
* '''Linux'''<br />
** [[CompilingFC2|Fedore Core 2]]<br />
** [[CompilingGentoo|Gentoo]]<br />
** [[CompilingDebian|Debian]]<br />
** [[CompilingYellowDog|Yellow Dog]]<br />
** [[CompilingSuse|Suse]]<br />
** [[CompilingSlackware|Slackware]]<br />
** [[CompilingYoper|Yoper]]<br />
* [[CompilingMacOsX|Mac OS X]]<br />
* [[Win32Port|Windows]]<br />
* [[CompilingSPARC|SPARC]]<br />
* [[CompilingSunSolaris|Sun Solaris]]<br />
<br />
<br />
= Specific Package Problems + Solutions =<br />
<br />
<br />
== GtkMM ==<br />
If you have to compile and install GtkMM from source, you may find an error like this when trying to<br />
compile Inkscape:<br />
<br />
checking for gtk+-2.0 >= 2.0.0 libxml-2.0 >= 2-2.4.24 sigc++-1.2 gtkmm-2.0... Package gtkmm-2.0 was not found in the pkg-config search path.<br />
Perhaps you should add the directory containing `gtkmm-2.0.pc'<br />
to the PKG_CONFIG_PATH environment variable<br />
No package 'gtkmm-2.0' found<br />
<br />
A solution suggested by Ishmal is to set the PKG_CONFIG_PATH variable as so:<br />
<br />
setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/usr/lib/pkgconfig<br />
<br />
<br />
<br />
<br />
== Boehm Garbage Collector Dependency ==<br />
<br />
If your distro does not have a package available (like many don't, ie, Fedora Core 2), then download source from here:<br />
<br />
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.3.tar.gz<br />
<br />
Then configure it with the command:<br />
<br />
$ ./configure --enable-cplusplus<br />
$ make; make install<br />
<br />
<br />
Also, if searching for a package for GC, the name of it is sometimes:<br />
<br />
* gc<br />
* libgc<br />
* libgc-devel<br />
* boehm-gc (on Gentoo)<br />
<br />
<br />
<br />
<br />
= Developer Compilation =<br />
<br />
Plain vanilla compilation is done as documented in INSTALL; ./autogen.sh (optionally); ./configure; make; su && make test; make install (optional). See INSTALL for more on that.<br />
<br />
But if you're going to be doing a lot of development, there's some tricks and techniques you should know,<br />
to get best results.<br />
<br />
# Turn off optimization<br />
# Use ccache for faster compilation<br />
# Set up a separate build directory (nice for testing both gcc and g++, or cross compiling)<br />
# Use the -j N flag to optimize for the number of processors in your machine, with N = 1 + no. proc's<br />
<br />
Example: Setting up both gcc and g++ build environments (in separate tree), and using ccache for faster<br />
compilations on a dual-processor machine, with no optimization, assuming /bin/bash:<br />
<br />
mkdir build-gcc build-g++<br />
cvs checkout inkscape<br />
cd inkscape<br />
libtoolize --copy --force<br />
./autogen.sh<br />
cd ../build-gcc<br />
CFLAGS='-g -O0 -Wall' CC='ccache gcc' ../inkscape/configure<br />
cd ../build-g++<br />
CXXFLAGS='-g -O0 -Wall' CXX='ccache g++' ../inkscape/configure<br />
cd build-gcc && make -j 3<br />
cd build-g++ && make -j 3<br />
<br />
<br />
Turning off just optimization (which can produce strange results in debuggers):<br />
<br />
export CC=g++<br />
export CXXFLAGS='-g -O0 -Wall'<br />
export CFLAGS='-g -O0 -Wall'<br />
./configure</div>211.222.247.120https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape&diff=533Compiling Inkscape2004-09-01T09:26:30Z<p>211.222.247.120: *</p>
<hr />
<div>Hopefully, Inkscape will compile right out of the box. If it doesn't, well that's what this page is for.<br />
<br />
Jot down notes, questions, findings, tips, etc. here on things you run into. It's a good idea to<br />
make mention of what version of the code you're trying to compile, the distribution you're running,<br />
and other such information that might be pertinent.<br />
<br />
If legitimate bugs are found or patches developed, please move them to the tracker at Sourceforge<br />
rather than inlining them here. <br />
<br />
= OS &amp; Distribution Specific =<br />
* Linux<br />
** [[CompilingFC2|Fedore Core 2]]<br />
** [[CompilingGentoo|Gentoo]]<br />
** [[CompilingDebian|Debian]]<br />
** [[CompilingYellowDog|Yellow Dog]]<br />
** [[CompilingSuse|Suse]]<br />
** [[CompilingSlackware|Slackware]]<br />
** [[CompilingYoper|Yoper]]<br />
* [[CompilingMacOsX|Mac OS X]]<br />
* [[Windows Win32Port|Windows]]<br />
* [[CompilingSPARC|SPARC]]<br />
* [[CompilingSunSolaris|Sun Solaris]]<br />
<br />
<br />
= Specific Package Problems + Solutions =<br />
<br />
<br />
== GtkMM ==<br />
If you have to compile and install GtkMM from source, you may find an error like this when trying to<br />
compile Inkscape:<br />
<br />
checking for gtk+-2.0 >= 2.0.0 libxml-2.0 >= 2-2.4.24 sigc++-1.2 gtkmm-2.0... Package gtkmm-2.0 was not found in the pkg-config search path.<br />
Perhaps you should add the directory containing `gtkmm-2.0.pc'<br />
to the PKG_CONFIG_PATH environment variable<br />
No package 'gtkmm-2.0' found<br />
<br />
A solution suggested by Ishmal is to set the PKG_CONFIG_PATH variable as so:<br />
<br />
setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/usr/lib/pkgconfig<br />
<br />
<br />
<br />
<br />
== Boehm Garbage Collector Dependency ==<br />
<br />
If your distro does not have a package available (like many don't, ie, Fedora Core 2), then download source from here:<br />
<br />
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.3.tar.gz<br />
<br />
Then configure it with the command:<br />
<br />
$ ./configure --enable-cplusplus<br />
$ make; make install<br />
<br />
<br />
Also, if searching for a package for GC, the name of it is sometimes:<br />
<br />
* gc<br />
* libgc<br />
* libgc-devel<br />
* boehm-gc (on Gentoo)<br />
<br />
<br />
<br />
<br />
= Developer Compilation =<br />
<br />
Plain vanilla compilation is done as documented in INSTALL; ./autogen.sh (optionally); ./configure; make; su && make test; make install (optional). See INSTALL for more on that.<br />
<br />
But if you're going to be doing a lot of development, there's some tricks and techniques you should know,<br />
to get best results.<br />
<br />
# Turn off optimization<br />
# Use ccache for faster compilation<br />
# Set up a separate build directory (nice for testing both gcc and g++, or cross compiling)<br />
# Use the -j N flag to optimize for the number of processors in your machine, with N = 1 + no. proc's<br />
<br />
Example: Setting up both gcc and g++ build environments (in separate tree), and using ccache for faster<br />
compilations on a dual-processor machine, with no optimization, assuming /bin/bash:<br />
<br />
mkdir build-gcc build-g++<br />
cvs checkout inkscape<br />
cd inkscape<br />
libtoolize --copy --force<br />
./autogen.sh<br />
cd ../build-gcc<br />
CFLAGS='-g -O0 -Wall' CC='ccache gcc' ../inkscape/configure<br />
cd ../build-g++<br />
CXXFLAGS='-g -O0 -Wall' CXX='ccache g++' ../inkscape/configure<br />
cd build-gcc && make -j 3<br />
cd build-g++ && make -j 3<br />
<br />
<br />
Turning off just optimization (which can produce strange results in debuggers):<br />
<br />
export CC=g++<br />
export CXXFLAGS='-g -O0 -Wall'<br />
export CFLAGS='-g -O0 -Wall'<br />
./configure</div>211.222.247.120https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape&diff=532Compiling Inkscape2004-09-01T09:25:05Z<p>211.222.247.120: *</p>
<hr />
<div>Hopefully, Inkscape will compile right out of the box. If it doesn't, well that's what this page is for.<br />
<br />
Jot down notes, questions, findings, tips, etc. here on things you run into. It's a good idea to<br />
make mention of what version of the code you're trying to compile, the distribution you're running,<br />
and other such information that might be pertinent.<br />
<br />
If legitimate bugs are found or patches developed, please move them to the tracker at Sourceforge<br />
rather than inlining them here. <br />
<br />
= OS &amp; Distribution Specific =<br />
* Linux<br />
** [[CompilingFC2|Fedore Core 2]]<br />
** [[Gentoo|CompilingGentoo]]<br />
** [[Debian|CompilingDebian]]<br />
** [[Yellow Dog|CompilingYellowDog]]<br />
** [[Suse|CompilingSuse]]<br />
** [[Slackware|CompilingSlackware]]<br />
** [[Yoper|CompilingYoper]]<br />
* [[Mac OS X|CompilingMacOsX]]<br />
* [[Windows|Windows Win32Port]]<br />
* [[CompilingSPARC]]<br />
* [[CompilingSunSolaris]]<br />
<br />
<br />
= Specific Package Problems + Solutions =<br />
<br />
<br />
== GtkMM ==<br />
If you have to compile and install GtkMM from source, you may find an error like this when trying to<br />
compile Inkscape:<br />
<br />
checking for gtk+-2.0 >= 2.0.0 libxml-2.0 >= 2-2.4.24 sigc++-1.2 gtkmm-2.0... Package gtkmm-2.0 was not found in the pkg-config search path.<br />
Perhaps you should add the directory containing `gtkmm-2.0.pc'<br />
to the PKG_CONFIG_PATH environment variable<br />
No package 'gtkmm-2.0' found<br />
<br />
A solution suggested by Ishmal is to set the PKG_CONFIG_PATH variable as so:<br />
<br />
setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/usr/lib/pkgconfig<br />
<br />
<br />
<br />
<br />
== Boehm Garbage Collector Dependency ==<br />
<br />
If your distro does not have a package available (like many don't, ie, Fedora Core 2), then download source from here:<br />
<br />
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.3.tar.gz<br />
<br />
Then configure it with the command:<br />
<br />
$ ./configure --enable-cplusplus<br />
$ make; make install<br />
<br />
<br />
Also, if searching for a package for GC, the name of it is sometimes:<br />
<br />
* gc<br />
* libgc<br />
* libgc-devel<br />
* boehm-gc (on Gentoo)<br />
<br />
<br />
<br />
<br />
= Developer Compilation =<br />
<br />
Plain vanilla compilation is done as documented in INSTALL; ./autogen.sh (optionally); ./configure; make; su && make test; make install (optional). See INSTALL for more on that.<br />
<br />
But if you're going to be doing a lot of development, there's some tricks and techniques you should know,<br />
to get best results.<br />
<br />
# Turn off optimization<br />
# Use ccache for faster compilation<br />
# Set up a separate build directory (nice for testing both gcc and g++, or cross compiling)<br />
# Use the -j N flag to optimize for the number of processors in your machine, with N = 1 + no. proc's<br />
<br />
Example: Setting up both gcc and g++ build environments (in separate tree), and using ccache for faster<br />
compilations on a dual-processor machine, with no optimization, assuming /bin/bash:<br />
<br />
mkdir build-gcc build-g++<br />
cvs checkout inkscape<br />
cd inkscape<br />
libtoolize --copy --force<br />
./autogen.sh<br />
cd ../build-gcc<br />
CFLAGS='-g -O0 -Wall' CC='ccache gcc' ../inkscape/configure<br />
cd ../build-g++<br />
CXXFLAGS='-g -O0 -Wall' CXX='ccache g++' ../inkscape/configure<br />
cd build-gcc && make -j 3<br />
cd build-g++ && make -j 3<br />
<br />
<br />
Turning off just optimization (which can produce strange results in debuggers):<br />
<br />
export CC=g++<br />
export CXXFLAGS='-g -O0 -Wall'<br />
export CFLAGS='-g -O0 -Wall'<br />
./configure</div>211.222.247.120https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape&diff=531Compiling Inkscape2004-09-01T09:24:12Z<p>211.222.247.120: *</p>
<hr />
<div>Hopefully, Inkscape will compile right out of the box. If it doesn't, well that's what this page is for.<br />
<br />
Jot down notes, questions, findings, tips, etc. here on things you run into. It's a good idea to<br />
make mention of what version of the code you're trying to compile, the distribution you're running,<br />
and other such information that might be pertinent.<br />
<br />
If legitimate bugs are found or patches developed, please move them to the tracker at Sourceforge<br />
rather than inlining them here. <br />
<br />
= OS &amp; Distribution Specific =<br />
* Linux<br />
** [[Fedore Core 2|CompilingFC2]]<br />
** [[Gentoo|CompilingGentoo]]<br />
** [[Debian|CompilingDebian]]<br />
** [[Yellow Dog|CompilingYellowDog]]<br />
** [[Suse|CompilingSuse]]<br />
** [[Slackware|CompilingSlackware]]<br />
** [[Yoper|CompilingYoper]]<br />
* [[Mac OS X|CompilingMacOsX]]<br />
* [[Windows|Windows Win32Port]]<br />
* [[CompilingSPARC]]<br />
* [[CompilingSunSolaris]]<br />
<br />
<br />
= Specific Package Problems + Solutions =<br />
<br />
<br />
== GtkMM ==<br />
If you have to compile and install GtkMM from source, you may find an error like this when trying to<br />
compile Inkscape:<br />
<br />
checking for gtk+-2.0 >= 2.0.0 libxml-2.0 >= 2-2.4.24 sigc++-1.2 gtkmm-2.0... Package gtkmm-2.0 was not found in the pkg-config search path.<br />
Perhaps you should add the directory containing `gtkmm-2.0.pc'<br />
to the PKG_CONFIG_PATH environment variable<br />
No package 'gtkmm-2.0' found<br />
<br />
A solution suggested by Ishmal is to set the PKG_CONFIG_PATH variable as so:<br />
<br />
setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/usr/lib/pkgconfig<br />
<br />
<br />
<br />
<br />
== Boehm Garbage Collector Dependency ==<br />
<br />
If your distro does not have a package available (like many don't, ie, Fedora Core 2), then download source from here:<br />
<br />
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.3.tar.gz<br />
<br />
Then configure it with the command:<br />
<br />
$ ./configure --enable-cplusplus<br />
$ make; make install<br />
<br />
<br />
Also, if searching for a package for GC, the name of it is sometimes:<br />
<br />
* gc<br />
* libgc<br />
* libgc-devel<br />
* boehm-gc (on Gentoo)<br />
<br />
<br />
<br />
<br />
= Developer Compilation =<br />
<br />
Plain vanilla compilation is done as documented in INSTALL; ./autogen.sh (optionally); ./configure; make; su && make test; make install (optional). See INSTALL for more on that.<br />
<br />
But if you're going to be doing a lot of development, there's some tricks and techniques you should know,<br />
to get best results.<br />
<br />
# Turn off optimization<br />
# Use ccache for faster compilation<br />
# Set up a separate build directory (nice for testing both gcc and g++, or cross compiling)<br />
# Use the -j N flag to optimize for the number of processors in your machine, with N = 1 + no. proc's<br />
<br />
Example: Setting up both gcc and g++ build environments (in separate tree), and using ccache for faster<br />
compilations on a dual-processor machine, with no optimization, assuming /bin/bash:<br />
<br />
mkdir build-gcc build-g++<br />
cvs checkout inkscape<br />
cd inkscape<br />
libtoolize --copy --force<br />
./autogen.sh<br />
cd ../build-gcc<br />
CFLAGS='-g -O0 -Wall' CC='ccache gcc' ../inkscape/configure<br />
cd ../build-g++<br />
CXXFLAGS='-g -O0 -Wall' CXX='ccache g++' ../inkscape/configure<br />
cd build-gcc && make -j 3<br />
cd build-g++ && make -j 3<br />
<br />
<br />
Turning off just optimization (which can produce strange results in debuggers):<br />
<br />
export CC=g++<br />
export CXXFLAGS='-g -O0 -Wall'<br />
export CFLAGS='-g -O0 -Wall'<br />
./configure</div>211.222.247.120https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape&diff=530Compiling Inkscape2004-09-01T09:22:40Z<p>211.222.247.120: *</p>
<hr />
<div>Hopefully, Inkscape will compile right out of the box. If it doesn't, well that's what this page is for.<br />
<br />
Jot down notes, questions, findings, tips, etc. here on things you run into. It's a good idea to<br />
make mention of what version of the code you're trying to compile, the distribution you're running,<br />
and other such information that might be pertinent.<br />
<br />
If legitimate bugs are found or patches developed, please move them to the tracker at Sourceforge<br />
rather than inlining them here. <br />
<br />
= OS &amp; Distribution Specific =<br />
* Linux<br />
** [Fedore Core 2|CompilingFC2]<br />
** CompilingGentoo<br />
** CompilingDebian<br />
** CompilingYellowDog<br />
** CompilingSuse<br />
** CompilingSlackware<br />
** CompilingYoper<br />
* CompilingMacOsX<br />
* Windows [[Win32Port]] [Windows Win32Port]<br />
* CompilingSPARC<br />
* CompilingSunSolaris<br />
<br />
<br />
= Specific Package Problems + Solutions =<br />
<br />
<br />
== GtkMM ==<br />
If you have to compile and install GtkMM from source, you may find an error like this when trying to<br />
compile Inkscape:<br />
<br />
checking for gtk+-2.0 >= 2.0.0 libxml-2.0 >= 2-2.4.24 sigc++-1.2 gtkmm-2.0... Package gtkmm-2.0 was not found in the pkg-config search path.<br />
Perhaps you should add the directory containing `gtkmm-2.0.pc'<br />
to the PKG_CONFIG_PATH environment variable<br />
No package 'gtkmm-2.0' found<br />
<br />
A solution suggested by Ishmal is to set the PKG_CONFIG_PATH variable as so:<br />
<br />
setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/usr/lib/pkgconfig<br />
<br />
<br />
<br />
<br />
== Boehm Garbage Collector Dependency ==<br />
<br />
If your distro does not have a package available (like many don't, ie, Fedora Core 2), then download source from here:<br />
<br />
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.3.tar.gz<br />
<br />
Then configure it with the command:<br />
<br />
$ ./configure --enable-cplusplus<br />
$ make; make install<br />
<br />
<br />
Also, if searching for a package for GC, the name of it is sometimes:<br />
<br />
* gc<br />
* libgc<br />
* libgc-devel<br />
* boehm-gc (on Gentoo)<br />
<br />
<br />
<br />
<br />
= Developer Compilation =<br />
<br />
Plain vanilla compilation is done as documented in INSTALL; ./autogen.sh (optionally); ./configure; make; su && make test; make install (optional). See INSTALL for more on that.<br />
<br />
But if you're going to be doing a lot of development, there's some tricks and techniques you should know,<br />
to get best results.<br />
<br />
# Turn off optimization<br />
# Use ccache for faster compilation<br />
# Set up a separate build directory (nice for testing both gcc and g++, or cross compiling)<br />
# Use the -j N flag to optimize for the number of processors in your machine, with N = 1 + no. proc's<br />
<br />
Example: Setting up both gcc and g++ build environments (in separate tree), and using ccache for faster<br />
compilations on a dual-processor machine, with no optimization, assuming /bin/bash:<br />
<br />
mkdir build-gcc build-g++<br />
cvs checkout inkscape<br />
cd inkscape<br />
libtoolize --copy --force<br />
./autogen.sh<br />
cd ../build-gcc<br />
CFLAGS='-g -O0 -Wall' CC='ccache gcc' ../inkscape/configure<br />
cd ../build-g++<br />
CXXFLAGS='-g -O0 -Wall' CXX='ccache g++' ../inkscape/configure<br />
cd build-gcc && make -j 3<br />
cd build-g++ && make -j 3<br />
<br />
<br />
Turning off just optimization (which can produce strange results in debuggers):<br />
<br />
export CC=g++<br />
export CXXFLAGS='-g -O0 -Wall'<br />
export CFLAGS='-g -O0 -Wall'<br />
./configure</div>211.222.247.120https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape&diff=529Compiling Inkscape2004-09-01T09:21:56Z<p>211.222.247.120: *</p>
<hr />
<div>Hopefully, Inkscape will compile right out of the box. If it doesn't, well that's what this page is for.<br />
<br />
Jot down notes, questions, findings, tips, etc. here on things you run into. It's a good idea to<br />
make mention of what version of the code you're trying to compile, the distribution you're running,<br />
and other such information that might be pertinent.<br />
<br />
If legitimate bugs are found or patches developed, please move them to the tracker at Sourceforge<br />
rather than inlining them here. <br />
<br />
= OS &amp; Distribution Specific =<br />
* Linux<br />
** [Fedore Core 2 CompilingFC2]<br />
** CompilingGentoo<br />
** CompilingDebian<br />
** CompilingYellowDog<br />
** CompilingSuse<br />
** CompilingSlackware<br />
** CompilingYoper<br />
* CompilingMacOsX<br />
* Windows [[Win32Port]] [Windows Win32Port]<br />
* CompilingSPARC<br />
* CompilingSunSolaris<br />
<br />
<br />
= Specific Package Problems + Solutions =<br />
<br />
<br />
== GtkMM ==<br />
If you have to compile and install GtkMM from source, you may find an error like this when trying to<br />
compile Inkscape:<br />
<br />
checking for gtk+-2.0 >= 2.0.0 libxml-2.0 >= 2-2.4.24 sigc++-1.2 gtkmm-2.0... Package gtkmm-2.0 was not found in the pkg-config search path.<br />
Perhaps you should add the directory containing `gtkmm-2.0.pc'<br />
to the PKG_CONFIG_PATH environment variable<br />
No package 'gtkmm-2.0' found<br />
<br />
A solution suggested by Ishmal is to set the PKG_CONFIG_PATH variable as so:<br />
<br />
setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/usr/lib/pkgconfig<br />
<br />
<br />
<br />
<br />
== Boehm Garbage Collector Dependency ==<br />
<br />
If your distro does not have a package available (like many don't, ie, Fedora Core 2), then download source from here:<br />
<br />
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.3.tar.gz<br />
<br />
Then configure it with the command:<br />
<br />
$ ./configure --enable-cplusplus<br />
$ make; make install<br />
<br />
<br />
Also, if searching for a package for GC, the name of it is sometimes:<br />
<br />
* gc<br />
* libgc<br />
* libgc-devel<br />
* boehm-gc (on Gentoo)<br />
<br />
<br />
<br />
<br />
= Developer Compilation =<br />
<br />
Plain vanilla compilation is done as documented in INSTALL; ./autogen.sh (optionally); ./configure; make; su && make test; make install (optional). See INSTALL for more on that.<br />
<br />
But if you're going to be doing a lot of development, there's some tricks and techniques you should know,<br />
to get best results.<br />
<br />
# Turn off optimization<br />
# Use ccache for faster compilation<br />
# Set up a separate build directory (nice for testing both gcc and g++, or cross compiling)<br />
# Use the -j N flag to optimize for the number of processors in your machine, with N = 1 + no. proc's<br />
<br />
Example: Setting up both gcc and g++ build environments (in separate tree), and using ccache for faster<br />
compilations on a dual-processor machine, with no optimization, assuming /bin/bash:<br />
<br />
mkdir build-gcc build-g++<br />
cvs checkout inkscape<br />
cd inkscape<br />
libtoolize --copy --force<br />
./autogen.sh<br />
cd ../build-gcc<br />
CFLAGS='-g -O0 -Wall' CC='ccache gcc' ../inkscape/configure<br />
cd ../build-g++<br />
CXXFLAGS='-g -O0 -Wall' CXX='ccache g++' ../inkscape/configure<br />
cd build-gcc && make -j 3<br />
cd build-g++ && make -j 3<br />
<br />
<br />
Turning off just optimization (which can produce strange results in debuggers):<br />
<br />
export CC=g++<br />
export CXXFLAGS='-g -O0 -Wall'<br />
export CFLAGS='-g -O0 -Wall'<br />
./configure</div>211.222.247.120https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape&diff=528Compiling Inkscape2004-09-01T09:21:43Z<p>211.222.247.120: *</p>
<hr />
<div>Hopefully, Inkscape will compile right out of the box. If it doesn't, well that's what this page is for.<br />
<br />
Jot down notes, questions, findings, tips, etc. here on things you run into. It's a good idea to<br />
make mention of what version of the code you're trying to compile, the distribution you're running,<br />
and other such information that might be pertinent.<br />
<br />
If legitimate bugs are found or patches developed, please move them to the tracker at Sourceforge<br />
rather than inlining them here. <br />
<br />
= OS &amp; Distribution Specific =<br />
* Linux<br />
** [[Fedore Core 2][CompilingFC2]]<br />
** CompilingGentoo<br />
** CompilingDebian<br />
** CompilingYellowDog<br />
** CompilingSuse<br />
** CompilingSlackware<br />
** CompilingYoper<br />
* CompilingMacOsX<br />
* Windows [[Win32Port]] [Windows Win32Port]<br />
* CompilingSPARC<br />
* CompilingSunSolaris<br />
<br />
<br />
= Specific Package Problems + Solutions =<br />
<br />
<br />
== GtkMM ==<br />
If you have to compile and install GtkMM from source, you may find an error like this when trying to<br />
compile Inkscape:<br />
<br />
checking for gtk+-2.0 >= 2.0.0 libxml-2.0 >= 2-2.4.24 sigc++-1.2 gtkmm-2.0... Package gtkmm-2.0 was not found in the pkg-config search path.<br />
Perhaps you should add the directory containing `gtkmm-2.0.pc'<br />
to the PKG_CONFIG_PATH environment variable<br />
No package 'gtkmm-2.0' found<br />
<br />
A solution suggested by Ishmal is to set the PKG_CONFIG_PATH variable as so:<br />
<br />
setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/usr/lib/pkgconfig<br />
<br />
<br />
<br />
<br />
== Boehm Garbage Collector Dependency ==<br />
<br />
If your distro does not have a package available (like many don't, ie, Fedora Core 2), then download source from here:<br />
<br />
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.3.tar.gz<br />
<br />
Then configure it with the command:<br />
<br />
$ ./configure --enable-cplusplus<br />
$ make; make install<br />
<br />
<br />
Also, if searching for a package for GC, the name of it is sometimes:<br />
<br />
* gc<br />
* libgc<br />
* libgc-devel<br />
* boehm-gc (on Gentoo)<br />
<br />
<br />
<br />
<br />
= Developer Compilation =<br />
<br />
Plain vanilla compilation is done as documented in INSTALL; ./autogen.sh (optionally); ./configure; make; su && make test; make install (optional). See INSTALL for more on that.<br />
<br />
But if you're going to be doing a lot of development, there's some tricks and techniques you should know,<br />
to get best results.<br />
<br />
# Turn off optimization<br />
# Use ccache for faster compilation<br />
# Set up a separate build directory (nice for testing both gcc and g++, or cross compiling)<br />
# Use the -j N flag to optimize for the number of processors in your machine, with N = 1 + no. proc's<br />
<br />
Example: Setting up both gcc and g++ build environments (in separate tree), and using ccache for faster<br />
compilations on a dual-processor machine, with no optimization, assuming /bin/bash:<br />
<br />
mkdir build-gcc build-g++<br />
cvs checkout inkscape<br />
cd inkscape<br />
libtoolize --copy --force<br />
./autogen.sh<br />
cd ../build-gcc<br />
CFLAGS='-g -O0 -Wall' CC='ccache gcc' ../inkscape/configure<br />
cd ../build-g++<br />
CXXFLAGS='-g -O0 -Wall' CXX='ccache g++' ../inkscape/configure<br />
cd build-gcc && make -j 3<br />
cd build-g++ && make -j 3<br />
<br />
<br />
Turning off just optimization (which can produce strange results in debuggers):<br />
<br />
export CC=g++<br />
export CXXFLAGS='-g -O0 -Wall'<br />
export CFLAGS='-g -O0 -Wall'<br />
./configure</div>211.222.247.120https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape&diff=527Compiling Inkscape2004-09-01T09:21:27Z<p>211.222.247.120: *</p>
<hr />
<div>Hopefully, Inkscape will compile right out of the box. If it doesn't, well that's what this page is for.<br />
<br />
Jot down notes, questions, findings, tips, etc. here on things you run into. It's a good idea to<br />
make mention of what version of the code you're trying to compile, the distribution you're running,<br />
and other such information that might be pertinent.<br />
<br />
If legitimate bugs are found or patches developed, please move them to the tracker at Sourceforge<br />
rather than inlining them here. <br />
<br />
= OS &amp; Distribution Specific =<br />
* Linux<br />
** [Fedore Core 2][CompilingFC2]<br />
** CompilingGentoo<br />
** CompilingDebian<br />
** CompilingYellowDog<br />
** CompilingSuse<br />
** CompilingSlackware<br />
** CompilingYoper<br />
* CompilingMacOsX<br />
* Windows [[Win32Port]] [Windows Win32Port]<br />
* CompilingSPARC<br />
* CompilingSunSolaris<br />
<br />
<br />
= Specific Package Problems + Solutions =<br />
<br />
<br />
== GtkMM ==<br />
If you have to compile and install GtkMM from source, you may find an error like this when trying to<br />
compile Inkscape:<br />
<br />
checking for gtk+-2.0 >= 2.0.0 libxml-2.0 >= 2-2.4.24 sigc++-1.2 gtkmm-2.0... Package gtkmm-2.0 was not found in the pkg-config search path.<br />
Perhaps you should add the directory containing `gtkmm-2.0.pc'<br />
to the PKG_CONFIG_PATH environment variable<br />
No package 'gtkmm-2.0' found<br />
<br />
A solution suggested by Ishmal is to set the PKG_CONFIG_PATH variable as so:<br />
<br />
setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/usr/lib/pkgconfig<br />
<br />
<br />
<br />
<br />
== Boehm Garbage Collector Dependency ==<br />
<br />
If your distro does not have a package available (like many don't, ie, Fedora Core 2), then download source from here:<br />
<br />
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.3.tar.gz<br />
<br />
Then configure it with the command:<br />
<br />
$ ./configure --enable-cplusplus<br />
$ make; make install<br />
<br />
<br />
Also, if searching for a package for GC, the name of it is sometimes:<br />
<br />
* gc<br />
* libgc<br />
* libgc-devel<br />
* boehm-gc (on Gentoo)<br />
<br />
<br />
<br />
<br />
= Developer Compilation =<br />
<br />
Plain vanilla compilation is done as documented in INSTALL; ./autogen.sh (optionally); ./configure; make; su && make test; make install (optional). See INSTALL for more on that.<br />
<br />
But if you're going to be doing a lot of development, there's some tricks and techniques you should know,<br />
to get best results.<br />
<br />
# Turn off optimization<br />
# Use ccache for faster compilation<br />
# Set up a separate build directory (nice for testing both gcc and g++, or cross compiling)<br />
# Use the -j N flag to optimize for the number of processors in your machine, with N = 1 + no. proc's<br />
<br />
Example: Setting up both gcc and g++ build environments (in separate tree), and using ccache for faster<br />
compilations on a dual-processor machine, with no optimization, assuming /bin/bash:<br />
<br />
mkdir build-gcc build-g++<br />
cvs checkout inkscape<br />
cd inkscape<br />
libtoolize --copy --force<br />
./autogen.sh<br />
cd ../build-gcc<br />
CFLAGS='-g -O0 -Wall' CC='ccache gcc' ../inkscape/configure<br />
cd ../build-g++<br />
CXXFLAGS='-g -O0 -Wall' CXX='ccache g++' ../inkscape/configure<br />
cd build-gcc && make -j 3<br />
cd build-g++ && make -j 3<br />
<br />
<br />
Turning off just optimization (which can produce strange results in debuggers):<br />
<br />
export CC=g++<br />
export CXXFLAGS='-g -O0 -Wall'<br />
export CFLAGS='-g -O0 -Wall'<br />
./configure</div>211.222.247.120https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape&diff=526Compiling Inkscape2004-09-01T09:20:20Z<p>211.222.247.120: *</p>
<hr />
<div>Hopefully, Inkscape will compile right out of the box. If it doesn't, well that's what this page is for.<br />
<br />
Jot down notes, questions, findings, tips, etc. here on things you run into. It's a good idea to<br />
make mention of what version of the code you're trying to compile, the distribution you're running,<br />
and other such information that might be pertinent.<br />
<br />
If legitimate bugs are found or patches developed, please move them to the tracker at Sourceforge<br />
rather than inlining them here. <br />
<br />
= OS &amp; Distribution Specific =<br />
* Linux<br />
** CompilingFC2<br />
** CompilingGentoo<br />
** CompilingDebian<br />
** CompilingYellowDog<br />
** CompilingSuse<br />
** CompilingSlackware<br />
** CompilingYoper<br />
* CompilingMacOsX<br />
* Windows [[Win32Port]] [Windows Win32Port]<br />
* CompilingSPARC<br />
* CompilingSunSolaris<br />
<br />
<br />
= Specific Package Problems + Solutions =<br />
<br />
<br />
== GtkMM ==<br />
If you have to compile and install GtkMM from source, you may find an error like this when trying to<br />
compile Inkscape:<br />
<br />
checking for gtk+-2.0 >= 2.0.0 libxml-2.0 >= 2-2.4.24 sigc++-1.2 gtkmm-2.0... Package gtkmm-2.0 was not found in the pkg-config search path.<br />
Perhaps you should add the directory containing `gtkmm-2.0.pc'<br />
to the PKG_CONFIG_PATH environment variable<br />
No package 'gtkmm-2.0' found<br />
<br />
A solution suggested by Ishmal is to set the PKG_CONFIG_PATH variable as so:<br />
<br />
setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/usr/lib/pkgconfig<br />
<br />
<br />
<br />
<br />
== Boehm Garbage Collector Dependency ==<br />
<br />
If your distro does not have a package available (like many don't, ie, Fedora Core 2), then download source from here:<br />
<br />
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.3.tar.gz<br />
<br />
Then configure it with the command:<br />
<br />
$ ./configure --enable-cplusplus<br />
$ make; make install<br />
<br />
<br />
Also, if searching for a package for GC, the name of it is sometimes:<br />
<br />
* gc<br />
* libgc<br />
* libgc-devel<br />
* boehm-gc (on Gentoo)<br />
<br />
<br />
== Developer Compilation ==<br />
<br />
Plain vanilla compilation is done as documented in INSTALL; ./autogen.sh (optionally); ./configure; make; su && make test; make install (optional). See INSTALL for more on that.<br />
<br />
But if you're going to be doing a lot of development, there's some tricks and techniques you should know,<br />
to get best results.<br />
<br />
# Turn off optimization<br />
# Use ccache for faster compilation<br />
# Set up a separate build directory (nice for testing both gcc and g++, or cross compiling)<br />
# Use the -j N flag to optimize for the number of processors in your machine, with N = 1 + no. proc's<br />
<br />
Example: Setting up both gcc and g++ build environments (in separate tree), and using ccache for faster<br />
compilations on a dual-processor machine, with no optimization, assuming /bin/bash:<br />
<br />
mkdir build-gcc build-g++<br />
cvs checkout inkscape<br />
cd inkscape<br />
libtoolize --copy --force<br />
./autogen.sh<br />
cd ../build-gcc<br />
CFLAGS='-g -O0 -Wall' CC='ccache gcc' ../inkscape/configure<br />
cd ../build-g++<br />
CXXFLAGS='-g -O0 -Wall' CXX='ccache g++' ../inkscape/configure<br />
cd build-gcc && make -j 3<br />
cd build-g++ && make -j 3<br />
<br />
<br />
Turning off just optimization (which can produce strange results in debuggers):<br />
<br />
export CC=g++<br />
export CXXFLAGS='-g -O0 -Wall'<br />
export CFLAGS='-g -O0 -Wall'<br />
./configure</div>211.222.247.120https://wiki.inkscape.org/wiki/index.php?title=CompilingSunSolaris&diff=825CompilingSunSolaris2004-09-01T09:19:03Z<p>211.222.247.120: *</p>
<hr />
<div>== Compiling on Sun Solaris ==<br />
<br />
When trying to compile the CVS snapshot from 2004-05-27 with <br />
gcc 3.3.2 on a <br />
<nowiki>SunOS foo 5.8 Generic_108528-22 sun4u sparc SUNW,Sun-Fire-V240</nowiki><br />
machine, I had to fix a few things.<br />
<br />
First, I installed the following packages:<br />
<pre><br />
autoconf-2.59<br />
automake-1.8.3<br />
intltool-0.30<br />
expat-1.95.7<br />
libpng-1.2.5<br />
libsigc++-2.0.3<br />
glib-2.4.2<br />
glibmm-2.4.2<br />
atk-1.7.0<br />
render-0.8<br />
xrender-0.8.3<br />
xft-2.1.2<br />
pango-1.4.0<br />
gtk+-2.4.2<br />
gtkmm-2.4.2<br />
</pre><br />
<br />
I configured Inkscape with the following switches: <br />
<pre><br />
./configure --prefix=/home/foo/Tools/ --includedir=/home/foo/Tools/include CPPFLAGS=-I/home/foo/Tools/include<br />
</pre><br />
<br />
Then "fix" stuff in the inkscape sources:<br />
<br />
Uncomment "@INTLTOOL_DESKTOP_RULE@" in Makefile.<br />
<br />
Use <inttypes.h>, not <stdint.h> in<br />
<pre><br />
src/display/sp-canvas.h,<br />
src/livarot/DblLinked.h, <br />
src/livarot/LivarotDefs.h, <br />
src/livarot/AVL.h, <br />
src/livarot/Shape.h, <br />
src/livarot/ShapeUtils.h,<br />
src/livarot/Ligne.h<br />
src/livarot/AlphaLigne.h<br />
src/livarot/BitLigne.h<br />
src/livarot/MyMath.h<br />
</pre><br />
(see<br />
http://www.lns.cornell.edu/public/COMP/info/autoconf/Header-Portability.html)<br />
<br />
<br />
Replace round() with rint() according to<br />
http://news.gw.com/freebsd.gnome/1237 in<br />
</pre><br />
src/object-edit.cpp, <br />
src/spiral-context.cpp<br />
src/star-context.cpp<br />
</pre><br />
<br />
fabsf() was undeclared (I just put in "fabs()", not sure if this is<br />
correct) in <br />
<pre><br />
src/sp-shape.cpp<br />
</pre><br />
(see<br />
http://gcc.gnu.org/ml/java/2001-01/msg00465.html).<br />
<br />
Replaced fabsf(), floorf() and ceilf() with fabs(), floor() and ceil() in<br />
<pre><br />
src/display/nr-arena-shape.cpp<br />
src/display/canvas-bpath.cpp<br />
src/display/sp-ctrlline.cpp<br />
src/libnrtype/nr-rasterfont.cpp<br />
src/livarot/AlphaLigne.cpp<br />
src/livarot/BitLigne.cpp<br />
src/livarot/Ligne.cpp<br />
src/livarot/PathOutline.cpp<br />
src/livarot/ShapeMisc.cpp<br />
</pre><br />
<br />
isfinite() is undeclared, use <br />
<pre><br />
#include <ieeefp.h><br />
</pre><br />
and finite() (see http://devrsrc1.external.hp.com/STKS/impacts/i61.html) in <br />
<pre><br />
src/display/bezier-utils.cpp<br />
</pre><br />
<br />
Need to include <br />
<pre><br />
#include <ieeefp.h><br />
</pre><br />
in<br />
<pre><br />
src/libnr/nr-svp.cpp<br />
</pre><br />
<br />
Missing strcasestr() used in libnrtype/nr-type-directory.cpp. I just <br />
use the internal version for WIN32 given in the file.<br />
<br />
<pre><br />
In file included from /home/foo/Tools/include/X11/extensions/Xrender.h:33,<br />
from /home/foo/Tools/include/X11/Xft/Xft.h:47,<br />
from libnrtype/nr-type-xft.cpp:16:<br />
/usr/openwin/include/X11/Xutil.h:56: warning: ignoring #pragma ident <br />
/usr/openwin/include/X11/Xutil.h:117: error: 'Bool' is used as a type, but is <br />
not defined as a type.<br />
/usr/openwin/include/X11/Xutil.h:120: error: 'Pixmap' is used as a type, but is <br />
not defined as a type.<br />
/usr/openwin/include/X11/Xutil.h:121: error: 'Window' is used as a type, but is <br />
not defined as a type.<br />
[...]<br />
</pre><br />
etc. Fixed this by adding #include <X11/Xlib.h><br />
before including Xft.h in src/libnrtype/nr-type-xft.cpp.<br />
<br />
`bind_textdomain_codeset' undeclared in src/main.cpp and src/inkscape.cpp. Just copied the definition in that <br />
file outside the ifdef.<br />
<br />
`fpresetsticky' undeclared (autoconf seems to have checks for it. Solaris has fpsetsticky() when ieeefp.h is included.)<br />
<br />
No rule for target inkscape.desktop - just created an empty rule.<br />
<br />
DONE! It runs on Solaris! Yay! :)<br />
--Colin Marquardt</div>211.222.247.120https://wiki.inkscape.org/wiki/index.php?title=CompilingYoper&diff=409CompilingYoper2004-09-01T09:17:38Z<p>211.222.247.120: *</p>
<hr />
<div>== <a href="http://Yoper.com">Yoper</a> ==<br />
<br />
This has been tested for Inkscape0.39 on Yoper i686-2.1.0-4:<br />
<br />
# review the <a href="http://www.yoper.com/forum2/index.php?showtopic=800">Guide to Compiling Software from Source</a><br />
# compile <a href="http://prdownloads.sourceforge.net/libsigc/libsigc%2B%2B-1.2.5.tar.gz?download">libsigc++-1.2.5.tar.gz</a><br />
# Run <code>ldconfig</code> as root so the library can be found by the OS<br />
# copy /usr/include/freetype2/freetype to /usr/include/freetype<br />
# compile inkscape!</div>211.222.247.120https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape&diff=525Compiling Inkscape2004-09-01T09:16:13Z<p>211.222.247.120: *</p>
<hr />
<div>Hopefully, Inkscape will compile right out of the box. If it doesn't, well that's what this page is for.<br />
<br />
Jot down notes, questions, findings, tips, etc. here on things you run into. It's a good idea to<br />
make mention of what version of the code you're trying to compile, the distribution you're running,<br />
and other such information that might be pertinent.<br />
<br />
If legitimate bugs are found or patches developed, please move them to the tracker at Sourceforge<br />
rather than inlining them here. <br />
<br />
= OS &amp; Distribution Specific =<br />
* Linux<br />
** CompilingFC2<br />
** CompilingGentoo<br />
** CompilingDebian<br />
** CompilingYellowDog<br />
** CompilingSuse<br />
** CompilingSlackware<br />
** CompilingYoper<br />
* CompilingMacOsX<br />
* Windows [[Win32Port]] [Windows Win32Port]<br />
* CompilingSPARC<br />
* CompilingSunSolaris<br />
<br />
<br />
= Specific Package Problems + Solutions =<br />
<br />
<br />
== GtkMM ==<br />
If you have to compile and install GtkMM from source, you may find an error like this when trying to<br />
compile Inkscape:<br />
<br />
checking for gtk+-2.0 >= 2.0.0 libxml-2.0 >= 2-2.4.24 sigc++-1.2 gtkmm-2.0... Package gtkmm-2.0 was not found in the pkg-config search path.<br />
Perhaps you should add the directory containing `gtkmm-2.0.pc'<br />
to the PKG_CONFIG_PATH environment variable<br />
No package 'gtkmm-2.0' found<br />
<br />
A solution suggested by Ishmal is to set the PKG_CONFIG_PATH variable as so:<br />
<br />
setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/usr/lib/pkgconfig<br />
<br />
<br />
<br />
<br />
== Boehm Garbage Collector Dependency ==<br />
<br />
If your distro does not have a package available (like many don't, ie, Fedora Core 2), then download source from here:<br />
<br />
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.3.tar.gz<br />
<br />
Then configure it with the command:<br />
<br />
$ ./configure --enable-cplusplus<br />
$ make; make install<br />
<br />
<br />
Also, if searching for a package for GC, the name of it is sometimes:<br />
<br />
* gc<br />
* libgc<br />
* libgc-devel<br />
* boehm-gc (on Gentoo)<br />
<br />
<br />
<br />
== OSX ==<br />
<br />
You can run Inkscape by compiling by using Fink. http://fink.sourceforge.net<br />
<br />
It's as simple as: #fink -y install inkscape <br />
<br />
Fink will get all the dependencies and install them.<br />
<br />
<br />
=== Compiling Inkscape under Mac OS X ===<br />
<br />
To get autogen to run I had to perform the following ( Assuming users have fink installed )<br />
<br />
sudo fink install gtk+ ( which installs gtk+ and gtk+2 )<br />
sudo fink install libtool14 ( replacing apple's glibtoolize )<br />
<br />
These entries are all to be put in your ~/.cshrc ( or applicable shell startup )<br />
<br />
setenv ACLOCAL_FLAGS "-I /sw/share/aclocal"<br />
setenv CFLAGS -I/sw/include<br />
<br />
<br />
setenv LDFLAGS -L/sw/lib<br />
setenv CXXFLAGS $CFLAGS<br />
setenv CPPFLAGS $CXXFLAGS<br />
<br />
--<br />
<br />
For a clean 10.3 installation with a brand new Fink, I had to add the following:<br />
<br />
* intltool<br />
* glib2<br />
* glib2-dev<br />
* libpng3<br />
* libart2<br />
* libxml2<br />
* gtk+2<br />
* gtk+2-dev<br />
<br />
In theory you can just list all those on one install command.<br />
-- JonCruz<br />
<br />
Apart from the above env variables I had to set the following variables to compile cvs<br />
(taken right out of fink's .info file). This is in bash syntax, above is tcsh syntax. <br />
(I havent experimented with this list to see whats the minimum required.. but if I dont include any of the following than it breaks.)<br />
<pre><br />
export ACLOCAL_FLAGS="-I /sw/share/aclocal"<br />
export CFLAGS=-I/sw/include<br />
export LDFLAGS=-L/sw/lib<br />
export CXXFLAGS=$CFLAGS<br />
export CPPFLAGS=$CXXFLAGS<br />
export LIBRARY_PATH=/usr/X11R6/lib:/sw/lib<br />
export CPATH=/sw/include<br />
export PATH="/usr/X11R6/bin:"$PATH<br />
export LIBS="-L/sw/lib -lintl "$LIBS<br />
</pre><br />
<br />
Update: There is a problem with rendering cursors on mac due to a gcc bug. At this point fink is maintaining an inkscape package and they are going to use a patch to fix it for 0.38.1 so I recommend fink package. If you are interested in patching yourself, visit tracker item 932944 at https://sourceforge.net/tracker/index.php?func=detail&aid=932944&group_id=93438&atid=604306 .<br />
<br />
-- Spundun<br />
<br />
since gtkmm-2.0 has been added as a requirement, you may need to install it thru darwinports; to use it along whatever you installed with fink prior to that, the flags are:<br />
<br />
<pre><br />
export ACLOCAL_FLAGS="-I /sw/share/aclocal"<br />
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/local/lib/pkgconfig/<br />
export LDFLAGS="-lintl -L/sw/lib -L/opt/local/lib"<br />
export CFLAGS="-I/sw/include -I/opt/local/include"<br />
export CPPFLAGS=$CFLAGS<br />
export CXXFLAGS=$CFLAGS<br />
</pre><br />
<br />
-- yafosf<br />
<br />
If you need to run "./autogen.sh":<br />
<br />
fink install automake1.8 autoconf2.5<br />
<br />
Otherwise:<br />
<br />
fink install �<br />
intltool �<br />
glib2 glib2-dev glib2-shlibs �<br />
gtk+2 gtk+2-shlibs gtk+2-dev �<br />
libpng3 libpng3-shlibs �<br />
libtool14 libtool14-shlibs �<br />
libpng-shlibs �<br />
libsigc++12 libsigc++12-shlibs �<br />
popt popt-shlibs <br />
export CPPFLAGS=-I/sw/include<br />
export LDFLAGS=-L/sw/lib<br />
# Run ./autogen.sh here if things break below...<br />
./configure --prefix=/sw<br />
echo "#define ENABLE_NLS" >> config.h<br />
make<br />
make install<br />
<br />
<br />
-- Kees Cook<br />
<br />
== Linux ==<br />
=== Fedora Core 2 for Inkscape 0.40CVS ===<br />
<br />
After having the most up to date RPMs for FC2 from fedora updates, this is what I found for compiling Inkscape.<br />
<br />
Well...after checking out a clean copy of the inkscape module, autogen.sh will not generate ltmain.sh, so I had to make a softlink to a copy of ltmain.sh, which was located here: /usr/share/libtools/ltmain.sh<br />
<br />
So I ran:<br />
<br />
$ ln -s /usr/share/libtools/ltmain.sh ./<br />
<br />
Then I ran:<br />
<br />
$ ./autogen.sh<br />
<br />
<br />
Then to get all the makefiles, I ran:<br />
<br />
$ ./configure<br />
<br />
Now need to have Boehm Garbage collector installed. Follow the Boehm Garbage Collector instructions above for this to work. After installed, then rerun:<br />
<br />
$ ./configure<br />
<br />
For libsigc++2 currently you must download and install: http://sourceforge.net/project/showfiles.php?group_id=1970<br />
<br />
Now you need gtkmm 2.4 and glibmm 2.4:<br />
<br />
http://ftp.gnome.org/pub/GNOME/sources/glibmm/2.4/<br />
<br />
http://ftp.gnome.org/pub/GNOME/sources/gtkmm/2.4/<br />
<br />
<br />
You need to ./configure; make; make install for libsigc++, glibmm 2.4 and gtkmm 2.4 <br />
<br />
Afterwards update your paths and all that and then run ./autogen.sh; ./configure; make; make install on the CVS version of inkscape...<br />
<br />
<br />
<br />
<br />
=== YELLOWDOG Linux 3.0 ===<br />
<br />
It's pretty straight forward as with most of the current distributions.<br />
<br />
First of all, unpack the latest inkscape.tar.gz:<br><br />
<br />
$ tar zxvf inkscape-0.35-pre0.tar.gz<br />
<br />
Try to ./configure and find out that you need libpng.<br><br />
Next try to understand that although `yum install libpng' says that you have the latest working version for your system, you still cannot get InkScape to compile (the reason is that you need libpng-devel for this.)<br><br />
Since there is no Yellowdog RPMs for libpng-devel, go to http://www.libpng.org/ and download the latest tarball (1.2.5 works fine), ./configure, make, and make install.<br><br />
Go back to your InkScape source directory and re./configure.<br><br />
InkScape will happily compile now!<br><br />
<br />
-- Daniel D�az<br />
<br />
=== Gentoo Linux ===<br />
<br />
If it doesn't build, try installing libtool. If that doesn't work then try<br />
installing the gentoo equivalents of the following Debian packages (from<br />
debian/control, in alphabetical order):<br />
<br />
Build-Depends: automake1.7, debhelper (>= 4.0.0), gettext, intltool,<br />
libart-2.0-dev (>= 2.3.10), libatk1.0-dev, libfreetype6-dev, libgc-dev,<br />
libglib2.0-dev, libgtk2.0-dev (>= 2.0.6-1), libgtkmm-2.4-dev,<br />
libpango1.0-dev, libpng12-dev, libpopt-dev, libsigc++-2.0-dev, libtool,<br />
libxft2-dev, libxml-parser-perl, libxml2-dev (>= 2-2.4.24), pkg-config,<br />
xlibs-dev, zlib1g-dev<br />
<br />
To get the 2.4 version of gtkmm:<br />
<br />
emerge sync<br />
ACCEPT_KEYWORDS="~x86" emerge gtkmm<br />
<br />
==== Gentoo CVS Ebuild ready ! ====<br />
<br />
Hi there,<br />
<br />
This afternoon I decided to make an ebuild for the CVS of inkscape for gentoo users !<br />
<br />
''To use it:''<br />
<br />
* <a href="http://www.inkscape.org/doc/inkscape-1.0.ebuild">Download it</a> (pretty obvious isn't it ? :)<br />
* Copy the file into /usr/portage/media-gfx/inkscape/<br />
* run the command 'emerge inkscape' in root<br />
* Drink a coffee or two<br />
* Enjoy !<br />
<br />
You can improve it and send me back the modifications and I'll update the file.<br />
<br />
I need feedback !<br />
<br />
Here is my jabber id: pol@amessage.de<br><br />
Here is my e-mail : blenderman _at_ tiscali _dot_ be<br />
<br />
Cya<br />
<br />
-Dell'Aiera Pol-<br />
<br />
-- Annotation: You need an installed gtkmm-2.2 (2.4 does not work currently), Dominic<br />
<br />
Note that the Gentoo packagename for the Boehm garbage collector Inkscape requires is boehm-gc.<br />
Unfortunately, this was set up without --enable-cplusplus. You can manually get it to work, though:<br />
See http://www.gentoo.org/doc/en/faq.xml#configure and follow the steps. After installing it this<br />
way, I also had to do `chmod a+rx /usr/include/gc` so Inkscape's ./configure will find the headers<br />
<br />
Also, gentoo includes libsigc++ 2.0.1, but Inkscape requires 2.0.3, so that has to be manually <br />
installed.<br />
<br />
==== Sparc ====<br />
<br />
I didn't change anything. The configure-line used in debian/rules is<br />
CFLAGS="$(CFLAGS)" ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE)<br />
--prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info<br />
This is mainly from dh_make.<br />
<br />
-- Wolfram Quester<br />
<br />
=== Suse 9.0 ===<br />
<br />
One of the challenges with Suse 9.0 is the lack of a distro provided gtkmm2 and libsigc++ packages.<br />
<br />
Best place to find them: ftp://ftp.gwdg.de/pub/linux/misc/apt4rpm/suse/usr-local-bin/9.0/<br />
<br />
Suse 9.1 includes both now in the GNOME supplemental downloads.<br />
<br />
Note that for SuSE the gtk+2 packages are called gtk2. The gtk+2 2.4 package is not provided via Yast but can be found via rpmseek as gtk2 and gtk2-devel<br />
<br />
To find the .pc files, I had to set:<br />
<br />
setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/opt/gnome/lib/pkgconfig/<br />
<br />
In SuSE 9.1 I ran into this error:<br />
<br />
configure.in:25: required file `./ltmain.sh' not found<br />
<br />
Copying /usr/share/libtool/ltmain.sh into the top directory fixed it.<br />
<br />
For 0.40cvs the libgc dependency is added. In SuSE 9.1 this is package 'boehm-gc', but it doesn't work - you need to compile from source. Download from:<br />
<br />
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.3.tar.gz<br />
<br />
Then configure it with the command:<br />
<br />
$ ./configure --enable-cplus-plus<br />
<br />
SuSE 9.1 also does not have libsigc++ 2.0; I couldn't find an rpm for it so ended up having to compile it from source, from http://prdownloads.sourceforge.net/libsigc/libsigc++-2.0.3.tar.gz<br />
<br />
I also had to compile gtkmm 2.4 and glib 2.4 from source; download them from ftp://ftp.gnome.org/pub/GNOME/sources/gtkmm/2.4/ and http://ftp.gnome.org/pub/GNOME/sources/glibmm/2.4/<br />
<br />
Looks like these packages are also available from here:ftp://ftp.gwdg.de/pub/linux/suse/apt/SuSE/9.1-i386/RPMS.gnome/<br />
<br />
Also, stuff got installed to /opt/gnome/bin/, so I had to also<br />
`export PATH=$PATH:/opt/gnome/bin/`<br />
<br />
=== Debian Testing ===<br />
To get things to compile I found I needed the packages libtool, libgtk2.0-dev, libglib2.0-dev and automake1.7 <br />
<br />
=== Slackware 10 ===<br />
Had a problem with the configure script of inkscape not finding my installed libsigc++ setting the system variable as follows did the trick:<br />
<br />
export PKG_CONFIG_PATH /usr/local/lib/pkgconfig<br />
<br />
where the config file sigc++-1.2.pc was installed in /usr/local/lib/pkgconfig/sigc++-1.2.pc which if found using: locate sigc++ |grep pc<br />
<br />
--Luke Munholand<br />
<br />
=== <a href="http://Yoper.com">Yoper</a> ===<br />
<br />
This has been tested for Inkscape0.39 on Yoper i686-2.1.0-4:<br />
<br />
# review the <a href="http://www.yoper.com/forum2/index.php?showtopic=800">Guide to Compiling Software from Source</a><br />
# compile <a href="http://prdownloads.sourceforge.net/libsigc/libsigc%2B%2B-1.2.5.tar.gz?download">libsigc++-1.2.5.tar.gz</a><br />
# Run <code>ldconfig</code> as root so the library can be found by the OS<br />
# copy /usr/include/freetype2/freetype to /usr/include/freetype<br />
# compile inkscape!<br />
<br />
<br />
== Developer Compilation ==<br />
<br />
Plain vanilla compilation is done as documented in INSTALL; ./autogen.sh (optionally); ./configure; make; su && make test; make install (optional). See INSTALL for more on that.<br />
<br />
But if you're going to be doing a lot of development, there's some tricks and techniques you should know,<br />
to get best results.<br />
<br />
# Turn off optimization<br />
# Use ccache for faster compilation<br />
# Set up a separate build directory (nice for testing both gcc and g++, or cross compiling)<br />
# Use the -j N flag to optimize for the number of processors in your machine, with N = 1 + no. proc's<br />
<br />
Example: Setting up both gcc and g++ build environments (in separate tree), and using ccache for faster<br />
compilations on a dual-processor machine, with no optimization, assuming /bin/bash:<br />
<br />
mkdir build-gcc build-g++<br />
cvs checkout inkscape<br />
cd inkscape<br />
libtoolize --copy --force<br />
./autogen.sh<br />
cd ../build-gcc<br />
CFLAGS='-g -O0 -Wall' CC='ccache gcc' ../inkscape/configure<br />
cd ../build-g++<br />
CXXFLAGS='-g -O0 -Wall' CXX='ccache g++' ../inkscape/configure<br />
cd build-gcc && make -j 3<br />
cd build-g++ && make -j 3<br />
<br />
<br />
Turning off just optimization (which can produce strange results in debuggers):<br />
<br />
export CC=g++<br />
export CXXFLAGS='-g -O0 -Wall'<br />
export CFLAGS='-g -O0 -Wall'<br />
./configure<br />
<br />
<br />
== Compiling on Sun Solaris ==<br />
<br />
When trying to compile the CVS snapshot from 2004-05-27 with <br />
gcc 3.3.2 on a <br />
<nowiki>SunOS foo 5.8 Generic_108528-22 sun4u sparc SUNW,Sun-Fire-V240</nowiki><br />
machine, I had to fix a few things.<br />
<br />
First, I installed the following packages:<br />
<pre><br />
autoconf-2.59<br />
automake-1.8.3<br />
intltool-0.30<br />
expat-1.95.7<br />
libpng-1.2.5<br />
libsigc++-2.0.3<br />
glib-2.4.2<br />
glibmm-2.4.2<br />
atk-1.7.0<br />
render-0.8<br />
xrender-0.8.3<br />
xft-2.1.2<br />
pango-1.4.0<br />
gtk+-2.4.2<br />
gtkmm-2.4.2<br />
</pre><br />
<br />
I configured Inkscape with the following switches: <br />
<pre><br />
./configure --prefix=/home/foo/Tools/ --includedir=/home/foo/Tools/include CPPFLAGS=-I/home/foo/Tools/include<br />
</pre><br />
<br />
Then "fix" stuff in the inkscape sources:<br />
<br />
Uncomment "@INTLTOOL_DESKTOP_RULE@" in Makefile.<br />
<br />
Use <inttypes.h>, not <stdint.h> in<br />
<pre><br />
src/display/sp-canvas.h,<br />
src/livarot/DblLinked.h, <br />
src/livarot/LivarotDefs.h, <br />
src/livarot/AVL.h, <br />
src/livarot/Shape.h, <br />
src/livarot/ShapeUtils.h,<br />
src/livarot/Ligne.h<br />
src/livarot/AlphaLigne.h<br />
src/livarot/BitLigne.h<br />
src/livarot/MyMath.h<br />
</pre><br />
(see<br />
http://www.lns.cornell.edu/public/COMP/info/autoconf/Header-Portability.html)<br />
<br />
<br />
Replace round() with rint() according to<br />
http://news.gw.com/freebsd.gnome/1237 in<br />
</pre><br />
src/object-edit.cpp, <br />
src/spiral-context.cpp<br />
src/star-context.cpp<br />
</pre><br />
<br />
fabsf() was undeclared (I just put in "fabs()", not sure if this is<br />
correct) in <br />
<pre><br />
src/sp-shape.cpp<br />
</pre><br />
(see<br />
http://gcc.gnu.org/ml/java/2001-01/msg00465.html).<br />
<br />
Replaced fabsf(), floorf() and ceilf() with fabs(), floor() and ceil() in<br />
<pre><br />
src/display/nr-arena-shape.cpp<br />
src/display/canvas-bpath.cpp<br />
src/display/sp-ctrlline.cpp<br />
src/libnrtype/nr-rasterfont.cpp<br />
src/livarot/AlphaLigne.cpp<br />
src/livarot/BitLigne.cpp<br />
src/livarot/Ligne.cpp<br />
src/livarot/PathOutline.cpp<br />
src/livarot/ShapeMisc.cpp<br />
</pre><br />
<br />
isfinite() is undeclared, use <br />
<pre><br />
#include <ieeefp.h><br />
</pre><br />
and finite() (see http://devrsrc1.external.hp.com/STKS/impacts/i61.html) in <br />
<pre><br />
src/display/bezier-utils.cpp<br />
</pre><br />
<br />
Need to include <br />
<pre><br />
#include <ieeefp.h><br />
</pre><br />
in<br />
<pre><br />
src/libnr/nr-svp.cpp<br />
</pre><br />
<br />
Missing strcasestr() used in libnrtype/nr-type-directory.cpp. I just <br />
use the internal version for WIN32 given in the file.<br />
<br />
<pre><br />
In file included from /home/foo/Tools/include/X11/extensions/Xrender.h:33,<br />
from /home/foo/Tools/include/X11/Xft/Xft.h:47,<br />
from libnrtype/nr-type-xft.cpp:16:<br />
/usr/openwin/include/X11/Xutil.h:56: warning: ignoring #pragma ident <br />
/usr/openwin/include/X11/Xutil.h:117: error: 'Bool' is used as a type, but is <br />
not defined as a type.<br />
/usr/openwin/include/X11/Xutil.h:120: error: 'Pixmap' is used as a type, but is <br />
not defined as a type.<br />
/usr/openwin/include/X11/Xutil.h:121: error: 'Window' is used as a type, but is <br />
not defined as a type.<br />
[...]<br />
</pre><br />
etc. Fixed this by adding #include <X11/Xlib.h><br />
before including Xft.h in src/libnrtype/nr-type-xft.cpp.<br />
<br />
`bind_textdomain_codeset' undeclared in src/main.cpp and src/inkscape.cpp. Just copied the definition in that <br />
file outside the ifdef.<br />
<br />
`fpresetsticky' undeclared (autoconf seems to have checks for it. Solaris has fpsetsticky() when ieeefp.h is included.)<br />
<br />
No rule for target inkscape.desktop - just created an empty rule.<br />
<br />
DONE! It runs on Solaris! Yay! :)<br />
--Colin Marquardt</div>211.222.247.120https://wiki.inkscape.org/wiki/index.php?title=CompilingSlackware&diff=392CompilingSlackware2004-09-01T09:15:29Z<p>211.222.247.120: *</p>
<hr />
<div>== Slackware 10 ==<br />
<br />
Had a problem with the configure script of inkscape not finding my installed libsigc++ setting the system variable as follows did the trick:<br />
<br />
export PKG_CONFIG_PATH /usr/local/lib/pkgconfig<br />
<br />
where the config file sigc++-1.2.pc was installed in /usr/local/lib/pkgconfig/sigc++-1.2.pc which if found using: locate sigc++ |grep pc<br />
<br />
--Luke Munholand</div>211.222.247.120https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape&diff=524Compiling Inkscape2004-09-01T09:15:13Z<p>211.222.247.120: *</p>
<hr />
<div>Hopefully, Inkscape will compile right out of the box. If it doesn't, well that's what this page is for.<br />
<br />
Jot down notes, questions, findings, tips, etc. here on things you run into. It's a good idea to<br />
make mention of what version of the code you're trying to compile, the distribution you're running,<br />
and other such information that might be pertinent.<br />
<br />
If legitimate bugs are found or patches developed, please move them to the tracker at Sourceforge<br />
rather than inlining them here. <br />
<br />
= OS &amp; Distribution Specific =<br />
* Linux<br />
** CompilingFC2<br />
** CompilingGentoo<br />
** CompilingDebian<br />
** CompilingYellowDog<br />
** CompilingSuse<br />
** CompilingSlackware<br />
* CompilingMacOsX<br />
* Windows [[Win32Port]] [Windows Win32Port]<br />
* CompilingSPARC<br />
* CompilingSunSolaris<br />
<br />
<br />
= Specific Package Problems + Solutions =<br />
<br />
<br />
== GtkMM ==<br />
If you have to compile and install GtkMM from source, you may find an error like this when trying to<br />
compile Inkscape:<br />
<br />
checking for gtk+-2.0 >= 2.0.0 libxml-2.0 >= 2-2.4.24 sigc++-1.2 gtkmm-2.0... Package gtkmm-2.0 was not found in the pkg-config search path.<br />
Perhaps you should add the directory containing `gtkmm-2.0.pc'<br />
to the PKG_CONFIG_PATH environment variable<br />
No package 'gtkmm-2.0' found<br />
<br />
A solution suggested by Ishmal is to set the PKG_CONFIG_PATH variable as so:<br />
<br />
setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/usr/lib/pkgconfig<br />
<br />
<br />
<br />
<br />
== Boehm Garbage Collector Dependency ==<br />
<br />
If your distro does not have a package available (like many don't, ie, Fedora Core 2), then download source from here:<br />
<br />
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.3.tar.gz<br />
<br />
Then configure it with the command:<br />
<br />
$ ./configure --enable-cplusplus<br />
$ make; make install<br />
<br />
<br />
Also, if searching for a package for GC, the name of it is sometimes:<br />
<br />
* gc<br />
* libgc<br />
* libgc-devel<br />
* boehm-gc (on Gentoo)<br />
<br />
<br />
<br />
== OSX ==<br />
<br />
You can run Inkscape by compiling by using Fink. http://fink.sourceforge.net<br />
<br />
It's as simple as: #fink -y install inkscape <br />
<br />
Fink will get all the dependencies and install them.<br />
<br />
<br />
=== Compiling Inkscape under Mac OS X ===<br />
<br />
To get autogen to run I had to perform the following ( Assuming users have fink installed )<br />
<br />
sudo fink install gtk+ ( which installs gtk+ and gtk+2 )<br />
sudo fink install libtool14 ( replacing apple's glibtoolize )<br />
<br />
These entries are all to be put in your ~/.cshrc ( or applicable shell startup )<br />
<br />
setenv ACLOCAL_FLAGS "-I /sw/share/aclocal"<br />
setenv CFLAGS -I/sw/include<br />
<br />
<br />
setenv LDFLAGS -L/sw/lib<br />
setenv CXXFLAGS $CFLAGS<br />
setenv CPPFLAGS $CXXFLAGS<br />
<br />
--<br />
<br />
For a clean 10.3 installation with a brand new Fink, I had to add the following:<br />
<br />
* intltool<br />
* glib2<br />
* glib2-dev<br />
* libpng3<br />
* libart2<br />
* libxml2<br />
* gtk+2<br />
* gtk+2-dev<br />
<br />
In theory you can just list all those on one install command.<br />
-- JonCruz<br />
<br />
Apart from the above env variables I had to set the following variables to compile cvs<br />
(taken right out of fink's .info file). This is in bash syntax, above is tcsh syntax. <br />
(I havent experimented with this list to see whats the minimum required.. but if I dont include any of the following than it breaks.)<br />
<pre><br />
export ACLOCAL_FLAGS="-I /sw/share/aclocal"<br />
export CFLAGS=-I/sw/include<br />
export LDFLAGS=-L/sw/lib<br />
export CXXFLAGS=$CFLAGS<br />
export CPPFLAGS=$CXXFLAGS<br />
export LIBRARY_PATH=/usr/X11R6/lib:/sw/lib<br />
export CPATH=/sw/include<br />
export PATH="/usr/X11R6/bin:"$PATH<br />
export LIBS="-L/sw/lib -lintl "$LIBS<br />
</pre><br />
<br />
Update: There is a problem with rendering cursors on mac due to a gcc bug. At this point fink is maintaining an inkscape package and they are going to use a patch to fix it for 0.38.1 so I recommend fink package. If you are interested in patching yourself, visit tracker item 932944 at https://sourceforge.net/tracker/index.php?func=detail&aid=932944&group_id=93438&atid=604306 .<br />
<br />
-- Spundun<br />
<br />
since gtkmm-2.0 has been added as a requirement, you may need to install it thru darwinports; to use it along whatever you installed with fink prior to that, the flags are:<br />
<br />
<pre><br />
export ACLOCAL_FLAGS="-I /sw/share/aclocal"<br />
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/local/lib/pkgconfig/<br />
export LDFLAGS="-lintl -L/sw/lib -L/opt/local/lib"<br />
export CFLAGS="-I/sw/include -I/opt/local/include"<br />
export CPPFLAGS=$CFLAGS<br />
export CXXFLAGS=$CFLAGS<br />
</pre><br />
<br />
-- yafosf<br />
<br />
If you need to run "./autogen.sh":<br />
<br />
fink install automake1.8 autoconf2.5<br />
<br />
Otherwise:<br />
<br />
fink install �<br />
intltool �<br />
glib2 glib2-dev glib2-shlibs �<br />
gtk+2 gtk+2-shlibs gtk+2-dev �<br />
libpng3 libpng3-shlibs �<br />
libtool14 libtool14-shlibs �<br />
libpng-shlibs �<br />
libsigc++12 libsigc++12-shlibs �<br />
popt popt-shlibs <br />
export CPPFLAGS=-I/sw/include<br />
export LDFLAGS=-L/sw/lib<br />
# Run ./autogen.sh here if things break below...<br />
./configure --prefix=/sw<br />
echo "#define ENABLE_NLS" >> config.h<br />
make<br />
make install<br />
<br />
<br />
-- Kees Cook<br />
<br />
== Linux ==<br />
=== Fedora Core 2 for Inkscape 0.40CVS ===<br />
<br />
After having the most up to date RPMs for FC2 from fedora updates, this is what I found for compiling Inkscape.<br />
<br />
Well...after checking out a clean copy of the inkscape module, autogen.sh will not generate ltmain.sh, so I had to make a softlink to a copy of ltmain.sh, which was located here: /usr/share/libtools/ltmain.sh<br />
<br />
So I ran:<br />
<br />
$ ln -s /usr/share/libtools/ltmain.sh ./<br />
<br />
Then I ran:<br />
<br />
$ ./autogen.sh<br />
<br />
<br />
Then to get all the makefiles, I ran:<br />
<br />
$ ./configure<br />
<br />
Now need to have Boehm Garbage collector installed. Follow the Boehm Garbage Collector instructions above for this to work. After installed, then rerun:<br />
<br />
$ ./configure<br />
<br />
For libsigc++2 currently you must download and install: http://sourceforge.net/project/showfiles.php?group_id=1970<br />
<br />
Now you need gtkmm 2.4 and glibmm 2.4:<br />
<br />
http://ftp.gnome.org/pub/GNOME/sources/glibmm/2.4/<br />
<br />
http://ftp.gnome.org/pub/GNOME/sources/gtkmm/2.4/<br />
<br />
<br />
You need to ./configure; make; make install for libsigc++, glibmm 2.4 and gtkmm 2.4 <br />
<br />
Afterwards update your paths and all that and then run ./autogen.sh; ./configure; make; make install on the CVS version of inkscape...<br />
<br />
<br />
<br />
<br />
=== YELLOWDOG Linux 3.0 ===<br />
<br />
It's pretty straight forward as with most of the current distributions.<br />
<br />
First of all, unpack the latest inkscape.tar.gz:<br><br />
<br />
$ tar zxvf inkscape-0.35-pre0.tar.gz<br />
<br />
Try to ./configure and find out that you need libpng.<br><br />
Next try to understand that although `yum install libpng' says that you have the latest working version for your system, you still cannot get InkScape to compile (the reason is that you need libpng-devel for this.)<br><br />
Since there is no Yellowdog RPMs for libpng-devel, go to http://www.libpng.org/ and download the latest tarball (1.2.5 works fine), ./configure, make, and make install.<br><br />
Go back to your InkScape source directory and re./configure.<br><br />
InkScape will happily compile now!<br><br />
<br />
-- Daniel D�az<br />
<br />
=== Gentoo Linux ===<br />
<br />
If it doesn't build, try installing libtool. If that doesn't work then try<br />
installing the gentoo equivalents of the following Debian packages (from<br />
debian/control, in alphabetical order):<br />
<br />
Build-Depends: automake1.7, debhelper (>= 4.0.0), gettext, intltool,<br />
libart-2.0-dev (>= 2.3.10), libatk1.0-dev, libfreetype6-dev, libgc-dev,<br />
libglib2.0-dev, libgtk2.0-dev (>= 2.0.6-1), libgtkmm-2.4-dev,<br />
libpango1.0-dev, libpng12-dev, libpopt-dev, libsigc++-2.0-dev, libtool,<br />
libxft2-dev, libxml-parser-perl, libxml2-dev (>= 2-2.4.24), pkg-config,<br />
xlibs-dev, zlib1g-dev<br />
<br />
To get the 2.4 version of gtkmm:<br />
<br />
emerge sync<br />
ACCEPT_KEYWORDS="~x86" emerge gtkmm<br />
<br />
==== Gentoo CVS Ebuild ready ! ====<br />
<br />
Hi there,<br />
<br />
This afternoon I decided to make an ebuild for the CVS of inkscape for gentoo users !<br />
<br />
''To use it:''<br />
<br />
* <a href="http://www.inkscape.org/doc/inkscape-1.0.ebuild">Download it</a> (pretty obvious isn't it ? :)<br />
* Copy the file into /usr/portage/media-gfx/inkscape/<br />
* run the command 'emerge inkscape' in root<br />
* Drink a coffee or two<br />
* Enjoy !<br />
<br />
You can improve it and send me back the modifications and I'll update the file.<br />
<br />
I need feedback !<br />
<br />
Here is my jabber id: pol@amessage.de<br><br />
Here is my e-mail : blenderman _at_ tiscali _dot_ be<br />
<br />
Cya<br />
<br />
-Dell'Aiera Pol-<br />
<br />
-- Annotation: You need an installed gtkmm-2.2 (2.4 does not work currently), Dominic<br />
<br />
Note that the Gentoo packagename for the Boehm garbage collector Inkscape requires is boehm-gc.<br />
Unfortunately, this was set up without --enable-cplusplus. You can manually get it to work, though:<br />
See http://www.gentoo.org/doc/en/faq.xml#configure and follow the steps. After installing it this<br />
way, I also had to do `chmod a+rx /usr/include/gc` so Inkscape's ./configure will find the headers<br />
<br />
Also, gentoo includes libsigc++ 2.0.1, but Inkscape requires 2.0.3, so that has to be manually <br />
installed.<br />
<br />
==== Sparc ====<br />
<br />
I didn't change anything. The configure-line used in debian/rules is<br />
CFLAGS="$(CFLAGS)" ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE)<br />
--prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info<br />
This is mainly from dh_make.<br />
<br />
-- Wolfram Quester<br />
<br />
=== Suse 9.0 ===<br />
<br />
One of the challenges with Suse 9.0 is the lack of a distro provided gtkmm2 and libsigc++ packages.<br />
<br />
Best place to find them: ftp://ftp.gwdg.de/pub/linux/misc/apt4rpm/suse/usr-local-bin/9.0/<br />
<br />
Suse 9.1 includes both now in the GNOME supplemental downloads.<br />
<br />
Note that for SuSE the gtk+2 packages are called gtk2. The gtk+2 2.4 package is not provided via Yast but can be found via rpmseek as gtk2 and gtk2-devel<br />
<br />
To find the .pc files, I had to set:<br />
<br />
setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/opt/gnome/lib/pkgconfig/<br />
<br />
In SuSE 9.1 I ran into this error:<br />
<br />
configure.in:25: required file `./ltmain.sh' not found<br />
<br />
Copying /usr/share/libtool/ltmain.sh into the top directory fixed it.<br />
<br />
For 0.40cvs the libgc dependency is added. In SuSE 9.1 this is package 'boehm-gc', but it doesn't work - you need to compile from source. Download from:<br />
<br />
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.3.tar.gz<br />
<br />
Then configure it with the command:<br />
<br />
$ ./configure --enable-cplus-plus<br />
<br />
SuSE 9.1 also does not have libsigc++ 2.0; I couldn't find an rpm for it so ended up having to compile it from source, from http://prdownloads.sourceforge.net/libsigc/libsigc++-2.0.3.tar.gz<br />
<br />
I also had to compile gtkmm 2.4 and glib 2.4 from source; download them from ftp://ftp.gnome.org/pub/GNOME/sources/gtkmm/2.4/ and http://ftp.gnome.org/pub/GNOME/sources/glibmm/2.4/<br />
<br />
Looks like these packages are also available from here:ftp://ftp.gwdg.de/pub/linux/suse/apt/SuSE/9.1-i386/RPMS.gnome/<br />
<br />
Also, stuff got installed to /opt/gnome/bin/, so I had to also<br />
`export PATH=$PATH:/opt/gnome/bin/`<br />
<br />
=== Debian Testing ===<br />
To get things to compile I found I needed the packages libtool, libgtk2.0-dev, libglib2.0-dev and automake1.7 <br />
<br />
=== Slackware 10 ===<br />
Had a problem with the configure script of inkscape not finding my installed libsigc++ setting the system variable as follows did the trick:<br />
<br />
export PKG_CONFIG_PATH /usr/local/lib/pkgconfig<br />
<br />
where the config file sigc++-1.2.pc was installed in /usr/local/lib/pkgconfig/sigc++-1.2.pc which if found using: locate sigc++ |grep pc<br />
<br />
--Luke Munholand<br />
<br />
=== <a href="http://Yoper.com">Yoper</a> ===<br />
<br />
This has been tested for Inkscape0.39 on Yoper i686-2.1.0-4:<br />
<br />
# review the <a href="http://www.yoper.com/forum2/index.php?showtopic=800">Guide to Compiling Software from Source</a><br />
# compile <a href="http://prdownloads.sourceforge.net/libsigc/libsigc%2B%2B-1.2.5.tar.gz?download">libsigc++-1.2.5.tar.gz</a><br />
# Run <code>ldconfig</code> as root so the library can be found by the OS<br />
# copy /usr/include/freetype2/freetype to /usr/include/freetype<br />
# compile inkscape!<br />
<br />
<br />
== Developer Compilation ==<br />
<br />
Plain vanilla compilation is done as documented in INSTALL; ./autogen.sh (optionally); ./configure; make; su && make test; make install (optional). See INSTALL for more on that.<br />
<br />
But if you're going to be doing a lot of development, there's some tricks and techniques you should know,<br />
to get best results.<br />
<br />
# Turn off optimization<br />
# Use ccache for faster compilation<br />
# Set up a separate build directory (nice for testing both gcc and g++, or cross compiling)<br />
# Use the -j N flag to optimize for the number of processors in your machine, with N = 1 + no. proc's<br />
<br />
Example: Setting up both gcc and g++ build environments (in separate tree), and using ccache for faster<br />
compilations on a dual-processor machine, with no optimization, assuming /bin/bash:<br />
<br />
mkdir build-gcc build-g++<br />
cvs checkout inkscape<br />
cd inkscape<br />
libtoolize --copy --force<br />
./autogen.sh<br />
cd ../build-gcc<br />
CFLAGS='-g -O0 -Wall' CC='ccache gcc' ../inkscape/configure<br />
cd ../build-g++<br />
CXXFLAGS='-g -O0 -Wall' CXX='ccache g++' ../inkscape/configure<br />
cd build-gcc && make -j 3<br />
cd build-g++ && make -j 3<br />
<br />
<br />
Turning off just optimization (which can produce strange results in debuggers):<br />
<br />
export CC=g++<br />
export CXXFLAGS='-g -O0 -Wall'<br />
export CFLAGS='-g -O0 -Wall'<br />
./configure<br />
<br />
<br />
== Compiling on Sun Solaris ==<br />
<br />
When trying to compile the CVS snapshot from 2004-05-27 with <br />
gcc 3.3.2 on a <br />
<nowiki>SunOS foo 5.8 Generic_108528-22 sun4u sparc SUNW,Sun-Fire-V240</nowiki><br />
machine, I had to fix a few things.<br />
<br />
First, I installed the following packages:<br />
<pre><br />
autoconf-2.59<br />
automake-1.8.3<br />
intltool-0.30<br />
expat-1.95.7<br />
libpng-1.2.5<br />
libsigc++-2.0.3<br />
glib-2.4.2<br />
glibmm-2.4.2<br />
atk-1.7.0<br />
render-0.8<br />
xrender-0.8.3<br />
xft-2.1.2<br />
pango-1.4.0<br />
gtk+-2.4.2<br />
gtkmm-2.4.2<br />
</pre><br />
<br />
I configured Inkscape with the following switches: <br />
<pre><br />
./configure --prefix=/home/foo/Tools/ --includedir=/home/foo/Tools/include CPPFLAGS=-I/home/foo/Tools/include<br />
</pre><br />
<br />
Then "fix" stuff in the inkscape sources:<br />
<br />
Uncomment "@INTLTOOL_DESKTOP_RULE@" in Makefile.<br />
<br />
Use <inttypes.h>, not <stdint.h> in<br />
<pre><br />
src/display/sp-canvas.h,<br />
src/livarot/DblLinked.h, <br />
src/livarot/LivarotDefs.h, <br />
src/livarot/AVL.h, <br />
src/livarot/Shape.h, <br />
src/livarot/ShapeUtils.h,<br />
src/livarot/Ligne.h<br />
src/livarot/AlphaLigne.h<br />
src/livarot/BitLigne.h<br />
src/livarot/MyMath.h<br />
</pre><br />
(see<br />
http://www.lns.cornell.edu/public/COMP/info/autoconf/Header-Portability.html)<br />
<br />
<br />
Replace round() with rint() according to<br />
http://news.gw.com/freebsd.gnome/1237 in<br />
</pre><br />
src/object-edit.cpp, <br />
src/spiral-context.cpp<br />
src/star-context.cpp<br />
</pre><br />
<br />
fabsf() was undeclared (I just put in "fabs()", not sure if this is<br />
correct) in <br />
<pre><br />
src/sp-shape.cpp<br />
</pre><br />
(see<br />
http://gcc.gnu.org/ml/java/2001-01/msg00465.html).<br />
<br />
Replaced fabsf(), floorf() and ceilf() with fabs(), floor() and ceil() in<br />
<pre><br />
src/display/nr-arena-shape.cpp<br />
src/display/canvas-bpath.cpp<br />
src/display/sp-ctrlline.cpp<br />
src/libnrtype/nr-rasterfont.cpp<br />
src/livarot/AlphaLigne.cpp<br />
src/livarot/BitLigne.cpp<br />
src/livarot/Ligne.cpp<br />
src/livarot/PathOutline.cpp<br />
src/livarot/ShapeMisc.cpp<br />
</pre><br />
<br />
isfinite() is undeclared, use <br />
<pre><br />
#include <ieeefp.h><br />
</pre><br />
and finite() (see http://devrsrc1.external.hp.com/STKS/impacts/i61.html) in <br />
<pre><br />
src/display/bezier-utils.cpp<br />
</pre><br />
<br />
Need to include <br />
<pre><br />
#include <ieeefp.h><br />
</pre><br />
in<br />
<pre><br />
src/libnr/nr-svp.cpp<br />
</pre><br />
<br />
Missing strcasestr() used in libnrtype/nr-type-directory.cpp. I just <br />
use the internal version for WIN32 given in the file.<br />
<br />
<pre><br />
In file included from /home/foo/Tools/include/X11/extensions/Xrender.h:33,<br />
from /home/foo/Tools/include/X11/Xft/Xft.h:47,<br />
from libnrtype/nr-type-xft.cpp:16:<br />
/usr/openwin/include/X11/Xutil.h:56: warning: ignoring #pragma ident <br />
/usr/openwin/include/X11/Xutil.h:117: error: 'Bool' is used as a type, but is <br />
not defined as a type.<br />
/usr/openwin/include/X11/Xutil.h:120: error: 'Pixmap' is used as a type, but is <br />
not defined as a type.<br />
/usr/openwin/include/X11/Xutil.h:121: error: 'Window' is used as a type, but is <br />
not defined as a type.<br />
[...]<br />
</pre><br />
etc. Fixed this by adding #include <X11/Xlib.h><br />
before including Xft.h in src/libnrtype/nr-type-xft.cpp.<br />
<br />
`bind_textdomain_codeset' undeclared in src/main.cpp and src/inkscape.cpp. Just copied the definition in that <br />
file outside the ifdef.<br />
<br />
`fpresetsticky' undeclared (autoconf seems to have checks for it. Solaris has fpsetsticky() when ieeefp.h is included.)<br />
<br />
No rule for target inkscape.desktop - just created an empty rule.<br />
<br />
DONE! It runs on Solaris! Yay! :)<br />
--Colin Marquardt</div>211.222.247.120https://wiki.inkscape.org/wiki/index.php?title=CompilingDebian&diff=916CompilingDebian2004-09-01T09:14:42Z<p>211.222.247.120: *</p>
<hr />
<div>== Debian Testing ==<br />
<br />
To get things to compile I found I needed the packages libtool, libgtk2.0-dev, libglib2.0-dev and automake1.7</div>211.222.247.120https://wiki.inkscape.org/wiki/index.php?title=CompilingSuse&diff=824CompilingSuse2004-09-01T09:14:13Z<p>211.222.247.120: *</p>
<hr />
<div>== Suse 9.0 ==<br />
<br />
One of the challenges with Suse 9.0 is the lack of a distro provided gtkmm2 and libsigc++ packages.<br />
<br />
Best place to find them: ftp://ftp.gwdg.de/pub/linux/misc/apt4rpm/suse/usr-local-bin/9.0/<br />
<br />
Suse 9.1 includes both now in the GNOME supplemental downloads.<br />
<br />
Note that for SuSE the gtk+2 packages are called gtk2. The gtk+2 2.4 package is not provided via Yast but can be found via rpmseek as gtk2 and gtk2-devel<br />
<br />
To find the .pc files, I had to set:<br />
<br />
setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/opt/gnome/lib/pkgconfig/<br />
<br />
In SuSE 9.1 I ran into this error:<br />
<br />
configure.in:25: required file `./ltmain.sh' not found<br />
<br />
Copying /usr/share/libtool/ltmain.sh into the top directory fixed it.<br />
<br />
For 0.40cvs the libgc dependency is added. In SuSE 9.1 this is package 'boehm-gc', but it doesn't work - you need to compile from source. Download from:<br />
<br />
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.3.tar.gz<br />
<br />
Then configure it with the command:<br />
<br />
$ ./configure --enable-cplus-plus<br />
<br />
SuSE 9.1 also does not have libsigc++ 2.0; I couldn't find an rpm for it so ended up having to compile it from source, from http://prdownloads.sourceforge.net/libsigc/libsigc++-2.0.3.tar.gz<br />
<br />
I also had to compile gtkmm 2.4 and glib 2.4 from source; download them from ftp://ftp.gnome.org/pub/GNOME/sources/gtkmm/2.4/ and http://ftp.gnome.org/pub/GNOME/sources/glibmm/2.4/<br />
<br />
Looks like these packages are also available from here:ftp://ftp.gwdg.de/pub/linux/suse/apt/SuSE/9.1-i386/RPMS.gnome/<br />
<br />
Also, stuff got installed to /opt/gnome/bin/, so I had to also<br />
`export PATH=$PATH:/opt/gnome/bin/`</div>211.222.247.120https://wiki.inkscape.org/wiki/index.php?title=CompilingSPARC&diff=383CompilingSPARC2004-09-01T09:13:33Z<p>211.222.247.120: *</p>
<hr />
<div>== Sparc ==<br />
<br />
I didn't change anything. The configure-line used in debian/rules is<br />
CFLAGS="$(CFLAGS)" ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE)<br />
--prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info<br />
This is mainly from dh_make.<br />
<br />
-- Wolfram Quester</div>211.222.247.120https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape&diff=523Compiling Inkscape2004-09-01T09:13:07Z<p>211.222.247.120: *</p>
<hr />
<div>Hopefully, Inkscape will compile right out of the box. If it doesn't, well that's what this page is for.<br />
<br />
Jot down notes, questions, findings, tips, etc. here on things you run into. It's a good idea to<br />
make mention of what version of the code you're trying to compile, the distribution you're running,<br />
and other such information that might be pertinent.<br />
<br />
If legitimate bugs are found or patches developed, please move them to the tracker at Sourceforge<br />
rather than inlining them here. <br />
<br />
= OS &amp; Distribution Specific =<br />
* Linux<br />
** CompilingFC2<br />
** CompilingGentoo<br />
** CompilingDebian<br />
** CompilingYellowDog<br />
** CompilingSuse<br />
* CompilingMacOsX<br />
* Windows [[Win32Port]] [Windows Win32Port]<br />
* CompilingSPARC<br />
* CompilingSunSolaris<br />
<br />
<br />
= Specific Package Problems + Solutions =<br />
<br />
<br />
== GtkMM ==<br />
If you have to compile and install GtkMM from source, you may find an error like this when trying to<br />
compile Inkscape:<br />
<br />
checking for gtk+-2.0 >= 2.0.0 libxml-2.0 >= 2-2.4.24 sigc++-1.2 gtkmm-2.0... Package gtkmm-2.0 was not found in the pkg-config search path.<br />
Perhaps you should add the directory containing `gtkmm-2.0.pc'<br />
to the PKG_CONFIG_PATH environment variable<br />
No package 'gtkmm-2.0' found<br />
<br />
A solution suggested by Ishmal is to set the PKG_CONFIG_PATH variable as so:<br />
<br />
setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/usr/lib/pkgconfig<br />
<br />
<br />
<br />
<br />
== Boehm Garbage Collector Dependency ==<br />
<br />
If your distro does not have a package available (like many don't, ie, Fedora Core 2), then download source from here:<br />
<br />
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.3.tar.gz<br />
<br />
Then configure it with the command:<br />
<br />
$ ./configure --enable-cplusplus<br />
$ make; make install<br />
<br />
<br />
Also, if searching for a package for GC, the name of it is sometimes:<br />
<br />
* gc<br />
* libgc<br />
* libgc-devel<br />
* boehm-gc (on Gentoo)<br />
<br />
<br />
<br />
== OSX ==<br />
<br />
You can run Inkscape by compiling by using Fink. http://fink.sourceforge.net<br />
<br />
It's as simple as: #fink -y install inkscape <br />
<br />
Fink will get all the dependencies and install them.<br />
<br />
<br />
=== Compiling Inkscape under Mac OS X ===<br />
<br />
To get autogen to run I had to perform the following ( Assuming users have fink installed )<br />
<br />
sudo fink install gtk+ ( which installs gtk+ and gtk+2 )<br />
sudo fink install libtool14 ( replacing apple's glibtoolize )<br />
<br />
These entries are all to be put in your ~/.cshrc ( or applicable shell startup )<br />
<br />
setenv ACLOCAL_FLAGS "-I /sw/share/aclocal"<br />
setenv CFLAGS -I/sw/include<br />
<br />
<br />
setenv LDFLAGS -L/sw/lib<br />
setenv CXXFLAGS $CFLAGS<br />
setenv CPPFLAGS $CXXFLAGS<br />
<br />
--<br />
<br />
For a clean 10.3 installation with a brand new Fink, I had to add the following:<br />
<br />
* intltool<br />
* glib2<br />
* glib2-dev<br />
* libpng3<br />
* libart2<br />
* libxml2<br />
* gtk+2<br />
* gtk+2-dev<br />
<br />
In theory you can just list all those on one install command.<br />
-- JonCruz<br />
<br />
Apart from the above env variables I had to set the following variables to compile cvs<br />
(taken right out of fink's .info file). This is in bash syntax, above is tcsh syntax. <br />
(I havent experimented with this list to see whats the minimum required.. but if I dont include any of the following than it breaks.)<br />
<pre><br />
export ACLOCAL_FLAGS="-I /sw/share/aclocal"<br />
export CFLAGS=-I/sw/include<br />
export LDFLAGS=-L/sw/lib<br />
export CXXFLAGS=$CFLAGS<br />
export CPPFLAGS=$CXXFLAGS<br />
export LIBRARY_PATH=/usr/X11R6/lib:/sw/lib<br />
export CPATH=/sw/include<br />
export PATH="/usr/X11R6/bin:"$PATH<br />
export LIBS="-L/sw/lib -lintl "$LIBS<br />
</pre><br />
<br />
Update: There is a problem with rendering cursors on mac due to a gcc bug. At this point fink is maintaining an inkscape package and they are going to use a patch to fix it for 0.38.1 so I recommend fink package. If you are interested in patching yourself, visit tracker item 932944 at https://sourceforge.net/tracker/index.php?func=detail&aid=932944&group_id=93438&atid=604306 .<br />
<br />
-- Spundun<br />
<br />
since gtkmm-2.0 has been added as a requirement, you may need to install it thru darwinports; to use it along whatever you installed with fink prior to that, the flags are:<br />
<br />
<pre><br />
export ACLOCAL_FLAGS="-I /sw/share/aclocal"<br />
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/local/lib/pkgconfig/<br />
export LDFLAGS="-lintl -L/sw/lib -L/opt/local/lib"<br />
export CFLAGS="-I/sw/include -I/opt/local/include"<br />
export CPPFLAGS=$CFLAGS<br />
export CXXFLAGS=$CFLAGS<br />
</pre><br />
<br />
-- yafosf<br />
<br />
If you need to run "./autogen.sh":<br />
<br />
fink install automake1.8 autoconf2.5<br />
<br />
Otherwise:<br />
<br />
fink install �<br />
intltool �<br />
glib2 glib2-dev glib2-shlibs �<br />
gtk+2 gtk+2-shlibs gtk+2-dev �<br />
libpng3 libpng3-shlibs �<br />
libtool14 libtool14-shlibs �<br />
libpng-shlibs �<br />
libsigc++12 libsigc++12-shlibs �<br />
popt popt-shlibs <br />
export CPPFLAGS=-I/sw/include<br />
export LDFLAGS=-L/sw/lib<br />
# Run ./autogen.sh here if things break below...<br />
./configure --prefix=/sw<br />
echo "#define ENABLE_NLS" >> config.h<br />
make<br />
make install<br />
<br />
<br />
-- Kees Cook<br />
<br />
== Linux ==<br />
=== Fedora Core 2 for Inkscape 0.40CVS ===<br />
<br />
After having the most up to date RPMs for FC2 from fedora updates, this is what I found for compiling Inkscape.<br />
<br />
Well...after checking out a clean copy of the inkscape module, autogen.sh will not generate ltmain.sh, so I had to make a softlink to a copy of ltmain.sh, which was located here: /usr/share/libtools/ltmain.sh<br />
<br />
So I ran:<br />
<br />
$ ln -s /usr/share/libtools/ltmain.sh ./<br />
<br />
Then I ran:<br />
<br />
$ ./autogen.sh<br />
<br />
<br />
Then to get all the makefiles, I ran:<br />
<br />
$ ./configure<br />
<br />
Now need to have Boehm Garbage collector installed. Follow the Boehm Garbage Collector instructions above for this to work. After installed, then rerun:<br />
<br />
$ ./configure<br />
<br />
For libsigc++2 currently you must download and install: http://sourceforge.net/project/showfiles.php?group_id=1970<br />
<br />
Now you need gtkmm 2.4 and glibmm 2.4:<br />
<br />
http://ftp.gnome.org/pub/GNOME/sources/glibmm/2.4/<br />
<br />
http://ftp.gnome.org/pub/GNOME/sources/gtkmm/2.4/<br />
<br />
<br />
You need to ./configure; make; make install for libsigc++, glibmm 2.4 and gtkmm 2.4 <br />
<br />
Afterwards update your paths and all that and then run ./autogen.sh; ./configure; make; make install on the CVS version of inkscape...<br />
<br />
<br />
<br />
<br />
=== YELLOWDOG Linux 3.0 ===<br />
<br />
It's pretty straight forward as with most of the current distributions.<br />
<br />
First of all, unpack the latest inkscape.tar.gz:<br><br />
<br />
$ tar zxvf inkscape-0.35-pre0.tar.gz<br />
<br />
Try to ./configure and find out that you need libpng.<br><br />
Next try to understand that although `yum install libpng' says that you have the latest working version for your system, you still cannot get InkScape to compile (the reason is that you need libpng-devel for this.)<br><br />
Since there is no Yellowdog RPMs for libpng-devel, go to http://www.libpng.org/ and download the latest tarball (1.2.5 works fine), ./configure, make, and make install.<br><br />
Go back to your InkScape source directory and re./configure.<br><br />
InkScape will happily compile now!<br><br />
<br />
-- Daniel D�az<br />
<br />
=== Gentoo Linux ===<br />
<br />
If it doesn't build, try installing libtool. If that doesn't work then try<br />
installing the gentoo equivalents of the following Debian packages (from<br />
debian/control, in alphabetical order):<br />
<br />
Build-Depends: automake1.7, debhelper (>= 4.0.0), gettext, intltool,<br />
libart-2.0-dev (>= 2.3.10), libatk1.0-dev, libfreetype6-dev, libgc-dev,<br />
libglib2.0-dev, libgtk2.0-dev (>= 2.0.6-1), libgtkmm-2.4-dev,<br />
libpango1.0-dev, libpng12-dev, libpopt-dev, libsigc++-2.0-dev, libtool,<br />
libxft2-dev, libxml-parser-perl, libxml2-dev (>= 2-2.4.24), pkg-config,<br />
xlibs-dev, zlib1g-dev<br />
<br />
To get the 2.4 version of gtkmm:<br />
<br />
emerge sync<br />
ACCEPT_KEYWORDS="~x86" emerge gtkmm<br />
<br />
==== Gentoo CVS Ebuild ready ! ====<br />
<br />
Hi there,<br />
<br />
This afternoon I decided to make an ebuild for the CVS of inkscape for gentoo users !<br />
<br />
''To use it:''<br />
<br />
* <a href="http://www.inkscape.org/doc/inkscape-1.0.ebuild">Download it</a> (pretty obvious isn't it ? :)<br />
* Copy the file into /usr/portage/media-gfx/inkscape/<br />
* run the command 'emerge inkscape' in root<br />
* Drink a coffee or two<br />
* Enjoy !<br />
<br />
You can improve it and send me back the modifications and I'll update the file.<br />
<br />
I need feedback !<br />
<br />
Here is my jabber id: pol@amessage.de<br><br />
Here is my e-mail : blenderman _at_ tiscali _dot_ be<br />
<br />
Cya<br />
<br />
-Dell'Aiera Pol-<br />
<br />
-- Annotation: You need an installed gtkmm-2.2 (2.4 does not work currently), Dominic<br />
<br />
Note that the Gentoo packagename for the Boehm garbage collector Inkscape requires is boehm-gc.<br />
Unfortunately, this was set up without --enable-cplusplus. You can manually get it to work, though:<br />
See http://www.gentoo.org/doc/en/faq.xml#configure and follow the steps. After installing it this<br />
way, I also had to do `chmod a+rx /usr/include/gc` so Inkscape's ./configure will find the headers<br />
<br />
Also, gentoo includes libsigc++ 2.0.1, but Inkscape requires 2.0.3, so that has to be manually <br />
installed.<br />
<br />
==== Sparc ====<br />
<br />
I didn't change anything. The configure-line used in debian/rules is<br />
CFLAGS="$(CFLAGS)" ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE)<br />
--prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info<br />
This is mainly from dh_make.<br />
<br />
-- Wolfram Quester<br />
<br />
=== Suse 9.0 ===<br />
<br />
One of the challenges with Suse 9.0 is the lack of a distro provided gtkmm2 and libsigc++ packages.<br />
<br />
Best place to find them: ftp://ftp.gwdg.de/pub/linux/misc/apt4rpm/suse/usr-local-bin/9.0/<br />
<br />
Suse 9.1 includes both now in the GNOME supplemental downloads.<br />
<br />
Note that for SuSE the gtk+2 packages are called gtk2. The gtk+2 2.4 package is not provided via Yast but can be found via rpmseek as gtk2 and gtk2-devel<br />
<br />
To find the .pc files, I had to set:<br />
<br />
setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/opt/gnome/lib/pkgconfig/<br />
<br />
In SuSE 9.1 I ran into this error:<br />
<br />
configure.in:25: required file `./ltmain.sh' not found<br />
<br />
Copying /usr/share/libtool/ltmain.sh into the top directory fixed it.<br />
<br />
For 0.40cvs the libgc dependency is added. In SuSE 9.1 this is package 'boehm-gc', but it doesn't work - you need to compile from source. Download from:<br />
<br />
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.3.tar.gz<br />
<br />
Then configure it with the command:<br />
<br />
$ ./configure --enable-cplus-plus<br />
<br />
SuSE 9.1 also does not have libsigc++ 2.0; I couldn't find an rpm for it so ended up having to compile it from source, from http://prdownloads.sourceforge.net/libsigc/libsigc++-2.0.3.tar.gz<br />
<br />
I also had to compile gtkmm 2.4 and glib 2.4 from source; download them from ftp://ftp.gnome.org/pub/GNOME/sources/gtkmm/2.4/ and http://ftp.gnome.org/pub/GNOME/sources/glibmm/2.4/<br />
<br />
Looks like these packages are also available from here:ftp://ftp.gwdg.de/pub/linux/suse/apt/SuSE/9.1-i386/RPMS.gnome/<br />
<br />
Also, stuff got installed to /opt/gnome/bin/, so I had to also<br />
`export PATH=$PATH:/opt/gnome/bin/`<br />
<br />
=== Debian Testing ===<br />
To get things to compile I found I needed the packages libtool, libgtk2.0-dev, libglib2.0-dev and automake1.7 <br />
<br />
=== Slackware 10 ===<br />
Had a problem with the configure script of inkscape not finding my installed libsigc++ setting the system variable as follows did the trick:<br />
<br />
export PKG_CONFIG_PATH /usr/local/lib/pkgconfig<br />
<br />
where the config file sigc++-1.2.pc was installed in /usr/local/lib/pkgconfig/sigc++-1.2.pc which if found using: locate sigc++ |grep pc<br />
<br />
--Luke Munholand<br />
<br />
=== <a href="http://Yoper.com">Yoper</a> ===<br />
<br />
This has been tested for Inkscape0.39 on Yoper i686-2.1.0-4:<br />
<br />
# review the <a href="http://www.yoper.com/forum2/index.php?showtopic=800">Guide to Compiling Software from Source</a><br />
# compile <a href="http://prdownloads.sourceforge.net/libsigc/libsigc%2B%2B-1.2.5.tar.gz?download">libsigc++-1.2.5.tar.gz</a><br />
# Run <code>ldconfig</code> as root so the library can be found by the OS<br />
# copy /usr/include/freetype2/freetype to /usr/include/freetype<br />
# compile inkscape!<br />
<br />
<br />
== Developer Compilation ==<br />
<br />
Plain vanilla compilation is done as documented in INSTALL; ./autogen.sh (optionally); ./configure; make; su && make test; make install (optional). See INSTALL for more on that.<br />
<br />
But if you're going to be doing a lot of development, there's some tricks and techniques you should know,<br />
to get best results.<br />
<br />
# Turn off optimization<br />
# Use ccache for faster compilation<br />
# Set up a separate build directory (nice for testing both gcc and g++, or cross compiling)<br />
# Use the -j N flag to optimize for the number of processors in your machine, with N = 1 + no. proc's<br />
<br />
Example: Setting up both gcc and g++ build environments (in separate tree), and using ccache for faster<br />
compilations on a dual-processor machine, with no optimization, assuming /bin/bash:<br />
<br />
mkdir build-gcc build-g++<br />
cvs checkout inkscape<br />
cd inkscape<br />
libtoolize --copy --force<br />
./autogen.sh<br />
cd ../build-gcc<br />
CFLAGS='-g -O0 -Wall' CC='ccache gcc' ../inkscape/configure<br />
cd ../build-g++<br />
CXXFLAGS='-g -O0 -Wall' CXX='ccache g++' ../inkscape/configure<br />
cd build-gcc && make -j 3<br />
cd build-g++ && make -j 3<br />
<br />
<br />
Turning off just optimization (which can produce strange results in debuggers):<br />
<br />
export CC=g++<br />
export CXXFLAGS='-g -O0 -Wall'<br />
export CFLAGS='-g -O0 -Wall'<br />
./configure<br />
<br />
<br />
== Compiling on Sun Solaris ==<br />
<br />
When trying to compile the CVS snapshot from 2004-05-27 with <br />
gcc 3.3.2 on a <br />
<nowiki>SunOS foo 5.8 Generic_108528-22 sun4u sparc SUNW,Sun-Fire-V240</nowiki><br />
machine, I had to fix a few things.<br />
<br />
First, I installed the following packages:<br />
<pre><br />
autoconf-2.59<br />
automake-1.8.3<br />
intltool-0.30<br />
expat-1.95.7<br />
libpng-1.2.5<br />
libsigc++-2.0.3<br />
glib-2.4.2<br />
glibmm-2.4.2<br />
atk-1.7.0<br />
render-0.8<br />
xrender-0.8.3<br />
xft-2.1.2<br />
pango-1.4.0<br />
gtk+-2.4.2<br />
gtkmm-2.4.2<br />
</pre><br />
<br />
I configured Inkscape with the following switches: <br />
<pre><br />
./configure --prefix=/home/foo/Tools/ --includedir=/home/foo/Tools/include CPPFLAGS=-I/home/foo/Tools/include<br />
</pre><br />
<br />
Then "fix" stuff in the inkscape sources:<br />
<br />
Uncomment "@INTLTOOL_DESKTOP_RULE@" in Makefile.<br />
<br />
Use <inttypes.h>, not <stdint.h> in<br />
<pre><br />
src/display/sp-canvas.h,<br />
src/livarot/DblLinked.h, <br />
src/livarot/LivarotDefs.h, <br />
src/livarot/AVL.h, <br />
src/livarot/Shape.h, <br />
src/livarot/ShapeUtils.h,<br />
src/livarot/Ligne.h<br />
src/livarot/AlphaLigne.h<br />
src/livarot/BitLigne.h<br />
src/livarot/MyMath.h<br />
</pre><br />
(see<br />
http://www.lns.cornell.edu/public/COMP/info/autoconf/Header-Portability.html)<br />
<br />
<br />
Replace round() with rint() according to<br />
http://news.gw.com/freebsd.gnome/1237 in<br />
</pre><br />
src/object-edit.cpp, <br />
src/spiral-context.cpp<br />
src/star-context.cpp<br />
</pre><br />
<br />
fabsf() was undeclared (I just put in "fabs()", not sure if this is<br />
correct) in <br />
<pre><br />
src/sp-shape.cpp<br />
</pre><br />
(see<br />
http://gcc.gnu.org/ml/java/2001-01/msg00465.html).<br />
<br />
Replaced fabsf(), floorf() and ceilf() with fabs(), floor() and ceil() in<br />
<pre><br />
src/display/nr-arena-shape.cpp<br />
src/display/canvas-bpath.cpp<br />
src/display/sp-ctrlline.cpp<br />
src/libnrtype/nr-rasterfont.cpp<br />
src/livarot/AlphaLigne.cpp<br />
src/livarot/BitLigne.cpp<br />
src/livarot/Ligne.cpp<br />
src/livarot/PathOutline.cpp<br />
src/livarot/ShapeMisc.cpp<br />
</pre><br />
<br />
isfinite() is undeclared, use <br />
<pre><br />
#include <ieeefp.h><br />
</pre><br />
and finite() (see http://devrsrc1.external.hp.com/STKS/impacts/i61.html) in <br />
<pre><br />
src/display/bezier-utils.cpp<br />
</pre><br />
<br />
Need to include <br />
<pre><br />
#include <ieeefp.h><br />
</pre><br />
in<br />
<pre><br />
src/libnr/nr-svp.cpp<br />
</pre><br />
<br />
Missing strcasestr() used in libnrtype/nr-type-directory.cpp. I just <br />
use the internal version for WIN32 given in the file.<br />
<br />
<pre><br />
In file included from /home/foo/Tools/include/X11/extensions/Xrender.h:33,<br />
from /home/foo/Tools/include/X11/Xft/Xft.h:47,<br />
from libnrtype/nr-type-xft.cpp:16:<br />
/usr/openwin/include/X11/Xutil.h:56: warning: ignoring #pragma ident <br />
/usr/openwin/include/X11/Xutil.h:117: error: 'Bool' is used as a type, but is <br />
not defined as a type.<br />
/usr/openwin/include/X11/Xutil.h:120: error: 'Pixmap' is used as a type, but is <br />
not defined as a type.<br />
/usr/openwin/include/X11/Xutil.h:121: error: 'Window' is used as a type, but is <br />
not defined as a type.<br />
[...]<br />
</pre><br />
etc. Fixed this by adding #include <X11/Xlib.h><br />
before including Xft.h in src/libnrtype/nr-type-xft.cpp.<br />
<br />
`bind_textdomain_codeset' undeclared in src/main.cpp and src/inkscape.cpp. Just copied the definition in that <br />
file outside the ifdef.<br />
<br />
`fpresetsticky' undeclared (autoconf seems to have checks for it. Solaris has fpsetsticky() when ieeefp.h is included.)<br />
<br />
No rule for target inkscape.desktop - just created an empty rule.<br />
<br />
DONE! It runs on Solaris! Yay! :)<br />
--Colin Marquardt</div>211.222.247.120https://wiki.inkscape.org/wiki/index.php?title=CompilingGentoo&diff=412CompilingGentoo2004-09-01T09:12:38Z<p>211.222.247.120: *</p>
<hr />
<div>== Gentoo Linux ==<br />
<br />
If it doesn't build, try installing libtool. If that doesn't work then try<br />
installing the gentoo equivalents of the following Debian packages (from<br />
debian/control, in alphabetical order):<br />
<br />
Build-Depends: automake1.7, debhelper (>= 4.0.0), gettext, intltool,<br />
libart-2.0-dev (>= 2.3.10), libatk1.0-dev, libfreetype6-dev, libgc-dev,<br />
libglib2.0-dev, libgtk2.0-dev (>= 2.0.6-1), libgtkmm-2.4-dev,<br />
libpango1.0-dev, libpng12-dev, libpopt-dev, libsigc++-2.0-dev, libtool,<br />
libxft2-dev, libxml-parser-perl, libxml2-dev (>= 2-2.4.24), pkg-config,<br />
xlibs-dev, zlib1g-dev<br />
<br />
To get the 2.4 version of gtkmm:<br />
<br />
emerge sync<br />
ACCEPT_KEYWORDS="~x86" emerge gtkmm<br />
<br />
==== Gentoo CVS Ebuild ready ! ====<br />
<br />
Hi there,<br />
<br />
This afternoon I decided to make an ebuild for the CVS of inkscape for gentoo users !<br />
<br />
''To use it:''<br />
<br />
* <a href="http://www.inkscape.org/doc/inkscape-1.0.ebuild">Download it</a> (pretty obvious isn't it ? :)<br />
* Copy the file into /usr/portage/media-gfx/inkscape/<br />
* run the command 'emerge inkscape' in root<br />
* Drink a coffee or two<br />
* Enjoy !<br />
<br />
You can improve it and send me back the modifications and I'll update the file.<br />
<br />
I need feedback !<br />
<br />
Here is my jabber id: pol@amessage.de<br><br />
Here is my e-mail : blenderman _at_ tiscali _dot_ be<br />
<br />
Cya<br />
<br />
-Dell'Aiera Pol-<br />
<br />
-- Annotation: You need an installed gtkmm-2.2 (2.4 does not work currently), Dominic<br />
<br />
Note that the Gentoo packagename for the Boehm garbage collector Inkscape requires is boehm-gc.<br />
Unfortunately, this was set up without --enable-cplusplus. You can manually get it to work, though:<br />
See http://www.gentoo.org/doc/en/faq.xml#configure and follow the steps. After installing it this<br />
way, I also had to do `chmod a+rx /usr/include/gc` so Inkscape's ./configure will find the headers<br />
<br />
Also, gentoo includes libsigc++ 2.0.1, but Inkscape requires 2.0.3, so that has to be manually <br />
installed.</div>211.222.247.120https://wiki.inkscape.org/wiki/index.php?title=CompilingYellowDog&diff=698CompilingYellowDog2004-09-01T09:12:01Z<p>211.222.247.120: *</p>
<hr />
<div>== YELLOWDOG Linux 3.0 ==<br />
<br />
It's pretty straight forward as with most of the current distributions.<br />
<br />
First of all, unpack the latest inkscape.tar.gz:<br><br />
<br />
$ tar zxvf inkscape-0.35-pre0.tar.gz<br />
<br />
Try to ./configure and find out that you need libpng.<br><br />
Next try to understand that although `yum install libpng' says that you have the latest working version for your system, you still cannot get InkScape to compile (the reason is that you need libpng-devel for this.)<br><br />
Since there is no Yellowdog RPMs for libpng-devel, go to http://www.libpng.org/ and download the latest tarball (1.2.5 works fine), ./configure, make, and make install.<br><br />
Go back to your InkScape source directory and re./configure.<br><br />
InkScape will happily compile now!<br><br />
<br />
-- Daniel D�az</div>211.222.247.120https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape&diff=522Compiling Inkscape2004-09-01T09:11:47Z<p>211.222.247.120: *</p>
<hr />
<div>Hopefully, Inkscape will compile right out of the box. If it doesn't, well that's what this page is for.<br />
<br />
Jot down notes, questions, findings, tips, etc. here on things you run into. It's a good idea to<br />
make mention of what version of the code you're trying to compile, the distribution you're running,<br />
and other such information that might be pertinent.<br />
<br />
If legitimate bugs are found or patches developed, please move them to the tracker at Sourceforge<br />
rather than inlining them here. <br />
<br />
= OS &amp; Distribution Specific =<br />
* Linux<br />
** CompilingFC2<br />
** CompilingGentoo<br />
** CompilingDebian<br />
** CompilingYellowDog<br />
* CompilingMacOsX<br />
* Windows [[Win32Port]] [Windows Win32Port]<br />
* CompilingSPARC<br />
* CompilingSunSolaris<br />
<br />
<br />
= Specific Package Problems + Solutions =<br />
<br />
<br />
== GtkMM ==<br />
If you have to compile and install GtkMM from source, you may find an error like this when trying to<br />
compile Inkscape:<br />
<br />
checking for gtk+-2.0 >= 2.0.0 libxml-2.0 >= 2-2.4.24 sigc++-1.2 gtkmm-2.0... Package gtkmm-2.0 was not found in the pkg-config search path.<br />
Perhaps you should add the directory containing `gtkmm-2.0.pc'<br />
to the PKG_CONFIG_PATH environment variable<br />
No package 'gtkmm-2.0' found<br />
<br />
A solution suggested by Ishmal is to set the PKG_CONFIG_PATH variable as so:<br />
<br />
setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/usr/lib/pkgconfig<br />
<br />
<br />
<br />
<br />
== Boehm Garbage Collector Dependency ==<br />
<br />
If your distro does not have a package available (like many don't, ie, Fedora Core 2), then download source from here:<br />
<br />
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.3.tar.gz<br />
<br />
Then configure it with the command:<br />
<br />
$ ./configure --enable-cplusplus<br />
$ make; make install<br />
<br />
<br />
Also, if searching for a package for GC, the name of it is sometimes:<br />
<br />
* gc<br />
* libgc<br />
* libgc-devel<br />
* boehm-gc (on Gentoo)<br />
<br />
<br />
<br />
== OSX ==<br />
<br />
You can run Inkscape by compiling by using Fink. http://fink.sourceforge.net<br />
<br />
It's as simple as: #fink -y install inkscape <br />
<br />
Fink will get all the dependencies and install them.<br />
<br />
<br />
=== Compiling Inkscape under Mac OS X ===<br />
<br />
To get autogen to run I had to perform the following ( Assuming users have fink installed )<br />
<br />
sudo fink install gtk+ ( which installs gtk+ and gtk+2 )<br />
sudo fink install libtool14 ( replacing apple's glibtoolize )<br />
<br />
These entries are all to be put in your ~/.cshrc ( or applicable shell startup )<br />
<br />
setenv ACLOCAL_FLAGS "-I /sw/share/aclocal"<br />
setenv CFLAGS -I/sw/include<br />
<br />
<br />
setenv LDFLAGS -L/sw/lib<br />
setenv CXXFLAGS $CFLAGS<br />
setenv CPPFLAGS $CXXFLAGS<br />
<br />
--<br />
<br />
For a clean 10.3 installation with a brand new Fink, I had to add the following:<br />
<br />
* intltool<br />
* glib2<br />
* glib2-dev<br />
* libpng3<br />
* libart2<br />
* libxml2<br />
* gtk+2<br />
* gtk+2-dev<br />
<br />
In theory you can just list all those on one install command.<br />
-- JonCruz<br />
<br />
Apart from the above env variables I had to set the following variables to compile cvs<br />
(taken right out of fink's .info file). This is in bash syntax, above is tcsh syntax. <br />
(I havent experimented with this list to see whats the minimum required.. but if I dont include any of the following than it breaks.)<br />
<pre><br />
export ACLOCAL_FLAGS="-I /sw/share/aclocal"<br />
export CFLAGS=-I/sw/include<br />
export LDFLAGS=-L/sw/lib<br />
export CXXFLAGS=$CFLAGS<br />
export CPPFLAGS=$CXXFLAGS<br />
export LIBRARY_PATH=/usr/X11R6/lib:/sw/lib<br />
export CPATH=/sw/include<br />
export PATH="/usr/X11R6/bin:"$PATH<br />
export LIBS="-L/sw/lib -lintl "$LIBS<br />
</pre><br />
<br />
Update: There is a problem with rendering cursors on mac due to a gcc bug. At this point fink is maintaining an inkscape package and they are going to use a patch to fix it for 0.38.1 so I recommend fink package. If you are interested in patching yourself, visit tracker item 932944 at https://sourceforge.net/tracker/index.php?func=detail&aid=932944&group_id=93438&atid=604306 .<br />
<br />
-- Spundun<br />
<br />
since gtkmm-2.0 has been added as a requirement, you may need to install it thru darwinports; to use it along whatever you installed with fink prior to that, the flags are:<br />
<br />
<pre><br />
export ACLOCAL_FLAGS="-I /sw/share/aclocal"<br />
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/local/lib/pkgconfig/<br />
export LDFLAGS="-lintl -L/sw/lib -L/opt/local/lib"<br />
export CFLAGS="-I/sw/include -I/opt/local/include"<br />
export CPPFLAGS=$CFLAGS<br />
export CXXFLAGS=$CFLAGS<br />
</pre><br />
<br />
-- yafosf<br />
<br />
If you need to run "./autogen.sh":<br />
<br />
fink install automake1.8 autoconf2.5<br />
<br />
Otherwise:<br />
<br />
fink install �<br />
intltool �<br />
glib2 glib2-dev glib2-shlibs �<br />
gtk+2 gtk+2-shlibs gtk+2-dev �<br />
libpng3 libpng3-shlibs �<br />
libtool14 libtool14-shlibs �<br />
libpng-shlibs �<br />
libsigc++12 libsigc++12-shlibs �<br />
popt popt-shlibs <br />
export CPPFLAGS=-I/sw/include<br />
export LDFLAGS=-L/sw/lib<br />
# Run ./autogen.sh here if things break below...<br />
./configure --prefix=/sw<br />
echo "#define ENABLE_NLS" >> config.h<br />
make<br />
make install<br />
<br />
<br />
-- Kees Cook<br />
<br />
== Linux ==<br />
=== Fedora Core 2 for Inkscape 0.40CVS ===<br />
<br />
After having the most up to date RPMs for FC2 from fedora updates, this is what I found for compiling Inkscape.<br />
<br />
Well...after checking out a clean copy of the inkscape module, autogen.sh will not generate ltmain.sh, so I had to make a softlink to a copy of ltmain.sh, which was located here: /usr/share/libtools/ltmain.sh<br />
<br />
So I ran:<br />
<br />
$ ln -s /usr/share/libtools/ltmain.sh ./<br />
<br />
Then I ran:<br />
<br />
$ ./autogen.sh<br />
<br />
<br />
Then to get all the makefiles, I ran:<br />
<br />
$ ./configure<br />
<br />
Now need to have Boehm Garbage collector installed. Follow the Boehm Garbage Collector instructions above for this to work. After installed, then rerun:<br />
<br />
$ ./configure<br />
<br />
For libsigc++2 currently you must download and install: http://sourceforge.net/project/showfiles.php?group_id=1970<br />
<br />
Now you need gtkmm 2.4 and glibmm 2.4:<br />
<br />
http://ftp.gnome.org/pub/GNOME/sources/glibmm/2.4/<br />
<br />
http://ftp.gnome.org/pub/GNOME/sources/gtkmm/2.4/<br />
<br />
<br />
You need to ./configure; make; make install for libsigc++, glibmm 2.4 and gtkmm 2.4 <br />
<br />
Afterwards update your paths and all that and then run ./autogen.sh; ./configure; make; make install on the CVS version of inkscape...<br />
<br />
<br />
<br />
<br />
=== YELLOWDOG Linux 3.0 ===<br />
<br />
It's pretty straight forward as with most of the current distributions.<br />
<br />
First of all, unpack the latest inkscape.tar.gz:<br><br />
<br />
$ tar zxvf inkscape-0.35-pre0.tar.gz<br />
<br />
Try to ./configure and find out that you need libpng.<br><br />
Next try to understand that although `yum install libpng' says that you have the latest working version for your system, you still cannot get InkScape to compile (the reason is that you need libpng-devel for this.)<br><br />
Since there is no Yellowdog RPMs for libpng-devel, go to http://www.libpng.org/ and download the latest tarball (1.2.5 works fine), ./configure, make, and make install.<br><br />
Go back to your InkScape source directory and re./configure.<br><br />
InkScape will happily compile now!<br><br />
<br />
-- Daniel D�az<br />
<br />
=== Gentoo Linux ===<br />
<br />
If it doesn't build, try installing libtool. If that doesn't work then try<br />
installing the gentoo equivalents of the following Debian packages (from<br />
debian/control, in alphabetical order):<br />
<br />
Build-Depends: automake1.7, debhelper (>= 4.0.0), gettext, intltool,<br />
libart-2.0-dev (>= 2.3.10), libatk1.0-dev, libfreetype6-dev, libgc-dev,<br />
libglib2.0-dev, libgtk2.0-dev (>= 2.0.6-1), libgtkmm-2.4-dev,<br />
libpango1.0-dev, libpng12-dev, libpopt-dev, libsigc++-2.0-dev, libtool,<br />
libxft2-dev, libxml-parser-perl, libxml2-dev (>= 2-2.4.24), pkg-config,<br />
xlibs-dev, zlib1g-dev<br />
<br />
To get the 2.4 version of gtkmm:<br />
<br />
emerge sync<br />
ACCEPT_KEYWORDS="~x86" emerge gtkmm<br />
<br />
==== Gentoo CVS Ebuild ready ! ====<br />
<br />
Hi there,<br />
<br />
This afternoon I decided to make an ebuild for the CVS of inkscape for gentoo users !<br />
<br />
''To use it:''<br />
<br />
* <a href="http://www.inkscape.org/doc/inkscape-1.0.ebuild">Download it</a> (pretty obvious isn't it ? :)<br />
* Copy the file into /usr/portage/media-gfx/inkscape/<br />
* run the command 'emerge inkscape' in root<br />
* Drink a coffee or two<br />
* Enjoy !<br />
<br />
You can improve it and send me back the modifications and I'll update the file.<br />
<br />
I need feedback !<br />
<br />
Here is my jabber id: pol@amessage.de<br><br />
Here is my e-mail : blenderman _at_ tiscali _dot_ be<br />
<br />
Cya<br />
<br />
-Dell'Aiera Pol-<br />
<br />
-- Annotation: You need an installed gtkmm-2.2 (2.4 does not work currently), Dominic<br />
<br />
Note that the Gentoo packagename for the Boehm garbage collector Inkscape requires is boehm-gc.<br />
Unfortunately, this was set up without --enable-cplusplus. You can manually get it to work, though:<br />
See http://www.gentoo.org/doc/en/faq.xml#configure and follow the steps. After installing it this<br />
way, I also had to do `chmod a+rx /usr/include/gc` so Inkscape's ./configure will find the headers<br />
<br />
Also, gentoo includes libsigc++ 2.0.1, but Inkscape requires 2.0.3, so that has to be manually <br />
installed.<br />
<br />
==== Sparc ====<br />
<br />
I didn't change anything. The configure-line used in debian/rules is<br />
CFLAGS="$(CFLAGS)" ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE)<br />
--prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info<br />
This is mainly from dh_make.<br />
<br />
-- Wolfram Quester<br />
<br />
=== Suse 9.0 ===<br />
<br />
One of the challenges with Suse 9.0 is the lack of a distro provided gtkmm2 and libsigc++ packages.<br />
<br />
Best place to find them: ftp://ftp.gwdg.de/pub/linux/misc/apt4rpm/suse/usr-local-bin/9.0/<br />
<br />
Suse 9.1 includes both now in the GNOME supplemental downloads.<br />
<br />
Note that for SuSE the gtk+2 packages are called gtk2. The gtk+2 2.4 package is not provided via Yast but can be found via rpmseek as gtk2 and gtk2-devel<br />
<br />
To find the .pc files, I had to set:<br />
<br />
setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/opt/gnome/lib/pkgconfig/<br />
<br />
In SuSE 9.1 I ran into this error:<br />
<br />
configure.in:25: required file `./ltmain.sh' not found<br />
<br />
Copying /usr/share/libtool/ltmain.sh into the top directory fixed it.<br />
<br />
For 0.40cvs the libgc dependency is added. In SuSE 9.1 this is package 'boehm-gc', but it doesn't work - you need to compile from source. Download from:<br />
<br />
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.3.tar.gz<br />
<br />
Then configure it with the command:<br />
<br />
$ ./configure --enable-cplus-plus<br />
<br />
SuSE 9.1 also does not have libsigc++ 2.0; I couldn't find an rpm for it so ended up having to compile it from source, from http://prdownloads.sourceforge.net/libsigc/libsigc++-2.0.3.tar.gz<br />
<br />
I also had to compile gtkmm 2.4 and glib 2.4 from source; download them from ftp://ftp.gnome.org/pub/GNOME/sources/gtkmm/2.4/ and http://ftp.gnome.org/pub/GNOME/sources/glibmm/2.4/<br />
<br />
Looks like these packages are also available from here:ftp://ftp.gwdg.de/pub/linux/suse/apt/SuSE/9.1-i386/RPMS.gnome/<br />
<br />
Also, stuff got installed to /opt/gnome/bin/, so I had to also<br />
`export PATH=$PATH:/opt/gnome/bin/`<br />
<br />
=== Debian Testing ===<br />
To get things to compile I found I needed the packages libtool, libgtk2.0-dev, libglib2.0-dev and automake1.7 <br />
<br />
=== Slackware 10 ===<br />
Had a problem with the configure script of inkscape not finding my installed libsigc++ setting the system variable as follows did the trick:<br />
<br />
export PKG_CONFIG_PATH /usr/local/lib/pkgconfig<br />
<br />
where the config file sigc++-1.2.pc was installed in /usr/local/lib/pkgconfig/sigc++-1.2.pc which if found using: locate sigc++ |grep pc<br />
<br />
--Luke Munholand<br />
<br />
=== <a href="http://Yoper.com">Yoper</a> ===<br />
<br />
This has been tested for Inkscape0.39 on Yoper i686-2.1.0-4:<br />
<br />
# review the <a href="http://www.yoper.com/forum2/index.php?showtopic=800">Guide to Compiling Software from Source</a><br />
# compile <a href="http://prdownloads.sourceforge.net/libsigc/libsigc%2B%2B-1.2.5.tar.gz?download">libsigc++-1.2.5.tar.gz</a><br />
# Run <code>ldconfig</code> as root so the library can be found by the OS<br />
# copy /usr/include/freetype2/freetype to /usr/include/freetype<br />
# compile inkscape!<br />
<br />
<br />
== Developer Compilation ==<br />
<br />
Plain vanilla compilation is done as documented in INSTALL; ./autogen.sh (optionally); ./configure; make; su && make test; make install (optional). See INSTALL for more on that.<br />
<br />
But if you're going to be doing a lot of development, there's some tricks and techniques you should know,<br />
to get best results.<br />
<br />
# Turn off optimization<br />
# Use ccache for faster compilation<br />
# Set up a separate build directory (nice for testing both gcc and g++, or cross compiling)<br />
# Use the -j N flag to optimize for the number of processors in your machine, with N = 1 + no. proc's<br />
<br />
Example: Setting up both gcc and g++ build environments (in separate tree), and using ccache for faster<br />
compilations on a dual-processor machine, with no optimization, assuming /bin/bash:<br />
<br />
mkdir build-gcc build-g++<br />
cvs checkout inkscape<br />
cd inkscape<br />
libtoolize --copy --force<br />
./autogen.sh<br />
cd ../build-gcc<br />
CFLAGS='-g -O0 -Wall' CC='ccache gcc' ../inkscape/configure<br />
cd ../build-g++<br />
CXXFLAGS='-g -O0 -Wall' CXX='ccache g++' ../inkscape/configure<br />
cd build-gcc && make -j 3<br />
cd build-g++ && make -j 3<br />
<br />
<br />
Turning off just optimization (which can produce strange results in debuggers):<br />
<br />
export CC=g++<br />
export CXXFLAGS='-g -O0 -Wall'<br />
export CFLAGS='-g -O0 -Wall'<br />
./configure<br />
<br />
<br />
== Compiling on Sun Solaris ==<br />
<br />
When trying to compile the CVS snapshot from 2004-05-27 with <br />
gcc 3.3.2 on a <br />
<nowiki>SunOS foo 5.8 Generic_108528-22 sun4u sparc SUNW,Sun-Fire-V240</nowiki><br />
machine, I had to fix a few things.<br />
<br />
First, I installed the following packages:<br />
<pre><br />
autoconf-2.59<br />
automake-1.8.3<br />
intltool-0.30<br />
expat-1.95.7<br />
libpng-1.2.5<br />
libsigc++-2.0.3<br />
glib-2.4.2<br />
glibmm-2.4.2<br />
atk-1.7.0<br />
render-0.8<br />
xrender-0.8.3<br />
xft-2.1.2<br />
pango-1.4.0<br />
gtk+-2.4.2<br />
gtkmm-2.4.2<br />
</pre><br />
<br />
I configured Inkscape with the following switches: <br />
<pre><br />
./configure --prefix=/home/foo/Tools/ --includedir=/home/foo/Tools/include CPPFLAGS=-I/home/foo/Tools/include<br />
</pre><br />
<br />
Then "fix" stuff in the inkscape sources:<br />
<br />
Uncomment "@INTLTOOL_DESKTOP_RULE@" in Makefile.<br />
<br />
Use <inttypes.h>, not <stdint.h> in<br />
<pre><br />
src/display/sp-canvas.h,<br />
src/livarot/DblLinked.h, <br />
src/livarot/LivarotDefs.h, <br />
src/livarot/AVL.h, <br />
src/livarot/Shape.h, <br />
src/livarot/ShapeUtils.h,<br />
src/livarot/Ligne.h<br />
src/livarot/AlphaLigne.h<br />
src/livarot/BitLigne.h<br />
src/livarot/MyMath.h<br />
</pre><br />
(see<br />
http://www.lns.cornell.edu/public/COMP/info/autoconf/Header-Portability.html)<br />
<br />
<br />
Replace round() with rint() according to<br />
http://news.gw.com/freebsd.gnome/1237 in<br />
</pre><br />
src/object-edit.cpp, <br />
src/spiral-context.cpp<br />
src/star-context.cpp<br />
</pre><br />
<br />
fabsf() was undeclared (I just put in "fabs()", not sure if this is<br />
correct) in <br />
<pre><br />
src/sp-shape.cpp<br />
</pre><br />
(see<br />
http://gcc.gnu.org/ml/java/2001-01/msg00465.html).<br />
<br />
Replaced fabsf(), floorf() and ceilf() with fabs(), floor() and ceil() in<br />
<pre><br />
src/display/nr-arena-shape.cpp<br />
src/display/canvas-bpath.cpp<br />
src/display/sp-ctrlline.cpp<br />
src/libnrtype/nr-rasterfont.cpp<br />
src/livarot/AlphaLigne.cpp<br />
src/livarot/BitLigne.cpp<br />
src/livarot/Ligne.cpp<br />
src/livarot/PathOutline.cpp<br />
src/livarot/ShapeMisc.cpp<br />
</pre><br />
<br />
isfinite() is undeclared, use <br />
<pre><br />
#include <ieeefp.h><br />
</pre><br />
and finite() (see http://devrsrc1.external.hp.com/STKS/impacts/i61.html) in <br />
<pre><br />
src/display/bezier-utils.cpp<br />
</pre><br />
<br />
Need to include <br />
<pre><br />
#include <ieeefp.h><br />
</pre><br />
in<br />
<pre><br />
src/libnr/nr-svp.cpp<br />
</pre><br />
<br />
Missing strcasestr() used in libnrtype/nr-type-directory.cpp. I just <br />
use the internal version for WIN32 given in the file.<br />
<br />
<pre><br />
In file included from /home/foo/Tools/include/X11/extensions/Xrender.h:33,<br />
from /home/foo/Tools/include/X11/Xft/Xft.h:47,<br />
from libnrtype/nr-type-xft.cpp:16:<br />
/usr/openwin/include/X11/Xutil.h:56: warning: ignoring #pragma ident <br />
/usr/openwin/include/X11/Xutil.h:117: error: 'Bool' is used as a type, but is <br />
not defined as a type.<br />
/usr/openwin/include/X11/Xutil.h:120: error: 'Pixmap' is used as a type, but is <br />
not defined as a type.<br />
/usr/openwin/include/X11/Xutil.h:121: error: 'Window' is used as a type, but is <br />
not defined as a type.<br />
[...]<br />
</pre><br />
etc. Fixed this by adding #include <X11/Xlib.h><br />
before including Xft.h in src/libnrtype/nr-type-xft.cpp.<br />
<br />
`bind_textdomain_codeset' undeclared in src/main.cpp and src/inkscape.cpp. Just copied the definition in that <br />
file outside the ifdef.<br />
<br />
`fpresetsticky' undeclared (autoconf seems to have checks for it. Solaris has fpsetsticky() when ieeefp.h is included.)<br />
<br />
No rule for target inkscape.desktop - just created an empty rule.<br />
<br />
DONE! It runs on Solaris! Yay! :)<br />
--Colin Marquardt</div>211.222.247.120https://wiki.inkscape.org/wiki/index.php?title=CompilingFC2&diff=903CompilingFC22004-09-01T09:10:49Z<p>211.222.247.120: *</p>
<hr />
<div>== Fedora Core 2 for Inkscape 0.40CVS ==<br />
<br />
After having the most up to date RPMs for FC2 from fedora updates, this is what I found for compiling Inkscape.<br />
<br />
Well...after checking out a clean copy of the inkscape module, autogen.sh will not generate ltmain.sh, so I had to make a softlink to a copy of ltmain.sh, which was located here: /usr/share/libtools/ltmain.sh<br />
<br />
So I ran:<br />
<br />
$ ln -s /usr/share/libtools/ltmain.sh ./<br />
<br />
Then I ran:<br />
<br />
$ ./autogen.sh<br />
<br />
<br />
Then to get all the makefiles, I ran:<br />
<br />
$ ./configure<br />
<br />
Now need to have Boehm Garbage collector installed. Follow the Boehm Garbage Collector instructions above for this to work. After installed, then rerun:<br />
<br />
$ ./configure<br />
<br />
For libsigc++2 currently you must download and install: http://sourceforge.net/project/showfiles.php?group_id=1970<br />
<br />
Now you need gtkmm 2.4 and glibmm 2.4:<br />
<br />
http://ftp.gnome.org/pub/GNOME/sources/glibmm/2.4/<br />
<br />
http://ftp.gnome.org/pub/GNOME/sources/gtkmm/2.4/<br />
<br />
<br />
You need to ./configure; make; make install for libsigc++, glibmm 2.4 and gtkmm 2.4 <br />
<br />
Afterwards update your paths and all that and then run ./autogen.sh; ./configure; make; make install on the CVS version of inkscape...</div>211.222.247.120https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&diff=574CompilingMacOsX2004-09-01T09:10:04Z<p>211.222.247.120: *</p>
<hr />
<div>== Compiling Inkscape under Mac OS X ==<br />
<br />
You can run Inkscape by compiling by using Fink. http://fink.sourceforge.net<br />
<br />
It's as simple as: #fink -y install inkscape <br />
<br />
Fink will get all the dependencies and install them.<br />
<br />
----<br />
<br />
To get autogen to run I had to perform the following ( Assuming users have fink installed )<br />
<br />
sudo fink install gtk+ ( which installs gtk+ and gtk+2 )<br />
sudo fink install libtool14 ( replacing apple's glibtoolize )<br />
<br />
These entries are all to be put in your ~/.cshrc ( or applicable shell startup )<br />
<br />
setenv ACLOCAL_FLAGS "-I /sw/share/aclocal"<br />
setenv CFLAGS -I/sw/include<br />
<br />
<br />
setenv LDFLAGS -L/sw/lib<br />
setenv CXXFLAGS $CFLAGS<br />
setenv CPPFLAGS $CXXFLAGS<br />
<br />
--<br />
<br />
For a clean 10.3 installation with a brand new Fink, I had to add the following:<br />
<br />
* intltool<br />
* glib2<br />
* glib2-dev<br />
* libpng3<br />
* libart2<br />
* libxml2<br />
* gtk+2<br />
* gtk+2-dev<br />
<br />
In theory you can just list all those on one install command.<br />
-- JonCruz<br />
<br />
Apart from the above env variables I had to set the following variables to compile cvs<br />
(taken right out of fink's .info file). This is in bash syntax, above is tcsh syntax. <br />
(I havent experimented with this list to see whats the minimum required.. but if I dont include any of the following than it breaks.)<br />
<pre><br />
export ACLOCAL_FLAGS="-I /sw/share/aclocal"<br />
export CFLAGS=-I/sw/include<br />
export LDFLAGS=-L/sw/lib<br />
export CXXFLAGS=$CFLAGS<br />
export CPPFLAGS=$CXXFLAGS<br />
export LIBRARY_PATH=/usr/X11R6/lib:/sw/lib<br />
export CPATH=/sw/include<br />
export PATH="/usr/X11R6/bin:"$PATH<br />
export LIBS="-L/sw/lib -lintl "$LIBS<br />
</pre><br />
<br />
Update: There is a problem with rendering cursors on mac due to a gcc bug. At this point fink is maintaining an inkscape package and they are going to use a patch to fix it for 0.38.1 so I recommend fink package. If you are interested in patching yourself, visit tracker item 932944 at https://sourceforge.net/tracker/index.php?func=detail&aid=932944&group_id=93438&atid=604306 .<br />
<br />
-- Spundun<br />
<br />
since gtkmm-2.0 has been added as a requirement, you may need to install it thru darwinports; to use it along whatever you installed with fink prior to that, the flags are:<br />
<br />
<pre><br />
export ACLOCAL_FLAGS="-I /sw/share/aclocal"<br />
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/local/lib/pkgconfig/<br />
export LDFLAGS="-lintl -L/sw/lib -L/opt/local/lib"<br />
export CFLAGS="-I/sw/include -I/opt/local/include"<br />
export CPPFLAGS=$CFLAGS<br />
export CXXFLAGS=$CFLAGS<br />
</pre><br />
<br />
-- yafosf<br />
<br />
If you need to run "./autogen.sh":<br />
<br />
fink install automake1.8 autoconf2.5<br />
<br />
Otherwise:<br />
<br />
fink install �<br />
intltool �<br />
glib2 glib2-dev glib2-shlibs �<br />
gtk+2 gtk+2-shlibs gtk+2-dev �<br />
libpng3 libpng3-shlibs �<br />
libtool14 libtool14-shlibs �<br />
libpng-shlibs �<br />
libsigc++12 libsigc++12-shlibs �<br />
popt popt-shlibs <br />
export CPPFLAGS=-I/sw/include<br />
export LDFLAGS=-L/sw/lib<br />
# Run ./autogen.sh here if things break below...<br />
./configure --prefix=/sw<br />
echo "#define ENABLE_NLS" >> config.h<br />
make<br />
make install<br />
<br />
<br />
-- Kees Cook</div>211.222.247.120https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape&diff=521Compiling Inkscape2004-09-01T09:08:04Z<p>211.222.247.120: *</p>
<hr />
<div>Hopefully, Inkscape will compile right out of the box. If it doesn't, well that's what this page is for.<br />
<br />
Jot down notes, questions, findings, tips, etc. here on things you run into. It's a good idea to<br />
make mention of what version of the code you're trying to compile, the distribution you're running,<br />
and other such information that might be pertinent.<br />
<br />
If legitimate bugs are found or patches developed, please move them to the tracker at Sourceforge<br />
rather than inlining them here. <br />
<br />
= OS &amp; Distribution Specific =<br />
* Linux<br />
** CompilingFC2<br />
** CompilingGentoo<br />
** CompilingDebian<br />
* CompilingMacOsX<br />
* Windows [[Win32Port]] [Windows Win32Port]<br />
* CompilingSPARC<br />
* CompilingSunSolaris<br />
<br />
<br />
= Specific Package Problems + Solutions =<br />
<br />
<br />
== GtkMM ==<br />
If you have to compile and install GtkMM from source, you may find an error like this when trying to<br />
compile Inkscape:<br />
<br />
checking for gtk+-2.0 >= 2.0.0 libxml-2.0 >= 2-2.4.24 sigc++-1.2 gtkmm-2.0... Package gtkmm-2.0 was not found in the pkg-config search path.<br />
Perhaps you should add the directory containing `gtkmm-2.0.pc'<br />
to the PKG_CONFIG_PATH environment variable<br />
No package 'gtkmm-2.0' found<br />
<br />
A solution suggested by Ishmal is to set the PKG_CONFIG_PATH variable as so:<br />
<br />
setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/usr/lib/pkgconfig<br />
<br />
<br />
<br />
<br />
== Boehm Garbage Collector Dependency ==<br />
<br />
If your distro does not have a package available (like many don't, ie, Fedora Core 2), then download source from here:<br />
<br />
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.3.tar.gz<br />
<br />
Then configure it with the command:<br />
<br />
$ ./configure --enable-cplusplus<br />
$ make; make install<br />
<br />
<br />
Also, if searching for a package for GC, the name of it is sometimes:<br />
<br />
* gc<br />
* libgc<br />
* libgc-devel<br />
* boehm-gc (on Gentoo)<br />
<br />
<br />
<br />
== OSX ==<br />
<br />
You can run Inkscape by compiling by using Fink. http://fink.sourceforge.net<br />
<br />
It's as simple as: #fink -y install inkscape <br />
<br />
Fink will get all the dependencies and install them.<br />
<br />
<br />
=== Compiling Inkscape under Mac OS X ===<br />
<br />
To get autogen to run I had to perform the following ( Assuming users have fink installed )<br />
<br />
sudo fink install gtk+ ( which installs gtk+ and gtk+2 )<br />
sudo fink install libtool14 ( replacing apple's glibtoolize )<br />
<br />
These entries are all to be put in your ~/.cshrc ( or applicable shell startup )<br />
<br />
setenv ACLOCAL_FLAGS "-I /sw/share/aclocal"<br />
setenv CFLAGS -I/sw/include<br />
<br />
<br />
setenv LDFLAGS -L/sw/lib<br />
setenv CXXFLAGS $CFLAGS<br />
setenv CPPFLAGS $CXXFLAGS<br />
<br />
--<br />
<br />
For a clean 10.3 installation with a brand new Fink, I had to add the following:<br />
<br />
* intltool<br />
* glib2<br />
* glib2-dev<br />
* libpng3<br />
* libart2<br />
* libxml2<br />
* gtk+2<br />
* gtk+2-dev<br />
<br />
In theory you can just list all those on one install command.<br />
-- JonCruz<br />
<br />
Apart from the above env variables I had to set the following variables to compile cvs<br />
(taken right out of fink's .info file). This is in bash syntax, above is tcsh syntax. <br />
(I havent experimented with this list to see whats the minimum required.. but if I dont include any of the following than it breaks.)<br />
<pre><br />
export ACLOCAL_FLAGS="-I /sw/share/aclocal"<br />
export CFLAGS=-I/sw/include<br />
export LDFLAGS=-L/sw/lib<br />
export CXXFLAGS=$CFLAGS<br />
export CPPFLAGS=$CXXFLAGS<br />
export LIBRARY_PATH=/usr/X11R6/lib:/sw/lib<br />
export CPATH=/sw/include<br />
export PATH="/usr/X11R6/bin:"$PATH<br />
export LIBS="-L/sw/lib -lintl "$LIBS<br />
</pre><br />
<br />
Update: There is a problem with rendering cursors on mac due to a gcc bug. At this point fink is maintaining an inkscape package and they are going to use a patch to fix it for 0.38.1 so I recommend fink package. If you are interested in patching yourself, visit tracker item 932944 at https://sourceforge.net/tracker/index.php?func=detail&aid=932944&group_id=93438&atid=604306 .<br />
<br />
-- Spundun<br />
<br />
since gtkmm-2.0 has been added as a requirement, you may need to install it thru darwinports; to use it along whatever you installed with fink prior to that, the flags are:<br />
<br />
<pre><br />
export ACLOCAL_FLAGS="-I /sw/share/aclocal"<br />
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/local/lib/pkgconfig/<br />
export LDFLAGS="-lintl -L/sw/lib -L/opt/local/lib"<br />
export CFLAGS="-I/sw/include -I/opt/local/include"<br />
export CPPFLAGS=$CFLAGS<br />
export CXXFLAGS=$CFLAGS<br />
</pre><br />
<br />
-- yafosf<br />
<br />
If you need to run "./autogen.sh":<br />
<br />
fink install automake1.8 autoconf2.5<br />
<br />
Otherwise:<br />
<br />
fink install �<br />
intltool �<br />
glib2 glib2-dev glib2-shlibs �<br />
gtk+2 gtk+2-shlibs gtk+2-dev �<br />
libpng3 libpng3-shlibs �<br />
libtool14 libtool14-shlibs �<br />
libpng-shlibs �<br />
libsigc++12 libsigc++12-shlibs �<br />
popt popt-shlibs <br />
export CPPFLAGS=-I/sw/include<br />
export LDFLAGS=-L/sw/lib<br />
# Run ./autogen.sh here if things break below...<br />
./configure --prefix=/sw<br />
echo "#define ENABLE_NLS" >> config.h<br />
make<br />
make install<br />
<br />
<br />
-- Kees Cook<br />
<br />
== Linux ==<br />
=== Fedora Core 2 for Inkscape 0.40CVS ===<br />
<br />
After having the most up to date RPMs for FC2 from fedora updates, this is what I found for compiling Inkscape.<br />
<br />
Well...after checking out a clean copy of the inkscape module, autogen.sh will not generate ltmain.sh, so I had to make a softlink to a copy of ltmain.sh, which was located here: /usr/share/libtools/ltmain.sh<br />
<br />
So I ran:<br />
<br />
$ ln -s /usr/share/libtools/ltmain.sh ./<br />
<br />
Then I ran:<br />
<br />
$ ./autogen.sh<br />
<br />
<br />
Then to get all the makefiles, I ran:<br />
<br />
$ ./configure<br />
<br />
Now need to have Boehm Garbage collector installed. Follow the Boehm Garbage Collector instructions above for this to work. After installed, then rerun:<br />
<br />
$ ./configure<br />
<br />
For libsigc++2 currently you must download and install: http://sourceforge.net/project/showfiles.php?group_id=1970<br />
<br />
Now you need gtkmm 2.4 and glibmm 2.4:<br />
<br />
http://ftp.gnome.org/pub/GNOME/sources/glibmm/2.4/<br />
<br />
http://ftp.gnome.org/pub/GNOME/sources/gtkmm/2.4/<br />
<br />
<br />
You need to ./configure; make; make install for libsigc++, glibmm 2.4 and gtkmm 2.4 <br />
<br />
Afterwards update your paths and all that and then run ./autogen.sh; ./configure; make; make install on the CVS version of inkscape...<br />
<br />
<br />
<br />
<br />
=== YELLOWDOG Linux 3.0 ===<br />
<br />
It's pretty straight forward as with most of the current distributions.<br />
<br />
First of all, unpack the latest inkscape.tar.gz:<br><br />
<br />
$ tar zxvf inkscape-0.35-pre0.tar.gz<br />
<br />
Try to ./configure and find out that you need libpng.<br><br />
Next try to understand that although `yum install libpng' says that you have the latest working version for your system, you still cannot get InkScape to compile (the reason is that you need libpng-devel for this.)<br><br />
Since there is no Yellowdog RPMs for libpng-devel, go to http://www.libpng.org/ and download the latest tarball (1.2.5 works fine), ./configure, make, and make install.<br><br />
Go back to your InkScape source directory and re./configure.<br><br />
InkScape will happily compile now!<br><br />
<br />
-- Daniel D�az<br />
<br />
=== Gentoo Linux ===<br />
<br />
If it doesn't build, try installing libtool. If that doesn't work then try<br />
installing the gentoo equivalents of the following Debian packages (from<br />
debian/control, in alphabetical order):<br />
<br />
Build-Depends: automake1.7, debhelper (>= 4.0.0), gettext, intltool,<br />
libart-2.0-dev (>= 2.3.10), libatk1.0-dev, libfreetype6-dev, libgc-dev,<br />
libglib2.0-dev, libgtk2.0-dev (>= 2.0.6-1), libgtkmm-2.4-dev,<br />
libpango1.0-dev, libpng12-dev, libpopt-dev, libsigc++-2.0-dev, libtool,<br />
libxft2-dev, libxml-parser-perl, libxml2-dev (>= 2-2.4.24), pkg-config,<br />
xlibs-dev, zlib1g-dev<br />
<br />
To get the 2.4 version of gtkmm:<br />
<br />
emerge sync<br />
ACCEPT_KEYWORDS="~x86" emerge gtkmm<br />
<br />
==== Gentoo CVS Ebuild ready ! ====<br />
<br />
Hi there,<br />
<br />
This afternoon I decided to make an ebuild for the CVS of inkscape for gentoo users !<br />
<br />
''To use it:''<br />
<br />
* <a href="http://www.inkscape.org/doc/inkscape-1.0.ebuild">Download it</a> (pretty obvious isn't it ? :)<br />
* Copy the file into /usr/portage/media-gfx/inkscape/<br />
* run the command 'emerge inkscape' in root<br />
* Drink a coffee or two<br />
* Enjoy !<br />
<br />
You can improve it and send me back the modifications and I'll update the file.<br />
<br />
I need feedback !<br />
<br />
Here is my jabber id: pol@amessage.de<br><br />
Here is my e-mail : blenderman _at_ tiscali _dot_ be<br />
<br />
Cya<br />
<br />
-Dell'Aiera Pol-<br />
<br />
-- Annotation: You need an installed gtkmm-2.2 (2.4 does not work currently), Dominic<br />
<br />
Note that the Gentoo packagename for the Boehm garbage collector Inkscape requires is boehm-gc.<br />
Unfortunately, this was set up without --enable-cplusplus. You can manually get it to work, though:<br />
See http://www.gentoo.org/doc/en/faq.xml#configure and follow the steps. After installing it this<br />
way, I also had to do `chmod a+rx /usr/include/gc` so Inkscape's ./configure will find the headers<br />
<br />
Also, gentoo includes libsigc++ 2.0.1, but Inkscape requires 2.0.3, so that has to be manually <br />
installed.<br />
<br />
==== Sparc ====<br />
<br />
I didn't change anything. The configure-line used in debian/rules is<br />
CFLAGS="$(CFLAGS)" ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE)<br />
--prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info<br />
This is mainly from dh_make.<br />
<br />
-- Wolfram Quester<br />
<br />
=== Suse 9.0 ===<br />
<br />
One of the challenges with Suse 9.0 is the lack of a distro provided gtkmm2 and libsigc++ packages.<br />
<br />
Best place to find them: ftp://ftp.gwdg.de/pub/linux/misc/apt4rpm/suse/usr-local-bin/9.0/<br />
<br />
Suse 9.1 includes both now in the GNOME supplemental downloads.<br />
<br />
Note that for SuSE the gtk+2 packages are called gtk2. The gtk+2 2.4 package is not provided via Yast but can be found via rpmseek as gtk2 and gtk2-devel<br />
<br />
To find the .pc files, I had to set:<br />
<br />
setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/opt/gnome/lib/pkgconfig/<br />
<br />
In SuSE 9.1 I ran into this error:<br />
<br />
configure.in:25: required file `./ltmain.sh' not found<br />
<br />
Copying /usr/share/libtool/ltmain.sh into the top directory fixed it.<br />
<br />
For 0.40cvs the libgc dependency is added. In SuSE 9.1 this is package 'boehm-gc', but it doesn't work - you need to compile from source. Download from:<br />
<br />
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.3.tar.gz<br />
<br />
Then configure it with the command:<br />
<br />
$ ./configure --enable-cplus-plus<br />
<br />
SuSE 9.1 also does not have libsigc++ 2.0; I couldn't find an rpm for it so ended up having to compile it from source, from http://prdownloads.sourceforge.net/libsigc/libsigc++-2.0.3.tar.gz<br />
<br />
I also had to compile gtkmm 2.4 and glib 2.4 from source; download them from ftp://ftp.gnome.org/pub/GNOME/sources/gtkmm/2.4/ and http://ftp.gnome.org/pub/GNOME/sources/glibmm/2.4/<br />
<br />
Looks like these packages are also available from here:ftp://ftp.gwdg.de/pub/linux/suse/apt/SuSE/9.1-i386/RPMS.gnome/<br />
<br />
Also, stuff got installed to /opt/gnome/bin/, so I had to also<br />
`export PATH=$PATH:/opt/gnome/bin/`<br />
<br />
=== Debian Testing ===<br />
To get things to compile I found I needed the packages libtool, libgtk2.0-dev, libglib2.0-dev and automake1.7 <br />
<br />
=== Slackware 10 ===<br />
Had a problem with the configure script of inkscape not finding my installed libsigc++ setting the system variable as follows did the trick:<br />
<br />
export PKG_CONFIG_PATH /usr/local/lib/pkgconfig<br />
<br />
where the config file sigc++-1.2.pc was installed in /usr/local/lib/pkgconfig/sigc++-1.2.pc which if found using: locate sigc++ |grep pc<br />
<br />
--Luke Munholand<br />
<br />
=== <a href="http://Yoper.com">Yoper</a> ===<br />
<br />
This has been tested for Inkscape0.39 on Yoper i686-2.1.0-4:<br />
<br />
# review the <a href="http://www.yoper.com/forum2/index.php?showtopic=800">Guide to Compiling Software from Source</a><br />
# compile <a href="http://prdownloads.sourceforge.net/libsigc/libsigc%2B%2B-1.2.5.tar.gz?download">libsigc++-1.2.5.tar.gz</a><br />
# Run <code>ldconfig</code> as root so the library can be found by the OS<br />
# copy /usr/include/freetype2/freetype to /usr/include/freetype<br />
# compile inkscape!<br />
<br />
<br />
== Developer Compilation ==<br />
<br />
Plain vanilla compilation is done as documented in INSTALL; ./autogen.sh (optionally); ./configure; make; su && make test; make install (optional). See INSTALL for more on that.<br />
<br />
But if you're going to be doing a lot of development, there's some tricks and techniques you should know,<br />
to get best results.<br />
<br />
# Turn off optimization<br />
# Use ccache for faster compilation<br />
# Set up a separate build directory (nice for testing both gcc and g++, or cross compiling)<br />
# Use the -j N flag to optimize for the number of processors in your machine, with N = 1 + no. proc's<br />
<br />
Example: Setting up both gcc and g++ build environments (in separate tree), and using ccache for faster<br />
compilations on a dual-processor machine, with no optimization, assuming /bin/bash:<br />
<br />
mkdir build-gcc build-g++<br />
cvs checkout inkscape<br />
cd inkscape<br />
libtoolize --copy --force<br />
./autogen.sh<br />
cd ../build-gcc<br />
CFLAGS='-g -O0 -Wall' CC='ccache gcc' ../inkscape/configure<br />
cd ../build-g++<br />
CXXFLAGS='-g -O0 -Wall' CXX='ccache g++' ../inkscape/configure<br />
cd build-gcc && make -j 3<br />
cd build-g++ && make -j 3<br />
<br />
<br />
Turning off just optimization (which can produce strange results in debuggers):<br />
<br />
export CC=g++<br />
export CXXFLAGS='-g -O0 -Wall'<br />
export CFLAGS='-g -O0 -Wall'<br />
./configure<br />
<br />
<br />
== Compiling on Sun Solaris ==<br />
<br />
When trying to compile the CVS snapshot from 2004-05-27 with <br />
gcc 3.3.2 on a <br />
<nowiki>SunOS foo 5.8 Generic_108528-22 sun4u sparc SUNW,Sun-Fire-V240</nowiki><br />
machine, I had to fix a few things.<br />
<br />
First, I installed the following packages:<br />
<pre><br />
autoconf-2.59<br />
automake-1.8.3<br />
intltool-0.30<br />
expat-1.95.7<br />
libpng-1.2.5<br />
libsigc++-2.0.3<br />
glib-2.4.2<br />
glibmm-2.4.2<br />
atk-1.7.0<br />
render-0.8<br />
xrender-0.8.3<br />
xft-2.1.2<br />
pango-1.4.0<br />
gtk+-2.4.2<br />
gtkmm-2.4.2<br />
</pre><br />
<br />
I configured Inkscape with the following switches: <br />
<pre><br />
./configure --prefix=/home/foo/Tools/ --includedir=/home/foo/Tools/include CPPFLAGS=-I/home/foo/Tools/include<br />
</pre><br />
<br />
Then "fix" stuff in the inkscape sources:<br />
<br />
Uncomment "@INTLTOOL_DESKTOP_RULE@" in Makefile.<br />
<br />
Use <inttypes.h>, not <stdint.h> in<br />
<pre><br />
src/display/sp-canvas.h,<br />
src/livarot/DblLinked.h, <br />
src/livarot/LivarotDefs.h, <br />
src/livarot/AVL.h, <br />
src/livarot/Shape.h, <br />
src/livarot/ShapeUtils.h,<br />
src/livarot/Ligne.h<br />
src/livarot/AlphaLigne.h<br />
src/livarot/BitLigne.h<br />
src/livarot/MyMath.h<br />
</pre><br />
(see<br />
http://www.lns.cornell.edu/public/COMP/info/autoconf/Header-Portability.html)<br />
<br />
<br />
Replace round() with rint() according to<br />
http://news.gw.com/freebsd.gnome/1237 in<br />
</pre><br />
src/object-edit.cpp, <br />
src/spiral-context.cpp<br />
src/star-context.cpp<br />
</pre><br />
<br />
fabsf() was undeclared (I just put in "fabs()", not sure if this is<br />
correct) in <br />
<pre><br />
src/sp-shape.cpp<br />
</pre><br />
(see<br />
http://gcc.gnu.org/ml/java/2001-01/msg00465.html).<br />
<br />
Replaced fabsf(), floorf() and ceilf() with fabs(), floor() and ceil() in<br />
<pre><br />
src/display/nr-arena-shape.cpp<br />
src/display/canvas-bpath.cpp<br />
src/display/sp-ctrlline.cpp<br />
src/libnrtype/nr-rasterfont.cpp<br />
src/livarot/AlphaLigne.cpp<br />
src/livarot/BitLigne.cpp<br />
src/livarot/Ligne.cpp<br />
src/livarot/PathOutline.cpp<br />
src/livarot/ShapeMisc.cpp<br />
</pre><br />
<br />
isfinite() is undeclared, use <br />
<pre><br />
#include <ieeefp.h><br />
</pre><br />
and finite() (see http://devrsrc1.external.hp.com/STKS/impacts/i61.html) in <br />
<pre><br />
src/display/bezier-utils.cpp<br />
</pre><br />
<br />
Need to include <br />
<pre><br />
#include <ieeefp.h><br />
</pre><br />
in<br />
<pre><br />
src/libnr/nr-svp.cpp<br />
</pre><br />
<br />
Missing strcasestr() used in libnrtype/nr-type-directory.cpp. I just <br />
use the internal version for WIN32 given in the file.<br />
<br />
<pre><br />
In file included from /home/foo/Tools/include/X11/extensions/Xrender.h:33,<br />
from /home/foo/Tools/include/X11/Xft/Xft.h:47,<br />
from libnrtype/nr-type-xft.cpp:16:<br />
/usr/openwin/include/X11/Xutil.h:56: warning: ignoring #pragma ident <br />
/usr/openwin/include/X11/Xutil.h:117: error: 'Bool' is used as a type, but is <br />
not defined as a type.<br />
/usr/openwin/include/X11/Xutil.h:120: error: 'Pixmap' is used as a type, but is <br />
not defined as a type.<br />
/usr/openwin/include/X11/Xutil.h:121: error: 'Window' is used as a type, but is <br />
not defined as a type.<br />
[...]<br />
</pre><br />
etc. Fixed this by adding #include <X11/Xlib.h><br />
before including Xft.h in src/libnrtype/nr-type-xft.cpp.<br />
<br />
`bind_textdomain_codeset' undeclared in src/main.cpp and src/inkscape.cpp. Just copied the definition in that <br />
file outside the ifdef.<br />
<br />
`fpresetsticky' undeclared (autoconf seems to have checks for it. Solaris has fpsetsticky() when ieeefp.h is included.)<br />
<br />
No rule for target inkscape.desktop - just created an empty rule.<br />
<br />
DONE! It runs on Solaris! Yay! :)<br />
--Colin Marquardt</div>211.222.247.120