#!/usr/bin/sh
#***************************************************************************
#                                  _   _ ____  _
#  Project                     ___| | | |  _ \| |
#                             / __| | | | |_) | |
#                            | (__| |_| |  _ <| |___
#                             \___|\___/|_| \_\_____|
#
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
# are also available at https://curl.se/docs/copyright.html.
#
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
# copies of the Software, and permit persons to whom the Software is
# furnished to do so, under the terms of the COPYING file.
#
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
# KIND, either express or implied.
#
# SPDX-License-Identifier: curl
#
###########################################################################

prefix="/usr"
exec_prefix=/usr
includedir=/usr/include
cppflag_curl_staticlib=

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

Available values for OPTION include:

  --built-shared says 'yes' if libcurl was built shared
  --ca        ca bundle install path
  --cc        compiler
  --cflags    pre-processor and compiler flags
  --checkfor [version] check for (lib)curl of the specified version
  --configure the arguments given to configure when building curl
  --features  newline separated list of enabled features
  --help      display this help and exit
  --libs      library linking information
  --prefix    curl install prefix
  --protocols newline separated list of enabled protocols
  --ssl-backends output the SSL backends libcurl was built to support
  --static-libs static libcurl library linking information
  --version   output version information
  --vernum    output the version information as a number (hexadecimal)
EOF

    exit $1
}

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

while test $# -gt 0; do
    case "$1" in
    # this deals with options in the style
    # --option=value and extracts the value part
    # [not currently used]
    -*=*) value=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
    *) value= ;;
    esac

    case "$1" in
    --built-shared)
        echo yes
        ;;

    --ca)
        echo "/etc/pki/tls/certs/ca-bundle.crt"
        ;;

    --cc)
        echo "gcc"
        ;;

    --prefix)
        echo "$prefix"
        ;;

    --feature|--features)
        for feature in AsynchDNS GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile NTLM PSL SPNEGO SSL TLS-SRP UnixSockets alt-svc brotli libz threadsafe ""; do
            test -n "$feature" && echo "$feature"
        done
        ;;

    --protocols)
        for protocol in DICT FILE FTP FTPS GOPHER GOPHERS HTTP HTTPS IMAP IMAPS IPFS IPNS LDAP LDAPS MQTT POP3 POP3S RTSP SCP SFTP SMB SMBS SMTP SMTPS TELNET TFTP WS WSS; do
            echo "$protocol"
        done
        ;;

    --version)
        echo libcurl 8.6.0
        exit 0
        ;;

    --checkfor)
        checkfor=$2
        cmajor=`echo $checkfor | cut -d. -f1`
        cminor=`echo $checkfor | cut -d. -f2`
        # when extracting the patch part we strip off everything after a
        # dash as that's used for things like version 1.2.3-CVS
        cpatch=`echo $checkfor | cut -d. -f3 | cut -d- -f1`

        vmajor=`echo 8.6.0 | cut -d. -f1`
        vminor=`echo 8.6.0 | cut -d. -f2`
        # when extracting the patch part we strip off everything after a
        # dash as that's used for things like version 1.2.3-CVS
        vpatch=`echo 8.6.0 | cut -d. -f3 | cut -d- -f1`

        if test "$vmajor" -gt "$cmajor"; then
            exit 0;
        fi
        if test "$vmajor" -eq "$cmajor"; then
            if test "$vminor" -gt "$cminor"; then
                exit 0
            fi
            if test "$vminor" -eq "$cminor"; then
                if test "$cpatch" -le "$vpatch"; then
                    exit 0
                fi
            fi
        fi

        echo "requested version $checkfor is newer than existing 8.6.0"
        exit 1
        ;;

    --vernum)
        echo 080600
        exit 0
        ;;

    --help)
        usage 0
        ;;

    --cflags)
        if test "X$cppflag_curl_staticlib" = "X-DCURL_STATICLIB"; then
          CPPFLAG_CURL_STATICLIB="-DCURL_STATICLIB "
        else
          CPPFLAG_CURL_STATICLIB=""
        fi
        if test "X/usr/include" = "X/usr/include"; then
          echo "$CPPFLAG_CURL_STATICLIB"
        else
          echo "${CPPFLAG_CURL_STATICLIB}-I/usr/include"
        fi
        ;;

    --libs)
        echo -lcurl
        ;;
    --ssl-backends)
        echo "OpenSSL v3+"
        ;;

    --static-libs)
        echo "curl was built with static libraries disabled" >&2
        exit 1
        ;;

    --configure)
        pkg-config libcurl --variable=configure_options | sed 's/^"//;s/"$//'
        ;;

    *)
        echo "unknown option: $1"
        usage 1
        ;;
    esac
    shift
done

exit 0
