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?
谢谢: - )
答案 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。这让我很头疼。