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