DC dependencies problem

Hi,
I have created two DC's - one java DC, and one J2EE components/Library DC.  Java DC include only one Class. This class is added to public part (two times with purpose compilation and purpose assembly). I have added both public parts of Java DC two "used DC" in library DC and checked build, deploy and run time check boxes. But when i try to deploy library dc an "unresolved dependencies found" error occured (my java dc coudn't be found).
What made I wrong?
Regards
Bogdan

Hi,
  Libraries are typically used during 'Build Time' and 'Run Time' only.
  while adding the 'Used DC's', please check build and Run time only.
hope that helps.
Regards,
S.Divakar

Similar Messages

  • Frustrating dependencies problem

    Hi everyone, I've got a problem with a large and undocumented portlet
    project I have taken over from another developer who has left suddenly.
    Don't worry - not looking for help with anything portal related - its more your traditonal java dependencies that I need some help with!
    The structure of the project is somewhat unorthodox with one of the portlet classes being in a JAR file in the WEB-INF/LIB directory. It makes a call to a class called SearchUtils that is present in the project (but outside of this JAR file) in a regular package directory.
    I can export the project as a WAR and deploy successfully to a development Websphere 5.0 server and it runs fine - but when I try to run it locally on my IDE portal test environment, I get a NoClassDefFoundError for the SearchUtils class despite it being present in the project and in the exported WAR.
    I get the feeling that the JAR file containing the portlet is being loaded first and it seems to be unable to resolve the SearchUtils dependency at the time of loading.
    I don't understand why the project works on our servers but not locally. I am using WSAD 5.1.2 and Portal Toolkit V5.0.2.2 (Windows).
    Could anyone shed any light on how these kind of issues can be resolved?
    Thanks
    Marc

    have i posted this in the wrong forum or is it so simple a question i should just know?
    (voice echoes into the distance)

  • Dependencies problem for Maxima

    I tried to install maxima but I got this error :
    pacman -S maxima
    error: unresolvable dependencies:
      maxima: requires clisp<=2.39 but it is not in the sync db
    How can I fix it ?

    I think it's a bug vs a mirror problem. It's been about a year. Anyway instead of waiting a long time, you can build the clisp 2.41 package using the PKGBUILD found here....
    http://bugs.archlinux.org/task/6263
    You will also need to build libsigsegv 2.4 as clisp depends on it and it's not in archs data base. The PKGBUILD can be found here...
    http://bugs.archlinux.org/task/6262
    You might need to add a line to both PKGBUILDS....
    arch=('i686')
    Then you should be able to install Maxima from extra or wxmaxima from aur community.
    Last edited by Leigh (2007-06-01 22:00:33)

  • Bundle dependencies problem

    Hi, I've a problem with a bundle:
    Import-Package:
    javax.jcr,version=[1.0,2) -- Cannot be resolved
    But in the pom file inside the bundle there's:
    <dependency>
                <groupId>javax.jcr</groupId>
                <artifactId>jcr</artifactId>
                <version>2.0</version>
                <scope>provided</scope>            
            </dependency>
    How is possible this?
    Thanks

    Well then there is something wrong with your POM. I would check to make sure that you don't have a duplicate dependency - perhaps you have both version 1 and version 2 specified somewhere.

  • [Solved] Cannot upgrade system, dependencies problem!

    When I run
    # pacman -Syu
    I get
    :: Starting full system upgrade...
    resolving dependencies...
    looking for inter-conflicts...
    error: failed to prepare transaction (could not satisfy dependencies)
    :: catalyst-utils: requires xorg-server<1.9.0
    However, X -version returns
    X.Org X Server 1.8.1.902 (1.8.2 RC 2)
    What do?
    Last edited by Deusdies (2010-10-03 06:36:31)

    Read the comments on the AUR page:
    http://aur.archlinux.org/packages.php?ID=40833
    * and please search for this yourself before posting...

  • Some dependencies problem [SOLVED]

    For some days when I try to do an update I get this:
    :: Synchronizing package databases...
    testing is up to date
    current is up to date
    extra is up to date
    unstable is up to date
    community is up to date
    danimoth is up to date
    :: Starting full system upgrade...
    resolving dependencies... done.
    looking for inter-conflicts...
    :: libwnck conflicts with libwnck-compiz. Remove libwnck-compiz? [Y/n] y
    done.
    error: failed to prepare transaction (could not satisfy dependencies)
    :: libwnck-compiz requires emerald
    If i try first to remove libwnck-compiz, it tries to also remove emerald, which I don't want!! What's to do?
    Last edited by RaisedFist (2007-04-01 17:40:12)

    JGC wrote:
    Hmm, seems this message is still not right. Pacman reversed the error message, it should say "emerald requires libwnck-compiz".
    I added versioned depends to all gnome packages, libwnck-compiz doesn't suffice anymore because it's an older version, so pacman wants to replace libwnck-compiz, but fails doing so because emerald needs that.
    Solution is simple: grab the unofficial PKGBUILD for libwnck-compiz, update it to match the official libwnck version and install it. Other option is to use emerald from extra, which depends on the normal libwnck.
    I have emerald installed from extra... so I will try the PKGBUILD stuff.

  • Dependencies problem

    I am trying to install on my vps Oracle XE but throwing the following error. I don't know from where can I download the dependencies?
    error: Failed dependencies:libaio >= 0.3.96 is needed by oracle-xe-univ-10.2.0.1-1.0.i386
    centOS is installed on my vps
    Thanks & best regards

    [root@cc ~]# rpm -e oracle-xe-univ
    [root@cc ~]# rpm -ivh downloads/oracle-xe-univ-10.2.0.1-1.0.i386.rpm
    error: open of downloads/oracle-xe-univ-10.2.0.1-1.0.i386.rpm failed: No such file or directory
    [root@cc ~]# rpm -ivh /downloads/oracle-xe-univ-10.2.0.1-1.0.i386.rpm
    Preparing... ########################################### [100%]
    1:oracle-xe-univ ########################################### [100%]
    Executing Post-install steps...
    You must run '/etc/init.d/oracle-xe configure' as the root user to
    configure the database.
    [root@cc ~]# /etc/init.d/oracle-xe configure
    Oracle Database 10g Express Edition Configuration
    This will configure on-boot properties of Oracle Database 10g Express
    Edition. The following questions will determine whether the database should
    be starting upon system boot, the ports it will use, and the passwords that
    will be used for database accounts. Press <Enter> to accept the defaults.
    Ctrl-C will abort.
    Specify the HTTP port that will be used for Oracle Application Express [8080]:9090
    Specify a port that will be used for the database listener [1521]:1521
    Specify a password to be used for database accounts. Note that the same
    password will be used for SYS and SYSTEM. Oracle recommends the use of
    different passwords for each database account. This can be done after
    initial configuration:
    Confirm the password:
    Do you want Oracle Database 10g Express Edition to be started on boot (y/n) [y]:y
    Starting Oracle Net Listener...Done
    Configuring Database...Done
    Starting Oracle Database 10g Express Edition Instance...Done
    Installation Completed Successfully.
    To access the Database Home Page go to "http://127.0.0.1:9090/apex"
    [root@cc ~]# sqlplus
    SQL*Plus: Release 10.2.0.1.0 - Production on Wed Jan 28 07:36:07 2009
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    Enter user-name: system/bassam
    ERROR:
    ORA-01034: ORACLE not available
    ORA-27101: shared memory realm does not exist
    Linux Error: 2: No such file or directory
    Enter user-name:

  • Business Components Project Dependencies Problem

    Hi everyone,
    I have a workspace on 9i that has four projects. All of them use the Entity Objects contained on the first project. If i tell the other projects they depend on the first one (on Project Settings -> Project Dependencies), even so the View Objects i create cannot see the Entities created on the first project. Shouldn't it be possible to create a separate project for them? do i have to put the entire model (VO, EO, VL, AO) in one single package? is there any way to only reference the other project's EOs?
    Thanks very much in advance!
    Thiago Souza

    That's a feature in 10.1.3, you need to add them specifically to your project to access them.

  • Fft spectrum (mag-phase).vi: dependencies

    Dear,
    I'm having trouble using FFT Spectrum vi's. When I'm trying to add them to my vi, I get a 'Add to Project and Update Dependencies' error (see attached).
    I can use the VI though.
    Each time I open the project I keep getting the window to resolve the dependencies. When done, I save the project but the next time I have to start all over again.
    Its like the settings aren't saved?
    Can this be solved please?
    Kind regards,
    Ronny Comyn
    Belgium
    Attachments:
    dependencies problem.jpg ‏444 KB

    No yellow excalamtion marks.
    Screenshots enclosed
    kind regards
    Ronny
    Attachments:
    proj_1.jpg ‏465 KB
    proj_2.jpg ‏488 KB
    proj_7.jpg ‏469 KB

  • C++ Dependencies Generation is Very Slow in Solaris 10..

    Hi
    We are also having Slow make dependencies problem. It is taking more than 24 hrs to make dependencies in SOLARIS 10.
    OS : SOLARIS 10
    C++ COmpiler: Sun Studio 10: C++ 5.7 Compiler
    It is very slow when it comes to generating dependencies using 'makedepend'....
    Looking for your great help...
    thanks
    chakra

    Hello,
    Currently I'm trying to use the CC -xM compiler option to generate dependency info for source files.
    By default I think that the -xM option assumes that all the object files are in the same directory as the output file
    Suppose if the object files are in a different directory than the source files then how does the -xM recoginize it??
    Because when I give in my makefiel as given below, depend option works fine.
    $(OBJS):%.o:%.cxx
    $(CXX) -xM1 $(CFLAGS) $< > $*.P
    $(CXX) $(CFLAGS) $(@F:.o=.cxx) -o $@
    -include $(SRCS:.cxx=.P)
    But when the object files are in a different directory as given below it does not work properly.
    $(OBJS):$(OUTPUT_DIR)/%.o:%.cxx
    $(CXX) -xM1 $(CFLAGS) $< > $(OUTPUT_DIR)/$*.P
    $(CXX) $(CFLAGS) $(@F:.o=.cxx) -o $@
    -include $(SRCS:%.cxx=$(OUTPUT_DIR)/%.P)
    From what I found when -xM1 ouputs info it assumes that alll the object files are in the same directory as the source files.
    When I give a "make" in the source directory it displays like this.
    CEventQueue.o : CEventQueue.cxx
    CEventQueue.o : CEventQueue.h
    CEventQueue.o : ../../pdfcore/src//CCoQueueService.h
    CEventQueue.o : ../../pdfcore/src//CCoPthreadObj.h
    CEventQueue.o : ../../pdfcommon/src//CPdfObject.h
    CEventQueue.o : ../../pdfcommon/src//CPdfTrace.h
    CEventQueue.o : ../../pdfcommon/src//CPdfException.h
    CEventQueue.o : ../../pdfcommon/src//PdfType.h
    But actually it should refer the .o's like this.
    ../../build/CEventQueue.o : CEventQueue.cxx where ../../build is the OUTPUT_DIR.
    I found that there is no CC compiler option for adding prefix to object files.
    Could you tell me what to do now.??All the makefiles in our project create the .o files in a seperate directory other than the source directory.
    Thanks in advance,
    GA

  • PROCEDURE COMPILATION AND DEPENDENCIES DOUBT

    hello friends,
    i have some question. yesterday while woring i faced this problem. even though i solved it, but i was unable to find the reason.
    we have a procedure a which calls procedure b. every time procedure b is recompiles/compiled procedure a becomes invalid. my PL told me to solve the problem. i solved it by using packeges as packages nullifies the dependencies problems
    now my question is
    1) why a procedure has to compiled again n again. i mean what are the situations in which we have to recompile a subprogram? what are the advantages?
    2) even though procedure a becomes invalid when we recompile procedure b, but it automatically becomes valid when we execute it(correct me if i am wron). then why should we really bother about dependencies problems?
    any kind of answer will be highly appreciated

    Hi,
    1) why a procedure has to compiled again n again. i mean what are the situations in which we have to recompile a subprogram? what are the advantages?
    It is normal situation when referenced procedure is changed and recompiled then you must recompile also referencing procedure. There are two modes you can use TIMESTAMP and SIGNATURE. I think you are using TIMESTAMP mode (default) mode. In USER_OBJECTS there is field called LAST_DDL_TIME. This field keep date and time last object recompilation. When referenced object has newer date then referencing object become invalid. Oracle during calling referenced procedure will try to recompile it automatically. Second mode is SIGNATURE. In this mode TIMESTAMP is not stored, instead SIGNATURE is stored. So recompilation is done only when signature is changing. You can use it setting REMOTE_DEPENDENCIES_MODE=SIGNATURE in init.ora file.
    2) even though procedure a becomes invalid when we recompile procedure b, but it automatically becomes valid when we execute it(correct me if i am wron). then why should we really bother about dependencies problems?
    When procedure is invalid and you run it when oracle will try to compile it first. It standard action.
    Peter D.

  • Trying to build HTMLDOC

    Hi all
    I'm trying to build HTMLDOC as part of my larger attempt to install FOG which is a free ghost clone. I'm running into a make error 1 presumably related to the png configuration. But if it is the png conf, I'm not sure how to pinpoint what part is causing the error. Your help is kindly appreciated.
    [indata@poweredge1600sc ~]$ cd htmldoc-1.8.27/
    [indata@poweredge1600sc htmldoc-1.8.27]$ sudo make
    [sudo] password for indata:
    Making all in htmldoc...
    Compiling image.cxx...
    In file included from /usr/include/pngconf.h:72:0,
    from /usr/include/png.h:446,
    from image.cxx:58:
    image.cxx: In function ‘int image_load_png(image_t*, FILE*, int, int)’:
    image.cxx:1502:16: error: invalid use of incomplete type ‘png_struct {aka struct png_struct_def}’
    if (setjmp(pp->jmpbuf))
    ^
    In file included from image.cxx:58:0:
    /usr/include/png.h:556:16: error: forward declaration of ‘png_struct {aka struct png_struct_def}’
    typedef struct png_struct_def png_struct;
    ^
    image.cxx:1529:11: error: invalid use of incomplete type ‘png_info {aka struct png_info_def}’
    if (info->color_type & PNG_COLOR_MASK_PALETTE)
    ^
    In file included from image.cxx:58:0:
    /usr/include/png.h:570:16: error: forward declaration of ‘png_info {aka struct png_info_def}’
    typedef struct png_info_def png_info;
    ^
    image.cxx:1538:16: error: invalid use of incomplete type ‘png_info {aka struct png_info_def}’
    else if (info->bit_depth < 8)
    ^
    In file included from image.cxx:58:0:
    /usr/include/png.h:570:16: error: forward declaration of ‘png_info {aka struct png_info_def}’
    typedef struct png_info_def png_info;
    ^
    image.cxx:1543:16: error: invalid use of incomplete type ‘png_info {aka struct png_info_def}’
    else if (info->bit_depth == 16)
    ^
    In file included from image.cxx:58:0:
    /usr/include/png.h:570:16: error: forward declaration of ‘png_info {aka struct png_info_def}’
    typedef struct png_info_def png_info;
    ^
    image.cxx:1546:11: error: invalid use of incomplete type ‘png_info {aka struct png_info_def}’
    if (info->color_type & PNG_COLOR_MASK_COLOR)
    ^
    In file included from image.cxx:58:0:
    /usr/include/png.h:570:16: error: forward declaration of ‘png_info {aka struct png_info_def}’
    typedef struct png_info_def png_info;
    ^
    image.cxx:1557:21: error: invalid use of incomplete type ‘png_info {aka struct png_info_def}’
    img->width = info->width;
    ^
    In file included from image.cxx:58:0:
    /usr/include/png.h:570:16: error: forward declaration of ‘png_info {aka struct png_info_def}’
    typedef struct png_info_def png_info;
    ^
    image.cxx:1558:21: error: invalid use of incomplete type ‘png_info {aka struct png_info_def}’
    img->height = info->height;
    ^
    In file included from image.cxx:58:0:
    /usr/include/png.h:570:16: error: forward declaration of ‘png_info {aka struct png_info_def}’
    typedef struct png_info_def png_info;
    ^
    image.cxx:1560:12: error: invalid use of incomplete type ‘png_info {aka struct png_info_def}’
    if ((info->color_type & PNG_COLOR_MASK_ALPHA) || info->num_trans)
    ^
    In file included from image.cxx:58:0:
    /usr/include/png.h:570:16: error: forward declaration of ‘png_info {aka struct png_info_def}’
    typedef struct png_info_def png_info;
    ^
    image.cxx:1560:56: error: invalid use of incomplete type ‘png_info {aka struct png_info_def}’
    if ((info->color_type & PNG_COLOR_MASK_ALPHA) || info->num_trans)
    ^
    In file included from image.cxx:58:0:
    /usr/include/png.h:570:16: error: forward declaration of ‘png_info {aka struct png_info_def}’
    typedef struct png_info_def png_info;
    ^
    image.cxx:1597:34: error: invalid use of incomplete type ‘png_info {aka struct png_info_def}’
    rows = (png_bytep *)calloc(info->height, sizeof(png_bytep));
    ^
    In file included from image.cxx:58:0:
    /usr/include/png.h:570:16: error: forward declaration of ‘png_info {aka struct png_info_def}’
    typedef struct png_info_def png_info;
    ^
    image.cxx:1599:28: error: invalid use of incomplete type ‘png_info {aka struct png_info_def}’
    for (i = 0; i < (int)info->height; i ++)
    ^
    In file included from image.cxx:58:0:
    /usr/include/png.h:570:16: error: forward declaration of ‘png_info {aka struct png_info_def}’
    typedef struct png_info_def png_info;
    ^
    image.cxx:1613:12: error: invalid use of incomplete type ‘png_info {aka struct png_info_def}’
    if ((info->color_type & PNG_COLOR_MASK_ALPHA) || info->num_trans)
    ^
    In file included from image.cxx:58:0:
    /usr/include/png.h:570:16: error: forward declaration of ‘png_info {aka struct png_info_def}’
    typedef struct png_info_def png_info;
    ^
    image.cxx:1613:56: error: invalid use of incomplete type ‘png_info {aka struct png_info_def}’
    if ((info->color_type & PNG_COLOR_MASK_ALPHA) || info->num_trans)
    ^
    In file included from image.cxx:58:0:
    /usr/include/png.h:570:16: error: forward declaration of ‘png_info {aka struct png_info_def}’
    typedef struct png_info_def png_info;
    ^
    image.cxx:1642:19: error: invalid use of incomplete type ‘png_info {aka struct png_info_def}’
    if (gray && info->color_type & PNG_COLOR_MASK_COLOR)
    ^
    In file included from image.cxx:58:0:
    /usr/include/png.h:570:16: error: forward declaration of ‘png_info {aka struct png_info_def}’
    typedef struct png_info_def png_info;
    ^
    make[1]: *** [image.o] Error 1
    [indata@poweredge1600sc htmldoc-1.8.27]$
    # "$Id: Makefile.in 1397 2005-04-24 19:20:32Z mike $"
    # Makefile for HTMLDOC, an HTML document processing program.
    # Copyright 1997-2005 by Easy Software Products.
    # These coded instructions, statements, and computer programs are the
    # property of Easy Software Products and are protected by Federal
    # copyright law. Distribution and use rights are outlined in the file
    # "COPYING.txt" which should have been included with this file. If this
    # file is missing or damaged please contact Easy Software Products
    # at:
    # Attn: ESP Licensing Information
    # Easy Software Products
    # 44141 Airport View Drive, Suite 204
    # Hollywood, Maryland 20636-3142 USA
    # Voice: (301) 373-9600
    # EMail: [email protected]
    # WWW: http://www.easysw.com
    # Include common definitions...
    include Makedefs
    # Software packaging...
    EPM = epm -v --output-dir dist
    # Subdirectories...
    DIRS = htmldoc doc
    INSTALLDIRS = fonts data doc htmldoc
    # Make all targets...
    all: Makedefs Makefile config.h htmldoc.list
    for dir in $(DIRS); do\
    echo Making all in $$dir...;\
    (cd $$dir; $(MAKE) -$(MAKEFLAGS)) || break;\
    done
    # Remove object and target files...
    clean:
    for dir in $(DIRS); do\
    echo Cleaning in $$dir...;\
    (cd $$dir; $(MAKE) -$(MAKEFLAGS) clean) || break;\
    done
    $(RM) *.bak
    $(RM) *.bck
    $(RM) core
    $(RM) core.*
    $(RM) -r autom4te*.cache
    $(RM) config.h config.log config.status
    # Install object and target files...
    install:
    $(MAKE) all
    for dir in $(INSTALLDIRS); do\
    echo Installing in $$dir...;\
    (cd $$dir; $(MAKE) -$(MAKEFLAGS) install) || break;\
    done
    # Makedefs
    Makedefs: Makedefs.in configure
    if test -f config.status; then \
    ./config.status --recheck; \
    ./config.status; \
    else \
    ./configure; \
    fi
    touch config.h
    # Makefile
    Makefile: Makefile.in configure
    if test -f config.status; then \
    ./config.status --recheck; \
    ./config.status; \
    else \
    ./configure; \
    fi
    touch config.h
    # config.h
    config.h: config.h.in configure
    if test -f config.status; then \
    ./config.status --recheck; \
    ./config.status; \
    else \
    ./configure; \
    fi
    touch config.h
    # htmldoc.list
    htmldoc.list: htmldoc.list.in configure
    if test -f config.status; then \
    ./config.status --recheck; \
    ./config.status; \
    else \
    ./configure; \
    fi
    touch config.h
    # Make a portable binary distribution using EPM.
    # EPM = ESP Package Manager, available at "http://www.easysw.com/epm/".
    epm:
    $(RM) -r dist
    $(EPM) htmldoc
    # End of "$Id: Makefile.in 1397 2005-04-24 19:20:32Z mike $".
    pngconf.h
    /* pngconf.h - machine configurable file for libpng
    * libpng version 1.2.7 - September 12, 2004
    * For conditions of distribution and use, see copyright notice in png.h
    * Copyright (c) 1998-2004 Glenn Randers-Pehrson
    * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
    * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
    /* Any machine specific code is near the front of this file, so if you
    * are configuring libpng for a machine, you may want to read the section
    * starting here down to where it starts to typedef png_color, png_text,
    * and png_info.
    #ifndef PNGCONF_H
    #define PNGCONF_H
    #ifdef PNG_USER_CONFIG
    #include "pngusr.h"
    #endif
    /* This is the size of the compression buffer, and thus the size of
    * an IDAT chunk. Make this whatever size you feel is best for your
    * machine. One of these will be allocated per png_struct. When this
    * is full, it writes the data to the disk, and does some other
    * calculations. Making this an extremely small size will slow
    * the library down, but you may want to experiment to determine
    * where it becomes significant, if you are concerned with memory
    * usage. Note that zlib allocates at least 32Kb also. For readers,
    * this describes the size of the buffer available to read the data in.
    * Unless this gets smaller than the size of a row (compressed),
    * it should not make much difference how big this is.
    #ifndef PNG_ZBUF_SIZE
    # define PNG_ZBUF_SIZE 8192
    #endif
    /* Enable if you want a write-only libpng */
    #ifndef PNG_NO_READ_SUPPORTED
    # define PNG_READ_SUPPORTED
    #endif
    /* Enable if you want a read-only libpng */
    #ifndef PNG_NO_WRITE_SUPPORTED
    # define PNG_WRITE_SUPPORTED
    #endif
    /* Enabled by default in 1.2.0. You can disable this if you don't need to
    support PNGs that are embedded in MNG datastreams */
    #if !defined(PNG_1_0_X) && !defined(PNG_NO_MNG_FEATURES)
    # ifndef PNG_MNG_FEATURES_SUPPORTED
    # define PNG_MNG_FEATURES_SUPPORTED
    # endif
    #endif
    #ifndef PNG_NO_FLOATING_POINT_SUPPORTED
    # ifndef PNG_FLOATING_POINT_SUPPORTED
    # define PNG_FLOATING_POINT_SUPPORTED
    # endif
    #endif
    /* If you are running on a machine where you cannot allocate more
    * than 64K of memory at once, uncomment this. While libpng will not
    * normally need that much memory in a chunk (unless you load up a very
    * large file), zlib needs to know how big of a chunk it can use, and
    * libpng thus makes sure to check any memory allocation to verify it
    * will fit into memory.
    #define PNG_MAX_MALLOC_64K
    #if defined(MAXSEG_64K) && !defined(PNG_MAX_MALLOC_64K)
    # define PNG_MAX_MALLOC_64K
    #endif
    /* Special munging to support doing things the 'cygwin' way:
    * 'Normal' png-on-win32 defines/defaults:
    * PNG_BUILD_DLL -- building dll
    * PNG_USE_DLL -- building an application, linking to dll
    * (no define) -- building static library, or building an
    * application and linking to the static lib
    * 'Cygwin' defines/defaults:
    * PNG_BUILD_DLL -- (ignored) building the dll
    * (no define) -- (ignored) building an application, linking to the dll
    * PNG_STATIC -- (ignored) building the static lib, or building an
    * application that links to the static lib.
    * ALL_STATIC -- (ignored) building various static libs, or building an
    * application that links to the static libs.
    * Thus,
    * a cygwin user should define either PNG_BUILD_DLL or PNG_STATIC, and
    * this bit of #ifdefs will define the 'correct' config variables based on
    * that. If a cygwin user *wants* to define 'PNG_USE_DLL' that's okay, but
    * unnecessary.
    * Also, the precedence order is:
    * ALL_STATIC (since we can't #undef something outside our namespace)
    * PNG_BUILD_DLL
    * PNG_STATIC
    * (nothing) == PNG_USE_DLL
    * CYGWIN (2002-01-20): The preceding is now obsolete. With the advent
    * of auto-import in binutils, we no longer need to worry about
    * __declspec(dllexport) / __declspec(dllimport) and friends. Therefore,
    * we don't need to worry about PNG_STATIC or ALL_STATIC when it comes
    * to __declspec() stuff. However, we DO need to worry about
    * PNG_BUILD_DLL and PNG_STATIC because those change some defaults
    * such as CONSOLE_IO and whether GLOBAL_ARRAYS are allowed.
    #if defined(__CYGWIN__)
    # if defined(ALL_STATIC)
    # if defined(PNG_BUILD_DLL)
    # undef PNG_BUILD_DLL
    # endif
    # if defined(PNG_USE_DLL)
    # undef PNG_USE_DLL
    # endif
    # if defined(PNG_DLL)
    # undef PNG_DLL
    # endif
    # if !defined(PNG_STATIC)
    # define PNG_STATIC
    # endif
    # else
    # if defined (PNG_BUILD_DLL)
    # if defined(PNG_STATIC)
    # undef PNG_STATIC
    # endif
    # if defined(PNG_USE_DLL)
    # undef PNG_USE_DLL
    # endif
    # if !defined(PNG_DLL)
    # define PNG_DLL
    # endif
    # else
    # if defined(PNG_STATIC)
    # if defined(PNG_USE_DLL)
    # undef PNG_USE_DLL
    # endif
    # if defined(PNG_DLL)
    # undef PNG_DLL
    # endif
    # else
    # if !defined(PNG_USE_DLL)
    # define PNG_USE_DLL
    # endif
    # if !defined(PNG_DLL)
    # define PNG_DLL
    # endif
    # endif
    # endif
    # endif
    #endif
    /* This protects us against compilers that run on a windowing system
    * and thus don't have or would rather us not use the stdio types:
    * stdin, stdout, and stderr. The only one currently used is stderr
    * in png_error() and png_warning(). #defining PNG_NO_CONSOLE_IO will
    * prevent these from being compiled and used. #defining PNG_NO_STDIO
    * will also prevent these, plus will prevent the entire set of stdio
    * macros and functions (FILE *, printf, etc.) from being compiled and used,
    * unless (PNG_DEBUG > 0) has been #defined.
    * #define PNG_NO_CONSOLE_IO
    * #define PNG_NO_STDIO
    #if defined(_WIN32_WCE)
    # include <windows.h>
    /* Console I/O functions are not supported on WindowsCE */
    # define PNG_NO_CONSOLE_IO
    # ifdef PNG_DEBUG
    # undef PNG_DEBUG
    # endif
    #endif
    #ifdef PNG_BUILD_DLL
    # ifndef PNG_CONSOLE_IO_SUPPORTED
    # ifndef PNG_NO_CONSOLE_IO
    # define PNG_NO_CONSOLE_IO
    # endif
    # endif
    #endif
    # ifdef PNG_NO_STDIO
    # ifndef PNG_NO_CONSOLE_IO
    # define PNG_NO_CONSOLE_IO
    # endif
    # ifdef PNG_DEBUG
    # if (PNG_DEBUG > 0)
    # include <stdio.h>
    # endif
    # endif
    # else
    # if !defined(_WIN32_WCE)
    /* "stdio.h" functions are not supported on WindowsCE */
    # include <stdio.h>
    # endif
    # endif
    /* This macro protects us against machines that don't have function
    * prototypes (ie K&R style headers). If your compiler does not handle
    * function prototypes, define this macro and use the included ansi2knr.
    * I've always been able to use _NO_PROTO as the indicator, but you may
    * need to drag the empty declaration out in front of here, or change the
    * ifdef to suit your own needs.
    #ifndef PNGARG
    #ifdef OF /* zlib prototype munger */
    # define PNGARG(arglist) OF(arglist)
    #else
    #ifdef _NO_PROTO
    # define PNGARG(arglist) ()
    # ifndef PNG_TYPECAST_NULL
    # define PNG_TYPECAST_NULL
    # endif
    #else
    # define PNGARG(arglist) arglist
    #endif /* _NO_PROTO */
    #endif /* OF */
    #endif /* PNGARG */
    /* Try to determine if we are compiling on a Mac. Note that testing for
    * just __MWERKS__ is not good enough, because the Codewarrior is now used
    * on non-Mac platforms.
    #ifndef MACOS
    # if (defined(__MWERKS__) && defined(macintosh)) || defined(applec) || \
    defined(THINK_C) || defined(__SC__) || defined(TARGET_OS_MAC)
    # define MACOS
    # endif
    #endif
    /* enough people need this for various reasons to include it here */
    #if !defined(MACOS) && !defined(RISCOS) && !defined(_WIN32_WCE)
    # include <sys/types.h>
    #endif
    #if !defined(PNG_SETJMP_NOT_SUPPORTED) && !defined(PNG_NO_SETJMP_SUPPORTED)
    # define PNG_SETJMP_SUPPORTED
    #endif
    #ifdef PNG_SETJMP_SUPPORTED
    /* This is an attempt to force a single setjmp behaviour on Linux. If
    * the X config stuff didn't define _BSD_SOURCE we wouldn't need this.
    # ifdef __linux__
    # ifdef _BSD_SOURCE
    # define PNG_SAVE_BSD_SOURCE
    # undef _BSD_SOURCE
    # endif
    # ifdef _SETJMP_H
    /* If you encounter a compiler error here, see the explanation
    * near the end of INSTALL.
    __png.h__ already includes setjmp.h;
    __dont__ include it again.;
    # endif
    # endif /* __linux__ */
    /* include setjmp.h for error handling */
    # include <setjmp.h>
    # ifdef __linux__
    # ifdef PNG_SAVE_BSD_SOURCE
    # define _BSD_SOURCE
    # undef PNG_SAVE_BSD_SOURCE
    # endif
    # endif /* __linux__ */
    #endif /* PNG_SETJMP_SUPPORTED */
    #ifdef BSD
    # include <strings.h>
    #else
    # include <string.h>
    #endif
    /* Other defines for things like memory and the like can go here. */
    #ifdef PNG_INTERNAL
    #include <stdlib.h>
    /* The functions exported by PNG_EXTERN are PNG_INTERNAL functions, which
    * aren't usually used outside the library (as far as I know), so it is
    * debatable if they should be exported at all. In the future, when it is
    * possible to have run-time registry of chunk-handling functions, some of
    * these will be made available again.
    #define PNG_EXTERN extern
    #define PNG_EXTERN
    /* Other defines specific to compilers can go here. Try to keep
    * them inside an appropriate ifdef/endif pair for portability.
    #if defined(PNG_FLOATING_POINT_SUPPORTED)
    # if defined(MACOS)
    /* We need to check that <math.h> hasn't already been included earlier
    * as it seems it doesn't agree with <fp.h>, yet we should really use
    * <fp.h> if possible.
    # if !defined(__MATH_H__) && !defined(__MATH_H) && !defined(__cmath__)
    # include <fp.h>
    # endif
    # else
    # include <math.h>
    # endif
    # if defined(_AMIGA) && defined(__SASC) && defined(_M68881)
    /* Amiga SAS/C: We must include builtin FPU functions when compiling using
    * MATH=68881
    # include <m68881.h>
    # endif
    #endif
    /* Codewarrior on NT has linking problems without this. */
    #if (defined(__MWERKS__) && defined(WIN32)) || defined(__STDC__)
    # define PNG_ALWAYS_EXTERN
    #endif
    /* This provides the non-ANSI (far) memory allocation routines. */
    #if defined(__TURBOC__) && defined(__MSDOS__)
    # include <mem.h>
    # include <alloc.h>
    #endif
    /* I have no idea why is this necessary... */
    #if defined(_MSC_VER) && (defined(WIN32) || defined(_Windows) || \
    defined(_WINDOWS) || defined(_WIN32) || defined(__WIN32__))
    # include <malloc.h>
    #endif
    /* This controls how fine the dithering gets. As this allocates
    * a largish chunk of memory (32K), those who are not as concerned
    * with dithering quality can decrease some or all of these.
    #ifndef PNG_DITHER_RED_BITS
    # define PNG_DITHER_RED_BITS 5
    #endif
    #ifndef PNG_DITHER_GREEN_BITS
    # define PNG_DITHER_GREEN_BITS 5
    #endif
    #ifndef PNG_DITHER_BLUE_BITS
    # define PNG_DITHER_BLUE_BITS 5
    #endif
    /* This controls how fine the gamma correction becomes when you
    * are only interested in 8 bits anyway. Increasing this value
    * results in more memory being used, and more pow() functions
    * being called to fill in the gamma tables. Don't set this value
    * less then 8, and even that may not work (I haven't tested it).
    #ifndef PNG_MAX_GAMMA_8
    # define PNG_MAX_GAMMA_8 11
    #endif
    /* This controls how much a difference in gamma we can tolerate before
    * we actually start doing gamma conversion.
    #ifndef PNG_GAMMA_THRESHOLD
    # define PNG_GAMMA_THRESHOLD 0.05
    #endif
    #endif /* PNG_INTERNAL */
    /* The following uses const char * instead of char * for error
    * and warning message functions, so some compilers won't complain.
    * If you do not want to use const, define PNG_NO_CONST here.
    #ifndef PNG_NO_CONST
    # define PNG_CONST const
    #else
    # define PNG_CONST
    #endif
    /* The following defines give you the ability to remove code from the
    * library that you will not be using. I wish I could figure out how to
    * automate this, but I can't do that without making it seriously hard
    * on the users. So if you are not using an ability, change the #define
    * to and #undef, and that part of the library will not be compiled. If
    * your linker can't find a function, you may want to make sure the
    * ability is defined here. Some of these depend upon some others being
    * defined. I haven't figured out all the interactions here, so you may
    * have to experiment awhile to get everything to compile. If you are
    * creating or using a shared library, you probably shouldn't touch this,
    * as it will affect the size of the structures, and this will cause bad
    * things to happen if the library and/or application ever change.
    /* Any features you will not be using can be undef'ed here */
    /* GR-P, 0.96a: Set "*TRANSFORMS_SUPPORTED as default but allow user
    * to turn it off with "*TRANSFORMS_NOT_SUPPORTED" or *PNG_NO_*_TRANSFORMS
    * on the compile line, then pick and choose which ones to define without
    * having to edit this file. It is safe to use the *TRANSFORMS_NOT_SUPPORTED
    * if you only want to have a png-compliant reader/writer but don't need
    * any of the extra transformations. This saves about 80 kbytes in a
    * typical installation of the library. (PNG_NO_* form added in version
    * 1.0.1c, for consistency)
    /* The size of the png_text structure changed in libpng-1.0.6 when
    * iTXt is supported. It is turned off by default, to support old apps
    * that malloc the png_text structure instead of calling png_set_text()
    * and letting libpng malloc it. It will be turned on by default in
    * libpng-1.3.0.
    #ifndef PNG_iTXt_SUPPORTED
    # if !defined(PNG_READ_iTXt_SUPPORTED) && !defined(PNG_NO_READ_iTXt)
    # define PNG_NO_READ_iTXt
    # endif
    # if !defined(PNG_WRITE_iTXt_SUPPORTED) && !defined(PNG_NO_WRITE_iTXt)
    # define PNG_NO_WRITE_iTXt
    # endif
    #endif
    /* The following support, added after version 1.0.0, can be turned off here en
    * masse by defining PNG_LEGACY_SUPPORTED in case you need binary compatibility
    * with old applications that require the length of png_struct and png_info
    * to remain unchanged.
    #ifdef PNG_LEGACY_SUPPORTED
    # define PNG_NO_FREE_ME
    # define PNG_NO_READ_UNKNOWN_CHUNKS
    # define PNG_NO_WRITE_UNKNOWN_CHUNKS
    # define PNG_NO_READ_USER_CHUNKS
    # define PNG_NO_READ_iCCP
    # define PNG_NO_WRITE_iCCP
    # define PNG_NO_READ_iTXt
    # define PNG_NO_WRITE_iTXt
    # define PNG_NO_READ_sCAL
    # define PNG_NO_WRITE_sCAL
    # define PNG_NO_READ_sPLT
    # define PNG_NO_WRITE_sPLT
    # define PNG_NO_INFO_IMAGE
    # define PNG_NO_READ_RGB_TO_GRAY
    # define PNG_NO_READ_USER_TRANSFORM
    # define PNG_NO_WRITE_USER_TRANSFORM
    # define PNG_NO_USER_MEM
    # define PNG_NO_READ_EMPTY_PLTE
    # define PNG_NO_MNG_FEATURES
    # define PNG_NO_FIXED_POINT_SUPPORTED
    #endif
    /* Ignore attempt to turn off both floating and fixed point support */
    #if !defined(PNG_FLOATING_POINT_SUPPORTED) || \
    !defined(PNG_NO_FIXED_POINT_SUPPORTED)
    # define PNG_FIXED_POINT_SUPPORTED
    #endif
    #ifndef PNG_NO_FREE_ME
    # define PNG_FREE_ME_SUPPORTED
    #endif
    #if defined(PNG_READ_SUPPORTED)
    #if !defined(PNG_READ_TRANSFORMS_NOT_SUPPORTED) && \
    !defined(PNG_NO_READ_TRANSFORMS)
    # define PNG_READ_TRANSFORMS_SUPPORTED
    #endif
    #ifdef PNG_READ_TRANSFORMS_SUPPORTED
    # ifndef PNG_NO_READ_EXPAND
    # define PNG_READ_EXPAND_SUPPORTED
    # endif
    # ifndef PNG_NO_READ_SHIFT
    # define PNG_READ_SHIFT_SUPPORTED
    # endif
    # ifndef PNG_NO_READ_PACK
    # define PNG_READ_PACK_SUPPORTED
    # endif
    # ifndef PNG_NO_READ_BGR
    # define PNG_READ_BGR_SUPPORTED
    # endif
    # ifndef PNG_NO_READ_SWAP
    # define PNG_READ_SWAP_SUPPORTED
    # endif
    # ifndef PNG_NO_READ_PACKSWAP
    # define PNG_READ_PACKSWAP_SUPPORTED
    # endif
    # ifndef PNG_NO_READ_INVERT
    # define PNG_READ_INVERT_SUPPORTED
    # endif
    # ifndef PNG_NO_READ_DITHER
    # define PNG_READ_DITHER_SUPPORTED
    # endif
    # ifndef PNG_NO_READ_BACKGROUND
    # define PNG_READ_BACKGROUND_SUPPORTED
    # endif
    # ifndef PNG_NO_READ_16_TO_8
    # define PNG_READ_16_TO_8_SUPPORTED
    # endif
    # ifndef PNG_NO_READ_FILLER
    # define PNG_READ_FILLER_SUPPORTED
    # endif
    # ifndef PNG_NO_READ_GAMMA
    # define PNG_READ_GAMMA_SUPPORTED
    # endif
    # ifndef PNG_NO_READ_GRAY_TO_RGB
    # define PNG_READ_GRAY_TO_RGB_SUPPORTED
    # endif
    # ifndef PNG_NO_READ_SWAP_ALPHA
    # define PNG_READ_SWAP_ALPHA_SUPPORTED
    # endif
    # ifndef PNG_NO_READ_INVERT_ALPHA
    # define PNG_READ_INVERT_ALPHA_SUPPORTED
    # endif
    # ifndef PNG_NO_READ_STRIP_ALPHA
    # define PNG_READ_STRIP_ALPHA_SUPPORTED
    # endif
    # ifndef PNG_NO_READ_USER_TRANSFORM
    # define PNG_READ_USER_TRANSFORM_SUPPORTED
    # endif
    # ifndef PNG_NO_READ_RGB_TO_GRAY
    # define PNG_READ_RGB_TO_GRAY_SUPPORTED
    # endif
    #endif /* PNG_READ_TRANSFORMS_SUPPORTED */
    #if !defined(PNG_NO_PROGRESSIVE_READ) && \
    !defined(PNG_PROGRESSIVE_READ_NOT_SUPPORTED) /* if you don't do progressive */
    # define PNG_PROGRESSIVE_READ_SUPPORTED /* reading. This is not talking */
    #endif /* about interlacing capability! You'll */
    /* still have interlacing unless you change the following line: */
    #define PNG_READ_INTERLACING_SUPPORTED /* required for PNG-compliant decoders */
    #ifndef PNG_NO_READ_COMPOSITE_NODIV
    # ifndef PNG_NO_READ_COMPOSITED_NODIV /* libpng-1.0.x misspelling */
    # define PNG_READ_COMPOSITE_NODIV_SUPPORTED /* well tested on Intel, SGI */
    # endif
    #endif
    /* Deprecated, will be removed from version 2.0.0.
    Use PNG_MNG_FEATURES_SUPPORTED instead. */
    #ifndef PNG_NO_READ_EMPTY_PLTE
    # define PNG_READ_EMPTY_PLTE_SUPPORTED
    #endif
    #endif /* PNG_READ_SUPPORTED */
    #if defined(PNG_WRITE_SUPPORTED)
    # if !defined(PNG_WRITE_TRANSFORMS_NOT_SUPPORTED) && \
    !defined(PNG_NO_WRITE_TRANSFORMS)
    # define PNG_WRITE_TRANSFORMS_SUPPORTED
    #endif
    #ifdef PNG_WRITE_TRANSFORMS_SUPPORTED
    # ifndef PNG_NO_WRITE_SHIFT
    # define PNG_WRITE_SHIFT_SUPPORTED
    # endif
    # ifndef PNG_NO_WRITE_PACK
    # define PNG_WRITE_PACK_SUPPORTED
    # endif
    # ifndef PNG_NO_WRITE_BGR
    # define PNG_WRITE_BGR_SUPPORTED
    # endif
    # ifndef PNG_NO_WRITE_SWAP
    # define PNG_WRITE_SWAP_SUPPORTED
    # endif
    # ifndef PNG_NO_WRITE_PACKSWAP
    # define PNG_WRITE_PACKSWAP_SUPPORTED
    # endif
    # ifndef PNG_NO_WRITE_INVERT
    # define PNG_WRITE_INVERT_SUPPORTED
    # endif
    # ifndef PNG_NO_WRITE_FILLER
    # define PNG_WRITE_FILLER_SUPPORTED /* same as WRITE_STRIP_ALPHA */
    # endif
    # ifndef PNG_NO_WRITE_SWAP_ALPHA
    # define PNG_WRITE_SWAP_ALPHA_SUPPORTED
    # endif
    # ifndef PNG_NO_WRITE_INVERT_ALPHA
    # define PNG_WRITE_INVERT_ALPHA_SUPPORTED
    # endif
    # ifndef PNG_NO_WRITE_USER_TRANSFORM
    # define PNG_WRITE_USER_TRANSFORM_SUPPORTED
    # endif
    #endif /* PNG_WRITE_TRANSFORMS_SUPPORTED */
    #define PNG_WRITE_INTERLACING_SUPPORTED /* not required for PNG-compliant
    encoders, but can cause trouble
    if left undefined */
    #if !defined(PNG_NO_WRITE_WEIGHTED_FILTER) && \
    defined(PNG_FLOATING_POINT_SUPPORTED)
    # define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
    #endif
    #ifndef PNG_NO_WRITE_FLUSH
    # define PNG_WRITE_FLUSH_SUPPORTED
    #endif
    /* Deprecated, see PNG_MNG_FEATURES_SUPPORTED, above */
    #ifndef PNG_NO_WRITE_EMPTY_PLTE
    # define PNG_WRITE_EMPTY_PLTE_SUPPORTED
    #endif
    #endif /* PNG_WRITE_SUPPORTED */
    #ifndef PNG_1_0_X
    # ifndef PNG_NO_ERROR_NUMBERS
    # define PNG_ERROR_NUMBERS_SUPPORTED
    # endif
    #endif /* PNG_1_0_X */
    #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
    defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
    # ifndef PNG_NO_USER_TRANSFORM_PTR
    # define PNG_USER_TRANSFORM_PTR_SUPPORTED
    # endif
    #endif
    #ifndef PNG_NO_STDIO
    # define PNG_TIME_RFC1123_SUPPORTED
    #endif
    /* This adds extra functions in pngget.c for accessing data from the
    * info pointer (added in version 0.99)
    * png_get_image_width()
    * png_get_image_height()
    * png_get_bit_depth()
    * png_get_color_type()
    * png_get_compression_type()
    * png_get_filter_type()
    * png_get_interlace_type()
    * png_get_pixel_aspect_ratio()
    * png_get_pixels_per_meter()
    * png_get_x_offset_pixels()
    * png_get_y_offset_pixels()
    * png_get_x_offset_microns()
    * png_get_y_offset_microns()
    #if !defined(PNG_NO_EASY_ACCESS) && !defined(PNG_EASY_ACCESS_SUPPORTED)
    # define PNG_EASY_ACCESS_SUPPORTED
    #endif
    /* PNG_ASSEMBLER_CODE was enabled by default in version 1.2.0
    even when PNG_USE_PNGVCRD or PNG_USE_PNGGCCRD is not defined */
    #if defined(PNG_READ_SUPPORTED) && !defined(PNG_NO_ASSEMBLER_CODE)
    # ifndef PNG_ASSEMBLER_CODE_SUPPORTED
    # define PNG_ASSEMBLER_CODE_SUPPORTED
    # endif
    # if !defined(PNG_MMX_CODE_SUPPORTED) && !defined(PNG_NO_MMX_CODE)
    # define PNG_MMX_CODE_SUPPORTED
    # endif
    #endif
    /* If you are sure that you don't need thread safety and you are compiling
    with PNG_USE_PNGCCRD for an MMX application, you can define this for
    faster execution. See pnggccrd.c.
    #define PNG_THREAD_UNSAFE_OK
    #if !defined(PNG_1_0_X)
    #if !defined(PNG_NO_USER_MEM) && !defined(PNG_USER_MEM_SUPPORTED)
    # define PNG_USER_MEM_SUPPORTED
    #endif
    #endif /* PNG_1_0_X */
    /* Added at libpng-1.2.6 */
    #if !defined(PNG_1_0_X)
    #ifndef PNG_SET_USER_LIMITS_SUPPORTED
    #if !defined(PNG_NO_SET_USER_LIMITS) && !defined(PNG_SET_USER_LIMITS_SUPPORTED)
    # define PNG_SET_USER_LIMITS_SUPPORTED
    #endif
    #endif
    #endif /* PNG_1_0_X */
    /* Added at libpng-1.0.16 and 1.2.6. To accept all valid PNGS no matter
    * how large, set these limits to 0x7fffffffL
    #ifndef PNG_USER_WIDTH_MAX
    # define PNG_USER_WIDTH_MAX 1000000L
    #endif
    #ifndef PNG_USER_HEIGHT_MAX
    # define PNG_USER_HEIGHT_MAX 1000000L
    #endif
    /* These are currently experimental features, define them if you want */
    /* very little testing */
    #ifdef PNG_READ_SUPPORTED
    # ifndef PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED
    # define PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED
    # endif
    #endif
    /* This is only for PowerPC big-endian and 680x0 systems */
    /* some testing */
    #ifndef PNG_READ_BIG_ENDIAN_SUPPORTED
    # define PNG_READ_BIG_ENDIAN_SUPPORTED
    #endif
    /* Buggy compilers (e.g., gcc 2.7.2.2) need this */
    #define PNG_NO_POINTER_INDEXING
    /* These functions are turned off by default, as they will be phased out. */
    #define PNG_USELESS_TESTS_SUPPORTED
    #define PNG_CORRECT_PALETTE_SUPPORTED
    /* Any chunks you are not interested in, you can undef here. The
    * ones that allocate memory may be expecially important (hIST,
    * tEXt, zTXt, tRNS, pCAL). Others will just save time and make png_info
    * a bit smaller.
    #if defined(PNG_READ_SUPPORTED) && \
    !defined(PNG_READ_ANCILLARY_CHUNKS_NOT_SUPPORTED) && \
    !defined(PNG_NO_READ_ANCILLARY_CHUNKS)
    # define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED
    #endif
    #if defined(PNG_WRITE_SUPPORTED) && \
    !defined(PNG_WRITE_ANCILLARY_CHUNKS_NOT_SUPPORTED) && \
    !defined(PNG_NO_WRITE_ANCILLARY_CHUNKS)
    # define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED
    #endif
    #ifdef PNG_READ_ANCILLARY_CHUNKS_SUPPORTED
    #ifdef PNG_NO_READ_TEXT
    # define PNG_NO_READ_iTXt
    # define PNG_NO_READ_tEXt
    # define PNG_NO_READ_zTXt
    #endif
    #ifndef PNG_NO_READ_bKGD
    # define PNG_READ_bKGD_SUPPORTED
    # define PNG_bKGD_SUPPORTED
    #endif
    #ifndef PNG_NO_READ_cHRM
    # define PNG_READ_cHRM_SUPPORTED
    # define PNG_cHRM_SUPPORTED
    #endif
    #ifndef PNG_NO_READ_gAMA
    # define PNG_READ_gAMA_SUPPORTED
    # define PNG_gAMA_SUPPORTED
    #endif
    #ifndef PNG_NO_READ_hIST
    # define PNG_READ_hIST_SUPPORTED
    # define PNG_hIST_SUPPORTED
    #endif
    #ifndef PNG_NO_READ_iCCP
    # define PNG_READ_iCCP_SUPPORTED
    # define PNG_iCCP_SUPPORTED
    #endif
    #ifndef PNG_NO_READ_iTXt
    # ifndef PNG_READ_iTXt_SUPPORTED
    # define PNG_READ_iTXt_SUPPORTED
    # endif
    # ifndef PNG_iTXt_SUPPORTED
    # define PNG_iTXt_SUPPORTED
    # endif
    #endif
    #ifndef PNG_NO_READ_oFFs
    # define PNG_READ_oFFs_SUPPORTED
    # define PNG_oFFs_SUPPORTED
    #endif
    #ifndef PNG_NO_READ_pCAL
    # define PNG_READ_pCAL_SUPPORTED
    # define PNG_pCAL_SUPPORTED
    #endif
    #ifndef PNG_NO_READ_sCAL
    # define PNG_READ_sCAL_SUPPORTED
    # define PNG_sCAL_SUPPORTED
    #endif
    #ifndef PNG_NO_READ_pHYs
    # define PNG_READ_pHYs_SUPPORTED
    # define PNG_pHYs_SUPPORTED
    #endif
    #ifndef PNG_NO_READ_sBIT
    # define PNG_READ_sBIT_SUPPORTED
    # define PNG_sBIT_SUPPORTED
    #endif
    #ifndef PNG_NO_READ_sPLT
    # define PNG_READ_sPLT_SUPPORTED
    # define PNG_sPLT_SUPPORTED
    #endif
    #ifndef PNG_NO_READ_sRGB
    # define PNG_READ_sRGB_SUPPORTED
    # define PNG_sRGB_SUPPORTED
    #endif
    #ifndef PNG_NO_READ_tEXt
    # define PNG_READ_tEXt_SUPPORTED
    # define PNG_tEXt_SUPPORTED
    #endif
    #ifndef PNG_NO_READ_tIME
    # define PNG_READ_tIME_SUPPORTED
    # define PNG_tIME_SUPPORTED
    #endif
    #ifndef PNG_NO_READ_tRNS
    # define PNG_READ_tRNS_SUPPORTED
    # define PNG_tRNS_SUPPORTED
    #endif
    #ifndef PNG_NO_READ_zTXt
    # define PNG_READ_zTXt_SUPPORTED
    # define PNG_zTXt_SUPPORTED
    #endif
    #ifndef PNG_NO_READ_UNKNOWN_CHUNKS
    # define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
    # ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED
    # define PNG_UNKNOWN_CHUNKS_SUPPORTED
    # endif
    # ifndef PNG_NO_HANDLE_AS_UNKNOWN
    # define PNG_HANDLE_AS_UNKNOWN_SUPPORTED
    # endif
    #endif
    #if !defined(PNG_NO_READ_USER_CHUNKS) && \
    defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED)
    # define PNG_READ_USER_CHUNKS_SUPPORTED
    # define PNG_USER_CHUNKS_SUPPORTED
    # ifdef PNG_NO_READ_UNKNOWN_CHUNKS
    # undef PNG_NO_READ_UNKNOWN_CHUNKS
    # endif
    # ifdef PNG_NO_HANDLE_AS_UNKNOWN
    # undef PNG_NO_HANDLE_AS_UNKNOWN
    # endif
    #endif
    #ifndef PNG_NO_READ_OPT_PLTE
    # define PNG_READ_OPT_PLTE_SUPPORTED /* only affects support of the */
    #endif /* optional PLTE chunk in RGB and RGBA images */
    #if defined(PNG_READ_iTXt_SUPPORTED) || defined(PNG_READ_tEXt_SUPPORTED) || \
    defined(PNG_READ_zTXt_SUPPORTED)
    # define PNG_READ_TEXT_SUPPORTED
    # define PNG_TEXT_SUPPORTED
    #endif
    #endif /* PNG_READ_ANCILLARY_CHUNKS_SUPPORTED */
    #ifdef PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED
    #ifdef PNG_NO_WRITE_TEXT
    # define PNG_NO_WRITE_iTXt
    # define PNG_NO_WRITE_tEXt
    # define PNG_NO_WRITE_zTXt
    #endif
    #ifndef PNG_NO_WRITE_bKGD
    # define PNG_WRITE_bKGD_SUPPORTED
    # ifndef PNG_bKGD_SUPPORTED
    # define PNG_bKGD_SUPPORTED
    # endif
    #endif
    #ifndef PNG_NO_WRITE_cHRM
    # define PNG_WRITE_cHRM_SUPPORTED
    # ifndef PNG_cHRM_SUPPORTED
    # define PNG_cHRM_SUPPORTED
    # endif
    #endif
    #ifndef PNG_NO_WRITE_gAMA
    # define PNG_WRITE_gAMA_SUPPORTED
    # ifndef PNG_gAMA_SUPPORTED
    # define PNG_gAMA_SUPPORTED
    # endif
    #endif
    #ifndef PNG_NO_WRITE_hIST
    # define PNG_WRITE_hIST_SUPPORTED
    # ifndef PNG_hIST_SUPPORTED
    # define PNG_hIST_SUPPORTED
    # endif
    #endif
    #ifndef PNG_NO_WRITE_iCCP
    # define PNG_WRITE_iCCP_SUPPORTED
    # ifndef PNG_iCCP_SUPPORTED
    # define PNG_iCCP_SUPPORTED
    # endif
    #endif
    #ifndef PNG_NO_WRITE_iTXt
    # ifndef PNG_WRITE_iTXt_SUPPORTED
    # define PNG_WRITE_iTXt_SUPPORTED
    # endif
    # ifndef PNG_iTXt_SUPPORTED
    # define PNG_iTXt_SUPPORTED
    # endif
    #endif
    #ifndef PNG_NO_WRITE_oFFs
    # define PNG_WRITE_oFFs_SUPPORTED
    # ifndef PNG_oFFs_SUPPORTED
    # define PNG_oFFs_SUPPORTED
    # endif
    #endif
    #ifndef PNG_NO_WRITE_pCAL
    # define PNG_WRITE_pCAL_SUPPORTED
    # ifndef PNG_pCAL_SUPPORTED
    # define PNG_pCAL_SUPPORTED
    # endif
    #endif
    #ifndef PNG_NO_WRITE_sCAL
    # define PNG_WRITE_sCAL_SUPPORTED
    # ifndef PNG_sCAL_SUPPORTED
    # define PNG_sCAL_SUPPORTED
    # endif
    #endif
    #ifndef PNG_NO_WRITE_pHYs
    # define PNG_WRITE_pHYs_SUPPORTED
    # ifndef PNG_pHYs_SUPPORTED
    # define PNG_pHYs_SUPPORTED
    # endif
    #endif
    #ifndef PNG_NO_WRITE_sBIT
    # define PNG_WRITE_sBIT_SUPPORTED
    # ifndef PNG_sBIT_SUPPORTED
    # define PNG_sBIT_SUPPORTED
    # endif
    #endif
    #ifndef PNG_NO_WRITE_sPLT
    # define PNG_WRITE_sPLT_SUPPORTED
    # ifndef PNG_sPLT_SUPPORTED
    # define PNG_sPLT_SUPPORTED
    # endif
    #endif
    #ifndef PNG_NO_WRITE_sRGB
    # define PNG_WRITE_sRGB_SUPPORTED
    # ifndef PNG_sRGB_SUPPORTED
    # define PNG_sRGB_SUPPORTED
    # endif
    #endif
    #ifndef PNG_NO_WRITE_tEXt
    # define PNG_WRITE_tEXt_SUPPORTED
    # ifndef PNG_tEXt_SUPPORTED
    # define PNG_tEXt_SUPPORTED
    # endif
    #endif
    #ifndef PNG_NO_WRITE_tIME
    # define PNG_WRITE_tIME_SUPPORTED
    # ifndef PNG_tIME_SUPPORTED
    # define PNG_tIME_SUPPORTED
    # endif
    #endif
    #ifndef PNG_NO_WRITE_tRNS
    # define PNG_WRITE_tRNS_SUPPORTED
    # ifndef PNG_tRNS_SUPPORTED
    # define PNG_tRNS_SUPPORTED
    # endif
    #endif
    #ifndef PNG_NO_WRITE_zTXt
    # define PNG_WRITE_zTXt_SUPPORTED
    # ifndef PNG_zTXt_SUPPORTED
    # define PNG_zTXt_SUPPORTED
    # endif
    #endif
    #ifndef PNG_NO_WRITE_UNKNOWN_CHUNKS
    # define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
    # ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED
    # define PNG_UNKNOWN_CHUNKS_SUPPORTED
    # endif
    # ifndef PNG_NO_HANDLE_AS_UNKNOWN
    # ifndef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
    # define PNG_HANDLE_AS_UNKNOWN_SUPPORTED
    # endif
    # endif
    #endif
    #if defined(PNG_WRITE_iTXt_SUPPORTED) || defined(PNG_WRITE_tEXt_SUPPORTED) || \
    defined(PNG_WRITE_zTXt_SUPPORTED)
    # define PNG_WRITE_TEXT_SUPPORTED
    # ifndef PNG_TEXT_SUPPORTED
    # define PNG_TEXT_SUPPORTED
    # endif
    #endif
    #endif /* PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED */
    /* Turn this off to disable png_read_png() and
    * png_write_png() and leave the row_pointers member
    * out of the info structure.
    #ifndef PNG_NO_INFO_IMAGE
    # define PNG_INFO_IMAGE_SUPPORTED
    #endif
    /* need the time information for reading tIME chunks */
    #if defined(PNG_tIME_SUPPORTED)
    # if !defined(_WIN32_WCE)
    /* "time.h" functions are not supported on WindowsCE */
    # include <time.h>
    # endif
    #endif
    /* Some typedefs to get us started. These should be safe on most of the
    * common platforms. The typedefs should be at least as large as the
    * numbers suggest (a png_uint_32 must be at least 32 bits long), but they
    * don't have to be exactly that size. Some compilers dislike passing
    * unsigned shorts as function parameters, so you may be better off using
    * unsigned int for png_uint_16. Likewise, for 64-bit systems, you may
    * want to have unsigned int for png_uint_32 instead of unsigned long.
    typedef unsigned long png_uint_32;
    typedef long png_int_32;
    typedef unsigned short png_uint_16;
    typedef short png_int_16;
    typedef unsigned char png_byte;
    /* This is usually size_t. It is typedef'ed just in case you need it to
    change (I'm not sure if you will or not, so I thought I'd be safe) */
    #ifdef PNG_SIZE_T
    typedef PNG_SIZE_T png_size_t;
    # define png_sizeof(x) png_convert_size(sizeof (x))
    #else
    typedef size_t png_size_t;
    # define png_sizeof(x) sizeof (x)
    #endif
    /* The following is needed for medium model support. It cannot be in the
    * PNG_INTERNAL section. Needs modification for other compilers besides
    * MSC. Model independent support declares all arrays and pointers to be
    * large using the far keyword. The zlib version used must also support
    * model independent data. As of version zlib 1.0.4, the necessary changes
    * have been made in zlib. The USE_FAR_KEYWORD define triggers other
    * changes that are needed. (Tim Wegner)
    /* Separate compiler dependencies (problem here is that zlib.h always
    defines FAR. (SJT) */
    #ifdef __BORLANDC__
    # if defined(__LARGE__) || defined(__HUGE__) || defined(__COMPACT__)
    # define LDATA 1
    # else
    # define LDATA 0
    # endif
    /* GRR: why is Cygwin in here? Cygwin is not Borland C... */
    # if !defined(__WIN32__) && !defined(__FLAT__) && !defined(__CYGWIN__)
    # define PNG_MAX_MALLOC_64K
    # if (LDATA != 1)
    # ifndef FAR
    # define FAR __far
    # endif
    # define USE_FAR_KEYWORD
    # endif /* LDATA != 1 */
    /* Possibly useful for moving data out of default segment.
    * Uncomment it if you want. Could also define FARDATA as
    * const if your compiler supports it. (SJT)
    # define FARDATA FAR
    # endif /* __WIN32__, __FLAT__, __CYGWIN__ */
    #endif /* __BORLANDC__ */
    /* Suggest testing for specific compiler first before testing for
    * FAR. The Watcom compiler defines both __MEDIUM__ and M_I86MM,
    * making reliance oncertain keywords suspect. (SJT)
    /* MSC Medium model */
    #if defined(FAR)
    # if defined(M_I86MM)
    # define USE_FAR_KEYWORD
    # define FARDATA FAR
    # include <dos.h>
    # endif
    #endif
    /* SJT: default case */
    #ifndef FAR
    # define FAR
    #endif
    /* At this point FAR is always defined */
    #ifndef FARDATA
    # define FARDATA
    #endif
    /* Typedef for floating-point numbers that are converted
    to fixed-point with a multiple of 100,000, e.g., int_gamma */
    typedef png_int_32 png_fixed_point;
    /* Add typedefs for pointers */
    typedef void FAR * png_voidp;
    typedef png_byte FAR * png_bytep;
    typedef png_uint_32 FAR * png_uint_32p;
    typedef png_int_32 FAR * png_int_32p;
    typedef png_uint_16 FAR * png_uint_16p;
    typedef png_int_16 FAR * png_int_16p;
    typedef PNG_CONST char FAR * png_const_charp;
    typedef char FAR * png_charp;
    typedef png_fixed_point FAR * png_fixed_point_p;
    #ifndef PNG_NO_STDIO
    #if defined(_WIN32_WCE)
    typedef HANDLE png_FILE_p;
    #else
    typedef FILE * png_FILE_p;
    #endif
    #endif
    #ifdef PNG_FLOATING_POINT_SUPPORTED
    typedef double FAR * png_doublep;
    #endif
    /* Pointers to pointers; i.e. arrays */
    typedef png_byte FAR * FAR * png_bytepp;
    typedef png_uint_32 FAR * FAR * png_uint_32pp;
    typedef png_int_32 FAR * FAR * png_int_32pp;
    typedef png_uint_16 FAR * FAR * png_uint_16pp;
    typedef png_int_16 FAR * FAR * png_int_16pp;
    typedef PNG_CONST char FAR * FAR * png_const_charpp;
    typedef char FAR * FAR * png_charpp;
    typedef png_fixed_point FAR * FAR * png_fixed_point_pp;
    #ifdef PNG_FLOATING_POINT_SUPPORTED
    typedef double FAR * FAR * png_doublepp;
    #endif
    /* Pointers to pointers to pointers; i.e., pointer to array */
    typedef char FAR * FAR * FAR * png_charppp;
    /* libpng typedefs for types in zlib. If zlib changes
    * or another compression library is used, then change these.
    * Eliminates need to change all the source files.
    typedef charf * png_zcharp;
    typedef charf * FAR * png_zcharpp;
    typedef z_stream FAR * png_zstreamp;
    * Define PNG_BUILD_DLL if the module being built is a Windows
    * LIBPNG DLL.
    * Define PNG_USE_DLL if you want to *link* to the Windows LIBPNG DLL.
    * It is equivalent to Microsoft predefined macro _DLL that is
    * automatically defined when you compile using the share
    * version of the CRT (C Run-Time library)
    * The cygwin mods make this behavior a little different:
    * Define PNG_BUILD_DLL if you are building a dll for use with cygwin
    * Define PNG_STATIC if you are building a static library for use with cygwin,
    * -or- if you are building an application that you want to link to the
    * static library.
    * PNG_USE_DLL is defined by default (no user action needed) unless one of
    * the other flags is defined.
    #if !defined(PNG_DLL) && (defined(PNG_BUILD_DLL) || defined(PNG_USE_DLL))
    # define PNG_DLL
    #endif
    /* If CYGWIN, then disallow GLOBAL ARRAYS unless building a static lib.
    * When building a static lib, default to no GLOBAL ARRAYS, but allow
    * command-line override
    #if defined(__CYGWIN__)
    # if !defined(PNG_STATIC)
    # if defined(PNG_USE_GLOBAL_ARRAYS)
    # undef PNG_USE_GLOBAL_ARRAYS
    # endif
    # if !defined(PNG_USE_LOCAL_ARRAYS)
    # define PNG_USE_LOCAL_ARRAYS
    # endif
    # else
    # if defined(PNG_USE_LOCAL_ARRAYS) || defined(PNG_NO_GLOBAL_ARRAYS)
    # if defined(PNG_USE_GLOBAL_ARRAYS)
    # undef PNG_USE_GLOBAL_ARRAYS
    # endif
    # endif
    # endif
    # if !defined(PNG_USE_LOCAL_ARRAYS) && !defined(PNG_USE_GLOBAL_ARRAYS)
    # define PNG_USE_LOCAL_ARRAYS
    # endif
    #endif
    /* Do not use global arrays (helps with building DLL's)
    * They are no longer used in libpng itself, since version 1.0.5c,
    * but might be required for some pre-1.0.5c applications.
    #if !defined(PNG_USE_LOCAL_ARRAYS) && !defined(PNG_USE_GLOBAL_ARRAYS)
    # if defined(PNG_NO_GLOBAL_ARRAYS) || (defined(__GNUC__) && defined(PNG_DLL))
    # define PNG_USE_LOCAL_ARRAYS
    # else
    # define PNG_USE_GLOBAL_ARRAYS
    # endif
    #endif
    #if defined(__CYGWIN__)
    # undef PNGAPI
    # define PNGAPI __cdecl
    # undef PNG_IMPEXP
    # define PNG_IMPEXP
    #endif
    /* If you define PNGAPI, e.g., with compiler option "-DPNGAPI=__stdcall",
    * you may get warnings regarding the linkage of png_zalloc and png_zfree.
    * Don't ignore those warnings; you must also reset the default calling
    * convention in your compiler to match your PNGAPI, and you must build
    * zlib and your applications the same way you build libpng.
    #if defined(__MINGW32__) && !defined(PNG_MODULEDEF)
    # ifndef PNG_NO_MODULEDEF
    # define PNG_NO_MODULEDEF
    # endif
    #endif
    #if !defined(PNG_IMPEXP) && defined(PNG_BUILD_DLL) && !defined(PNG_NO_MODULEDEF)
    # define PNG_IMPEXP
    #endif
    #if defined(PNG_DLL) || defined(_DLL) || defined(__DLL__ ) || \
    (( defined(_Windows) || defined(_WINDOWS) || \
    defined(WIN32) || defined(_WIN32) || defined(__WIN32__) ))
    # ifndef PNGAPI
    # if defined(__GNUC__) || (defined (_MSC_VER) && (_MSC_VER >= 800))
    # define PNGAPI __cdecl
    # else
    # define PNGAPI _cdecl
    # endif
    # endif
    # if !defined(PNG_IMPEXP) && (!defined(PNG_DLL) || \
    0 /* WINCOMPILER_WITH_NO_SUPPORT_FOR_DECLIMPEXP */)
    # define PNG_IMPEXP
    # endif
    # if !defined(PNG_IMPEXP)
    # define PNG_EXPORT_TYPE1(type,symbol) PNG_IMPEXP type PNGAPI symbol
    # define PNG_EXPORT_TYPE2(type,symbol) type PNG_IMPEXP PNGAPI symbol
    /* Borland/Microsoft */
    # if defined(_MSC_VER) || defined(__BORLANDC__)
    # if (_MSC_VER >= 800) || (__BORLANDC__ >= 0x500)
    # define PNG_EXPORT PNG_EXPORT_TYPE1
    # else
    # define PNG_EXPORT PNG_EXPORT_TYPE2
    # if defined(PNG_BUILD_DLL)
    # define PNG_IMPEXP __export
    # else
    # define PNG_IMPEXP /*__import */ /* doesn't exist AFAIK in
    VC++ */
    # endif /* Exists in Borland C++ for
    C++ classes (== huge) */
    # endif
    # endif
    # if !defined(PNG_IMPEXP)
    # if defined(PNG_BUILD_DLL)
    # define PNG_IMPEXP __declspec(dllexport)
    # else
    # define PNG_IMPEXP __declspec(dllimport)
    # endif
    # endif
    # endif /* PNG_IMPEXP */
    #else /* !(DLL || non-cygwin WINDOWS) */
    # if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__)
    # ifndef PNGAPI
    # define PNGAPI _System
    # endif
    # else
    # if 0 /* ... other platforms, with other meanings */
    # endif
    # endif
    #endif
    #ifndef PNGAPI
    # define PNGAPI
    #endif
    #ifndef PNG_IMPEXP
    # define PNG_IMPEXP
    #endif
    #ifndef PNG_EXPORT
    # define PNG_EXPORT(type,symbol) PNG_IMPEXP type PNGAPI symbol
    #endif
    #ifdef PNG_USE_GLOBAL_ARRAYS
    # ifndef PNG_EXPORT_VAR
    # define PNG_EXPORT_VAR(type) extern PNG_IMPEXP type
    # endif
    #endif
    /* User may want to use these so they are not in PNG_INTERNAL. Any library
    * functions that are passed far data must be model independent.
    #ifndef PNG_ABORT
    # define PNG_ABORT() abort()
    #endif
    #ifdef PNG_SETJMP_SUPPORTED
    # define png_jmpbuf(png_ptr) ((png_ptr)->jmpbuf)
    #else
    # define png_jmpbuf(png_ptr) \
    (LIBPNG_WAS_COMPILED_WITH__PNG_SETJMP_NOT_SUPPORTED)
    #endif
    #if defined(USE_FAR_KEYWORD) /* memory model independent fns */
    /* use this to make far-to-near assignments */
    # define CHECK 1
    # define NOCHECK 0
    # define CVT_PTR(ptr) (png_far_to_near(png_ptr,ptr,CHECK))
    # define CVT_PTR_NOCHECK(ptr) (png_far_to_near(png_ptr,ptr,NOCHECK))
    # define png_strcpy _fstrcpy
    # define png_strncpy _fstrncpy /* Added to v 1.2.6 */
    # define png_strlen _fstrlen
    # define png_memcmp _fmemcmp /* SJT: added */
    # define png_memcpy _fmemcpy
    # define png_memset _fmemset
    #else /* use the usual functions */
    # define CVT_PTR(ptr) (ptr)
    # define CVT_PTR_NOCHECK(ptr) (ptr)
    # define png_strcpy strcpy
    # define png_strncpy strncpy /* Added to v 1.2.6 */
    # define png_strlen strlen
    # define png_memcmp memcmp /* SJT: added */
    # define png_memcpy memcpy
    # define png_memset memset
    #endif
    /* End of memory model independent support */
    /* Just a little check that someone hasn't tried to define something
    * contradictory.
    #if (PNG_ZBUF_SIZE > 65536L) && defined(PNG_MAX_MALLOC_64K)
    # undef PNG_ZBUF_SIZE
    # define PNG_ZBUF_SIZE 65536L
    #endif
    #ifdef PNG_READ_SUPPORTED
    /* Prior to libpng-1.0.9, this block was in pngasmrd.h */
    #if defined(PNG_INTERNAL)
    /* These are the default thresholds before the MMX code kicks in; if either
    * rowbytes or bitdepth is below the threshold, plain C code is used. These
    * can be overridden at runtime via the png_set_mmx_thresholds() call in
    * libpng 1.2.0 and later. The values below were chosen by Intel.
    #ifndef PNG_MMX_ROWBYTES_THRESHOLD_DEFAULT
    # define PNG_MMX_ROWBYTES_THRESHOLD_DEFAULT 128 /* >= */
    #endif
    #ifndef PNG_MMX_BITDEPTH_THRESHOLD_DEFAULT
    # define PNG_MMX_BITDEPTH_THRESHOLD_DEFAULT 9 /* >= */
    #endif
    /* Set this in the makefile for VC++ on Pentium, not here. */
    /* Platform must be Pentium. Makefile must assemble and load pngvcrd.c .
    * MMX will be detected at run time and used if present.
    #ifdef PNG_USE_PNGVCRD
    # define PNG_HAVE_ASSEMBLER_COMBINE_ROW
    # define PNG_HAVE_ASSEMBLER_READ_INTERLACE
    # define PNG_HAVE_ASSEMBLER_READ_FILTER_ROW
    #endif
    /* Set this in the makefile for gcc/as on Pentium, not here. */
    /* Platform must be Pentium. Makefile must assemble and load pnggccrd.c .
    * MMX will be detected at run time and used if present.
    #ifdef PNG_USE_PNGGCCRD
    # define PNG_HAVE_ASSEMBLER_COMBINE_ROW
    # define PNG_HAVE_ASSEMBLER_READ_INTERLACE
    # define PNG_HAVE_ASSEMBLER_READ_FILTER_ROW
    #endif
    /* - see pnggccrd.c for info about what is currently enabled */
    #endif /* PNG_INTERNAL */
    #endif /* PNG_READ_SUPPORTED */
    #endif /* PNGCONF_H */

    First, I agree with Karol, use the AUR so that pacman can do its job.  Second, when you do your make, there is no reason to run it as root (until you do the make install)  For the initial build, it is much safer to not use root; plus all the files in your home directory will continue to belong to use, not to root.
    But, try the AUR.

  • Installing a Usage type on exsisting Java+ABAP and PI system

    Hi all,
    I have installed a PI system with the following Usage Types
    AS ABAP
    AS JAVA
    PI
    EP
    I wanted to install CMS on my system...
    I went through the following link http://help.sap.com/saphelp_nw04s/helpdata/en/88/311041b59bef23e10000000a155106/frameset.htm
    it gives we have three SCA files to be installed....
    I tried to apply these three SCA files but there seems to be a dependencies problem
    It says "Unresolved dependencies found for the following SDA's
    development component 'tc/SL/CMS/TCSEar'/'sap.com'/'MAIN_APL70VAL_C'/'1077917'
    dependency :
    name : 'tc_SL_SDM_Client'
    vendor : 'sap.com'
    Am i missing out anythng
    or do i need to install the usage type DI before installing CMS
    Rgds
    Aditya

    Hi Aditya,
       Check this post [CMS installation;.
    I hope it will be useful
    Regards

  • Organizing java projects, packages

    I'm making an application that has about 50 classes. I am using the project to learn how to do a lot of things, but one is how to use packages. I would like to get your comments on what I've done, since I've never done this before.
    I set up a directory called /java/classes/package_name/ for all my .class files.
    Likewise, /java/src/package_name/ has the source files.
    Now, I'd like to be able to build all the source files and put them into the appropriate class path directory. Is there a standard way of doing this? Do you use make? I like make, but is there a better tool? I like simple things.
    I have several classes in my package that have mutual dependencies. I think this is a bad thing, but it's because some of them are input dialogs and such, so I couldn't think of any way to handle buttons and input fields other than to have some mutual dependencies.
    I can't compile them at all because they depend on each other (or so I think). Is there a standard way to organize the GUI files like this? Do they not even belong in a package?
    If they don't belong in the package, where do they belong?
    I also want to be able to package this up nicely in a jar file or something so I can give it to friends to run (it's a game with some 2D graphics). I would have to include the class files in package_name package, but how do i related them to the main class when I jar them up?
    There are actually two programs that use all most of the files, and there could be more later.
    Thanks very much ahead of time; I appreciate all your info and tips.

    I am not opposed to learning to use Eclipse for Java type things,Good, good, good... also download and play with Netbeans, among others... use the one which suits you most... I use several IDE's for different jobs.
    but I'd rather learn to do it manually first. Otherwise I will by as mystified as ever when things go wrong.You'll go far. A BIG downside of the modern IDE's automatic build-and-deploy features is they hide all the "plumbing", which is great as long as it works, but leaves the user (esp noobs) totally at a loss when something goes wrong, coz the user doesn't even what should be happening... let alone what's not happening, or why, or what to do about it.
    Resolving dependencies like you suggested works fine when you don't have mutual dependencies.AFAIK the Java compiler doesn't have a problem building classes with "mutual dependencies"... for instance if class A uses class B which uses class A the compiler doesn't require a definition of type B (trusting that such will be forthcoming) when it compiles A... it then compiles B... and the picture is complete.
    An experiment to dis/prove the above notion
    package forums;
    public class A {
      public final String message = "A";
      public static void main(String[] args) {
        A a = new A();
        System.out.println(new B(a).message);
    class B {
      final String message;
      B (A a) {
        this.message = a.message + "B";
    }This works, so I don't get the whole "Resolving dependencies" problem. Do you know something that I don't?
    Javac "follows" dependendencies automatically, as long as the files are in the expected place.
    Me thinks you're just having classpath issues... you're directory structure must EXACTLY match your package structure... and remember that Java is cAsE sEnSiTiVe, even if the underlying operating system is not... ie: I think the "circular dependencies" problem is a furphy.
    Read that classpath article... of you're still stuck give us a yell and we'll work through compiling and running the above program.
    Cheers. Keith.

  • How to control service shutdown sequence of dependent services

    I am running three java applications say A,B,C as windows services with A having dependency on B and B having dependency on C.
    Which means when you start A, It shall automatically start services B and C (Java programs running as service). And also when you stop C ,it shall stop first B and then A.
    Problem I am facing is when you stop C. Windows first stop A then B.
    I am able to register java applications as windows services with dependencies.Problem is when u stop service,Windows send signal to all the dependent services to stop and thus I am not able to control order in which services stop
    Any help is appreciated
    regards

    In your web.xml, under the servlet tag, make A.jsp be loaded the first, at your web app 's startup:
    <jsp-file>A.jsp</jsp-file>
    <load-on-startup>0</load-on-startup>
    ...

Maybe you are looking for

  • PO Release Reject Function Module

    Hello All, One can reject a PO Release using ME29N, does anybody know of a function module or sequence of function modules to achieve this ? The only BAPI available is for Release, but I couldnt find anything on rejecting release. I havent tried a BD

  • Serious: How does the Illustrator team decide what features to add?

    Hi Illustrator Team! This is a serious question that I'm compelled to ask because of the general absence of Adobe / Illustrator representation in the feature request forum. I certainly don't believe it would be possible to respond to the constant inf

  • How to batch change in new Photo app

    I switched over to the new Photo app. I imported my photos from my iPhone, and then went to batch change the titles (which I use to search for specific pictures and places). I can't find an option anywhere to change anything more than one photo at a

  • Gallery (video) not playing in mobileme

    Hello, Iphone 3GS, account me.com. Safari iPhone: http://gallery.me.com/myusername > opening gallery mme > select one (video) > "Unable to read the movie, the server is not correctly configured" (I translate from french ). Why ? For pictures it works

  • Can the 3G service in an ipad be used in south america where at&t or verizon do not have services?

    I want to buy a new ipad that will be mainly used in south america where at&t and verizon do not offer services. Can the 3G option be used with a local carrier?