Automake: как добавить этап сборки?

В настоящее время у меня есть цепочка сборки, полностью управляемая automake, например:

.vala > .c > .o > .exe

Я хотел бы добавить новый шаг для предварительной обработки файла XML .ui в источник vala:

.ui > .vala > .c > .o > .exe

Я сделал это в makefile.am

gtkbuilder2vala_SOURCES = \
    abstract-window.ui \
    main.vala \
    $(NULL)

И:

XSLTPROC = xsltproc
.ui.vala:
    $(XSLTPROC) ...

Но сделать не понять:

make: *** No rule to make target `abstract-window.c', needed by `gtkbuilder2vala-abstract-window.o'.  Stop.

Кажется, это ограничение make:

http://www.ensta.fr/~diam/dev/online/autoconf/autobook/autobook_180.html

если перевод занимает три шага - от .m' to.x', затем от .x' to.c' и, наконец, до '.o' --- тогда упрощенный подход Automake не работает.

У тебя есть другая идея?


person Sanpi    schedule 20.04.2010    source источник


Ответы (1)


я бы сделал что-то в этом духе

BUILT_SOURCES += abstract-window.vala
EXTRA_DIST += abstract-window.ui
gtkbuilder2vala_SOURCES += abstract-window.vala

SUFFIXES = .ui .vala
.ui.vala:
    $(XSLTPROC) ...

Я бы оставил определение XSLTPROC для AC_SUBST (или даже лучше, AC_ARG_VAR) в configure.ac.

person ndim    schedule 20.04.2010