我需要Makefile.am规则来更新包含文件

问题描述 投票:0回答:1

我有一个Makefile.am,看起来像这样:

bin_PROGRAMS = prog

AM_CFLAGS = $(prog_CFLAGS)

prog_SOURCES = \
    data.h \
    src1.c \
    src2.c \
    ...
    src30.c

data.h文件有时会根据特定条件通过update_data.pl perl脚本进行更新。我尝试将其添加到Makefile.am的末尾:

.PHONY: data.h
data.h:
    perl update_data.pl

但是脚本永远不会运行。我确定我缺少一些简单的东西,但我只是想不通。

gnu-make autotools automake
1个回答
0
投票

因为您已经有一个data.h文件,并且它不依赖任何内容,所以make认为没有什么可更新的文件。

没有真正好方法告诉make始终重新创建文件。如果要在更新脚本时重新生成它,则可以依赖update_data.pl文件。或者,如果它正在解析和转换数据文件,则可以依赖于数据文件(以及脚本)。

但是,如果您的构建不是封闭的,并且内容取决于make所不了解的内容,则没有解决您问题的好方法。

© www.soinside.com 2019 - 2024. All rights reserved.