1
--------------------------------------------------------------------
2
Building and installing Ipe on Unix
3
--------------------------------------------------------------------
8
Before you can compile Ipe, you will need to have the following tools
13
If you are using Linux, you probably already have Qt installed.
14
You need to have version 2.3.0 or higher (Ipe does not need any of
15
the new features of Qt 3, but compiles fine under Qt 3). Make sure
16
you not only have the runtime libraries but the development package
19
Check your system for the correct setting of the QTDIR environment
20
variable. In a standard Qt setup, all Qt components such as
21
include files and the libraries are under $QTDIR. Note that many
22
Linux distributions (such as Debian) install the Qt include files
23
and libraries in /usr/include and /usr/lib. Nevertheless, you need
24
to set QTDIR! (On Debian, the correct setting is "/usr/share/qt3" -
25
this directory contains symbolic links pointing to "/usr/include"
26
etc.) Once things have been set up properly, typing "ls
27
$QTDIR/include" must display the Qt include files.
29
If you don't have Qt, get the sources for the most recent Qt 3
30
version from www.trolltech.com and install them following the
33
The Ipe build process relies on "qmake", a Makefile-generation tool
34
that is part of Qt 3. If you are using Qt 2, you'll have to
35
install qmake separately (tmake is NOT supported!). You can try
36
the package "http://ipe.compgeom.org/qmake-backport.tar.gz", a
37
backport of qmake for Qt 2.3 made by the Opie people
38
(www.opie.org). On Linux, this backport should compile by saying
39
"make" only. Before running qmake, you'll need to set the
40
environment variable QMAKESPEC to the "mkspecs/linux-g++" directory
41
(depending on where you unpacked qmake):
43
export QMAKESPEC="~/qmake/mkspecs/linux-g++"
45
I'm currently building with Qt 2.3.0 on Windows and Qt 3.1.1 on
48
* The compression library 'zlib'
50
Very likely you already have it on your system (check for the
51
include file "zlib.h"). If not, obtain it from "www.gzip.org/zlib"
54
* The font library 'Freetype 2'
56
On Linux, you most likely already have this on your system.
57
Otherwise, you can probably install it as a binary package. If
58
not, install from the sources at "www.freetype.org".
60
Make sure your version of Freetype is at least 2.0.8. Ipe will not
61
compile with earlier versions. Also, Freetype versions 2.1.6 to
62
2.1.7 contain a bug that stops Ipe from working. Freetype 2.1.8rc1
63
has been reported to work fine.
65
Freetype can be one of the problematic parts of installing Ipe. If
66
compiling Ipe is successfull, but when running it, only empty boxes
67
are displayed instead of text, you very probably have a problem
68
with Freetype. If you compile a new version of Freetype for Ipe,
69
be careful that Ipe uses header files and library from the same
70
version. Ipe detects when header files and libary version do not
71
match and will tell you as soon as it tries to display any text.
73
* The 14 standard Postscript fonts
75
If you create text objects using the 14 standard Postscript fonts
76
(Times, Helvetica, Courier) the font doesn't need to be embedded in
77
the PDF file. Still, Ipe needs access to the font to display it on
78
the screen, and that's why you need to provide these 14 font files.
80
The fonts are probably already on your system, for instance in
81
subdirectories of "/usr/share/texmf/fonts/type1/urw", under the
84
ucrb8a.pfb ucrbo8a.pfb ucrr8a.pfb ucrro8a.pfb uhvb8a.pfb
85
uhvbo8a.pfb uhvr8a.pfb uhvro8a.pfb usyr.pfb utmb8a.pfb utmbi8a.pfb
86
utmr8a.pfb utmri8a.pfb uzdr.pfb
88
Identical fonts may also be in "/usr/X11R6/lib/X11/fonts/Type1",
89
"/usr/share/libwmf/fonts", or "/usr/share/ghostscript/fonts" (even
90
multiple times), but then probably under the following names:
92
n019003l.pfb n019004l.pfb n019023l.pfb n019024l.pfb n021003l.pfb
93
n021004l.pfb n021023l.pfb n021024l.pfb n022003l.pfb n022004l.pfb
94
n022023l.pfb n022024l.pfb s050000l.pfb d050000l.pfb
96
Your system may have a fontmap file describing all the fonts on the
97
system in XML-format, similar to the supplied file
98
"tetex-fontmap.xml". If so, Ipe can directly read this file and
99
find the fonts, and all you need to do is to provide the path to
102
If not, the supplied "tetex-fontmap.xml" may already be correct, if
103
you have a standard teTeX installation (most Linux distributions
104
do). If not, you can check for the location of the necessary
105
files, and create your own fontmap. If you use relative paths in
106
the fontmap, they are interpreted relative to IPEDATADIR (see
109
Finally, you can take the path of least resistance, and download
110
"urw-fonts.zip" from the same place where you got Ipe. The
111
supplied "urw-fontmap.xml" works for these fonts unchanged.
115
Ipe uses Pdflatex, a PDF-producing version of Latex, to convert
116
Latex source code to Postscript/PDF. Nearly every Latex
117
installation already includes Pdflatex. However, some
118
installations still seem to use very ancient versions of Pdflatex,
119
which do not support the interface used by Ipe.
121
To verify the Pdflatex version, simply call "pdflatex" from the
122
command line and check what version it reports. You should get a
123
message like one of the following:
125
This is pdfTeX, Version 3.14159-13d (Web2C 7.3.1)
126
This is pdfTeX, Version 3.14159-14h-pretest-20010310 (Web2C 7.3.3.1)
127
This is pdfTeX, Version 3.14159-1.10a-beta-20021101 (MiKTeX 2.2)
129
In Pdftex version is the number after the TeX version (3.14159). In
130
these examples, 0.13d, 0.14h, and 1.10a. You need to have at least
131
0.14f. If your Pdftex version is too old, you'll need to install a
132
newer version. Check "www.tug.org/applications/pdftex" for where to
135
You can go ahead and compile and install Ipe without updating
136
Pdflatex first. Pdflatex is not used during the compilation, and
137
Ipe will actually work fine as long as you don't call the function
138
"Run Latex" and don't try to save to Postscript or PDF format.
141
Configuring and building Ipe
142
----------------------------
144
There are some pieces of information you need to provide to the Ipe
145
build process by editing "src/config.pro".
147
If your Freetype include files (check for "ft2build.h") and library
148
("libfreetype.so") are not on the standard path, add the correct
149
paths. Note that many Linux distributions have a somewhat weird,
150
historically grown Freetype setup. Although "ft2build.h" is in
151
"/usr/include", you still need to add "/usr/include/freetype2" to your
152
include path. If your system has a directory "usr/include/freetype2",
153
this is probably the case on your system.
155
If your Zlib include file ("zlib.h") and library ("libz.so") are not
156
on the standard path, add the correct paths.
158
Decide whether to use the threaded version of the Qt library. There
159
is no good reason to use the threaded version (Ipe doesn't use
160
threading), but some systems (such as Debian) may not have the
161
non-threaded version.
163
Finally, define the Ipe directory structure. Normally, you would only
164
have to define IPEPREFIX properly, depending on where you want
167
Indicate in IPEFONTMAP the path for "fontmap.xml" (if you are using a
168
system fontmap, indicate the correct path; if you are using/making one
169
specifically for Ipe put it in the standard location
170
"IPEDATADIR/fontmap.xml").
172
Indicate in IPEBROWSER the program you wish to use for viewing the
173
on-line manual. The user can later override all these definitions
174
using environment variables.
176
These steps will build Ipe:
183
If "qmake" is not on your path, check "$QTDIR/bin" (and add that to
184
your path). You may need to do "make install" as superuser (depending
185
on where you are installing Ipe).
187
If you have made a "fontmap.xml" for Ipe, move it into the location
188
you specified in "config.pro". In case you are using "urw-fonts.zip",
189
move "urw-fontmap.xml" to "IPEPREFIX/share/ipe/IPEVERS/fontmap.xml",
190
and unpack the 14 fonts from "urw-fonts.zip" into
191
"IPEPREFIX/share/ipe/IPEVERS/fonts"
193
Note that the Ipe library is a shared library, and so your dynamic
194
linker has to find "libipe.so.*". If you have chosen a standard
195
library directory for IPELIBDIR, saying "ldconfig" (as superuser) will
196
be enough to run Ipe.
198
If you installed in a different location, such as "/opt/ipe-6.0", you
199
can make a small script called "ipe" like the following, and put it in
203
export LD_LIBRARY_PATH="/opt/ipe-6.0/lib/:$LD_LIBRARY_PATH"
204
/opt/ipe-6.0/bin/ipe $* &
206
Alternatively, you could put links to the library in a standard
207
location (as superuser):
209
ln -f -s IPELIBDIR/lib* /usr/lib
212
Another alternative is to add IPELIBDIR to your system's standard
213
library path, usually by editing "/etc/ld.so.conf" and running
216
--------------------------------------------------------------------