我正在Makefile中创建一个主构建目标。我有一个像“all_images”
这样的目标all_images:fast_image slow_image
fast_image:clean_objects dep_1 dep_2 dep_3
slow_image:clean_objects dep_1 dep_2 dep_3
fast_image在makefile中有一些其他条件导致它在最终图像名称中包含fast_image,而slow_image在其名称中具有相同的内容。
我想在快速和慢速的构建之间进行清理(删除所有的.o文件,显然不是最终的图像),但是当我这样做时,第二次不会发生clean_objects,因为它已经在fast_image中发生了。
在你说“你不应该因为slow_image应该重建所有改变的东西而需要清理”之前,我们的特定环境有一个非常复杂的makefile,可以执行代码生成,clearmake可以执行一些gnu_make启动等等。我必须清理之间的对象,有没有办法强制已经发生的依赖再次发生?我知道我可以遍布这个地方并手动删除所有的.o文件,但是clean_objects目标已经关闭并且有一堆依赖关系,可以执行各种复杂的对象删除,我不想手动完成所有操作。我没有。
谢谢!
答案 0 :(得分:0)
我确信有很多方法可以做到这一点,但我想到的第一件事就是创建两个单独的目标clean_fast_image_objects
和clean_slow_image_objects
然后让它们都调用一个定义的makefile函数运行clean_objects
当前执行的命令。