# SliTaz package receipt.

PACKAGE="emacs"
VERSION="23.4"
CATEGORY="development"
SHORT_DESC="The GNU Emacs editor"
MAINTAINER="domcox@slitaz.org"
DEPENDS="atk cairo dbus expat freetype fontconfig giflib glib gtk+ jpeg libgio libpng \
librsvg util-linux-ng-uuid ncurses pango tiff xorg-server zlib librsvg libgsf"
BUILD_DEPENDS="atk-dev cairo-dev expat-dev dbus-dev freetype-dev fontconfig-dev \
giflib-dev glib-dev gtk+-dev jpeg-dev libgio-dev libpng-dev librsvg-dev ncurses-dev \
pango-dev pkg-config tiff-dev xorg-dev xorg-dev-proto"
SUGGESTED="alsa-lib"
TARBALL="$PACKAGE-$VERSION.tar.gz"
WEB_SITE="http://www.gnu.org/software/emacs/"
WGET_URL="$GNU_MIRROR/$PACKAGE/$TARBALL"
TAGS="text-editor"

# Rules to configure and make the package.
compile_rules()
{
	cd $src
	# Gzip workaround in busybox
	sed -i 's/${GZIP_PROG} -9n/${GZIP_PROG}/g' Makefile.in
	sed -i 's/${GZIP_PROG} -9n/${GZIP_PROG}/g' leim/Makefile.in
	# Configure (with GCC 4.5.0 workaround)
	CFLAGS="-g -O2 -fno-optimize-sibling-calls" ./configure $CONFIGURE_ARGS \
		--infodir=/usr/share/info \
		--mandir=/usr/share/man \
		--without-makeinfo \
		--without-gconf \
		--with-sound \
		--with-x \
		--with-toolkit-scroll-bars \
		--with-xpm=yes \
		--libexecdir=/usr/lib \
		--localstatedir=/var/lib \
		--sharedstatedir=/var/lib \
		--prefix=/usr && \
	make $MAKEFLAGS && \
	make DESTDIR=$DESTDIR install
}

# Rules to gen a SliTaz package suitable for Tazpkg.
genpkg_rules()
{
	# Binary files
	BIN_FILES="b2m ctags ebrowse emacs emacsclient etags grep-changelog rcs-checkin"
	echo -n "Copying emacs binary files"
	mkdir -p $fs/usr/bin && \
	for file in $BIN_FILES; do
		cp -a $_pkg/usr/bin/$file $fs/usr/bin
	done
	status
	# Lib files
	echo -n "Copying emacs lib files"
	cp -a $_pkg/usr/lib $fs/usr
	status
	strip -s $fs/usr/lib/$PACKAGE/${VERSION:0:4}/i486-pc-linux-gnu/* 2> /dev/null
	# lisp files
	LISP_DIR="	lisp lisp/calc lisp/calendar lisp/cedet lisp/cedet/ede lisp/cedet/semantic \
				lisp/cedet/semantic/analyze lisp/cedet/semantic/bovine lisp/cedet/semantic/decorate \
				lisp/cedet/semantic/symref lisp/cedet/semantic/wisent lisp/emacs-lisp lisp/emulation \
				lisp/erc lisp/eshell lisp/gnus lisp/international lisp/language lisp/mail lisp/mh-e \
				lisp/net lisp/nxml lisp/obsolete lisp/org lisp/play lisp/progmodes lisp/textmodes lisp/url"
	for dir in $LISP_DIR; do
		echo -n "Copying $dir files"
		mkdir -p $fs/usr/share/$PACKAGE/${VERSION:0:4}/$dir && \
		cp $_pkg/usr/share/$PACKAGE/${VERSION:0:4}/$dir/*.elc $fs/usr/share/$PACKAGE/${VERSION:0:4}/$dir
		if [ `ls $_pkg/usr/share/$PACKAGE/${VERSION:0:4}/$dir/ | grep -c \.el$` -gt 0 ]; then
			cp $_pkg/usr/share/$PACKAGE/${VERSION:0:4}/$dir/*.el $fs/usr/share/$PACKAGE/${VERSION:0:4}/$dir
		fi
		for file in COPYING README TODO; do
			if [ -e $_pkg/usr/share/$PACKAGE/${VERSION:0:4}/$dir/$file ]; then
				cp $_pkg/usr/share/$PACKAGE/${VERSION:0:4}/$dir/$file $fs/usr/share/$PACKAGE/${VERSION:0:4}/$dir
			fi
		done
		status
	done
	# Use linux term only
	LINUX_TERM="README linux.el rxvt.elc tty-colors.elc vt100.elc xterm.elc"
	echo -n "Copying lisp/term files (linux only)"
	mkdir -p $fs/usr/share/$PACKAGE/${VERSION:0:4}/lisp/term && \
	for file in $LINUX_TERM; do
		cp -a $_pkg/usr/share/$PACKAGE/${VERSION:0:4}/lisp/term/$file $fs/usr/share/$PACKAGE/${VERSION:0:4}/lisp/term
	done
	status
	# leim files
	echo -n "Copying leim files"
	mkdir -p $fs/usr/share/$PACKAGE/${VERSION:0:4}/leim && \
	cp $_pkg/usr/share/$PACKAGE/${VERSION:0:4}/leim/*.el $fs/usr/share/$PACKAGE/${VERSION:0:4}/leim
	status
	LEIM_FILES="leim/ja-dic leim/quail"
	for dir in $LEIM_FILES; do
		echo -n "Copying $dir files"
		mkdir -p $fs/usr/share/$PACKAGE/${VERSION:0:4}/$dir && \
		cp $_pkg/usr/share/$PACKAGE/${VERSION:0:4}/$dir/*.elc $fs/usr/share/$PACKAGE/${VERSION:0:4}/$dir && \
		for file in COPYING README TODO; do
			if [ -e $_pkg/usr/share/$PACKAGE/${VERSION:0:4}/$dir/$file ]; then
				cp $_pkg/usr/share/$PACKAGE/${VERSION:0:4}/$dir/$file $fs/usr/share/$PACKAGE/${VERSION:0:4}/$dir
			fi
		done
		status
	done
	# Conf files
	echo -n "Copying conf files"
	CONF_FILES="ETAGS.README charsets e edt-user.el emacs2.py emacs3.py emacs-buffer.gdb emacs.py \
				forms-d2.dat gnus nxml schema enriched.doc ms-kermit ps-prin0.ps ps-prin1.ps \
				ses-example.ses spook.lines yow.lines"
	mkdir -p $fs/usr/share/$PACKAGE/${VERSION:0:4}/etc && \
	for file in $CONF_FILES; do
		cp -a $_pkg/usr/share/$PACKAGE/${VERSION:0:4}/etc/$file $fs/usr/share/$PACKAGE/${VERSION:0:4}/etc
	done
	status
	# Pixmaps files
	XPM_DIR="	images images/custom images/ezimage images/gnus images/gud images/mail images/mpc \
				images/smilies images/smilies/grayscale images/smilies/medium images/tree-widget/default \
				images/tree-widget/folder"
	for dir in $XPM_DIR; do
		echo -n "Copying $dir xpm files"
		mkdir -p $fs/usr/share/$PACKAGE/${VERSION:0:4}/etc/$dir && \
		cp $_pkg/usr/share/$PACKAGE/${VERSION:0:4}/etc/$dir/*.xpm $fs/usr/share/$PACKAGE/${VERSION:0:4}/etc/$dir && \
		for file in COPYING README TODO; do
			if [ -e $_pkg/usr/share/$PACKAGE/${VERSION:0:4}/$dir/$file ]; then
				cp $_pkg/usr/share/$PACKAGE/${VERSION:0:4}/$dir/$file $fs/usr/share/$PACKAGE/${VERSION:0:4}/$dir
			fi
		done
		status
	done
	PNG_DIR="	images images/gnus images/tree-widget/default images/tree-widget/folder"
	for dir in $PNG_DIR; do
		echo -n "Copying $dir png files"
		cp $_pkg/usr/share/$PACKAGE/${VERSION:0:4}/etc/$dir/*.png $fs/usr/share/$PACKAGE/${VERSION:0:4}/etc/$dir && \
		status
	done
	# Licence
	GNU_FILES="AUTHORS BABYL CENSORSHIP COPYING DISTRIB FTP GNU ORDERS SERVICE copying.paper"
	echo -n "Copying License files"
	for file in $GNU_FILES; do
		cp -a $_pkg/usr/share/$PACKAGE/${VERSION:0:4}/etc/$file $fs/usr/share/$PACKAGE/${VERSION:0:4}/etc
	done
	status
	# Install specific site file
	echo -n "Installing specific SliTaz file"
	mkdir -p $fs/usr/share/$PACKAGE/site-lisp/site-start.d && \
	cp -a $_pkg/usr/share/$PACKAGE/site-lisp $fs/usr/share/$PACKAGE && \
	cp -a $stuff/default.el $fs/usr/share/$PACKAGE/site-lisp && \
	cp -a $stuff/90-slitaz.el $fs/usr/share/$PACKAGE/site-lisp/site-start.d
	status
	# Install desktop files for emacs
	echo -n "Installing emacs menu"
	mkdir -p $fs/usr/share/pixmaps $fs/usr/share/applications && \
	cp -a $_pkg/usr/share/$PACKAGE/${VERSION:0:4}/etc/emacs.desktop $fs/usr/share/applications/ && \
	cp -a $_pkg/usr/share/icons/hicolor/32x32/apps/emacs.png $fs/usr/share/pixmaps
	status
	# Add a desktop file for emacs client
	echo -n "Installing emacsclient menu"
	cp -a $_pkg/usr/share/$PACKAGE/${VERSION:0:4}/etc/emacs.desktop $fs/usr/share/applications/emacsclient.desktop && \
	sed -i 's/Exec.*/Exec=xterm -e emacsclient --alternate-editor="" %F/' $fs/usr/share/applications/emacsclient.desktop && \
	sed -i 's/Name=.*/Name=Emacsclient/' $fs/usr/share/applications/emacsclient.desktop
	status
	# Directory  workaround
	cd $fs/usr/share/$PACKAGE/${VERSION:0:4}
	ln -s ../site-lisp site-lisp
}

post_install()
{
	cd /usr/share/emacs/site-lisp
	cat <<-EOF >site-start.el
	;; site-start.el for SliTaz			-*- no-byte-compile: t -*-
	;;
	;; (C) GNU gpl v3 - SliTaz GNU/Linux 2009.
	;;
	;; This default site startup file for Emacs was created by tazpkg
	;; reconfigure emacs. You may modify this file, replace it by your
	;; own site initialisation, or even remove it completely.
	;;
	EOF
	START_FILES=`ls site-start.d/ | sort`
	for file in $START_FILES; do
	    cat site-start.d/$file >> site-start.el
	done
}

post_remove()
{
	rm -rf /usr/share/emacs
	rm -rf /usr/lib/emacs
}