#!/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='/'
# 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 'yes'
    ;;

  --ca)
    echo '/etc/ssl/certs/ca-certificates.crt'
    ;;

  --cc)
    echo '/usr/local/genode/tool/25.05/bin/genode-x86-gcc'
    ;;

  --prefix)
    echo "$prefix"
    ;;

  --feature|--features)
    for feature in alt-svc AsynchDNS HSTS HTTPS-proxy IPv6 Largefile libz NTLM SSL threadsafe TLS-SRP UnixSockets ''; 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 MQTT POP3 POP3S RTSP SCP SFTP SMB SMBS SMTP SMTPS TELNET TFTP WS WSS; do
      echo "$protocol"
    done
    ;;

  --version)
    echo 'libcurl 8.12.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.12.0' | cut -d. -f1`
    vminor=`echo '8.12.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.12.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.12.0"
    exit 1
    ;;

  --vernum)
    echo '080c00'
    exit 0
    ;;

  --help)
    usage 0
    ;;

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

  --libs)
    if test "X${exec_prefix}/lib" != 'X/usr/lib' -a "X${exec_prefix}/lib" != 'X/usr/lib64'; then
      curllibdir="-L${exec_prefix}/lib "
    else
      curllibdir=''
    fi
    if test 'Xyes' = 'Xno'; then
      echo "${curllibdir}-lcurl -lssh -lssl -lcrypto -l:zlib.lib.so -nostartfiles -nodefaultlibs -lgcc -L/home/johannes/repos/goa-projects/ports/curl/var/abi/x86_64 -l:libc.lib.so -l:libm.lib.so -l:posix.lib.so -Wl,--dynamic-linker=ld.lib.so -Wl,--dynamic-list=/home/johannes/repos/goa/share/goa/ld/genode_dyn.dl -T /home/johannes/repos/goa/share/goa/ld/genode_dyn.ld -l:libssl.lib.so -l:libcrypto.lib.so -l:zlib.lib.so -l:libssh.lib.so"
    else
      echo "${curllibdir}-lcurl"
    fi
    ;;

  --ssl-backends)
    echo 'OpenSSL'
    ;;

  --static-libs)
    if test 'Xyes' != 'Xno'; then
      echo "${exec_prefix}/lib/libcurl.a -L/home/johannes/repos/goa-projects/ports/curl/var/abi/x86_64 -lssh -lssl -lcrypto -l:zlib.lib.so -nostartfiles -nodefaultlibs -lgcc -L/home/johannes/repos/goa-projects/ports/curl/var/abi/x86_64 -l:libc.lib.so -l:libm.lib.so -l:posix.lib.so -Wl,--dynamic-linker=ld.lib.so -Wl,--dynamic-list=/home/johannes/repos/goa/share/goa/ld/genode_dyn.dl -T /home/johannes/repos/goa/share/goa/ld/genode_dyn.ld -l:libssl.lib.so -l:libcrypto.lib.so -l:zlib.lib.so -l:libssh.lib.so"
    else
      echo 'curl was built with static libraries disabled' >&2
      exit 1
    fi
    ;;

  --configure)
    echo " '--prefix' '/' '--host' 'x86_64-pc-elf' 'CPPFLAGS=-nostdinc -D__BSD_VISIBLE -D__FreeBSD__=12 -I/home/johannes/repos/genode/depot/genodelabs/api/libc/2025-10-12/include/spec/x86_64 -I/home/johannes/repos/genode/depot/genodelabs/api/libc/2025-10-12/include/spec/x86 -I/home/johannes/repos/genode/depot/genodelabs/api/libc/2025-10-12/include -I/home/johannes/repos/genode/depot/jschlatow/api/openssl/2025-02-21/include/spec/64bit -I/home/johannes/repos/genode/depot/jschlatow/api/openssl/2025-02-21/include -I/home/johannes/repos/genode/depot/genodelabs/api/zlib/2025-02-26/include -I/home/johannes/repos/genode/depot/genodelabs/api/libssh/2021-10-13/include -I/usr/local/genode/tool/25.05/lib/gcc/x86_64-pc-elf/14.2.0/include -I/home/johannes/repos/genode/depot/genodelabs/api/libc/2025-10-12/include/libc -I/home/johannes/repos/genode/depot/genodelabs/api/libc/2025-10-12/include/libc-genode -I/home/johannes/repos/genode/depot/genodelabs/api/libc/2025-10-12/include/spec/x86/libc -I/home/johannes/repos/genode/depot/genodelabs/api/libc/2025-10-12/include/spec/x86_64/libc' 'CFLAGS=-fPIC -O2 -D__GENODE__ -fdiagnostics-color=always -m64 -g -fdebug-prefix-map=/home/johannes/repos/genode/depot=/depot -I/home/johannes/repos/genode/depot/genodelabs/api/libc/2025-10-12/include/spec/x86_64 -I/home/johannes/repos/genode/depot/genodelabs/api/libc/2025-10-12/include/spec/x86 -I/home/johannes/repos/genode/depot/genodelabs/api/libc/2025-10-12/include -I/home/johannes/repos/genode/depot/jschlatow/api/openssl/2025-02-21/include/spec/64bit -I/home/johannes/repos/genode/depot/jschlatow/api/openssl/2025-02-21/include -I/home/johannes/repos/genode/depot/genodelabs/api/zlib/2025-02-26/include -I/home/johannes/repos/genode/depot/genodelabs/api/libssh/2021-10-13/include -I/usr/local/genode/tool/25.05/lib/gcc/x86_64-pc-elf/14.2.0/include -I/home/johannes/repos/genode/depot/genodelabs/api/libc/2025-10-12/include/libc -I/home/johannes/repos/genode/depot/genodelabs/api/libc/2025-10-12/include/libc-genode -I/home/johannes/repos/genode/depot/genodelabs/api/libc/2025-10-12/include/spec/x86/libc -I/home/johannes/repos/genode/depot/genodelabs/api/libc/2025-10-12/include/spec/x86_64/libc' 'CXXFLAGS=-fPIC -O2 -D__GENODE__ -fdiagnostics-color=always -m64 -g -fdebug-prefix-map=/home/johannes/repos/genode/depot=/depot -std=gnu++20' 'LDFLAGS=-Wl,-gc-sections -Wl,-z -Wl,max-page-size=0x1000 -Wl,--eh-frame-hdr -Wl,-rpath-link=. -Wl,-melf_x86_64 -Wl,-Ttext=0x01000000 -nostartfiles -nodefaultlibs -lgcc -L/home/johannes/repos/goa-projects/ports/curl/var/abi/x86_64' 'LDLIBS=-nostartfiles -nodefaultlibs -lgcc -L/home/johannes/repos/goa-projects/ports/curl/var/abi/x86_64 -l:libc.lib.so -l:libm.lib.so -l:posix.lib.so -Wl,--dynamic-linker=ld.lib.so -Wl,--dynamic-list=/home/johannes/repos/goa/share/goa/ld/genode_dyn.dl -T /home/johannes/repos/goa/share/goa/ld/genode_dyn.ld -l:libssl.lib.so -l:libcrypto.lib.so -l:zlib.lib.so -l:libssh.lib.so' 'LDLIBS_SHARED=-nostartfiles -nodefaultlibs -lgcc -L/home/johannes/repos/goa-projects/ports/curl/var/abi/x86_64 -Wl,-shared -Wl,--whole-archive -Wl,-l:ldso_so_support.lib.a -Wl,--no-whole-archive -T /home/johannes/repos/goa/share/goa/ld/genode_rel.ld -l:libc.lib.so -l:libm.lib.so -l:posix.lib.so -l:libssl.lib.so -l:libcrypto.lib.so -l:zlib.lib.so -l:libssh.lib.so' 'LIBS=-nostartfiles -nodefaultlibs -lgcc -L/home/johannes/repos/goa-projects/ports/curl/var/abi/x86_64 -l:libc.lib.so -l:libm.lib.so -l:posix.lib.so -Wl,--dynamic-linker=ld.lib.so -Wl,--dynamic-list=/home/johannes/repos/goa/share/goa/ld/genode_dyn.dl -T /home/johannes/repos/goa/share/goa/ld/genode_dyn.ld -l:libssl.lib.so -l:libcrypto.lib.so -l:zlib.lib.so -l:libssh.lib.so' 'CXX=/usr/local/genode/tool/25.05/bin/genode-x86-g++' 'CC=/usr/local/genode/tool/25.05/bin/genode-x86-gcc' 'STRIP=/usr/local/genode/tool/25.05/bin/genode-x86-strip' 'RANLIB=/usr/local/genode/tool/25.05/bin/genode-x86-ranlib' 'AR=/usr/local/genode/tool/25.05/bin/genode-x86-ar' 'AS=/usr/local/genode/tool/25.05/bin/genode-x86-as' 'PKG_CONFIG_LIBDIR=' 'PKG_CONFIG_PATH=/home/johannes/repos/genode/depot/genodelabs/api/libc/2025-10-12:/home/johannes/repos/genode/depot/genodelabs/api/posix/2020-05-17:/home/johannes/repos/genode/depot/jschlatow/api/openssl/2025-02-21:/home/johannes/repos/genode/depot/genodelabs/api/zlib/2025-02-26:/home/johannes/repos/genode/depot/genodelabs/api/libssh/2021-10-13:/home/johannes/repos/genode/depot/genodelabs/api/so/2020-05-17' 'CPP=/usr/local/genode/tool/25.05/bin/genode-x86-cpp' 'CXXCPP=/usr/local/genode/tool/25.05/bin/genode-x86-cpp' '--with-openssl' '--with-ca-path=/etc/ssl/certs' '--with-ca-bundle=/etc/ssl/certs/ca-certificates.crt' '--without-libpsl' '--host=x86_64-pc-genode' '--with-libssh' '--with-zlib' 'host_alias=x86_64-pc-genode'"
    ;;

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

exit 0
