我需要在二进制文件中嵌入几个文本文件。它目前在configure.in脚本中添加了两行,用于“清理”并对$ target.o文件执行objcopy。不要问为什么它是必需的,在这个应用程序中,它只是。
我想要做的是编写一些 automake ( Makefile.am )的定义,这些定义会将这些文本文件列为源,并告诉make将它们objcopy转换为* .o我需要链接到最终目标的文件。我也可以将它们添加到我想要的 CLEANFILES 中。
现在,我知道我说 final _LDADD,但是我找不到告诉automake / configure做这个技巧的方法。
...帮助
答案 0 :(得分:4)
类似的东西:
libxxx.a : text1.o text2.o
$(AR) cru $@ $^
text1.o : text1.txt
$(OBJCOPY) $< $@
text2.o : text2.txt
$(OBJCOPY) $< $@
...
final_LDADD = libxxx.a
...
CLEANFILES += libxxx.a text1.o text2.o
答案 1 :(得分:0)
略微修改 ldav1s 的解决方案:
object_files = file0.o file1.o file2.o ... fileN.o
all:
for SQL in $$(echo ${object_files} | sed -r 's~\.o\b~~g'); do \
$(OBJCOPY) $$SQL $$SQL.o; \
done;
CLEANFILES = ${object_files}