1 2 Installing libpng 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, or if you have a need to 13 change configure.ac or Makefile.am, and you have a reasonably 14 up-to-date set of tools, running ./autogen.sh in a git clone before 15 running ./configure may fix the problem. To be really sure that you 16 aren'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 27 Instead, 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 34 The files that are presently available in the scripts directory 35 are listed and described in scripts/README.txt. 36 37 Or you can use one of the "projects" in the "projects" directory. 38 39 Before installing libpng, you must first install zlib, if it 40 is not already on your system. zlib can usually be found 41 wherever you got libpng. zlib can be placed in another directory, 42 at the same level as libpng. 43 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 If you wish to test with a particular zlib that is not first in the 49 standard library search path, put ZLIBLIB, ZLIBINC, CPPFLAGS, LDFLAGS, 50 and LD_LIBRARY_PATH in your environment before running "make test" 51 or "make distcheck": 52 53 ZLIBLIB=/path/to/lib export ZLIBLIB 54 ZLIBINC=/path/to/include export ZLIBINC 55 CPPFLAGS="-I$ZLIBINC" export CPPFLAGS 56 LDFLAGS="-L$ZLIBLIB" export LDFLAGS 57 LD_LIBRARY_PATH="$ZLIBLIB:$LD_LIBRARY_PATH" export LD_LIBRARY_PATH 58 59 If you are using one of the makefile scripts, put ZLIBLIB and ZLIBINC 60 in your environment and type "make ZLIBLIB=$ZLIBLIB ZLIBINC=$ZLIBINC test". 61 62 If you want to use "cmake" (see www.cmake.org), type 63 64 cmake . -DCMAKE_INSTALL_PREFIX=/path 65 make 66 make install 67 68 You can rename the directories that you downloaded (they 69 might be called "libpng-x.y.z" or "libpngNN" and "zlib-1.2.7" 70 or "zlib127") so that you have directories called "zlib" and "libpng". 71 72 Your 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 109 If the line endings in the files look funny, you may wish to get the other 110 distribution of libpng. It is available in both tar.gz (UNIX style line 111 endings) and zip (DOS style line endings) formats. 112 113 If you are building libpng with MSVC, you can enter the 114 libpng projects\visualc6 or visualc71 directory and follow the instructions 115 in README.txt. 116 117 Otherwise enter the zlib directory and follow the instructions in zlib/README, 118 then come back here and run "configure" or choose the appropriate 119 makefile.sys in the scripts directory. 120 121 Copy the file (or files) that you need from the 122 scripts directory into this directory, for example 123 124 MSDOS example: copy scripts\makefile.msc makefile 125 UNIX example: cp scripts/makefile.std makefile 126 127 Read the makefile to see if you need to change any source or 128 target directories to match your preferences. 129 130 Then read pnglibconf.dfa to see if you want to make any configuration 131 changes. 132 133 Then just run "make" which will create the libpng library in 134 this directory and "make test" which will run a quick test that reads 135 the "pngtest.png" file and writes a "pngout.png" file that should be 136 identical to it. Look for "9782 zero samples" in the output of the 137 test. For more confidence, you can run another test by typing 138 "pngtest pngnow.png" and looking for "289 zero samples" in the output. 139 Also, you can run "pngtest -m contrib/pngsuite/*.png" and compare 140 your output with the result shown in contrib/pngsuite/README. 141 142 Most of the makefiles will allow you to run "make install" to 143 put the library in its final resting place (if you want to 144 do that, run "make install" in the zlib directory first if necessary). 145 Some also allow you to run "make test-installed" after you have 146 run "make install". 147 148 Further information can be found in the README and libpng-manual.txt 149 files, in the individual makefiles, in png.h, and the manual pages 150 libpng.3 and png.5. 151 152 Using the ./configure script -- 16 December 2002. 153 ================================================= 154 155 The ./configure script should work compatibly with what scripts/makefile.* 156 did, however there are some options you might need to add to configure 157 explicitly, which previously was done semi-automatically (if you didn't edit 158 scripts/makefile.* yourself, that is) 159 160 CFLAGS="-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 164 You can alternatively specify --includedir=/usr/include, /usr/local/include, 165 /usr/include/libpng%NN%, or whatever. 166 167 If you find that the configure script is out-of-date or is not supporting 168 your platform properly, try running autogen.sh to regenerate "configure", 169 "Makefile.in", and the other configuration files. Then try configure again. 170 171