author | Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> |
Tue, 06 Jul 2010 15:10:48 +0300 | |
changeset 30 | 5dc02b23752f |
parent 0 | 1918ee327afb |
permissions | -rw-r--r-- |
0 | 1 |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
2 |
Installing libpng version 1.4.0 - January 3, 2010 |
0 | 3 |
|
4 |
On Unix/Linux and similar systems, you can simply type |
|
5 |
||
6 |
./configure [--prefix=/path] |
|
7 |
make check |
|
8 |
make install |
|
9 |
||
10 |
and ignore the rest of this document. |
|
11 |
||
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. |
|
20 |
||
21 |
Instead, you can use one of the custom-built makefiles in the |
|
22 |
"scripts" directory |
|
23 |
||
24 |
cp scripts/makefile.system makefile |
|
25 |
make test |
|
26 |
make install |
|
27 |
||
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
28 |
The files that are presently available in the scripts directory |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
29 |
are listed and described in scripts/README.txt. |
0 | 30 |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
31 |
Or you can use one of the "projects" in the "projects" directory. |
0 | 32 |
|
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. |
|
37 |
||
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
38 |
If you want to use "cmake" (see www.cmake.org), type |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
39 |
|
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
40 |
cmake . -DCMAKE_INSTALL_PREFIX=/path |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
41 |
make |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
42 |
make install |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
43 |
|
0 | 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. |
|
47 |
||
48 |
You can rename the directories that you downloaded (they |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
49 |
might be called "libpng-1.4.0" or "libpng14" and "zlib-1.2.3" |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
50 |
or "zlib123") so that you have directories called "zlib" and "libpng". |
0 | 51 |
|
52 |
Your directory structure should look like this: |
|
53 |
||
54 |
.. (the parent directory) |
|
55 |
libpng (this directory) |
|
56 |
INSTALL (this file) |
|
57 |
README |
|
58 |
*.h |
|
59 |
*.c |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
60 |
CMakeLists.txt => "cmake" script |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
61 |
configuration files: |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
62 |
configure.ac, configure, Makefile.am, Makefile.in, |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
63 |
autogen.sh, config.guess, ltmain.sh, missing, |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
64 |
aclocal.m4, config.h.in, config.sub, |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
65 |
depcomp, install-sh, mkinstalldirs, test-pngtest.sh |
0 | 66 |
contrib |
67 |
gregbook |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
68 |
pngminim |
0 | 69 |
pngminus |
70 |
pngsuite |
|
71 |
visupng |
|
72 |
projects |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
73 |
cbuilder5 (Borland) |
0 | 74 |
visualc6 (msvc) |
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
75 |
visualc71 |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
76 |
xcode |
0 | 77 |
scripts |
78 |
makefile.* |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
79 |
*.def (module definition files) |
0 | 80 |
pngtest.png |
81 |
etc. |
|
82 |
zlib |
|
83 |
README |
|
84 |
*.h |
|
85 |
*.c |
|
86 |
contrib |
|
87 |
etc. |
|
88 |
||
89 |
If the line endings in the files look funny, you may wish to get the other |
|
90 |
distribution of libpng. It is available in both tar.gz (UNIX style line |
|
91 |
endings) and zip (DOS style line endings) formats. |
|
92 |
||
93 |
If you are building libpng with MSVC, you can enter the |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
94 |
libpng projects\visualc6 or visualc71 directory and follow the instructions |
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
95 |
in README.txt. |
0 | 96 |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
97 |
Otherwise enter the zlib directory and follow the instructions in zlib/README, |
0 | 98 |
then come back here and run "configure" or choose the appropriate |
99 |
makefile.sys in the scripts directory. |
|
100 |
||
101 |
Copy the file (or files) that you need from the |
|
102 |
scripts directory into this directory, for example |
|
103 |
||
104 |
MSDOS example: copy scripts\makefile.msc makefile |
|
105 |
UNIX example: cp scripts/makefile.std makefile |
|
106 |
||
107 |
Read the makefile to see if you need to change any source or |
|
108 |
target directories to match your preferences. |
|
109 |
||
110 |
Then read pngconf.h to see if you want to make any configuration |
|
111 |
changes. |
|
112 |
||
113 |
Then just run "make" which will create the libpng library in |
|
114 |
this directory and "make test" which will run a quick test that reads |
|
115 |
the "pngtest.png" file and writes a "pngout.png" file that should be |
|
116 |
identical to it. Look for "9782 zero samples" in the output of the |
|
117 |
test. For more confidence, you can run another test by typing |
|
118 |
"pngtest pngnow.png" and looking for "289 zero samples" in the output. |
|
119 |
Also, you can run "pngtest -m contrib/pngsuite/*.png" and compare |
|
120 |
your output with the result shown in contrib/pngsuite/README. |
|
121 |
||
122 |
Most of the makefiles will allow you to run "make install" to |
|
123 |
put the library in its final resting place (if you want to |
|
124 |
do that, run "make install" in the zlib directory first if necessary). |
|
125 |
Some also allow you to run "make test-installed" after you have |
|
126 |
run "make install". |
|
127 |
||
128 |
If you encounter a compiler error message complaining about the |
|
129 |
lines |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
130 |
|
0 | 131 |
__png.h__ already includes setjmp.h; |
132 |
__dont__ include it again.; |
|
30
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
133 |
|
5dc02b23752f
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
0
diff
changeset
|
134 |
this means you have compiled another module that includes setjmp.h, |
0 | 135 |
which is hazardous because the two modules might not include exactly |
136 |
the same setjmp.h. If you are sure that you know what you are doing |
|
137 |
and that they are exactly the same, then you can comment out or |
|
138 |
delete the two lines. Better yet, use the cexcept interface |
|
139 |
instead, as demonstrated in contrib/visupng of the libpng distribution. |
|
140 |
||
141 |
Further information can be found in the README and libpng.txt |
|
142 |
files, in the individual makefiles, in png.h, and the manual pages |
|
143 |
libpng.3 and png.5. |