-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathacinclude.m4
184 lines (175 loc) · 5.76 KB
/
acinclude.m4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
dnl
dnl Execute arbitrary emacs lisp
dnl
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 ${EMACS} -batch -eval "(let ((x ${elisp})) (write-region (if (stringp x) (princ x) (prin1-to-string x)) nil \"${OUTPUT}\"))" >& AC_FD_CC 2>&1
${EMACS} -batch -eval "(let ((x ${elisp})) (write-region (if (stringp x) (princ x 'ignore) (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_XEMACS_P, [
AC_MSG_CHECKING([if $EMACS is really XEmacs])
AC_EMACS_LISP(xemacsp,(if (string-match \"XEmacs\" emacs-version) \"yes\" \"no\") ,"noecho")
XEMACS=${EMACS_cv_SYS_xemacsp}
EMACS_FLAVOR=emacs
if test "$XEMACS" = "yes"; then
EMACS_FLAVOR=xemacs
fi
AC_MSG_RESULT($XEMACS)
AC_SUBST(XEMACS)
AC_SUBST(EMACS_FLAVOR)
])
AC_DEFUN(AC_PATH_LISPDIR, [
AC_XEMACS_P
if test "$prefix" = "NONE"; then
AC_MSG_CHECKING([prefix for your Emacs])
AC_EMACS_LISP(prefix,(expand-file-name \"..\" invocation-directory),"noecho")
prefix=${EMACS_cv_SYS_prefix}
AC_MSG_RESULT($prefix)
fi
AC_ARG_WITH(lispdir, --with-lispdir Where to install lisp files, lispdir=${withval})
AC_MSG_CHECKING([where .elc files should go])
if test -z "$lispdir"; then
dnl Set default value
theprefix=$prefix
if test "x$theprefix" = "xNONE"; then
theprefix=$ac_default_prefix
fi
lispdir="\$(datadir)/${EMACS_FLAVOR}/site-lisp"
for thedir in share lib; do
potential=
if test -d ${theprefix}/${thedir}/${EMACS_FLAVOR}/site-lisp; then
lispdir="\$(prefix)/${thedir}/${EMACS_FLAVOR}/site-lisp"
break
fi
done
fi
AC_MSG_RESULT($lispdir)
AC_SUBST(lispdir)
])
dnl
dnl Determine the emacs version we are running.
dnl Automatically substitutes @EMACS_VERSION@ with this number.
dnl
AC_DEFUN(AC_EMACS_VERSION, [
AC_MSG_CHECKING(for emacs version)
AC_EMACS_LISP(version,(and (boundp 'emacs-major-version) (format \"%d.%d\" emacs-major-version emacs-minor-version)),"noecho")
EMACS_VERSION=${EMACS_cv_SYS_version}
AC_SUBST(EMACS_VERSION)
AC_MSG_RESULT(${EMACS_VERSION})
])
dnl
dnl Determine whether the specified version of Emacs supports packages
dnl or not. Currently, only XEmacs 20.3 does, but this is a general
dnl check.
dnl
AC_DEFUN(AC_EMACS_PACKAGES, [
AC_ARG_WITH(package-dir, --with-package-dir Configure as a XEmacs package in directory, [ EMACS_PACKAGE_DIR="${withval}"])
if test -n "$EMACS_PACKAGE_DIR"; then
if test "$prefix" != "NONE"; then
AC_MSG_ERROR([--with-package-dir and --prefix are mutually exclusive])
fi
dnl Massage everything to use $(prefix) correctly.
prefix=$EMACS_PACKAGE_DIR
datadir='$(prefix)/etc/w3'
infodir='$(prefix)/info'
lispdir='$(prefix)/lisp/w3'
fi
AC_SUBST(EMACS_PACKAGE_DIR)
])
dnl
dnl Check whether a function exists in a library
dnl All '_' characters in the first argument are converted to '-'
dnl
AC_DEFUN(AC_EMACS_CHECK_LIB, [
if test -z "$3"; then
AC_MSG_CHECKING(for $2 in $1)
fi
library=`echo $1 | tr _ -`
AC_EMACS_LISP($1,(progn (fmakunbound '$2) (condition-case nil (progn (require '$library) (fboundp '$2)) (error (prog1 nil (message \"$library not found\"))))),"noecho")
if test "${EMACS_cv_SYS_$1}" = "nil"; then
EMACS_cv_SYS_$1=no
fi
if test "${EMACS_cv_SYS_$1}" = "t"; then
EMACS_cv_SYS_$1=yes
fi
HAVE_$1=${EMACS_cv_SYS_$1}
AC_SUBST(HAVE_$1)
if test -z "$3"; then
AC_MSG_RESULT($HAVE_$1)
fi
])
dnl
dnl Check whether a variable exists in a library
dnl All '_' characters in the first argument are converted to '-'
dnl
AC_DEFUN(AC_EMACS_CHECK_VAR, [
AC_MSG_CHECKING(for $2 in $1)
library=`echo $1 | tr _ -`
AC_EMACS_LISP($1,(progn (makunbound '$2) (condition-case nil (progn (require '$library) (boundp '$2)) (error nil))),"noecho")
if test "${EMACS_cv_SYS_$1}" = "nil"; then
EMACS_cv_SYS_$1=no
fi
HAVE_$1=${EMACS_cv_SYS_$1}
AC_SUBST(HAVE_$1)
AC_MSG_RESULT($HAVE_$1)
])
dnl
dnl Perform sanity checking and try to locate the custom and widget packages
dnl
AC_DEFUN(AC_CHECK_CUSTOM, [
AC_MSG_CHECKING(for acceptable custom library)
AC_CACHE_VAL(EMACS_cv_ACCEPTABLE_CUSTOM,[
AC_EMACS_CHECK_LIB(widget,widget-convert-text,"noecho")
AC_EMACS_CHECK_LIB(wid_edit,widget-convert-text,"noecho")
if test "${HAVE_widget}" = "yes"; then
EMACS_cv_ACCEPTABLE_CUSTOM=yes
else
if test "${HAVE_wid_edit}" != "no"; then
EMACS_cv_ACCEPTABLE_CUSTOM=yes
else
EMACS_cv_ACCEPTABLE_CUSTOM=no
fi
fi
if test "${EMACS_cv_ACCEPTABLE_CUSTOM}" = "yes"; then
AC_EMACS_LISP(widget_dir,(file-name-directory (locate-library \"widget\")),"noecho")
EMACS_cv_ACCEPTABLE_CUSTOM=$EMACS_cv_SYS_widget_dir
fi
])
AC_ARG_WITH(custom, --with-custom Specify where to find the custom package, [ EMACS_cv_ACCEPTABLE_CUSTOM=`( cd $withval && pwd || echo "$withval" ) 2> /dev/null` ])
CUSTOM=${EMACS_cv_ACCEPTABLE_CUSTOM}
AC_SUBST(CUSTOM)
AC_MSG_RESULT("${CUSTOM}")
])
AC_DEFUN(AC_CHECK_MAILCRYPT, [
AC_MSG_CHECKING(for recent mailcrypt version)
AC_CACHE_VAL(EMACS_cv_ACCEPTABLE_MAILCRYPT,[
AC_EMACS_CHECK_LIB(mailcrypt,mc-install-read-mode, "noecho")
if test "${HAVE_mailcrypt}" = "yes"; then
EMACS_cv_ACCEPTABLE_MAILCRYPT=yes
else
EMACS_cv_ACCEPTABLE_MAILCRYPT=no
fi
if test "${HAVE_mailcrypt}" = "yes"; then
AC_EMACS_LISP(mailcrypt_dir,(file-name-directory (locate-library \"mailcrypt\")),"noecho")
EMACS_cv_ACCEPTABLE_MAILCRYPT=$EMACS_cv_SYS_mailcrypt_dir
fi
])
AC_ARG_WITH(mailcrypt,[ --with-mailcrypt=DIR Specify where to find the mailcrypt package], [ EMACS_cv_ACCEPTABLE_MAILCRYPT=`( cd $withval && pwd || echo "$withval" ) 2> /dev/null` ])
MAILCRYPT=${EMACS_cv_ACCEPTABLE_MAILCRYPT}
AC_SUBST(MAILCRYPT)
AC_MSG_RESULT("${MAILCRYPT}")
])