#!/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
#
###########################################################################

# shellcheck disable=SC2006

prefix='/usr/lib/mxe/usr/x86_64-w64-mingw32.static.posix'
# Used in 'libdir'
# shellcheck disable=SC2034
exec_prefix="${prefix}"
# shellcheck disable=SC2034
includedir="${prefix}/include"

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              preprocessor 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 version as a hexadecimal number
EOF

  exit "$1"
}

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

while test "$#" -gt 0; do
  case "$1" in
  --built-shared)
    echo 'no'
    ;;

  --ca)
    echo ''
    ;;

  --cc)
    echo 'x86_64-w64-mingw32.static.posix-gcc'
    ;;

  --prefix)
    echo "$prefix"
    ;;

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

  --protocols)
    # shellcheck disable=SC2043
    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.16.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-pre1
    cpatch=`echo "$checkfor" | cut -d. -f3 | cut -d- -f1`

    vmajor=`echo '8.16.0' | cut -d. -f1`
    vminor=`echo '8.16.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-pre1
    vpatch=`echo '8.16.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.16.0"
    exit 1
    ;;

  --vernum)
    echo '081000'
    exit 0
    ;;

  --help)
    usage 0
    ;;

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

  --libs)
    if test "${exec_prefix}/lib" != '/usr/lib' -a "${exec_prefix}/lib" != '/usr/lib64'; then
      curllibdir="-L${exec_prefix}/lib "
    else
      curllibdir=''
    fi
    if test 'no' = 'no'; then
      echo "${curllibdir}-lcurl -lsecur32 -lnghttp2 -lidn2 -lunistring -liconv -lcharset -lwldap32 -lssh2 -lssh2 -lgcrypt -lgpg-error -lws2_32 -lz -lgcrypt -lgpg-error -lws2_32 -lgcrypt -lgpg-error -lws2_32 -lgcrypt -lgpg-error -lws2_32 -lz -lpsl -lunistring -lws2_32 -lidn2 -lunistring -liconv -lcharset -lbcrypt -ladvapi32 -lcrypt32 -lssl -lcrypto -lssl -lz -lws2_32 -lgdi32 -lcrypt32 -lcrypto -lz -lws2_32 -lgdi32 -lcrypt32 -lgdi32 -lzstd -lbrotlidec -lbrotlidec -lbrotlicommon -lbrotlicommon -lz -lpsl -lunistring -lws2_32 -lidn2 -lunistring -liconv -lcharset -lbrotlidec -lbrotlicommon -lpthread"
    else
      echo "${curllibdir}-lcurl"
    fi
    ;;

  --ssl-backends)
    echo 'Schannel, OpenSSL v3+'
    ;;

  --static-libs)
    if test 'yes' != 'no'; then
      echo "${exec_prefix}/lib/libcurl.a -L/usr/lib/mxe/usr/x86_64-w64-mingw32.static.posix -L/usr/lib/mxe/usr/x86_64-w64-mingw32.static.posix -lsecur32 -lnghttp2 -lidn2 -lunistring -liconv -lcharset -lwldap32 -lssh2 -lssh2 -lgcrypt -lgpg-error -lws2_32 -lz -lgcrypt -lgpg-error -lws2_32 -lgcrypt -lgpg-error -lws2_32 -lgcrypt -lgpg-error -lws2_32 -lz -lpsl -lunistring -lws2_32 -lidn2 -lunistring -liconv -lcharset -lbcrypt -ladvapi32 -lcrypt32 -lssl -lcrypto -lssl -lz -lws2_32 -lgdi32 -lcrypt32 -lcrypto -lz -lws2_32 -lgdi32 -lcrypt32 -lgdi32 -lzstd -lbrotlidec -lbrotlidec -lbrotlicommon -lbrotlicommon -lz -lpsl -lunistring -lws2_32 -lidn2 -lunistring -liconv -lcharset -lbrotlidec -lbrotlicommon -lpthread"
    else
      echo 'curl was built with static libraries disabled' >&2
      exit 1
    fi
    ;;

  --configure)
    echo " '--host=x86_64-w64-mingw32.static.posix' '--build=x86_64-pc-linux-gnu' '--prefix=/usr/lib/mxe/usr/x86_64-w64-mingw32.static.posix' '--enable-static' '--disable-shared' 'ac_cv_prog_HAVE_DOXYGEN=false' '--enable-doc=no' '--enable-gtk-doc=no' '--enable-gtk-doc-html=no' '--enable-gtk-doc-pdf=no' '--docdir=/root/mxe/tmp-curl-x86_64-w64-mingw32.static.posix/curl-8.16.0.build_.sink' '--infodir=/root/mxe/tmp-curl-x86_64-w64-mingw32.static.posix/curl-8.16.0.build_.sink' '--mandir=/root/mxe/tmp-curl-x86_64-w64-mingw32.static.posix/curl-8.16.0.build_.sink' '--with-html-dir=/root/mxe/tmp-curl-x86_64-w64-mingw32.static.posix/curl-8.16.0.build_.sink' '--disable-doxygen' '--with-default-ssl-backend=schannel' '--with-schannel' '--with-openssl' '--with-libidn2' '--enable-sspi' '--enable-ipv6' '--with-libssh2' '--with-nghttp2' '--with-brotli' 'CPPFLAGS=-DNGHTTP2_STATICLIB ' 'LIBS=-lpsl -lunistring -lws2_32 -lidn2 -lunistring -liconv -lcharset -lbrotlidec -lbrotlicommon -lpthread ' 'PKG_CONFIG=x86_64-w64-mingw32.static.posix-pkg-config' 'build_alias=x86_64-pc-linux-gnu' 'host_alias=x86_64-w64-mingw32.static.posix'"
    ;;

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

exit 0
