没有GLib的Autoconf因配置语法错误而中断

时间:2014-04-09 19:51:12

标签: glib autoconf

如果我没有安装pkg-config,那么在运行./configure时我的配置中断会出现语法错误。有没有办法打破AC_MSG_ERROR

./configure: line 4001: syntax error near unexpected token `GLIB2,'
./configure: line 4001: `  PKG_CHECK_MODULES(GLIB2, glib-2.0, , as_fn_error $? "glib needed" "$LINENO" 5)'

-

AC_ARG_ENABLE(GTK, [], [gtk="$enabled"], gtk=no)

if test "$gtk" = "yes"; then
    AC_CHECK_LIB([gtk-x11-2.0], [gtk_init], [], [AC_MSG_ERROR([gtk needed])])
else
    AC_CHECK_PROG(HAVE_PKG_CONFIG, pkg-config, yes)
    if test x"$HAVE_PKG_CONFIG" != x"yes" ; then
        AC_MSG_ERROR([pkg-config])
    fi
    PKG_CHECK_MODULES(GLIB2, glib-2.0, [], AC_MSG_ERROR([glib needed]))
    AC_SUBST(GLIB2_CFLAGS)
    AC_SUBST(GLIB2_LIBS)
    AC_CHECK_LIB([glib-2.0], [g_list_append], [], [AC_MSG_ERROR([glib needed])])
fi

AM_CONDITIONAL([GTK], [test "x$gtk" = "xyes"])

2 个答案:

答案 0 :(得分:4)

在没有pkg.m4的情况下,configure脚本生成错误。对于所有不以AC_*开头的非基本宏,出于这个原因,最好使用源代码分发它们,这样您至少可以获得正确的configure脚本。

也就是说,现在pkg-config非常普遍,你为什么要从没有它的系统生成configure脚本?您可以从“更好”的系统中简单地make dist,并从输出tarball(包含有效的configure脚本)构建。

答案 1 :(得分:0)

添加对pkg-config的检查应该可以解决问题:

# require pkg-config
AC_PATH_PROG([PKG_CONFIG], [pkg-config], [no])
AS_IF([test "x$PKG_CONFIG" = "xno"],[
   AC_MSG_ERROR([
   *** The pkg-config script could not be found. Make sure it is
   *** in your path, or set the PKG_CONFIG environment variable
   *** to the full path to pkg-config.])
])