summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKai Blin <kai@samba.org>2009-12-04 09:47:25 +0100
committerKarolin Seeger <kseeger@samba.org>2010-01-13 14:01:04 +0100
commita7b85574f8558f8da438afc0a6f6a369deddb97a (patch)
tree846494e4041884206bda94b1bc17be1fcd3d10ca
parent00b4f8eb86ede7728fc6f1c20d89de08f6b98f0c (diff)
downloadsamba-a7b85574f8558f8da438afc0a6f6a369deddb97a.tar.gz
samba-a7b85574f8558f8da438afc0a6f6a369deddb97a.tar.xz
samba-a7b85574f8558f8da438afc0a6f6a369deddb97a.zip
s3 aclocal.m4: Fix iconv checks, clean up m4 code
The check for iconv requiring giconv.h and libgiconv as well as the check for iconv requiring biconv.h and libbiconv were using the wrong variable to check for previous successful test results. This caused the checks to always fall back to libbiconv on systems where that library was available. In the course of fixing this, I had to clean up the indentation in that piece of code, and I also rewrote/added some comments. Many thanks to Tsurutani Naoki <turutani@scphys.kyoto-u.ac.jp> for the initial patch and diagnosis. (cherry picked from commit f5aff324cb9d965bbc75634596c3c40ffc588183) Fix bug #4832 (iconv library is not used). (cherry picked from commit a706038680ffcc3124b5e476810bffb1f7578c06)
-rw-r--r--source/m4/aclocal.m457
1 files changed, 30 insertions, 27 deletions
diff --git a/source/m4/aclocal.m4 b/source/m4/aclocal.m4
index 9a4213d9767..52498a0a19e 100644
--- a/source/m4/aclocal.m4
+++ b/source/m4/aclocal.m4
@@ -420,45 +420,47 @@ AC_DEFUN(jm_ICONV,
jm_cv_giconv=no
jm_save_LIBS="$LIBS"
- dnl Check for include in funny place but no lib needed
- if test "$jm_cv_func_iconv" != yes; then
- AC_TRY_LINK([#include <stdlib.h>
+ dnl Check for include in giconv.h but no lib needed
+ if test "$jm_cv_func_iconv" != yes; then
+ AC_TRY_LINK([#include <stdlib.h>
#include <giconv.h>],
+ [iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);],
+ jm_cv_func_iconv=yes
+ jm_cv_include="giconv.h"
+ jm_cv_giconv="yes"
+ jm_cv_lib_iconv="")
+
+ dnl Standard iconv.h include, lib in glibc or libc ...
+ if test "$jm_cv_func_iconv" != yes; then
+ AC_TRY_LINK([#include <stdlib.h>
+#include <iconv.h>],
[iconv_t cd = iconv_open("","");
iconv(cd,NULL,NULL,NULL,NULL);
iconv_close(cd);],
+ jm_cv_include="iconv.h"
jm_cv_func_iconv=yes
- jm_cv_include="giconv.h"
- jm_cv_giconv="yes"
jm_cv_lib_iconv="")
- dnl Standard iconv.h include, lib in glibc or libc ...
+ dnl Include in giconv.h, libgiconv needed to link
if test "$jm_cv_func_iconv" != yes; then
+ jm_save_LIBS="$LIBS"
+ LIBS="$LIBS -lgiconv"
AC_TRY_LINK([#include <stdlib.h>
-#include <iconv.h>],
+#include <giconv.h>],
[iconv_t cd = iconv_open("","");
iconv(cd,NULL,NULL,NULL,NULL);
iconv_close(cd);],
- jm_cv_include="iconv.h"
- jm_cv_func_iconv=yes
- jm_cv_lib_iconv="")
-
- if test "$jm_cv_lib_iconv" != yes; then
- jm_save_LIBS="$LIBS"
- LIBS="$LIBS -lgiconv"
- AC_TRY_LINK([#include <stdlib.h>
-#include <giconv.h>],
- [iconv_t cd = iconv_open("","");
- iconv(cd,NULL,NULL,NULL,NULL);
- iconv_close(cd);],
- jm_cv_lib_iconv=yes
- jm_cv_func_iconv=yes
- jm_cv_include="giconv.h"
- jm_cv_giconv=yes
- jm_cv_lib_iconv="giconv")
+ jm_cv_lib_iconv=yes
+ jm_cv_func_iconv=yes
+ jm_cv_include="giconv.h"
+ jm_cv_giconv=yes
+ jm_cv_lib_iconv="giconv")
- LIBS="$jm_save_LIBS"
+ LIBS="$jm_save_LIBS"
+ dnl Include in iconv.h, libiconv needed to link
if test "$jm_cv_func_iconv" != yes; then
jm_save_LIBS="$LIBS"
LIBS="$LIBS -liconv"
@@ -472,7 +474,8 @@ AC_DEFUN(jm_ICONV,
jm_cv_lib_iconv="iconv")
LIBS="$jm_save_LIBS"
- if test "$jm_cv_lib_iconv" != yes; then
+ dnl Include in biconv.h, libbiconv needed to link
+ if test "$jm_cv_func_iconv" != yes; then
jm_save_LIBS="$LIBS"
LIBS="$LIBS -lbiconv"
AC_TRY_LINK([#include <stdlib.h>
@@ -487,7 +490,7 @@ AC_DEFUN(jm_ICONV,
jm_cv_lib_iconv="biconv")
LIBS="$jm_save_LIBS"
- fi
+ fi
fi
fi
fi