Automake: встраивание текстовых файлов в двоичную цель - PullRequest
0 голосов
/ 18 октября 2011

Мне нужно встроить несколько текстовых файлов в двоичный файл. В настоящее время это делается с помощью двух строк, добавленных в скрипт configure.in, которые «очищают» и выполняют objcopy для файлов $ target.o. Не спрашивайте, ПОЧЕМУ это требуется, в этом приложении это просто так.

Что я хочу сделать, так это написать automake ( Makefile.am ), в котором эти текстовые файлы будут перечислены как исходные и указано make для objcopy их в * .o файлы I нужно связать с конечной целью. Я мог бы также добавить их к CLEANFILES , что я хочу.

Теперь, я знаю, я говорю final _LDADD, но я не могу найти способ заставить automake / configure выполнить этот трюк.

Помощь ...

Ответы [ 2 ]

4 голосов
/ 18 октября 2011

Что-то вроде:

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
0 голосов
/ 19 октября 2011

Слегка измененное решение 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}
...