* mixi-el: Version 1.4.1 released.
[elisp/mixi.git] / acinclude.m4
1 AC_DEFUN([AC_CHECK_EMACS],
2  [dnl Check for Emacsen.
3
4   dnl Apparently, if you run a shell window in Emacs, it sets the EMACS
5   dnl environment variable to 't'.  Lets undo the damage.
6   test "$EMACS" = t && EMACS=
7
8   dnl Ignore cache.
9   unset ac_cv_prog_EMACS; unset ac_cv_prog_XEMACS;
10
11   AC_ARG_WITH(emacs,
12    [  --with-emacs=EMACS      compile with EMACS [EMACS=emacs, mule...]],
13    [if test "$withval" = yes -o -z "$withval"; then
14       AC_CHECK_PROGS(EMACS, emacs xemacs mule, emacs)
15     else
16       AC_CHECK_PROG(EMACS, $withval, $withval, emacs)
17     fi])
18   AC_ARG_WITH(xemacs,
19    [  --with-xemacs=XEMACS    compile with XEMACS [XEMACS=xemacs]],
20    [if test "$withval" = yes -o -z "$withval"; then
21       AC_CHECK_PROG(XEMACS, xemacs, xemacs, xemacs)
22     else
23       AC_CHECK_PROG(XEMACS, $withval, $withval, xemacs)
24     fi
25     EMACS=$XEMACS],
26    [XEMACS=xemacs
27     test -z "$EMACS" && AC_CHECK_PROGS(EMACS, emacs xemacs mule, emacs)])
28   AC_SUBST(EMACS)
29   AC_SUBST(XEMACS)])
30
31 AC_DEFUN([AC_EMACS_LISP], [
32 elisp="$2"
33 if test -z "$3"; then
34         AC_MSG_CHECKING(for $1)
35 fi
36 AC_CACHE_VAL(EMACS_cv_SYS_$1,[
37         OUTPUT=./conftest-$$
38         echo ${EMACS}' -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
39         eval ${EMACS}' -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
40         if test -f ${OUTPUT}; then
41                 retval=`cat ${OUTPUT}`
42                 echo "=> ${retval}" >& AC_FD_CC 2>&1
43                 rm -f ${OUTPUT}
44                 EMACS_cv_SYS_$1=$retval
45         else
46                 EMACS_cv_SYS_$1=
47         fi
48 ])
49 $1=${EMACS_cv_SYS_$1}
50 if test -z "$3"; then
51         AC_MSG_RESULT($$1)
52 fi
53 ])
54
55 AC_DEFUN([AC_CHECK_EMACS_FLAVOR],
56  [AC_MSG_CHECKING([what flavor does $EMACS have])
57
58   dnl Ignore cache.
59   unset EMACS_cv_SYS_flavor;
60
61   AC_EMACS_LISP(flavor,
62     (cond ((featurep (quote xemacs)) \"XEmacs\")\
63           ((boundp (quote MULE)) \"MULE\")\
64           (t \"FSF Emacs\")),
65     "noecho")
66   case $EMACS_cv_SYS_flavor in
67   XEmacs)
68     EMACS_FLAVOR=xemacs;;
69   MULE)
70     EMACS_FLAVOR=mule;;
71   *)
72     EMACS_FLAVOR=emacs;;
73   esac
74   AC_MSG_RESULT($EMACS_cv_SYS_flavor)])
75
76 AC_DEFUN([AC_PATH_LISPDIR], [
77   AC_CHECK_EMACS_FLAVOR
78   if test "$prefix" = NONE; then
79         AC_MSG_CHECKING([prefix for your Emacs])
80         AC_EMACS_LISP(prefix,(expand-file-name \"..\" invocation-directory),"noecho")
81         prefix=${EMACS_cv_SYS_prefix}
82         AC_MSG_RESULT($prefix)
83   fi
84   AC_ARG_WITH(lispdir,
85     [  --with-lispdir=DIR      Where to install lisp files
86                           (for XEmacs package, use --with-packagedir instead)],
87     lispdir=${withval})
88   AC_MSG_CHECKING([where lisp files should go])
89   if test -z "$lispdir"; then
90     dnl Set default value
91     theprefix=$prefix
92     if test "$theprefix" = NONE; then
93         theprefix=$ac_default_prefix
94     fi
95     lispdir="\$(datadir)/${EMACS_FLAVOR}/site-lis"
96     for thedir in share lib; do
97         potential=
98         if test -d ${theprefix}/${thedir}/${EMACS_FLAVOR}/site-lisp; then
99            lispdir="\$(prefix)/${thedir}/${EMACS_FLAVOR}/site-lisp"
100            break
101         fi
102     done
103   fi
104   if test ${EMACS_FLAVOR} = xemacs; then
105     AC_MSG_RESULT([$lispdir
106          (it will be ignored when \"make install-package[[-ja]]\" is done)])
107   else
108     AC_MSG_RESULT([$lispdir])
109   fi
110   AC_SUBST(lispdir)
111 ])
112
113 dnl
114 dnl Perform sanity checking and try to locate the Shimbun package
115 dnl
116 AC_DEFUN([AC_CHECK_SHIMBUN], [
117   AC_MSG_CHECKING(have shimbun)
118
119   dnl Ignore cache.
120   unset EMACS_cv_SYS_shimbun_dir;
121
122   AC_ARG_WITH(shimbun,[  --with-shimbun[[=ARG]]    Use shimbun [[ARG=yes]]],
123     [if test "$withval" = yes -o -z "$withval"; then
124        HAVE_SHIMBUN=yes
125      else
126        HAVE_SHIMBUN=$withval
127      fi], HAVE_SHIMBUN=yes)
128
129   if test "${HAVE_SHIMBUN}" = yes; then
130     AC_EMACS_LISP(shimbun_dir,(file-name-directory (locate-library \"shimbun\")),"noecho")
131     SHIMBUN_DIR=$EMACS_cv_SYS_shimbun_dir
132   fi
133
134   if test "${HAVE_SHIMBUN}" != yes; then
135     AC_MSG_RESULT(no)
136   elif test -z "${SHIMBUN_DIR}"; then
137     HAVE_SHIMBUN=no
138     AC_MSG_RESULT(not found)
139   else
140     AC_MSG_RESULT(${HAVE_SHIMBUN})
141  fi
142 ])
143
144 dnl
145 dnl Perform sanity checking and try to locate the Gnus package
146 dnl
147 AC_DEFUN([AC_CHECK_GNUS], [
148   AC_MSG_CHECKING(have gnus)
149
150   dnl Ignore cache.
151   unset EMACS_cv_SYS_gnus_dir;
152
153   AC_ARG_WITH(gnus,[  --with-gnus[[=ARG]]       Use gnus [[ARG=yes]]],
154     [if test "$withval" = yes -o -z "$withval"; then
155        HAVE_GNUS=yes
156      else
157        HAVE_GNUS=$withval
158      fi], HAVE_GNUS=yes)
159
160   if test "${HAVE_GNUS}" = yes; then
161     AC_EMACS_LISP(gnus_dir,(file-name-directory (locate-library \"gnus\")),"noecho")
162     GNUS_DIR=$EMACS_cv_SYS_gnus_dir
163   fi
164
165   if test "${HAVE_GNUS}" != yes; then
166     AC_MSG_RESULT(no)
167   elif test -z "${GNUS_DIR}"; then
168     HAVE_GNUS=no
169     AC_MSG_RESULT(not found)
170   else
171     AC_MSG_RESULT(${HAVE_GNUS})
172  fi
173 ])
174
175 dnl
176 dnl Perform sanity checking and try to locate the Wanderlust package
177 dnl
178 AC_DEFUN([AC_CHECK_WL], [
179   AC_MSG_CHECKING(have wanderlust)
180
181   dnl Ignore cache.
182   unset EMACS_cv_SYS_wl_dir;
183
184   AC_ARG_WITH(wl,[  --with-wl[[=ARG]]         Use wanderlust [[ARG=yes]]],
185     [if test "$withval" = yes -o -z "$withval"; then
186        HAVE_WL=yes
187      else
188        HAVE_WL=$withval
189      fi], HAVE_WL=yes)
190
191   if test "${HAVE_WL}" = yes; then
192     AC_EMACS_LISP(wl_dir,(file-name-directory (locate-library \"wl\")),"noecho")
193     WL_DIR=$EMACS_cv_SYS_wl_dir
194   fi
195
196   if test "${HAVE_WL}" != yes; then
197     AC_MSG_RESULT(no)
198   elif test -z "${WL_DIR}"; then
199     HAVE_WL=no
200     AC_MSG_RESULT(not found)
201   else
202     AC_MSG_RESULT(${HAVE_WL})
203  fi
204 ])
205
206 dnl
207 dnl Perform sanity checking and try to locate the Riece package
208 dnl
209 AC_DEFUN([AC_CHECK_RIECE], [
210   AC_MSG_CHECKING(have riece)
211
212   dnl Ignore cache.
213   unset EMACS_cv_SYS_riece_dir;
214
215   AC_ARG_WITH(riece,[  --with-riece[[=ARG]]      Use riece [[ARG=yes]]],
216     [if test "$withval" = yes -o -z "$withval"; then
217        HAVE_RIECE=yes
218      else
219        HAVE_RIECE=$withval
220      fi], HAVE_RIECE=yes)
221
222   if test "${HAVE_RIECE}" = yes; then
223     AC_EMACS_LISP(riece_dir,(file-name-directory (locate-library \"riece\")),"noecho")
224     RIECE_DIR=$EMACS_cv_SYS_riece_dir
225   fi
226
227   if test "${HAVE_RIECE}" != yes; then
228     AC_MSG_RESULT(no)
229   elif test -z "${RIECE_DIR}"; then
230     HAVE_RIECE=no
231     AC_MSG_RESULT(not found)
232   else
233     AC_MSG_RESULT(${HAVE_RIECE})
234  fi
235 ])
236
237 AC_DEFUN([AC_EXAMINE_PACKAGEDIR],
238  [dnl Examine PACKAGEDIR.
239   AC_EMACS_LISP(PACKAGEDIR,
240     (let (package-dir)\
241       (if (boundp (quote early-packages))\
242           (let ((dirs (delq nil (append (if early-package-load-path\
243                                             early-packages)\
244                                         (if late-package-load-path\
245                                             late-packages)\
246                                         (if last-package-load-path\
247                                             last-packages)))))\
248             (while (and dirs (not package-dir))\
249               (if (file-directory-p (car dirs))\
250                   (setq package-dir (car dirs)\
251                         dirs (cdr dirs))))))\
252       (or package-dir \"\")),
253     "noecho")])
254
255 AC_DEFUN([AC_PATH_PACKAGEDIR],
256  [dnl Check for PACKAGEDIR.
257   if test ${EMACS_FLAVOR} = xemacs; then
258     AC_MSG_CHECKING([where the XEmacs package is])
259     AC_ARG_WITH(packagedir,
260       [  --with-packagedir=DIR   package DIR for XEmacs],
261       [if test "$withval" != yes -a -n "$withval"; then
262         PACKAGEDIR=$withval
263       else
264         AC_EXAMINE_PACKAGEDIR
265       fi],
266       AC_EXAMINE_PACKAGEDIR)
267     if test -z "$PACKAGEDIR"; then
268       AC_MSG_RESULT(not found)
269     else
270       AC_MSG_RESULT($PACKAGEDIR)
271     fi
272   else
273     PACKAGEDIR=
274   fi
275   AC_SUBST(PACKAGEDIR)])
276
277 AC_DEFUN([AC_ADD_LOAD_PATH],
278  [dnl Check for additional load path.
279   AC_ARG_WITH(addpath,
280    [  --with-addpath=PATH     search Emacs-Lisp libraries with PATH
281                           use colons to separate directory names],
282    [if test "$withval" != yes -a -n "$withval"; then
283       AC_MSG_CHECKING([where to find the additional elisp libraries])
284       ADDITIONAL_LOAD_PATH=$withval
285       AC_MSG_RESULT($ADDITIONAL_LOAD_PATH)
286     fi],
287     ADDITIONAL_LOAD_PATH=)
288   AC_SUBST(ADDITIONAL_LOAD_PATH)])
289
290 AC_DEFUN([AC_EXAMINE_MODULES],
291  [dnl Examine install files.
292
293   MODULES_MIXI="mixi.el mixi-utils.el mixi-atom.el mixi-ticker.el"
294   MODULES_SHIMBUN="sb-mixi.el"
295   MODULES_GNUS="mixi-gnus.el"
296   MODULES_WL="mixi-wl.el"
297   MODULES_RIECE="riece-mixi.el"
298
299   MODULES=${MODULES_MIXI}
300   MODULES_ALL="${MODULES} ${MODULES_SHIMBUN} ${MODULES_GNUS} ${MODULES_WL} ${MODULES_RIECE}"
301
302   if test ${HAVE_SHIMBUN} = yes; then
303     MODULES="${MODULES} ${MODULES_SHIMBUN}"
304   fi
305   if test ${HAVE_GNUS} = yes; then
306     MODULES="${MODULES} ${MODULES_GNUS}"
307   fi
308   if test ${HAVE_WL} = yes; then
309     MODULES="${MODULES} ${MODULES_WL}"
310   fi
311   if test ${HAVE_RIECE} = yes; then
312     MODULES="${MODULES} ${MODULES_RIECE}"
313   fi
314
315   AC_SUBST(MODULES)
316   AC_SUBST(MODULES_ALL)])