emacs: Update to version 22.3. Simplified build. Use GTK+.
authorStanislav Brabec <utx@penguin.cz>
Wed, 3 Dec 2008 14:12:52 +0000 (14:12 +0000)
committerutx@penguin.cz <utx@penguin.cz>
Wed, 3 Dec 2008 14:12:52 +0000 (14:12 +0000)
packages/emacs/emacs-22.3/use-qemu.patch [new file with mode: 0644]
packages/emacs/emacs-x11_20060801.bb
packages/emacs/emacs-x11_22.3.bb [new file with mode: 0644]
packages/emacs/emacs.inc [new file with mode: 0644]
packages/emacs/emacs_20060801.bb
packages/emacs/emacs_22.3.bb [new file with mode: 0644]
packages/emacs/files/nostdlib-unwind.patch [new file with mode: 0644]

diff --git a/packages/emacs/emacs-22.3/use-qemu.patch b/packages/emacs/emacs-22.3/use-qemu.patch
new file mode 100644 (file)
index 0000000..3b85dc3
--- /dev/null
@@ -0,0 +1,93 @@
+Warning: When editing the patch, see the ugly hack (removal of pwd) when calling temacs and emacs.
+For unknown reason, qemu-arm is not able to recognize binary correctly.
+
+Index: emacs-22.3/lib-src/Makefile.in
+===================================================================
+--- emacs-22.3.orig/lib-src/Makefile.in        2008-04-24 05:38:12.000000000 +0000
++++ emacs-22.3/lib-src/Makefile.in     2008-11-21 15:51:14.000000000 +0000
+@@ -24,7 +24,7 @@
+ SHELL = /bin/sh
+ # Following ../lisp/Makefile.in.
+-EMACS = ../src/emacs
++EMACS = ${QEMU} emacs
+ EMACSOPT = -batch --no-site-file --multibyte
+ # ==================== Things `configure' will edit ====================
+@@ -388,7 +388,7 @@
+    clobbered too.  */
+ test-distrib${EXEEXT}: ${srcdir}/test-distrib.c
+       $(CC) ${ALL_CFLAGS} -o test-distrib ${srcdir}/test-distrib.c
+-      ./test-distrib ${srcdir}/testfile
++      ${QEMU} ./test-distrib ${srcdir}/testfile
+ /* We need the following in order to create a <getopt.h> when the system
+    doesn't have one that works with the given compiler.  */
+Index: emacs-22.3/lisp/Makefile.in
+===================================================================
+--- emacs-22.3.orig/lisp/Makefile.in   2008-08-12 18:35:42.000000000 +0000
++++ emacs-22.3/lisp/Makefile.in        2008-11-21 15:54:38.000000000 +0000
+@@ -63,7 +63,7 @@
+ # The actual Emacs command run in the targets below.
+-emacs = EMACSLOADPATH=$(lisp) $(EMACS) $(EMACSOPT)
++emacs = EMACSLOADPATH=$(lisp) ${QEMU} emacs $(EMACSOPT)
+ # Common command to find subdirectories
+Index: emacs-22.3/src/Makefile.in
+===================================================================
+--- emacs-22.3.orig/src/Makefile.in    2008-07-11 08:52:53.000000000 +0000
++++ emacs-22.3/src/Makefile.in 2008-11-21 15:52:09.000000000 +0000
+@@ -497,7 +497,7 @@
+    this with the shell''s ``for'' construct.
+    Note that some people do not have '.'  in their paths, so we must
+    use ./prefix-args.  */
+-#define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags`
++#define YMF_PASS_LDFLAGS(flags) `${QEMU} ./prefix-args -Xlinker flags`
+ #else
+ #define YMF_PASS_LDFLAGS(flags) flags
+ #endif
+@@ -949,7 +949,7 @@
+ #define OBJECTS_MACHINE
+ #endif
+-RUN_TEMACS = ./temacs
++RUN_TEMACS = ${QEMU} temacs
+ all: emacs${EXEEXT} OTHER_FILES
+@@ -964,7 +964,7 @@
+       LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump
+ #endif /* ! defined (HAVE_SHM) */
+ #endif /* ! defined (CANNOT_DUMP) */
+-      -./emacs -q -batch -f list-load-path-shadows
++      -${QEMU} emacs -q -batch -f list-load-path-shadows
+ /* We run make-docfile twice because the command line may get too long
+    on some systems.  */
+@@ -976,8 +976,8 @@
+    Likewise for ${SOME_MACHINE_LISP}.  */
+ ${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${shortlisp} ${SOME_MACHINE_LISP}
+       -rm -f ${etc}DOC
+-      ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
+-      ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
++      ${QEMU} ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
++      ${QEMU} ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
+ ${libsrc}make-docfile${EXEEXT}:
+       cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile${EXEEXT}
+Index: emacs-22.3/leim/Makefile.in
+===================================================================
+--- emacs-22.3.orig/leim/Makefile.in   2008-01-07 08:09:43.000000000 +0000
++++ emacs-22.3/leim/Makefile.in        2008-11-21 15:52:50.000000000 +0000
+@@ -51,7 +51,7 @@
+ # How to run Emacs.
+ RUN-EMACS = EMACSLOADPATH=$(buildlisppath) LC_ALL=C\
+-      ${BUILT-EMACS} -batch --no-init-file --no-site-file --multibyte
++      ${QEMU} emacs -batch --no-init-file --no-site-file --multibyte
+ # Subdirectories to be made if ${srcdir} is different from the current
+ # directory.
index 3878c42..a6ed4e7 100644 (file)
@@ -2,4 +2,4 @@ require emacs-x11_cvs.bb
 
 SRCDATE = "20060801"
 
-DEFAULT_PREFERENCE = "0"
+DEFAULT_PREFERENCE = "-1"
diff --git a/packages/emacs/emacs-x11_22.3.bb b/packages/emacs/emacs-x11_22.3.bb
new file mode 100644 (file)
index 0000000..03102bf
--- /dev/null
@@ -0,0 +1,15 @@
+require emacs.inc
+
+# full X (non-diet) is needed for X support
+DEPENDS += "gtk+ libungif"
+
+EXTRA_OECONF = "--without-sound --with-x-toolkit=gtk"
+
+RREPLACES = "emacs"
+
+FILESPATH = "${FILE_DIRNAME}/emacs-${PV}:${FILE_DIRNAME}/files"
+SRC_URI = "${GNU_MIRROR}/emacs/emacs-${PV}.tar.gz \
+          file://use-qemu.patch;patch=1 \
+          file://nostdlib-unwind.patch;patch=1"
+
+S = "${WORKDIR}/emacs-${PV}"
diff --git a/packages/emacs/emacs.inc b/packages/emacs/emacs.inc
new file mode 100644 (file)
index 0000000..95dd6e0
--- /dev/null
@@ -0,0 +1,31 @@
+DESCRIPTION = "Emacs"
+HOMEPAGE = "http://www.gnu.org/software/emacs/"
+LICENSE = "GPLv2"
+SECTION = "editor"
+# and it needs to run some generated binaries..
+DEPENDS += "qemu-native"
+
+inherit autotools
+
+PACKAGES =+ "${PN}-el"
+
+FILES_${PN}-el = "${datadir}/emacs/*/*/*.el.gz \
+                  ${datadir}/emacs/*/*/*/*.el.gz"
+
+FILES_${PN} += "${datadir}/emacs"
+
+FILES_${PN}-dbg += "${libexecdir}/emacs/*/*/.debug ${datadir}/emacs/*/*/.debug"
+
+# Large stack is required at least on x86_64 host, otherwise random segfaults appear:
+QEMU = "qemu-${TARGET_ARCH} -s 1048576 -L ${STAGING_DIR_TARGET}"
+
+do_compile_prepend() {
+       sed -i ':1;s:\(START.* \|LIB_STANDARD.* \|LIBES.* \)/usr/lib:\1${STAGING_LIBDIR}:;t1' ${S}/src/s/gnu-linux.h `find "${S}" -name Makefile`
+       export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${CROSS_DIR}/${TARGET_SYS}/lib"
+# Ugly hack, see files/use-qemu.patch for more:
+       ln -sf ../src/emacs lisp/emacs
+       ln -sf ../src/emacs lib-src/emacs
+       ln -sf ../src/emacs leim/emacs
+}
+
+EXTRA_OEMAKE += 'QEMU="${QEMU}"'
index 834e5b6..fe472b4 100644 (file)
@@ -1,3 +1,3 @@
 require emacs_cvs.bb
 SRCDATE = "20060801"
-DEFAULT_PREFERENCE = "0"
+DEFAULT_PREFERENCE = "-1"
diff --git a/packages/emacs/emacs_22.3.bb b/packages/emacs/emacs_22.3.bb
new file mode 100644 (file)
index 0000000..da8de39
--- /dev/null
@@ -0,0 +1,9 @@
+require emacs.inc
+
+EXTRA_OECONF = "--without-sound --without-x"
+
+SRC_URI = "${GNU_MIRROR}/emacs/emacs-${PV}.tar.gz \
+          file://use-qemu.patch;patch=1 \
+          file://nostdlib-unwind.patch;patch=1"
+
+S = "${WORKDIR}/emacs-${PV}"
diff --git a/packages/emacs/files/nostdlib-unwind.patch b/packages/emacs/files/nostdlib-unwind.patch
new file mode 100644 (file)
index 0000000..4200301
--- /dev/null
@@ -0,0 +1,16 @@
+Fix linking problem:
+undefined reference to `__aeabi_unwind_cpp_pr0'
+undefined reference to `__aeabi_unwind_cpp_pr1'
+Index: emacs/src/Makefile.in
+===================================================================
+--- emacs.orig/src/Makefile.in 2008-08-16 14:20:18.000000000 +0000
++++ emacs/src/Makefile.in      2008-08-16 14:51:25.000000000 +0000
+@@ -443,7 +443,7 @@
+    ask GCC explicitly where to find libgcc.a.  */
+ #ifndef LINKER
+-#define LINKER $(CC) -nostdlib
++#define LINKER $(CC) -nostdlib -lgcc_s
+ #endif
+ #ifndef LIB_GCC