Ejemplo n.º 1
0
	if not conf.env.PYTHON:
		conf.env.PYTHON=sys.executable
	python=conf.find_program('python',var='PYTHON')
	if not python:
		conf.fatal('Could not find the path of the python executable')
	v=conf.env
	v['PYCMD']='"import sys, py_compile;py_compile.compile(sys.argv[1], sys.argv[2])"'
	v['PYFLAGS']=''
	v['PYFLAGS_OPT']='-O'
	v['PYC']=getattr(Options.options,'pyc',1)
	v['PYO']=getattr(Options.options,'pyo',1)
def set_options(opt):
	opt.add_option('--nopyc',action='store_false',default=1,help='Do not install bytecode compiled .pyc files (configuration) [Default:install]',dest='pyc')
	opt.add_option('--nopyo',action='store_false',default=1,help='Do not install optimised compiled .pyo files (configuration) [Default:install]',dest='pyo')

before('apply_incpaths','apply_lib_vars','apply_type_vars')(init_pyext)
feature('pyext')(init_pyext)
before('apply_bundle')(init_pyext)
before('apply_link','apply_lib_vars','apply_type_vars')(pyext_shlib_ext)
after('apply_bundle')(pyext_shlib_ext)
feature('pyext')(pyext_shlib_ext)
before('apply_incpaths','apply_lib_vars','apply_type_vars')(init_pyembed)
feature('pyembed')(init_pyembed)
extension(EXT_PY)(process_py)
before('apply_core')(init_py)
after('vars_target_cprogram','vars_target_cshlib')(init_py)
feature('py')(init_py)
conf(check_python_headers)
conf(check_python_version)
conf(check_python_module)
Ejemplo n.º 2
0
                else:
                    lst.append(carry + a)
                    carry = ''
            k = [lst]
        env = dict(os.environ)
        env.update(PATH=';'.join(self.env['PATH']))
        kw['env'] = env
    return self.generator.bld.exec_command(*k, **kw)


for k in 'cc cxx winrc cc_link cxx_link static_link qxx'.split():
    cls = Task.TaskBase.classes.get(k, None)
    if cls:
        cls.exec_command = exec_command_msvc

conf(get_msvc_version)
conf(gather_wsdk_versions)
conf(gather_msvc_versions)
conf(gather_icl_versions)
conf(get_msvc_versions)
conf(print_all_msvc_detected)
conf(find_lt_names_msvc)
conf(libname_msvc)
conf(check_lib_msvc)
conf(check_libs_msvc)
conftest(no_autodetect)
conftest(autodetect)
conftest(find_msvc)
conftest(msvc_common_flags)
after('apply_link')(apply_flags_msvc)
feature('cc', 'cxx')(apply_flags_msvc)
Ejemplo n.º 3
0
Archivo: perl.py Proyecto: NKSG/ns3
def check_perl_module(conf,module):
	cmd=[conf.env['PERL'],'-e','use %s'%module]
	r=Utils.pproc.call(cmd,stdout=Utils.pproc.PIPE,stderr=Utils.pproc.PIPE)==0
	conf.check_message("perl module %s"%module,"",r)
	return r
def check_perl_ext_devel(conf):
	if not conf.env.PERL:
		conf.fatal('perl detection is required first')
	def read_out(cmd):
		return Utils.to_list(Utils.cmd_output([conf.env.PERL,'-MConfig','-e',cmd]))
	conf.env.LINKFLAGS_PERLEXT=read_out('print $Config{lddlflags}')
	conf.env.CPPPATH_PERLEXT=read_out('print "$Config{archlib}/CORE"')
	conf.env.CCFLAGS_PERLEXT=read_out('print "$Config{ccflags} $Config{cccdlflags}"')
	conf.env.XSUBPP=read_out('print "$Config{privlib}/ExtUtils/xsubpp$Config{exe_ext}"')
	conf.env.EXTUTILS_TYPEMAP=read_out('print "$Config{privlib}/ExtUtils/typemap"')
	conf.env.perlext_PATTERN='%s.'+read_out('print $Config{dlext}')[0]
	if getattr(Options.options,'perlarchdir',None):
		conf.env.ARCHDIR_PERL=Options.options.perlarchdir
	else:
		conf.env.ARCHDIR_PERL=read_out('print $Config{sitearch}')[0]
def set_options(opt):
	opt.add_option("--with-perl-binary",type="string",dest="perlbinary",help='Specify alternate perl binary',default=None)
	opt.add_option("--with-perl-archdir",type="string",dest="perlarchdir",help='Specify directory where to install arch specific files',default=None)

before('apply_incpaths','apply_type_vars','apply_lib_vars')(init_perlext)
feature('perlext')(init_perlext)
extension(EXT_XS)(xsubpp_file)
conf(check_perl_version)
conf(check_perl_module)
conf(check_perl_ext_devel)
Ejemplo n.º 4
0
	v['CPP']=cpp
def cc_add_flags(conf):
	conf.add_os_flags('CFLAGS','CCFLAGS')
	conf.add_os_flags('CPPFLAGS')
def cxx_add_flags(conf):
	conf.add_os_flags('CXXFLAGS')
	conf.add_os_flags('CPPFLAGS')
def link_add_flags(conf):
	conf.add_os_flags('LINKFLAGS')
	conf.add_os_flags('LDFLAGS','LINKFLAGS')
def cc_load_tools(conf):
	conf.check_tool('cc')
def cxx_load_tools(conf):
	conf.check_tool('cxx')

conf(ret_msg)
conf(validate_cfg)
conf(cmd_and_log)
conf(exec_cfg)
conf(check_cfg)
conf(validate_c)
conf(post_check)
conf(check)
conf(run_c_code)
conf(check_cxx)
conf(check_cc)
conf(define)
conf(undefine)
conf(define_cond)
conf(is_defined)
conf(get_define)
				if len(a)==3 and a.startswith('/F')or a=='/doc'or a[-1]==':':
					carry=a
				else:
					lst.append(carry+a)
					carry=''
			k=[lst]
		env=dict(os.environ)
		env.update(PATH=';'.join(self.env['PATH']))
		kw['env']=env
	return self.generator.bld.exec_command(*k,**kw)
for k in'cc cxx winrc cc_link cxx_link static_link'.split():
	cls=Task.TaskBase.classes.get(k,None)
	if cls:
		cls.exec_command=exec_command_msvc

conf(get_msvc_version)
conf(gather_wsdk_versions)
conf(gather_msvc_versions)
conf(gather_icl_versions)
conf(get_msvc_versions)
conf(print_all_msvc_detected)
conf(find_lt_names_msvc)
conf(libname_msvc)
conf(check_lib_msvc)
conf(check_libs_msvc)
conftest(no_autodetect)
conftest(autodetect)
conftest(find_msvc)
conftest(msvc_common_flags)
after('apply_link')(apply_flags_msvc)
feature('cc','cxx')(apply_flags_msvc)
Ejemplo n.º 6
0
			if Logs.verbose>1:
				raise
			else:
				self.fatal('the configuration failed (see %r)'%self.log.name)
	else:
		if'okmsg'in kw:
			self.check_message_2(kw.get('okmsg_includes',ret))
	for lib in kw['lib']:
		self.check_message_1('library boost_'+lib)
		try:
			self.find_boost_library(lib,kw)
		except Configure.ConfigurationError,e:
			ret=False
			if'errmsg'in kw:
				self.check_message_2(kw['errmsg'],'YELLOW')
			if'mandatory'in kw:
				if Logs.verbose>1:
					raise
				else:
					self.fatal('the configuration failed (see %r)'%self.log.name)
		else:
			if'okmsg'in kw:
				self.check_message_2(kw['okmsg'])
	return ret

conf(get_boost_version_number)
conf(validate_boost)
conf(find_boost_includes)
conf(find_boost_library)
conf(check_boost)
Ejemplo n.º 7
0
    if not conf.env.JAVA_HOME:
        conf.fatal('set JAVA_HOME in the system environment')
    javaHome = conf.env['JAVA_HOME'][0]
    b = Build.BuildContext()
    b.load_dirs(conf.srcdir, conf.blddir)
    dir = b.root.find_dir(conf.env.JAVA_HOME[0] + '/include')
    f = dir.ant_glob('**/(jni|jni_md).h', flat=False)
    incDirs = [x.parent.abspath() for x in f]
    dir = b.root.find_dir(conf.env.JAVA_HOME[0])
    f = dir.ant_glob('**/*jvm.(so|dll)', flat=False)
    libDirs = [x.parent.abspath() for x in f] or [javaHome]
    for i, d in enumerate(libDirs):
        if conf.check(header_name='jni.h',
                      define_name='HAVE_JNI_H',
                      lib='jvm',
                      libpath=d,
                      includes=incDirs,
                      uselib_store='JAVA',
                      uselib='JAVA'):
            break
    else:
        conf.fatal('could not find lib jvm in %r (see config.log)' % libDirs)


feature('jar')(jar_files)
before('apply_core')(jar_files)
feature('javac')(apply_java)
before('apply_core')(apply_java)
conf(check_java_class)
conf(check_jni_headers)
Ejemplo n.º 8
0
			if Logs.verbose>1:
				raise
			else:
				self.fatal('the configuration failed (see %r)'%self.log.name)
	else:
		if'okmsg'in kw:
			self.check_message_2(kw.get('okmsg_includes',ret))
	for lib in kw['lib']:
		self.check_message_1('library boost_'+lib)
		try:
			self.find_boost_library(lib,kw)
		except Configure.ConfigurationError as e:
			ret=False
			if'errmsg'in kw:
				self.check_message_2(kw['errmsg'],'YELLOW')
			if'mandatory'in kw:
				if Logs.verbose>1:
					raise
				else:
					self.fatal('the configuration failed (see %r)'%self.log.name)
		else:
			if'okmsg'in kw:
				self.check_message_2(kw['okmsg'])
	return ret

conf(get_boost_version_number)
conf(validate_boost)
conf(find_boost_includes)
conf(find_boost_library)
conf(check_boost)
	found=Utils.exec_command(cmd,shell=False,log=self.log)
	self.check_message('Java class %s'%classname,"",not found)
	shutil.rmtree(javatestdir,True)
	return found
def check_jni_headers(conf):
	if not conf.env.CC_NAME and not conf.env.CXX_NAME:
		conf.fatal('load a compiler first (gcc, g++, ..)')
	if not conf.env.JAVA_HOME:
		conf.fatal('set JAVA_HOME in the system environment')
	javaHome=conf.env['JAVA_HOME'][0]
	b=Build.BuildContext()
	b.load_dirs(conf.srcdir,conf.blddir)
	dir=b.root.find_dir(conf.env.JAVA_HOME[0]+'/include')
	f=dir.ant_glob('**/(jni|jni_md).h',flat=False)
	incDirs=[x.parent.abspath()for x in f]
	dir=b.root.find_dir(conf.env.JAVA_HOME[0])
	f=dir.ant_glob('**/*jvm.(so|dll)',flat=False)
	libDirs=[x.parent.abspath()for x in f]or[javaHome]
	for i,d in enumerate(libDirs):
		if conf.check(header_name='jni.h',define_name='HAVE_JNI_H',lib='jvm',libpath=d,includes=incDirs,uselib_store='JAVA',uselib='JAVA'):
			break
	else:
		conf.fatal('could not find lib jvm in %r (see config.log)'%libDirs)

feature('jar')(jar_files)
before('apply_core')(jar_files)
feature('javac')(apply_java)
before('apply_core')(apply_java)
conf(check_java_class)
conf(check_jni_headers)
Ejemplo n.º 10
0
        action='store_false',
        default=1,
        help=
        'Do not install bytecode compiled .pyc files (configuration) [Default:install]',
        dest='pyc')
    opt.add_option(
        '--nopyo',
        action='store_false',
        default=1,
        help=
        'Do not install optimised compiled .pyo files (configuration) [Default:install]',
        dest='pyo')


before('apply_incpaths', 'apply_lib_vars', 'apply_type_vars')(init_pyext)
feature('pyext')(init_pyext)
before('apply_bundle')(init_pyext)
before('apply_link', 'apply_lib_vars', 'apply_type_vars')(pyext_shlib_ext)
after('apply_bundle')(pyext_shlib_ext)
feature('pyext')(pyext_shlib_ext)
before('apply_incpaths', 'apply_lib_vars', 'apply_type_vars')(init_pyembed)
feature('pyembed')(init_pyembed)
extension(EXT_PY)(process_py)
feature('py')(byte_compile_py)
before('apply_core')(init_py)
after('vars_target_cprogram', 'vars_target_cstaticlib')(init_py)
feature('py')(init_py)
conf(check_python_headers)
conf(check_python_version)
conf(check_python_module)
Ejemplo n.º 11
0
    if Options.options.rubylibdir:
        conf.env.LIBDIR_RUBY = Options.options.rubylibdir
    else:
        conf.env.LIBDIR_RUBY = read_config('sitelibdir')[0]


def set_options(opt):
    opt.add_option(
        '--with-ruby-archdir',
        type='string',
        dest='rubyarchdir',
        help='Specify directory where to install arch specific files')
    opt.add_option('--with-ruby-libdir',
                   type='string',
                   dest='rubylibdir',
                   help='Specify alternate ruby library path')
    opt.add_option('--with-ruby-binary',
                   type='string',
                   dest='rubybinary',
                   help='Specify alternate ruby binary')


feature('rubyext')(init_rubyext)
before('apply_incpaths', 'apply_type_vars', 'apply_lib_vars',
       'apply_bundle')(init_rubyext)
after('default_cc', 'vars_target_cshlib')(init_rubyext)
feature('rubyext')(apply_ruby_so_name)
before('apply_link')(apply_ruby_so_name)
conf(check_ruby_version)
conf(check_ruby_ext_devel)
Ejemplo n.º 12
0
Archivo: ruby.py Proyecto: NKSG/ns3
	conf.env.CCFLAGS_RUBYEXT=read_config("CCDLFLAGS")
	conf.env.rubyext_PATTERN='%s.'+read_config('DLEXT')[0]
	flags=read_config('LDSHARED')
	while flags and flags[0][0]!='-':
		flags=flags[1:]
	if len(flags)>1 and flags[1]=="ppc":
		flags=flags[2:]
	conf.env.LINKFLAGS_RUBYEXT=flags
	conf.env.LINKFLAGS_RUBYEXT+=read_config("LIBS")
	conf.env.LINKFLAGS_RUBYEXT+=read_config("LIBRUBYARG_SHARED")
	if Options.options.rubyarchdir:
		conf.env.ARCHDIR_RUBY=Options.options.rubyarchdir
	else:
		conf.env.ARCHDIR_RUBY=read_config('sitearchdir')[0]
	if Options.options.rubylibdir:
		conf.env.LIBDIR_RUBY=Options.options.rubylibdir
	else:
		conf.env.LIBDIR_RUBY=read_config('sitelibdir')[0]
def set_options(opt):
	opt.add_option('--with-ruby-archdir',type='string',dest='rubyarchdir',help='Specify directory where to install arch specific files')
	opt.add_option('--with-ruby-libdir',type='string',dest='rubylibdir',help='Specify alternate ruby library path')
	opt.add_option('--with-ruby-binary',type='string',dest='rubybinary',help='Specify alternate ruby binary')

feature('rubyext')(init_rubyext)
before('apply_incpaths','apply_type_vars','apply_lib_vars','apply_bundle')(init_rubyext)
after('default_cc','vars_target_cshlib')(init_rubyext)
feature('rubyext')(apply_ruby_so_name)
before('apply_link')(apply_ruby_so_name)
conf(check_ruby_version)
conf(check_ruby_ext_devel)
Ejemplo n.º 13
0
        'print "$Config{privlib}/ExtUtils/xsubpp$Config{exe_ext}"')
    conf.env.EXTUTILS_TYPEMAP = read_out(
        'print "$Config{privlib}/ExtUtils/typemap"')
    conf.env.perlext_PATTERN = '%s.' + read_out('print $Config{dlext}')[0]
    if getattr(Options.options, 'perlarchdir', None):
        conf.env.ARCHDIR_PERL = Options.options.perlarchdir
    else:
        conf.env.ARCHDIR_PERL = read_out('print $Config{sitearch}')[0]


def set_options(opt):
    opt.add_option("--with-perl-binary",
                   type="string",
                   dest="perlbinary",
                   help='Specify alternate perl binary',
                   default=None)
    opt.add_option(
        "--with-perl-archdir",
        type="string",
        dest="perlarchdir",
        help='Specify directory where to install arch specific files',
        default=None)


before('apply_incpaths', 'apply_type_vars', 'apply_lib_vars')(init_perlext)
feature('perlext')(init_perlext)
extension(EXT_XS)(xsubpp_file)
conf(check_perl_version)
conf(check_perl_module)
conf(check_perl_ext_devel)
Ejemplo n.º 14
0
			System.err.println("ClassNotFoundException");
			System.exit(1);
		}
		lib = null;
		System.exit(0);
	}
}
"""
	import shutil
	javatestdir='.waf-javatest'
	classpath=javatestdir
	if conf.env['CLASSPATH']:
		classpath+=os.pathsep+conf.env['CLASSPATH']
	if isinstance(with_classpath,str):
		classpath+=os.pathsep+with_classpath
	shutil.rmtree(javatestdir,True)
	os.mkdir(javatestdir)
	java_file=open(os.path.join(javatestdir,'Test.java'),'w')
	java_file.write(class_check_source)
	java_file.close()
	os.popen(conf.env['JAVAC']+' '+os.path.join(javatestdir,'Test.java'))
	(jstdin,jstdout,jstderr)=os.popen3(conf.env['JAVA']+' -cp '+classpath+' Test '+classname)
	found=not bool(jstderr.read())
	conf.check_message('Java class %s'%classname,"",found)
	shutil.rmtree(javatestdir,True)
	return found

taskgen(apply_java)
feature('java')(apply_java)
conf(check_java_class)
Ejemplo n.º 15
0
		v['CLASSPATH']=conf.environ['CLASSPATH']
	if not v['JAR']:conf.fatal('jar is required for making java packages')
	if not v['JAVAC']:conf.fatal('javac is required for compiling java classes')
	v['JARCREATE']='cf'
def check_java_class(self,classname,with_classpath=None):
	import shutil
	javatestdir='.waf-javatest'
	classpath=javatestdir
	if self.env['CLASSPATH']:
		classpath+=os.pathsep+self.env['CLASSPATH']
	if isinstance(with_classpath,str):
		classpath+=os.pathsep+with_classpath
	shutil.rmtree(javatestdir,True)
	os.mkdir(javatestdir)
	java_file=open(os.path.join(javatestdir,'Test.java'),'w')
	java_file.write(class_check_source)
	java_file.close()
	Utils.exec_command(self.env['JAVAC']+[os.path.join(javatestdir,'Test.java')],shell=False)
	cmd=self.env['JAVA']+['-cp',classpath,'Test',classname]
	self.log.write("%s\n"%str(cmd))
	found=Utils.exec_command(cmd,shell=False,log=self.log)
	self.check_message('Java class %s'%classname,"",not found)
	shutil.rmtree(javatestdir,True)
	return found

feature('jar')(jar_files)
before('apply_core')(jar_files)
feature('javac')(apply_java)
before('apply_core')(apply_java)
conf(check_java_class)