Fixed // in filters.c. And things that didn't work in perl 5.004_04
[imager.git] / README
1 ================================================================
2 Copyright (c) 1999, 2000 Arnar M. Hrafnkelsson. All rights reserved.
3 This program is free software; you can redistribute it and/or
4 modify it under the same terms as Perl itself.
5 ================================================================
6
7 >> THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY WHATSOEVER <<
8
9 ================================================================
10
11
12 ========================
13 1. Patent infringements?
14 ========================
15
16 Imager as such contains no patented algorithms.  The external
17 libraries (which are not written by me) may or may not contain
18 patented algorithms.  YOU ARE SOLELY RESPONSIBLE FOR OBTAINING
19 LICENSE(S) TO USE SUCH LIBRARIES SHOULD YOU NEED ANY.
20
21
22 ========================
23 2. Compiling and testing
24 ========================
25
26 Some care has been taken to make the installation as smooth as
27 possible.  This is rather hard due to the difference between operating
28 systems and site setups.  To get started just type
29
30 $ perl Makefile.PL
31
32 It should blurb out a list of which libraries were found and which
33 not.  If you add a library to the machine after installing Imager it
34 does not automatically become available in Imager.  It only uses the
35 libraries that are found.  If the list of found libraries is not what
36 you expected, then the Makefile.PL is either not searching in the
37 right directories or your box does not have the libraries you think it
38 does.  For a list of where to get the libraries have a look at
39 3. External dependencies.  To widen the search path for libraries and
40 include files set the IM_INCPATH and IM_LIBPATH variables.  The
41 environment variables that matter when Makefile.PL is run are
42
43 IM_INCPATH      colon separated list of paths to extra include files
44 IM_LIBPATH      colon separated list of paths to extra library files
45
46 IM_VERBOSE      turns on verbose mode for the library scanning and such
47 IM_MANUAL       to manually select which libraries are used and which not
48 IM_NOLOG        if true logging will not be compiled into the module
49 IM_DEBUG_MALLOC if true malloc debugging will be compiled into the module
50                 do not use IM_DEBUG_MALLOC in production - this slows
51                 everything down
52
53 IM_CFLAGS       Extra flags to pass to the compiler
54 IM_LFLAGS       Extra flags to pass to the linker
55 IM_DFLAGS       Extra flags to pass to the preprocessor
56
57
58
59 When finding the libraries has been sorted out it's time for
60
61 $ make 
62
63 and if that works then do
64
65 $ make test
66
67 If either fails do take a peek at the file errep.perl.  It's creates a
68 file report.txt.  This is some information which will help me discover
69 where the problem is so I can try to fix it in future releases.  If
70 you find running it ok (just remember - no warranty!) please send the
71 report.txt via email to addi@umich.edu .
72
73 Troubleshooting tips:
74
75 A common problem is that libgif/libungif are sometimes linked to the X
76 libraries and then running the tests fails.  In that case something
77 like:
78
79 $ IM_LFLAGS="-L/usr/X11R6/lib -lX11" perl Makefile.PL
80
81 Which simply sets the environment variables for the extra libraries 
82 to include the X libraries (which we do not use at all, but must
83 included since libgif has been linked with it).
84
85 Also note that libgif has a few bugs: You can run something like
86
87 $ perl -Iblib/lib -Iblib/arch t/t105gif.t
88
89 This way you can see what comments the test script prints out.
90 t/t105gif.t checks for an bug in libgif and prints out a patch
91 if that bug is present, note that this bug only affects the more
92 "advanced" features of libgif.
93
94 If for some reason you have libungif-devel package installed but
95 not libungif on RedHat then you will probably get lots of errors
96 like undefined symbol: FreeSavedImages when running make test.
97 Install libungif package to fix it.
98
99
100 Imager needs to have a fairly recent libtiff installed (we know it
101 it runs fine with 3.5.5).  In the future we might consider supporting older
102 libtiff versions.  For now you can either configure Imager manually (by
103 setting the IM_MANUAL environment variable to 1, in sh:
104
105 $ IM_MANUAL=1 perl Makefile.PL
106
107 and simply say no to tiff support when asked if you want it, the same thing
108 can be used to circumvent problems in gifs to get Imager going.
109
110
111 If it worked just continue with the installation as normally 
112 (with make install).
113
114 ========================
115 3. External dependencies
116 ========================
117
118 Some hints about getting the Imager module to find the libraries it
119 needs for specific features.  The libraries it uses are:
120
121  jpeg: ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz
122
123   png: ftp://ftp.uu.net/graphics/png  
124   you also need zlib to use png:  ftp://ftp.uu.net/pub/archiving/zip/zlib
125   We have encountered problems with libpng 1.0.1, which were fixed in 1.0.5
126
127   gif: http://www.arrakeen.demon.co.uk/giflib/  
128 or at: http://prtr-13.ucsc.edu/~badger/software/libungif/index.shtml
129
130  tiff: http://www.libtiff.org/
131
132    t1: ftp://ftp.neuroinformatik.ruhr-uni-bochum.de/pub/software/t1lib/
133 or at: ftp://sunsite.unc.edu/pub/Linux/libs/graphics/
134
135    tt: http://www.freetype.org/
136
137
138 Precompiled versions of some of the libraries might be found at:
139
140 AIX:
141    http://www.bull.de/
142    ftp://ftp.rge.com/pub/systems/aix/bull/
143
144
145
146 ========================
147 4. Logging and debugging
148 ========================
149
150 Logging is compiled in by default - if you should want to get of it
151 from the binaries you can do so by setting the env IMAGER_NOLOG 
152 to something. If you want to enable malloc debugging to check for leaks
153 then set IMAGER_DEBUG_MALLOC to something.  Needless to say it is
154 pretty pointless to have malloc debug enabled with no logging since you 
155 can never see the malloc information that way.
156
157
158 ========================
159 5. Truetype information
160 ========================
161
162 If you enable the truetype part and want it to be TESTED you MUST set
163 the environment variable TTFONTTEST to a complete path to a truetype
164 font.
165
166
167 =================
168 6. Win32 Support
169 =================
170
171 Imager can be installed on Win32 systems.  This was ported and tested
172 with Microsoft Visual C++ 6.0 with build 623 of ActivePerl.  If you
173 have the appropriate libraries installed you can read and write PNG,
174 TIFF, PPM and JPEG files.  There is currently no support for fonts
175 under Win32, though it might be preferable to try to use Win32's
176 native font support over the external librarie - why force the user to
177 install yet another library?
178
179 I haven't tried to target compilers other than VC++, since I don't
180 have them installed.
181
182 If you have any problems with the Win32 support, please email
183 tony@develop-help.com (don't forget to use nmake instead of make).
184
185 =======================
186 7. General information
187 =======================
188
189 The Imager module homepage is currently at:
190
191  http://www.eecs.umich.edu/~addi/perl/Imager/
192
193 The current docs are rather bad as I've been busy adding features
194 but hopefully they will be updated soon.  Until then you'll just
195 have to use the source. The test scripts might also be a good idea.
196 By activating the the #init_log lines in the test script you can get
197 rather verbose debugging output from the C code.
198
199
200 ========================
201 8. Thanks
202 ========================
203
204 Thanks go to:
205   Tony Cook           ( TonyC )
206   Claes Jacobson      ( Claes )
207   Philip Gwyn         ( Leolo )
208   Michael Slade       ( Micksa )
209   Brad Murray         ( HalfJack )
210   Nicholas Dronen     ( Veblen )
211   Michael G Schwern   ( Schwern )
212   Rocco Caputo        ( Dngor )
213   Graham barr         ( Gbarr )
214   Mark-Jason Dominus  ( Mjd )
215   Jerome
216   Jason Alexander     ( Jalex )
217   Randal R. Schwartz  ( Merlyn )
218   Tkil                ( )
219   Artur Bergman       ( Sky )
220   Luc St-Louis        ( Lucs )
221   PerlJam             ( )
222   Roderick Schertler  ( Roderick )
223   Nathan Torkington   ( gnat )
224
225 (and just to play it safe) all those I forgot to mention.