[oe-commits] Stanislav Brabec : emacs: Update to version 22.3. Simplified build. Use GTK+.

GIT User account git at amethyst.openembedded.net
Wed Dec 3 14:14:53 UTC 2008


Module: openembedded.git
Branch: org.openembedded.dev
Commit: 7b4727f5e9da26203937596f74cc3be1a1ad6453
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=7b4727f5e9da26203937596f74cc3be1a1ad6453

Author: Stanislav Brabec <utx at penguin.cz>
Date:   Wed Dec  3 14:12:52 2008 +0000

emacs: Update to version 22.3. Simplified build. Use GTK+.

---

 packages/emacs/emacs-22.3/use-qemu.patch   |   93 ++++++++++++++++++++++++++++
 packages/emacs/emacs-x11_20060801.bb       |    2 +-
 packages/emacs/emacs-x11_22.3.bb           |   15 +++++
 packages/emacs/emacs.inc                   |   31 +++++++++
 packages/emacs/emacs_20060801.bb           |    2 +-
 packages/emacs/emacs_22.3.bb               |    9 +++
 packages/emacs/files/nostdlib-unwind.patch |   16 +++++
 7 files changed, 166 insertions(+), 2 deletions(-)

diff --git a/packages/emacs/emacs-22.3/use-qemu.patch b/packages/emacs/emacs-22.3/use-qemu.patch
new file mode 100644
index 0000000..3b85dc3
--- /dev/null
+++ b/packages/emacs/emacs-22.3/use-qemu.patch
@@ -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.
diff --git a/packages/emacs/emacs-x11_20060801.bb b/packages/emacs/emacs-x11_20060801.bb
index 3878c42..a6ed4e7 100644
--- a/packages/emacs/emacs-x11_20060801.bb
+++ b/packages/emacs/emacs-x11_20060801.bb
@@ -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
index 0000000..03102bf
--- /dev/null
+++ b/packages/emacs/emacs-x11_22.3.bb
@@ -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
index 0000000..95dd6e0
--- /dev/null
+++ b/packages/emacs/emacs.inc
@@ -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}"'
diff --git a/packages/emacs/emacs_20060801.bb b/packages/emacs/emacs_20060801.bb
index 834e5b6..fe472b4 100644
--- a/packages/emacs/emacs_20060801.bb
+++ b/packages/emacs/emacs_20060801.bb
@@ -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
index 0000000..da8de39
--- /dev/null
+++ b/packages/emacs/emacs_22.3.bb
@@ -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
index 0000000..4200301
--- /dev/null
+++ b/packages/emacs/files/nostdlib-unwind.patch
@@ -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





More information about the Openembedded-commits mailing list