如何在 OpenIndiana 上编译 LXDE - 如何处理 lxde-common-qt 中的 AM 错误?

如何在 OpenIndiana 上编译 LXDE - 如何处理 lxde-common-qt 中的 AM 错误?

全新安装,安装了 ss-dev、gcc-dev、sunstudio,以及我认为根据我所读内容相关的其他一些软件包。只是想从源代码编译 LXDE,因为当我查看从组件安装时(http://lxde.org/download)好吧,并不是所有基于 QT 的新东西都在那里,而且我在配置时遇到错误,所以它更不容易。所以我用http://lxde.git.sourceforge.net/git/gitweb-index.cgi相反,让我们从 lxde-common-qt 开始。克隆那个。 autogen.sh 抱怨 automake 不存在。 export AUTOMAKE="automake-1.10" 尝试 automake+tab 会产生这样的结果(我知道这不是最好的方法,但使用导出保证我不会以任何持久的方式搞砸)。随着 autogen 的进一步发展,这是有效的。这里开始:

+ [ x != x ]
+ aclocal ./autogen.sh[25]: aclocal: not found [No such file or directory]
+ automake-1.10 --add-missing --copy --include-deps configure.ac: no proper invocation of AM_INIT_AUTOMAKE was found. configure.ac: You should verify that configure.ac invokes AM_INIT_AUTOMAKE, configure.ac: that aclocal.m4 is present in the top-level directory, configure.ac: and that aclocal.m4 was recently regenerated (using aclocal). configure.ac:8: installing `./install-sh' man/Makefile.am:5: ENABLE_REGENERATE_MAN does not appear in AM_CONDITIONAL
+ autoconf configure.ac:3: error: possibly undefined macro: AM_INIT_AUTOMAKE
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation. configure.ac:40: error: possibly undefined macro: AM_CONDITIONAL
+ rm -rf autom4te.cache

那么我们来看看configure.ac:

C_PREREQ([2.57])
AC_INIT(lxde-common-qt,[0.5.5], [],lxde-common-qt)
AM_INIT_AUTOMAKE()
dnl  AC_PROG_INTLTOOL(, [no-xml])
dnl AM_MAINTAINER_MODE

Checks for programs. AC_PROG_INSTALL AC_PROG_LN_S

AC_ARG_ENABLE(man,
       [AC_HELP_STRING([--enable-man],
               [regenerate roff man pages from Docbook @<:@default=no@:>@])],
       [enable_man="${enableval}"],
       [enable_man=no] )  xsessions data of path for GDM AC_ARG_WITH([xsession-path],
    AS_HELP_STRING(
        [--with-xsession-path=PATH],
        [set the install path of xsession data [[DATAROOTDIR/xsessions]]]),
        [test x$withval != x && xsesspath="$withval"],
        [xsesspath="\${datarootdir}/xsessions"]) AC_SUBST(xsesspath)


if test x"$enable_man" = x"yes"; then
    AC_PATH_PROG([XSLTPROC], [xsltproc])
    if test -z "$XSLTPROC"; then
        enable_man=no
    fi

    dnl check for DocBook DTD and stylesheets in the local catalog.
    JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.1.2//EN],
        [DocBook XML DTD V4.1.2], [], enable_man=no)
    JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release
/xsl/current/manpages/docbook.xsl],
        [DocBook XSL Stylesheets >= 1.70.1], [], enable_man=no) fi

AM_CONDITIONAL(ENABLE_REGENERATE_MAN, test "x$enable_man" != "xno")

AC_OUTPUT([   Makefile   startlxde-qt   lxde-logout-qt   LXDE-Qt.desktop   lxde-logout-qt.desktop   lxpanel/panel   openbox/rc.xml   man/Makefile ])

if test x"$sysconfdir" != x'/etc'; then
    echo
    echo
    echo 'Error: sysconfdir is not /etc.'
    echo 'Please consider passing --sysconfdir=/etc to configure.';
    echo 'Otherwise default config files will be installed to wrong place.'
    echo
    echo fi

当然,我看到 AM_INIT_AUTOMAKE 是空的,所以我尝试放置“[lxde-common-qt 0.5.5]”的各种变体,但没有成功......

我的意思是不,没有任何关于这方面的资料,而且我没有太多经验。通常我会尝试安装丢失的软件包,使用导出来处理明显的事情,但是那些 automake 错误......那是什么。项目文件夹中没有 aclocal.m4 文件:

AUTHORS
lxde-logout-qt.desktop.in 
autogen.shlxde-logout-qt.in
autostart
LXDE-Qt.desktop.in
ChangeLog
lxpanel config.h.in
Makefile.am configure
man configure.ac
NEWS
COPYING
openbox
desktop.conf
cmanfm-qt
imagesREADME
INSTALL
startlxde-qt.in
install-sh
wallpapers

我需要使用类似的东西吗m4_pattern_allow([^m4_cv_])配置.ac 文件中的条目?

答案1

解决方案是从configure.ac 文件中的AM_INIT_AUTOMAKE() 行中删除这两个括号,这样剩下的就只是AM_INIT_AUTOMAKE。之后我就可以拥有配置文件并安装了!为什么会这样仍然是个谜!


好吧,当您必须手动更改这些时,也可能是您的 PATH 变量设置不正确等,因此无法找到或正确链接工具。这是我的新 PATH 的示例,它似乎可以处理这些 AM 错误,而无需编辑 configure.ac 文件...:

PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/SUNWspro/bin:/usr/ccs/bin:/opt/onbld/bin:/opt/onbld/bin/i386:/opt/sfw/bin:/usr/sfw/bin:/usr/dt/bin:/usr/openwin/bin:/usr/sbin:/usr/gnu/bin/:/usr/sbin/:/sbin:/usr/local/bin:/usr/bin:/usr/ccs/bin:/opt/onbld/bin:/opt/onbld/bin/i386:/opt/sfw/bin:/usr/sfw/bin:/usr/dt/bin:/usr/openwin/bin:/usr/gnu/bin/"

相关内容