2
Installing libpng version 1.4.4 - September 23, 2010
4
On Unix/Linux and similar systems, you can simply type
6
./configure [--prefix=/path]
10
and ignore the rest of this document.
12
If configure does not work on your system and you have a reasonably
13
up-to-date set of tools, running ./autogen.sh before running ./configure
14
may fix the problem. You can also run the individual commands in
15
autogen.sh with the --force option, if supported by your version of
16
the tools. If you run 'libtoolize --force', though, this will replace
17
the distributed, patched, version of ltmain.sh with an unpatched version
18
and your shared library builds may fail to produce libraries with the
19
correct version numbers.
21
Instead, you can use one of the custom-built makefiles in the
24
cp scripts/makefile.system makefile
28
The files that are presently available in the scripts directory
29
are listed and described in scripts/README.txt.
31
Or you can use one of the "projects" in the "projects" directory.
33
Before installing libpng, you must first install zlib, if it
34
is not already on your system. zlib can usually be found
35
wherever you got libpng. zlib can be placed in another directory,
36
at the same level as libpng.
38
If you want to use "cmake" (see www.cmake.org), type
40
cmake . -DCMAKE_INSTALL_PREFIX=/path
44
If your system already has a preinstalled zlib you will still need
45
to have access to the zlib.h and zconf.h include files that
46
correspond to the version of zlib that's installed.
48
You can rename the directories that you downloaded (they
49
might be called "libpng-1.4.4" or "libpng14" and "zlib-1.2.3"
50
or "zlib123") so that you have directories called "zlib" and "libpng".
52
Your directory structure should look like this:
54
.. (the parent directory)
55
libpng (this directory)
60
CMakeLists.txt => "cmake" script
62
configure.ac, configure, Makefile.am, Makefile.in,
63
autogen.sh, config.guess, ltmain.sh, missing, libpng.pc.in,
64
libpng-config.in, aclocal.m4, config.h.in, config.sub,
65
depcomp, install-sh, test-pngtest.sh
80
*.def (module definition files)
90
If the line endings in the files look funny, you may wish to get the other
91
distribution of libpng. It is available in both tar.gz (UNIX style line
92
endings) and zip (DOS style line endings) formats.
94
If you are building libpng with MSVC, you can enter the
95
libpng projects\visualc6 or visualc71 directory and follow the instructions
98
Otherwise enter the zlib directory and follow the instructions in zlib/README,
99
then come back here and run "configure" or choose the appropriate
100
makefile.sys in the scripts directory.
102
Copy the file (or files) that you need from the
103
scripts directory into this directory, for example
105
MSDOS example: copy scripts\makefile.msc makefile
106
UNIX example: cp scripts/makefile.std makefile
108
Read the makefile to see if you need to change any source or
109
target directories to match your preferences.
111
Then read pngconf.h to see if you want to make any configuration
114
Then just run "make" which will create the libpng library in
115
this directory and "make test" which will run a quick test that reads
116
the "pngtest.png" file and writes a "pngout.png" file that should be
117
identical to it. Look for "9782 zero samples" in the output of the
118
test. For more confidence, you can run another test by typing
119
"pngtest pngnow.png" and looking for "289 zero samples" in the output.
120
Also, you can run "pngtest -m contrib/pngsuite/*.png" and compare
121
your output with the result shown in contrib/pngsuite/README.
123
Most of the makefiles will allow you to run "make install" to
124
put the library in its final resting place (if you want to
125
do that, run "make install" in the zlib directory first if necessary).
126
Some also allow you to run "make test-installed" after you have
129
If you encounter a compiler error message complaining about the
132
__png.h__ already includes setjmp.h;
133
__dont__ include it again.;
135
this means you have compiled another module that includes setjmp.h,
136
which is hazardous because the two modules might not include exactly
137
the same setjmp.h. If you are sure that you know what you are doing
138
and that they are exactly the same, then you can comment out or
139
delete the two lines. Better yet, use the cexcept interface
140
instead, as demonstrated in contrib/visupng of the libpng distribution.
142
Further information can be found in the README and libpng.txt
143
files, in the individual makefiles, in png.h, and the manual pages