Home | History | Annotate | Download | only in libpng
      1 
      2 Installing libpng version 1.2.46 - July 9, 2011
      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 
     28 The files that are presently available in the scripts directory
     29 are listed and described in scripts/README.txt.
     30 
     31 Or you can use one of the "projects" in the "projects" directory.
     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 
     38 If you want to use "cmake" (see www.cmake.org), type
     39 
     40    cmake . -DCMAKE_INSTALL_PREFIX=/path
     41    make
     42    make install
     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 You can rename the directories that you downloaded (they
     49 might be called "libpng-1.2.46" or "libpng12" and "zlib-1.2.3"
     50 or "zlib123") so that you have directories called "zlib" and "libpng".
     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
     60           CMakeLists.txt    =>  "cmake" script
     61           configuration files:
     62              configure.ac, configure, Makefile.am, Makefile.in,
     63              autogen.sh, config.guess, ltmain.sh, missing,
     64              aclocal.m4, config.h.in, config.sub,
     65              depcomp, install-sh, mkinstalldirs, test-pngtest.sh
     66           contrib
     67              gregbook
     68              pngminim
     69              pngminus
     70              pngsuite
     71              visupng
     72           projects
     73              cbuilder5 (Borland)
     74              visualc6 (msvc)
     75              visualc71
     76              xcode
     77           scripts
     78              makefile.*
     79              *.def (module definition files)
     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
     94 libpng projects\visualc6 or visualc71 directory and follow the instructions
     95 in README.txt.
     96 
     97 Otherwise enter the zlib directory and follow the instructions in zlib/README,
     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
    130 
    131       __png.h__ already includes setjmp.h;
    132       __dont__ include it again.;
    133 
    134 this means you have compiled another module that includes setjmp.h,
    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.
    144 
    145 
    146 Using the ./configure script -- 16 December 2002.
    147 =================================================
    148 
    149 
    150 The ./configure script should work compatibly with what scripts/makefile.*
    151 did, however there are some options you need to add to configure explicitly,
    152 which previously was done semi-automatically (if you didn't edit
    153 scripts/makefile.* yourself, that is)
    154 
    155 
    156 CFLAGS="-Wall -O -funroll-loops \
    157 -malign-loops=2 -malign-functions=2" ./configure --prefix=/usr/include \
    158 --with-pkgconfigdir=/usr/lib/pkgconfig --includedir=/usr/include
    159 
    160 You can alternatively specify --includedir=/usr/include, /usr/local/include,
    161 /usr/include/png12, or whatever.
    162 
    163 
    164