情况如下:我们使用通用的perforce源控制系统。每次构建时,我们都会同步最新的代码并从perforce运行Makefile(让我们称之为主Makefile)。是否可以通过对其进行非常小的更改来覆盖主Makefile中的目标,以便我们可以在同一目标上插入一些自定义操作。
例如,主Makefile看起来像这样
all:
echo "main Makefile actions"
我们如何通过添加个人Makefile.personal
all:
echo "my actions"
预期的结果是,当我们执行make all
时,执行的操作都是
echo "main Makefile actions"
echo "my actions"
任何建议都表示赞赏。谢谢和最诚挚的问候
答案 0 :(得分:2)
如果您愿意make
代替make all
,则可以这样做:
主要Makefile:
include Makefile.personal
all:
echo "main Makefile actions"
Makefile.personal:
my_all: all
echo "my actions"
如果你想make all
,但你不关心这两组动作的顺序,你可以这样做:
主要Makefile:
include Makefile.personal
all:
echo "main Makefile actions"
Makefile.personal:
my_all:
echo "my actions"
all: my_all
我想要make all
而你做关心订单,有几种不同的方法可以做到,没有漂亮。
答案 1 :(得分:1)
至少有几种方法:
1)在另一个包含主makefile的makefile中使用自定义操作创建另一个目标:
# my_makefile.mk
include Makefile
my_custom_actions : all
echo "my actions"
$ make -f my_makefile.mk my_custom_actions
2)在主Makefile中使用double colon rules,以便另一个makefile可以向现有目标添加动作。