blob: 22feaf2ecdf852ba9bb36db02c9273f5835f1b21 [file] [log] [blame]
Glenn Randers-Pehrson08a33431998-03-07 06:06:55 -06001
Glenn Randers-Pehrsond1e8c862002-06-20 06:54:34 -05002Installing libpng version 1.2.4beta2 - June 20, 2002
Glenn Randers-Pehrson08a33431998-03-07 06:06:55 -06003
4Before installing libpng, you must first install zlib. zlib
5can usually be found wherever you got libpng. zlib can be
6placed in another directory, at the same level as libpng.
7Note that your system might already have a preinstalled
Glenn Randers-Pehrson5c6aeb21998-12-29 11:47:59 -06008zlib, but you will still need to have access to the
Glenn Randers-Pehrson08a33431998-03-07 06:06:55 -06009zlib.h and zconf.h include files that correspond to the
10version of zlib that's installed.
11
12You can rename the directories that you downloaded (they
Glenn Randers-Pehrsond1e8c862002-06-20 06:54:34 -050013might be called "libpng-1.2.4beta2" or "lpng109" and "zlib-1.1.4"
14or "zlib114") so that you have directories called "zlib" and "libpng".
Glenn Randers-Pehrson08a33431998-03-07 06:06:55 -060015
16Your directory structure should look like this:
17
18 .. (the parent directory)
19 libpng (this directory)
20 INSTALL (this file)
21 README
22 *.h
23 *.c
Glenn Randers-Pehrson860ab2b1999-10-14 07:43:10 -050024 contrib
25 gregbook
Glenn Randers-Pehrsond4366722000-06-04 14:29:29 -050026 msvctest
Glenn Randers-Pehrson6d8f3b01999-10-23 08:39:18 -050027 pngminus
28 pngsuite
Glenn Randers-Pehrsondb66d442000-06-23 21:38:16 -050029 visupng
Glenn Randers-Pehrsonfbbb5ec2001-01-15 22:01:20 -060030 projects
Glenn Randers-Pehrson3097f612001-05-07 14:52:45 -050031 beos
Glenn Randers-Pehrsonfbbb5ec2001-01-15 22:01:20 -060032 borland
Glenn Randers-Pehrson5e5c1e12000-11-10 12:26:19 -060033 msvc
Glenn Randers-Pehrsonb1828932001-06-23 08:03:17 -050034 netware.txt
35 wince.txt
Glenn Randers-Pehrson08a33431998-03-07 06:06:55 -060036 scripts
37 makefile.*
Glenn Randers-Pehrsond1e8c862002-06-20 06:54:34 -050038 libpng*.in
39 mangle
40 makefile.*
41 mangle.in
Glenn Randers-Pehrson08a33431998-03-07 06:06:55 -060042 pngtest.png
43 etc.
44 zlib
45 README
46 *.h
47 *.c
48 contrib
49 etc.
50
Glenn Randers-Pehrson61c32d92000-02-04 23:40:16 -060051If the line endings in the files look funny, you may wish to get the other
52distribution of libpng. It is available in both tar.gz (UNIX style line
53endings) and zip (DOS style line endings) formats.
54
Glenn Randers-Pehrsondb66d442000-06-23 21:38:16 -050055If you are building libpng with MSVC, you can enter the libpng\msvc directory
Glenn Randers-Pehrsonb1828932001-06-23 08:03:17 -050056and follow the instructions in msvc\README.txt.
57
58You can build libpng for WindowsCE by entering the downloading and installing
59the libpng\wince directory as instructed in the projects\wince.txt file, and
60then following the instructions in the README* files. Similarly, you can
61build libpng for Netware as instructed in projects\netware.txt.
Glenn Randers-Pehrsond4366722000-06-04 14:29:29 -050062
Glenn Randers-Pehrsondb66d442000-06-23 21:38:16 -050063Else enter the zlib directory and follow the instructions in zlib/README,
64then come back here and choose the appropriate makefile.sys in the scripts
Glenn Randers-Pehrsond56aca72000-11-23 11:51:42 -060065directory.
Glenn Randers-Pehrsondb66d442000-06-23 21:38:16 -050066
Glenn Randers-Pehrson08a33431998-03-07 06:06:55 -060067The files that are presently available in the scripts directory
68include
69
Glenn Randers-Pehrson520a7642000-03-21 05:13:06 -060070 makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
Glenn Randers-Pehrsond1e8c862002-06-20 06:54:34 -050071 makefile.linux => Linux/ELF makefile (gcc, creates libpng12.so.0.1.2.4beta2)
72 makefile.gcmmx => Linux/ELF makefile (gcc, creates libpng12.so.0.1.2.4beta2,
Glenn Randers-Pehrson520a7642000-03-21 05:13:06 -060073 uses assembler code tuned for Intel MMX platform)
74 makefile.gcc => Generic makefile (gcc, creates static libpng.a)
Glenn Randers-Pehrson860ab2b1999-10-14 07:43:10 -050075 makefile.knr => Archaic UNIX Makefile that converts files with
76 ansi2knr (Requires ansi2knr.c from
77 ftp://ftp.cs.wisc.edu/ghost)
Glenn Randers-Pehrsond56aca72000-11-23 11:51:42 -060078 makefile.aix => AIX makefile
Glenn Randers-Pehrson5e5c1e12000-11-10 12:26:19 -060079 makefile.cygwin => Cygwin/gcc makefile
Glenn Randers-Pehrson5cded0b2001-11-07 07:10:08 -060080 makefile.darwin => Darwin makefile
Glenn Randers-Pehrson860ab2b1999-10-14 07:43:10 -050081 makefile.dec => DEC Alpha UNIX makefile
Glenn Randers-Pehrson03008a02002-04-27 10:11:25 -050082 makefile.hpgcc => FreeBSD makefile
Glenn Randers-Pehrson3097f612001-05-07 14:52:45 -050083 makefile.hpgcc => HPUX makefile using gcc
Glenn Randers-Pehrson860ab2b1999-10-14 07:43:10 -050084 makefile.hpux => HPUX (10.20 and 11.00) makefile
Glenn Randers-Pehrson68ea2432000-04-01 21:10:05 -060085 makefile.ibmc => IBM C/C++ version 3.x for Win32 and OS/2 (static)
Glenn Randers-Pehrsonec61c232000-05-16 06:17:36 -050086 makefile.intel => Intel C/C++ version 4.0 and later
Glenn Randers-Pehrson68ea2432000-04-01 21:10:05 -060087 libpng.icc => Project file for IBM VisualAge/C++ version 4.0 or later
Glenn Randers-Pehrsond56aca72000-11-23 11:51:42 -060088 makefile.macosx => MACOS X Makefile
Glenn Randers-Pehrson4fb046a2002-04-15 09:25:51 -050089 makefile.netbsd => NetBSD/cc makefile, uses PNGGCCRD, makes libpng.so.
Glenn Randers-Pehrson03008a02002-04-27 10:11:25 -050090 makefile.ne0bsd => NetBSD/cc makefile, uses PNGGCCRD, makes libpng0.so
Glenn Randers-Pehrsonc1bfe682002-03-06 22:08:00 -060091 makefile.openbsd => OpenBSD makefile
Glenn Randers-Pehrson520a7642000-03-21 05:13:06 -060092 makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib)
Glenn Randers-Pehrsond1e8c862002-06-20 06:54:34 -050093 makefile.sggcc => Silicon Graphics (gcc, creates libpng12.so.0.1.2.4beta2)
Glenn Randers-Pehrson860ab2b1999-10-14 07:43:10 -050094 makefile.sunos => Sun makefile
Glenn Randers-Pehrsond1e8c862002-06-20 06:54:34 -050095 makefile.solaris => Solaris 2.X makefile (gcc, creates libpng12.so.0.1.2.4beta2)
96 makefile.so9 => Solaris 9 makefile (gcc, creates libpng12.so.0.1.2.4beta2)
Glenn Randers-Pehrsonc1bfe682002-03-06 22:08:00 -060097 makefile.32sunu => Sun Ultra 32-bit makefile
98 makefile.64sunu => Sun Ultra 64-bit makefile
Glenn Randers-Pehrson860ab2b1999-10-14 07:43:10 -050099 makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
100 makefile.mips => MIPS makefile
101 makefile.acorn => Acorn makefile
102 makefile.amiga => Amiga makefile
103 smakefile.ppc => AMIGA smakefile for SAS C V6.58/7.00 PPC compiler
104 (Requires SCOPTIONS, copied from scripts/SCOPTIONS.ppc)
105 makefile.atari => Atari makefile
106 makefile.beos => BEOS makefile for X86
Glenn Randers-Pehrson520a7642000-03-21 05:13:06 -0600107 makefile.bor => Borland makefile (uses bcc)
108 makefile.bc32 => 32-bit Borland C++ (all modules compiled in C mode)
Glenn Randers-Pehrson61c32d92000-02-04 23:40:16 -0600109 makefile.bd32 => To make a png32bd.dll with Borland C++ 4.5
Glenn Randers-Pehrson520a7642000-03-21 05:13:06 -0600110 makefile.tc3 => Turbo C 3.0 makefile
Glenn Randers-Pehrson860ab2b1999-10-14 07:43:10 -0500111 makefile.dj2 => DJGPP 2 makefile
112 makefile.msc => Microsoft C makefile
113 makefile.vcawin32 => makefile for Microsoft Visual C++ 5.0 and later (uses
Glenn Randers-Pehrson61c32d92000-02-04 23:40:16 -0600114 assembler code tuned for Intel MMX platform)
Glenn Randers-Pehrson860ab2b1999-10-14 07:43:10 -0500115 makefile.vcwin32 => makefile for Microsoft Visual C++ 4.0 and later (does
116 not use assembler code)
Glenn Randers-Pehrson860ab2b1999-10-14 07:43:10 -0500117 makefile.os2 => OS/2 Makefile (gcc and emx, requires pngos2.def)
118 pngos2.def => OS/2 module definition file used by makefile.os2
119 makefile.watcom => Watcom 10a+ Makefile, 32-bit flat memory model
120 makevms.com => VMS build script
Glenn Randers-Pehrson520a7642000-03-21 05:13:06 -0600121 descrip.mms => VMS makefile for MMS or MMK
Glenn Randers-Pehrson860ab2b1999-10-14 07:43:10 -0500122 pngdef.pas => Defines for a png32bd.dll with Borland C++ 4.5
123 SCOPTIONS.ppc => Used with smakefile.ppc
Glenn Randers-Pehrson08a33431998-03-07 06:06:55 -0600124
125Copy the file (or files) that you need from the
126scripts directory into this directory, for example
127
Glenn Randers-Pehrson860ab2b1999-10-14 07:43:10 -0500128 MSDOS example: copy scripts\makefile.msc makefile
Glenn Randers-Pehrson08a33431998-03-07 06:06:55 -0600129 UNIX example: cp scripts/makefile.std makefile
130
131Read the makefile to see if you need to change any source or
132target directories to match your preferences.
133
134Then read pngconf.h to see if you want to make any configuration
135changes.
136
137Then just run "make test" which will create the libpng library in
138this directory and run a quick test that reads the "pngtest.png"
139file and writes a "pngout.png" file that should be identical to it.
Glenn Randers-Pehrson860ab2b1999-10-14 07:43:10 -0500140Look for "9782 zero samples" in the output of the test. For more
141confidence, you can run another test by typing "pngtest pngnow.png"
Glenn Randers-Pehrson6d8f3b01999-10-23 08:39:18 -0500142and looking for "289 zero samples" in the output. Also, you can
143run "pngtest -m *.png" in the "contrib/pngsuite" directory and compare
144your output with the result shown in contrib/pngsuite/README.
Glenn Randers-Pehrson08a33431998-03-07 06:06:55 -0600145
146Most of the makefiles will allow you to run "make install" to
147put the library in its final resting place (if you want to
148do that, run "make install" in the zlib directory first if necessary).
Glenn Randers-Pehrsond1e8c862002-06-20 06:54:34 -0500149Some also allow you to run "make test-installed" after you have
150run "make install". This will build and run executables called "pngtesti"
151and "mangle/pngtestm".
152
153The files that are presently available in the mangle directory include the
154following. The makefiles are automatically run by the corresponding makefiles
155in the scripts directory when you run "make", "make install", or
156"make test-installed".
157
158 mangle.in => Function-decoration macros added to png.h by the
159 makefiles.
160 makefile.linux => Linux/ELF makefile
161 (gcc, creates libpng12m.so.0.1.2.4beta2)
162 makefile.gcmmx => Linux/ELF makefile (gcc, creates
163 libpng12.so.0m.1.2.4beta2, uses assembler code
164 tuned for Intel MMX platform)
165 makefile.sgi => Silicon Graphics (cc, creates libpng12m.so)
166 makefile.sggcc => Silicon Graphics (gcc, creates libpng12m.so)
Glenn Randers-Pehrson08a33431998-03-07 06:06:55 -0600167
168Further information can be found in the README and libpng.txt
Glenn Randers-Pehrson5e5c1e12000-11-10 12:26:19 -0600169files, in the individual makefiles, in png.h, in the README files in
Glenn Randers-Pehrsonfbbb5ec2001-01-15 22:01:20 -0600170subdirectories of the LIB directory, and the manual pages libpng.3 and png.5.