AC_配置_文件不生成Makefiles

AC_配置_文件不生成Makefiles,makefile,autotools,Makefile,Autotools,我正在用Vala编写一个支持插件的应用程序。应用程序具有以下目录结构: data/ [data files] m4/ my_project.m4 plugins/ example/ example.plugin.in example-plugin.vala Makefile.am po/ src/ [source files] 文件my_project.m4通过一个名为MYPROJ_ADD_plugin的简单定

我正在用Vala编写一个支持插件的应用程序。应用程序具有以下目录结构:

data/
    [data files]

m4/
    my_project.m4

plugins/
    example/
        example.plugin.in
        example-plugin.vala
        Makefile.am
po/
src/
    [source files]
文件my_project.m4通过一个名为MYPROJ_ADD_plugin的简单定义函数动态添加plugin dirs,当我用其他一些项目测试它时,它运行良好。基本上,它要求:

AC_CONFIG_FILES([plugins/example/Makefile])
[...]
AC_CONFIG_FILES([plugins/example/example.plugin])
问题是,当我尝试配置它时,它会返回:

"error: cannot find input file: `plugins/example/Makefile.in'"
示例makefile plugins/example/makefile.am如下所示:

include $(top_srcdir)/common.am

plugin_LTLIBRARIES = example-plugin.la
plugin_DATA = example.plugin

example_plugin_la_SOURCES = \
    example-plugin.vala

example_plugin_la_VALAFLAGS = \
    $(MYPROJ_COMMON_VALAFLAGS) \
    --target-glib=2.38

example_plugin_la_CFLAGS = \
    $(MYPROJ_COMMON_CFLAGS) \
    -I$(srcdir) \
    -DG_LOG_DOMAIN='"Example"'

example_plugin_la_LIBADD = \
    $(MYPROJ_COMMON_LIBS)

example_plugin_la_LDFLAGS = \
    $(MYPROJ_PLUGIN_LINKER_FLAGS) \
    -lm

EXTRA_DIST = example.plugin.in
每个var都在common.am和configure.ac中正确生成

我很感激在这个问题上有任何建议。
提前谢谢

看来我找到了我自己问题的答案。显然,我所要做的就是在插件输出文件中添加一个lib前缀。plugins/example/Makefile.am现在看起来像:

include $(top_srcdir)/common.am

plugin_LTLIBRARIES = **lib**example.la
plugin_DATA = example.plugin

**lib**example_la_SOURCES = \
    example-plugin.vala

**lib**example_la_VALAFLAGS = \
    $(MYPROJ_COMMON_VALAFLAGS) \
    --target-glib=2.38

**lib**example_la_CFLAGS = \
    $(MYPROJ_COMMON_CFLAGS) \
    -I$(srcdir) \
    -DG_LOG_DOMAIN='"Example"'

**lib**example_la_LIBADD = \
    $(MYPROJ_COMMON_LIBS)

**lib**example_la_LDFLAGS = \
    $(MYPROJ_PLUGIN_LINKER_FLAGS) \
    -lm

EXTRA_DIST = example.plugin.in
这是我做的唯一一次修改,它现在的效果和预期的一样。似乎autoconf/AutoTool对插件和共享库的语法非常严格,因为它们必须以库前缀开头。

AC_CONFIG_文件必须由configure调用,也就是说,它们是属于configure.AC的[A]uto[C]onf宏。