2012-08-24 70 views
2

我制作了一个SCons构建器,它将一个Makefile文件作为源并调用它来生成“东西”。对`scons -c`执行自定义操作

(主要是由其他库编写的Makefile,所以我不必选择用SCons替换它)。

到目前为止,它运行良好,但现在我想使scons -c工作。

我的MakefileCallBuilder只有一个虚拟目标作为其目标,因此scons -c不会真的清除任何东西。

有没有办法告诉SCons我想要清洗时调用make cleanmake distclean

回答

3

因为这个确切的问题,我一直拉我的头发。我终于创建了一种原始的解决方案,但是很有效。这里是SConstruct文件的哪个不清洗部分:

import subprocess 

... 

# Call make to clean 
if env.GetOption('clean'): 
    subprocess.call(['make', 'clean']) 

基本上,因为使用SCons不提供任何方法来调用make clean,我把它通过Python的subprocess.call()完成。