File: INSTALL

package info (click to toggle)
imview 1.1.9c-7
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 4,076 kB
  • ctags: 4,780
  • sloc: cpp: 28,836; sh: 2,624; ansic: 1,818; makefile: 731; exp: 112; python: 88
file content (357 lines) | stat: -rw-r--r-- 12,078 bytes parent folder | download | duplicates (5)
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
# -*- text -*-
# $Id: INSTALL,v 4.4 2007/06/07 13:30:14 hut66au Exp $
#

This is Imview's installation documentation:
-------------------------------------------

These instruction relate to imview 1.1.x


Prerequisite
============

0-      This software works on Unix, MacOS X and Windows. No BeOS,
	no MacOS prior to OS/X, sorry (please help if you want a version 
	for your favourite O/S).

1-	You will need a reasonably ANSI/ISO compliant C++ compiler,

	The GNU Compiler Collection (GCC) version 3.1 or more recent
	is  such a compiler, that you can get from

		ftp://prep.ai.mit.edu/pub/gnu/

	and various mirrors. Earlier versions of GCC are no longer
	supported, sorry!

	The Intel C++ compiler, version 7.0 or later is also fine. On
	Linux this compiler is free for non-commercial use.

	On windows, MS Visual C++ version 6.0 patchlevel 3 is fine for
	the time being but plans are to move to a more recent version
	(probably version 7.1 a.k.a. .NET 2003).

	Other compilers might be fine also, YMMV. The configure 
	script will tell you if it thinks your compiler is not
	up to scratch (and the compilation will probably fail in
	that case).


2-	To build, imview *REQUIRES* FLTK, the Fast Light ToolKit.
	Get it from

		http://www.fltk.org

	Compile it and install it on your machine. As of this
	writing, the version I used was fltk-1.1.4.

	NOTE: The flags that I used to compile FLTK were:

	fltk% ./configure --enable-threads --enable-xft

	Neither of the two --enable switches are indispensible.

NOTE:   While this version of imview requires FLTK 1.1.x.
	FLTK-1.0.x is still supported in a different imview CVS branch,
	contact the author if you need that version.


FLTK works on Mac OS/X, most Unix distributions (including Linux) and
on Microsoft Windows (all versions >= win95) as well.

	Imview will not compile at all until FLTK is available
on your system. Very few systems come with FLTK pre-installed
(except maybe a very complete Debian Linux distribution...)

	FLTK itself requires the X11 windowing system OR the
windows win32 GDI that comes will all win32 distributions OR
the `carbon' environment that comes with MacOS X. All unix 
systems I know come with X11 (even MacOS X in fact!).

Recommended add-ons
===================

	While FLTK is the only true requirement, Imview will
take advantage of the following libraries/enhancements to the
O/S:

1- 	The TIFF library (originally by Sam Leffler): 

		http://www.libtiff.org/

	Any version after 3.4beta037 is fine. The current version
	is 3.5.7.

2-	The JPEG library

		ftp://ftp.uu.net/graphics/jpeg/

	I used version v6b.

3- 	The ImageMagick library. This will add dozens of
	formats to those that Imview knows of natively, at the
	cost of a relatively big library (which can be shared).
	While ImageMagick is somewhat unstable I still recommend
	you use it. Version 5.x is necessary.

		http://www.simplesystems.org/ImageMagick/

	In turn, ImageMagick may require:

	3a- 	the PNG library

		ftp://ftp.uu.net/graphics/png/

		Current version is 1.0.8

	3b-     the ZLIB library

		ftp://ftp.uu.net/pub/archiving/zip/zlib/

		Current version is 1.1.3

4-      POSIX Threads. Most recent Unix systems come with POSIX-compliant
	threads, there is a pthread library for win32 available at:

		ftp://sources.redhat.com/pub/pthreads-win32/

	Don't bother with the source, just download the DLLs.


Without the image libraries, Imview will be unable to load the
corresponding image formats. Theoretically ImageMagick should be
enough (it can also read jpeg and tiff images) but its TIFF support is
not great. Imview can read just about any TIFF file, not just the
common 8 bit-per-channel ones. The native JPEG support is there for
historical reasons.

Without the POSIX thread library, the Imview server will not run (see the
Imview documentation).

Most Linux distributions come with all the libraries listed above (except
FLTK), one notable exception being the (now defunct) Corel distro. 

Building Imview
===============

1 Under Unix:
-------------

To build imview, normally you only need to do:

 % ./configure
 % make
 % make install


1.1 Options
-----------

1.1.1 Standard options

	As is standard with every ./configure scripts, lots of
options are available. Try ./configure --help for a list of them!
If you are not familiar with autoconf-generated ./configure, just
about the only really useful one is --prefix, which specifies
where to put your software and where to look for libraries. Normally
you would put everything under the one hierarchy, by default under
/usr/local

	
1.1.2 Imview-specific options

  --enable-prof           enable prof source profiling support (default is no)
  --enable-gprof          enable gprof source profiling support (default is no)
  --enable-gcov           enable gcov source profiling support (default is no)
  --without-jpeg          disable JPEG support
  --without-tiff          disable TIFF support
  --without-magick        disable ImageMagick support
  --enable-debug          turn on debugging [default=no]
  --without-server        disable image server [default=no]
  --without-sysv          disable Unix SYSV shared memory support [default=no]
  --with-x                use the X Window System

	Unless you know what you are doing, you shouldn't need to mess with
these, except maybe --enable-debug, if you've found a bug in Imview that you
want to track (by default, ./configure will set things up to  build a production 
release, optimized without symbols).

1.1.3 A neat trick

	If you are going to build imview for a number of platform, I suggest
that you create a obj/<platform>  directory, that you cd to this directory
and that you run ../../configure from there. Then build imview the normal way
in this directory (just run make). This works VERY well (I use it all the time). 
	The big benefit is of course that you can have as many as these
<platform> subdirectories as you want and that you don't need to clean and
re-configure between them (if you've got the hard disk space, that is).

2 For windows:
----------------

There are at least three routes to build Imview for win32:

2.1: Use a cross-compiler
-------------------------

	It is possible to compile Imview with a cross-compiler, this is supported.
	I cross-compile imview for win32 on both Linux and OS/X. To do that,
you need a mingw32 cross compiler, and at configure time, simply specify 

 % [./]configure --host=mingw32 <other options>

2.2: Use GCC under windows
--------------------------

There are at least two ways of running GCC under windows:

2.2.1: the mingw32 environment
------------------------------

	Mingw32 stands for "minimal" GNU for win32. It uses the GNU tools
together with Microsoft's implementation of the ANSI/ISO C and POSIX libraries to 
make things work. The benefits are that executables are relatively small and 
portable, and no extra library is necessary besides those that ship with Windows.

	Point your browser to http://www.mingw.org to download the compiler and
the environment. The development tools are in the large MinGW.exe package, and
the minimal compiling enviroment (including shell) is called MSYS. This MSYS
environment is almost like a normal Unix environment, except it's Windows. To

	Nowadays MinGW comes with pre-compiled versions of libtiff, libjpeg,
libpng and libz, You'll only need to compile FLTK yourself. Also you'll need 
POSIX threads to be able to run the server, this can be provided by pthread-win32:

	http://sources.redhat.com/pthreads-win32/

	I've yet to succeed in compiling ImageMagick from within mingw, but
I'm sure it's feasible, but apart from that the rest of the libraries that
imview uses all compile and work fine.

	To configure and compile Imview, just proceed as under Unix above.

2.2.2: the Cygwin environment
-----------------------------
	
	Cygwin is an effort to port the whole Unix environment to Windows: X11,
shells, utilities, libraries, and development tools:

	http://www.cygwin.com

	From within the cygwin framework you can install pre-compiled version
of everything Imview uses: FLTK, libjpeg, libtiff, etc.

	You can ./configure the cygwin environment exactly as with any other
Unix platform, the script will detect your environment and compile imview 
correctly. It will not require X11 to run, but it will require the Cygwin
libraries, which in my opinion makes it an inferior solution to the mingw32
route for portability, but might make sense in your setup.

	Cygwin provide their own posix thread library, so you don't need the
pthread-win32 library that you need if you compile with mingw. Also the 
ImageMagick library that ships with Cygwin requires X11, so at the moment
it's not compatible with imview.

	At any rate the end result works OK but there are some unresolved issues, 
see the TODO file.


2.3: Use MSVC++
---------------

	The two solutions above work fine for 99% of cases, but I've discovered 
a bug in  the pthread-win32 library that is such that version of Imview compiled with
it under any version of GCC for windows will not run well on Windows NT-4.0 on true
SMP machines (i.e: If you are running windows NT on a dual-CPU machine or more).
This has to do with exception handling. The problem has been reported and might
have been fixed but I haven't tested it... It might have gone away with win2k or XP 
but I seriously doubt it.

	To make Imview work well with Pthreads on multiple CPUs under NT, you need
to compile with MSVC++. A project file is included in the  obj/NT-msvc++ directory in
this distribution. You will need to edit it (by hand!) to indicate the location
of the various libraries (fltk, etc). I used MSVC++ version 6.0 patchlevel 3.

	Due to poor template support in MSVC++ 6.0, some functionality is reduced, 
but this should hardly be noticeable to the casual user.

BTW, I find MSVC++ about 5 times slower (to compile) than the cross-compiler solution.
The end result works fine, of course.
	

3 For Mac.
---------

Imview works very well on MacOS/X. Last tested on 10.4.9, no problem reported.
Display uses Aqua/Carbon, not X11, thanks to FLTK support. Support for Cocoa is
foreseen for when FLTK-2.0 comes out of alpha.

4 Known issues
================

Known platforms;

	Imview is known to work on the following platforms

Linux glibc-2.x: 
	Redhat 5.x, 6.x, 7.x, 8.x and 9, 
	Fedora FC1-FC6
	Debian 2.2 and following, including Ubuntu.

DEC Unix (Compaq Tru64) 3.x, 4.x, 5.x
Solaris 2.5.1, Solaris 7, Solaris 8, Solaris 9
MS-Windows win32: win9x, win-NT 3.51, win-NT 4.0, win2k, winXP
MacOS: Mac OS/X 10.0.3, 10.3.x, 10.4.x

	I welcome any news on any other platform.

Known bugs:
-----------

	There are a few known bugs. Please see the full documentation.


Compilation and installation issues:
-----------------------------------

Here are a few non-platform-dependent issues:

 Warnings:

	There should be very few warnings when you compile imview,
	except on Solaris (see below). Depending on your compiler,
	you will probably see a few in imtranslate.cxx. They relate
	to template instanciation and can be ignored.

Here are a few platform-dependent issues.

  Solaris: The X11 headers are stuffed, Sun does not provide a 
	set of ANSI-compliant X11 headers: the prototypes are 
	incomplete. Gcc prior to 2.95 just didn't care but 
	suddently from 2.95 it refuses to compile
	these headers unless the -fpermissive flag is added. The
	configure script checks for that *BUT* you will most
	likely get a *TON* of warnings. gcc-2.95.3 has a workaround
	that works if the set of headers that you use come from
	/usr/include/X11. Myself I've just patched gcc so this
	problem disappears. Contact me if you want to get it, it's
	a one-line change.

	You may have to specify --x-libraries=/usr/openwin/lib to
	the configure script if you get an error with the
	exception structure being multiply defined under Solaris-2.5.1



FINALLY:
========


Thank you for your interest in Imview. Let me know how you go!

First version:
Hugues Talbot	22 Dec 2000

Last edited:
Hugues Talbot	 7 Jun 2007	-- Release 1.1.9