自动工具中包含在C源文件中的非目标文件目标

自动工具中包含在C源文件中的非目标文件目标,c,makefile,autotools,C,Makefile,Autotools,我如何告诉lib/Makefile.am从某些输入文件(此处为.txt)中生成非.o目标,并在编译常规C源文件之前告诉它这样做 背景:我有一堆文本文件(.txt)和其他C源文件一起作为输入。我想用xxd处理它们,以生成一个C数组初始值设定项列表,该列表包含在一个C源文件中。因此,文本文件处理应该在编译.c文件之前进行 在C文件中,我将包括已处理的.inc文件: #include "data.inc" 我走了这么远: SUFFIXES = .txt .txt.$(OBJEXT): $(X

我如何告诉
lib/Makefile.am
从某些输入文件(此处为
.txt
)中生成非
.o
目标,并在编译常规C源文件之前告诉它这样做

背景:我有一堆文本文件(
.txt
)和其他C源文件一起作为输入。我想用
xxd
处理它们,以生成一个C数组初始值设定项列表,该列表包含在一个C源文件中。因此,文本文件处理应该在编译
.c
文件之前进行

在C文件中,我将包括已处理的
.inc
文件:

#include "data.inc"
我走了这么远:

SUFFIXES = .txt
.txt.$(OBJEXT):
    $(XXD) -i $< @top_builddir@/include/$*.inc
后缀=.txt
.txt.$(OBJEXT):
$(XXD)-i$<@top\u builddir@/include/$*.inc

问题是makefile假设一个
.o
文件是根据规则(
.txt
-->
.o
)生成的,这不是我需要的。我需要告诉它,
.inc
是最终形式,它位于
顶部的builddir
中。做这件事的首选方法是什么?

另外,如果你不想让它认为你想要一个
.txt.o
,不要把它作为一个目标。这将在
/lib
目录中生成
.inc
文件,
\include
语句找不到它。如何将其放入
/include
目录?