SCons:调用Makefile项目的构建

时间:2011-09-08 00:21:26

标签: scons

SCons提供了env.Command,理论上它应该能够在Makefile项目上调用 ./ configure make 。但是,我的理解是,首先必须将Makefile项目文件夹复制到SCons的构建目录中,因为构建过程不应该在源树中更改任何内容。怎么办呢?

我想我正在寻找的是这样的:

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

虽然我怀疑有更好的方法可以做到这一点。另外,在上面的命令中,将取代BUILD_DIR和SOURCE_DIR?

谢谢: - )

2 个答案:

答案 0 :(得分:4)

SCons Wiki上有一些这方面的配方。也许其中一个足以满足您的需求:

答案 1 :(得分: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。这让我很头疼。