1 from waflib
import Utils
2 from waflib
.Configure
import conf
3 from samba_utils
import get_string
7 def SAMBA_CHECK_PERL(conf
, mandatory
=True, version
=(5,0,0)):
11 conf
.find_program('perl', var
='PERL', mandatory
=mandatory
)
13 path_perl
= conf
.find_program('perl')
14 conf
.env
.PERL_SPECIFIED
= (conf
.env
.PERL
!= path_perl
)
15 conf
.check_perl_version(version
)
17 def read_perl_config_var(cmd
):
18 output
= Utils
.cmd_output([conf
.env
.get_flat('PERL'), '-MConfig', '-e', cmd
])
19 if not isinstance(output
, str):
20 output
= get_string(output
)
21 return Utils
.to_list(output
)
23 def check_perl_config_var(var
):
24 conf
.start_msg("Checking for perl $Config{%s}:" % var
)
26 v
= read_perl_config_var('print $Config{%s}' % var
)[0]
27 conf
.end_msg("'%s'" % (v
), 'GREEN')
30 conf
.end_msg(False, 'YELLOW')
33 vendor_prefix
= check_perl_config_var('vendorprefix')
35 perl_arch_install_dir
= None
36 if vendor_prefix
== conf
.env
.PREFIX
:
37 perl_arch_install_dir
= check_perl_config_var('vendorarch');
38 if perl_arch_install_dir
is None:
39 perl_arch_install_dir
= "${LIBDIR}/perl5";
40 conf
.start_msg("PERL_ARCH_INSTALL_DIR: ")
41 conf
.end_msg("'%s'" % (perl_arch_install_dir
), 'GREEN')
42 conf
.env
.PERL_ARCH_INSTALL_DIR
= perl_arch_install_dir
44 perl_lib_install_dir
= None
45 if vendor_prefix
== conf
.env
.PREFIX
:
46 perl_lib_install_dir
= check_perl_config_var('vendorlib');
47 if perl_lib_install_dir
is None:
48 perl_lib_install_dir
= "${DATADIR}/perl5";
49 conf
.start_msg("PERL_LIB_INSTALL_DIR: ")
50 conf
.end_msg("'%s'" % (perl_lib_install_dir
), 'GREEN')
51 conf
.env
.PERL_LIB_INSTALL_DIR
= perl_lib_install_dir
53 perl_inc
= read_perl_config_var('print "@INC"')
56 conf
.start_msg("PERL_INC: ")
57 conf
.end_msg("%s" % (perl_inc
), 'GREEN')
58 conf
.env
.PERL_INC
= perl_inc