303 lines
9.6 KiB
Plaintext
303 lines
9.6 KiB
Plaintext
AC_DEFUN(AC_SET_VANILLA_FLAG,
|
|
[dnl Determine arguments to run Emacs as vanilla.
|
|
retval=`echo ${EMACS}| ${EGREP} xemacs| ${EGREP} -v '^$'`
|
|
if test -z "${retval}"; then
|
|
VANILLA_FLAG="-q -no-site-file --no-unibyte"
|
|
else
|
|
VANILLA_FLAG="-vanilla"
|
|
fi
|
|
AC_SUBST(VANILLA_FLAG)])
|
|
|
|
AC_DEFUN(AC_SET_XEMACSDEBUG,
|
|
[dnl Set the XEMACSDEBUG environment variable, which is eval'd when
|
|
dnl XEmacs 21.5 starts, in order to suppress warnings for Lisp shadows
|
|
dnl when XEmacs 21.5 starts.
|
|
if test "${VANILLA_FLAG}" = "-vanilla"; then
|
|
XEMACSDEBUG='XEMACSDEBUG='\''(setq log-warning-minimum-level (quote error))'\'' '
|
|
else
|
|
XEMACSDEBUG=
|
|
fi
|
|
AC_SUBST(XEMACSDEBUG)])
|
|
|
|
AC_DEFUN(AC_EMACS_LISP, [
|
|
elisp="$2"
|
|
if test -z "$3"; then
|
|
AC_MSG_CHECKING(for $1)
|
|
fi
|
|
AC_CACHE_VAL(EMACS_cv_SYS_$1,[
|
|
OUTPUT=./conftest-$$
|
|
echo ${XEMACSDEBUG}${EMACS}' '${VANILLA_FLAG}' -batch -eval '\''(let ((x '"${elisp}"')) (write-region (if (stringp x) (princ x) (prin1-to-string x)) nil "'${OUTPUT}'" nil 5))'\' >& AC_FD_CC 2>&1
|
|
eval ${XEMACSDEBUG}${EMACS}' '${VANILLA_FLAG}' -batch -eval '\''(let ((x '"${elisp}"')) (write-region (if (stringp x) (princ x) (prin1-to-string x)) nil "'${OUTPUT}'" nil 5))'\' >& AC_FD_CC 2>&1
|
|
retval="`cat ${OUTPUT}`"
|
|
echo "=> ${retval}" >& AC_FD_CC 2>&1
|
|
rm -f ${OUTPUT}
|
|
EMACS_cv_SYS_$1="${retval}"
|
|
])
|
|
$1="${EMACS_cv_SYS_$1}"
|
|
if test -z "$3"; then
|
|
AC_MSG_RESULT($$1)
|
|
fi
|
|
])
|
|
|
|
AC_DEFUN(AC_PATH_EMACS,
|
|
[dnl Check for Emacsen.
|
|
|
|
dnl Apparently, if you run a shell window in Emacs, it sets the EMACS
|
|
dnl environment variable to 't'. Lets undo the damage.
|
|
test x${EMACS} = xt && EMACS=
|
|
|
|
dnl Ignore cache.
|
|
unset ac_cv_prog_EMACS; unset EMACS_cv_SYS_flavor;
|
|
|
|
AC_ARG_WITH(emacs,
|
|
[ --with-emacs=EMACS compile with EMACS [EMACS=emacs, xemacs...]],
|
|
[if test "${withval}" = yes -o -z "${withval}"; then
|
|
AC_PATH_PROGS(EMACS, emacs xemacs, emacs)
|
|
else
|
|
AC_PATH_PROG(EMACS, ${withval}, ${withval}, emacs)
|
|
fi])
|
|
AC_ARG_WITH(xemacs,
|
|
[ --with-xemacs=XEMACS compile with XEMACS [XEMACS=xemacs]],
|
|
[if test x$withval = xyes -o x$withval = x; then
|
|
AC_PATH_PROG(EMACS, xemacs, xemacs, xemacs)
|
|
else
|
|
AC_PATH_PROG(EMACS, $withval, $withval, xemacs)
|
|
fi])
|
|
test -z "${EMACS}" && AC_PATH_PROGS(EMACS, emacs xemacs, emacs)
|
|
AC_SUBST(EMACS)
|
|
AC_SET_VANILLA_FLAG
|
|
AC_SET_XEMACSDEBUG
|
|
|
|
AC_MSG_CHECKING([what a flavor does ${EMACS} have])
|
|
AC_EMACS_LISP(flavor,
|
|
(if (featurep (quote xemacs))\
|
|
(if (and\
|
|
(condition-case nil\
|
|
(progn\
|
|
(unless (or itimer-process itimer-timer)\
|
|
(itimer-driver-start))\
|
|
(let* ((inhibit-quit t)\
|
|
(ctime (current-time))\
|
|
(itimer-timer-last-wakeup\
|
|
(prog1\
|
|
ctime\
|
|
(setcar ctime (1- (car ctime)))))\
|
|
(itimer-list nil)\
|
|
(itimer (start-itimer \"*testing*\"\
|
|
(function ignore) 5)))\
|
|
(sleep-for 0.1)\
|
|
(prog1\
|
|
(> (itimer-value itimer) 0)\
|
|
(delete-itimer itimer))))\
|
|
(error nil))\
|
|
(string-match\
|
|
(concat (vector 94 92 40 63 58 32 43 92 41 42 92 91 92 93))\
|
|
(concat (vector 32 91 93)))\
|
|
(or (not (executable-find \"cat\"))\
|
|
(with-temp-buffer\
|
|
(insert \"foo\")\
|
|
(backward-char)\
|
|
(call-process-region (1- (point)) (point) \"cat\" t t)\
|
|
(goto-char (point-min))\
|
|
(looking-at \"foo\"))))\
|
|
\"XEmacs\"\
|
|
(let ((v (emacs-version)))\
|
|
(if (string-match (char-to-string 41) v)\
|
|
(substring v 0 (match-end 0))\
|
|
\"Old XEmacs\")))\
|
|
(concat \"Emacs \"\
|
|
(mapconcat (function identity)\
|
|
(nreverse\
|
|
(cdr (nreverse\
|
|
(split-string emacs-version\
|
|
(concat (vector 92 46))))))\
|
|
\".\"))),
|
|
noecho)
|
|
case "${flavor}" in
|
|
XEmacs)
|
|
EMACS_FLAVOR=xemacs;;
|
|
Emacs\ 2[[1234]]\.*)
|
|
EMACS_FLAVOR=emacs;;
|
|
*)
|
|
EMACS_FLAVOR=unsupported;;
|
|
esac
|
|
AC_MSG_RESULT(${flavor})
|
|
if test ${EMACS_FLAVOR} = unsupported; then
|
|
AC_MSG_ERROR(${flavor} is not supported.)
|
|
exit 1
|
|
fi])
|
|
|
|
AC_DEFUN(AC_EXAMINE_PACKAGEDIR,
|
|
[dnl Examine PACKAGEDIR.
|
|
AC_EMACS_LISP(PACKAGEDIR,
|
|
(let ((prefix \"${prefix}\")\
|
|
(dirs (append\
|
|
(cond ((boundp (quote early-package-hierarchies))\
|
|
(append (if early-package-load-path\
|
|
early-package-hierarchies)\
|
|
(if late-package-load-path\
|
|
late-package-hierarchies)\
|
|
(if last-package-load-path\
|
|
last-package-hierarchies)))\
|
|
((boundp (quote early-packages))\
|
|
(append (if early-package-load-path\
|
|
early-packages)\
|
|
(if late-package-load-path\
|
|
late-packages)\
|
|
(if last-package-load-path\
|
|
last-packages))))\
|
|
(if (and (boundp (quote configure-package-path))\
|
|
(listp configure-package-path))\
|
|
(delete \"\" configure-package-path))))\
|
|
package-dir)\
|
|
(while (and dirs (not package-dir))\
|
|
(if (file-directory-p (car dirs))\
|
|
(setq package-dir (car dirs)\
|
|
dirs (cdr dirs))))\
|
|
(if package-dir\
|
|
(progn\
|
|
(if (string-match \"/\$\" package-dir)\
|
|
(setq package-dir (substring package-dir 0\
|
|
(match-beginning 0))))\
|
|
(if (and prefix\
|
|
(progn\
|
|
(setq prefix (file-name-as-directory prefix))\
|
|
(eq 0 (string-match (regexp-quote prefix)\
|
|
package-dir))))\
|
|
(replace-match \"\$(prefix)/\" nil nil package-dir)\
|
|
package-dir))\
|
|
\"NONE\")),
|
|
noecho)])
|
|
|
|
AC_DEFUN(AC_PATH_PACKAGEDIR,
|
|
[dnl Check for PACKAGEDIR.
|
|
if test ${EMACS_FLAVOR} = xemacs; then
|
|
AC_MSG_CHECKING([where the XEmacs package is])
|
|
AC_ARG_WITH(packagedir,
|
|
[ --with-packagedir=DIR package DIR for XEmacs],
|
|
[if test "${withval}" = yes -o -z "${withval}"; then
|
|
AC_EXAMINE_PACKAGEDIR
|
|
else
|
|
PACKAGEDIR="${withval}"
|
|
fi],
|
|
AC_EXAMINE_PACKAGEDIR)
|
|
if test -z "${PACKAGEDIR}"; then
|
|
AC_MSG_RESULT(not found)
|
|
else
|
|
AC_MSG_RESULT(${PACKAGEDIR})
|
|
fi
|
|
else
|
|
PACKAGEDIR=NONE
|
|
fi
|
|
AC_SUBST(PACKAGEDIR)])
|
|
|
|
AC_DEFUN(AC_PATH_LISPDIR, [
|
|
if test ${EMACS_FLAVOR} = emacs; then
|
|
tribe=emacs
|
|
else
|
|
tribe=${EMACS_FLAVOR}
|
|
fi
|
|
AC_MSG_CHECKING([prefix for ${EMACS}])
|
|
if test "${prefix}" = NONE; then
|
|
AC_EMACS_LISP(prefix,(expand-file-name \"..\" invocation-directory),noecho)
|
|
prefix=${EMACS_cv_SYS_prefix}
|
|
fi
|
|
AC_MSG_RESULT(${prefix})
|
|
AC_ARG_WITH(lispdir,
|
|
[ --with-lispdir=DIR where lisp files should go
|
|
(use --with-packagedir for XEmacs package)],
|
|
lispdir="${withval}")
|
|
AC_MSG_CHECKING([where lisp files should go])
|
|
if test -z "${lispdir}"; then
|
|
dnl Set the default value.
|
|
theprefix="${prefix}"
|
|
if test "${theprefix}" = NONE; then
|
|
theprefix=${ac_default_prefix}
|
|
fi
|
|
lispdir="\$(datadir)/${tribe}/site-lisp/w3m"
|
|
for thedir in share lib; do
|
|
potential=
|
|
dnl The directory name should be quoted because it might contain spaces.
|
|
if test -d "${theprefix}/${thedir}/${tribe}/site-lisp"; then
|
|
lispdir="\$(prefix)/${thedir}/${tribe}/site-lisp/w3m"
|
|
break
|
|
fi
|
|
done
|
|
fi
|
|
if test ${EMACS_FLAVOR} = xemacs; then
|
|
AC_MSG_RESULT(${lispdir}/
|
|
(it will be ignored when \"make install-package\" is done))
|
|
else
|
|
AC_MSG_RESULT(${lispdir}/)
|
|
fi
|
|
AC_SUBST(lispdir)])
|
|
|
|
AC_DEFUN(AC_PATH_ICONDIR,
|
|
[dnl Examin icon directory.
|
|
|
|
dnl Ignore cache.
|
|
unset EMACS_cv_SYS_icondir;
|
|
|
|
if test ${EMACS_FLAVOR} = xemacs -o ${EMACS_FLAVOR} = emacs; then
|
|
AC_ARG_WITH(icondir,
|
|
[ --with-icondir=ICONDIR directory for icons [\$(data-directory)/images/w3m]],
|
|
ICONDIR="${withval}")
|
|
AC_MSG_CHECKING([where icon files should go])
|
|
if test -z "${ICONDIR}"; then
|
|
dnl Set the default value.
|
|
AC_EMACS_LISP(icondir,
|
|
(let ((prefix \"${prefix}\")\
|
|
(default (expand-file-name \"images/w3m\" data-directory)))\
|
|
(if (and prefix\
|
|
(progn\
|
|
(setq prefix (file-name-as-directory prefix))\
|
|
(eq 0 (string-match (regexp-quote prefix) default))))\
|
|
(replace-match \"\$(prefix)/\" nil nil default)\
|
|
default)),
|
|
${prefix},noecho)
|
|
ICONDIR=${EMACS_cv_SYS_icondir}
|
|
fi
|
|
if test ${EMACS_FLAVOR} = xemacs; then
|
|
AC_MSG_RESULT(${ICONDIR}/
|
|
(it will be ignored when \"make install-package\" is done))
|
|
else
|
|
AC_MSG_RESULT(${ICONDIR})
|
|
fi
|
|
else
|
|
ICONDIR=NONE
|
|
fi
|
|
AC_SUBST(ICONDIR)])
|
|
|
|
AC_DEFUN(AC_ADD_LOAD_PATH,
|
|
[dnl Check for additional load path.
|
|
AC_ARG_WITH(addpath,
|
|
[ --with-addpath=PATHs specify additional PATHs for load-path
|
|
use colons to separate directory names],
|
|
[AC_MSG_CHECKING([where to find the additional elisp libraries])
|
|
if test "x${withval}" != xyes -a "x${withval}" != x; then
|
|
ADDITIONAL_LOAD_PATH="${withval}"
|
|
else
|
|
if test x"$USER" != xroot -a x"$HOME" != x -a -f "$HOME"/.emacs; then
|
|
ADDITIONAL_LOAD_PATH=`${XEMACSDEBUG}${EMACS} -batch -l "$HOME"/.emacs -l w3mhack.el NONE -f w3mhack-load-path 2>/dev/null | $EGREP -v '^$'`
|
|
else
|
|
ADDITIONAL_LOAD_PATH=`${XEMACSDEBUG}${EMACS} -batch -l w3mhack.el NONE -f w3mhack-load-path 2>/dev/null | $EGREP -v '^$'`
|
|
fi
|
|
fi
|
|
AC_MSG_RESULT(${ADDITIONAL_LOAD_PATH})],
|
|
ADDITIONAL_LOAD_PATH=NONE)
|
|
AC_ARG_WITH(attic,
|
|
[ --with-attic use attic libraries for compiling [default: no]
|
|
(it does not mean installing attic libraries)],
|
|
[if test "x${withval}" = xyes; then
|
|
if test x"$ADDITIONAL_LOAD_PATH" = xNONE; then
|
|
ADDITIONAL_LOAD_PATH=`pwd`/attic
|
|
else
|
|
ADDITIONAL_LOAD_PATH=${ADDITIONAL_LOAD_PATH}:`pwd`/attic
|
|
fi
|
|
fi])
|
|
retval=`eval ${XEMACSDEBUG}${EMACS}' '${VANILLA_FLAG}' -batch -l w3mhack.el '${ADDITIONAL_LOAD_PATH}' -f w3mhack-print-status 2>/dev/null | $EGREP -v '\''^$'\'`
|
|
if test x"$retval" != xOK; then
|
|
AC_MSG_ERROR([Process couldn't proceed. See the above messages.])
|
|
fi
|
|
AC_SUBST(ADDITIONAL_LOAD_PATH)])
|