1 2Installing libpng 3 4On Unix/Linux and similar systems, you can simply type 5 6 ./configure [--prefix=/path] 7 make check 8 make install 9 10and ignore the rest of this document. 11 12If configure does not work on your system, or if you have a need to 13change configure.ac or Makefile.am, and you have a reasonably 14up-to-date set of tools, running ./autogen.sh in a git clone before 15running ./configure may fix the problem. To be really sure that you 16aren't using any of the included pre-built scripts, you can do this: 17 18 ./configure --enable-maintainer-mode 19 make maintainer-clean 20 ./autogen.sh --maintainer --clean 21 ./autogen.sh --maintainer 22 ./configure [--prefix=/path] [other options] 23 make 24 make install 25 make check 26 27Instead, you can use one of the custom-built makefiles in the 28"scripts" directory 29 30 cp scripts/makefile.system makefile 31 make test 32 make install 33 34The files that are presently available in the scripts directory 35are listed and described in scripts/README.txt. 36 37Or you can use one of the "projects" in the "projects" directory. 38 39Before installing libpng, you must first install zlib, if it 40is not already on your system. zlib can usually be found 41wherever you got libpng. zlib can be placed in another directory, 42at the same level as libpng. 43 44If your system already has a preinstalled zlib you will still need 45to have access to the zlib.h and zconf.h include files that 46correspond to the version of zlib that's installed. 47 48If you wish to test with a particular zlib that is not first in the 49standard library search path, put ZLIBLIB, ZLIBINC, CPPFLAGS, LDFLAGS, 50and LD_LIBRARY_PATH in your environment before running "make test" 51or "make distcheck": 52 53ZLIBLIB=/path/to/lib export ZLIBLIB 54ZLIBINC=/path/to/include export ZLIBINC 55CPPFLAGS="-I$ZLIBINC" export CPPFLAGS 56LDFLAGS="-L$ZLIBLIB" export LDFLAGS 57LD_LIBRARY_PATH="$ZLIBLIB:$LD_LIBRARY_PATH" export LD_LIBRARY_PATH 58 59If you are using one of the makefile scripts, put ZLIBLIB and ZLIBINC 60in your environment and type "make ZLIBLIB=$ZLIBLIB ZLIBINC=$ZLIBINC test". 61 62If you want to use "cmake" (see www.cmake.org), type 63 64 cmake . -DCMAKE_INSTALL_PREFIX=/path 65 make 66 make install 67 68You can rename the directories that you downloaded (they 69might be called "libpng-x.y.z" or "libpngNN" and "zlib-1.2.7" 70or "zlib127") so that you have directories called "zlib" and "libpng". 71 72Your directory structure should look like this: 73 74 .. (the parent directory) 75 libpng (this directory) 76 INSTALL (this file) 77 README 78 *.h 79 *.c 80 CMakeLists.txt => "cmake" script 81 configuration files: 82 configure.ac, configure, Makefile.am, Makefile.in, 83 autogen.sh, config.guess, ltmain.sh, missing, libpng.pc.in, 84 libpng-config.in, aclocal.m4, config.h.in, config.sub, 85 depcomp, install-sh, mkinstalldirs, test-pngtest.sh 86 contrib 87 gregbook 88 libtests 89 pngminim 90 pngminus 91 pngsuite 92 visupng 93 projects 94 visualc71 95 vstudio 96 scripts 97 makefile.* 98 *.def (module definition files) 99 etc. 100 pngtest.png 101 etc. 102 zlib 103 README 104 *.h 105 *.c 106 contrib 107 etc. 108 109If the line endings in the files look funny, you may wish to get the other 110distribution of libpng. It is available in both tar.gz (UNIX style line 111endings) and zip (DOS style line endings) formats. 112 113If you are building libpng with MSVC, you can enter the 114libpng projects\visualc6 or visualc71 directory and follow the instructions 115in README.txt. 116 117Otherwise enter the zlib directory and follow the instructions in zlib/README, 118then come back here and run "configure" or choose the appropriate 119makefile.sys in the scripts directory. 120 121Copy the file (or files) that you need from the 122scripts directory into this directory, for example 123 124 MSDOS example: copy scripts\makefile.msc makefile 125 UNIX example: cp scripts/makefile.std makefile 126 127Read the makefile to see if you need to change any source or 128target directories to match your preferences. 129 130Then read pnglibconf.dfa to see if you want to make any configuration 131changes. 132 133Then just run "make" which will create the libpng library in 134this directory and "make test" which will run a quick test that reads 135the "pngtest.png" file and writes a "pngout.png" file that should be 136identical to it. Look for "9782 zero samples" in the output of the 137test. For more confidence, you can run another test by typing 138"pngtest pngnow.png" and looking for "289 zero samples" in the output. 139Also, you can run "pngtest -m contrib/pngsuite/*.png" and compare 140your output with the result shown in contrib/pngsuite/README. 141 142Most of the makefiles will allow you to run "make install" to 143put the library in its final resting place (if you want to 144do that, run "make install" in the zlib directory first if necessary). 145Some also allow you to run "make test-installed" after you have 146run "make install". 147 148Further information can be found in the README and libpng-manual.txt 149files, in the individual makefiles, in png.h, and the manual pages 150libpng.3 and png.5. 151 152Using the ./configure script -- 16 December 2002. 153================================================= 154 155The ./configure script should work compatibly with what scripts/makefile.* 156did, however there are some options you might need to add to configure 157explicitly, which previously was done semi-automatically (if you didn't edit 158scripts/makefile.* yourself, that is) 159 160CFLAGS="-Wall -O -funroll-loops \ 161-malign-loops=2 -malign-functions=2" ./configure --prefix=/usr/include \ 162--with-pkgconfigdir=/usr/lib/pkgconfig --includedir=/usr/include 163 164You can alternatively specify --includedir=/usr/include, /usr/local/include, 165/usr/include/libpng%NN%, or whatever. 166 167If you find that the configure script is out-of-date or is not supporting 168your platform properly, try running autogen.sh to regenerate "configure", 169"Makefile.in", and the other configuration files. Then try configure again. 170 171