<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Compilation under Linux</title><link>https://sourceforge.net/p/abic/wiki/Compilation%2520under%2520Linux/</link><description>Recent changes to Compilation under Linux</description><atom:link href="https://sourceforge.net/p/abic/wiki/Compilation%20under%20Linux/feed" rel="self"/><language>en</language><lastBuildDate>Thu, 29 May 2014 08:47:16 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/abic/wiki/Compilation%20under%20Linux/feed" rel="self" type="application/rss+xml"/><item><title>Compilation under Linux modified by RomanH</title><link>https://sourceforge.net/p/abic/wiki/Compilation%2520under%2520Linux/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="compilation-of-abic-under-linux"&gt;Compilation of ABIC under Linux&lt;/h1&gt;
&lt;p&gt;Unfortunately, to compile ABIC under Linux is a bit more complicated than it should be, because:&lt;br /&gt;
 - It depends on the newest versions of some of the libraries (wxWidgets, GraphicsMagick, OpenJPEG, WebP, LCMS2)&lt;br /&gt;
 - Since I put two coders from GraphicsMagick into my source code, there are some files that need to be copied from the GraphicsMagick source directory (the *dev-package is not sufficient) to the installation directory.&lt;/p&gt;
&lt;p&gt;That's why, in order to build ABIC, you must first compile wxWidgets, WebP, LCMS2, OpenJPEG and GraphicsMagick and then link the resulting libraries statically to ABIC.&lt;/p&gt;
&lt;p&gt;At the time of writing, these were the up-to-date versions of the libraries:&lt;br /&gt;
 - wxWidgets 3.0.0 (should also compile against 2.9.x)&lt;br /&gt;
 - WebP 0.4.0&lt;br /&gt;
 - OpenJPEG 2.1.0&lt;br /&gt;
 - GraphicsMagick 1.3.19&lt;br /&gt;
 - LCMS 2.6&lt;/p&gt;
&lt;p&gt;Compiling these libraries is straight forward. Please make sure that you&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Build static libraries&lt;/li&gt;
&lt;li&gt;Install to a local directory, not /include or /usr/include&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example, the configure options for GraphicsMagick are similar to this:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;configure&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;prefix&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;to&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;install&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;with&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;quantum&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;depth&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;16&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;without&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;modules&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;disable&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;shared&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;disable&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;openmp&lt;/span&gt; &lt;span class="n"&gt;CPPFLAGS&lt;/span&gt;&lt;span class="o"&gt;=-&lt;/span&gt;&lt;span class="n"&gt;I&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;to&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lcms&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;install&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;include&lt;/span&gt; &lt;span class="n"&gt;LDFLAGS&lt;/span&gt;&lt;span class="o"&gt;=-&lt;/span&gt;&lt;span class="n"&gt;L&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;to&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lcms&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;install&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;For the full functionality of WebP, you need an updated webp.c, which is not part of GraphicsMagick 1.3.19. Either get webp.c from the trunk (see GraphicsMagick homepage), or use a newer version of GraphicsMagick if there is one.&lt;/p&gt;
&lt;p&gt;After compiling and installing, you need to copy the following files from the source directory of GraphicsMagick to the installation directory: studio.h, static.h, locale_c.h, unix_port.h&lt;/p&gt;
&lt;p&gt;The final build script for ABIC looks similar to this:&lt;/p&gt;
&lt;table class="codehilitetable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;LIBSDIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/your/path/to/install

&lt;span class="c"&gt;# wxWidgets&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;wxWidgets_ROOT_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$LIBSDIR&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;wxWidgets_CONFIG_EXECUTABLE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$wxWidgets_ROOT_DIR&lt;/span&gt;/bin/wx-config

&lt;span class="c"&gt;# OpenJPEG&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;OPENJPEG_ROOT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$LIBSDIR&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;OPENJPEG_NAMES&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;libopenjp2.a
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;OPENJPEG_INCLUDE_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$LIBSDIR&lt;/span&gt;/include/openjpeg-2.1

&lt;span class="c"&gt;# WebP&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;PC_WEBP_INCLUDE_DIRS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$LIBSDIR&lt;/span&gt;/include
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;PC_WEBP_LIBRARY_DIRS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$LIBSDIR&lt;/span&gt;/lib
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;WEBP_LIBRARY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$LIBSDIR&lt;/span&gt;/lib/libwebp.a

&lt;span class="c"&gt;# LittleCMS&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;PC_LCMS2_INCLUDEDIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$LIBSDIR&lt;/span&gt;/include
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;PC_LCMS2_LIBDIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$LIBSDIR&lt;/span&gt;/lib
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;LCMS2_LIBRARIES&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$LIBSDIR&lt;/span&gt;/lib/liblcms2.a
    &lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;LCMS2_LIBRARY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$LIBSDIR&lt;/span&gt;/lib/liblcms2.a

&lt;span class="c"&gt;# ImageMagick&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ImageMagick_ROOT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$LIBSDIR&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ImageMagick_INCLUDE_DIRS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$ImageMagick_ROOT&lt;/span&gt;/include/GraphicsMagick
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ImageMagick_MagickPP_LIBRARY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$ImageMagick_ROOT&lt;/span&gt;/lib/libGraphicsMagick++.a
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ImageMagick_MagickWand_LIBRARY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$ImageMagick_ROOT&lt;/span&gt;/lib/libGraphicsMagickWand.a
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ImageMagick_MagickCore_LIBRARY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$ImageMagick_ROOT&lt;/span&gt;/lib/libGraphicsMagick.a

&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ABIC_ADDITIONAL_LINK_LIBRARIES&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;-lbz2 -lxml2 -lwmflite -lfreetype -llcms&amp;quot;&lt;/span&gt;

mkdir build
&lt;span class="nb"&gt;cd &lt;/span&gt;build

cmake -G &lt;span class="s2"&gt;&amp;quot;Unix Makefiles&amp;quot;&lt;/span&gt; -DCMAKE_BUILD_TYPE&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Release&amp;quot;&lt;/span&gt; -DCMAKE_VERBOSE_MAKEFILE&lt;span class="o"&gt;=&lt;/span&gt;FALSE -DABIC_REMOVE_ADDITIONAL_LIBRARIES&lt;span class="o"&gt;=&lt;/span&gt;FALSE -DABIC_ADDITIONAL_LINK_LIBRARIES&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;$ABIC_ADDITIONAL_LINK_LIBRARIES&amp;quot;&lt;/span&gt; -DABIC_COMPILER_SUPPORTS_CXX11&lt;span class="o"&gt;=&lt;/span&gt;ON -DOPENJPEG_ROOT&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$OPENJPEG_ROOT&lt;/span&gt; -DOPENJPEG_NAMES&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$OPENJPEG_NAMES&lt;/span&gt; -DLCMS2_INCLUDE_DIR&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$LCMS2_INCLUDE_DIR&lt;/span&gt; -DLCMS2_LIBRARIES&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$LCMS2_LIBRARIES&lt;/span&gt; -DLCMS2_LIBRARY&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$LCMS2_LIBRARY&lt;/span&gt; -DImageMagick_INCLUDE_DIRS&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$ImageMagick_INCLUDE_DIRS&lt;/span&gt; -DImageMagick_Magick++_INCLUDE_DIR&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$ImageMagick_INCLUDE_DIRS&lt;/span&gt; -DImageMagick_MagickCore_INCLUDE_DIR&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$ImageMagick_INCLUDE_DIRS&lt;/span&gt; -DImageMagick_MagickWand_INCLUDE_DIR&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$ImageMagick_INCLUDE_DIRS&lt;/span&gt; -DImageMagick_Magick++_LIBRARY&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$ImageMagick_MagickPP_LIBRARY&lt;/span&gt; -DImageMagick_MagickWand_LIBRARY&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$ImageMagick_MagickWand_LIBRARY&lt;/span&gt; -DImageMagick_MagickCore_LIBRARY&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$ImageMagick_MagickCore_LIBRARY&lt;/span&gt; -DwxWidgets_ROOT_DIR&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$wxWidgets_ROOT_DIR&lt;/span&gt; -DwxWidgets_CONFIG_EXECUTABLE&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$wxWidgets_CONFIG_EXECUTABLE&lt;/span&gt; ../src
make

&lt;span class="nb"&gt;cd&lt;/span&gt; ..
&lt;/pre&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;Please don't let yourself be confused by the fact that I am using the ImageMagick CMake script for GraphicsMagick. ABIC does not work with ImageMagick, only with GraphicsMagick.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">RomanH</dc:creator><pubDate>Thu, 29 May 2014 08:47:16 -0000</pubDate><guid>https://sourceforge.net64ff6034d7b12358009de1feac896ffd69f6fbf6</guid></item></channel></rss>