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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Strict//EN">
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head>
<meta http-equiv="Content-Language" content="en-us">
<title>Guide</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<link rel="stylesheet" type="text/css" href="../style.css">
</head>
<body>
<h1 align="center" style="text-align:center">Building Lua, IM, CD and IUP in
Linux</h1>
<p>This is a guide to build all the Lua, IM, CD and IUP libraries in Linux.
Notice that you may not use all the libraries, but this guide will build all of
them. Later on it is explained how to build a single library.</p>
<h3>System Configuration</h3>
<p>You will have to download the development version of some packages installed
on your system. Although the run time version of some of these packages are
already installed, the development versions are usually not. The packages
described here are for Ubuntu, but you will be able to identify them for other
systems as well.</p>
<p>To build Lua you will need:</p>
<pre>libreadline5-dev</pre>
<p>To build IM you will need:</p>
<pre>g++</pre>
<p>To build CD you will need:</p>
<pre>libx11-dev
libxpm-dev
libxmu-dev
libxft-dev (for the XRender driver, OPTIONAL)
libgtk2.0-dev (for the GDK driver)</pre>
<p>To build IUP you will need:</p>
<pre>libgtk2.0-dev (for the GTK driver) [already installed for CD]
libmotif-dev and x11proto-print-dev (for the Motif driver, OPTIONAL)
libgl1-mesa-dev and libglu1-mesa-dev (for the IupGLCanvas)</pre>
<h3>Download</h3>
<p>Download the "xxx-X.X_Sources.tar.gz" package from the "<strong>Docs and Sources</strong>"
folder for the version you want to build. Here are links for the <strong>Files</strong> section
in <strong>Source Forge</strong>:</p>
<p>Lua - <a href="http://sourceforge.net/projects/luabinaries/files/">
http://sourceforge.net/projects/luabinaries/files/</a><br>
IM - <a href="http://sourceforge.net/projects/imtoolkit/files/">
http://sourceforge.net/projects/imtoolkit/files/</a><br>
CD - <a href="http://sourceforge.net/projects/canvasdraw/files/">
http://sourceforge.net/projects/canvasdraw/files/</a><br>
IUP - <a href="http://sourceforge.net/projects/iup/files/">
http://sourceforge.net/projects/iup/files/</a></p>
<h3>Lua</h3>
<p>Although we use Lua from LuaBinaries, any Lua installation can also be used.
But you will have to define some environment variables before building IM, CD and
IUP. Here is an example:</p>
<pre class="example">export LUA_SUFFIX=
export LUA_INC=/usr/local/include [actually NOT necessary, this one is already used by gcc/g++]
export LUA_LIB=/usr/local/lib [ " ]
export LUA_BIN=/usr/local/bin [necessary because luac will not be used from the PATH]</pre>
<p>The tools <strong>bin2c</strong> and <strong>luac</strong> are necessary only if you need to rebuild LOH files.
But since the source packages already includes them, those tools are in fact not
necessary.</p>
<h3>Unpacking</h3>
<p>If you are going to build all the libraries, the makefiles and projects
expect the following directory tree:</p>
<pre>/xxxx/
iup/
cd/
im/
lua5.1/ [optional]</pre>
<p>So, unpack all the source packages in the same folder that will do fine.</p>
<h3>Building</h3>
<p>As a general rule (excluding system dependencies): IUP depends on CD and IM,
and CD depends on IM. So start by build IM, then CD, then IUP.</p>
<p>To start building go the the "<strong>src</strong>" folder and type "<strong>make</strong>". In IUP there are
many "srcxxx" folders, so go to the up folder "iup" and type
"<strong>make</strong>" that all the
sub folders will be built.</p>
<p>Instead of building all the libraries, try building only the libraries you
are going to use. The provided makefiles will build all the libraries, but take
a look inside them and you will figure out how to build just one library. </p>
<h3>Installation</h3>
<p>After building you can copy the libraries files to the system folder. This is
not necessary since you can use -I and -L on your makefiles, but it can be done.
If you are inside one of the libraries main folder you can type:</p>
<pre>cp lib/Linux26g4/* /usr/local/lib
cp include/* /usr/local/include</pre>
<p>This will copy run time and development files. If you just want the run time,
then do simply:</p>
<pre>cp lib/Linux26g4/*.so /usr/local/lib</pre>
<p>Also when coping development folders, if you want to keep the library headers
in a separate folder, you can do:</p>
<pre>cp -R iup/include /usr/local/include/iup
cp -R cd/include /usr/local/include/cd
cp -R im/include /usr/local/include/im</pre>
<p>Then use in your makefile -Iiup -Icd -Iim.</p>
<p>This installation procedure also can be used for the pre-compiled binaries
packages available for download. They contain the development and run time files
you need. </p>
<p>If you <strong>don't</strong> want to copy the libraries to your system
folder, you can still use them, but you will need to add the binaries folders to
the LD_LIBRARY_PATH, for example:</p>
<pre>export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/xxxx/iup/lib/Linux26g4:/xxxx/cd/lib/Linux26g4:/xxxx/im/lib/Linux26g4</pre>
<p>In this case, in your makefile will will also need to specify those paths
when linking using -L/xxxx/iup/lib/Linux26g4.</p>
<h4>Lua</h4>
<p>If you are NOT using LuaBinaries then you have two options to be able to use
"require" with these libraries. You can create symbolic links in the Lua C
modules folder to the installed libraries run time:</p>
<pre>ln -s /usr/local/lib/lipiuplua51.so /usr/local/lib/lua/5.1/iuplua.so
ln -s /usr/local/lib/lipiupluacontrols51.so /usr/local/lib/lua/5.1/iupluacontrols.so
...</pre>
<p>You can set the LUA_CPATH environment variable:</p>
<pre>export LUA_CPATH=./\?.so\;./lib\?.so\;./lib\?51.so\;
</pre>
</body>
</html>
|