summaryrefslogtreecommitdiff
path: root/source4/lib/charset/SConscript
diff options
context:
space:
mode:
Diffstat (limited to 'source4/lib/charset/SConscript')
-rw-r--r--source4/lib/charset/SConscript69
1 files changed, 22 insertions, 47 deletions
diff --git a/source4/lib/charset/SConscript b/source4/lib/charset/SConscript
index b3305579e1..5ef640d2dc 100644
--- a/source4/lib/charset/SConscript
+++ b/source4/lib/charset/SConscript
@@ -6,62 +6,39 @@ Import('hostenv')
def _CheckIconvPath(context,path):
# Some systems have iconv in libc, some have it in libiconv (OSF/1 and
# those with the standalone portable libiconv installed).
- context.Message("checking for iconv in " + path + " ... ")
+ if path:
+ context.Message("checking for iconv in " + path + " ... ")
+ context.env.Append(LIBPATH=path)
+ else:
+ context.Message("checking for iconv in default path ... ")
+
+ for l in [None,'giconv','iconv']:
+ for h in ['giconv.h','iconv.h']:
+ if l:
+ context.env['LIBS'] = [l]
+ if context.TryLink("""
+#include <stdlib.h>
+#include <%s>
- main = """
int main()
{
iconv_t cd = iconv_open("","");
iconv(cd,NULL,NULL,NULL,NULL);
iconv_close(cd);
return 0;
-}"""
-
- have_giconv_iconv = context.TryLink("""
-#include <stdlib.h>
-#include <giconv.h>
-""" + main, '.c')
- if have_giconv_iconv:
- context.Result(1)
- return ("giconv.h", "")
-
- have_iconv_iconv = context.TryLink("""
-#include <stdlib.h>
-#include <iconv.h>
-""" + main, '.c')
-
- if have_iconv_iconv:
- context.Result(1)
- return ("iconv.h", "")
-
- #FIXME: Add -lgiconv
- have_giconv_lib_iconv = context.TryLink("""
-#include <stdlib.h>
-#include <giconv.h>
-""" + main, '.c')
- if have_giconv_lib_iconv:
- context.Result(1)
- return ("giconv.h", "-lgiconv")
-
- #FIXME: Add -liconv
- have_iconv_lib_iconv = context.TryLink("""
-#include <stdlib.h>
-#include <iconv.h>
-"""+main,'.c')
-
- if have_iconv_lib_iconv:
- context.Result(1)
- return ("iconv.h", "-liconv")
-
- return None
+}""" % h, '.c'):
+ context.Result(1)
+ return True
+
+ context.Result(0)
+ return False
def CheckIconv(context):
- context.Message("checking for iconv ... ")
-
- look_dirs = ['/usr','/usr/local','/sw']
+ look_dirs = [None, '/usr','/usr/local','/sw']
for p in look_dirs:
- _CheckIconvPath(context,p) #FIXME: Handle return value
+ if _CheckIconvPath(context,p):
+ break
if context.TryRun("""
#include <iconv.h>
@@ -71,10 +48,8 @@ main() {
return 0;
}
""", '.c'):
- context.Result(1)
return (1,[])
- context.Result(0)
return (0,[])
if hostenv['configure']: