r10509: Some more sconscript fixes. Now getting to link stage for smbclient
[bbaumbach/samba-autobuild/.git] / source4 / lib / charset / SConscript
1 #!/usr/bin/env python
2 # tastes like -*- python -*-
3
4 Import('hostenv')
5
6 def _CheckIconvPath(context,path):
7         # Some systems have iconv in libc, some have it in libiconv (OSF/1 and
8         # those with the standalone portable libiconv installed).
9         if path: 
10                 context.Message("checking for iconv in " + path + " ... ")
11                 context.env.Append(LIBPATH=path)
12         else:
13                 context.Message("checking for iconv in default path ... ")
14
15         for l in [None,'giconv','iconv']:
16                 for h in ['giconv.h','iconv.h']:
17                         if l: 
18                                 context.env['LIBS'] = [l]
19                         if context.TryLink("""
20 #include <stdlib.h>
21 #include <%s>
22
23 int main()
24 {
25         iconv_t cd = iconv_open("","");
26     iconv(cd,NULL,NULL,NULL,NULL);
27     iconv_close(cd);
28         return 0;
29 }""" % h, '.c'):
30                                 context.Result(1)
31                                 return True
32                         
33         context.Result(0)
34         return False
35
36 def CheckIconv(context):
37         look_dirs = [None, '/usr','/usr/local','/sw']
38
39         for p in look_dirs:
40                 if _CheckIconvPath(context,p):
41                         break
42
43         if context.TryRun("""
44 #include <iconv.h>
45 main() {
46        iconv_t cd = iconv_open("ASCII", "UCS-2LE");
47        if (cd == 0 || cd == (iconv_t)-1) return -1;
48        return 0;
49 }
50 """, '.c'):
51                 return (1,[])
52         
53         return (0,[])
54
55 if hostenv['configure']:
56         conf = hostenv.Configure( custom_tests = { 'CheckIconv' : CheckIconv })
57         (have_iconv,iconv) = conf.CheckIconv()
58         conf.Finish()
59
60         if not have_iconv:
61                 print "Install iconv for better charset compatibility"
62 else:
63         iconv = [] # FIXME
64
65 charset = hostenv.StaticLibrary('charset',['iconv.c','charcnv.c',iconv])
66 Export('charset')