http://ftp.gnu.org/pub/gnu/emacs/emacs-22.3.tar.gz
下载emacs的22.3到我的Ubuntu 12.04.2 LTS桌面和编译/化妆不起作用。
配置似乎工作正常。
很早就失败了:在子目录lib-src中,makefile的第148行存在问题。它看起来像一个问题:
ALL_CFLAGS = -D_BSD_SOURCE -DHAVE_CONFIG_H
-I. -I../src -I${srcdir} -I${srcdir}/../src ${LDFLAGS} ${CPPFLAGS} ${CFLAGS}
这就是行147和148:148行应该是147线的延续我猜。它从一个标签开始。没有\在行147结束。我把一个,并再次尝试。我在第150行发现了一个错误。我放入了另一个\。几行后面的事情变得更加严重了,在那里没有“实际”导致了那些不是语法错误,而是以更微妙的方式实现了突破的事情。
我不应该编辑Makefiles无论如何(我可以告诉,他们的权限是只读的;-))。我究竟做错了什么?我可以坚持下去,但如果我可以改为例如喂一面旗子以便例如以emacs-22.3-makefile-compatibility模式运行,那会更好。
[对于那些想知道“为什么” - 我有一些脚本,我需要我的工作,他们从来没有在emacs> = 23;我的旧机器上的我刚刚编译emacs22自己没有问题,但这个新的Ubuntu的机器上我没有emacs22,有没有emacs22在Ubuntu 12.04仓库,所以我有点绝望]
行,所以有人建议我试过
$ CPPFLAGS="-P" ./configure
并且列出了lib-src中回车/制表符的所有问题。但实际上它只是得到我的地方我已经设法手动得到点:
cd src; make all \
CC='gcc' CFLAGS='-g -O2 -Wno-pointer-sign ' CPPFLAGS='-D_BSD_SOURCE -P' \
LDFLAGS='-Wl,-znocombreloc' MAKE='make'
make[1]: Entering directory `/home/buzzard/local/emacs-22.3/src'
gcc -c -D_BSD_SOURCE -P -Demacs -DHAVE_CONFIG_H -I. -I/home/buzzard/local/emacs-22.3/src -D_BSD_SOURCE -g -O2 -Wno-pointer-sign pre-crt0.c
make[1]: *** No rule to make target `/usr/lib/crt1.o', needed by `temacs'. Stop.
make[1]: Leaving directory `/home/buzzard/local/emacs-22.3/src'
make: *** [src] Error 2
嗯......如果我知道我在做什么我会发布其他位和羁绊,但说实话我我从来没有理解过。我一直只希望它能工作...
你需要“cd src”吗?我通常只是从顶级emacs目录运行make(我运行configure的同一目录)。通常它只是“配置”,然后是“make”。 – jtahlborn 2013-04-20 22:59:56
我不知道答案,但您可以尝试运行'autogen.sh'脚本来重建配置脚本,以防某些不兼容的问题可以自动解决。 – phils 2013-04-21 02:02:12
啊,22.3没有autogen.sh。您可以从更新的版本中查看脚本以查看它的功能并手动复制它,但这可能会变成一堆没有实际好处的工作,我猜'INSTALL'文件应该是在任何情况下都是更好的选择。 – phils 2013-04-21 02:10:26