<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.inkscape.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Reinhard</id>
	<title>Inkscape Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.inkscape.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Reinhard"/>
	<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/Special:Contributions/Reinhard"/>
	<updated>2026-04-25T12:02:36Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingSunSolaris&amp;diff=68599</id>
		<title>CompilingSunSolaris</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingSunSolaris&amp;diff=68599"/>
		<updated>2011-04-05T11:51:00Z</updated>

		<summary type="html">&lt;p&gt;Reinhard: /* Compiling version 0.48.1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Compiling on Oracle/Sun Solaris =&lt;br /&gt;
&lt;br /&gt;
==Compiling version 0.48.1==&lt;br /&gt;
&lt;br /&gt;
here you can find how to build inkscape 0.48.1 on Solaris 10 (x86) 64 bit. &lt;br /&gt;
&lt;br /&gt;
* Chose a prefix path where to install independent of Solaris' own libraries. In my example --prefix=/usr/local is used for all tools&lt;br /&gt;
* build GNU make and install it into /usr/local/bin&lt;br /&gt;
* Build one of the newest versions of gcc (I built 4.5.1). Before that install the needed libraries gmp, mpfr, mpc also with --prefix=/usr/local. Build gcc. Re-build the gmp/mpfr/mpc. Re-build gcc. After that you should have no further dependencies to /usr/sfw/lib which is important&lt;br /&gt;
* Edit the gcc specs to get a clean compilation independent if you use -m64 or -m32. To achieve this have a look at the *link_arch section where to put in additional -R/usr/local/lib and -R/usr/local/lib/64 (gcc configured to use Sun's ld).&lt;br /&gt;
* build pkg-config with --prefix=/usr/local --libdir=/usr/local/lib/64 for the following packages&lt;br /&gt;
&lt;br /&gt;
For further installations I used a few environment variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=&amp;quot;/usr/local/bin:/usr/bin:/usr/ccs/bin&amp;quot;&lt;br /&gt;
export MAKE=/usr/local/bin/make&lt;br /&gt;
export CC=&amp;quot;gcc -m64&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;g++ -m64&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build and install the following packages with &lt;br /&gt;
''./configure --prefix=/usr/local --libdir=/usr/local/lib/64 --sysconfdir=/usr/local/etc/64 --enable-shared''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zlib-1.2.5&lt;br /&gt;
jpeg-6.2&lt;br /&gt;
gettext-0.17&lt;br /&gt;
libiconv-1.12&lt;br /&gt;
fontconfig-2.8.0&lt;br /&gt;
t1lib-5.1.0&lt;br /&gt;
freetype-2.4.4&lt;br /&gt;
render-0.8&lt;br /&gt;
libxrender-0.8.4&lt;br /&gt;
libpng-1.4.4 (cave: 1.5.x does not work with Inkscape!)&lt;br /&gt;
gsl-1.14&lt;br /&gt;
pixman-0.21.6&lt;br /&gt;
glib-2.28.3&lt;br /&gt;
glibmm-2.24.2&lt;br /&gt;
atk-1.32.0&lt;br /&gt;
pango-1.28.3&lt;br /&gt;
cairo-1.10.2 (rebuild pango after building cairo!!)&lt;br /&gt;
gtk+-2.24.3 (I avoided the very new version 3.....)&lt;br /&gt;
gdk-pixbuf-2.22.1&lt;br /&gt;
poppler-0.16.3 (use the additional flag --enable-xpdf-headers)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then make three small changes to inkscape's source:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/color-profile.cpp, line 8: Change &amp;quot;#include &amp;lt;sys/fcntl.h&amp;gt;&amp;quot; into &amp;quot;#include &amp;lt;fcntl.h&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
src/2geom/isnan.h, line 57: The mentioned &amp;quot;#include &amp;lt;cmath&amp;gt;&amp;quot; must be set&lt;br /&gt;
&lt;br /&gt;
src/2geom/convex-cover.cpp, line 36: include these two lines (ok, quick and dirty....):&lt;br /&gt;
#undef INFINITY&lt;br /&gt;
#define INFINITY (__builtin_inff())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now configure inkscape as described above. You should get a clean compile. --[[User:Reinhard|Reinhard]]&lt;br /&gt;
&lt;br /&gt;
==Compiling version 0.44==&lt;br /&gt;
&lt;br /&gt;
This documents the changes that I needed to make Inkscape compile with gcc 3.3.2 on Solaris 8.&lt;br /&gt;
&lt;br /&gt;
* install all hard dependencies&lt;br /&gt;
* provide a definition of ngettext (thread: http://thread.gmane.org/gmane.comp.graphics.inkscape.devel/15747/focus=15828)&lt;br /&gt;
* patch isfinite() like described here: http://opensolaris-br.org/osbr/index.php?option=com_content&amp;amp;task=view&amp;amp;id=34&amp;amp;Itemid=56&lt;br /&gt;
* src/dom/io/socket.cpp - FIONREAD undeclared: http://opendx.npaci.edu/mail/opendx-general/1999.06/msg00425.html (#include &amp;lt;sys/filio.h&amp;gt;)&lt;br /&gt;
* src/widgets/desktop-widget.cpp: replace round with rint&lt;br /&gt;
* src/trace/potrace/inkscape-potrace.cpp:288: error: `log2' undeclared (first use of this function)&lt;br /&gt;
:Add the following function to the file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// from http://groups.google.de/group/comp.lang.c/msg/8ae70d02495768f5?dmode=source&amp;amp;hl=de&lt;br /&gt;
double log2(double x)&lt;br /&gt;
{&lt;br /&gt;
        static double ln2;&lt;br /&gt;
        if (ln2 == 0.0)&lt;br /&gt;
                ln2 = log (2.0);&lt;br /&gt;
&lt;br /&gt;
        return log (x) / ln2;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Now stuck here (gc6.7, gcc version 3.3.2):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gc.cpp: In function `void Inkscape::GC::&amp;lt;unnamed&amp;gt;::do_init()':&lt;br /&gt;
gc.cpp:32: error: parse error before string constant&lt;br /&gt;
gc.cpp:32: error: `GC_noop1' undeclared (first use this function)&lt;br /&gt;
gc.cpp:32: error: (Each undeclared identifier is reported only once for each &lt;br /&gt;
   function it appears in.)&lt;br /&gt;
gmake[2]: *** [gc.o] Error 1&lt;br /&gt;
gmake[2]: Leaving directory `/home/marquardt/Tools/inkscape-0.44/src'&lt;br /&gt;
gmake[1]: *** [all-recursive] Error 1&lt;br /&gt;
gmake[1]: Leaving directory `/home/marquardt/Tools/inkscape-0.44'&lt;br /&gt;
gmake: *** [all] Error 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1516476&amp;amp;group_id=93438&amp;amp;atid=604306&lt;br /&gt;
&lt;br /&gt;
I got the following patch for &amp;quot;gc6.7/include/gc.h&amp;quot; from Hans Boehm which fixes these problems with gc6.7:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
947a948&lt;br /&gt;
&amp;gt;     extern int _end[], _etext[];&lt;br /&gt;
949,952c950&lt;br /&gt;
&amp;lt; #     define GC_INIT() { extern int _end[], _etext[]; \&lt;br /&gt;
&amp;lt; 		         extern &amp;quot;C&amp;quot; void GC_noop1(GC_word); \&lt;br /&gt;
&amp;lt; 		         GC_noop1((GC_word)_end); \&lt;br /&gt;
&amp;lt; 			 GC_noop1((GC_word)_etext); }&lt;br /&gt;
---&lt;br /&gt;
&amp;gt;       extern &amp;quot;C&amp;quot; void GC_noop1(GC_word);&lt;br /&gt;
954,956c952&lt;br /&gt;
&amp;lt; #     define GC_INIT() { extern int _end[], _etext[]; \&lt;br /&gt;
&amp;lt; 		         extern void GC_noop(); \&lt;br /&gt;
&amp;lt; 		         GC_noop(_end, _etext); }&lt;br /&gt;
---&lt;br /&gt;
&amp;gt;       void GC_noop1();&lt;br /&gt;
957a954,955&lt;br /&gt;
&amp;gt; #   define GC_INIT() { GC_noop1((GC_word)_end); \&lt;br /&gt;
&amp;gt; 		       GC_noop1((GC_word)_etext); }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With these changes, I got Inkscape running fine.&lt;br /&gt;
--[[User:Colin Marquardt|Colin Marquardt]]&lt;br /&gt;
&lt;br /&gt;
==Compiling a 0.39 snapshot==&lt;br /&gt;
&lt;br /&gt;
When trying to compile the CVS snapshot from 2004-05-27 with &lt;br /&gt;
gcc 3.3.2 on a &lt;br /&gt;
&amp;lt;nowiki&amp;gt;SunOS foo 5.8 Generic_108528-22 sun4u sparc SUNW,Sun-Fire-V240&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
machine, I had to fix a few things.&lt;br /&gt;
&lt;br /&gt;
First, I installed the following packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
autoconf-2.59&lt;br /&gt;
automake-1.8.3&lt;br /&gt;
intltool-0.30&lt;br /&gt;
expat-1.95.7&lt;br /&gt;
libpng-1.2.5&lt;br /&gt;
libsigc++-2.0.3&lt;br /&gt;
glib-2.4.2&lt;br /&gt;
glibmm-2.4.2&lt;br /&gt;
atk-1.7.0&lt;br /&gt;
render-0.8&lt;br /&gt;
xrender-0.8.3&lt;br /&gt;
xft-2.1.2&lt;br /&gt;
pango-1.4.0&lt;br /&gt;
gtk+-2.4.2&lt;br /&gt;
gtkmm-2.4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I configured Inkscape with the following switches: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --prefix=/home/foo[[/Tools]]/ --includedir=/home/foo[[/Tools/include]] CPPFLAGS=-I/home/foo[[/Tools/include]]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then &amp;quot;fix&amp;quot; stuff in the inkscape sources:&lt;br /&gt;
&lt;br /&gt;
Uncomment &amp;quot;@[[INTLTOOL_DESKTOP_RULE]]@&amp;quot; in Makefile.&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;inttypes.h&amp;gt;, not &amp;lt;stdint.h&amp;gt; in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/sp-canvas.h,&lt;br /&gt;
src/livarot[[/DblLinked]].h, &lt;br /&gt;
src/livarot[[/LivarotDefs]].h, &lt;br /&gt;
src/livarot[[/AVL]].h, &lt;br /&gt;
src/livarot[[/Shape]].h, &lt;br /&gt;
src/livarot[[/ShapeUtils]].h,&lt;br /&gt;
src/livarot[[/Ligne]].h&lt;br /&gt;
src/livarot[[/AlphaLigne]].h&lt;br /&gt;
src/livarot[[/BitLigne]].h&lt;br /&gt;
src/livarot[[/MyMath]].h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(see&lt;br /&gt;
http://www.lns.cornell.edu/public/COMP/info/autoconf/Header-Portability.html)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Replace round() with rint() according to&lt;br /&gt;
http://news.gw.com/freebsd.gnome/1237 in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
src/object-edit.cpp, &lt;br /&gt;
src/spiral-context.cpp&lt;br /&gt;
src/star-context.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fabsf() was undeclared (I just put in &amp;quot;fabs()&amp;quot;, not sure if this is&lt;br /&gt;
correct) in &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/sp-shape.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(see&lt;br /&gt;
http://gcc.gnu.org/ml/java/2001-01/msg00465.html).&lt;br /&gt;
&lt;br /&gt;
Replaced fabsf(), floorf() and ceilf() with fabs(), floor() and ceil() in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/nr-arena-shape.cpp&lt;br /&gt;
src/display/canvas-bpath.cpp&lt;br /&gt;
src/display/sp-ctrlline.cpp&lt;br /&gt;
src/libnrtype/nr-rasterfont.cpp&lt;br /&gt;
src/livarot[[/AlphaLigne]].cpp&lt;br /&gt;
src/livarot[[/BitLigne]].cpp&lt;br /&gt;
src/livarot[[/Ligne]].cpp&lt;br /&gt;
src/livarot[[/PathOutline]].cpp&lt;br /&gt;
src/livarot[[/ShapeMisc]].cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
isfinite() is undeclared,  use &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;ieeefp.h&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and finite() (see http://devrsrc1.external.hp.com/STKS/impacts/i61.html) in &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/bezier-utils.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Need to include &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;ieeefp.h&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/libnr/nr-svp.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Missing strcasestr() used in libnrtype/nr-type-directory.cpp. I just &lt;br /&gt;
use the internal version for WIN32 given in the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In file included from /home/foo[[/Tools/include/X11/extensions/Xrender]].h:33,&lt;br /&gt;
                 from /home/foo[[/Tools/include/X11/Xft/Xft]].h:47,&lt;br /&gt;
                 from libnrtype/nr-type-xft.cpp:16:&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:56: warning: ignoring #pragma ident &lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:117: error: 'Bool' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:120: error: 'Pixmap' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:121: error: 'Window' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
etc. Fixed this by adding #include &amp;lt;X11[[/Xlib]].h&amp;gt;&lt;br /&gt;
before including Xft.h in src/libnrtype/nr-type-xft.cpp.&lt;br /&gt;
&lt;br /&gt;
`bind_textdomain_codeset' undeclared in src/main.cpp and src/inkscape.cpp. Just copied the definition in that &lt;br /&gt;
file outside the ifdef.&lt;br /&gt;
&lt;br /&gt;
`fpresetsticky' undeclared (autoconf seems to have checks for it. Solaris has fpsetsticky() when ieeefp.h is included.)&lt;br /&gt;
&lt;br /&gt;
No rule for target inkscape.desktop - just created an empty rule.&lt;br /&gt;
&lt;br /&gt;
DONE! It runs on Solaris! Yay! :)&lt;br /&gt;
--Colin Marquardt&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
*[[Compiling Inkscape]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Reinhard</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingSunSolaris&amp;diff=68593</id>
		<title>CompilingSunSolaris</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingSunSolaris&amp;diff=68593"/>
		<updated>2011-04-05T11:49:34Z</updated>

		<summary type="html">&lt;p&gt;Reinhard: /* Compiling version 0.48.1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Compiling on Oracle/Sun Solaris =&lt;br /&gt;
&lt;br /&gt;
==Compiling version 0.48.1==&lt;br /&gt;
&lt;br /&gt;
here you can find how to build inkscape 0.48.1 on Solaris 10 (x86) 64 bit. &lt;br /&gt;
&lt;br /&gt;
* Chose a prefix path where to install independent of Solaris' own libraries. In my example --prefix=/usr/local is used for all tools&lt;br /&gt;
* build GNU make and install it into /usr/local/bin&lt;br /&gt;
* Build one of the newest versions of gcc (I built 4.5.1). Before that install the needed libraries gmp, mpfr, mpc also with --prefix=/usr/local. Build gcc. Re-build the gmp/mpfr/mpc. Re-build gcc. After that you should have no further dependencies to /usr/sfw/lib which is important&lt;br /&gt;
* Edit the gcc specs to get a clean compilation independent if you use -m64 or -m32. To achieve this have a look at the *link_arch section where to put in additional -R/usr/local/lib and -R/usr/local/lib/64.&lt;br /&gt;
* build pkg-config with --prefix=/usr/local --libdir=/usr/local/lib/64 for the following packages&lt;br /&gt;
&lt;br /&gt;
For further installations I used a few environment variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=&amp;quot;/usr/local/bin:/usr/bin:/usr/ccs/bin&amp;quot;&lt;br /&gt;
export MAKE=/usr/local/bin/make&lt;br /&gt;
export CC=&amp;quot;gcc -m64&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;g++ -m64&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build and install the following packages with &lt;br /&gt;
''./configure --prefix=/usr/local --libdir=/usr/local/lib/64 --sysconfdir=/usr/local/etc/64 --enable-shared''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zlib-1.2.5&lt;br /&gt;
jpeg-6.2&lt;br /&gt;
gettext-0.17&lt;br /&gt;
libiconv-1.12&lt;br /&gt;
fontconfig-2.8.0&lt;br /&gt;
t1lib-5.1.0&lt;br /&gt;
freetype-2.4.4&lt;br /&gt;
render-0.8&lt;br /&gt;
libxrender-0.8.4&lt;br /&gt;
libpng-1.4.4 (cave: 1.5.x does not work with Inkscape!)&lt;br /&gt;
gsl-1.14&lt;br /&gt;
pixman-0.21.6&lt;br /&gt;
glib-2.28.3&lt;br /&gt;
glibmm-2.24.2&lt;br /&gt;
atk-1.32.0&lt;br /&gt;
pango-1.28.3&lt;br /&gt;
cairo-1.10.2 (rebuild pango after building cairo!!)&lt;br /&gt;
gtk+-2.24.3 (I avoided the very new version 3.....)&lt;br /&gt;
gdk-pixbuf-2.22.1&lt;br /&gt;
poppler-0.16.3 (use the additional flag --enable-xpdf-headers)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then make three small changes to inkscape's source:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/color-profile.cpp, line 8: Change &amp;quot;#include &amp;lt;sys/fcntl.h&amp;gt;&amp;quot; into &amp;quot;#include &amp;lt;fcntl.h&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
src/2geom/isnan.h, line 57: The mentioned &amp;quot;#include &amp;lt;cmath&amp;gt;&amp;quot; must be set&lt;br /&gt;
&lt;br /&gt;
src/2geom/convex-cover.cpp, line 36: include these two lines (ok, quick and dirty....):&lt;br /&gt;
#undef INFINITY&lt;br /&gt;
#define INFINITY (__builtin_inff())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now configure inkscape as described above. You should get a clean compile. --[[User:Reinhard|Reinhard]]&lt;br /&gt;
&lt;br /&gt;
==Compiling version 0.44==&lt;br /&gt;
&lt;br /&gt;
This documents the changes that I needed to make Inkscape compile with gcc 3.3.2 on Solaris 8.&lt;br /&gt;
&lt;br /&gt;
* install all hard dependencies&lt;br /&gt;
* provide a definition of ngettext (thread: http://thread.gmane.org/gmane.comp.graphics.inkscape.devel/15747/focus=15828)&lt;br /&gt;
* patch isfinite() like described here: http://opensolaris-br.org/osbr/index.php?option=com_content&amp;amp;task=view&amp;amp;id=34&amp;amp;Itemid=56&lt;br /&gt;
* src/dom/io/socket.cpp - FIONREAD undeclared: http://opendx.npaci.edu/mail/opendx-general/1999.06/msg00425.html (#include &amp;lt;sys/filio.h&amp;gt;)&lt;br /&gt;
* src/widgets/desktop-widget.cpp: replace round with rint&lt;br /&gt;
* src/trace/potrace/inkscape-potrace.cpp:288: error: `log2' undeclared (first use of this function)&lt;br /&gt;
:Add the following function to the file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// from http://groups.google.de/group/comp.lang.c/msg/8ae70d02495768f5?dmode=source&amp;amp;hl=de&lt;br /&gt;
double log2(double x)&lt;br /&gt;
{&lt;br /&gt;
        static double ln2;&lt;br /&gt;
        if (ln2 == 0.0)&lt;br /&gt;
                ln2 = log (2.0);&lt;br /&gt;
&lt;br /&gt;
        return log (x) / ln2;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Now stuck here (gc6.7, gcc version 3.3.2):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gc.cpp: In function `void Inkscape::GC::&amp;lt;unnamed&amp;gt;::do_init()':&lt;br /&gt;
gc.cpp:32: error: parse error before string constant&lt;br /&gt;
gc.cpp:32: error: `GC_noop1' undeclared (first use this function)&lt;br /&gt;
gc.cpp:32: error: (Each undeclared identifier is reported only once for each &lt;br /&gt;
   function it appears in.)&lt;br /&gt;
gmake[2]: *** [gc.o] Error 1&lt;br /&gt;
gmake[2]: Leaving directory `/home/marquardt/Tools/inkscape-0.44/src'&lt;br /&gt;
gmake[1]: *** [all-recursive] Error 1&lt;br /&gt;
gmake[1]: Leaving directory `/home/marquardt/Tools/inkscape-0.44'&lt;br /&gt;
gmake: *** [all] Error 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1516476&amp;amp;group_id=93438&amp;amp;atid=604306&lt;br /&gt;
&lt;br /&gt;
I got the following patch for &amp;quot;gc6.7/include/gc.h&amp;quot; from Hans Boehm which fixes these problems with gc6.7:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
947a948&lt;br /&gt;
&amp;gt;     extern int _end[], _etext[];&lt;br /&gt;
949,952c950&lt;br /&gt;
&amp;lt; #     define GC_INIT() { extern int _end[], _etext[]; \&lt;br /&gt;
&amp;lt; 		         extern &amp;quot;C&amp;quot; void GC_noop1(GC_word); \&lt;br /&gt;
&amp;lt; 		         GC_noop1((GC_word)_end); \&lt;br /&gt;
&amp;lt; 			 GC_noop1((GC_word)_etext); }&lt;br /&gt;
---&lt;br /&gt;
&amp;gt;       extern &amp;quot;C&amp;quot; void GC_noop1(GC_word);&lt;br /&gt;
954,956c952&lt;br /&gt;
&amp;lt; #     define GC_INIT() { extern int _end[], _etext[]; \&lt;br /&gt;
&amp;lt; 		         extern void GC_noop(); \&lt;br /&gt;
&amp;lt; 		         GC_noop(_end, _etext); }&lt;br /&gt;
---&lt;br /&gt;
&amp;gt;       void GC_noop1();&lt;br /&gt;
957a954,955&lt;br /&gt;
&amp;gt; #   define GC_INIT() { GC_noop1((GC_word)_end); \&lt;br /&gt;
&amp;gt; 		       GC_noop1((GC_word)_etext); }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With these changes, I got Inkscape running fine.&lt;br /&gt;
--[[User:Colin Marquardt|Colin Marquardt]]&lt;br /&gt;
&lt;br /&gt;
==Compiling a 0.39 snapshot==&lt;br /&gt;
&lt;br /&gt;
When trying to compile the CVS snapshot from 2004-05-27 with &lt;br /&gt;
gcc 3.3.2 on a &lt;br /&gt;
&amp;lt;nowiki&amp;gt;SunOS foo 5.8 Generic_108528-22 sun4u sparc SUNW,Sun-Fire-V240&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
machine, I had to fix a few things.&lt;br /&gt;
&lt;br /&gt;
First, I installed the following packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
autoconf-2.59&lt;br /&gt;
automake-1.8.3&lt;br /&gt;
intltool-0.30&lt;br /&gt;
expat-1.95.7&lt;br /&gt;
libpng-1.2.5&lt;br /&gt;
libsigc++-2.0.3&lt;br /&gt;
glib-2.4.2&lt;br /&gt;
glibmm-2.4.2&lt;br /&gt;
atk-1.7.0&lt;br /&gt;
render-0.8&lt;br /&gt;
xrender-0.8.3&lt;br /&gt;
xft-2.1.2&lt;br /&gt;
pango-1.4.0&lt;br /&gt;
gtk+-2.4.2&lt;br /&gt;
gtkmm-2.4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I configured Inkscape with the following switches: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --prefix=/home/foo[[/Tools]]/ --includedir=/home/foo[[/Tools/include]] CPPFLAGS=-I/home/foo[[/Tools/include]]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then &amp;quot;fix&amp;quot; stuff in the inkscape sources:&lt;br /&gt;
&lt;br /&gt;
Uncomment &amp;quot;@[[INTLTOOL_DESKTOP_RULE]]@&amp;quot; in Makefile.&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;inttypes.h&amp;gt;, not &amp;lt;stdint.h&amp;gt; in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/sp-canvas.h,&lt;br /&gt;
src/livarot[[/DblLinked]].h, &lt;br /&gt;
src/livarot[[/LivarotDefs]].h, &lt;br /&gt;
src/livarot[[/AVL]].h, &lt;br /&gt;
src/livarot[[/Shape]].h, &lt;br /&gt;
src/livarot[[/ShapeUtils]].h,&lt;br /&gt;
src/livarot[[/Ligne]].h&lt;br /&gt;
src/livarot[[/AlphaLigne]].h&lt;br /&gt;
src/livarot[[/BitLigne]].h&lt;br /&gt;
src/livarot[[/MyMath]].h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(see&lt;br /&gt;
http://www.lns.cornell.edu/public/COMP/info/autoconf/Header-Portability.html)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Replace round() with rint() according to&lt;br /&gt;
http://news.gw.com/freebsd.gnome/1237 in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
src/object-edit.cpp, &lt;br /&gt;
src/spiral-context.cpp&lt;br /&gt;
src/star-context.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fabsf() was undeclared (I just put in &amp;quot;fabs()&amp;quot;, not sure if this is&lt;br /&gt;
correct) in &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/sp-shape.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(see&lt;br /&gt;
http://gcc.gnu.org/ml/java/2001-01/msg00465.html).&lt;br /&gt;
&lt;br /&gt;
Replaced fabsf(), floorf() and ceilf() with fabs(), floor() and ceil() in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/nr-arena-shape.cpp&lt;br /&gt;
src/display/canvas-bpath.cpp&lt;br /&gt;
src/display/sp-ctrlline.cpp&lt;br /&gt;
src/libnrtype/nr-rasterfont.cpp&lt;br /&gt;
src/livarot[[/AlphaLigne]].cpp&lt;br /&gt;
src/livarot[[/BitLigne]].cpp&lt;br /&gt;
src/livarot[[/Ligne]].cpp&lt;br /&gt;
src/livarot[[/PathOutline]].cpp&lt;br /&gt;
src/livarot[[/ShapeMisc]].cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
isfinite() is undeclared,  use &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;ieeefp.h&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and finite() (see http://devrsrc1.external.hp.com/STKS/impacts/i61.html) in &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/bezier-utils.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Need to include &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;ieeefp.h&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/libnr/nr-svp.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Missing strcasestr() used in libnrtype/nr-type-directory.cpp. I just &lt;br /&gt;
use the internal version for WIN32 given in the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In file included from /home/foo[[/Tools/include/X11/extensions/Xrender]].h:33,&lt;br /&gt;
                 from /home/foo[[/Tools/include/X11/Xft/Xft]].h:47,&lt;br /&gt;
                 from libnrtype/nr-type-xft.cpp:16:&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:56: warning: ignoring #pragma ident &lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:117: error: 'Bool' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:120: error: 'Pixmap' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:121: error: 'Window' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
etc. Fixed this by adding #include &amp;lt;X11[[/Xlib]].h&amp;gt;&lt;br /&gt;
before including Xft.h in src/libnrtype/nr-type-xft.cpp.&lt;br /&gt;
&lt;br /&gt;
`bind_textdomain_codeset' undeclared in src/main.cpp and src/inkscape.cpp. Just copied the definition in that &lt;br /&gt;
file outside the ifdef.&lt;br /&gt;
&lt;br /&gt;
`fpresetsticky' undeclared (autoconf seems to have checks for it. Solaris has fpsetsticky() when ieeefp.h is included.)&lt;br /&gt;
&lt;br /&gt;
No rule for target inkscape.desktop - just created an empty rule.&lt;br /&gt;
&lt;br /&gt;
DONE! It runs on Solaris! Yay! :)&lt;br /&gt;
--Colin Marquardt&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
*[[Compiling Inkscape]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Reinhard</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingSunSolaris&amp;diff=68299</id>
		<title>CompilingSunSolaris</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingSunSolaris&amp;diff=68299"/>
		<updated>2011-03-24T14:41:03Z</updated>

		<summary type="html">&lt;p&gt;Reinhard: /* Compiling version 0.48.1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Compiling on Oracle/Sun Solaris =&lt;br /&gt;
&lt;br /&gt;
==Compiling version 0.48.1==&lt;br /&gt;
&lt;br /&gt;
here you can find how to build inkscape 0.48.1 on Solaris 10 (x86) 64 bit. &lt;br /&gt;
&lt;br /&gt;
* Chose a prefix path where to install independent of Solaris' own libraries. In my example --prefix=/usr/local is used for all tools&lt;br /&gt;
* build GNU make and install it into /usr/local/bin&lt;br /&gt;
* Build one of the newest versions of gcc (I built 4.5.1). Before that install the needed libraries gmp, mpfr, mpc also with --prefix=/usr/local. Build gcc. Re-build the gmp/mpfr/mpc. Re-build gcc. After that you should have no further dependencies to /usr/sfw/lib which is important&lt;br /&gt;
* Edit the gcc specs to get a clean compilation independent if you use -m64 or -m32. To achieve this have a look at the *link_arch section where to put in additional -R/usr/local/lib and -R/usr/local/lib/64.&lt;br /&gt;
&lt;br /&gt;
For further installations I used a few environment variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=&amp;quot;/usr/local/bin:/usr/bin:/usr/ccs/bin&amp;quot;&lt;br /&gt;
export MAKE=/usr/local/bin/make&lt;br /&gt;
export CC=&amp;quot;gcc -m64&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;g++ -m64&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build and install the following packages with &lt;br /&gt;
''./configure --prefix=/usr/local --libdir=/usr/local/lib/64 --sysconfdir=/usr/local/etc/64 --enable-shared''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zlib-1.2.5&lt;br /&gt;
jpeg-6.2&lt;br /&gt;
gettext-0.17&lt;br /&gt;
libiconv-1.12&lt;br /&gt;
fontconfig-2.8.0&lt;br /&gt;
t1lib-5.1.0&lt;br /&gt;
freetype-2.4.4&lt;br /&gt;
render-0.8&lt;br /&gt;
libxrender-0.8.4&lt;br /&gt;
libpng-1.4.4 (cave: 1.5.x does not work with Inkscape!)&lt;br /&gt;
gsl-1.14&lt;br /&gt;
pixman-0.21.6&lt;br /&gt;
glib-2.28.3&lt;br /&gt;
glibmm-2.24.2&lt;br /&gt;
atk-1.32.0&lt;br /&gt;
pango-1.28.3&lt;br /&gt;
cairo-1.10.2 (rebuild pango after building cairo!!)&lt;br /&gt;
gtk+-2.24.3 (I avoided the very new version 3.....)&lt;br /&gt;
gdk-pixbuf-2.22.1&lt;br /&gt;
poppler-0.16.3 (use the additional flag --enable-xpdf-headers)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then make three small changes to inkscape's source:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/color-profile.cpp, line 8: Change &amp;quot;#include &amp;lt;sys/fcntl.h&amp;gt;&amp;quot; into &amp;quot;#include &amp;lt;fcntl.h&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
src/2geom/isnan.h, line 57: The mentioned &amp;quot;#include &amp;lt;cmath&amp;gt;&amp;quot; must be set&lt;br /&gt;
&lt;br /&gt;
src/2geom/convex-cover.cpp, line 36: include these two lines (ok, quick and dirty....):&lt;br /&gt;
#undef INFINITY&lt;br /&gt;
#define INFINITY (__builtin_inff())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now configure inkscape as described above. You should get a clean compile. --[[User:Reinhard|Reinhard]]&lt;br /&gt;
&lt;br /&gt;
==Compiling version 0.44==&lt;br /&gt;
&lt;br /&gt;
This documents the changes that I needed to make Inkscape compile with gcc 3.3.2 on Solaris 8.&lt;br /&gt;
&lt;br /&gt;
* install all hard dependencies&lt;br /&gt;
* provide a definition of ngettext (thread: http://thread.gmane.org/gmane.comp.graphics.inkscape.devel/15747/focus=15828)&lt;br /&gt;
* patch isfinite() like described here: http://opensolaris-br.org/osbr/index.php?option=com_content&amp;amp;task=view&amp;amp;id=34&amp;amp;Itemid=56&lt;br /&gt;
* src/dom/io/socket.cpp - FIONREAD undeclared: http://opendx.npaci.edu/mail/opendx-general/1999.06/msg00425.html (#include &amp;lt;sys/filio.h&amp;gt;)&lt;br /&gt;
* src/widgets/desktop-widget.cpp: replace round with rint&lt;br /&gt;
* src/trace/potrace/inkscape-potrace.cpp:288: error: `log2' undeclared (first use of this function)&lt;br /&gt;
:Add the following function to the file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// from http://groups.google.de/group/comp.lang.c/msg/8ae70d02495768f5?dmode=source&amp;amp;hl=de&lt;br /&gt;
double log2(double x)&lt;br /&gt;
{&lt;br /&gt;
        static double ln2;&lt;br /&gt;
        if (ln2 == 0.0)&lt;br /&gt;
                ln2 = log (2.0);&lt;br /&gt;
&lt;br /&gt;
        return log (x) / ln2;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Now stuck here (gc6.7, gcc version 3.3.2):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gc.cpp: In function `void Inkscape::GC::&amp;lt;unnamed&amp;gt;::do_init()':&lt;br /&gt;
gc.cpp:32: error: parse error before string constant&lt;br /&gt;
gc.cpp:32: error: `GC_noop1' undeclared (first use this function)&lt;br /&gt;
gc.cpp:32: error: (Each undeclared identifier is reported only once for each &lt;br /&gt;
   function it appears in.)&lt;br /&gt;
gmake[2]: *** [gc.o] Error 1&lt;br /&gt;
gmake[2]: Leaving directory `/home/marquardt/Tools/inkscape-0.44/src'&lt;br /&gt;
gmake[1]: *** [all-recursive] Error 1&lt;br /&gt;
gmake[1]: Leaving directory `/home/marquardt/Tools/inkscape-0.44'&lt;br /&gt;
gmake: *** [all] Error 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1516476&amp;amp;group_id=93438&amp;amp;atid=604306&lt;br /&gt;
&lt;br /&gt;
I got the following patch for &amp;quot;gc6.7/include/gc.h&amp;quot; from Hans Boehm which fixes these problems with gc6.7:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
947a948&lt;br /&gt;
&amp;gt;     extern int _end[], _etext[];&lt;br /&gt;
949,952c950&lt;br /&gt;
&amp;lt; #     define GC_INIT() { extern int _end[], _etext[]; \&lt;br /&gt;
&amp;lt; 		         extern &amp;quot;C&amp;quot; void GC_noop1(GC_word); \&lt;br /&gt;
&amp;lt; 		         GC_noop1((GC_word)_end); \&lt;br /&gt;
&amp;lt; 			 GC_noop1((GC_word)_etext); }&lt;br /&gt;
---&lt;br /&gt;
&amp;gt;       extern &amp;quot;C&amp;quot; void GC_noop1(GC_word);&lt;br /&gt;
954,956c952&lt;br /&gt;
&amp;lt; #     define GC_INIT() { extern int _end[], _etext[]; \&lt;br /&gt;
&amp;lt; 		         extern void GC_noop(); \&lt;br /&gt;
&amp;lt; 		         GC_noop(_end, _etext); }&lt;br /&gt;
---&lt;br /&gt;
&amp;gt;       void GC_noop1();&lt;br /&gt;
957a954,955&lt;br /&gt;
&amp;gt; #   define GC_INIT() { GC_noop1((GC_word)_end); \&lt;br /&gt;
&amp;gt; 		       GC_noop1((GC_word)_etext); }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With these changes, I got Inkscape running fine.&lt;br /&gt;
--[[User:Colin Marquardt|Colin Marquardt]]&lt;br /&gt;
&lt;br /&gt;
==Compiling a 0.39 snapshot==&lt;br /&gt;
&lt;br /&gt;
When trying to compile the CVS snapshot from 2004-05-27 with &lt;br /&gt;
gcc 3.3.2 on a &lt;br /&gt;
&amp;lt;nowiki&amp;gt;SunOS foo 5.8 Generic_108528-22 sun4u sparc SUNW,Sun-Fire-V240&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
machine, I had to fix a few things.&lt;br /&gt;
&lt;br /&gt;
First, I installed the following packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
autoconf-2.59&lt;br /&gt;
automake-1.8.3&lt;br /&gt;
intltool-0.30&lt;br /&gt;
expat-1.95.7&lt;br /&gt;
libpng-1.2.5&lt;br /&gt;
libsigc++-2.0.3&lt;br /&gt;
glib-2.4.2&lt;br /&gt;
glibmm-2.4.2&lt;br /&gt;
atk-1.7.0&lt;br /&gt;
render-0.8&lt;br /&gt;
xrender-0.8.3&lt;br /&gt;
xft-2.1.2&lt;br /&gt;
pango-1.4.0&lt;br /&gt;
gtk+-2.4.2&lt;br /&gt;
gtkmm-2.4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I configured Inkscape with the following switches: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --prefix=/home/foo[[/Tools]]/ --includedir=/home/foo[[/Tools/include]] CPPFLAGS=-I/home/foo[[/Tools/include]]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then &amp;quot;fix&amp;quot; stuff in the inkscape sources:&lt;br /&gt;
&lt;br /&gt;
Uncomment &amp;quot;@[[INTLTOOL_DESKTOP_RULE]]@&amp;quot; in Makefile.&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;inttypes.h&amp;gt;, not &amp;lt;stdint.h&amp;gt; in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/sp-canvas.h,&lt;br /&gt;
src/livarot[[/DblLinked]].h, &lt;br /&gt;
src/livarot[[/LivarotDefs]].h, &lt;br /&gt;
src/livarot[[/AVL]].h, &lt;br /&gt;
src/livarot[[/Shape]].h, &lt;br /&gt;
src/livarot[[/ShapeUtils]].h,&lt;br /&gt;
src/livarot[[/Ligne]].h&lt;br /&gt;
src/livarot[[/AlphaLigne]].h&lt;br /&gt;
src/livarot[[/BitLigne]].h&lt;br /&gt;
src/livarot[[/MyMath]].h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(see&lt;br /&gt;
http://www.lns.cornell.edu/public/COMP/info/autoconf/Header-Portability.html)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Replace round() with rint() according to&lt;br /&gt;
http://news.gw.com/freebsd.gnome/1237 in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
src/object-edit.cpp, &lt;br /&gt;
src/spiral-context.cpp&lt;br /&gt;
src/star-context.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fabsf() was undeclared (I just put in &amp;quot;fabs()&amp;quot;, not sure if this is&lt;br /&gt;
correct) in &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/sp-shape.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(see&lt;br /&gt;
http://gcc.gnu.org/ml/java/2001-01/msg00465.html).&lt;br /&gt;
&lt;br /&gt;
Replaced fabsf(), floorf() and ceilf() with fabs(), floor() and ceil() in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/nr-arena-shape.cpp&lt;br /&gt;
src/display/canvas-bpath.cpp&lt;br /&gt;
src/display/sp-ctrlline.cpp&lt;br /&gt;
src/libnrtype/nr-rasterfont.cpp&lt;br /&gt;
src/livarot[[/AlphaLigne]].cpp&lt;br /&gt;
src/livarot[[/BitLigne]].cpp&lt;br /&gt;
src/livarot[[/Ligne]].cpp&lt;br /&gt;
src/livarot[[/PathOutline]].cpp&lt;br /&gt;
src/livarot[[/ShapeMisc]].cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
isfinite() is undeclared,  use &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;ieeefp.h&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and finite() (see http://devrsrc1.external.hp.com/STKS/impacts/i61.html) in &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/bezier-utils.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Need to include &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;ieeefp.h&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/libnr/nr-svp.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Missing strcasestr() used in libnrtype/nr-type-directory.cpp. I just &lt;br /&gt;
use the internal version for WIN32 given in the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In file included from /home/foo[[/Tools/include/X11/extensions/Xrender]].h:33,&lt;br /&gt;
                 from /home/foo[[/Tools/include/X11/Xft/Xft]].h:47,&lt;br /&gt;
                 from libnrtype/nr-type-xft.cpp:16:&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:56: warning: ignoring #pragma ident &lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:117: error: 'Bool' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:120: error: 'Pixmap' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:121: error: 'Window' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
etc. Fixed this by adding #include &amp;lt;X11[[/Xlib]].h&amp;gt;&lt;br /&gt;
before including Xft.h in src/libnrtype/nr-type-xft.cpp.&lt;br /&gt;
&lt;br /&gt;
`bind_textdomain_codeset' undeclared in src/main.cpp and src/inkscape.cpp. Just copied the definition in that &lt;br /&gt;
file outside the ifdef.&lt;br /&gt;
&lt;br /&gt;
`fpresetsticky' undeclared (autoconf seems to have checks for it. Solaris has fpsetsticky() when ieeefp.h is included.)&lt;br /&gt;
&lt;br /&gt;
No rule for target inkscape.desktop - just created an empty rule.&lt;br /&gt;
&lt;br /&gt;
DONE! It runs on Solaris! Yay! :)&lt;br /&gt;
--Colin Marquardt&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
*[[Compiling Inkscape]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Reinhard</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingSunSolaris&amp;diff=68293</id>
		<title>CompilingSunSolaris</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingSunSolaris&amp;diff=68293"/>
		<updated>2011-03-24T14:39:17Z</updated>

		<summary type="html">&lt;p&gt;Reinhard: /* Compiling version 0.48.1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Compiling on Oracle/Sun Solaris =&lt;br /&gt;
&lt;br /&gt;
==Compiling version 0.48.1==&lt;br /&gt;
&lt;br /&gt;
here you can find how to build inkscape 0.48.1 on Solaris 10 (x86) 64 bit. &lt;br /&gt;
&lt;br /&gt;
* Chose a prefix path where to install independent of Solaris' own libraries. In my example --prefix=/usr/local is used for all tools&lt;br /&gt;
* build GNU make and install it into /usr/local/bin&lt;br /&gt;
* Build one of the newest versions of gcc (I built 4.5.1). Before that install the needed libraries gmp, mpfr, mpc also with --prefix=/usr/local. Build gcc. Re-build the gmp/mpfr/mpc. Re-build gcc. After that you should have no further dependencies to /usr/sfw/lib which is important&lt;br /&gt;
* Edit the gcc specs to get a clean compilation independent if you use -m64 or -m32. To achieve this have a look at the *link_arch section where to put in additional -R/usr/local/lib and -R/usr/local/lib/64.&lt;br /&gt;
&lt;br /&gt;
For further installations I used a few environment variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=&amp;quot;/usr/local/bin:/usr/bin:/usr/ccs/bin&amp;quot;&lt;br /&gt;
export MAKE=/usr/local/bin/make&lt;br /&gt;
export CC=&amp;quot;gcc -m64&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;g++ -m64&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build and install the following packages with &lt;br /&gt;
''./configure --prefix=/usr/local --libdir=/usr/local/lib/64 --sysconfdir=/usr/local/etc/64 --enable-shared''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zlib-1.2.5&lt;br /&gt;
jpeg-6.2&lt;br /&gt;
gettext-0.17&lt;br /&gt;
libiconv-1.12&lt;br /&gt;
fontconfig-2.8.0&lt;br /&gt;
t1lib-5.1.0&lt;br /&gt;
freetype-2.4.4&lt;br /&gt;
render-0.8&lt;br /&gt;
libxrender-0.8.4&lt;br /&gt;
libpng-1.4.4 ''(cave: 1.5.x does not work with Inkscape!)''&lt;br /&gt;
gsl-1.14&lt;br /&gt;
pixman-0.21.6&lt;br /&gt;
glib-2.28.3&lt;br /&gt;
glibmm-2.24.2&lt;br /&gt;
atk-1.32.0&lt;br /&gt;
pango-1.28.3&lt;br /&gt;
cairo-1.10.2 ''(rebuild pango after building cairo!!)''&lt;br /&gt;
gtk+-2.24.3 ''(I avoided the very new version 3.....)''&lt;br /&gt;
gdk-pixbuf-2.22.1&lt;br /&gt;
poppler-0.16.3 ''(use the additional flag --enable-xpdf-headers)''&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then make three small changes to inkscape's source:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/color-profile.cpp, line 8: Change '''#include &amp;lt;sys/fcntl.h&amp;gt;''' into '''#include &amp;lt;fcntl.h&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
src/2geom/isnan.h, line 57: The mentioned '''#include &amp;lt;cmath&amp;gt;''' must be set&lt;br /&gt;
&lt;br /&gt;
src/2geom/convex-cover.cpp, line 36: include these two lines (ok, quick and dirty....):&lt;br /&gt;
'''#undef INFINITY&lt;br /&gt;
#define INFINITY (__builtin_inff())'''&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now configure inkscape as described above. You should get a clean compile. --[[User:Reinhard|Reinhard]]&lt;br /&gt;
&lt;br /&gt;
==Compiling version 0.44==&lt;br /&gt;
&lt;br /&gt;
This documents the changes that I needed to make Inkscape compile with gcc 3.3.2 on Solaris 8.&lt;br /&gt;
&lt;br /&gt;
* install all hard dependencies&lt;br /&gt;
* provide a definition of ngettext (thread: http://thread.gmane.org/gmane.comp.graphics.inkscape.devel/15747/focus=15828)&lt;br /&gt;
* patch isfinite() like described here: http://opensolaris-br.org/osbr/index.php?option=com_content&amp;amp;task=view&amp;amp;id=34&amp;amp;Itemid=56&lt;br /&gt;
* src/dom/io/socket.cpp - FIONREAD undeclared: http://opendx.npaci.edu/mail/opendx-general/1999.06/msg00425.html (#include &amp;lt;sys/filio.h&amp;gt;)&lt;br /&gt;
* src/widgets/desktop-widget.cpp: replace round with rint&lt;br /&gt;
* src/trace/potrace/inkscape-potrace.cpp:288: error: `log2' undeclared (first use of this function)&lt;br /&gt;
:Add the following function to the file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// from http://groups.google.de/group/comp.lang.c/msg/8ae70d02495768f5?dmode=source&amp;amp;hl=de&lt;br /&gt;
double log2(double x)&lt;br /&gt;
{&lt;br /&gt;
        static double ln2;&lt;br /&gt;
        if (ln2 == 0.0)&lt;br /&gt;
                ln2 = log (2.0);&lt;br /&gt;
&lt;br /&gt;
        return log (x) / ln2;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Now stuck here (gc6.7, gcc version 3.3.2):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gc.cpp: In function `void Inkscape::GC::&amp;lt;unnamed&amp;gt;::do_init()':&lt;br /&gt;
gc.cpp:32: error: parse error before string constant&lt;br /&gt;
gc.cpp:32: error: `GC_noop1' undeclared (first use this function)&lt;br /&gt;
gc.cpp:32: error: (Each undeclared identifier is reported only once for each &lt;br /&gt;
   function it appears in.)&lt;br /&gt;
gmake[2]: *** [gc.o] Error 1&lt;br /&gt;
gmake[2]: Leaving directory `/home/marquardt/Tools/inkscape-0.44/src'&lt;br /&gt;
gmake[1]: *** [all-recursive] Error 1&lt;br /&gt;
gmake[1]: Leaving directory `/home/marquardt/Tools/inkscape-0.44'&lt;br /&gt;
gmake: *** [all] Error 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1516476&amp;amp;group_id=93438&amp;amp;atid=604306&lt;br /&gt;
&lt;br /&gt;
I got the following patch for &amp;quot;gc6.7/include/gc.h&amp;quot; from Hans Boehm which fixes these problems with gc6.7:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
947a948&lt;br /&gt;
&amp;gt;     extern int _end[], _etext[];&lt;br /&gt;
949,952c950&lt;br /&gt;
&amp;lt; #     define GC_INIT() { extern int _end[], _etext[]; \&lt;br /&gt;
&amp;lt; 		         extern &amp;quot;C&amp;quot; void GC_noop1(GC_word); \&lt;br /&gt;
&amp;lt; 		         GC_noop1((GC_word)_end); \&lt;br /&gt;
&amp;lt; 			 GC_noop1((GC_word)_etext); }&lt;br /&gt;
---&lt;br /&gt;
&amp;gt;       extern &amp;quot;C&amp;quot; void GC_noop1(GC_word);&lt;br /&gt;
954,956c952&lt;br /&gt;
&amp;lt; #     define GC_INIT() { extern int _end[], _etext[]; \&lt;br /&gt;
&amp;lt; 		         extern void GC_noop(); \&lt;br /&gt;
&amp;lt; 		         GC_noop(_end, _etext); }&lt;br /&gt;
---&lt;br /&gt;
&amp;gt;       void GC_noop1();&lt;br /&gt;
957a954,955&lt;br /&gt;
&amp;gt; #   define GC_INIT() { GC_noop1((GC_word)_end); \&lt;br /&gt;
&amp;gt; 		       GC_noop1((GC_word)_etext); }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With these changes, I got Inkscape running fine.&lt;br /&gt;
--[[User:Colin Marquardt|Colin Marquardt]]&lt;br /&gt;
&lt;br /&gt;
==Compiling a 0.39 snapshot==&lt;br /&gt;
&lt;br /&gt;
When trying to compile the CVS snapshot from 2004-05-27 with &lt;br /&gt;
gcc 3.3.2 on a &lt;br /&gt;
&amp;lt;nowiki&amp;gt;SunOS foo 5.8 Generic_108528-22 sun4u sparc SUNW,Sun-Fire-V240&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
machine, I had to fix a few things.&lt;br /&gt;
&lt;br /&gt;
First, I installed the following packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
autoconf-2.59&lt;br /&gt;
automake-1.8.3&lt;br /&gt;
intltool-0.30&lt;br /&gt;
expat-1.95.7&lt;br /&gt;
libpng-1.2.5&lt;br /&gt;
libsigc++-2.0.3&lt;br /&gt;
glib-2.4.2&lt;br /&gt;
glibmm-2.4.2&lt;br /&gt;
atk-1.7.0&lt;br /&gt;
render-0.8&lt;br /&gt;
xrender-0.8.3&lt;br /&gt;
xft-2.1.2&lt;br /&gt;
pango-1.4.0&lt;br /&gt;
gtk+-2.4.2&lt;br /&gt;
gtkmm-2.4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I configured Inkscape with the following switches: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --prefix=/home/foo[[/Tools]]/ --includedir=/home/foo[[/Tools/include]] CPPFLAGS=-I/home/foo[[/Tools/include]]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then &amp;quot;fix&amp;quot; stuff in the inkscape sources:&lt;br /&gt;
&lt;br /&gt;
Uncomment &amp;quot;@[[INTLTOOL_DESKTOP_RULE]]@&amp;quot; in Makefile.&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;inttypes.h&amp;gt;, not &amp;lt;stdint.h&amp;gt; in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/sp-canvas.h,&lt;br /&gt;
src/livarot[[/DblLinked]].h, &lt;br /&gt;
src/livarot[[/LivarotDefs]].h, &lt;br /&gt;
src/livarot[[/AVL]].h, &lt;br /&gt;
src/livarot[[/Shape]].h, &lt;br /&gt;
src/livarot[[/ShapeUtils]].h,&lt;br /&gt;
src/livarot[[/Ligne]].h&lt;br /&gt;
src/livarot[[/AlphaLigne]].h&lt;br /&gt;
src/livarot[[/BitLigne]].h&lt;br /&gt;
src/livarot[[/MyMath]].h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(see&lt;br /&gt;
http://www.lns.cornell.edu/public/COMP/info/autoconf/Header-Portability.html)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Replace round() with rint() according to&lt;br /&gt;
http://news.gw.com/freebsd.gnome/1237 in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
src/object-edit.cpp, &lt;br /&gt;
src/spiral-context.cpp&lt;br /&gt;
src/star-context.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fabsf() was undeclared (I just put in &amp;quot;fabs()&amp;quot;, not sure if this is&lt;br /&gt;
correct) in &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/sp-shape.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(see&lt;br /&gt;
http://gcc.gnu.org/ml/java/2001-01/msg00465.html).&lt;br /&gt;
&lt;br /&gt;
Replaced fabsf(), floorf() and ceilf() with fabs(), floor() and ceil() in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/nr-arena-shape.cpp&lt;br /&gt;
src/display/canvas-bpath.cpp&lt;br /&gt;
src/display/sp-ctrlline.cpp&lt;br /&gt;
src/libnrtype/nr-rasterfont.cpp&lt;br /&gt;
src/livarot[[/AlphaLigne]].cpp&lt;br /&gt;
src/livarot[[/BitLigne]].cpp&lt;br /&gt;
src/livarot[[/Ligne]].cpp&lt;br /&gt;
src/livarot[[/PathOutline]].cpp&lt;br /&gt;
src/livarot[[/ShapeMisc]].cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
isfinite() is undeclared,  use &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;ieeefp.h&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and finite() (see http://devrsrc1.external.hp.com/STKS/impacts/i61.html) in &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/bezier-utils.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Need to include &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;ieeefp.h&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/libnr/nr-svp.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Missing strcasestr() used in libnrtype/nr-type-directory.cpp. I just &lt;br /&gt;
use the internal version for WIN32 given in the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In file included from /home/foo[[/Tools/include/X11/extensions/Xrender]].h:33,&lt;br /&gt;
                 from /home/foo[[/Tools/include/X11/Xft/Xft]].h:47,&lt;br /&gt;
                 from libnrtype/nr-type-xft.cpp:16:&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:56: warning: ignoring #pragma ident &lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:117: error: 'Bool' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:120: error: 'Pixmap' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:121: error: 'Window' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
etc. Fixed this by adding #include &amp;lt;X11[[/Xlib]].h&amp;gt;&lt;br /&gt;
before including Xft.h in src/libnrtype/nr-type-xft.cpp.&lt;br /&gt;
&lt;br /&gt;
`bind_textdomain_codeset' undeclared in src/main.cpp and src/inkscape.cpp. Just copied the definition in that &lt;br /&gt;
file outside the ifdef.&lt;br /&gt;
&lt;br /&gt;
`fpresetsticky' undeclared (autoconf seems to have checks for it. Solaris has fpsetsticky() when ieeefp.h is included.)&lt;br /&gt;
&lt;br /&gt;
No rule for target inkscape.desktop - just created an empty rule.&lt;br /&gt;
&lt;br /&gt;
DONE! It runs on Solaris! Yay! :)&lt;br /&gt;
--Colin Marquardt&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
*[[Compiling Inkscape]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Reinhard</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingSunSolaris&amp;diff=68287</id>
		<title>CompilingSunSolaris</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingSunSolaris&amp;diff=68287"/>
		<updated>2011-03-24T14:36:38Z</updated>

		<summary type="html">&lt;p&gt;Reinhard: /* Compiling version 0.48.1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Compiling on Oracle/Sun Solaris =&lt;br /&gt;
&lt;br /&gt;
==Compiling version 0.48.1==&lt;br /&gt;
&lt;br /&gt;
here you can find how to build inkscape 0.48.1 on Solaris 10 (x86) 64 bit. &lt;br /&gt;
&lt;br /&gt;
* Chose a prefix path where to install independent of Solaris' own libraries. In my example --prefix=/usr/local is used for all tools&lt;br /&gt;
* build GNU make and install it into /usr/local/bin&lt;br /&gt;
* Build one of the newest versions of gcc (I built 4.5.1). Before that install the needed libraries gmp, mpfr, mpc also with --prefix=/usr/local. Build gcc. Re-build the gmp/mpfr/mpc. Re-build gcc. After that you should have no further dependencies to /usr/sfw/lib which is important&lt;br /&gt;
* Edit the gcc specs to get a clean compilation independent if you use -m64 or -m32. To achieve this have a look at the *link_arch section where to put in additional -R/usr/local/lib and -R/usr/local/lib/64.&lt;br /&gt;
&lt;br /&gt;
For further installations I used a few environment variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=&amp;quot;/usr/local/bin:/usr/bin:/usr/ccs/bin&amp;quot;&lt;br /&gt;
export MAKE=/usr/local/bin/make&lt;br /&gt;
export CC=&amp;quot;gcc -m64&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;g++ -m64&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build and install the following packages with &lt;br /&gt;
''./configure --prefix=/usr/local --libdir=/usr/local/lib/64 --sysconfdir=/usr/local/etc/64 --enable-shared''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zlib-1.2.5&lt;br /&gt;
jpeg-6.2&lt;br /&gt;
gettext-0.17&lt;br /&gt;
libiconv-1.12&lt;br /&gt;
fontconfig-2.8.0&lt;br /&gt;
t1lib-5.1.0&lt;br /&gt;
freetype-2.4.4&lt;br /&gt;
render-0.8&lt;br /&gt;
libxrender-0.8.4&lt;br /&gt;
libpng-1.4.4 (cave: 1.5.x does not work with Inkscape!)&lt;br /&gt;
gsl-1.14&lt;br /&gt;
pixman-0.21.6&lt;br /&gt;
glib-2.28.3&lt;br /&gt;
glibmm-2.24.2&lt;br /&gt;
atk-1.32.0&lt;br /&gt;
pango-1.28.3&lt;br /&gt;
cairo-1.10.2 (rebuild pango after building cairo!!)&lt;br /&gt;
gtk+-2.24.3 (I avoided the very new version 3.....)&lt;br /&gt;
gdk-pixbuf-2.22.1&lt;br /&gt;
poppler-0.16.3 (use the additional flag --enable-xpdf-headers)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then make three small changes to inkscape's source:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/color-profile.cpp, line 8: Change &amp;quot;#include &amp;lt;sys/fcntl.h&amp;gt;&amp;quot; into &amp;quot;#include &amp;lt;fcntl.h&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
src/2geom/isnan.h, line 57: The mentioned &amp;quot;#include &amp;lt;cmath&amp;gt;&amp;quot; must be set&lt;br /&gt;
&lt;br /&gt;
src/2geom/convex-cover.cpp, line 36: include these two lines (ok, quick and dirty....):&lt;br /&gt;
#undef INFINITY&lt;br /&gt;
#define INFINITY (__builtin_inff())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now configure inkscape as described above. You should get a clean compile. --[[User:Reinhard|Reinhard]]&lt;br /&gt;
&lt;br /&gt;
==Compiling version 0.44==&lt;br /&gt;
&lt;br /&gt;
This documents the changes that I needed to make Inkscape compile with gcc 3.3.2 on Solaris 8.&lt;br /&gt;
&lt;br /&gt;
* install all hard dependencies&lt;br /&gt;
* provide a definition of ngettext (thread: http://thread.gmane.org/gmane.comp.graphics.inkscape.devel/15747/focus=15828)&lt;br /&gt;
* patch isfinite() like described here: http://opensolaris-br.org/osbr/index.php?option=com_content&amp;amp;task=view&amp;amp;id=34&amp;amp;Itemid=56&lt;br /&gt;
* src/dom/io/socket.cpp - FIONREAD undeclared: http://opendx.npaci.edu/mail/opendx-general/1999.06/msg00425.html (#include &amp;lt;sys/filio.h&amp;gt;)&lt;br /&gt;
* src/widgets/desktop-widget.cpp: replace round with rint&lt;br /&gt;
* src/trace/potrace/inkscape-potrace.cpp:288: error: `log2' undeclared (first use of this function)&lt;br /&gt;
:Add the following function to the file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// from http://groups.google.de/group/comp.lang.c/msg/8ae70d02495768f5?dmode=source&amp;amp;hl=de&lt;br /&gt;
double log2(double x)&lt;br /&gt;
{&lt;br /&gt;
        static double ln2;&lt;br /&gt;
        if (ln2 == 0.0)&lt;br /&gt;
                ln2 = log (2.0);&lt;br /&gt;
&lt;br /&gt;
        return log (x) / ln2;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Now stuck here (gc6.7, gcc version 3.3.2):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gc.cpp: In function `void Inkscape::GC::&amp;lt;unnamed&amp;gt;::do_init()':&lt;br /&gt;
gc.cpp:32: error: parse error before string constant&lt;br /&gt;
gc.cpp:32: error: `GC_noop1' undeclared (first use this function)&lt;br /&gt;
gc.cpp:32: error: (Each undeclared identifier is reported only once for each &lt;br /&gt;
   function it appears in.)&lt;br /&gt;
gmake[2]: *** [gc.o] Error 1&lt;br /&gt;
gmake[2]: Leaving directory `/home/marquardt/Tools/inkscape-0.44/src'&lt;br /&gt;
gmake[1]: *** [all-recursive] Error 1&lt;br /&gt;
gmake[1]: Leaving directory `/home/marquardt/Tools/inkscape-0.44'&lt;br /&gt;
gmake: *** [all] Error 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1516476&amp;amp;group_id=93438&amp;amp;atid=604306&lt;br /&gt;
&lt;br /&gt;
I got the following patch for &amp;quot;gc6.7/include/gc.h&amp;quot; from Hans Boehm which fixes these problems with gc6.7:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
947a948&lt;br /&gt;
&amp;gt;     extern int _end[], _etext[];&lt;br /&gt;
949,952c950&lt;br /&gt;
&amp;lt; #     define GC_INIT() { extern int _end[], _etext[]; \&lt;br /&gt;
&amp;lt; 		         extern &amp;quot;C&amp;quot; void GC_noop1(GC_word); \&lt;br /&gt;
&amp;lt; 		         GC_noop1((GC_word)_end); \&lt;br /&gt;
&amp;lt; 			 GC_noop1((GC_word)_etext); }&lt;br /&gt;
---&lt;br /&gt;
&amp;gt;       extern &amp;quot;C&amp;quot; void GC_noop1(GC_word);&lt;br /&gt;
954,956c952&lt;br /&gt;
&amp;lt; #     define GC_INIT() { extern int _end[], _etext[]; \&lt;br /&gt;
&amp;lt; 		         extern void GC_noop(); \&lt;br /&gt;
&amp;lt; 		         GC_noop(_end, _etext); }&lt;br /&gt;
---&lt;br /&gt;
&amp;gt;       void GC_noop1();&lt;br /&gt;
957a954,955&lt;br /&gt;
&amp;gt; #   define GC_INIT() { GC_noop1((GC_word)_end); \&lt;br /&gt;
&amp;gt; 		       GC_noop1((GC_word)_etext); }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With these changes, I got Inkscape running fine.&lt;br /&gt;
--[[User:Colin Marquardt|Colin Marquardt]]&lt;br /&gt;
&lt;br /&gt;
==Compiling a 0.39 snapshot==&lt;br /&gt;
&lt;br /&gt;
When trying to compile the CVS snapshot from 2004-05-27 with &lt;br /&gt;
gcc 3.3.2 on a &lt;br /&gt;
&amp;lt;nowiki&amp;gt;SunOS foo 5.8 Generic_108528-22 sun4u sparc SUNW,Sun-Fire-V240&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
machine, I had to fix a few things.&lt;br /&gt;
&lt;br /&gt;
First, I installed the following packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
autoconf-2.59&lt;br /&gt;
automake-1.8.3&lt;br /&gt;
intltool-0.30&lt;br /&gt;
expat-1.95.7&lt;br /&gt;
libpng-1.2.5&lt;br /&gt;
libsigc++-2.0.3&lt;br /&gt;
glib-2.4.2&lt;br /&gt;
glibmm-2.4.2&lt;br /&gt;
atk-1.7.0&lt;br /&gt;
render-0.8&lt;br /&gt;
xrender-0.8.3&lt;br /&gt;
xft-2.1.2&lt;br /&gt;
pango-1.4.0&lt;br /&gt;
gtk+-2.4.2&lt;br /&gt;
gtkmm-2.4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I configured Inkscape with the following switches: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --prefix=/home/foo[[/Tools]]/ --includedir=/home/foo[[/Tools/include]] CPPFLAGS=-I/home/foo[[/Tools/include]]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then &amp;quot;fix&amp;quot; stuff in the inkscape sources:&lt;br /&gt;
&lt;br /&gt;
Uncomment &amp;quot;@[[INTLTOOL_DESKTOP_RULE]]@&amp;quot; in Makefile.&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;inttypes.h&amp;gt;, not &amp;lt;stdint.h&amp;gt; in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/sp-canvas.h,&lt;br /&gt;
src/livarot[[/DblLinked]].h, &lt;br /&gt;
src/livarot[[/LivarotDefs]].h, &lt;br /&gt;
src/livarot[[/AVL]].h, &lt;br /&gt;
src/livarot[[/Shape]].h, &lt;br /&gt;
src/livarot[[/ShapeUtils]].h,&lt;br /&gt;
src/livarot[[/Ligne]].h&lt;br /&gt;
src/livarot[[/AlphaLigne]].h&lt;br /&gt;
src/livarot[[/BitLigne]].h&lt;br /&gt;
src/livarot[[/MyMath]].h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(see&lt;br /&gt;
http://www.lns.cornell.edu/public/COMP/info/autoconf/Header-Portability.html)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Replace round() with rint() according to&lt;br /&gt;
http://news.gw.com/freebsd.gnome/1237 in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
src/object-edit.cpp, &lt;br /&gt;
src/spiral-context.cpp&lt;br /&gt;
src/star-context.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fabsf() was undeclared (I just put in &amp;quot;fabs()&amp;quot;, not sure if this is&lt;br /&gt;
correct) in &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/sp-shape.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(see&lt;br /&gt;
http://gcc.gnu.org/ml/java/2001-01/msg00465.html).&lt;br /&gt;
&lt;br /&gt;
Replaced fabsf(), floorf() and ceilf() with fabs(), floor() and ceil() in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/nr-arena-shape.cpp&lt;br /&gt;
src/display/canvas-bpath.cpp&lt;br /&gt;
src/display/sp-ctrlline.cpp&lt;br /&gt;
src/libnrtype/nr-rasterfont.cpp&lt;br /&gt;
src/livarot[[/AlphaLigne]].cpp&lt;br /&gt;
src/livarot[[/BitLigne]].cpp&lt;br /&gt;
src/livarot[[/Ligne]].cpp&lt;br /&gt;
src/livarot[[/PathOutline]].cpp&lt;br /&gt;
src/livarot[[/ShapeMisc]].cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
isfinite() is undeclared,  use &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;ieeefp.h&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and finite() (see http://devrsrc1.external.hp.com/STKS/impacts/i61.html) in &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/bezier-utils.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Need to include &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;ieeefp.h&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/libnr/nr-svp.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Missing strcasestr() used in libnrtype/nr-type-directory.cpp. I just &lt;br /&gt;
use the internal version for WIN32 given in the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In file included from /home/foo[[/Tools/include/X11/extensions/Xrender]].h:33,&lt;br /&gt;
                 from /home/foo[[/Tools/include/X11/Xft/Xft]].h:47,&lt;br /&gt;
                 from libnrtype/nr-type-xft.cpp:16:&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:56: warning: ignoring #pragma ident &lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:117: error: 'Bool' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:120: error: 'Pixmap' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:121: error: 'Window' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
etc. Fixed this by adding #include &amp;lt;X11[[/Xlib]].h&amp;gt;&lt;br /&gt;
before including Xft.h in src/libnrtype/nr-type-xft.cpp.&lt;br /&gt;
&lt;br /&gt;
`bind_textdomain_codeset' undeclared in src/main.cpp and src/inkscape.cpp. Just copied the definition in that &lt;br /&gt;
file outside the ifdef.&lt;br /&gt;
&lt;br /&gt;
`fpresetsticky' undeclared (autoconf seems to have checks for it. Solaris has fpsetsticky() when ieeefp.h is included.)&lt;br /&gt;
&lt;br /&gt;
No rule for target inkscape.desktop - just created an empty rule.&lt;br /&gt;
&lt;br /&gt;
DONE! It runs on Solaris! Yay! :)&lt;br /&gt;
--Colin Marquardt&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
*[[Compiling Inkscape]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Reinhard</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingSunSolaris&amp;diff=68281</id>
		<title>CompilingSunSolaris</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingSunSolaris&amp;diff=68281"/>
		<updated>2011-03-24T14:34:42Z</updated>

		<summary type="html">&lt;p&gt;Reinhard: /* Compiling version 0.48.1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Compiling on Oracle/Sun Solaris =&lt;br /&gt;
&lt;br /&gt;
==Compiling version 0.48.1==&lt;br /&gt;
&lt;br /&gt;
here you can find how to build inkscape 0.48.1 on Solaris 10 (x86) 64 bit. &lt;br /&gt;
&lt;br /&gt;
* Chose a prefix path where to install independent of Solaris' own libraries. In my example --prefix=/usr/local is used for all tools&lt;br /&gt;
* build GNU make and install it into /usr/local/bin&lt;br /&gt;
* Build one of the newest versions of gcc (I built 4.5.1). Before that install the needed libraries gmp, mpfr, mpc also with --prefix=/usr/local. Build gcc. Re-build the gmp/mpfr/mpc. Re-build gcc. After that you should have no further dependencies to /usr/sfw/lib which is important&lt;br /&gt;
* Edit the gcc specs to get a clean compilation independent if you use -m64 or -m32. To achieve this have a look at the *link_arch section where to put in additional -R/usr/local/lib or -R/usr/local/lib/64.&lt;br /&gt;
&lt;br /&gt;
For further installations I used a few environment variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=&amp;quot;/usr/local/bin:/usr/bin:/usr/ccs/bin&amp;quot;&lt;br /&gt;
export MAKE=/usr/local/bin/make&lt;br /&gt;
export CC=&amp;quot;gcc -m64&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;g++ -m64&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build and install the following packages with ./configure --prefix=/usr/local --libdir=/usr/local/lib/64 --sysconfdir=/usr/local/etc/64 --enable-shared&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zlib-1.2.5&lt;br /&gt;
jpeg-6.2&lt;br /&gt;
gettext-0.17&lt;br /&gt;
libiconv-1.12&lt;br /&gt;
fontconfig-2.8.0&lt;br /&gt;
t1lib-5.1.0&lt;br /&gt;
freetype-2.4.4&lt;br /&gt;
render-0.8&lt;br /&gt;
libxrender-0.8.4&lt;br /&gt;
libpng-1.4.4 (cave: 1.5.x does not work with Inkscape!)&lt;br /&gt;
gsl-1.14&lt;br /&gt;
pixman-0.21.6&lt;br /&gt;
glib-2.28.3&lt;br /&gt;
glibmm-2.24.2&lt;br /&gt;
atk-1.32.0&lt;br /&gt;
pango-1.28.3&lt;br /&gt;
cairo-1.10.2 (rebuild pango after building cairo!!)&lt;br /&gt;
gtk+-2.24.3 (I avoided the very new version 3.....)&lt;br /&gt;
gdk-pixbuf-2.22.1&lt;br /&gt;
poppler-0.16.3 (use the additional flag --enable-xpdf-headers)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then make three small changes to inkscape's source:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/color-profile.cpp, line 8: Change &amp;quot;#include &amp;lt;sys/fcntl.h&amp;gt;&amp;quot; into &amp;quot;#include &amp;lt;fcntl.h&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
src/2geom/isnan.h, line 57: The mentioned &amp;quot;#include &amp;lt;cmath&amp;gt;&amp;quot; must be set&lt;br /&gt;
&lt;br /&gt;
src/2geom/convex-cover.cpp, line 36: include these two lines (ok, quick and dirty....):&lt;br /&gt;
#undef INFINITY&lt;br /&gt;
#define INFINITY (__builtin_inff())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now configure inkscape as described above. You should get a clean compile. --[[User:Reinhard|Reinhard]]&lt;br /&gt;
&lt;br /&gt;
==Compiling version 0.44==&lt;br /&gt;
&lt;br /&gt;
This documents the changes that I needed to make Inkscape compile with gcc 3.3.2 on Solaris 8.&lt;br /&gt;
&lt;br /&gt;
* install all hard dependencies&lt;br /&gt;
* provide a definition of ngettext (thread: http://thread.gmane.org/gmane.comp.graphics.inkscape.devel/15747/focus=15828)&lt;br /&gt;
* patch isfinite() like described here: http://opensolaris-br.org/osbr/index.php?option=com_content&amp;amp;task=view&amp;amp;id=34&amp;amp;Itemid=56&lt;br /&gt;
* src/dom/io/socket.cpp - FIONREAD undeclared: http://opendx.npaci.edu/mail/opendx-general/1999.06/msg00425.html (#include &amp;lt;sys/filio.h&amp;gt;)&lt;br /&gt;
* src/widgets/desktop-widget.cpp: replace round with rint&lt;br /&gt;
* src/trace/potrace/inkscape-potrace.cpp:288: error: `log2' undeclared (first use of this function)&lt;br /&gt;
:Add the following function to the file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// from http://groups.google.de/group/comp.lang.c/msg/8ae70d02495768f5?dmode=source&amp;amp;hl=de&lt;br /&gt;
double log2(double x)&lt;br /&gt;
{&lt;br /&gt;
        static double ln2;&lt;br /&gt;
        if (ln2 == 0.0)&lt;br /&gt;
                ln2 = log (2.0);&lt;br /&gt;
&lt;br /&gt;
        return log (x) / ln2;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Now stuck here (gc6.7, gcc version 3.3.2):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gc.cpp: In function `void Inkscape::GC::&amp;lt;unnamed&amp;gt;::do_init()':&lt;br /&gt;
gc.cpp:32: error: parse error before string constant&lt;br /&gt;
gc.cpp:32: error: `GC_noop1' undeclared (first use this function)&lt;br /&gt;
gc.cpp:32: error: (Each undeclared identifier is reported only once for each &lt;br /&gt;
   function it appears in.)&lt;br /&gt;
gmake[2]: *** [gc.o] Error 1&lt;br /&gt;
gmake[2]: Leaving directory `/home/marquardt/Tools/inkscape-0.44/src'&lt;br /&gt;
gmake[1]: *** [all-recursive] Error 1&lt;br /&gt;
gmake[1]: Leaving directory `/home/marquardt/Tools/inkscape-0.44'&lt;br /&gt;
gmake: *** [all] Error 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1516476&amp;amp;group_id=93438&amp;amp;atid=604306&lt;br /&gt;
&lt;br /&gt;
I got the following patch for &amp;quot;gc6.7/include/gc.h&amp;quot; from Hans Boehm which fixes these problems with gc6.7:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
947a948&lt;br /&gt;
&amp;gt;     extern int _end[], _etext[];&lt;br /&gt;
949,952c950&lt;br /&gt;
&amp;lt; #     define GC_INIT() { extern int _end[], _etext[]; \&lt;br /&gt;
&amp;lt; 		         extern &amp;quot;C&amp;quot; void GC_noop1(GC_word); \&lt;br /&gt;
&amp;lt; 		         GC_noop1((GC_word)_end); \&lt;br /&gt;
&amp;lt; 			 GC_noop1((GC_word)_etext); }&lt;br /&gt;
---&lt;br /&gt;
&amp;gt;       extern &amp;quot;C&amp;quot; void GC_noop1(GC_word);&lt;br /&gt;
954,956c952&lt;br /&gt;
&amp;lt; #     define GC_INIT() { extern int _end[], _etext[]; \&lt;br /&gt;
&amp;lt; 		         extern void GC_noop(); \&lt;br /&gt;
&amp;lt; 		         GC_noop(_end, _etext); }&lt;br /&gt;
---&lt;br /&gt;
&amp;gt;       void GC_noop1();&lt;br /&gt;
957a954,955&lt;br /&gt;
&amp;gt; #   define GC_INIT() { GC_noop1((GC_word)_end); \&lt;br /&gt;
&amp;gt; 		       GC_noop1((GC_word)_etext); }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With these changes, I got Inkscape running fine.&lt;br /&gt;
--[[User:Colin Marquardt|Colin Marquardt]]&lt;br /&gt;
&lt;br /&gt;
==Compiling a 0.39 snapshot==&lt;br /&gt;
&lt;br /&gt;
When trying to compile the CVS snapshot from 2004-05-27 with &lt;br /&gt;
gcc 3.3.2 on a &lt;br /&gt;
&amp;lt;nowiki&amp;gt;SunOS foo 5.8 Generic_108528-22 sun4u sparc SUNW,Sun-Fire-V240&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
machine, I had to fix a few things.&lt;br /&gt;
&lt;br /&gt;
First, I installed the following packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
autoconf-2.59&lt;br /&gt;
automake-1.8.3&lt;br /&gt;
intltool-0.30&lt;br /&gt;
expat-1.95.7&lt;br /&gt;
libpng-1.2.5&lt;br /&gt;
libsigc++-2.0.3&lt;br /&gt;
glib-2.4.2&lt;br /&gt;
glibmm-2.4.2&lt;br /&gt;
atk-1.7.0&lt;br /&gt;
render-0.8&lt;br /&gt;
xrender-0.8.3&lt;br /&gt;
xft-2.1.2&lt;br /&gt;
pango-1.4.0&lt;br /&gt;
gtk+-2.4.2&lt;br /&gt;
gtkmm-2.4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I configured Inkscape with the following switches: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --prefix=/home/foo[[/Tools]]/ --includedir=/home/foo[[/Tools/include]] CPPFLAGS=-I/home/foo[[/Tools/include]]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then &amp;quot;fix&amp;quot; stuff in the inkscape sources:&lt;br /&gt;
&lt;br /&gt;
Uncomment &amp;quot;@[[INTLTOOL_DESKTOP_RULE]]@&amp;quot; in Makefile.&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;inttypes.h&amp;gt;, not &amp;lt;stdint.h&amp;gt; in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/sp-canvas.h,&lt;br /&gt;
src/livarot[[/DblLinked]].h, &lt;br /&gt;
src/livarot[[/LivarotDefs]].h, &lt;br /&gt;
src/livarot[[/AVL]].h, &lt;br /&gt;
src/livarot[[/Shape]].h, &lt;br /&gt;
src/livarot[[/ShapeUtils]].h,&lt;br /&gt;
src/livarot[[/Ligne]].h&lt;br /&gt;
src/livarot[[/AlphaLigne]].h&lt;br /&gt;
src/livarot[[/BitLigne]].h&lt;br /&gt;
src/livarot[[/MyMath]].h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(see&lt;br /&gt;
http://www.lns.cornell.edu/public/COMP/info/autoconf/Header-Portability.html)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Replace round() with rint() according to&lt;br /&gt;
http://news.gw.com/freebsd.gnome/1237 in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
src/object-edit.cpp, &lt;br /&gt;
src/spiral-context.cpp&lt;br /&gt;
src/star-context.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fabsf() was undeclared (I just put in &amp;quot;fabs()&amp;quot;, not sure if this is&lt;br /&gt;
correct) in &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/sp-shape.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(see&lt;br /&gt;
http://gcc.gnu.org/ml/java/2001-01/msg00465.html).&lt;br /&gt;
&lt;br /&gt;
Replaced fabsf(), floorf() and ceilf() with fabs(), floor() and ceil() in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/nr-arena-shape.cpp&lt;br /&gt;
src/display/canvas-bpath.cpp&lt;br /&gt;
src/display/sp-ctrlline.cpp&lt;br /&gt;
src/libnrtype/nr-rasterfont.cpp&lt;br /&gt;
src/livarot[[/AlphaLigne]].cpp&lt;br /&gt;
src/livarot[[/BitLigne]].cpp&lt;br /&gt;
src/livarot[[/Ligne]].cpp&lt;br /&gt;
src/livarot[[/PathOutline]].cpp&lt;br /&gt;
src/livarot[[/ShapeMisc]].cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
isfinite() is undeclared,  use &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;ieeefp.h&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and finite() (see http://devrsrc1.external.hp.com/STKS/impacts/i61.html) in &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/bezier-utils.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Need to include &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;ieeefp.h&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/libnr/nr-svp.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Missing strcasestr() used in libnrtype/nr-type-directory.cpp. I just &lt;br /&gt;
use the internal version for WIN32 given in the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In file included from /home/foo[[/Tools/include/X11/extensions/Xrender]].h:33,&lt;br /&gt;
                 from /home/foo[[/Tools/include/X11/Xft/Xft]].h:47,&lt;br /&gt;
                 from libnrtype/nr-type-xft.cpp:16:&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:56: warning: ignoring #pragma ident &lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:117: error: 'Bool' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:120: error: 'Pixmap' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:121: error: 'Window' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
etc. Fixed this by adding #include &amp;lt;X11[[/Xlib]].h&amp;gt;&lt;br /&gt;
before including Xft.h in src/libnrtype/nr-type-xft.cpp.&lt;br /&gt;
&lt;br /&gt;
`bind_textdomain_codeset' undeclared in src/main.cpp and src/inkscape.cpp. Just copied the definition in that &lt;br /&gt;
file outside the ifdef.&lt;br /&gt;
&lt;br /&gt;
`fpresetsticky' undeclared (autoconf seems to have checks for it. Solaris has fpsetsticky() when ieeefp.h is included.)&lt;br /&gt;
&lt;br /&gt;
No rule for target inkscape.desktop - just created an empty rule.&lt;br /&gt;
&lt;br /&gt;
DONE! It runs on Solaris! Yay! :)&lt;br /&gt;
--Colin Marquardt&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
*[[Compiling Inkscape]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Reinhard</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingSunSolaris&amp;diff=68275</id>
		<title>CompilingSunSolaris</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingSunSolaris&amp;diff=68275"/>
		<updated>2011-03-24T14:30:10Z</updated>

		<summary type="html">&lt;p&gt;Reinhard: /* Compiling version 0.48.1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Compiling on Oracle/Sun Solaris =&lt;br /&gt;
&lt;br /&gt;
==Compiling version 0.48.1==&lt;br /&gt;
&lt;br /&gt;
here you can find how to build inkscape 0.48.1 on Solaris 10 (x86) 64 bit. &lt;br /&gt;
&lt;br /&gt;
* Chose a prefix path where to install independent of Solaris' own libraries. In my example --prefix=/usr/local will be user for all tools&lt;br /&gt;
* build GNU make and install it into /usr/local/bin&lt;br /&gt;
* Build one of the newest versions of gcc (I built 4.5.1). Before that install the needed libraries gmp, mpfr, mpc also with --prefix=/usr/local. Build gcc. Re-build the gmp/mpfr/mpc. Re-build gcc. After that you should have no further dependencies to /usr/sfw/lib which is important&lt;br /&gt;
* Edit the gcc specs to get a clean compilation independent if you use -m64 or -m32. To achieve this have a look at the *link_arch section where to put in additional -R/usr/local/lib or -R/usr/local/lib/64.&lt;br /&gt;
&lt;br /&gt;
For further installations I used a few environment variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=&amp;quot;/usr/local/bin:/usr/bin:/usr/ccs/bin&amp;quot;&lt;br /&gt;
export MAKE=/usr/local/bin/make&lt;br /&gt;
export CC=&amp;quot;gcc -m64&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;g++ -m64&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build and install the following packages with ./configure --prefix=/usr/local --libdir=/usr/local/lib/64 --sysconfdir=/usr/local/etc/64 --enable-shared&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zlib-1.2.5&lt;br /&gt;
jpeg-6.2&lt;br /&gt;
gettext-0.17&lt;br /&gt;
libiconv-1.12&lt;br /&gt;
fontconfig-2.8.0&lt;br /&gt;
t1lib-5.1.0&lt;br /&gt;
freetype-2.4.4&lt;br /&gt;
render-0.8&lt;br /&gt;
libxrender-0.8.4&lt;br /&gt;
libpng-1.4.4 (cave: 1.5.x does not work with Inkscape!)&lt;br /&gt;
gsl-1.14&lt;br /&gt;
pixman-0.21.6&lt;br /&gt;
glib-2.28.3&lt;br /&gt;
glibmm-2.24.2&lt;br /&gt;
atk-1.32.0&lt;br /&gt;
pango-1.28.3&lt;br /&gt;
cairo-1.10.2 (rebuild pango after building cairo!!)&lt;br /&gt;
gtk+-2.24.3 (I avoided the very new version 3.....)&lt;br /&gt;
gdk-pixbuf-2.22.1&lt;br /&gt;
poppler-0.16.3 (use the additional flag --enable-xpdf-headers)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then make three small changes to inkscape's source:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/color-profile.cpp, line 8: Change &amp;quot;#include &amp;lt;sys/fcntl.h&amp;gt;&amp;quot; into &amp;quot;#include &amp;lt;fcntl.h&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
src/2geom/isnan.h, line 57: The mentioned &amp;quot;#include &amp;lt;cmath&amp;gt;&amp;quot; must be set&lt;br /&gt;
&lt;br /&gt;
src/2geom/convex-cover.cpp, line 36: include these two lines (ok, quick and dirty....):&lt;br /&gt;
#undef INFINITY&lt;br /&gt;
#define INFINITY (__builtin_inff())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now configure inkscape as described above. You should get a clean compile. --[[User:Reinhard|Reinhard]]&lt;br /&gt;
&lt;br /&gt;
==Compiling version 0.44==&lt;br /&gt;
&lt;br /&gt;
This documents the changes that I needed to make Inkscape compile with gcc 3.3.2 on Solaris 8.&lt;br /&gt;
&lt;br /&gt;
* install all hard dependencies&lt;br /&gt;
* provide a definition of ngettext (thread: http://thread.gmane.org/gmane.comp.graphics.inkscape.devel/15747/focus=15828)&lt;br /&gt;
* patch isfinite() like described here: http://opensolaris-br.org/osbr/index.php?option=com_content&amp;amp;task=view&amp;amp;id=34&amp;amp;Itemid=56&lt;br /&gt;
* src/dom/io/socket.cpp - FIONREAD undeclared: http://opendx.npaci.edu/mail/opendx-general/1999.06/msg00425.html (#include &amp;lt;sys/filio.h&amp;gt;)&lt;br /&gt;
* src/widgets/desktop-widget.cpp: replace round with rint&lt;br /&gt;
* src/trace/potrace/inkscape-potrace.cpp:288: error: `log2' undeclared (first use of this function)&lt;br /&gt;
:Add the following function to the file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// from http://groups.google.de/group/comp.lang.c/msg/8ae70d02495768f5?dmode=source&amp;amp;hl=de&lt;br /&gt;
double log2(double x)&lt;br /&gt;
{&lt;br /&gt;
        static double ln2;&lt;br /&gt;
        if (ln2 == 0.0)&lt;br /&gt;
                ln2 = log (2.0);&lt;br /&gt;
&lt;br /&gt;
        return log (x) / ln2;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Now stuck here (gc6.7, gcc version 3.3.2):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gc.cpp: In function `void Inkscape::GC::&amp;lt;unnamed&amp;gt;::do_init()':&lt;br /&gt;
gc.cpp:32: error: parse error before string constant&lt;br /&gt;
gc.cpp:32: error: `GC_noop1' undeclared (first use this function)&lt;br /&gt;
gc.cpp:32: error: (Each undeclared identifier is reported only once for each &lt;br /&gt;
   function it appears in.)&lt;br /&gt;
gmake[2]: *** [gc.o] Error 1&lt;br /&gt;
gmake[2]: Leaving directory `/home/marquardt/Tools/inkscape-0.44/src'&lt;br /&gt;
gmake[1]: *** [all-recursive] Error 1&lt;br /&gt;
gmake[1]: Leaving directory `/home/marquardt/Tools/inkscape-0.44'&lt;br /&gt;
gmake: *** [all] Error 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1516476&amp;amp;group_id=93438&amp;amp;atid=604306&lt;br /&gt;
&lt;br /&gt;
I got the following patch for &amp;quot;gc6.7/include/gc.h&amp;quot; from Hans Boehm which fixes these problems with gc6.7:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
947a948&lt;br /&gt;
&amp;gt;     extern int _end[], _etext[];&lt;br /&gt;
949,952c950&lt;br /&gt;
&amp;lt; #     define GC_INIT() { extern int _end[], _etext[]; \&lt;br /&gt;
&amp;lt; 		         extern &amp;quot;C&amp;quot; void GC_noop1(GC_word); \&lt;br /&gt;
&amp;lt; 		         GC_noop1((GC_word)_end); \&lt;br /&gt;
&amp;lt; 			 GC_noop1((GC_word)_etext); }&lt;br /&gt;
---&lt;br /&gt;
&amp;gt;       extern &amp;quot;C&amp;quot; void GC_noop1(GC_word);&lt;br /&gt;
954,956c952&lt;br /&gt;
&amp;lt; #     define GC_INIT() { extern int _end[], _etext[]; \&lt;br /&gt;
&amp;lt; 		         extern void GC_noop(); \&lt;br /&gt;
&amp;lt; 		         GC_noop(_end, _etext); }&lt;br /&gt;
---&lt;br /&gt;
&amp;gt;       void GC_noop1();&lt;br /&gt;
957a954,955&lt;br /&gt;
&amp;gt; #   define GC_INIT() { GC_noop1((GC_word)_end); \&lt;br /&gt;
&amp;gt; 		       GC_noop1((GC_word)_etext); }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With these changes, I got Inkscape running fine.&lt;br /&gt;
--[[User:Colin Marquardt|Colin Marquardt]]&lt;br /&gt;
&lt;br /&gt;
==Compiling a 0.39 snapshot==&lt;br /&gt;
&lt;br /&gt;
When trying to compile the CVS snapshot from 2004-05-27 with &lt;br /&gt;
gcc 3.3.2 on a &lt;br /&gt;
&amp;lt;nowiki&amp;gt;SunOS foo 5.8 Generic_108528-22 sun4u sparc SUNW,Sun-Fire-V240&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
machine, I had to fix a few things.&lt;br /&gt;
&lt;br /&gt;
First, I installed the following packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
autoconf-2.59&lt;br /&gt;
automake-1.8.3&lt;br /&gt;
intltool-0.30&lt;br /&gt;
expat-1.95.7&lt;br /&gt;
libpng-1.2.5&lt;br /&gt;
libsigc++-2.0.3&lt;br /&gt;
glib-2.4.2&lt;br /&gt;
glibmm-2.4.2&lt;br /&gt;
atk-1.7.0&lt;br /&gt;
render-0.8&lt;br /&gt;
xrender-0.8.3&lt;br /&gt;
xft-2.1.2&lt;br /&gt;
pango-1.4.0&lt;br /&gt;
gtk+-2.4.2&lt;br /&gt;
gtkmm-2.4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I configured Inkscape with the following switches: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --prefix=/home/foo[[/Tools]]/ --includedir=/home/foo[[/Tools/include]] CPPFLAGS=-I/home/foo[[/Tools/include]]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then &amp;quot;fix&amp;quot; stuff in the inkscape sources:&lt;br /&gt;
&lt;br /&gt;
Uncomment &amp;quot;@[[INTLTOOL_DESKTOP_RULE]]@&amp;quot; in Makefile.&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;inttypes.h&amp;gt;, not &amp;lt;stdint.h&amp;gt; in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/sp-canvas.h,&lt;br /&gt;
src/livarot[[/DblLinked]].h, &lt;br /&gt;
src/livarot[[/LivarotDefs]].h, &lt;br /&gt;
src/livarot[[/AVL]].h, &lt;br /&gt;
src/livarot[[/Shape]].h, &lt;br /&gt;
src/livarot[[/ShapeUtils]].h,&lt;br /&gt;
src/livarot[[/Ligne]].h&lt;br /&gt;
src/livarot[[/AlphaLigne]].h&lt;br /&gt;
src/livarot[[/BitLigne]].h&lt;br /&gt;
src/livarot[[/MyMath]].h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(see&lt;br /&gt;
http://www.lns.cornell.edu/public/COMP/info/autoconf/Header-Portability.html)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Replace round() with rint() according to&lt;br /&gt;
http://news.gw.com/freebsd.gnome/1237 in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
src/object-edit.cpp, &lt;br /&gt;
src/spiral-context.cpp&lt;br /&gt;
src/star-context.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fabsf() was undeclared (I just put in &amp;quot;fabs()&amp;quot;, not sure if this is&lt;br /&gt;
correct) in &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/sp-shape.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(see&lt;br /&gt;
http://gcc.gnu.org/ml/java/2001-01/msg00465.html).&lt;br /&gt;
&lt;br /&gt;
Replaced fabsf(), floorf() and ceilf() with fabs(), floor() and ceil() in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/nr-arena-shape.cpp&lt;br /&gt;
src/display/canvas-bpath.cpp&lt;br /&gt;
src/display/sp-ctrlline.cpp&lt;br /&gt;
src/libnrtype/nr-rasterfont.cpp&lt;br /&gt;
src/livarot[[/AlphaLigne]].cpp&lt;br /&gt;
src/livarot[[/BitLigne]].cpp&lt;br /&gt;
src/livarot[[/Ligne]].cpp&lt;br /&gt;
src/livarot[[/PathOutline]].cpp&lt;br /&gt;
src/livarot[[/ShapeMisc]].cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
isfinite() is undeclared,  use &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;ieeefp.h&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and finite() (see http://devrsrc1.external.hp.com/STKS/impacts/i61.html) in &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/bezier-utils.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Need to include &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;ieeefp.h&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/libnr/nr-svp.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Missing strcasestr() used in libnrtype/nr-type-directory.cpp. I just &lt;br /&gt;
use the internal version for WIN32 given in the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In file included from /home/foo[[/Tools/include/X11/extensions/Xrender]].h:33,&lt;br /&gt;
                 from /home/foo[[/Tools/include/X11/Xft/Xft]].h:47,&lt;br /&gt;
                 from libnrtype/nr-type-xft.cpp:16:&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:56: warning: ignoring #pragma ident &lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:117: error: 'Bool' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:120: error: 'Pixmap' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:121: error: 'Window' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
etc. Fixed this by adding #include &amp;lt;X11[[/Xlib]].h&amp;gt;&lt;br /&gt;
before including Xft.h in src/libnrtype/nr-type-xft.cpp.&lt;br /&gt;
&lt;br /&gt;
`bind_textdomain_codeset' undeclared in src/main.cpp and src/inkscape.cpp. Just copied the definition in that &lt;br /&gt;
file outside the ifdef.&lt;br /&gt;
&lt;br /&gt;
`fpresetsticky' undeclared (autoconf seems to have checks for it. Solaris has fpsetsticky() when ieeefp.h is included.)&lt;br /&gt;
&lt;br /&gt;
No rule for target inkscape.desktop - just created an empty rule.&lt;br /&gt;
&lt;br /&gt;
DONE! It runs on Solaris! Yay! :)&lt;br /&gt;
--Colin Marquardt&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
*[[Compiling Inkscape]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Reinhard</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingSunSolaris&amp;diff=68269</id>
		<title>CompilingSunSolaris</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingSunSolaris&amp;diff=68269"/>
		<updated>2011-03-24T14:24:24Z</updated>

		<summary type="html">&lt;p&gt;Reinhard: /* Compiling version 0.48.1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Compiling on Oracle/Sun Solaris =&lt;br /&gt;
&lt;br /&gt;
==Compiling version 0.48.1==&lt;br /&gt;
&lt;br /&gt;
here you can find how to build inkscape 0.48.1 on Solaris 10 (x86) 64 bit. &lt;br /&gt;
&lt;br /&gt;
* Chose a prefix path where to install independent of Solaris' own libraries. In my example --prefix=/usr/local will be user for all tools&lt;br /&gt;
* build GNU make and install it into /usr/local/bin&lt;br /&gt;
* Build one of the newest versions of gcc (I built 4.5.1). Before that install the needed libraries gmp, mpfr, mpc also with --prefix=/usr/local. Build gcc. Re-build the gmp/mpfr/mpc. Re-build gcc. After that you should have no further dependencies to /usr/sfw/lib which is important&lt;br /&gt;
* Edit the gcc specs to get a clean compilation independent if you use -m64 or -m32. To achieve this have a look at the *link_arch section where to put in additional -R/usr/local/lib or -R/usr/local/lib/64.&lt;br /&gt;
&lt;br /&gt;
For further installations I used a few environment variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=&amp;quot;/usr/local/bin:/usr/bin:/usr/ccs/bin&amp;quot;&lt;br /&gt;
export MAKE=/usr/local/bin/make&lt;br /&gt;
export CC=&amp;quot;gcc -m64&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;g++ -m64&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build and install the following packages with ./configure --prefix=/usr/local --libdir=/usr/local/lib/64 --sysconfdir=/usr/local/etc/64 --enable-shared&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zlib-1.2.5&lt;br /&gt;
jpeg-6.2&lt;br /&gt;
gettext-0.17&lt;br /&gt;
libiconv-1.12&lt;br /&gt;
t1lib-5.1.0&lt;br /&gt;
freetype-2.4.4&lt;br /&gt;
render-0.8&lt;br /&gt;
libxrender-0.8.4&lt;br /&gt;
libpng-1.4.4 (cave: 1.5.x does not work with Inkscape!)&lt;br /&gt;
gsl-1.14&lt;br /&gt;
pixman-0.21.6&lt;br /&gt;
glib-2.28.3&lt;br /&gt;
glibmm-2.24.2&lt;br /&gt;
atk-1.32.0&lt;br /&gt;
pango-1.28.3&lt;br /&gt;
cairo-1.10.2 (rebuild pango after building cairo!!)&lt;br /&gt;
gtk+-2.24.3 (I avoided the very new version 3.....)&lt;br /&gt;
gdk-pixbuf-2.22.1&lt;br /&gt;
poppler-0.16.3 (use the additional flag --enable-xpdf-headers)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then make three small changes to inkscape's source:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/color-profile.cpp, line 8: Change &amp;quot;#include &amp;lt;sys/fcntl.h&amp;gt;&amp;quot; into &amp;quot;#include &amp;lt;fcntl.h&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
src/2geom/isnan.h, line 57: The mentioned &amp;quot;#include &amp;lt;cmath&amp;gt;&amp;quot; must be set&lt;br /&gt;
&lt;br /&gt;
src/2geom/convex-cover.cpp, line 36: include these two lines (ok, quick and dirty....):&lt;br /&gt;
#undef INFINITY&lt;br /&gt;
#define INFINITY (__builtin_inff())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now configure inkscape as described above. You should get a clean compile. --[[User:Reinhard|Reinhard]]&lt;br /&gt;
&lt;br /&gt;
==Compiling version 0.44==&lt;br /&gt;
&lt;br /&gt;
This documents the changes that I needed to make Inkscape compile with gcc 3.3.2 on Solaris 8.&lt;br /&gt;
&lt;br /&gt;
* install all hard dependencies&lt;br /&gt;
* provide a definition of ngettext (thread: http://thread.gmane.org/gmane.comp.graphics.inkscape.devel/15747/focus=15828)&lt;br /&gt;
* patch isfinite() like described here: http://opensolaris-br.org/osbr/index.php?option=com_content&amp;amp;task=view&amp;amp;id=34&amp;amp;Itemid=56&lt;br /&gt;
* src/dom/io/socket.cpp - FIONREAD undeclared: http://opendx.npaci.edu/mail/opendx-general/1999.06/msg00425.html (#include &amp;lt;sys/filio.h&amp;gt;)&lt;br /&gt;
* src/widgets/desktop-widget.cpp: replace round with rint&lt;br /&gt;
* src/trace/potrace/inkscape-potrace.cpp:288: error: `log2' undeclared (first use of this function)&lt;br /&gt;
:Add the following function to the file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// from http://groups.google.de/group/comp.lang.c/msg/8ae70d02495768f5?dmode=source&amp;amp;hl=de&lt;br /&gt;
double log2(double x)&lt;br /&gt;
{&lt;br /&gt;
        static double ln2;&lt;br /&gt;
        if (ln2 == 0.0)&lt;br /&gt;
                ln2 = log (2.0);&lt;br /&gt;
&lt;br /&gt;
        return log (x) / ln2;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Now stuck here (gc6.7, gcc version 3.3.2):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gc.cpp: In function `void Inkscape::GC::&amp;lt;unnamed&amp;gt;::do_init()':&lt;br /&gt;
gc.cpp:32: error: parse error before string constant&lt;br /&gt;
gc.cpp:32: error: `GC_noop1' undeclared (first use this function)&lt;br /&gt;
gc.cpp:32: error: (Each undeclared identifier is reported only once for each &lt;br /&gt;
   function it appears in.)&lt;br /&gt;
gmake[2]: *** [gc.o] Error 1&lt;br /&gt;
gmake[2]: Leaving directory `/home/marquardt/Tools/inkscape-0.44/src'&lt;br /&gt;
gmake[1]: *** [all-recursive] Error 1&lt;br /&gt;
gmake[1]: Leaving directory `/home/marquardt/Tools/inkscape-0.44'&lt;br /&gt;
gmake: *** [all] Error 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1516476&amp;amp;group_id=93438&amp;amp;atid=604306&lt;br /&gt;
&lt;br /&gt;
I got the following patch for &amp;quot;gc6.7/include/gc.h&amp;quot; from Hans Boehm which fixes these problems with gc6.7:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
947a948&lt;br /&gt;
&amp;gt;     extern int _end[], _etext[];&lt;br /&gt;
949,952c950&lt;br /&gt;
&amp;lt; #     define GC_INIT() { extern int _end[], _etext[]; \&lt;br /&gt;
&amp;lt; 		         extern &amp;quot;C&amp;quot; void GC_noop1(GC_word); \&lt;br /&gt;
&amp;lt; 		         GC_noop1((GC_word)_end); \&lt;br /&gt;
&amp;lt; 			 GC_noop1((GC_word)_etext); }&lt;br /&gt;
---&lt;br /&gt;
&amp;gt;       extern &amp;quot;C&amp;quot; void GC_noop1(GC_word);&lt;br /&gt;
954,956c952&lt;br /&gt;
&amp;lt; #     define GC_INIT() { extern int _end[], _etext[]; \&lt;br /&gt;
&amp;lt; 		         extern void GC_noop(); \&lt;br /&gt;
&amp;lt; 		         GC_noop(_end, _etext); }&lt;br /&gt;
---&lt;br /&gt;
&amp;gt;       void GC_noop1();&lt;br /&gt;
957a954,955&lt;br /&gt;
&amp;gt; #   define GC_INIT() { GC_noop1((GC_word)_end); \&lt;br /&gt;
&amp;gt; 		       GC_noop1((GC_word)_etext); }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With these changes, I got Inkscape running fine.&lt;br /&gt;
--[[User:Colin Marquardt|Colin Marquardt]]&lt;br /&gt;
&lt;br /&gt;
==Compiling a 0.39 snapshot==&lt;br /&gt;
&lt;br /&gt;
When trying to compile the CVS snapshot from 2004-05-27 with &lt;br /&gt;
gcc 3.3.2 on a &lt;br /&gt;
&amp;lt;nowiki&amp;gt;SunOS foo 5.8 Generic_108528-22 sun4u sparc SUNW,Sun-Fire-V240&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
machine, I had to fix a few things.&lt;br /&gt;
&lt;br /&gt;
First, I installed the following packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
autoconf-2.59&lt;br /&gt;
automake-1.8.3&lt;br /&gt;
intltool-0.30&lt;br /&gt;
expat-1.95.7&lt;br /&gt;
libpng-1.2.5&lt;br /&gt;
libsigc++-2.0.3&lt;br /&gt;
glib-2.4.2&lt;br /&gt;
glibmm-2.4.2&lt;br /&gt;
atk-1.7.0&lt;br /&gt;
render-0.8&lt;br /&gt;
xrender-0.8.3&lt;br /&gt;
xft-2.1.2&lt;br /&gt;
pango-1.4.0&lt;br /&gt;
gtk+-2.4.2&lt;br /&gt;
gtkmm-2.4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I configured Inkscape with the following switches: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --prefix=/home/foo[[/Tools]]/ --includedir=/home/foo[[/Tools/include]] CPPFLAGS=-I/home/foo[[/Tools/include]]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then &amp;quot;fix&amp;quot; stuff in the inkscape sources:&lt;br /&gt;
&lt;br /&gt;
Uncomment &amp;quot;@[[INTLTOOL_DESKTOP_RULE]]@&amp;quot; in Makefile.&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;inttypes.h&amp;gt;, not &amp;lt;stdint.h&amp;gt; in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/sp-canvas.h,&lt;br /&gt;
src/livarot[[/DblLinked]].h, &lt;br /&gt;
src/livarot[[/LivarotDefs]].h, &lt;br /&gt;
src/livarot[[/AVL]].h, &lt;br /&gt;
src/livarot[[/Shape]].h, &lt;br /&gt;
src/livarot[[/ShapeUtils]].h,&lt;br /&gt;
src/livarot[[/Ligne]].h&lt;br /&gt;
src/livarot[[/AlphaLigne]].h&lt;br /&gt;
src/livarot[[/BitLigne]].h&lt;br /&gt;
src/livarot[[/MyMath]].h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(see&lt;br /&gt;
http://www.lns.cornell.edu/public/COMP/info/autoconf/Header-Portability.html)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Replace round() with rint() according to&lt;br /&gt;
http://news.gw.com/freebsd.gnome/1237 in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
src/object-edit.cpp, &lt;br /&gt;
src/spiral-context.cpp&lt;br /&gt;
src/star-context.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fabsf() was undeclared (I just put in &amp;quot;fabs()&amp;quot;, not sure if this is&lt;br /&gt;
correct) in &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/sp-shape.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(see&lt;br /&gt;
http://gcc.gnu.org/ml/java/2001-01/msg00465.html).&lt;br /&gt;
&lt;br /&gt;
Replaced fabsf(), floorf() and ceilf() with fabs(), floor() and ceil() in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/nr-arena-shape.cpp&lt;br /&gt;
src/display/canvas-bpath.cpp&lt;br /&gt;
src/display/sp-ctrlline.cpp&lt;br /&gt;
src/libnrtype/nr-rasterfont.cpp&lt;br /&gt;
src/livarot[[/AlphaLigne]].cpp&lt;br /&gt;
src/livarot[[/BitLigne]].cpp&lt;br /&gt;
src/livarot[[/Ligne]].cpp&lt;br /&gt;
src/livarot[[/PathOutline]].cpp&lt;br /&gt;
src/livarot[[/ShapeMisc]].cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
isfinite() is undeclared,  use &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;ieeefp.h&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and finite() (see http://devrsrc1.external.hp.com/STKS/impacts/i61.html) in &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/bezier-utils.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Need to include &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;ieeefp.h&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/libnr/nr-svp.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Missing strcasestr() used in libnrtype/nr-type-directory.cpp. I just &lt;br /&gt;
use the internal version for WIN32 given in the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In file included from /home/foo[[/Tools/include/X11/extensions/Xrender]].h:33,&lt;br /&gt;
                 from /home/foo[[/Tools/include/X11/Xft/Xft]].h:47,&lt;br /&gt;
                 from libnrtype/nr-type-xft.cpp:16:&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:56: warning: ignoring #pragma ident &lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:117: error: 'Bool' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:120: error: 'Pixmap' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:121: error: 'Window' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
etc. Fixed this by adding #include &amp;lt;X11[[/Xlib]].h&amp;gt;&lt;br /&gt;
before including Xft.h in src/libnrtype/nr-type-xft.cpp.&lt;br /&gt;
&lt;br /&gt;
`bind_textdomain_codeset' undeclared in src/main.cpp and src/inkscape.cpp. Just copied the definition in that &lt;br /&gt;
file outside the ifdef.&lt;br /&gt;
&lt;br /&gt;
`fpresetsticky' undeclared (autoconf seems to have checks for it. Solaris has fpsetsticky() when ieeefp.h is included.)&lt;br /&gt;
&lt;br /&gt;
No rule for target inkscape.desktop - just created an empty rule.&lt;br /&gt;
&lt;br /&gt;
DONE! It runs on Solaris! Yay! :)&lt;br /&gt;
--Colin Marquardt&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
*[[Compiling Inkscape]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Reinhard</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingSunSolaris&amp;diff=68263</id>
		<title>CompilingSunSolaris</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingSunSolaris&amp;diff=68263"/>
		<updated>2011-03-24T14:17:27Z</updated>

		<summary type="html">&lt;p&gt;Reinhard: /* Compiling on Oracle/Sun Solaris */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Compiling on Oracle/Sun Solaris =&lt;br /&gt;
&lt;br /&gt;
==Compiling version 0.48.1==&lt;br /&gt;
&lt;br /&gt;
here you can find how to build inkscape 0.48.1 on Solaris 10 (x86) 64 bit. &lt;br /&gt;
&lt;br /&gt;
* Chose a prefix path where to install independent of Solaris' own libraries. In my example --prefix=/usr/local will be user for all tools&lt;br /&gt;
* build GNU make and install it into /usr/local/bin&lt;br /&gt;
* Build one of the newest versions of gcc (I built 4.5.1). Before that install the needed libraries gmp, mpfr, mpc also with --prefix=/usr/local. Build gcc. Re-build the gmp/mpfr/mpc. Re-build gcc. After that you should have no further dependencies to /usr/sfw/lib which is important&lt;br /&gt;
* Edit the gcc specs to get a clean compilation independent if you use -m64 or -m32. To achieve this have a look at the *link_arch section where to put in additional -R/usr/local/lib or -R/usr/local/lib/64.&lt;br /&gt;
&lt;br /&gt;
For further installations I used a few environment variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=&amp;quot;/usr/local/bin:/usr/bin:/usr/ccs/bin&amp;quot;&lt;br /&gt;
export MAKE=/usr/local/bin/make&lt;br /&gt;
export CC=&amp;quot;gcc -m64&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;g++ -m64&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build and install the following packages with ./configure --prefix=/usr/local --libdir=/usr/local/lib/64 --sysconfdir=/usr/local/etc/64 --enable-shared&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zlib-1.2.5&lt;br /&gt;
gettext-0.17&lt;br /&gt;
libiconv-1.12&lt;br /&gt;
t1lib-5.1.0&lt;br /&gt;
freetype-2.4.4&lt;br /&gt;
render-0.8&lt;br /&gt;
libxrender-0.8.4&lt;br /&gt;
libpng-1.4.4 (cave: 1.5.x does not work with Inkscape!)&lt;br /&gt;
gsl-1.14&lt;br /&gt;
pixman-0.21.6&lt;br /&gt;
glib-2.28.3&lt;br /&gt;
glibmm-2.24.2&lt;br /&gt;
atk-1.32.0&lt;br /&gt;
pango-1.28.3&lt;br /&gt;
cairo-1.10.2 (rebuild pango after building cairo!!)&lt;br /&gt;
gtk+-2.24.3 (I avoided the very new version 3.....)&lt;br /&gt;
gdk-pixbuf-2.22.1&lt;br /&gt;
poppler-0.16.3 (use the additional flag --enable-xpdf-headers)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then make three small changes to inkscape's source:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/color-profile.cpp, line 8: Change &amp;quot;#include &amp;lt;sys/fcntl.h&amp;gt;&amp;quot; into &amp;quot;#include &amp;lt;fcntl.h&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
src/2geom/isnan.h, line 57: The mentioned &amp;quot;#include &amp;lt;cmath&amp;gt;&amp;quot; must be set&lt;br /&gt;
&lt;br /&gt;
src/2geom/convex-cover.cpp, line 36: include these two lines (ok, quick and dirty....):&lt;br /&gt;
#undef INFINITY&lt;br /&gt;
#define INFINITY (__builtin_inff())&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now configure inkscape as described above. You should get a clean compile. --[[User:Reinhard|Reinhard]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Compiling version 0.44==&lt;br /&gt;
&lt;br /&gt;
This documents the changes that I needed to make Inkscape compile with gcc 3.3.2 on Solaris 8.&lt;br /&gt;
&lt;br /&gt;
* install all hard dependencies&lt;br /&gt;
* provide a definition of ngettext (thread: http://thread.gmane.org/gmane.comp.graphics.inkscape.devel/15747/focus=15828)&lt;br /&gt;
* patch isfinite() like described here: http://opensolaris-br.org/osbr/index.php?option=com_content&amp;amp;task=view&amp;amp;id=34&amp;amp;Itemid=56&lt;br /&gt;
* src/dom/io/socket.cpp - FIONREAD undeclared: http://opendx.npaci.edu/mail/opendx-general/1999.06/msg00425.html (#include &amp;lt;sys/filio.h&amp;gt;)&lt;br /&gt;
* src/widgets/desktop-widget.cpp: replace round with rint&lt;br /&gt;
* src/trace/potrace/inkscape-potrace.cpp:288: error: `log2' undeclared (first use of this function)&lt;br /&gt;
:Add the following function to the file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// from http://groups.google.de/group/comp.lang.c/msg/8ae70d02495768f5?dmode=source&amp;amp;hl=de&lt;br /&gt;
double log2(double x)&lt;br /&gt;
{&lt;br /&gt;
        static double ln2;&lt;br /&gt;
        if (ln2 == 0.0)&lt;br /&gt;
                ln2 = log (2.0);&lt;br /&gt;
&lt;br /&gt;
        return log (x) / ln2;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Now stuck here (gc6.7, gcc version 3.3.2):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gc.cpp: In function `void Inkscape::GC::&amp;lt;unnamed&amp;gt;::do_init()':&lt;br /&gt;
gc.cpp:32: error: parse error before string constant&lt;br /&gt;
gc.cpp:32: error: `GC_noop1' undeclared (first use this function)&lt;br /&gt;
gc.cpp:32: error: (Each undeclared identifier is reported only once for each &lt;br /&gt;
   function it appears in.)&lt;br /&gt;
gmake[2]: *** [gc.o] Error 1&lt;br /&gt;
gmake[2]: Leaving directory `/home/marquardt/Tools/inkscape-0.44/src'&lt;br /&gt;
gmake[1]: *** [all-recursive] Error 1&lt;br /&gt;
gmake[1]: Leaving directory `/home/marquardt/Tools/inkscape-0.44'&lt;br /&gt;
gmake: *** [all] Error 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1516476&amp;amp;group_id=93438&amp;amp;atid=604306&lt;br /&gt;
&lt;br /&gt;
I got the following patch for &amp;quot;gc6.7/include/gc.h&amp;quot; from Hans Boehm which fixes these problems with gc6.7:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
947a948&lt;br /&gt;
&amp;gt;     extern int _end[], _etext[];&lt;br /&gt;
949,952c950&lt;br /&gt;
&amp;lt; #     define GC_INIT() { extern int _end[], _etext[]; \&lt;br /&gt;
&amp;lt; 		         extern &amp;quot;C&amp;quot; void GC_noop1(GC_word); \&lt;br /&gt;
&amp;lt; 		         GC_noop1((GC_word)_end); \&lt;br /&gt;
&amp;lt; 			 GC_noop1((GC_word)_etext); }&lt;br /&gt;
---&lt;br /&gt;
&amp;gt;       extern &amp;quot;C&amp;quot; void GC_noop1(GC_word);&lt;br /&gt;
954,956c952&lt;br /&gt;
&amp;lt; #     define GC_INIT() { extern int _end[], _etext[]; \&lt;br /&gt;
&amp;lt; 		         extern void GC_noop(); \&lt;br /&gt;
&amp;lt; 		         GC_noop(_end, _etext); }&lt;br /&gt;
---&lt;br /&gt;
&amp;gt;       void GC_noop1();&lt;br /&gt;
957a954,955&lt;br /&gt;
&amp;gt; #   define GC_INIT() { GC_noop1((GC_word)_end); \&lt;br /&gt;
&amp;gt; 		       GC_noop1((GC_word)_etext); }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With these changes, I got Inkscape running fine.&lt;br /&gt;
--[[User:Colin Marquardt|Colin Marquardt]]&lt;br /&gt;
&lt;br /&gt;
==Compiling a 0.39 snapshot==&lt;br /&gt;
&lt;br /&gt;
When trying to compile the CVS snapshot from 2004-05-27 with &lt;br /&gt;
gcc 3.3.2 on a &lt;br /&gt;
&amp;lt;nowiki&amp;gt;SunOS foo 5.8 Generic_108528-22 sun4u sparc SUNW,Sun-Fire-V240&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
machine, I had to fix a few things.&lt;br /&gt;
&lt;br /&gt;
First, I installed the following packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
autoconf-2.59&lt;br /&gt;
automake-1.8.3&lt;br /&gt;
intltool-0.30&lt;br /&gt;
expat-1.95.7&lt;br /&gt;
libpng-1.2.5&lt;br /&gt;
libsigc++-2.0.3&lt;br /&gt;
glib-2.4.2&lt;br /&gt;
glibmm-2.4.2&lt;br /&gt;
atk-1.7.0&lt;br /&gt;
render-0.8&lt;br /&gt;
xrender-0.8.3&lt;br /&gt;
xft-2.1.2&lt;br /&gt;
pango-1.4.0&lt;br /&gt;
gtk+-2.4.2&lt;br /&gt;
gtkmm-2.4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I configured Inkscape with the following switches: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --prefix=/home/foo[[/Tools]]/ --includedir=/home/foo[[/Tools/include]] CPPFLAGS=-I/home/foo[[/Tools/include]]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then &amp;quot;fix&amp;quot; stuff in the inkscape sources:&lt;br /&gt;
&lt;br /&gt;
Uncomment &amp;quot;@[[INTLTOOL_DESKTOP_RULE]]@&amp;quot; in Makefile.&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;inttypes.h&amp;gt;, not &amp;lt;stdint.h&amp;gt; in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/sp-canvas.h,&lt;br /&gt;
src/livarot[[/DblLinked]].h, &lt;br /&gt;
src/livarot[[/LivarotDefs]].h, &lt;br /&gt;
src/livarot[[/AVL]].h, &lt;br /&gt;
src/livarot[[/Shape]].h, &lt;br /&gt;
src/livarot[[/ShapeUtils]].h,&lt;br /&gt;
src/livarot[[/Ligne]].h&lt;br /&gt;
src/livarot[[/AlphaLigne]].h&lt;br /&gt;
src/livarot[[/BitLigne]].h&lt;br /&gt;
src/livarot[[/MyMath]].h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(see&lt;br /&gt;
http://www.lns.cornell.edu/public/COMP/info/autoconf/Header-Portability.html)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Replace round() with rint() according to&lt;br /&gt;
http://news.gw.com/freebsd.gnome/1237 in&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
src/object-edit.cpp, &lt;br /&gt;
src/spiral-context.cpp&lt;br /&gt;
src/star-context.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fabsf() was undeclared (I just put in &amp;quot;fabs()&amp;quot;, not sure if this is&lt;br /&gt;
correct) in &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/sp-shape.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(see&lt;br /&gt;
http://gcc.gnu.org/ml/java/2001-01/msg00465.html).&lt;br /&gt;
&lt;br /&gt;
Replaced fabsf(), floorf() and ceilf() with fabs(), floor() and ceil() in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/nr-arena-shape.cpp&lt;br /&gt;
src/display/canvas-bpath.cpp&lt;br /&gt;
src/display/sp-ctrlline.cpp&lt;br /&gt;
src/libnrtype/nr-rasterfont.cpp&lt;br /&gt;
src/livarot[[/AlphaLigne]].cpp&lt;br /&gt;
src/livarot[[/BitLigne]].cpp&lt;br /&gt;
src/livarot[[/Ligne]].cpp&lt;br /&gt;
src/livarot[[/PathOutline]].cpp&lt;br /&gt;
src/livarot[[/ShapeMisc]].cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
isfinite() is undeclared,  use &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;ieeefp.h&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and finite() (see http://devrsrc1.external.hp.com/STKS/impacts/i61.html) in &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/display/bezier-utils.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Need to include &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;ieeefp.h&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/libnr/nr-svp.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Missing strcasestr() used in libnrtype/nr-type-directory.cpp. I just &lt;br /&gt;
use the internal version for WIN32 given in the file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
In file included from /home/foo[[/Tools/include/X11/extensions/Xrender]].h:33,&lt;br /&gt;
                 from /home/foo[[/Tools/include/X11/Xft/Xft]].h:47,&lt;br /&gt;
                 from libnrtype/nr-type-xft.cpp:16:&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:56: warning: ignoring #pragma ident &lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:117: error: 'Bool' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:120: error: 'Pixmap' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
/usr/openwin/include[[/X11/Xutil]].h:121: error: 'Window' is used as a type, but is &lt;br /&gt;
   not defined as a type.&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
etc. Fixed this by adding #include &amp;lt;X11[[/Xlib]].h&amp;gt;&lt;br /&gt;
before including Xft.h in src/libnrtype/nr-type-xft.cpp.&lt;br /&gt;
&lt;br /&gt;
`bind_textdomain_codeset' undeclared in src/main.cpp and src/inkscape.cpp. Just copied the definition in that &lt;br /&gt;
file outside the ifdef.&lt;br /&gt;
&lt;br /&gt;
`fpresetsticky' undeclared (autoconf seems to have checks for it. Solaris has fpsetsticky() when ieeefp.h is included.)&lt;br /&gt;
&lt;br /&gt;
No rule for target inkscape.desktop - just created an empty rule.&lt;br /&gt;
&lt;br /&gt;
DONE! It runs on Solaris! Yay! :)&lt;br /&gt;
--Colin Marquardt&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
*[[Compiling Inkscape]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Reinhard</name></author>
	</entry>
</feed>