2011-09-08 47 views
2

SCons提供的env.Command理论上应该能够在Makefile项目上调用./configuremake。不过,我的理解是,Makefile项目文件夹首先必须复制到SCons的构建目录中,因为构建过程不应改变源代码树中的任何内容。如何才能做到这一点?SCons:调用Makefile项目的构建

我猜我寻找的是这样的:

env.Command('lib/moo/Makefile', '', [Copy('BUILD_DIR/lib/moo', 'SOURCE_DIR/lib/moo', 'cd BUILD_DIR/lib/moo', './configure']) 

虽然我怀疑有这样做的更好的方法。另外,在上述命令中,BUILD_DIR和SOURCE_DIR将取代什么?

感谢:-)

回答

0

作为附录@kichik。如果你只是想运行make,以下内容添加到您的SConscript文件:

call_vars = {} 
call_vars['PATH'] = '/bin/:/usr/bin/'          
artifacts = env.Make(target = 'Config.jason', source = None, 
    MakeTargets = "clean all",     
    MakePath = Dir('./'), MakeOpts = [], MakeEnv=call_vars) 
env.AlwaysBuild(artifacts) 

这就需要在这里描述https://bitbucket.org/scons/scons/wiki/MakeBuilder

请注意,环境变量可能无法达到预期,例如,PATH脚本。这让我颇为头痛。

+0

如果你想从你的shell传播路径,然后导入操作系统。 call_vars ['PATH'] = os.environ ['PATH'] – bdbaddog