From de1a6978fe3904e50deb832bca5b09474cfa5546 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Wed, 17 Jul 2002 02:54:01 +0000
Subject: [PATCH] Improve getopt_long search, per Peter:

	AC_SEARCH_LIBS(getopt_long, [getopt])
---
 configure    | 85 +++++++++++++++++++++++++++++++++++++++++-----------
 configure.in |  4 +--
 2 files changed, 69 insertions(+), 20 deletions(-)

diff --git a/configure b/configure
index 72cbe8fe1ed..a4f9e82873b 100755
--- a/configure
+++ b/configure
@@ -6045,19 +6045,70 @@ _ACEOF
 
 fi
 
-
-echo "$as_me:$LINENO: checking for main in -lgetopt" >&5
-echo $ECHO_N "checking for main in -lgetopt... $ECHO_C" >&6
-if test "${ac_cv_lib_getopt_main+set}" = set; then
+echo "$as_me:$LINENO: checking for library containing getopt_long" >&5
+echo $ECHO_N "checking for library containing getopt_long... $ECHO_C" >&6
+if test "${ac_cv_search_getopt_long+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lgetopt  $LIBS"
+  ac_func_search_save_LIBS=$LIBS
+ac_cv_search_getopt_long=no
 cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
 #include "confdefs.h"
 
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char getopt_long ();
+#ifdef F77_DUMMY_MAIN
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
+getopt_long ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_search_getopt_long="none required"
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+if test "$ac_cv_search_getopt_long" = no; then
+  for ac_lib in getopt; do
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+    cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
 
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char getopt_long ();
 #ifdef F77_DUMMY_MAIN
 #  ifdef __cplusplus
      extern "C"
@@ -6067,7 +6118,7 @@ cat >conftest.$ac_ext <<_ACEOF
 int
 main ()
 {
-main ();
+getopt_long ();
   ;
   return 0;
 }
@@ -6084,23 +6135,21 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  ac_cv_lib_getopt_main=yes
+  ac_cv_search_getopt_long="-l$ac_lib"
+break
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
-ac_cv_lib_getopt_main=no
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+  done
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_getopt_main" >&5
-echo "${ECHO_T}$ac_cv_lib_getopt_main" >&6
-if test $ac_cv_lib_getopt_main = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBGETOPT 1
-_ACEOF
-
-  LIBS="-lgetopt $LIBS"
+LIBS=$ac_func_search_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_search_getopt_long" >&5
+echo "${ECHO_T}$ac_cv_search_getopt_long" >&6
+if test "$ac_cv_search_getopt_long" != no; then
+  test "$ac_cv_search_getopt_long" = "none required" || LIBS="$ac_cv_search_getopt_long $LIBS"
 
 fi
 
diff --git a/configure.in b/configure.in
index 15ca37c5de1..de89385cef1 100644
--- a/configure.in
+++ b/configure.in
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-dnl $Header: /cvsroot/pgsql/configure.in,v 1.190 2002/07/16 05:46:35 momjian Exp $
+dnl $Header: /cvsroot/pgsql/configure.in,v 1.191 2002/07/17 02:54:01 momjian Exp $
 dnl
 dnl Developers, please strive to achieve this order:
 dnl
@@ -696,7 +696,7 @@ AC_CHECK_LIB(BSD,      main)
 AC_CHECK_LIB(gen,      main)
 AC_CHECK_LIB(PW,       main)
 AC_CHECK_LIB(resolv,   main)
-AC_CHECK_LIB(getopt,   main)
+AC_SEARCH_LIBS(getopt_long, [getopt])
 # QNX:
 AC_CHECK_LIB([[unix]], main)
 AC_SEARCH_LIBS(crypt,  crypt)
-- 
GitLab