SCons:调用Makefile项目的构建



SCons提供env。命令,理论上应该能够调用。/configure在Makefile项目上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的位置是什么?

谢谢:-)

在SCons Wiki上有几个食谱。也许其中一个能满足你的需求:

  • 运行Configure and Make
  • Auto Config Builder

作为@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。这让我很头疼。

最新更新