From be8aa1df91ef09038eaadd01cdb250fc0e6eb546 Mon Sep 17 00:00:00 2001 From: ShengHuo ZHU Date: Tue, 11 Jul 2000 19:57:25 +0000 Subject: [PATCH 1/1] Use macro from w3. For details see ChangeLog. --- ChangeLog | 6 +++ aclocal.m4 | 113 ++++++++++++++++++++++++++++++++++++++++++++++ configure.in | 20 +++++++- lisp/ChangeLog | 5 ++ lisp/Makefile.in | 7 +-- lisp/dgnushack.el | 6 ++- texi/ChangeLog | 5 ++ texi/Makefile.in | 10 ++-- 8 files changed, 161 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index c4800f287..d34159106 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2000-07-12 15:47:06 ShengHuo ZHU + + * aclocal.m4: Stolen macros from w3. + * configure.in: Use them. + * configure: Generate it. + 2000-04-22 20:25:20 Lars Magne Ingebrigtsen * GNUS-NEWS: Outline. diff --git a/aclocal.m4 b/aclocal.m4 index 1b62c54df..a7df500ed 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -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}") +]) diff --git a/configure.in b/configure.in index 675635b35..52c0d9d6c 100644 --- a/configure.in +++ b/configure.in @@ -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) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1baaac9dc..ae55e5091 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2000-07-12 15:48:29 ShengHuo ZHU + + * Makefile.in: Use W3DIR and lispdir. + * dgnushack.el: Ditto. + 2000-07-12 10:12:31 ShengHuo ZHU * gnus-art.el (article-de-base64-unreadable): Typo. diff --git a/lisp/Makefile.in b/lisp/Makefile.in index a27c63895..6d3f18033 100644 --- a/lisp/Makefile.in +++ b/lisp/Makefile.in @@ -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 diff --git a/lisp/dgnushack.el b/lisp/dgnushack.el index 5579432a4..2005ee2c2 100644 --- a/lisp/dgnushack.el +++ b/lisp/dgnushack.el @@ -31,7 +31,11 @@ (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) diff --git a/texi/ChangeLog b/texi/ChangeLog index 2cc25e29c..f53b2eca1 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,8 @@ +2000-07-12 15:49:34 ShengHuo ZHU + + * 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 * gnus.texi (Splitting Mail): Mention gnus-summary-respool-trace. diff --git a/texi/Makefile.in b/texi/Makefile.in index 63a96b04a..963ff85f2 100644 --- a/texi/Makefile.in +++ b/texi/Makefile.in @@ -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 -- 2.25.1