#! /bin/sh # Env: # GNUTLS_CFLAGS # GNUTLS_LIBS # PKG_CONFIG # GNUTLS_SYSTEM_TRUST_FILE have_gnutls=0 if [ -z "$PKG_CONFIG" ]; then PKG_CONFIG="pkg-config" fi if [ -z "$GNUTLS_LIBS" ]; then GNUTLS_CFLAGS1=`$PKG_CONFIG --cflags gnutls` GNUTLS_CFLAGS2=`$PKG_CONFIG --cflags nettle` GNUTLS_LIBS1=`$PKG_CONFIG --libs gnutls` GNUTLS_LIBS2=`$PKG_CONFIG --libs nettle` if [ -z "$GNUTLS_LIBS2" ]; then GNUTLS_LIBS2="-lnettle"; fi GNUTLS_CFLAGS="$GNUTLS_CFLAGS1 $GNUTLS_CFLAGS2" GNUTLS_LIBS="$GNUTLS_LIBS1 $GNUTLS_LIBS2" fi stdlib=`ocamlc -where` rm -f config.h config.sh config.mk ulimit -c 0 # no coredumps compiler="ocamlc -custom" if ocamlopt; then compiler=ocamlopt; fi log="config.log" rm -f $log touch $log out="config.h" rm -f $out touch $out mkdir -p testdir ###################################################################### # Programs linked with ocamlc have more libraries linked in by default. # Because of this, we use ocamlopt if available. call_ocamlc () { echo '$' $compiler -ccopt "$GNUTLS_CFLAGS" -cclib "$GNUTLS_LIBS" "$@" >>$log ( cd testdir; $compiler -ccopt "$GNUTLS_CFLAGS" -cclib "$GNUTLS_LIBS" "$@" ) >>$log 2>&1 return $? } check_fun() { macro="$1" fun="$2" } ###################################################################### printf "Checking for GnuTLS... " fun=gnutls_global_init echo "# FUN $fun" >> $log cat <<EOF >testdir/main.ml external test : unit -> unit = "do_test" let () = () EOF cat <<EOF >testdir/test.c #include <gnutls/gnutls.h> #include <gnutls/openpgp.h> #include <gnutls/x509.h> #include "caml/mlvalues.h" value do_test(value dummy) { (void) & $fun; return 0; } EOF if call_ocamlc -o test test.c main.ml; then echo "found" have_gnutls=1 else echo "not found" have_gnutls=0 exit 1 fi if [ $have_gnutls -gt 0 ]; then # The vars in config.sh are picked up by reconfigure echo "PKG_CONFIG='$PKG_CONFIG'" >>config.sh echo "GNUTLS_CFLAGS='$GNUTLS_CFLAGS'" >>config.sh echo "GNUTLS_LIBS='$GNUTLS_LIBS'" >>config.sh echo "GNUTLS_SYSTEM_TRUST_FILE='$GNUTLS_SYSTEM_TRUST_FILE'" >>config.sh # The vars in config.mk are appended to Makefile.conf echo "# GnuTLS" >>config.mk echo "NETTLS_GNUTLS_CFLAGS = $GNUTLS_CFLAGS" >>config.mk echo "NETTLS_GNUTLS_LINK_OPTIONS = $GNUTLS_LIBS" >>config.mk ./reconfigure fi