我试图在我的Makefile.am文件中包含cmdline.c文件的生成(从gengetopt的默认值开始)。

该文件当前显示如下:

bin_PROGRAMS = myprog

myprog_SOURCES = main.c cmdline.c
myprog_DEPENDENCIES = gen_cmdline $(myprog_SOURCES) # somewhere I read that setting DEPENDENCIES inhibits automake from calculating those

gen_cmdline:
    gengetopt < myprog.ggo


但是,如果仅修改myprog.ggo,则不会重新编译cmdline.c及其所有从属文件。我在这里想念什么?

最佳答案

gen_cmdline是.PHONY目标吗?如果gengetopt创建一个名为cmdline.c的文件,则您的Makefile.am应该看起来像:

bin_PROGRAMS = myprog

myprog_SOURCES = main.c cmdline.c
BUILT_SOURCES = cmdline.c
cmdline.c: myprog.ggo
    gengetopt < $(srcdir)/myprog.ggo

09-06 13:12