update.
[chise/xemacs-chise.git.1] / configure.in
index c1446af..a2cd2fb 100644 (file)
@@ -1899,9 +1899,9 @@ dnl We only cope with headers in mingw, not mingw32: no previous version of
 dnl XEmacs supported mingw and cygnus have made this incompatible change
 dnl so we just go with the flow.
 case "$opsys" in mingw* | cygwin*)
-  cygwin_include=`eval "gcc -print-file-name=libc.a"` ;
-  cygwin_include=`eval "dirname $cygwin_include"` ;
-  cygwin_include="-I$cygwin_include/../include" ;
+  cygwin_include=`eval gcc -print-search-dirs | sed -ne s'/install: //p'`
+  cygwin_include=`eval "cd $cygwin_include/../../../..; pwd"`
+  cygwin_include="-I$cygwin_include/include" ;
   extra_includes="$cygwin_include/mingw $cygwin_include" ;
   case "$opsys" in mingw*)
     XE_APPEND($extra_includes, c_switch_system) ;;
@@ -2747,7 +2747,7 @@ if test "$with_x11" != "no"; then
 
   if test "$x_libraries" = "NONE"; then
     for dir in "/usr/X11/lib" "/usr/X11R6/lib" "/usr/lib/X11R6"; do
-      if test -r "$dir/libX11.a"; then x_libraries="$dir"; break; fi
+      if test -r "$dir/libX11.a" -o -r "$dir/libX11.dylib"; then x_libraries="$dir"; break; fi
     done
   fi
 
@@ -3219,6 +3219,7 @@ if test no != "$with_ldap";then
        echo "Setting ldap_libs to $ldap_libs"],dnl
       [AC_CHECK_LIB(ldap, ldap_open,dnl
        [with_ldap=yes],dnl
+dnl If logic of setting these vars change, change it the same way below.
        [ldap_needs_lber=yes ldap_other_libs=-llber
 dnl This requires `AC_CACHE_VAL' (which is called by `AC_CHECK_LIB')
 dnl to be redefined to ignore cached (shell variable) value, as it is
@@ -3240,6 +3241,55 @@ dnl variable name depends on the macro OTHER-LIBRARIES argument.
              $ldap_other_libs)],dnl
            $ldap_other_libs)],dnl
          $ldap_other_libs)])
+      if test yes = "$with_ldap" -a yes != "$ldap_needs_lber";then
+dnl Need this check since `LDAP_OPT_ON' is (currently) used only with
+dnl `ldap_set_option', and the latter may not exist at all, for which
+dnl is testing later.  So `LDAP_OPT_ON' is not necessarily defined.
+       AC_CACHE_CHECK([for LDAP_OPT_ON definition],xe_cv_have_LDAP_OPT_ON,
+         [AC_TRY_COMPILE(
+[#include <lber.h>
+#include <ldap.h>
+#ifdef LDAP_OPT_ON
+/* Relying on const defined by ac_c_const (upper case). */
+const void *const v = LDAP_OPT_ON;
+#else /* !defined (LDAP_OPT_ON) */
+choke me
+#endif /* !defined (LDAP_OPT_ON) */],[],
+           [xe_cv_have_LDAP_OPT_ON=yes],
+           [xe_cv_have_LDAP_OPT_ON=no])])
+       if test yes = "$xe_cv_have_LDAP_OPT_ON";then
+         AC_CACHE_CHECK([LDAP_OPT_ON linking],
+           xe_cv_LDAP_OPT_ON_links,
+           [xe_save_LIBS="$LIBS"
+           LIBS="-lldap $LIBS"
+AC_TRY_LINK(
+[#include <lber.h>
+#include <ldap.h>
+const void *const v = LDAP_OPT_ON;],[],
+             xe_cv_LDAP_OPT_ON_links=yes,
+             xe_cv_LDAP_OPT_ON_links=no)
+           LIBS="$xe_save_LIBS"])
+dnl In some openldap installations other `ldap_*' functions link with
+dnl `-lldap' alone, but `LDAP_OPT_ON' requires `-llber'.
+         if test yes != "$xe_cv_LDAP_OPT_ON_links";then
+           ldap_needs_lber=yes ldap_other_libs=-llber
+           AC_CACHE_CHECK([LDAP_OPT_ON linking with -llber],
+             xe_cv_LDAP_OPT_ON_links_w_lber,
+             [xe_save_LIBS="$LIBS"
+             LIBS="-lldap $ldap_other_libs $LIBS"
+AC_TRY_LINK(
+[#include <lber.h>
+#include <ldap.h>
+const void *const v = LDAP_OPT_ON;],[],
+             xe_cv_LDAP_OPT_ON_links_w_lber=yes,
+             xe_cv_LDAP_OPT_ON_links_w_lber=no)
+             LIBS="$xe_save_LIBS"])
+           if test yes != "$xe_cv_LDAP_OPT_ON_links_w_lber";then
+             with_ldap=no
+           fi
+         fi
+       fi
+      fi
       if test yes = "$with_ldap";then
        if test yes = "$ldap_needs_des";then
          XE_PREPEND(-ldes, ldap_libs)
@@ -3313,17 +3363,18 @@ if test "$window_system" != "none"; then
   dnl   -- should only happen if CYGWIN && WITH_XPM && WITH_MSW && !WITH_X
   libpath_xpm=
   incpath_xpm=
+  libname_xpm="-lXpm"
   case "$opsys" in 
     cygwin*)
-      cygwin_top=`eval "gcc -print-file-name=libc.a"` ;
-      cygwin_top=`eval "dirname ${cygwin_top}"`;
-      cygwin_top="${cygwin_top}/..";
+      cygwin_top=`eval gcc -print-search-dirs | sed -ne s'/install: //p'`
+      cygwin_top=`eval "cd $cygwin_top/../../../..; pwd"`
       case "$window_system" in
         dnl use "standard" search pattern
         x11)  ;;
         dnl hardcode "standard" non-X11 xpm lib/inc dirs
         msw) libpath_xpm="-L${cygwin_top}/lib/noX"
              incpath_xpm="-I${cygwin_top}/include/noX"
+             libname_xpm="-lXpm-noX"
               ;;
         dnl not supported on cygwin (yet?)
         gtk)  ;;
@@ -3342,7 +3393,7 @@ if test "$window_system" != "none"; then
     XE_PREPEND("$incpath_xpm", CFLAGS)
     XE_PREPEND("$libpath_xpm", LDFLAGS)
     AC_MSG_CHECKING(for Xpm - no older than 3.4f)
-    xe_check_libs=-lXpm
+    xe_check_libs="$libname_xpm"
     AC_TRY_RUN([#define XPM_NUMBERS
 #include <X11/xpm.h>
     int main(int c, char **v) {
@@ -3377,10 +3428,10 @@ if test "$window_system" != "none"; then
     dnl #### but doesn't actually verify this assumption.
     AC_DEFINE(HAVE_XPM)
     XE_PREPEND("$libpath_xpm", LDFLAGS)
-    XE_PREPEND(-lXpm, libs_x)
+    XE_PREPEND("$libname_xpm", libs_x)
     XE_PREPEND("$incpath_xpm", CFLAGS)
     AC_MSG_CHECKING(for \"FOR_MSW\" xpm)
-    xe_check_libs=-lXpm
+    xe_check_libs="$libname_xpm"
     AC_TRY_LINK(, [XpmCreatePixmapFromData()],
     [xpm_for_msw=no],
     [xpm_for_msw=yes])