2010-04-20 11 views
2

Actuellement, j'ai une chaîne de construction, de gérer entièrement par automake, comme:Automake: Comment ajouter une étape de construction?

.vala > .c > .o > .exe 

Je voudrais ajouter une nouvelle étape pour prétraiter un fichier XML .ui dans une source vala:

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

Je l'ai fait, dans makefile.am

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

Et:

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

Mais MAKE ne comprennent pas:

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

Cela semble être une limitation de faire:

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

si la traduction prend trois étapes - de .m' to .x ', puis de .x' to .c', et enfin à `.o '--- alors l'approche simpliste d'Automake va casser.

Avez-vous une autre idée?

Répondre

4

je ferais quelque chose le long de ces lignes

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

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

Je laisserais la définition XSLTPROC à un AC_SUBST (ou mieux encore, un AC_ARG_VAR) dans configure.ac.