Use macro from w3. For details see ChangeLog.
authorShengHuo ZHU <zsh@cs.rochester.edu>
Tue, 11 Jul 2000 19:57:25 +0000 (19:57 +0000)
committerShengHuo ZHU <zsh@cs.rochester.edu>
Tue, 11 Jul 2000 19:57:25 +0000 (19:57 +0000)
ChangeLog
aclocal.m4
configure.in
lisp/ChangeLog
lisp/Makefile.in
lisp/dgnushack.el
texi/ChangeLog
texi/Makefile.in

index c4800f2..d341591 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2000-07-12 15:47:06  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * aclocal.m4: Stolen macros from w3.
+       * configure.in: Use them.
+       * configure: Generate it.
+
 2000-04-22 20:25:20  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * GNUS-NEWS: Outline.
index 1b62c54..a7df500 100644 (file)
@@ -29,3 +29,116 @@ AC_DEFUN(AM_PATH_LISPDIR,
     AC_MSG_RESULT($lispdir)
   fi
   AC_SUBST(lispdir)])
+
+dnl AC_EMACS_LIST AC_XEMACS_P AC_PATH_LISPDIR and AC_EMACS_CHECK_LIB
+dnl are stolen from w3.
+dnl AC_PATH_LISPDIR obsoletes AM_PATH_LISPDIR.
+
+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=DIR      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 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 Perform sanity checking and try to locate the W3 package
+dnl
+AC_DEFUN(AC_CHECK_W3, [
+AC_MSG_CHECKING(for acceptable W3 version)
+AC_CACHE_VAL(EMACS_cv_ACCEPTABLE_W3,[
+AC_EMACS_CHECK_LIB(w3_forms, w3-form-encode-xwfu,"noecho")
+if test "${HAVE_w3_forms}" = "yes"; then
+       EMACS_cv_ACCEPTABLE_W3=yes
+else
+       EMACS_cv_ACCEPTABLE_W3=no
+fi
+
+if test "${EMACS_cv_ACCEPTABLE_W3}" = "yes"; then
+       AC_EMACS_LISP(w3_dir,(file-name-directory (locate-library \"w3-forms\")),"noecho")
+       EMACS_cv_ACCEPTABLE_W3=$EMACS_cv_SYS_w3_forms
+fi
+])
+   AC_ARG_WITH(w3,[  --with-w3=DIR           Specify where to find the w3 package], [ EMACS_cv_ACCEPTABLE_W3=`( cd $withval && pwd || echo "$withval" ) 2> /dev/null` ])
+   W3=${EMACS_cv_ACCEPTABLE_W3}
+   AC_SUBST(W3)
+   AC_MSG_RESULT("${W3}")
+])
index 675635b..52c0d9d 100644 (file)
@@ -1,6 +1,22 @@
 AC_INIT(lisp/gnus.el)
 AC_SET_MAKE
 AC_PROG_INSTALL
-AM_PATH_LISPDIR
-AC_PATH_PROG(MAKEINFO, makeinfo, no)
+
+dnl
+dnl Apparently, if you run a shell window in Emacs, it sets the EMACS
+dnl environment variable to 't'.  Lets undo the damage.
+dnl
+if test "${EMACS}" = "t"; then
+   EMACS=""
+fi
+
+AC_ARG_WITH(xemacs,           --with-xemacs             Use XEmacs to build, [ if test "${withval}" = "yes"; then EMACS=xemacs; else EMACS=${withval}; fi ])
+AC_ARG_WITH(emacs,            --with-emacs              Use Emacs to build, [ if test "${withval}" = "yes"; then EMACS=emacs; else EMACS=${withval}; fi ])
+AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, no)
+
+AC_CHECK_PROG(EMACS, emacs, emacs, xemacs)
+
+AC_PATH_LISPDIR
+AC_CHECK_W3
+
 AC_OUTPUT(Makefile lisp/Makefile texi/Makefile)
index 1baaac9..ae55e50 100644 (file)
@@ -1,3 +1,8 @@
+2000-07-12 15:48:29  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * Makefile.in: Use W3DIR and lispdir.
+       * dgnushack.el: Ditto.
+
 2000-07-12 10:12:31  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
        * gnus-art.el (article-de-base64-unreadable): Typo.
index a27c638..6d3f180 100644 (file)
@@ -11,19 +11,20 @@ INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 SHELL = /bin/sh
 VPATH = @srcdir@
+W3DIR = @W3@
 
 all total:
        rm -f *.elc
-       srcdir=$(srcdir) $(EMACS) $(FLAGS) -f dgnushack-compile
+       W3DIR=$(W3DIR) lispdir=$(lispdir) srcdir=$(srcdir) $(EMACS) $(FLAGS) -f dgnushack-compile
 
 warn:
        rm -f *.elc
-       srcdir=$(srcdir) $(EMACS) $(FLAGS) --eval '(dgnushack-compile t)' 2>&1 | egrep -v "variable G|inhibit-point-motion-hooks|coding-system|temp-results|variable gnus|variable nn|scroll-in-place|deactivate-mark|filladapt-mode|byte-code-function-p|print-quoted|ps-right-header|ps-left-header|article-inhibit|print-escape|ssl-program-arguments|message-log-max"
+       W3DIR=$(W3DIR) lispdir=$(lispdir) srcdir=$(srcdir) $(EMACS) $(FLAGS) --eval '(dgnushack-compile t)' 2>&1 | egrep -v "variable G|inhibit-point-motion-hooks|coding-system|temp-results|variable gnus|variable nn|scroll-in-place|deactivate-mark|filladapt-mode|byte-code-function-p|print-quoted|ps-right-header|ps-left-header|article-inhibit|print-escape|ssl-program-arguments|message-log-max"
 
 # The "clever" rule is unsafe, since redefined macros are loaded from
 # .elc files, and not the .el file.
 clever some:
-       srcdir=$(srcdir) $(EMACS) $(FLAGS) -f dgnushack-compile
+       W3DIR=$(W3DIR) lispdir=$(lispdir) srcdir=$(srcdir) $(EMACS) $(FLAGS) -f dgnushack-compile
 
 install: clever
        rm -f dgnushack.elc
index 5579432..2005ee2 100644 (file)
 
 (require 'cl)
 
-(push "/usr/share/emacs/site-lisp" load-path)
+(push (or (getenv "lispdir") 
+         "/usr/share/emacs/site-lisp")
+      load-path)
+(push (or (getenv "W3DIR") (expand-file-name "../../w3/lisp/" srcdir)) 
+      load-path)
 
 (unless (featurep 'xemacs)
   (define-compiler-macro last (&whole form x &optional n)
index 2cc25e2..f53b2ec 100644 (file)
@@ -1,3 +1,8 @@
+2000-07-12 15:49:34  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * Makefile.in: Add EMACS. Test -x "$(MAKEINFO)" does not work.
+       Use sed instead of perl (suggested by Nick V. Pakoulin).
+
 2000-07-03 00:24:55  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus.texi (Splitting Mail): Mention gnus-summary-respool-trace. 
index 63a96b0..963ff85 100644 (file)
@@ -8,13 +8,13 @@ VPATH=$(srcdir)
 TEXI2DVI=texi2dvi
 TEXI2PDF=texi2pdf
 MAKEINFO=@MAKEINFO@
+EMACS=@EMACS@
 EMACSINFO=$(EMACS) -batch -q -no-site-file
 INFOSWI=-l texinfmt -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer
 XINFOSWI=-l texinfmt -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer
 PDFLATEX=pdflatex
 LATEX=latex
 DVIPS=dvips
-PERL=perl
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 SHELL = /bin/sh
@@ -27,7 +27,7 @@ most: texi2latex.elc latex latexps
 .SUFFIXES: .texi .dvi .ps .pdf
 
 .texi:
-       if test -x $(MAKEINFO); then \
+       if test "x$(MAKEINFO)" != "xno" ; then \
          makeinfo -o $* $<; \
        else \
          $(EMACSINFO) -eval '(find-file "$<")' $(XINFOSWI); \
@@ -38,13 +38,13 @@ dvi: gnus.dvi message.dvi refcard.dvi emacs-mime.dvi
 pdf: gnus.pdf message.pdf refcard.pdf emacs-mime.pdf
  
 .texi.dvi :
-       $(PERL) -n -e 'print unless (/\@iflatex/ .. /\@end iflatex/)' $< > gnustmp.texi
+       sed -e '/@iflatex/,/@end iflatex/d' $< > gnustmp.texi 
        $(TEXI2DVI) gnustmp.texi
        cp gnustmp.dvi $*.dvi
        rm gnustmp.*
 
 .texi.pdf :
-       $(PERL) -n -e 'print unless (/\@iflatex/ .. /\@end iflatex/)' $< > gnustmp.texi
+       sed -e '/@iflatex/,/@end iflatex/d' $< > gnustmp.texi 
        $(TEXI2PDF) gnustmp.texi
        cp gnustmp.pdf $*.pdf
        rm gnustmp.*
@@ -59,7 +59,7 @@ refcard.pdf: refcard.tex gnuslogo.refcard gnusref.tex
 
 clean:
        rm -f gnus.*.bak *.ky *.cp *.fn *.cps *.kys *.log *.aux *.dvi *.vr \
-       *.tp *.toc *.pg gnus.latexi *.aux *.[cgk]idx \
+       *.pdf *.tp *.toc *.pg gnus.latexi *.aux *.[cgk]idx \
        gnus.ilg gnus.ind gnus.[cgk]ind gnus.idx \
        gnus.tmptexi *.tmplatexi gnus.tmplatexi1 texput.log *.orig *.rej \
        gnus.latexi*~* tmp/*.ps xface.tex picons.tex smiley.tex *.latexi