Automake:将文本文件嵌入二进制目标中

时间:2011-10-18 14:54:12

标签: automake objcopy

我需要在二进制文件中嵌入几个文本文件。它目前在configure.in脚本中添加了两行,用于“清理”并对$ target.o文件执行objcopy。不要问为什么它是必需的,在这个应用程序中,它只是。

我想要做的是编写一些 automake Makefile.am )的定义,这些定义会将这些文本文件列为源,并告诉make将它们objcopy转换为* .o我需要链接到最终目标的文件。我也可以将它们添加到我想要的 CLEANFILES 中。

现在,我知道我说 final _LDADD,但是我找不到告诉automake / configure做这个技巧的方法。

...帮助

2 个答案:

答案 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}