2

目前,我有一个构建链,完全由 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不明白:

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 的简单化方法将被打破。

你有别的想法吗?

4

1 回答 1

4

我会按照这些思路做一些事情

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_VARconfigure.ac

于 2010-04-20T20:19:27.367 回答