summaryrefslogtreecommitdiff
path: root/mail/prom-wl/files/byte-compile
diff options
context:
space:
mode:
Diffstat (limited to 'mail/prom-wl/files/byte-compile')
-rw-r--r--mail/prom-wl/files/byte-compile139
1 files changed, 139 insertions, 0 deletions
diff --git a/mail/prom-wl/files/byte-compile b/mail/prom-wl/files/byte-compile
new file mode 100644
index 000000000000..48bcc77a10fc
--- /dev/null
+++ b/mail/prom-wl/files/byte-compile
@@ -0,0 +1,139 @@
+#!/bin/sh
+
+PREFIX=${PREFIX:-/usr/local}
+WRKDIR=${WRKDIR:-`pwd`}
+
+tmprfx=`basename $0`
+
+Usage="\
+byte_compile [options] emacs_name port_name [files]
+ -l load_el : load *.el file when byte-compile
+ -h : show this message
+ emacs_name : should be one of below
+ \"emacs\", \"emacs20\", \"mule\", \"xemacs19\", \"xemacs20\",
+ \"xemacs21\", \"xemacs-mule\"
+ port_name : port name(replaced port_name.el when files not specified)
+ files : *.el files should be compiled"
+
+while [ -z "`getopts "l: h" opt > /tmp/${tmprfx}:getopt_err.log`" \
+ -a X"${opt}" != "X?" ]; do
+ case ${opt} in
+ l)
+ load_el=${OPTARG}
+ break
+ ;;
+ h)
+ echo "${Usage}"
+ exit 1
+ ;;
+ *)
+ ;;
+ esac
+# echo "opt=${opt},OPTARG=${OPTARG}"
+done
+
+if [ -s /tmp/${tmprfx}:getopt_err.log ]; then
+ cat /tmp/${tmprfx}:getopt_err.log
+ rm -f /tmp/${tmprfx}:getopt_err.log
+ exit 1
+fi
+rm -f /tmp/${tmprfx}:getopt_err.log
+
+shift `expr ${OPTIND} - 1`
+
+if [ -z "$1" -o -z "$2" ]; then
+ echo "${Usage}"
+ exit 1
+fi
+
+emacs_name=$1
+shift
+port_name=$1
+
+if [ $# -le 1 ]; then
+ files=${port_name}.el
+else
+ files=`echo $* | sed -e "s/${port_name} *//"`
+fi
+
+#echo "emacs_name=${emacs_name}"
+#echo "port_name=${port_name}"
+#echo "files=${files}"
+#echo "load_el=${load_el}"
+#exit 1
+
+case ${emacs_name} in
+ emacs)
+ elispdir=${PREFIX}/share/emacs/site-lisp
+ load_path=${PREFIX}/share/emacs/site-lisp/${load_el}
+ emacscmd=emacs
+ ;;
+ emacs20)
+ elispdir=${PREFIX}/share/emacs/site-lisp
+ load_path=${PREFIX}/share/emacs/site-lisp/${load_el}
+ emacscmd=emacs20
+ ;;
+ mule)
+ elispdir=${PREFIX}/share/mule/site-lisp
+ load_path=${PREFIX}/share/mule/site-lisp/${load_el}
+ emacscmd=mule
+ ;;
+ xemacs19)
+ elispdir=${PREFIX}/lib/xemacs/site-lisp
+ load_path=${PREFIX}/lib/xemacs/site-lisp/${load_el}
+ emacscmd=xemacs
+ ;;
+ xemacs20)
+ elispdir=${PREFIX}/lib/xemacs/site-lisp
+ load_path=${PREFIX}/lib/xemacs/site-lisp/${load_el}
+ emacscmd=xemacs
+ ;;
+ xemacs21)
+ elispdir=${PREFIX}/lib/xemacs/site-packages/lisp/${port_name}
+ load_path=${PREFIX}/lib/xemacs/site-packages/lisp/${load_el}
+ pkg_path=${PREFIX}/lib/xemacs/site-packages
+ emacscmd=xemacs
+ package_install=yes
+ ;;
+ xemacs-mule)
+ elispdir=${PREFIX}/lib/xemacs/site-packages/lisp/${port_name}
+ load_path=${PREFIX}/lib/xemacs/site-packages/lisp/${load_el}
+ pkg_path=${PREFIX}/lib/xemacs/site-packages
+ emacscmd=xemacs
+ package_install=yes
+ ;;
+ *)
+ echo "${Usage}"
+ exit 1
+ ;;
+esac
+if [ -n "${load_el}" ]; then
+ echo "(setq load-path (cons \"${load_path}\" load-path))" > /tmp/${tmprfx}:load.el
+fi
+for f in ${files}; do
+ if [ -f ${WRKDIR}/${f} ]; then
+ f_elc=`basename ${f} .el`.elc
+ if [ -n "${load_el}" ]; then
+ ${emacscmd} -batch -l /tmp/${tmprfx}:load.el -q -no-site-file \
+ -f batch-byte-compile ${WRKDIR}/${f}
+ else
+ ${emacscmd} -batch -q -no-site-file -f batch-byte-compile ${WRKDIR}/${f}
+ fi
+ if [ X"${WRKDIR}" != "X${elispdir}" ]; then
+ rm -f ${elispdir}/${f_elc}
+ ln -sf ${WRKDIR}/${f} ${elispdir}/${f}
+ install -c -m 444 -g bin -o bin ${WRKDIR}/${f_elc} ${elispdir}/${f_elc}
+ rm -f ${WRKDIR}/${f_elc}
+ fi
+ if [ $? -eq 0 -a -n "${package_install}" ]; then
+ cp ${pkg_path}/pkginfo/MANIFEST.${port_name} /tmp/${tmprfx}:tempfile
+ grep -v "${f_elc}" /tmp/${tmprfx}:tempfile \
+ > ${pkg_path}/pkginfo/MANIFEST.${port_name}
+ echo "lisp/${port_name}/${f_elc}" >> ${pkg_path}/pkginfo/MANIFEST.${port_name}
+ fi
+ else
+ echo "\"${WRKDIR}/${f}\": file not found!"
+ fi
+done
+
+rm -f /tmp/${tmprfx}:load.el /tmp/${tmprfx}:tempfile