
usage()
{
    cat <<EOF
Usage: libpng-config [OPTION] ...

Known values for OPTION are:

  --prefix              print libpng prefix
  --libs                print library linking information
  --cflags              print compiler flags
  --cppflags            print pre-processor flags
  --ldflags             print loader flags
  --help                display this help and exit
  --version             output version information
EOF

    exit $1
}

if test $# -eq 0; then
    usage 1
fi

while test $# -gt 0; do
    case "$1" in

    --prefix)
        echo ${prefix}
        ;;

    --version)
        echo ${version}
        exit 0
        ;;

    --help)
        usage 0
        ;;

    --cflags)
        echo ${cflags}
        ;;

    --cppflags)
        echo ${cppflags}
        ;;

    --libs)
        echo ${libs}
        ;;

    --ldflags)
        echo ${ldflags}
        ;;

    *)
        usage
        exit 1
        ;;
    esac
    shift
done

exit 0
