From 90232b54502d64547cd2888d3208e6a998e8fc10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20K=C3=BChling?= Date: Sun, 12 Dec 2010 12:46:54 +0100 Subject: [PATCH] fix lisp load path. split into multiple packages for quicker update/testing, do not install lisp source files by default. remove images, documentation and other stuff that just bloats the package size. --- emacs/Makefile | 80 ++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 61 insertions(+), 19 deletions(-) diff --git a/emacs/Makefile b/emacs/Makefile index eedac8f..985a078 100644 --- a/emacs/Makefile +++ b/emacs/Makefile @@ -21,36 +21,57 @@ PKG_BUILD_DEPENDS:= emacs/host libtool/host include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/package.mk -define Package/emacs +define Package/emacs/Default + SUBMENU:=Emacs SECTION:=utils CATEGORY:=Utilities - DEPENDS:=+libncurses TITLE:=The GNU Emacs Self-Documenting, Extensible Editor URL:=http://www.gnu.org/software/emacs/ - SUBMENU:=Editors +# SUBMENU:=Editors endef -define Package/emacs/description +define Package/emacs/Default/description GNU Emacs is an extensible, customizable text editor — and more. At its core is an interpreter for Emacs Lisp, a dialect of the Lisp programming language with extensions to support text editing. endef +define Package/emacs-bin + $(call Package/emacs/Default) + DEPENDS:=+libncurses +emacs-data + TITLE+= (executable) +endef + +define Package/emacs-bin/description +$(call Package/emacs/Default/description) + This package contains the Emacs executable files +endef + +define Package/emacs-data + $(call Package/emacs/Default) + TITLE+= (compiled lisp) +endef + +define Package/emacs-data/description +$(call Package/emacs/Default/description) + This package contains the compiled Lisp files needed to run Emacs. +endef + +define Package/emacs-el + $(call Package/emacs/Default) + TITLE+= (lisp source) +endef + +define Package/emacs-el/description +$(call Package/emacs/Default/description) + This package contains the Lisp source files of Emacs that can queried via + C-h f in case provided documentation of an Emacs function is insufficient. +endef + HOST_CONFIGURE_ARGS += --without-x CONFIGURE_ARGS += --without-x MAKE_FLAGS += "LD=$(TARGET_CROSS)gcc -nostdlib" - # --with-xpm=no \ - # --with-jpeg=no \ - # --with-png=no \ - # --with-gif=no \ - # --with-tiff=no \ - # --without-x \ - # --with-x-toolkit=no \ - - - - define Build/Prepare $(call Build/Prepare/Default) endef @@ -87,7 +108,8 @@ define Build/Compile # ln -sf $(STAGING_DIR_HOST)/bin/temacs $(PKG_BUILD_DIR)/src/ ln -sf $(STAGING_DIR_HOST)/bin/emacs-make-docfile $(PKG_BUILD_DIR)/lib-src/make-docfile ln -sf $(STAGING_DIR_HOST)/bin/emacs-prefix-args $(PKG_BUILD_DIR)/src/prefix-args - sed -ie 's% /usr/lib/crt% $(TOOLCHAIN_DIR)/usr/lib/crt%g' $(PKG_BUILD_DIR)/src/Makefile + sed -ie 's; /usr/lib/crt; $(TOOLCHAIN_DIR)/usr/lib/crt;g' $(PKG_BUILD_DIR)/src/Makefile + sed -ie 's;\(#.*PATH_DUMPLOADSEARCH\).*$$$$;\1 PATH_LOADSEARCH;' $(PKG_BUILD_DIR)/src/epaths.h $(call Build/Compile/Default, -C src -o lib-src -o prefix-args -o ../lib-src/make-docfile temacs ../etc/DOC) cp -v $(PKG_BUILD_DIR)/src/temacs $(PKG_BUILD_DIR)/src/emacs $(call Build/Compile/Default, -C lisp EMACS=$(STAGING_DIR_HOST)/bin/emacs) @@ -98,13 +120,33 @@ define Build/Install $(call Build/Install/Default,install-arch-indep install-arch-dep install-leim "MFLAGS=-o test-distrib") endef -define Package/emacs/install +define Package/emacs-bin/install $(INSTALL_DIR) $(1)/usr - cp -r $(PKG_INSTALL_DIR)/usr/{bin,lib,share} $(1)/usr + cp -r $(PKG_INSTALL_DIR)/usr/{bin,lib} $(1)/usr +endef + +define Package/emacs-data/install + $(INSTALL_DIR) $(1)/usr + (cd $(PKG_INSTALL_DIR)/usr && \ + tar -cf - --exclude "*.el.gz" \ + --exclude "images" \ + --exclude "refcards" \ + --exclude "schema" \ + --exclude "NEWS*" \ + share) \ + | (cd $(1)/usr && tar -xvf -) +endef + +define Package/emacs-el/install + $(INSTALL_DIR) $(1)/usr + (cd $(PKG_INSTALL_DIR)/usr && find share --name "*.el.gz" | tar -cf - -T -) \ + | (cd $(1)/usr && tar -xvf -) endef $(eval $(call HostBuild)) -$(eval $(call BuildPackage,emacs)) +$(eval $(call BuildPackage,emacs-bin)) +$(eval $(call BuildPackage,emacs-data)) +$(eval $(call BuildPackage,emacs-el)) # The following comments configure the Emacs editor. Just ignore them. # Local Variables: