summaryrefslogtreecommitdiff
path: root/html/en/building.html
blob: 32b66917fece93c70e05e7194e523f563efa8a8c (plain)
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 &quot;xxx-X.X_Sources.tar.gz&quot; package from the &quot;<strong>Docs and Sources</strong>&quot; 
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          [            &quot;         ]
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 &quot;<strong>src</strong>&quot; folder and type &quot;<strong>make</strong>&quot;. In IUP there are 
many &quot;srcxxx&quot; folders, so go to the up folder &quot;iup&quot; and type 
&quot;<strong>make</strong>&quot; 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 
&quot;require&quot; 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>