2013-12-03 21:29:02 +01:00
|
|
|
# -*- python -*-
|
2013-12-05 08:41:28 +01:00
|
|
|
import os.path
|
|
|
|
|
Import("env libhammer_shared testruns targets")
|
2013-12-03 21:29:02 +01:00
|
|
|
|
|
|
|
|
perlenv = env.Clone()
|
|
|
|
|
|
2013-12-05 08:41:28 +01:00
|
|
|
perlenv.Append(CCFLAGS=["-fpic", '-DSWIG', '-Wno-all',
|
|
|
|
|
'-Wno-extra', '-Wno-error',
|
|
|
|
|
'-DHAMMER_INTERNAL__NO_STDARG_H'],
|
2013-12-03 21:29:02 +01:00
|
|
|
CPPPATH=["../.."],
|
|
|
|
|
LIBS=['hammer'],
|
|
|
|
|
LIBPATH=["../.."],
|
2013-12-05 08:41:28 +01:00
|
|
|
SWIGFLAGS=["-DHAMMER_INTERNAL__NO_STDARG_H",
|
|
|
|
|
"-Isrc/", "-perl"])
|
2013-12-05 09:35:09 +01:00
|
|
|
import os
|
|
|
|
|
if 'PERL_MM_OPT' in os.environ:
|
|
|
|
|
perlenv['ENV']['PERL_MM_OPT'] = os.environ['PERL_MM_OPT']
|
|
|
|
|
if 'PERL5LIB' in os.environ:
|
|
|
|
|
perlenv['ENV']['PERL5LIB'] = os.environ['PERL5LIB']
|
2013-12-03 21:29:02 +01:00
|
|
|
|
|
|
|
|
swig = ['hammer.i']
|
|
|
|
|
|
2013-12-05 09:45:26 +01:00
|
|
|
hammer_wrap = perlenv.Command(['hammer_wrap.c', 'hammer.pm'], swig, "swig $SWIGFLAGS $SOURCE")
|
|
|
|
|
makefile = perlenv.Command(['Makefile'], ['Makefile.PL'], "perl $SOURCE")
|
|
|
|
|
|
|
|
|
|
targetdir = os.path.dirname(str(hammer_wrap[0].path))
|
|
|
|
|
|
|
|
|
|
libhammer_perl = perlenv.Command(['hammer.so'], makefile + hammer_wrap, "make -C " + targetdir)
|
2013-12-03 21:29:02 +01:00
|
|
|
|
2013-12-05 08:41:28 +01:00
|
|
|
Default(libhammer_perl)
|
|
|
|
|
|
|
|
|
|
perltestenv = perlenv.Clone()
|
|
|
|
|
perltestenv['ENV']['LD_LIBRARY_PATH'] = os.path.dirname(str(libhammer_shared[0]))
|
|
|
|
|
perltests = ['t/hammer.t']
|
2013-12-05 09:45:26 +01:00
|
|
|
perltestexec = perltestenv.Command(None, perltests + libhammer_perl + libhammer_shared, "make test -C " + targetdir)
|
2013-12-05 08:41:28 +01:00
|
|
|
perltest = Alias("testperl", [perltestexec], perltestexec)
|
|
|
|
|
AlwaysBuild(perltestexec)
|
|
|
|
|
testruns.append(perltest)
|
2013-12-05 09:47:45 +01:00
|
|
|
|
|
|
|
|
perlinstallexec = perlenv.Command(None, libhammer_perl, "make install -C " + targetdir)
|
|
|
|
|
perlinstall = Alias("installperl", [perlinstallexec], perlinstallexec)
|
|
|
|
|
targets.append(perlinstall)
|