* configure.in: Add new option `--with-utf-2000'; define `UTF2000'
if it is specified.
+2004-02-02 Vin Shelton <acs@xemacs.org>
+
+ * XEmacs 21.4.15 is released
+
+2004-01-30 Vin Shelton <acs@xemacs.org>
+
+ * etc/OXYMORONS: Inserted "Corporate Culture" for 21.4.15.
+
+2004-01-25 Steve Youngs <youngs@xemacs.org>
+
+ * etc/package-index.LATEST.gpg: New, replaces
+ `package-index.LATEST.pgp'.
+
+ * etc/package-index.LATEST.pgp: Removed, replaced with
+ `package-index.LATEST.gpg'.
+
+2004-01-20 Jerry James <james@xemacs.org>
+
+ * configure.in: The icc compiler pretends to be gcc. It isn't.
+
+2003-11-28 Norbert Koch <viteno@xemacs.org>
+
+ * etc/PACKAGES (ERC): new.
+
+2003-11-19 Vin Shelton <acs@xemacs.org>
+
+ * configure.usage (--with-widgets): widgets now defaults to
+ --with-widgets=no. Patch inspired by Jim Schumacher.
+
+2003-10-25 Norbert Koch <viteno@xemacs.org>
+
+ * etc/PACKAGES (riece): New package.
+ * etc/PACKAGES (liece): Mark as deprecated.
+
+2003-10-26 Vin Shelton <acs@xemacs.org>
+
+ * configure.in: Add Intel C++ compiler detection to compiler
+ version reporting.
+
+2003-10-16 Valdis Kletnieks <valdis.kletnieks@vt.edu>
+ * configure.in: record additional info about compiler and libc
+ versions, to assist in debugging.
+
+2003-08-28 Stephen J. Turnbull <stephen@xemacs.org>
+
+ * configure.in (line 3573):
+ (Mule input methods):
+ Deprecate Motif for Linux.
+ (Installation): Report when LessTif is used.
+
+2003-10-11 Jerry James <james@xemacs.org>
+
+ * configure.in: installexe.sh is under srcdir, not blddir.
+
+2003-10-16 Jerry James <james@xemacs.org>
+ * aclocal.m4: Add icc (Intel compiler) support.
+ * configure.in: Ditto.
+
+2003-09-13 Martin Buchholz <martin@xemacs.org>
+
+ * configure.in (OS_RELEASE): Add support for SunOS 5.10.
+ On current OSes produced by Sun, `uname -r' prints "5.9".
+ It seems likely that on future OSes, `uname -r' will print "5.10".
+ We need to accept multi-digit release numbers.
+
+2003-09-12 Rodney Sparapani <rsparapa@mcw.edu>
+
+ * PROBLEMS: Propose bash as an alternative to buggy Solaris
+ /bin/sh.
+
+2003-09-10 Martin Buchholz <martin@xemacs.org>
+
+ * configure.in: XEmacs failed to build on Solaris9.
+ Solaris9 comes with /usr/demo/SOUND, but no headers or libraries
+ therein.
+
2003-09-03 Vin Shelton <acs@xemacs.org>
* XEmacs 21.4.14 is released
This only occurs if you have LANG != C. This is a known bug with
/bin/sh fixed by installing Patch-ID# 101613-01. Or, you can use
-bash, as a workaround.
+bash by setting the environment variable CONFIG_SHELL to /bin/bash
+
+*** Solaris 2.x configure fails: ./config.status: test: argument expected
+
+This is a known bug with /bin/sh and /bin/test, i.e. they do not
+support the XPG4 standard. You can use bash as a workaround or an
+XPG4-compliant Bourne shell such as the Sun-supplied /usr/xpg4/bin/sh
+by setting the environment variable CONFIG_SHELL to /usr/xpg4/bin/sh
*** On SunOS, you get linker errors
ld: Undefined symbol
wl=
can_build_shared=yes
-if test "$XEGCC" = yes; then
+if test "$XEGCC" = yes -o "$__ICC" = yes; then
wl='-Wl,'
case "$xehost_os" in
xldf=
xcldf=
AC_MSG_CHECKING(if C compiler can produce shared libraries)
-if test "$XEGCC" = yes; then
+if test "$XEGCC" = yes -o "$__ICC" = yes; then
xcldf="-shared"
xldf="-shared"
else # Not using GCC
esac
case "$canonical" in
- *-solaris* )
+ *-solaris* )
opsys=sol2
- os_release=`uname -r | sed -e 's/^\([0-9]\)\.\([0-9]\).*/\1\2/'`
+ os_release_major=`uname -r | sed -e 's/^\([0-9]\{1,\}\)\.\([0-9]\{1,\}\).*/\1/'`
+ os_release_minor=`uname -r | sed -e 's/^\([0-9]\{1,\}\)\.\([0-9]\{1,\}\).*/\2/'`
+ case "$os_release_minor" in [0-9])
+ os_release_minor="0${os_release_minor}";;
+ esac
+ os_release="${os_release_major}${os_release_minor}"
{ test "$extra_verbose" = "yes" && cat << EOF
Defining OS_RELEASE = $os_release
EOF
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1656: checking for $ac_word" >&5
+echo "configure:1661: checking for $ac_word" >&5
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1683: checking for $ac_word" >&5
+echo "configure:1688: checking for $ac_word" >&5
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
# Extract the first word of "cl", so it can be a program name with args.
set dummy cl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1731: checking for $ac_word" >&5
+echo "configure:1736: checking for $ac_word" >&5
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1760: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1765: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS'
cat > conftest.$ac_ext << EOF
-#line 1773 "configure"
+#line 1778 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:1778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1783: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1806: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1811: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1811: checking whether we are using GNU C" >&5
+echo "configure:1816: checking whether we are using GNU C" >&5
cat > conftest.c <<EOF
#ifdef __GNUC__
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1818: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1823: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1836: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1841: checking whether ${CC-cc} accepts -g" >&5
echo 'void f(){}' > conftest.c
if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1869: checking for $ac_word" >&5
+echo "configure:1874: checking for $ac_word" >&5
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1896: checking for $ac_word" >&5
+echo "configure:1901: checking for $ac_word" >&5
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
# Extract the first word of "cl", so it can be a program name with args.
set dummy cl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1944: checking for $ac_word" >&5
+echo "configure:1949: checking for $ac_word" >&5
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1973: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1978: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS'
cat > conftest.$ac_ext << EOF
-#line 1986 "configure"
+#line 1991 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:1991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:2019: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:2024: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:2024: checking whether we are using GNU C" >&5
+echo "configure:2029: checking whether we are using GNU C" >&5
cat > conftest.c <<EOF
#ifdef __GNUC__
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2031: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2036: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:2049: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:2054: checking whether ${CC-cc} accepts -g" >&5
echo 'void f(){}' > conftest.c
if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2082: checking for $ac_word" >&5
+echo "configure:2087: checking for $ac_word" >&5
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2109: checking for $ac_word" >&5
+echo "configure:2114: checking for $ac_word" >&5
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
# Extract the first word of "cl", so it can be a program name with args.
set dummy cl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2157: checking for $ac_word" >&5
+echo "configure:2162: checking for $ac_word" >&5
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:2186: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:2191: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS'
cat > conftest.$ac_ext << EOF
-#line 2199 "configure"
+#line 2204 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:2204: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2209: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:2232: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:2237: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:2237: checking whether we are using GNU C" >&5
+echo "configure:2242: checking whether we are using GNU C" >&5
cat > conftest.c <<EOF
#ifdef __GNUC__
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2244: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2249: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:2262: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:2267: checking whether ${CC-cc} accepts -g" >&5
echo 'void f(){}' > conftest.c
if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
test -n "$NON_GNU_CPP" -a "$GCC" != "yes" -a -z "$CPP" && CPP="$NON_GNU_CPP"
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:2299: checking how to run the C preprocessor" >&5
+echo "configure:2304: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 2312 "configure"
+#line 2317 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2318: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2323: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 2329 "configure"
+#line 2334 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2335: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2340: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 2346 "configure"
+#line 2351 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2352: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2357: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
echo $ac_n "checking for AIX""... $ac_c" 1>&6
-echo "configure:2378: checking for AIX" >&5
+echo "configure:2383: checking for AIX" >&5
cat > conftest.$ac_ext <<EOF
-#line 2380 "configure"
+#line 2385 "configure"
#include "confdefs.h"
#ifdef _AIX
yes
echo $ac_n "checking for GNU libc""... $ac_c" 1>&6
-echo "configure:2407: checking for GNU libc" >&5
+echo "configure:2412: checking for GNU libc" >&5
cat > conftest.$ac_ext <<EOF
-#line 2409 "configure"
+#line 2414 "configure"
#include "confdefs.h"
#include <features.h>
int main() {
; return 0; }
EOF
-if { (eval echo configure:2421: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2426: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
have_glibc=yes
else
EOF
}
- if test "$os_release" -ge 55; then
+ if test "$os_release" -ge 505; then
{ test "$extra_verbose" = "yes" && cat << \EOF
Defining _XOPEN_SOURCE = 500
EOF
esac
cat > conftest.$ac_ext <<EOF
-#line 2498 "configure"
+#line 2503 "configure"
#include "confdefs.h"
int main () {
#if defined __SUNPRO_C
return 12;
#elif defined __USLC__ && defined __SCO_VERSION__
return 13;
+#elif defined __INTEL_COMPILER
+return 14;
#else
return 0;
#endif
}
EOF
-if { (eval echo configure:2512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:2519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
:
else
cat conftest.$ac_ext >&5
rm -fr conftest*
case "$conftest_rc" in
- 11) echo "You appear to be using the SunPro C compiler."; __SUNPRO_C=yes ;;
- 12) echo "You appear to be using the DEC C compiler." ; __DECC=yes ;;
- 13) echo "You appear to be using the SCO C compiler." ; __USLC__=yes ;;
+ 11) echo "You appear to be using the SunPro C compiler." ; __SUNPRO_C=yes ;;
+ 12) echo "You appear to be using the DEC C compiler." ; __DECC=yes ;;
+ 13) echo "You appear to be using the SCO C compiler." ; __USLC__=yes ;;
+ 14) echo "You appear to be using the Intel C++ compiler."; __ICC=yes
+ GCC=no ;;
esac
fi
rm -fr conftest*
if test "$__USLC__" = yes; then
echo $ac_n "checking for whether the -Kalloca compiler flag is needed""... $ac_c" 1>&6
-echo "configure:2746: checking for whether the -Kalloca compiler flag is needed" >&5
+echo "configure:2755: checking for whether the -Kalloca compiler flag is needed" >&5
need_kalloca=no
cat > conftest.$ac_ext <<EOF
-#line 2749 "configure"
+#line 2758 "configure"
#include "confdefs.h"
int main() {
void *x = alloca(4);
; return 0; }
EOF
-if { (eval echo configure:2756: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2765: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
:
else
xe_save_c_switch_system="$c_switch_system"
c_switch_system="$c_switch_system -Kalloca"
cat > conftest.$ac_ext <<EOF
-#line 2767 "configure"
+#line 2776 "configure"
#include "confdefs.h"
int main() {
void *x = alloca(4);
; return 0; }
EOF
-if { (eval echo configure:2774: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2783: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
need_kalloca=yes
else
CFLAGS="-O3"
elif test "$CC" = "xlc"; then
CFLAGS="-g -O3 -qstrict -qnoansialias -qlibansi -qinfo -qro -qmaxmem=20000"
+ elif test "$__ICC" = "yes"; then
+ CFLAGS="-g -O3 -Ob2 -Wall -W1"
else
CFLAGS="-O" ; fi
fi
if test "$GCC" = "yes"; then
echo $ac_n "checking for buggy gcc versions""... $ac_c" 1>&6
-echo "configure:2815: checking for buggy gcc versions" >&5
+echo "configure:2826: checking for buggy gcc versions" >&5
GCC_VERSION=`$CC --version`
case `uname -s`:`uname -m`:$GCC_VERSION in
*:sun4*:2.8.1|*:sun4*:egcs-2.90.*)
if test "$pdump" != "yes"; then
echo $ac_n "checking for \"-z nocombreloc\" linker flag""... $ac_c" 1>&6
-echo "configure:2873: checking for \"-z nocombreloc\" linker flag" >&5
+echo "configure:2884: checking for \"-z nocombreloc\" linker flag" >&5
case "`ld --help 2>&1`" in
*-z\ nocombreloc* ) echo "$ac_t""yes" 1>&6
ld_switch_site="-z nocombreloc $ld_switch_site" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-z nocombreloc\" to \$ld_switch_site"; fi ;;
fi
echo $ac_n "checking for dynodump""... $ac_c" 1>&6
-echo "configure:2962: checking for dynodump" >&5
+echo "configure:2973: checking for dynodump" >&5
if test "$unexec" != "unexsol2.o"; then
echo "$ac_t""no" 1>&6
else
done
echo $ac_n "checking for terminateAndUnload in -lC""... $ac_c" 1>&6
-echo "configure:3000: checking for terminateAndUnload in -lC" >&5
+echo "configure:3011: checking for terminateAndUnload in -lC" >&5
ac_lib_var=`echo C'_'terminateAndUnload | sed 'y%./+-%__p_%'`
xe_check_libs=" -lC "
cat > conftest.$ac_ext <<EOF
-#line 3005 "configure"
+#line 3016 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
terminateAndUnload()
; return 0; }
EOF
-if { (eval echo configure:3016: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3027: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
if test "$add_runtime_path" = "yes"; then
echo $ac_n "checking "for runtime libraries flag"""... $ac_c" 1>&6
-echo "configure:3124: checking "for runtime libraries flag"" >&5
+echo "configure:3135: checking "for runtime libraries flag"" >&5
case "$opsys" in
sol2 ) dash_r="-R" ;;
decosf* | linux* | irix*) dash_r="-rpath " ;;
done
fi
cat > conftest.$ac_ext <<EOF
-#line 3146 "configure"
+#line 3157 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:3153: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3164: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
dash_r="$try_dash_r"
else
eval "$xe_add_unique_runpath_dir"
};; esac
done
- if test "$opsys $need_motif" = "sol2 yes"; then
+ if test "$opsys $need_motif" = "sol2 yes"; then
xe_runpath_dir="/opt/SUNWdt/lib";
eval "$xe_add_unique_runpath_dir";
fi
fi
after_morecore_hook_exists=yes
echo $ac_n "checking for malloc_set_state""... $ac_c" 1>&6
-echo "configure:3254: checking for malloc_set_state" >&5
+echo "configure:3265: checking for malloc_set_state" >&5
cat > conftest.$ac_ext <<EOF
-#line 3257 "configure"
+#line 3268 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char malloc_set_state(); below. */
; return 0; }
EOF
-if { (eval echo configure:3280: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3291: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_malloc_set_state=yes"
else
fi
echo $ac_n "checking whether __after_morecore_hook exists""... $ac_c" 1>&6
-echo "configure:3300: checking whether __after_morecore_hook exists" >&5
+echo "configure:3311: checking whether __after_morecore_hook exists" >&5
cat > conftest.$ac_ext <<EOF
-#line 3302 "configure"
+#line 3313 "configure"
#include "confdefs.h"
extern void (* __after_morecore_hook)();
int main() {
__after_morecore_hook = 0
; return 0; }
EOF
-if { (eval echo configure:3309: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3320: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
else
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3365: checking for $ac_word" >&5
+echo "configure:3376: checking for $ac_word" >&5
if test -n "$RANLIB"; then
ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:3420: checking for a BSD compatible install" >&5
+echo "configure:3431: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then
IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3474: checking for $ac_word" >&5
+echo "configure:3485: checking for $ac_word" >&5
if test -n "$YACC"; then
ac_cv_prog_YACC="$YACC" # Let the user override the test.
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3506: checking for $ac_hdr" >&5
+echo "configure:3517: checking for $ac_hdr" >&5
cat > conftest.$ac_ext <<EOF
-#line 3509 "configure"
+#line 3520 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3514: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3525: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
done
echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:3544: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo "configure:3555: checking for sys/wait.h that is POSIX.1 compatible" >&5
cat > conftest.$ac_ext <<EOF
-#line 3547 "configure"
+#line 3558 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/wait.h>
s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
; return 0; }
EOF
-if { (eval echo configure:3563: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3574: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_header_sys_wait_h=yes
else
fi
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:3587: checking for ANSI C header files" >&5
+echo "configure:3598: checking for ANSI C header files" >&5
cat > conftest.$ac_ext <<EOF
-#line 3590 "configure"
+#line 3601 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3598: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3609: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 3615 "configure"
+#line 3626 "configure"
#include "confdefs.h"
#include <string.h>
EOF
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 3633 "configure"
+#line 3644 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
if test $ac_cv_header_stdc = yes; then
# /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
cat > conftest.$ac_ext <<EOF
-#line 3651 "configure"
+#line 3662 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
exit (0); }
EOF
-if { (eval echo configure:3662: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:3673: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
:
else
fi
echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:3688: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:3699: checking whether time.h and sys/time.h may both be included" >&5
cat > conftest.$ac_ext <<EOF
-#line 3691 "configure"
+#line 3702 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/time.h>
struct tm *tp;
; return 0; }
EOF
-if { (eval echo configure:3700: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3711: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_header_time=yes
else
fi
echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6
-echo "configure:3724: checking for sys_siglist declaration in signal.h or unistd.h" >&5
+echo "configure:3735: checking for sys_siglist declaration in signal.h or unistd.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 3727 "configure"
+#line 3738 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
char *msg = *(sys_siglist + 1);
; return 0; }
EOF
-if { (eval echo configure:3739: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3750: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_decl_sys_siglist=yes
else
echo $ac_n "checking for utime""... $ac_c" 1>&6
-echo "configure:3765: checking for utime" >&5
+echo "configure:3776: checking for utime" >&5
cat > conftest.$ac_ext <<EOF
-#line 3767 "configure"
+#line 3778 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <utime.h>
struct utimbuf x; x.actime = x.modtime = 0; utime ("/", &x);
; return 0; }
EOF
-if { (eval echo configure:3775: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3786: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
{ test "$extra_verbose" = "yes" && cat << \EOF
for ac_func in utimes
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3794: checking for $ac_func" >&5
+echo "configure:3805: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 3797 "configure"
+#line 3808 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:3820: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:3852: checking return type of signal handlers" >&5
+echo "configure:3863: checking return type of signal handlers" >&5
cat > conftest.$ac_ext <<EOF
-#line 3855 "configure"
+#line 3866 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
int i;
; return 0; }
EOF
-if { (eval echo configure:3872: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3883: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_signal=void
else
echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:3894: checking for size_t" >&5
+echo "configure:3905: checking for size_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 3897 "configure"
+#line 3908 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
fi
echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:3928: checking for pid_t" >&5
+echo "configure:3939: checking for pid_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 3931 "configure"
+#line 3942 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
fi
echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:3962: checking for uid_t in sys/types.h" >&5
+echo "configure:3973: checking for uid_t in sys/types.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 3965 "configure"
+#line 3976 "configure"
#include "confdefs.h"
#include <sys/types.h>
EOF
fi
echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:4001: checking for mode_t" >&5
+echo "configure:4012: checking for mode_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 4004 "configure"
+#line 4015 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
fi
echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:4035: checking for off_t" >&5
+echo "configure:4046: checking for off_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 4038 "configure"
+#line 4049 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
fi
echo $ac_n "checking for ssize_t""... $ac_c" 1>&6
-echo "configure:4069: checking for ssize_t" >&5
+echo "configure:4080: checking for ssize_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 4072 "configure"
+#line 4083 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
echo $ac_n "checking for socklen_t""... $ac_c" 1>&6
-echo "configure:4104: checking for socklen_t" >&5
+echo "configure:4115: checking for socklen_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 4106 "configure"
+#line 4117 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/socket.h>
; return 0; }
EOF
-if { (eval echo configure:4116: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4127: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
else
rm -rf conftest*
cat > conftest.$ac_ext <<EOF
-#line 4125 "configure"
+#line 4136 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/socket.h>
; return 0; }
EOF
-if { (eval echo configure:4135: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4146: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
echo "$ac_t""size_t" 1>&6
rm -f conftest*
echo $ac_n "checking for struct timeval""... $ac_c" 1>&6
-echo "configure:4167: checking for struct timeval" >&5
+echo "configure:4178: checking for struct timeval" >&5
cat > conftest.$ac_ext <<EOF
-#line 4169 "configure"
+#line 4180 "configure"
#include "confdefs.h"
#ifdef TIME_WITH_SYS_TIME
#include <sys/time.h>
static struct timeval x; x.tv_sec = x.tv_usec;
; return 0; }
EOF
-if { (eval echo configure:4185: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4196: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
HAVE_TIMEVAL=yes
rm -f conftest*
echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
-echo "configure:4207: checking whether struct tm is in sys/time.h or time.h" >&5
+echo "configure:4218: checking whether struct tm is in sys/time.h or time.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 4210 "configure"
+#line 4221 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <time.h>
struct tm *tp; tp->tm_sec;
; return 0; }
EOF
-if { (eval echo configure:4218: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4229: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_tm=time.h
else
fi
echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6
-echo "configure:4242: checking for tm_zone in struct tm" >&5
+echo "configure:4253: checking for tm_zone in struct tm" >&5
cat > conftest.$ac_ext <<EOF
-#line 4245 "configure"
+#line 4256 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <$ac_cv_struct_tm>
struct tm tm; tm.tm_zone;
; return 0; }
EOF
-if { (eval echo configure:4253: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4264: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_tm_zone=yes
else
else
echo $ac_n "checking for tzname""... $ac_c" 1>&6
-echo "configure:4276: checking for tzname" >&5
+echo "configure:4287: checking for tzname" >&5
cat > conftest.$ac_ext <<EOF
-#line 4279 "configure"
+#line 4290 "configure"
#include "confdefs.h"
#include <time.h>
#ifndef tzname /* For SGI. */
atoi(*tzname);
; return 0; }
EOF
-if { (eval echo configure:4289: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4300: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_var_tzname=yes
else
echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:4315: checking for working const" >&5
+echo "configure:4326: checking for working const" >&5
cat > conftest.$ac_ext <<EOF
-#line 4318 "configure"
+#line 4329 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:4367: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4378: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_const=yes
else
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:4392: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:4403: checking whether ${MAKE-make} sets \${MAKE}" >&5
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
cat > conftestmake <<\EOF
echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:4417: checking whether byte ordering is bigendian" >&5
+echo "configure:4428: checking whether byte ordering is bigendian" >&5
ac_cv_c_bigendian=unknown
# See if sys/param.h defines the BYTE_ORDER macro.
cat > conftest.$ac_ext <<EOF
-#line 4422 "configure"
+#line 4433 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/param.h>
#endif
; return 0; }
EOF
-if { (eval echo configure:4433: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4444: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
# It does; now see whether it defined to BIG_ENDIAN or not.
cat > conftest.$ac_ext <<EOF
-#line 4437 "configure"
+#line 4448 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/param.h>
#endif
; return 0; }
EOF
-if { (eval echo configure:4448: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4459: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_bigendian=yes
else
rm -f conftest*
if test $ac_cv_c_bigendian = unknown; then
cat > conftest.$ac_ext <<EOF
-#line 4465 "configure"
+#line 4476 "configure"
#include "confdefs.h"
main () {
/* Are we little or big endian? From Harbison&Steele. */
exit (u.c[sizeof (long) - 1] == 1);
}
EOF
-if { (eval echo configure:4478: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
ac_cv_c_bigendian=no
else
echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:4505: checking size of short" >&5
+echo "configure:4516: checking size of short" >&5
cat > conftest.$ac_ext <<EOF
-#line 4508 "configure"
+#line 4519 "configure"
#include "confdefs.h"
#include <stdio.h>
main()
exit(0);
}
EOF
-if { (eval echo configure:4519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4530: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
ac_cv_sizeof_short=`cat conftestval`
else
exit 1
fi
echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:4547: checking size of int" >&5
+echo "configure:4558: checking size of int" >&5
cat > conftest.$ac_ext <<EOF
-#line 4550 "configure"
+#line 4561 "configure"
#include "confdefs.h"
#include <stdio.h>
main()
exit(0);
}
EOF
-if { (eval echo configure:4561: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4572: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
ac_cv_sizeof_int=`cat conftestval`
else
echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:4583: checking size of long" >&5
+echo "configure:4594: checking size of long" >&5
cat > conftest.$ac_ext <<EOF
-#line 4586 "configure"
+#line 4597 "configure"
#include "confdefs.h"
#include <stdio.h>
main()
exit(0);
}
EOF
-if { (eval echo configure:4597: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4608: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
ac_cv_sizeof_long=`cat conftestval`
else
echo $ac_n "checking size of long long""... $ac_c" 1>&6
-echo "configure:4619: checking size of long long" >&5
+echo "configure:4630: checking size of long long" >&5
cat > conftest.$ac_ext <<EOF
-#line 4622 "configure"
+#line 4633 "configure"
#include "confdefs.h"
#include <stdio.h>
main()
exit(0);
}
EOF
-if { (eval echo configure:4633: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
ac_cv_sizeof_long_long=`cat conftestval`
else
echo $ac_n "checking size of void *""... $ac_c" 1>&6
-echo "configure:4655: checking size of void *" >&5
+echo "configure:4666: checking size of void *" >&5
cat > conftest.$ac_ext <<EOF
-#line 4658 "configure"
+#line 4669 "configure"
#include "confdefs.h"
#include <stdio.h>
main()
exit(0);
}
EOF
-if { (eval echo configure:4669: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4680: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
ac_cv_sizeof_void_p=`cat conftestval`
else
case $opsys in
cygwin* ) cat > conftest.$ac_ext <<EOF
-#line 4693 "configure"
+#line 4704 "configure"
#include "confdefs.h"
#include <cygwin/types.h>
EOF
esac
echo $ac_n "checking for long file names""... $ac_c" 1>&6
-echo "configure:4718: checking for long file names" >&5
+echo "configure:4729: checking for long file names" >&5
ac_cv_sys_long_file_names=yes
# Test for long file names in all the places we know might matter:
echo $ac_n "checking for sin""... $ac_c" 1>&6
-echo "configure:4764: checking for sin" >&5
+echo "configure:4775: checking for sin" >&5
cat > conftest.$ac_ext <<EOF
-#line 4767 "configure"
+#line 4778 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char sin(); below. */
; return 0; }
EOF
-if { (eval echo configure:4790: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4801: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_sin=yes"
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6
-echo "configure:4808: checking for sin in -lm" >&5
+echo "configure:4819: checking for sin in -lm" >&5
ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'`
xe_check_libs=" -lm "
cat > conftest.$ac_ext <<EOF
-#line 4813 "configure"
+#line 4824 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
sin()
; return 0; }
EOF
-if { (eval echo configure:4824: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4835: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
cat > conftest.$ac_ext <<EOF
-#line 4868 "configure"
+#line 4879 "configure"
#include "confdefs.h"
#include <math.h>
int main() {
return atanh(1.0) + asinh(1.0) + acosh(1.0);
; return 0; }
EOF
-if { (eval echo configure:4875: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4886: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
{ test "$extra_verbose" = "yes" && cat << \EOF
Defining HAVE_INVERSE_HYPERBOLIC
rm -f conftest*
echo "checking type of mail spool file locking" 1>&6
-echo "configure:4892: checking type of mail spool file locking" >&5
+echo "configure:4903: checking type of mail spool file locking" >&5
for ac_func in lockf flock
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4896: checking for $ac_func" >&5
+echo "configure:4907: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 4899 "configure"
+#line 4910 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:4922: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4933: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
case "$opsys" in decosf*)
echo $ac_n "checking for cma_open in -lpthreads""... $ac_c" 1>&6
-echo "configure:5004: checking for cma_open in -lpthreads" >&5
+echo "configure:5015: checking for cma_open in -lpthreads" >&5
ac_lib_var=`echo pthreads'_'cma_open | sed 'y%./+-%__p_%'`
xe_check_libs=" -lpthreads "
cat > conftest.$ac_ext <<EOF
-#line 5009 "configure"
+#line 5020 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
cma_open()
; return 0; }
EOF
-if { (eval echo configure:5020: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5031: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo $ac_n "checking whether the -xildoff compiler flag is required""... $ac_c" 1>&6
-echo "configure:5057: checking whether the -xildoff compiler flag is required" >&5
+echo "configure:5068: checking whether the -xildoff compiler flag is required" >&5
if ${CC-cc} '-###' -xildon no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ; then
if ${CC-cc} '-###' -xildoff no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ;
then echo "$ac_t""no" 1>&6;
fi
if test "$opsys" = "sol2"; then
- if test "$os_release" -ge 56; then
+ if test "$os_release" -ge 506; then
echo $ac_n "checking for \"-z ignore\" linker flag""... $ac_c" 1>&6
-echo "configure:5069: checking for \"-z ignore\" linker flag" >&5
+echo "configure:5080: checking for \"-z ignore\" linker flag" >&5
case "`ld -h 2>&1`" in
*-z\ ignore\|record* ) echo "$ac_t""yes" 1>&6
ld_switch_site="-z ignore $ld_switch_site" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-z ignore\" to \$ld_switch_site"; fi ;;
echo "checking "for specified window system"" 1>&6
-echo "configure:5080: checking "for specified window system"" >&5
+echo "configure:5091: checking "for specified window system"" >&5
GNOME_CONFIG=no
if test "$with_gnome" != "no"; then
echo $ac_n "checking for GNOME configuration script""... $ac_c" 1>&6
-echo "configure:5088: checking for GNOME configuration script" >&5
+echo "configure:5099: checking for GNOME configuration script" >&5
for possible in gnome-config
do
possible_version=`${possible} --version 2> /dev/null`
if test "$with_gtk" != "no";then
echo $ac_n "checking for GTK configuration script""... $ac_c" 1>&6
-echo "configure:5119: checking for GTK configuration script" >&5
+echo "configure:5130: checking for GTK configuration script" >&5
for possible in gtk12-config gtk14-config gtk-config
do
possible_version=`${possible} --version 2> /dev/null`
if test "${GTK_CONFIG}" != "no"; then
echo $ac_n "checking gtk version""... $ac_c" 1>&6
-echo "configure:5141: checking gtk version" >&5
+echo "configure:5152: checking gtk version" >&5
GTK_VERSION=`${GTK_CONFIG} --version`
echo "$ac_t""${GTK_VERSION}" 1>&6
echo $ac_n "checking gtk libs""... $ac_c" 1>&6
-echo "configure:5146: checking gtk libs" >&5
+echo "configure:5157: checking gtk libs" >&5
GTK_LIBS=`${GTK_CONFIG} --libs`
libs_gtk="$libs_gtk ${GTK_LIBS}" && if test "$extra_verbose" = "yes"; then echo " Appending \"${GTK_LIBS}\" to \$libs_gtk"; fi
echo "$ac_t""${GTK_LIBS}" 1>&6
echo $ac_n "checking gtk cflags""... $ac_c" 1>&6
-echo "configure:5152: checking gtk cflags" >&5
+echo "configure:5163: checking gtk cflags" >&5
GTK_CFLAGS=`${GTK_CONFIG} --cflags`
if test "$GCC" = "yes"; then
GTK_CFLAGS="${GTK_CFLAGS} -Wno-shadow"
echo $ac_n "checking for main in -lgdk_imlib""... $ac_c" 1>&6
-echo "configure:5162: checking for main in -lgdk_imlib" >&5
+echo "configure:5173: checking for main in -lgdk_imlib" >&5
ac_lib_var=`echo gdk_imlib'_'main | sed 'y%./+-%__p_%'`
xe_check_libs=" -lgdk_imlib "
cat > conftest.$ac_ext <<EOF
-#line 5167 "configure"
+#line 5178 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:5174: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5185: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo $ac_n "checking for Imlib_init in -lImlib""... $ac_c" 1>&6
-echo "configure:5196: checking for Imlib_init in -lImlib" >&5
+echo "configure:5207: checking for Imlib_init in -lImlib" >&5
ac_lib_var=`echo Imlib'_'Imlib_init | sed 'y%./+-%__p_%'`
xe_check_libs=" -lImlib "
cat > conftest.$ac_ext <<EOF
-#line 5201 "configure"
+#line 5212 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
Imlib_init()
; return 0; }
EOF
-if { (eval echo configure:5212: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5223: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
for ac_func in gdk_imlib_init
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5235: checking for $ac_func" >&5
+echo "configure:5246: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 5238 "configure"
+#line 5249 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:5261: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5272: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5340: checking for $ac_hdr" >&5
+echo "configure:5351: checking for $ac_hdr" >&5
cat > conftest.$ac_ext <<EOF
-#line 5343 "configure"
+#line 5354 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5348: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5359: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo $ac_n "checking for main in -lxml""... $ac_c" 1>&6
-echo "configure:5379: checking for main in -lxml" >&5
+echo "configure:5390: checking for main in -lxml" >&5
ac_lib_var=`echo xml'_'main | sed 'y%./+-%__p_%'`
xe_check_libs=" -lxml "
cat > conftest.$ac_ext <<EOF
-#line 5384 "configure"
+#line 5395 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:5391: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5402: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo $ac_n "checking for main in -lglade""... $ac_c" 1>&6
-echo "configure:5413: checking for main in -lglade" >&5
+echo "configure:5424: checking for main in -lglade" >&5
ac_lib_var=`echo glade'_'main | sed 'y%./+-%__p_%'`
xe_check_libs=" -lglade "
cat > conftest.$ac_ext <<EOF
-#line 5418 "configure"
+#line 5429 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:5425: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo $ac_n "checking for main in -lglade-gnome""... $ac_c" 1>&6
-echo "configure:5447: checking for main in -lglade-gnome" >&5
+echo "configure:5458: checking for main in -lglade-gnome" >&5
ac_lib_var=`echo glade-gnome'_'main | sed 'y%./+-%__p_%'`
xe_check_libs=" -lglade-gnome "
cat > conftest.$ac_ext <<EOF
-#line 5452 "configure"
+#line 5463 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:5459: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5470: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
cat > conftest.$ac_ext <<EOF
-#line 5480 "configure"
+#line 5491 "configure"
#include "confdefs.h"
#include <glade/glade-xml.h>
EOF
# Uses ac_ vars as temps to allow command line to override cache and checks.
# --without-x overrides everything else, but does not touch the cache.
echo $ac_n "checking for X""... $ac_c" 1>&6
-echo "configure:5539: checking for X" >&5
+echo "configure:5550: checking for X" >&5
# Check whether --with-x or --without-x was given.
if test "${with_x+set}" = set; then
# First, try using that file with no special directory specified.
cat > conftest.$ac_ext <<EOF
-#line 5599 "configure"
+#line 5610 "configure"
#include "confdefs.h"
#include <$x_direct_test_include>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5604: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5615: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
ac_save_LIBS="$LIBS"
LIBS="-l$x_direct_test_library $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5673 "configure"
+#line 5684 "configure"
#include "confdefs.h"
int main() {
${x_direct_test_function}()
; return 0; }
EOF
-if { (eval echo configure:5680: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
LIBS="$ac_save_LIBS"
# We can link X programs with no special library path.
case "`(uname -sr) 2>/dev/null`" in
"SunOS 5"*)
echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6
-echo "configure:5789: checking whether -R must be followed by a space" >&5
+echo "configure:5800: checking whether -R must be followed by a space" >&5
ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries"
cat > conftest.$ac_ext <<EOF
-#line 5792 "configure"
+#line 5803 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:5799: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5810: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_R_nospace=yes
else
else
LIBS="$ac_xsave_LIBS -R $x_libraries"
cat > conftest.$ac_ext <<EOF
-#line 5815 "configure"
+#line 5826 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:5822: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_R_space=yes
else
else
echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
-echo "configure:5858: checking for dnet_ntoa in -ldnet" >&5
+echo "configure:5869: checking for dnet_ntoa in -ldnet" >&5
ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'`
xe_check_libs=" -ldnet "
cat > conftest.$ac_ext <<EOF
-#line 5863 "configure"
+#line 5874 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
dnet_ntoa()
; return 0; }
EOF
-if { (eval echo configure:5874: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5885: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
if test $ac_cv_lib_dnet_dnet_ntoa = no; then
echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6
-echo "configure:5898: checking for dnet_ntoa in -ldnet_stub" >&5
+echo "configure:5909: checking for dnet_ntoa in -ldnet_stub" >&5
ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'`
xe_check_libs=" -ldnet_stub "
cat > conftest.$ac_ext <<EOF
-#line 5903 "configure"
+#line 5914 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
dnet_ntoa()
; return 0; }
EOF
-if { (eval echo configure:5914: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5925: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
# The nsl library prevents programs from opening the X display
# on Irix 5.2, according to dickey@clark.net.
echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
-echo "configure:5943: checking for gethostbyname" >&5
+echo "configure:5954: checking for gethostbyname" >&5
cat > conftest.$ac_ext <<EOF
-#line 5946 "configure"
+#line 5957 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char gethostbyname(); below. */
; return 0; }
EOF
-if { (eval echo configure:5969: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_gethostbyname=yes"
else
if test $ac_cv_func_gethostbyname = no; then
echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:5990: checking for gethostbyname in -lnsl" >&5
+echo "configure:6001: checking for gethostbyname in -lnsl" >&5
ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
xe_check_libs=" -lnsl "
cat > conftest.$ac_ext <<EOF
-#line 5995 "configure"
+#line 6006 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
gethostbyname()
; return 0; }
EOF
-if { (eval echo configure:6006: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6017: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
# -lsocket must be given before -lnsl if both are needed.
# We assume that if connect needs -lnsl, so does gethostbyname.
echo $ac_n "checking for connect""... $ac_c" 1>&6
-echo "configure:6036: checking for connect" >&5
+echo "configure:6047: checking for connect" >&5
cat > conftest.$ac_ext <<EOF
-#line 6039 "configure"
+#line 6050 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char connect(); below. */
; return 0; }
EOF
-if { (eval echo configure:6062: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_connect=yes"
else
xe_msg_checking="for connect in -lsocket"
test -n "$X_EXTRA_LIBS" && xe_msg_checking="$xe_msg_checking using extra libs $X_EXTRA_LIBS"
echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:6085: checking "$xe_msg_checking"" >&5
+echo "configure:6096: checking "$xe_msg_checking"" >&5
ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'`
xe_check_libs=" -lsocket $X_EXTRA_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 6090 "configure"
+#line 6101 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
connect()
; return 0; }
EOF
-if { (eval echo configure:6101: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6112: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
# gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
echo $ac_n "checking for remove""... $ac_c" 1>&6
-echo "configure:6125: checking for remove" >&5
+echo "configure:6136: checking for remove" >&5
cat > conftest.$ac_ext <<EOF
-#line 6128 "configure"
+#line 6139 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char remove(); below. */
; return 0; }
EOF
-if { (eval echo configure:6151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6162: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_remove=yes"
else
if test $ac_cv_func_remove = no; then
echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:6172: checking for remove in -lposix" >&5
+echo "configure:6183: checking for remove in -lposix" >&5
ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'`
xe_check_libs=" -lposix "
cat > conftest.$ac_ext <<EOF
-#line 6177 "configure"
+#line 6188 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
remove()
; return 0; }
EOF
-if { (eval echo configure:6188: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6199: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
# BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:6212: checking for shmat" >&5
+echo "configure:6223: checking for shmat" >&5
cat > conftest.$ac_ext <<EOF
-#line 6215 "configure"
+#line 6226 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char shmat(); below. */
; return 0; }
EOF
-if { (eval echo configure:6238: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6249: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_shmat=yes"
else
if test $ac_cv_func_shmat = no; then
echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:6259: checking for shmat in -lipc" >&5
+echo "configure:6270: checking for shmat in -lipc" >&5
ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'`
xe_check_libs=" -lipc "
cat > conftest.$ac_ext <<EOF
-#line 6264 "configure"
+#line 6275 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
shmat()
; return 0; }
EOF
-if { (eval echo configure:6275: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6286: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
xe_msg_checking="for IceConnectionNumber in -lICE"
test -n "$X_EXTRA_LIBS" && xe_msg_checking="$xe_msg_checking using extra libs $X_EXTRA_LIBS"
echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:6311: checking "$xe_msg_checking"" >&5
+echo "configure:6322: checking "$xe_msg_checking"" >&5
ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
xe_check_libs=" -lICE $X_EXTRA_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 6316 "configure"
+#line 6327 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
IceConnectionNumber()
; return 0; }
EOF
-if { (eval echo configure:6327: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6338: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6
-echo "configure:6373: checking for Xm/Xm.h" >&5
+echo "configure:6384: checking for Xm/Xm.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 6376 "configure"
+#line 6387 "configure"
#include "confdefs.h"
#include <Xm/Xm.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6381: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6392: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for XmStringFree in -lXm""... $ac_c" 1>&6
-echo "configure:6398: checking for XmStringFree in -lXm" >&5
+echo "configure:6409: checking for XmStringFree in -lXm" >&5
ac_lib_var=`echo Xm'_'XmStringFree | sed 'y%./+-%__p_%'`
xe_check_libs=" -lXm "
cat > conftest.$ac_ext <<EOF
-#line 6403 "configure"
+#line 6414 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
XmStringFree()
; return 0; }
EOF
-if { (eval echo configure:6414: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6425: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
eval "$xe_add_unique_runpath_dir"
};; esac
done
- if test "$opsys $need_motif" = "sol2 yes"; then
+ if test "$opsys $need_motif" = "sol2 yes"; then
xe_runpath_dir="/opt/SUNWdt/lib";
eval "$xe_add_unique_runpath_dir";
fi
echo "checking for X defines extracted by xmkmf" 1>&6
-echo "configure:6566: checking for X defines extracted by xmkmf" >&5
+echo "configure:6577: checking for X defines extracted by xmkmf" >&5
rm -fr conftestdir
if mkdir conftestdir; then
cd conftestdir
ac_safe=`echo "X11/Intrinsic.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for X11/Intrinsic.h""... $ac_c" 1>&6
-echo "configure:6615: checking for X11/Intrinsic.h" >&5
+echo "configure:6626: checking for X11/Intrinsic.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 6618 "configure"
+#line 6629 "configure"
#include "confdefs.h"
#include <X11/Intrinsic.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6623: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6634: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
-echo "configure:6647: checking for XOpenDisplay in -lX11" >&5
+echo "configure:6658: checking for XOpenDisplay in -lX11" >&5
ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'`
xe_check_libs=" -lX11 "
cat > conftest.$ac_ext <<EOF
-#line 6652 "configure"
+#line 6663 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
XOpenDisplay()
; return 0; }
EOF
-if { (eval echo configure:6663: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6674: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
xe_msg_checking="for XGetFontProperty in -lX11"
test -n "-b i486-linuxaout" && xe_msg_checking="$xe_msg_checking using extra libs -b i486-linuxaout"
echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:6688: checking "$xe_msg_checking"" >&5
+echo "configure:6699: checking "$xe_msg_checking"" >&5
ac_lib_var=`echo X11'_'XGetFontProperty | sed 'y%./+-%__p_%'`
xe_check_libs=" -lX11 -b i486-linuxaout"
cat > conftest.$ac_ext <<EOF
-#line 6693 "configure"
+#line 6704 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
XGetFontProperty()
; return 0; }
EOF
-if { (eval echo configure:6704: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6715: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo $ac_n "checking for XShapeSelectInput in -lXext""... $ac_c" 1>&6
-echo "configure:6731: checking for XShapeSelectInput in -lXext" >&5
+echo "configure:6742: checking for XShapeSelectInput in -lXext" >&5
ac_lib_var=`echo Xext'_'XShapeSelectInput | sed 'y%./+-%__p_%'`
xe_check_libs=" -lXext "
cat > conftest.$ac_ext <<EOF
-#line 6736 "configure"
+#line 6747 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
XShapeSelectInput()
; return 0; }
EOF
-if { (eval echo configure:6747: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6758: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo $ac_n "checking for XtOpenDisplay in -lXt""... $ac_c" 1>&6
-echo "configure:6770: checking for XtOpenDisplay in -lXt" >&5
+echo "configure:6781: checking for XtOpenDisplay in -lXt" >&5
ac_lib_var=`echo Xt'_'XtOpenDisplay | sed 'y%./+-%__p_%'`
xe_check_libs=" -lXt "
cat > conftest.$ac_ext <<EOF
-#line 6775 "configure"
+#line 6786 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
XtOpenDisplay()
; return 0; }
EOF
-if { (eval echo configure:6786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6797: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo $ac_n "checking the version of X11 being used""... $ac_c" 1>&6
-echo "configure:6809: checking the version of X11 being used" >&5
+echo "configure:6820: checking the version of X11 being used" >&5
cat > conftest.$ac_ext <<EOF
-#line 6811 "configure"
+#line 6822 "configure"
#include "confdefs.h"
#include <X11/Intrinsic.h>
int main(int c, char *v[]) { return c>1 ? XlibSpecificationRelease : 0; }
EOF
-if { (eval echo configure:6816: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:6827: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
./conftest foobar; x11_release=$?
else
for ac_func in XConvertCase
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6847: checking for $ac_func" >&5
+echo "configure:6858: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 6850 "configure"
+#line 6861 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:6873: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6884: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6905: checking for $ac_hdr" >&5
+echo "configure:6916: checking for $ac_hdr" >&5
cat > conftest.$ac_ext <<EOF
-#line 6908 "configure"
+#line 6919 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6913: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6924: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
for ac_func in XRegisterIMInstantiateCallback
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6946: checking for $ac_func" >&5
+echo "configure:6957: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 6949 "configure"
+#line 6960 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:6972: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6983: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
done
echo $ac_n "checking for standard XRegisterIMInstantiateCallback prototype""... $ac_c" 1>&6
-echo "configure:7000: checking for standard XRegisterIMInstantiateCallback prototype" >&5
+echo "configure:7011: checking for standard XRegisterIMInstantiateCallback prototype" >&5
cat > conftest.$ac_ext <<EOF
-#line 7002 "configure"
+#line 7013 "configure"
#include "confdefs.h"
#define NeedFunctionPrototypes 1
; return 0; }
EOF
-if { (eval echo configure:7014: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7025: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
else
test -z "$with_xmu" && {
echo $ac_n "checking for XmuReadBitmapDataFromFile in -lXmu""... $ac_c" 1>&6
-echo "configure:7035: checking for XmuReadBitmapDataFromFile in -lXmu" >&5
+echo "configure:7046: checking for XmuReadBitmapDataFromFile in -lXmu" >&5
ac_lib_var=`echo Xmu'_'XmuReadBitmapDataFromFile | sed 'y%./+-%__p_%'`
xe_check_libs=" -lXmu "
cat > conftest.$ac_ext <<EOF
-#line 7040 "configure"
+#line 7051 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
XmuReadBitmapDataFromFile()
; return 0; }
EOF
-if { (eval echo configure:7051: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7062: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6
-echo "configure:7090: checking for main in -lXbsd" >&5
+echo "configure:7101: checking for main in -lXbsd" >&5
ac_lib_var=`echo Xbsd'_'main | sed 'y%./+-%__p_%'`
xe_check_libs=" -lXbsd "
cat > conftest.$ac_ext <<EOF
-#line 7095 "configure"
+#line 7106 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:7102: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7113: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
if test "$unexec" = "unexaix.o" -a "$x11_release" = "6"; then
if test "$GCC" = "yes"; then
echo $ac_n "checking for name of AIX gcc threads option""... $ac_c" 1>&6
-echo "configure:7126: checking for name of AIX gcc threads option" >&5
+echo "configure:7137: checking for name of AIX gcc threads option" >&5
case `$CC -v --help 2>&1` in
*-mthreads*) aix_threads=-mthreads ;;
*) aix_threads=-pthread ;;
xe_save_CC="$CC"
CC="${CC}_r"
echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:7140: checking size of short" >&5
+echo "configure:7151: checking size of short" >&5
cat > conftest.$ac_ext <<EOF
-#line 7143 "configure"
+#line 7154 "configure"
#include "confdefs.h"
#include <stdio.h>
main()
exit(0);
}
EOF
-if { (eval echo configure:7154: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:7165: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
ac_cv_sizeof_short=`cat conftestval`
else
fi
if test "$with_msw" != "no"; then
echo "checking for MS-Windows" 1>&6
-echo "configure:7183: checking for MS-Windows" >&5
+echo "configure:7194: checking for MS-Windows" >&5
echo $ac_n "checking for main in -lgdi32""... $ac_c" 1>&6
-echo "configure:7186: checking for main in -lgdi32" >&5
+echo "configure:7197: checking for main in -lgdi32" >&5
ac_lib_var=`echo gdi32'_'main | sed 'y%./+-%__p_%'`
xe_check_libs=" -lgdi32 "
cat > conftest.$ac_ext <<EOF
-#line 7191 "configure"
+#line 7202 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:7198: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7209: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
INSTALL_ARCH_DEP_SUBDIR="$INSTALL_ARCH_DEP_SUBDIR netinstall" && if test "$extra_verbose" = "yes"; then echo " Appending \"netinstall\" to \$INSTALL_ARCH_DEP_SUBDIR"; fi
fi
- install_pp="$blddir/lib-src/installexe.sh"
+ install_pp="$srcdir/lib-src/installexe.sh"
libs_system="$libs_system -lshell32 -lgdi32 -luser32 -lcomdlg32 -lcomctl32 -lkernel32 -lwinspool" && if test "$extra_verbose" = "yes"; then echo " Appending \"-lshell32 -lgdi32 -luser32 -lcomdlg32 -lcomctl32 -lkernel32 -lwinspool\" to \$libs_system"; fi
test "$with_dragndrop" != no && dragndrop_proto="$dragndrop_proto msw" && if test "$extra_verbose" = "yes"; then echo " Appending \"msw\" to \$dragndrop_proto"; fi
if test "$window_system" != x11; then
fi
fi
cat > conftest.$ac_ext <<EOF
-#line 7271 "configure"
+#line 7282 "configure"
#include "confdefs.h"
#include <fcntl.h>
int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }
EOF
-if { (eval echo configure:7276: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:7287: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
need_event_unixoid=yes; { test "$extra_verbose" = "yes" && cat << \EOF
Defining HAVE_MSG_SELECT
if test "$with_x11" = "yes"; then
ac_safe=`echo "X11/extensions/shape.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for X11/extensions/shape.h""... $ac_c" 1>&6
-echo "configure:7340: checking for X11/extensions/shape.h" >&5
+echo "configure:7351: checking for X11/extensions/shape.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 7343 "configure"
+#line 7354 "configure"
#include "confdefs.h"
#include <X11/extensions/shape.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7348: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7359: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
esac
echo "checking for WM_COMMAND option" 1>&6
-echo "configure:7400: checking for WM_COMMAND option" >&5;
+echo "configure:7411: checking for WM_COMMAND option" >&5;
if test "$with_wmcommand" != "no"; then
{ test "$extra_verbose" = "yes" && cat << \EOF
Defining HAVE_WMCOMMAND
test -z "$with_xauth" && test "$window_system" = "none" && with_xauth=no
test -z "$with_xauth" && { ac_safe=`echo "X11/Xauth.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for X11/Xauth.h""... $ac_c" 1>&6
-echo "configure:7415: checking for X11/Xauth.h" >&5
+echo "configure:7426: checking for X11/Xauth.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 7418 "configure"
+#line 7429 "configure"
#include "confdefs.h"
#include <X11/Xauth.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7423: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7434: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
}
test -z "$with_xauth" && {
echo $ac_n "checking for XauGetAuthByAddr in -lXau""... $ac_c" 1>&6
-echo "configure:7446: checking for XauGetAuthByAddr in -lXau" >&5
+echo "configure:7457: checking for XauGetAuthByAddr in -lXau" >&5
ac_lib_var=`echo Xau'_'XauGetAuthByAddr | sed 'y%./+-%__p_%'`
xe_check_libs=" -lXau "
cat > conftest.$ac_ext <<EOF
-#line 7451 "configure"
+#line 7462 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
XauGetAuthByAddr()
; return 0; }
EOF
-if { (eval echo configure:7462: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7473: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
for dir in "" "Tt/" "desktop/" ; do
ac_safe=`echo "${dir}tt_c.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for ${dir}tt_c.h""... $ac_c" 1>&6
-echo "configure:7507: checking for ${dir}tt_c.h" >&5
+echo "configure:7518: checking for ${dir}tt_c.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 7510 "configure"
+#line 7521 "configure"
#include "confdefs.h"
#include <${dir}tt_c.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7515: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7526: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
xe_msg_checking="for tt_message_create in -ltt"
test -n "$extra_libs" && xe_msg_checking="$xe_msg_checking using extra libs $extra_libs"
echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:7551: checking "$xe_msg_checking"" >&5
+echo "configure:7562: checking "$xe_msg_checking"" >&5
ac_lib_var=`echo tt'_'tt_message_create | sed 'y%./+-%__p_%'`
xe_check_libs=" -ltt $extra_libs"
cat > conftest.$ac_ext <<EOF
-#line 7556 "configure"
+#line 7567 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
tt_message_create()
; return 0; }
EOF
-if { (eval echo configure:7567: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7578: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
test -z "$with_cde" && { ac_safe=`echo "Dt/Dt.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for Dt/Dt.h""... $ac_c" 1>&6
-echo "configure:7624: checking for Dt/Dt.h" >&5
+echo "configure:7635: checking for Dt/Dt.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 7627 "configure"
+#line 7638 "configure"
#include "confdefs.h"
#include <Dt/Dt.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7632: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7643: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
}
test -z "$with_cde" && {
echo $ac_n "checking for DtDndDragStart in -lDtSvc""... $ac_c" 1>&6
-echo "configure:7655: checking for DtDndDragStart in -lDtSvc" >&5
+echo "configure:7666: checking for DtDndDragStart in -lDtSvc" >&5
ac_lib_var=`echo DtSvc'_'DtDndDragStart | sed 'y%./+-%__p_%'`
xe_check_libs=" -lDtSvc "
cat > conftest.$ac_ext <<EOF
-#line 7660 "configure"
+#line 7671 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
DtDndDragStart()
; return 0; }
EOF
-if { (eval echo configure:7671: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7682: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
if test "$with_dragndrop" != "no" ; then
echo $ac_n "checking if drag and drop API is needed""... $ac_c" 1>&6
-echo "configure:7744: checking if drag and drop API is needed" >&5
+echo "configure:7755: checking if drag and drop API is needed" >&5
if test -n "$dragndrop_proto" ; then
with_dragndrop=yes
echo "$ac_t""yes (${dragndrop_proto} )" 1>&6
fi
echo "checking for LDAP" 1>&6
-echo "configure:7764: checking for LDAP" >&5
+echo "configure:7775: checking for LDAP" >&5
test -z "$with_ldap" && { ac_safe=`echo "ldap.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for ldap.h""... $ac_c" 1>&6
-echo "configure:7767: checking for ldap.h" >&5
+echo "configure:7778: checking for ldap.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 7770 "configure"
+#line 7781 "configure"
#include "confdefs.h"
#include <ldap.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7775: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7786: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
}
test -z "$with_ldap" && { ac_safe=`echo "lber.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for lber.h""... $ac_c" 1>&6
-echo "configure:7798: checking for lber.h" >&5
+echo "configure:7809: checking for lber.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 7801 "configure"
+#line 7812 "configure"
#include "confdefs.h"
#include <lber.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7806: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7817: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
if test "$with_ldap" != "no"; then
echo $ac_n "checking for ldap_search in -lldap""... $ac_c" 1>&6
-echo "configure:7830: checking for ldap_search in -lldap" >&5
+echo "configure:7841: checking for ldap_search in -lldap" >&5
ac_lib_var=`echo ldap'_'ldap_search | sed 'y%./+-%__p_%'`
xe_check_libs=" -lldap "
cat > conftest.$ac_ext <<EOF
-#line 7835 "configure"
+#line 7846 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
ldap_search()
; return 0; }
EOF
-if { (eval echo configure:7846: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7857: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
xe_msg_checking="for ldap_open in -lldap"
test -n "-llber" && xe_msg_checking="$xe_msg_checking using extra libs -llber"
echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:7871: checking "$xe_msg_checking"" >&5
+echo "configure:7882: checking "$xe_msg_checking"" >&5
ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'`
xe_check_libs=" -lldap -llber"
cat > conftest.$ac_ext <<EOF
-#line 7876 "configure"
+#line 7887 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
ldap_open()
; return 0; }
EOF
-if { (eval echo configure:7887: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7898: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
xe_msg_checking="for ldap_open in -lldap"
test -n "-llber -lkrb" && xe_msg_checking="$xe_msg_checking using extra libs -llber -lkrb"
echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:7912: checking "$xe_msg_checking"" >&5
+echo "configure:7923: checking "$xe_msg_checking"" >&5
ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'`
xe_check_libs=" -lldap -llber -lkrb"
cat > conftest.$ac_ext <<EOF
-#line 7917 "configure"
+#line 7928 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
ldap_open()
; return 0; }
EOF
-if { (eval echo configure:7928: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7939: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
xe_msg_checking="for ldap_open in -lldap"
test -n "-llber -lkrb -ldes" && xe_msg_checking="$xe_msg_checking using extra libs -llber -lkrb -ldes"
echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:7953: checking "$xe_msg_checking"" >&5
+echo "configure:7964: checking "$xe_msg_checking"" >&5
ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'`
xe_check_libs=" -lldap -llber -lkrb -ldes"
cat > conftest.$ac_ext <<EOF
-#line 7958 "configure"
+#line 7969 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
ldap_open()
; return 0; }
EOF
-if { (eval echo configure:7969: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
for ac_func in ldap_set_option ldap_get_lderrno ldap_result2error ldap_parse_result
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:8020: checking for $ac_func" >&5
+echo "configure:8031: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 8023 "configure"
+#line 8034 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:8046: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8057: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
if test "$with_postgresql" != "no"; then
echo "checking for PostgreSQL" 1>&6
-echo "configure:8077: checking for PostgreSQL" >&5
+echo "configure:8088: checking for PostgreSQL" >&5
for header_dir in "" "pgsql/" "postgresql/"; do
ac_safe=`echo "${header_dir}libpq-fe.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for ${header_dir}libpq-fe.h""... $ac_c" 1>&6
-echo "configure:8082: checking for ${header_dir}libpq-fe.h" >&5
+echo "configure:8093: checking for ${header_dir}libpq-fe.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 8085 "configure"
+#line 8096 "configure"
#include "confdefs.h"
#include <${header_dir}libpq-fe.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8090: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8101: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
test -n "$libpq_fe_h_file" && {
echo $ac_n "checking for PQconnectdb in -lpq""... $ac_c" 1>&6
-echo "configure:8114: checking for PQconnectdb in -lpq" >&5
+echo "configure:8125: checking for PQconnectdb in -lpq" >&5
ac_lib_var=`echo pq'_'PQconnectdb | sed 'y%./+-%__p_%'`
xe_check_libs=" -lpq "
cat > conftest.$ac_ext <<EOF
-#line 8119 "configure"
+#line 8130 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
PQconnectdb()
; return 0; }
EOF
-if { (eval echo configure:8130: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8141: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo $ac_n "checking for PQconnectStart in -lpq""... $ac_c" 1>&6
-echo "configure:8163: checking for PQconnectStart in -lpq" >&5
+echo "configure:8174: checking for PQconnectStart in -lpq" >&5
ac_lib_var=`echo pq'_'PQconnectStart | sed 'y%./+-%__p_%'`
xe_check_libs=" -lpq "
cat > conftest.$ac_ext <<EOF
-#line 8168 "configure"
+#line 8179 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
PQconnectStart()
; return 0; }
EOF
-if { (eval echo configure:8179: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8190: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
if test "$window_system" != "none"; then
echo "checking for graphics libraries" 1>&6
-echo "configure:8227: checking for graphics libraries" >&5
+echo "configure:8238: checking for graphics libraries" >&5
libpath_xpm=
incpath_xpm=
CFLAGS=""$incpath_xpm" $CFLAGS" && if test "$extra_verbose" = "yes"; then echo " Prepending \""$incpath_xpm"\" to \$CFLAGS"; fi
LDFLAGS=""$libpath_xpm" $LDFLAGS" && if test "$extra_verbose" = "yes"; then echo " Prepending \""$libpath_xpm"\" to \$LDFLAGS"; fi
echo $ac_n "checking for Xpm - no older than 3.4f""... $ac_c" 1>&6
-echo "configure:8253: checking for Xpm - no older than 3.4f" >&5
+echo "configure:8264: checking for Xpm - no older than 3.4f" >&5
xe_check_libs=-lXpm
cat > conftest.$ac_ext <<EOF
-#line 8256 "configure"
+#line 8267 "configure"
#include "confdefs.h"
#define XPM_NUMBERS
#include <X11/xpm.h>
XpmIncludeVersion != XpmLibraryVersion() ? 1 :
XpmIncludeVersion < 30406 ? 2 : 0 ;}
EOF
-if { (eval echo configure:8265: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:8276: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
./conftest dummy_arg; xpm_status=$?;
if test "$xpm_status" = "0"; then
libs_x="-lXpm $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-lXpm\" to \$libs_x"; fi
CFLAGS=""$incpath_xpm" $CFLAGS" && if test "$extra_verbose" = "yes"; then echo " Prepending \""$incpath_xpm"\" to \$CFLAGS"; fi
echo $ac_n "checking for \"FOR_MSW\" xpm""... $ac_c" 1>&6
-echo "configure:8309: checking for \"FOR_MSW\" xpm" >&5
+echo "configure:8320: checking for \"FOR_MSW\" xpm" >&5
xe_check_libs=-lXpm
cat > conftest.$ac_ext <<EOF
-#line 8312 "configure"
+#line 8323 "configure"
#include "confdefs.h"
int main() {
XpmCreatePixmapFromData()
; return 0; }
EOF
-if { (eval echo configure:8319: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8330: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
xpm_for_msw=no
else
test -z "$with_xface" && { ac_safe=`echo "compface.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for compface.h""... $ac_c" 1>&6
-echo "configure:8345: checking for compface.h" >&5
+echo "configure:8356: checking for compface.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 8348 "configure"
+#line 8359 "configure"
#include "confdefs.h"
#include <compface.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8353: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8364: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
}
test -z "$with_xface" && {
echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6
-echo "configure:8376: checking for UnGenFace in -lcompface" >&5
+echo "configure:8387: checking for UnGenFace in -lcompface" >&5
ac_lib_var=`echo compface'_'UnGenFace | sed 'y%./+-%__p_%'`
xe_check_libs=" -lcompface "
cat > conftest.$ac_ext <<EOF
-#line 8381 "configure"
+#line 8392 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
UnGenFace()
; return 0; }
EOF
-if { (eval echo configure:8392: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8403: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
if test "$with_png $with_tiff" != "no no"; then
echo $ac_n "checking for inflate in -lc""... $ac_c" 1>&6
-echo "configure:8444: checking for inflate in -lc" >&5
+echo "configure:8455: checking for inflate in -lc" >&5
ac_lib_var=`echo c'_'inflate | sed 'y%./+-%__p_%'`
xe_check_libs=" -lc "
cat > conftest.$ac_ext <<EOF
-#line 8449 "configure"
+#line 8460 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
inflate()
; return 0; }
EOF
-if { (eval echo configure:8460: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8471: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for inflate in -lz""... $ac_c" 1>&6
-echo "configure:8479: checking for inflate in -lz" >&5
+echo "configure:8490: checking for inflate in -lz" >&5
ac_lib_var=`echo z'_'inflate | sed 'y%./+-%__p_%'`
xe_check_libs=" -lz "
cat > conftest.$ac_ext <<EOF
-#line 8484 "configure"
+#line 8495 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
inflate()
; return 0; }
EOF
-if { (eval echo configure:8495: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8506: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for inflate in -lgz""... $ac_c" 1>&6
-echo "configure:8514: checking for inflate in -lgz" >&5
+echo "configure:8525: checking for inflate in -lgz" >&5
ac_lib_var=`echo gz'_'inflate | sed 'y%./+-%__p_%'`
xe_check_libs=" -lgz "
cat > conftest.$ac_ext <<EOF
-#line 8519 "configure"
+#line 8530 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
inflate()
; return 0; }
EOF
-if { (eval echo configure:8530: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8541: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
test -z "$with_jpeg" && { ac_safe=`echo "jpeglib.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for jpeglib.h""... $ac_c" 1>&6
-echo "configure:8560: checking for jpeglib.h" >&5
+echo "configure:8571: checking for jpeglib.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 8563 "configure"
+#line 8574 "configure"
#include "confdefs.h"
#include <jpeglib.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8568: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8579: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
}
test -z "$with_jpeg" && {
echo $ac_n "checking for jpeg_destroy_decompress in -ljpeg""... $ac_c" 1>&6
-echo "configure:8591: checking for jpeg_destroy_decompress in -ljpeg" >&5
+echo "configure:8602: checking for jpeg_destroy_decompress in -ljpeg" >&5
ac_lib_var=`echo jpeg'_'jpeg_destroy_decompress | sed 'y%./+-%__p_%'`
xe_check_libs=" -ljpeg "
cat > conftest.$ac_ext <<EOF
-#line 8596 "configure"
+#line 8607 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
jpeg_destroy_decompress()
; return 0; }
EOF
-if { (eval echo configure:8607: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8618: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
png_problem=""
test -z "$with_png" && { echo $ac_n "checking for pow""... $ac_c" 1>&6
-echo "configure:8643: checking for pow" >&5
+echo "configure:8654: checking for pow" >&5
cat > conftest.$ac_ext <<EOF
-#line 8646 "configure"
+#line 8657 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char pow(); below. */
; return 0; }
EOF
-if { (eval echo configure:8669: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8680: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_pow=yes"
else
}
test -z "$with_png" && { ac_safe=`echo "png.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for png.h""... $ac_c" 1>&6
-echo "configure:8690: checking for png.h" >&5
+echo "configure:8701: checking for png.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 8693 "configure"
+#line 8704 "configure"
#include "confdefs.h"
#include <png.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8698: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8709: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
}
test -z "$with_png" && {
echo $ac_n "checking for png_read_image in -lpng""... $ac_c" 1>&6
-echo "configure:8721: checking for png_read_image in -lpng" >&5
+echo "configure:8732: checking for png_read_image in -lpng" >&5
ac_lib_var=`echo png'_'png_read_image | sed 'y%./+-%__p_%'`
xe_check_libs=" -lpng "
cat > conftest.$ac_ext <<EOF
-#line 8726 "configure"
+#line 8737 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
png_read_image()
; return 0; }
EOF
-if { (eval echo configure:8737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8748: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
}
if test -z "$with_png"; then
echo $ac_n "checking for workable png version information""... $ac_c" 1>&6
-echo "configure:8760: checking for workable png version information" >&5
+echo "configure:8771: checking for workable png version information" >&5
xe_check_libs="-lpng -lz"
cat > conftest.$ac_ext <<EOF
-#line 8763 "configure"
+#line 8774 "configure"
#include "confdefs.h"
#include <png.h>
int main(int c, char **v) {
if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1;
return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;}
EOF
-if { (eval echo configure:8771: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:8782: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
./conftest dummy_arg; png_status=$?;
if test "$png_status" = "0"; then
test -z "$with_tiff" && { ac_safe=`echo "tiffio.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for tiffio.h""... $ac_c" 1>&6
-echo "configure:8814: checking for tiffio.h" >&5
+echo "configure:8825: checking for tiffio.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 8817 "configure"
+#line 8828 "configure"
#include "confdefs.h"
#include <tiffio.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8822: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8833: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
}
test -z "$with_tiff" && {
echo $ac_n "checking for TIFFClientOpen in -ltiff""... $ac_c" 1>&6
-echo "configure:8845: checking for TIFFClientOpen in -ltiff" >&5
+echo "configure:8856: checking for TIFFClientOpen in -ltiff" >&5
ac_lib_var=`echo tiff'_'TIFFClientOpen | sed 'y%./+-%__p_%'`
xe_check_libs=" -ltiff "
cat > conftest.$ac_ext <<EOF
-#line 8850 "configure"
+#line 8861 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
TIFFClientOpen()
; return 0; }
EOF
-if { (eval echo configure:8861: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8872: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
if test "$with_gtk" = "yes"; then
test -z "$with_xface" && { ac_safe=`echo "compface.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for compface.h""... $ac_c" 1>&6
-echo "configure:8900: checking for compface.h" >&5
+echo "configure:8911: checking for compface.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 8903 "configure"
+#line 8914 "configure"
#include "confdefs.h"
#include <compface.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8908: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8919: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
}
test -z "$with_xface" && {
echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6
-echo "configure:8931: checking for UnGenFace in -lcompface" >&5
+echo "configure:8942: checking for UnGenFace in -lcompface" >&5
ac_lib_var=`echo compface'_'UnGenFace | sed 'y%./+-%__p_%'`
xe_check_libs=" -lcompface "
cat > conftest.$ac_ext <<EOF
-#line 8936 "configure"
+#line 8947 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
UnGenFace()
; return 0; }
EOF
-if { (eval echo configure:8947: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8958: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
if test "$with_x11" = "yes"; then
echo "checking for X11 graphics libraries" 1>&6
-echo "configure:8986: checking for X11 graphics libraries" >&5
+echo "configure:8997: checking for X11 graphics libraries" >&5
fi
if test "$with_x11" = "yes"; then
echo "checking for the Athena widgets" 1>&6
-echo "configure:8991: checking for the Athena widgets" >&5
+echo "configure:9002: checking for the Athena widgets" >&5
case "$with_athena" in
"xaw" | "") athena_variant=Xaw athena_3d=no ;;
if test "$athena_3d" = "no"; then
echo $ac_n "checking for XawScrollbarSetThumb in -l$athena_variant""... $ac_c" 1>&6
-echo "configure:9007: checking for XawScrollbarSetThumb in -l$athena_variant" >&5
+echo "configure:9018: checking for XawScrollbarSetThumb in -l$athena_variant" >&5
ac_lib_var=`echo $athena_variant'_'XawScrollbarSetThumb | sed 'y%./+-%__p_%'`
xe_check_libs=" -l$athena_variant "
cat > conftest.$ac_ext <<EOF
-#line 9012 "configure"
+#line 9023 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
XawScrollbarSetThumb()
; return 0; }
EOF
-if { (eval echo configure:9023: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9034: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for $athena_3d_function in -l$athena_variant""... $ac_c" 1>&6
-echo "configure:9039: checking for $athena_3d_function in -l$athena_variant" >&5
+echo "configure:9050: checking for $athena_3d_function in -l$athena_variant" >&5
ac_lib_var=`echo $athena_variant'_'$athena_3d_function | sed 'y%./+-%__p_%'`
xe_check_libs=" -l$athena_variant "
cat > conftest.$ac_ext <<EOF
-#line 9044 "configure"
+#line 9055 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
$athena_3d_function()
; return 0; }
EOF
-if { (eval echo configure:9055: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
else
echo $ac_n "checking for $athena_3d_function in -l$athena_variant""... $ac_c" 1>&6
-echo "configure:9086: checking for $athena_3d_function in -l$athena_variant" >&5
+echo "configure:9097: checking for $athena_3d_function in -l$athena_variant" >&5
ac_lib_var=`echo $athena_variant'_'$athena_3d_function | sed 'y%./+-%__p_%'`
xe_check_libs=" -l$athena_variant "
cat > conftest.$ac_ext <<EOF
-#line 9091 "configure"
+#line 9102 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
$athena_3d_function()
; return 0; }
EOF
-if { (eval echo configure:9102: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9113: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for $athena_3d_function in -lXaw""... $ac_c" 1>&6
-echo "configure:9120: checking for $athena_3d_function in -lXaw" >&5
+echo "configure:9131: checking for $athena_3d_function in -lXaw" >&5
ac_lib_var=`echo Xaw'_'$athena_3d_function | sed 'y%./+-%__p_%'`
xe_check_libs=" -lXaw "
cat > conftest.$ac_ext <<EOF
-#line 9125 "configure"
+#line 9136 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
$athena_3d_function()
; return 0; }
EOF
-if { (eval echo configure:9136: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9147: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
if test "$athena_3d" = "no"; then
ac_safe=`echo "X11/Xaw/ThreeD.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for X11/Xaw/ThreeD.h""... $ac_c" 1>&6
-echo "configure:9167: checking for X11/Xaw/ThreeD.h" >&5
+echo "configure:9178: checking for X11/Xaw/ThreeD.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9170 "configure"
+#line 9181 "configure"
#include "confdefs.h"
#include <X11/Xaw/ThreeD.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9175: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9186: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo "$ac_t""no" 1>&6
ac_safe=`echo "X11/Xaw/XawInit.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for X11/Xaw/XawInit.h""... $ac_c" 1>&6
-echo "configure:9195: checking for X11/Xaw/XawInit.h" >&5
+echo "configure:9206: checking for X11/Xaw/XawInit.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9198 "configure"
+#line 9209 "configure"
#include "confdefs.h"
#include <X11/Xaw/XawInit.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9203: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9214: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
else
ac_safe=`echo "X11/$athena_variant/XawInit.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for X11/$athena_variant/XawInit.h""... $ac_c" 1>&6
-echo "configure:9229: checking for X11/$athena_variant/XawInit.h" >&5
+echo "configure:9240: checking for X11/$athena_variant/XawInit.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9232 "configure"
+#line 9243 "configure"
#include "confdefs.h"
#include <X11/$athena_variant/XawInit.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9237: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9248: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
ac_safe=`echo "X11/$athena_variant/ThreeD.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for X11/$athena_variant/ThreeD.h""... $ac_c" 1>&6
-echo "configure:9254: checking for X11/$athena_variant/ThreeD.h" >&5
+echo "configure:9265: checking for X11/$athena_variant/ThreeD.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9257 "configure"
+#line 9268 "configure"
#include "confdefs.h"
#include <X11/$athena_variant/ThreeD.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9262: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9273: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
if test -z "$athena_h_path"; then
ac_safe=`echo "$athena_variant/XawInit.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $athena_variant/XawInit.h""... $ac_c" 1>&6
-echo "configure:9290: checking for $athena_variant/XawInit.h" >&5
+echo "configure:9301: checking for $athena_variant/XawInit.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9293 "configure"
+#line 9304 "configure"
#include "confdefs.h"
#include <$athena_variant/XawInit.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9298: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9309: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
ac_safe=`echo "$athena_variant/ThreeD.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $athena_variant/ThreeD.h""... $ac_c" 1>&6
-echo "configure:9315: checking for $athena_variant/ThreeD.h" >&5
+echo "configure:9326: checking for $athena_variant/ThreeD.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9318 "configure"
+#line 9329 "configure"
#include "confdefs.h"
#include <$athena_variant/ThreeD.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9323: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9334: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then
ac_safe=`echo "X11/Xaw3d/XawInit.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for X11/Xaw3d/XawInit.h""... $ac_c" 1>&6
-echo "configure:9352: checking for X11/Xaw3d/XawInit.h" >&5
+echo "configure:9363: checking for X11/Xaw3d/XawInit.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9355 "configure"
+#line 9366 "configure"
#include "confdefs.h"
#include <X11/Xaw3d/XawInit.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9360: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9371: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
ac_safe=`echo "X11/Xaw3d/ThreeD.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for X11/Xaw3d/ThreeD.h""... $ac_c" 1>&6
-echo "configure:9377: checking for X11/Xaw3d/ThreeD.h" >&5
+echo "configure:9388: checking for X11/Xaw3d/ThreeD.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9380 "configure"
+#line 9391 "configure"
#include "confdefs.h"
#include <X11/Xaw3d/ThreeD.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9385: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9396: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then
ac_safe=`echo "Xaw3d/XawInit.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for Xaw3d/XawInit.h""... $ac_c" 1>&6
-echo "configure:9417: checking for Xaw3d/XawInit.h" >&5
+echo "configure:9428: checking for Xaw3d/XawInit.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9420 "configure"
+#line 9431 "configure"
#include "confdefs.h"
#include <Xaw3d/XawInit.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9425: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9436: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
ac_safe=`echo "Xaw3d/ThreeD.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for Xaw3d/ThreeD.h""... $ac_c" 1>&6
-echo "configure:9442: checking for Xaw3d/ThreeD.h" >&5
+echo "configure:9453: checking for Xaw3d/ThreeD.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9445 "configure"
+#line 9456 "configure"
#include "confdefs.h"
#include <Xaw3d/ThreeD.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9450: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9461: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
if test -z "$athena_h_path"; then
ac_safe=`echo "X11/Xaw/ThreeD.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for X11/Xaw/ThreeD.h""... $ac_c" 1>&6
-echo "configure:9482: checking for X11/Xaw/ThreeD.h" >&5
+echo "configure:9493: checking for X11/Xaw/ThreeD.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9485 "configure"
+#line 9496 "configure"
#include "confdefs.h"
#include <X11/Xaw/ThreeD.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9490: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9501: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
if test "$with_x11" = "yes"; then
ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6
-echo "configure:9529: checking for Xm/Xm.h" >&5
+echo "configure:9540: checking for Xm/Xm.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 9532 "configure"
+#line 9543 "configure"
#include "confdefs.h"
#include <Xm/Xm.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9537: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9548: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for XmStringFree in -lXm""... $ac_c" 1>&6
-echo "configure:9554: checking for XmStringFree in -lXm" >&5
+echo "configure:9565: checking for XmStringFree in -lXm" >&5
ac_lib_var=`echo Xm'_'XmStringFree | sed 'y%./+-%__p_%'`
xe_check_libs=" -lXm "
cat > conftest.$ac_ext <<EOF
-#line 9559 "configure"
+#line 9570 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
XmStringFree()
; return 0; }
EOF
-if { (eval echo configure:9570: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
if test "$have_motif" = "yes"; then
echo $ac_n "checking for Lesstif""... $ac_c" 1>&6
-echo "configure:9599: checking for Lesstif" >&5
+echo "configure:9610: checking for Lesstif" >&5
cat > conftest.$ac_ext <<EOF
-#line 9601 "configure"
+#line 9612 "configure"
#include "confdefs.h"
#include <Xm/Xm.h>
#ifdef LESSTIF_VERSION
fi
+case "$opsys" in
+ *linux* ) lucid_prefers_motif = "no" ;;
+ * ) lucid_prefers_motif = "yes" ;;
+esac
+
case "$with_menubars" in "" | "yes" | "athena" )
with_menubars="lucid" ;;
esac
case "$with_dialogs" in "" | "yes" | "lucid" )
- if test "$have_motif" = "yes"; then with_dialogs="motif"
- elif test "$have_xaw" = "yes"; then with_dialogs="athena"
- else with_dialogs=no
+ if test "$lucid_prefers_motif" = "yes"; then
+ if test "$have_motif" = "yes"; then with_dialogs="motif"
+ elif test "$have_xaw" = "yes"; then with_dialogs="athena"
+ else with_dialogs=no
+ fi
+ else
+ if test "$have_xaw" = "yes"; then with_dialogs="athena"
+ elif test "$have_motif" = "yes"; then with_dialogs="motif"
+ else with_dialogs=no
+ fi
fi ;;
esac
case "$with_scrollbars" in "" | "yes" )
esac
case "$with_widgets" in
"yes" | "lucid")
- if test "$have_motif" = "yes"; then with_widgets="motif"
- elif test "$have_xaw" = "yes"; then with_widgets="athena"
- else with_widgets=no
+ if test "$lucid_prefers_motif" = "yes"; then
+ if test "$have_motif" = "yes"; then with_widgets="motif"
+ elif test "$have_xaw" = "yes"; then with_widgets="athena"
+ else with_widgets=no
+ fi
+ else
+ if test "$have_xaw" = "yes"; then with_widgets="athena"
+ elif test "$have_motif" = "yes"; then with_widgets="motif"
+ else with_widgets=no
+ fi
fi ;;
"" )
with_widgets=no ;;
if test "$with_mule" = "yes" ; then
echo "checking for Mule-related features" 1>&6
-echo "configure:10035: checking for Mule-related features" >&5
+echo "configure:10065: checking for Mule-related features" >&5
{ test "$extra_verbose" = "yes" && cat << \EOF
Defining MULE
EOF
if test "$with_chise" != "no"; then
ac_safe=`echo "chise.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for chise.h""... $ac_c" 1>&6
-echo "configure:10049: checking for chise.h" >&5
+echo "configure:10079: checking for chise.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10052 "configure"
+#line 10082 "configure"
#include "confdefs.h"
#include <chise.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10057: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10087: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
c_switch_site="$c_switch_site -I/usr/local/chise/include"
ac_safe=`echo "chise.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for chise.h""... $ac_c" 1>&6
-echo "configure:10085: checking for chise.h" >&5
+echo "configure:10115: checking for chise.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10088 "configure"
+#line 10118 "configure"
#include "confdefs.h"
#include <chise.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10093: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10123: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:10172: checking for $ac_hdr" >&5
+echo "configure:10202: checking for $ac_hdr" >&5
cat > conftest.$ac_ext <<EOF
-#line 10175 "configure"
+#line 10205 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10180: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10210: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo $ac_n "checking for strerror in -lintl""... $ac_c" 1>&6
-echo "configure:10211: checking for strerror in -lintl" >&5
+echo "configure:10241: checking for strerror in -lintl" >&5
ac_lib_var=`echo intl'_'strerror | sed 'y%./+-%__p_%'`
xe_check_libs=" -lintl "
cat > conftest.$ac_ext <<EOF
-#line 10216 "configure"
+#line 10246 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
strerror()
; return 0; }
EOF
-if { (eval echo configure:10227: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10257: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
fi
echo "checking for Mule input methods" 1>&6
-echo "configure:10281: checking for Mule input methods" >&5
+echo "configure:10311: checking for Mule input methods" >&5
case "$with_xim" in "" | "yes" )
echo "checking for XIM" 1>&6
-echo "configure:10284: checking for XIM" >&5
+echo "configure:10314: checking for XIM" >&5
echo $ac_n "checking for XOpenIM in -lX11""... $ac_c" 1>&6
-echo "configure:10287: checking for XOpenIM in -lX11" >&5
+echo "configure:10317: checking for XOpenIM in -lX11" >&5
ac_lib_var=`echo X11'_'XOpenIM | sed 'y%./+-%__p_%'`
xe_check_libs=" -lX11 "
cat > conftest.$ac_ext <<EOF
-#line 10292 "configure"
+#line 10322 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
XOpenIM()
; return 0; }
EOF
-if { (eval echo configure:10303: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10333: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
fi
- if test "$have_motif $have_lesstif" = "yes no"; then
+ if test "$need_motif $have_lesstif" = "yes no"; then
+
+echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6
+echo "configure:10357: checking for XmImMbLookupString in -lXm" >&5
+ac_lib_var=`echo Xm'_'XmImMbLookupString | sed 'y%./+-%__p_%'`
+
+xe_check_libs=" -lXm "
+cat > conftest.$ac_ext <<EOF
+#line 10362 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char XmImMbLookupString();
+
+int main() {
+XmImMbLookupString()
+; return 0; }
+EOF
+if { (eval echo configure:10373: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+xe_check_libs=""
+
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes" ; then
+ echo "$ac_t""yes" 1>&6
+ with_xim=motif
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+ elif test "$have_motif $have_lesstif $with_xim" = "yes no no"; then
echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6
-echo "configure:10327: checking for XmImMbLookupString in -lXm" >&5
+echo "configure:10396: checking for XmImMbLookupString in -lXm" >&5
ac_lib_var=`echo Xm'_'XmImMbLookupString | sed 'y%./+-%__p_%'`
xe_check_libs=" -lXm "
cat > conftest.$ac_ext <<EOF
-#line 10332 "configure"
+#line 10401 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
XmImMbLookupString()
; return 0; }
EOF
-if { (eval echo configure:10343: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
if test "$with_xfs" = "yes" ; then
echo "checking for XFontSet" 1>&6
-echo "configure:10408: checking for XFontSet" >&5
+echo "configure:10477: checking for XFontSet" >&5
echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6
-echo "configure:10411: checking for XmbDrawString in -lX11" >&5
+echo "configure:10480: checking for XmbDrawString in -lX11" >&5
ac_lib_var=`echo X11'_'XmbDrawString | sed 'y%./+-%__p_%'`
xe_check_libs=" -lX11 "
cat > conftest.$ac_ext <<EOF
-#line 10416 "configure"
+#line 10485 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
XmbDrawString()
; return 0; }
EOF
-if { (eval echo configure:10427: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10496: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support
test -z "$with_wnn" && { ac_safe=`echo "wnn/jllib.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for wnn/jllib.h""... $ac_c" 1>&6
-echo "configure:10467: checking for wnn/jllib.h" >&5
+echo "configure:10536: checking for wnn/jllib.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10470 "configure"
+#line 10539 "configure"
#include "confdefs.h"
#include <wnn/jllib.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10475: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10544: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
}
test -z "$with_wnn" && { ac_safe=`echo "wnn/commonhd.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for wnn/commonhd.h""... $ac_c" 1>&6
-echo "configure:10498: checking for wnn/commonhd.h" >&5
+echo "configure:10567: checking for wnn/commonhd.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10501 "configure"
+#line 10570 "configure"
#include "confdefs.h"
#include <wnn/commonhd.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10506: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10575: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
for ac_func in crypt
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10531: checking for $ac_func" >&5
+echo "configure:10600: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 10534 "configure"
+#line 10603 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:10557: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10626: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
test "$ac_cv_func_crypt" != "yes" && {
echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
-echo "configure:10586: checking for crypt in -lcrypt" >&5
+echo "configure:10655: checking for crypt in -lcrypt" >&5
ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'`
xe_check_libs=" -lcrypt "
cat > conftest.$ac_ext <<EOF
-#line 10591 "configure"
+#line 10660 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
crypt()
; return 0; }
EOF
-if { (eval echo configure:10602: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10671: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
if test -z "$with_wnn" -o "$with_wnn" = "yes"; then
echo $ac_n "checking for jl_dic_list_e in -lwnn""... $ac_c" 1>&6
-echo "configure:10637: checking for jl_dic_list_e in -lwnn" >&5
+echo "configure:10706: checking for jl_dic_list_e in -lwnn" >&5
ac_lib_var=`echo wnn'_'jl_dic_list_e | sed 'y%./+-%__p_%'`
xe_check_libs=" -lwnn "
cat > conftest.$ac_ext <<EOF
-#line 10642 "configure"
+#line 10711 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
jl_dic_list_e()
; return 0; }
EOF
-if { (eval echo configure:10653: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10722: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for jl_dic_list_e in -lwnn4""... $ac_c" 1>&6
-echo "configure:10671: checking for jl_dic_list_e in -lwnn4" >&5
+echo "configure:10740: checking for jl_dic_list_e in -lwnn4" >&5
ac_lib_var=`echo wnn4'_'jl_dic_list_e | sed 'y%./+-%__p_%'`
xe_check_libs=" -lwnn4 "
cat > conftest.$ac_ext <<EOF
-#line 10676 "configure"
+#line 10745 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
jl_dic_list_e()
; return 0; }
EOF
-if { (eval echo configure:10687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10756: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for jl_dic_list_e in -lwnn6""... $ac_c" 1>&6
-echo "configure:10705: checking for jl_dic_list_e in -lwnn6" >&5
+echo "configure:10774: checking for jl_dic_list_e in -lwnn6" >&5
ac_lib_var=`echo wnn6'_'jl_dic_list_e | sed 'y%./+-%__p_%'`
xe_check_libs=" -lwnn6 "
cat > conftest.$ac_ext <<EOF
-#line 10710 "configure"
+#line 10779 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
jl_dic_list_e()
; return 0; }
EOF
-if { (eval echo configure:10721: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10790: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for dic_list_e in -lwnn6_fromsrc""... $ac_c" 1>&6
-echo "configure:10739: checking for dic_list_e in -lwnn6_fromsrc" >&5
+echo "configure:10808: checking for dic_list_e in -lwnn6_fromsrc" >&5
ac_lib_var=`echo wnn6_fromsrc'_'dic_list_e | sed 'y%./+-%__p_%'`
xe_check_libs=" -lwnn6_fromsrc "
cat > conftest.$ac_ext <<EOF
-#line 10744 "configure"
+#line 10813 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
dic_list_e()
; return 0; }
EOF
-if { (eval echo configure:10755: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10824: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
if test "$with_wnn6" != "no"; then
echo $ac_n "checking for jl_fi_dic_list in -l$libwnn""... $ac_c" 1>&6
-echo "configure:10803: checking for jl_fi_dic_list in -l$libwnn" >&5
+echo "configure:10872: checking for jl_fi_dic_list in -l$libwnn" >&5
ac_lib_var=`echo $libwnn'_'jl_fi_dic_list | sed 'y%./+-%__p_%'`
xe_check_libs=" -l$libwnn "
cat > conftest.$ac_ext <<EOF
-#line 10808 "configure"
+#line 10877 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
jl_fi_dic_list()
; return 0; }
EOF
-if { (eval echo configure:10819: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10888: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
if test "$with_canna" != "no"; then
ac_safe=`echo "canna/jrkanji.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for canna/jrkanji.h""... $ac_c" 1>&6
-echo "configure:10854: checking for canna/jrkanji.h" >&5
+echo "configure:10923: checking for canna/jrkanji.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10857 "configure"
+#line 10926 "configure"
#include "confdefs.h"
#include <canna/jrkanji.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10862: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10931: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
c_switch_site="$c_switch_site -I/usr/local/canna/include"
ac_safe=`echo "canna/jrkanji.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for canna/jrkanji.h""... $ac_c" 1>&6
-echo "configure:10889: checking for canna/jrkanji.h" >&5
+echo "configure:10958: checking for canna/jrkanji.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10892 "configure"
+#line 10961 "configure"
#include "confdefs.h"
#include <canna/jrkanji.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10897: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10966: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
test -z "$with_canna" && { ac_safe=`echo "canna/RK.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for canna/RK.h""... $ac_c" 1>&6
-echo "configure:10925: checking for canna/RK.h" >&5
+echo "configure:10994: checking for canna/RK.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 10928 "configure"
+#line 10997 "configure"
#include "confdefs.h"
#include <canna/RK.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10933: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11002: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
}
test -z "$with_canna" && {
echo $ac_n "checking for RkBgnBun in -lRKC""... $ac_c" 1>&6
-echo "configure:10956: checking for RkBgnBun in -lRKC" >&5
+echo "configure:11025: checking for RkBgnBun in -lRKC" >&5
ac_lib_var=`echo RKC'_'RkBgnBun | sed 'y%./+-%__p_%'`
xe_check_libs=" -lRKC "
cat > conftest.$ac_ext <<EOF
-#line 10961 "configure"
+#line 11030 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
RkBgnBun()
; return 0; }
EOF
-if { (eval echo configure:10972: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11041: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
}
test -z "$with_canna" && {
echo $ac_n "checking for jrKanjiControl in -lcanna""... $ac_c" 1>&6
-echo "configure:10995: checking for jrKanjiControl in -lcanna" >&5
+echo "configure:11064: checking for jrKanjiControl in -lcanna" >&5
ac_lib_var=`echo canna'_'jrKanjiControl | sed 'y%./+-%__p_%'`
xe_check_libs=" -lcanna "
cat > conftest.$ac_ext <<EOF
-#line 11000 "configure"
+#line 11069 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
jrKanjiControl()
; return 0; }
EOF
-if { (eval echo configure:11011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11080: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
libs_x="-lXm $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-lXm\" to \$libs_x"; fi
echo $ac_n "checking for layout_object_getvalue in -li18n""... $ac_c" 1>&6
-echo "configure:11060: checking for layout_object_getvalue in -li18n" >&5
+echo "configure:11129: checking for layout_object_getvalue in -li18n" >&5
ac_lib_var=`echo i18n'_'layout_object_getvalue | sed 'y%./+-%__p_%'`
xe_check_libs=" -li18n "
cat > conftest.$ac_ext <<EOF
-#line 11065 "configure"
+#line 11134 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
layout_object_getvalue()
; return 0; }
EOF
-if { (eval echo configure:11076: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11145: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
eval "$xe_add_unique_runpath_dir"
};; esac
done
- if test "$opsys $need_motif" = "sol2 yes"; then
+ if test "$opsys $need_motif" = "sol2 yes"; then
xe_runpath_dir="/opt/SUNWdt/lib";
eval "$xe_add_unique_runpath_dir";
fi
for ac_func in cbrt closedir dup2 eaccess fmod fpathconf frexp ftime getaddrinfo gethostname getnameinfo getpagesize gettimeofday getcwd getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf stpcpy strerror tzset ulimit usleep waitpid vsnprintf fsync ftruncate umask
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11163: checking for $ac_func" >&5
+echo "configure:11232: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 11166 "configure"
+#line 11235 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:11189: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11258: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
for ac_func in getpt _getpty grantpt unlockpt ptsname killpg tcgetpgrp
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11230: checking for $ac_func" >&5
+echo "configure:11299: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 11233 "configure"
+#line 11302 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:11256: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
echo $ac_n "checking for openpty""... $ac_c" 1>&6
-echo "configure:11285: checking for openpty" >&5
+echo "configure:11354: checking for openpty" >&5
cat > conftest.$ac_ext <<EOF
-#line 11288 "configure"
+#line 11357 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char openpty(); below. */
; return 0; }
EOF
-if { (eval echo configure:11311: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11380: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_openpty=yes"
else
echo $ac_n "checking for openpty in -lutil""... $ac_c" 1>&6
-echo "configure:11330: checking for openpty in -lutil" >&5
+echo "configure:11399: checking for openpty in -lutil" >&5
ac_lib_var=`echo util'_'openpty | sed 'y%./+-%__p_%'`
xe_check_libs=" -lutil "
cat > conftest.$ac_ext <<EOF
-#line 11335 "configure"
+#line 11404 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
openpty()
; return 0; }
EOF
-if { (eval echo configure:11346: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11415: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:11381: checking for $ac_hdr" >&5
+echo "configure:11450: checking for $ac_hdr" >&5
cat > conftest.$ac_ext <<EOF
-#line 11384 "configure"
+#line 11453 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11389: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11458: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:11425: checking for $ac_hdr" >&5
+echo "configure:11494: checking for $ac_hdr" >&5
cat > conftest.$ac_ext <<EOF
-#line 11428 "configure"
+#line 11497 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11433: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11502: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
for ac_func in isastream
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11466: checking for $ac_func" >&5
+echo "configure:11535: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 11469 "configure"
+#line 11538 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:11492: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11561: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:11523: checking for $ac_hdr" >&5
+echo "configure:11592: checking for $ac_hdr" >&5
cat > conftest.$ac_ext <<EOF
-#line 11526 "configure"
+#line 11595 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11531: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11600: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
for ac_func in getloadavg
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11568: checking for $ac_func" >&5
+echo "configure:11637: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 11571 "configure"
+#line 11640 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:11594: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11663: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:11627: checking for $ac_hdr" >&5
+echo "configure:11696: checking for $ac_hdr" >&5
cat > conftest.$ac_ext <<EOF
-#line 11630 "configure"
+#line 11699 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11635: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11704: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo $ac_n "checking for kstat_open in -lkstat""... $ac_c" 1>&6
-echo "configure:11671: checking for kstat_open in -lkstat" >&5
+echo "configure:11740: checking for kstat_open in -lkstat" >&5
ac_lib_var=`echo kstat'_'kstat_open | sed 'y%./+-%__p_%'`
xe_check_libs=" -lkstat "
cat > conftest.$ac_ext <<EOF
-#line 11676 "configure"
+#line 11745 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
kstat_open()
; return 0; }
EOF
-if { (eval echo configure:11687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11756: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:11722: checking for $ac_hdr" >&5
+echo "configure:11791: checking for $ac_hdr" >&5
cat > conftest.$ac_ext <<EOF
-#line 11725 "configure"
+#line 11794 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11730: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11799: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo $ac_n "checking for kvm_read in -lkvm""... $ac_c" 1>&6
-echo "configure:11762: checking for kvm_read in -lkvm" >&5
+echo "configure:11831: checking for kvm_read in -lkvm" >&5
ac_lib_var=`echo kvm'_'kvm_read | sed 'y%./+-%__p_%'`
xe_check_libs=" -lkvm "
cat > conftest.$ac_ext <<EOF
-#line 11767 "configure"
+#line 11836 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
kvm_read()
; return 0; }
EOF
-if { (eval echo configure:11778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11847: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
fi
echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6
-echo "configure:11812: checking whether netdb declares h_errno" >&5
+echo "configure:11881: checking whether netdb declares h_errno" >&5
cat > conftest.$ac_ext <<EOF
-#line 11814 "configure"
+#line 11883 "configure"
#include "confdefs.h"
#include <netdb.h>
int main() {
return h_errno;
; return 0; }
EOF
-if { (eval echo configure:11821: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11890: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
{ test "$extra_verbose" = "yes" && cat << \EOF
rm -f conftest*
echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6
-echo "configure:11841: checking for sigsetjmp" >&5
+echo "configure:11910: checking for sigsetjmp" >&5
cat > conftest.$ac_ext <<EOF
-#line 11843 "configure"
+#line 11912 "configure"
#include "confdefs.h"
#include <setjmp.h>
int main() {
sigjmp_buf bar; sigsetjmp (bar, 0);
; return 0; }
EOF
-if { (eval echo configure:11850: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11919: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
{ test "$extra_verbose" = "yes" && cat << \EOF
rm -f conftest*
echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6
-echo "configure:11870: checking whether localtime caches TZ" >&5
+echo "configure:11939: checking whether localtime caches TZ" >&5
if test "$ac_cv_func_tzset" = "yes"; then
cat > conftest.$ac_ext <<EOF
-#line 11874 "configure"
+#line 11943 "configure"
#include "confdefs.h"
#include <time.h>
#if STDC_HEADERS
exit (0);
}
EOF
-if { (eval echo configure:11909: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:11978: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
emacs_cv_localtime_cache=no
else
if test "$HAVE_TIMEVAL" = "yes"; then
echo $ac_n "checking whether gettimeofday accepts one or two arguments""... $ac_c" 1>&6
-echo "configure:11939: checking whether gettimeofday accepts one or two arguments" >&5
+echo "configure:12008: checking whether gettimeofday accepts one or two arguments" >&5
cat > conftest.$ac_ext <<EOF
-#line 11941 "configure"
+#line 12010 "configure"
#include "confdefs.h"
#ifdef TIME_WITH_SYS_TIME
; return 0; }
EOF
-if { (eval echo configure:11962: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12031: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
echo "$ac_t""two" 1>&6
else
echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:11984: checking for inline" >&5
+echo "configure:12053: checking for inline" >&5
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat > conftest.$ac_ext <<EOF
-#line 11989 "configure"
+#line 12058 "configure"
#include "confdefs.h"
int main() {
} $ac_kw foo() {
; return 0; }
EOF
-if { (eval echo configure:11996: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12065: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_inline=$ac_kw; break
else
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:12037: checking for working alloca.h" >&5
+echo "configure:12106: checking for working alloca.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 12040 "configure"
+#line 12109 "configure"
#include "confdefs.h"
#include <alloca.h>
int main() {
char *p = alloca(2 * sizeof(int));
; return 0; }
EOF
-if { (eval echo configure:12047: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12116: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_header_alloca_h=yes
else
fi
echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:12071: checking for alloca" >&5
+echo "configure:12140: checking for alloca" >&5
cat > conftest.$ac_ext <<EOF
-#line 12074 "configure"
+#line 12143 "configure"
#include "confdefs.h"
#ifdef __GNUC__
char *p = (char *) alloca(1);
; return 0; }
EOF
-if { (eval echo configure:12102: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12171: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_func_alloca_works=yes
else
echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:12141: checking whether alloca needs Cray hooks" >&5
+echo "configure:12210: checking whether alloca needs Cray hooks" >&5
cat > conftest.$ac_ext <<EOF
-#line 12144 "configure"
+#line 12213 "configure"
#include "confdefs.h"
#if defined(CRAY) && ! defined(CRAY2)
webecray
if test $ac_cv_os_cray = yes; then
for ac_func in _getb67 GETB67 getb67; do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12168: checking for $ac_func" >&5
+echo "configure:12237: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 12171 "configure"
+#line 12240 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:12194: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12263: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
fi
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:12224: checking stack direction for C alloca" >&5
+echo "configure:12293: checking stack direction for C alloca" >&5
cat > conftest.$ac_ext <<EOF
-#line 12227 "configure"
+#line 12296 "configure"
#include "confdefs.h"
find_stack_direction ()
{
exit (find_stack_direction() < 0);
}
EOF
-if { (eval echo configure:12246: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:12315: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
ac_cv_c_stack_direction=1
else
ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for vfork.h""... $ac_c" 1>&6
-echo "configure:12276: checking for vfork.h" >&5
+echo "configure:12345: checking for vfork.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 12279 "configure"
+#line 12348 "configure"
#include "confdefs.h"
#include <vfork.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12284: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12353: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
fi
echo $ac_n "checking for working vfork""... $ac_c" 1>&6
-echo "configure:12312: checking for working vfork" >&5
+echo "configure:12381: checking for working vfork" >&5
cat > conftest.$ac_ext <<EOF
-#line 12315 "configure"
+#line 12384 "configure"
#include "confdefs.h"
/* Thanks to Paul Eggert for this test. */
#include <stdio.h>
}
}
EOF
-if { (eval echo configure:12410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:12479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
ac_cv_func_vfork_works=yes
else
echo $ac_n "checking for working strcoll""... $ac_c" 1>&6
-echo "configure:12436: checking for working strcoll" >&5
+echo "configure:12505: checking for working strcoll" >&5
cat > conftest.$ac_ext <<EOF
-#line 12439 "configure"
+#line 12508 "configure"
#include "confdefs.h"
#include <string.h>
main ()
strcoll ("123", "456") >= 0);
}
EOF
-if { (eval echo configure:12449: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:12518: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
ac_cv_func_strcoll_works=yes
else
for ac_func in getpgrp
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12477: checking for $ac_func" >&5
+echo "configure:12546: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 12480 "configure"
+#line 12549 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:12503: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12572: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
done
echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6
-echo "configure:12531: checking whether getpgrp takes no argument" >&5
+echo "configure:12600: checking whether getpgrp takes no argument" >&5
cat > conftest.$ac_ext <<EOF
-#line 12534 "configure"
+#line 12603 "configure"
#include "confdefs.h"
/*
}
EOF
-if { (eval echo configure:12589: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:12658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
ac_cv_func_getpgrp_void=yes
else
echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:12616: checking for working mmap" >&5
+echo "configure:12685: checking for working mmap" >&5
case "$opsys" in ultrix* ) have_mmap=no ;; *)
cat > conftest.$ac_ext <<EOF
-#line 12619 "configure"
+#line 12688 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <unistd.h>
return 1;
}
EOF
-if { (eval echo configure:12652: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:12721: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
have_mmap=yes
else
if test "$rel_alloc $have_mmap" = "default yes"; then
if test "$doug_lea_malloc" = "yes"; then
echo $ac_n "checking for M_MMAP_THRESHOLD""... $ac_c" 1>&6
-echo "configure:12681: checking for M_MMAP_THRESHOLD" >&5
+echo "configure:12750: checking for M_MMAP_THRESHOLD" >&5
cat > conftest.$ac_ext <<EOF
-#line 12683 "configure"
+#line 12752 "configure"
#include "confdefs.h"
#include <malloc.h>
int main() {
; return 0; }
EOF
-if { (eval echo configure:12695: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12764: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
rel_alloc=no; echo "$ac_t""yes" 1>&6;
else
ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for termios.h""... $ac_c" 1>&6
-echo "configure:12720: checking for termios.h" >&5
+echo "configure:12789: checking for termios.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 12723 "configure"
+#line 12792 "configure"
#include "confdefs.h"
#include <termios.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12728: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12797: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo "$ac_t""no" 1>&6
ac_safe=`echo "termio.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for termio.h""... $ac_c" 1>&6
-echo "configure:12771: checking for termio.h" >&5
+echo "configure:12840: checking for termio.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 12774 "configure"
+#line 12843 "configure"
#include "confdefs.h"
#include <termio.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12779: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12848: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo $ac_n "checking for socket""... $ac_c" 1>&6
-echo "configure:12811: checking for socket" >&5
+echo "configure:12880: checking for socket" >&5
cat > conftest.$ac_ext <<EOF
-#line 12814 "configure"
+#line 12883 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char socket(); below. */
; return 0; }
EOF
-if { (eval echo configure:12837: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12906: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_socket=yes"
else
echo "$ac_t""yes" 1>&6
ac_safe=`echo "netinet/in.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for netinet/in.h""... $ac_c" 1>&6
-echo "configure:12852: checking for netinet/in.h" >&5
+echo "configure:12921: checking for netinet/in.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 12855 "configure"
+#line 12924 "configure"
#include "confdefs.h"
#include <netinet/in.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12860: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12929: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
ac_safe=`echo "arpa/inet.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for arpa/inet.h""... $ac_c" 1>&6
-echo "configure:12877: checking for arpa/inet.h" >&5
+echo "configure:12946: checking for arpa/inet.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 12880 "configure"
+#line 12949 "configure"
#include "confdefs.h"
#include <arpa/inet.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12885: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12954: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
}
echo $ac_n "checking "for sun_len member in struct sockaddr_un"""... $ac_c" 1>&6
-echo "configure:12910: checking "for sun_len member in struct sockaddr_un"" >&5
+echo "configure:12979: checking "for sun_len member in struct sockaddr_un"" >&5
cat > conftest.$ac_ext <<EOF
-#line 12912 "configure"
+#line 12981 "configure"
#include "confdefs.h"
#include <sys/types.h>
static struct sockaddr_un x; x.sun_len = 1;
; return 0; }
EOF
-if { (eval echo configure:12923: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12992: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6; { test "$extra_verbose" = "yes" && cat << \EOF
Defining HAVE_SOCKADDR_SUN_LEN
fi
rm -f conftest*
echo $ac_n "checking "for ip_mreq struct in netinet/in.h"""... $ac_c" 1>&6
-echo "configure:12941: checking "for ip_mreq struct in netinet/in.h"" >&5
+echo "configure:13010: checking "for ip_mreq struct in netinet/in.h"" >&5
cat > conftest.$ac_ext <<EOF
-#line 12943 "configure"
+#line 13012 "configure"
#include "confdefs.h"
#include <sys/types.h>
static struct ip_mreq x;
; return 0; }
EOF
-if { (eval echo configure:12953: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13022: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6; { test "$extra_verbose" = "yes" && cat << \EOF
Defining HAVE_MULTICAST
echo $ac_n "checking for msgget""... $ac_c" 1>&6
-echo "configure:12984: checking for msgget" >&5
+echo "configure:13053: checking for msgget" >&5
cat > conftest.$ac_ext <<EOF
-#line 12987 "configure"
+#line 13056 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char msgget(); below. */
; return 0; }
EOF
-if { (eval echo configure:13010: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13079: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_msgget=yes"
else
echo "$ac_t""yes" 1>&6
ac_safe=`echo "sys/ipc.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for sys/ipc.h""... $ac_c" 1>&6
-echo "configure:13025: checking for sys/ipc.h" >&5
+echo "configure:13094: checking for sys/ipc.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 13028 "configure"
+#line 13097 "configure"
#include "confdefs.h"
#include <sys/ipc.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13033: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13102: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
ac_safe=`echo "sys/msg.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for sys/msg.h""... $ac_c" 1>&6
-echo "configure:13050: checking for sys/msg.h" >&5
+echo "configure:13119: checking for sys/msg.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 13053 "configure"
+#line 13122 "configure"
#include "confdefs.h"
#include <sys/msg.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13058: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13127: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
ac_safe=`echo "dirent.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for dirent.h""... $ac_c" 1>&6
-echo "configure:13096: checking for dirent.h" >&5
+echo "configure:13165: checking for dirent.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 13099 "configure"
+#line 13168 "configure"
#include "confdefs.h"
#include <dirent.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13104: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13173: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo "$ac_t""no" 1>&6
ac_safe=`echo "sys/dir.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for sys/dir.h""... $ac_c" 1>&6
-echo "configure:13131: checking for sys/dir.h" >&5
+echo "configure:13200: checking for sys/dir.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 13134 "configure"
+#line 13203 "configure"
#include "confdefs.h"
#include <sys/dir.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13139: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13208: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
ac_safe=`echo "nlist.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for nlist.h""... $ac_c" 1>&6
-echo "configure:13172: checking for nlist.h" >&5
+echo "configure:13241: checking for nlist.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 13175 "configure"
+#line 13244 "configure"
#include "confdefs.h"
#include <nlist.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13180: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13249: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo "checking "for sound support"" 1>&6
-echo "configure:13210: checking "for sound support"" >&5
+echo "configure:13279: checking "for sound support"" >&5
test -z "$with_native_sound" -a -n "$native_sound_lib" && with_native_sound=yes
if test "$with_native_sound" != "no"; then
if test -n "$native_sound_lib"; then
ac_safe=`echo "multimedia/audio_device.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for multimedia/audio_device.h""... $ac_c" 1>&6
-echo "configure:13217: checking for multimedia/audio_device.h" >&5
+echo "configure:13286: checking for multimedia/audio_device.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 13220 "configure"
+#line 13289 "configure"
#include "confdefs.h"
#include <multimedia/audio_device.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13225: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13294: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
fi
if test -z "$sound_found" -a -d "/usr/demo/SOUND"; then
- sound_found=yes
- extra_objs="$extra_objs sunplay.o" && if test "$extra_verbose" = "yes"; then
+ if test -d "/usr/demo/SOUND/include/multimedia"; then
+ sun_sound_cflags="-I/usr/demo/SOUND/include"
+ elif test -d "/usr/demo/SOUND/multimedia"; then
+ sun_sound_cflags="-I/usr/demo/SOUND"
+ fi
+
+ if test -n "$native_sound_lib"; then
+ sun_sound_lib="$native_sound_lib"
+ elif test -r "/usr/demo/SOUND/lib/libaudio.a"; then
+ sun_sound_lib="/usr/demo/SOUND/lib/libaudio.a"
+ elif test -r "/usr/demo/SOUND/libaudio.a"; then
+ sun_sound_lib="/usr/demo/SOUND/libaudio.a"
+ fi
+
+ if test -n "$sun_sound_cflags" -a -n "$sun_sound_lib"; then
+ native_sound_lib="$sun_sound_lib"
+ sound_cflags="$sun_sound_cflags"
+ sound_found=yes
+ extra_objs="$extra_objs sunplay.o" && if test "$extra_verbose" = "yes"; then
echo " xemacs will be linked with \"sunplay.o\""
fi
- if test -d "/usr/demo/SOUND/include"
- then sound_cflags="-I/usr/demo/SOUND/include"
- else sound_cflags="-I/usr/demo/SOUND"
- fi
- if test -z "$native_sound_lib" ; then
- if test -r "/usr/demo/SOUND/lib/libaudio.a"
- then native_sound_lib="/usr/demo/SOUND/lib/libaudio.a"
- else native_sound_lib="/usr/demo/SOUND/libaudio.a"
- fi
fi
fi
if test -z "$native_sound_lib"; then
echo $ac_n "checking for ALopenport in -laudio""... $ac_c" 1>&6
-echo "configure:13273: checking for ALopenport in -laudio" >&5
+echo "configure:13350: checking for ALopenport in -laudio" >&5
ac_lib_var=`echo audio'_'ALopenport | sed 'y%./+-%__p_%'`
xe_check_libs=" -laudio "
cat > conftest.$ac_ext <<EOF
-#line 13278 "configure"
+#line 13355 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
ALopenport()
; return 0; }
EOF
-if { (eval echo configure:13289: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13366: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
if test -z "$native_sound_lib"; then
echo $ac_n "checking for AOpenAudio in -lAlib""... $ac_c" 1>&6
-echo "configure:13320: checking for AOpenAudio in -lAlib" >&5
+echo "configure:13397: checking for AOpenAudio in -lAlib" >&5
ac_lib_var=`echo Alib'_'AOpenAudio | sed 'y%./+-%__p_%'`
xe_check_libs=" -lAlib "
cat > conftest.$ac_ext <<EOF
-#line 13325 "configure"
+#line 13402 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
AOpenAudio()
; return 0; }
EOF
-if { (eval echo configure:13336: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
for dir in "machine" "sys" "linux"; do
ac_safe=`echo "${dir}/soundcard.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for ${dir}/soundcard.h""... $ac_c" 1>&6
-echo "configure:13381: checking for ${dir}/soundcard.h" >&5
+echo "configure:13458: checking for ${dir}/soundcard.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 13384 "configure"
+#line 13461 "configure"
#include "confdefs.h"
#include <${dir}/soundcard.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13389: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13466: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
if test "$with_nas_sound" != "no"; then
ac_safe=`echo "audio/audiolib.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for audio/audiolib.h""... $ac_c" 1>&6
-echo "configure:13443: checking for audio/audiolib.h" >&5
+echo "configure:13520: checking for audio/audiolib.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 13446 "configure"
+#line 13523 "configure"
#include "confdefs.h"
#include <audio/audiolib.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13451: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13528: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo $ac_n "checking for AuOpenServer in -laudio""... $ac_c" 1>&6
-echo "configure:13469: checking for AuOpenServer in -laudio" >&5
+echo "configure:13546: checking for AuOpenServer in -laudio" >&5
ac_lib_var=`echo audio'_'AuOpenServer | sed 'y%./+-%__p_%'`
xe_check_libs=" -laudio "
cat > conftest.$ac_ext <<EOF
-#line 13474 "configure"
+#line 13551 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
AuOpenServer()
; return 0; }
EOF
-if { (eval echo configure:13485: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
fi
libs_x="-laudio $libs_x" && if test "$extra_verbose" = "yes"; then echo " Prepending \"-laudio\" to \$libs_x"; fi
cat > conftest.$ac_ext <<EOF
-#line 13524 "configure"
+#line 13601 "configure"
#include "confdefs.h"
#include <audio/Xtutil.h>
EOF
# Extract the first word of "esd-config", so it can be a program name with args.
set dummy esd-config; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:13555: checking for $ac_word" >&5
+echo "configure:13632: checking for $ac_word" >&5
if test -n "$have_esd_config"; then
ac_cv_prog_have_esd_config="$have_esd_config" # Let the user override the test.
c_switch_site="$c_switch_site `esd-config --cflags`" && if test "$extra_verbose" = "yes"; then echo " Appending \"`esd-config --cflags`\" to \$c_switch_site"; fi
LIBS="`esd-config --libs` $LIBS" && if test "$extra_verbose" = "yes"; then echo " Prepending \"`esd-config --libs`\" to \$LIBS"; fi
echo $ac_n "checking for esd_play_stream""... $ac_c" 1>&6
-echo "configure:13584: checking for esd_play_stream" >&5
+echo "configure:13661: checking for esd_play_stream" >&5
cat > conftest.$ac_ext <<EOF
-#line 13587 "configure"
+#line 13664 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char esd_play_stream(); below. */
; return 0; }
EOF
-if { (eval echo configure:13610: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_esd_play_stream=yes"
else
if test "$with_tty" = "yes" ; then
echo "checking for TTY-related features" 1>&6
-echo "configure:13661: checking for TTY-related features" >&5
+echo "configure:13738: checking for TTY-related features" >&5
{ test "$extra_verbose" = "yes" && cat << \EOF
Defining HAVE_TTY
EOF
if test -z "$with_ncurses"; then
echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6
-echo "configure:13677: checking for tgetent in -lncurses" >&5
+echo "configure:13754: checking for tgetent in -lncurses" >&5
ac_lib_var=`echo ncurses'_'tgetent | sed 'y%./+-%__p_%'`
xe_check_libs=" -lncurses "
cat > conftest.$ac_ext <<EOF
-#line 13682 "configure"
+#line 13759 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
tgetent()
; return 0; }
EOF
-if { (eval echo configure:13693: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13770: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6
-echo "configure:13726: checking for ncurses/curses.h" >&5
+echo "configure:13803: checking for ncurses/curses.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 13729 "configure"
+#line 13806 "configure"
#include "confdefs.h"
#include <ncurses/curses.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13734: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13811: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
ac_safe=`echo "ncurses/term.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for ncurses/term.h""... $ac_c" 1>&6
-echo "configure:13756: checking for ncurses/term.h" >&5
+echo "configure:13833: checking for ncurses/term.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 13759 "configure"
+#line 13836 "configure"
#include "confdefs.h"
#include <ncurses/term.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13764: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13841: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
c_switch_site="$c_switch_site -I/usr/include/ncurses"
ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6
-echo "configure:13794: checking for ncurses/curses.h" >&5
+echo "configure:13871: checking for ncurses/curses.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 13797 "configure"
+#line 13874 "configure"
#include "confdefs.h"
#include <ncurses/curses.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13802: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13879: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
for lib in curses termlib termcap; do
echo $ac_n "checking for tgetent in -l$lib""... $ac_c" 1>&6
-echo "configure:13837: checking for tgetent in -l$lib" >&5
+echo "configure:13914: checking for tgetent in -l$lib" >&5
ac_lib_var=`echo $lib'_'tgetent | sed 'y%./+-%__p_%'`
xe_check_libs=" -l$lib "
cat > conftest.$ac_ext <<EOF
-#line 13842 "configure"
+#line 13919 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
tgetent()
; return 0; }
EOF
-if { (eval echo configure:13853: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13930: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
else if test -n "$libs_termcap" -a "$opsys" = "openbsd"; then
echo $ac_n "checking for tgoto in -ltermcap""... $ac_c" 1>&6
-echo "configure:13878: checking for tgoto in -ltermcap" >&5
+echo "configure:13955: checking for tgoto in -ltermcap" >&5
ac_lib_var=`echo termcap'_'tgoto | sed 'y%./+-%__p_%'`
xe_check_libs=" -ltermcap "
cat > conftest.$ac_ext <<EOF
-#line 13883 "configure"
+#line 13960 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
tgoto()
; return 0; }
EOF
-if { (eval echo configure:13894: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13971: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
else
echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6
-echo "configure:13939: checking for tgetent in -lcurses" >&5
+echo "configure:14016: checking for tgetent in -lcurses" >&5
ac_lib_var=`echo curses'_'tgetent | sed 'y%./+-%__p_%'`
xe_check_libs=" -lcurses "
cat > conftest.$ac_ext <<EOF
-#line 13944 "configure"
+#line 14021 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
tgetent()
; return 0; }
EOF
-if { (eval echo configure:13955: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14032: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6
-echo "configure:13973: checking for tgetent in -ltermcap" >&5
+echo "configure:14050: checking for tgetent in -ltermcap" >&5
ac_lib_var=`echo termcap'_'tgetent | sed 'y%./+-%__p_%'`
xe_check_libs=" -ltermcap "
cat > conftest.$ac_ext <<EOF
-#line 13978 "configure"
+#line 14055 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
tgetent()
; return 0; }
EOF
-if { (eval echo configure:13989: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
test -z "$with_gpm" && { ac_safe=`echo "gpm.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for gpm.h""... $ac_c" 1>&6
-echo "configure:14037: checking for gpm.h" >&5
+echo "configure:14114: checking for gpm.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 14040 "configure"
+#line 14117 "configure"
#include "confdefs.h"
#include <gpm.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:14045: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:14122: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
}
test -z "$with_gpm" && {
echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
-echo "configure:14068: checking for Gpm_Open in -lgpm" >&5
+echo "configure:14145: checking for Gpm_Open in -lgpm" >&5
ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'`
xe_check_libs=" -lgpm "
cat > conftest.$ac_ext <<EOF
-#line 14073 "configure"
+#line 14150 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
Gpm_Open()
; return 0; }
EOF
-if { (eval echo configure:14084: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14161: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \
!= "no no no" && echo "checking for database support" 1>&6
-echo "configure:14134: checking for database support" >&5
+echo "configure:14211: checking for database support" >&5
if test "$with_database_gdbm $with_database_dbm" != "no no"; then
ac_safe=`echo "ndbm.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for ndbm.h""... $ac_c" 1>&6
-echo "configure:14139: checking for ndbm.h" >&5
+echo "configure:14216: checking for ndbm.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 14142 "configure"
+#line 14219 "configure"
#include "confdefs.h"
#include <ndbm.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:14147: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:14224: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
if test "$with_database_gdbm" != "no"; then
echo $ac_n "checking for dbm_open in -lgdbm""... $ac_c" 1>&6
-echo "configure:14177: checking for dbm_open in -lgdbm" >&5
+echo "configure:14254: checking for dbm_open in -lgdbm" >&5
ac_lib_var=`echo gdbm'_'dbm_open | sed 'y%./+-%__p_%'`
xe_check_libs=" -lgdbm "
cat > conftest.$ac_ext <<EOF
-#line 14182 "configure"
+#line 14259 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
dbm_open()
; return 0; }
EOF
-if { (eval echo configure:14193: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14270: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
if test "$with_database_dbm" != "no"; then
echo $ac_n "checking for dbm_open""... $ac_c" 1>&6
-echo "configure:14221: checking for dbm_open" >&5
+echo "configure:14298: checking for dbm_open" >&5
cat > conftest.$ac_ext <<EOF
-#line 14224 "configure"
+#line 14301 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char dbm_open(); below. */
; return 0; }
EOF
-if { (eval echo configure:14247: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14324: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_dbm_open=yes"
else
echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6
-echo "configure:14266: checking for dbm_open in -ldbm" >&5
+echo "configure:14343: checking for dbm_open in -ldbm" >&5
ac_lib_var=`echo dbm'_'dbm_open | sed 'y%./+-%__p_%'`
xe_check_libs=" -ldbm "
cat > conftest.$ac_ext <<EOF
-#line 14271 "configure"
+#line 14348 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
dbm_open()
; return 0; }
EOF
-if { (eval echo configure:14282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14359: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
if test "$with_database_berkdb" != "no"; then
echo $ac_n "checking for Berkeley db.h""... $ac_c" 1>&6
-echo "configure:14323: checking for Berkeley db.h" >&5
+echo "configure:14400: checking for Berkeley db.h" >&5
for header in "db/db.h" "db.h"; do
case "$opsys" in
*freebsd*)
cat > conftest.$ac_ext <<EOF
-#line 14328 "configure"
+#line 14405 "configure"
#include "confdefs.h"
#include <stdlib.h>
; return 0; }
EOF
-if { (eval echo configure:14344: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14421: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
db_h_file="$header"; break
else
;;
*)
cat > conftest.$ac_ext <<EOF
-#line 14355 "configure"
+#line 14432 "configure"
#include "confdefs.h"
#include <stdlib.h>
; return 0; }
EOF
-if { (eval echo configure:14377: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14454: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
db_h_file="$header"; break
else
if test "$with_database_berkdb" != "no"; then
echo $ac_n "checking for Berkeley DB version""... $ac_c" 1>&6
-echo "configure:14395: checking for Berkeley DB version" >&5
+echo "configure:14472: checking for Berkeley DB version" >&5
cat > conftest.$ac_ext <<EOF
-#line 14397 "configure"
+#line 14474 "configure"
#include "confdefs.h"
#include <$db_h_file>
#if DB_VERSION_MAJOR > 1
egrep "yes" >/dev/null 2>&1; then
rm -rf conftest*
cat > conftest.$ac_ext <<EOF
-#line 14409 "configure"
+#line 14486 "configure"
#include "confdefs.h"
#include <$db_h_file>
#if DB_VERSION_MAJOR > 2
rm -f conftest*
echo $ac_n "checking for $dbfunc""... $ac_c" 1>&6
-echo "configure:14436: checking for $dbfunc" >&5
+echo "configure:14513: checking for $dbfunc" >&5
cat > conftest.$ac_ext <<EOF
-#line 14439 "configure"
+#line 14516 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $dbfunc(); below. */
; return 0; }
EOF
-if { (eval echo configure:14462: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14539: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$dbfunc=yes"
else
echo $ac_n "checking for $dbfunc in -ldb""... $ac_c" 1>&6
-echo "configure:14481: checking for $dbfunc in -ldb" >&5
+echo "configure:14558: checking for $dbfunc in -ldb" >&5
ac_lib_var=`echo db'_'$dbfunc | sed 'y%./+-%__p_%'`
xe_check_libs=" -ldb "
cat > conftest.$ac_ext <<EOF
-#line 14486 "configure"
+#line 14563 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
$dbfunc()
; return 0; }
EOF
-if { (eval echo configure:14497: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
if test "$with_socks" = "yes"; then
echo $ac_n "checking for SOCKSinit in -lsocks""... $ac_c" 1>&6
-echo "configure:14571: checking for SOCKSinit in -lsocks" >&5
+echo "configure:14648: checking for SOCKSinit in -lsocks" >&5
ac_lib_var=`echo socks'_'SOCKSinit | sed 'y%./+-%__p_%'`
xe_check_libs=" -lsocks "
cat > conftest.$ac_ext <<EOF
-#line 14576 "configure"
+#line 14653 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
SOCKSinit()
; return 0; }
EOF
-if { (eval echo configure:14587: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14664: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
if test "$with_modules" != "no"; then
echo "checking for module support" 1>&6
-echo "configure:14642: checking for module support" >&5
+echo "configure:14719: checking for module support" >&5
if test "$with_msw" = "yes"; then
have_dl=yes;
;;
*) ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6
-echo "configure:14658: checking for dlfcn.h" >&5
+echo "configure:14735: checking for dlfcn.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 14661 "configure"
+#line 14738 "configure"
#include "confdefs.h"
#include <dlfcn.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:14666: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:14743: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for dlopen in -lc""... $ac_c" 1>&6
-echo "configure:14683: checking for dlopen in -lc" >&5
+echo "configure:14760: checking for dlopen in -lc" >&5
cat > conftest.$ac_ext <<EOF
-#line 14685 "configure"
+#line 14762 "configure"
#include "confdefs.h"
#include <dlfcn.h>
int main() {
dlopen ("", 0);
; return 0; }
EOF
-if { (eval echo configure:14692: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14769: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
have_dl=yes
else
rm -rf conftest*
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:14701: checking for dlopen in -ldl" >&5
+echo "configure:14778: checking for dlopen in -ldl" >&5
ac_save_LIBS="$LIBS"
LIBS="-ldl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 14705 "configure"
+#line 14782 "configure"
#include "confdefs.h"
#include <dlfcn.h>
int main() {
dlopen ("", 0);
; return 0; }
EOF
-if { (eval echo configure:14712: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14789: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
have_dl=yes
else
else
echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "configure:14741: checking for shl_load in -ldld" >&5
+echo "configure:14818: checking for shl_load in -ldld" >&5
ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
xe_check_libs=" -ldld "
cat > conftest.$ac_ext <<EOF
-#line 14746 "configure"
+#line 14823 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
shl_load()
; return 0; }
EOF
-if { (eval echo configure:14757: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14834: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6
-echo "configure:14784: checking for dld_init in -ldld" >&5
+echo "configure:14861: checking for dld_init in -ldld" >&5
ac_lib_var=`echo dld'_'dld_init | sed 'y%./+-%__p_%'`
xe_check_libs=" -ldld "
cat > conftest.$ac_ext <<EOF
-#line 14789 "configure"
+#line 14866 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
dld_init()
; return 0; }
EOF
-if { (eval echo configure:14800: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14877: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
xealias=$internal_configuration
echo "checking how to build dynamic libraries for ${xehost}" 1>&6
-echo "configure:14847: checking how to build dynamic libraries for ${xehost}" >&5
+echo "configure:14924: checking how to build dynamic libraries for ${xehost}" >&5
# Transform *-*-linux* to *-*-linux-gnu*, to support old configure scripts.
case "$xehost" in
*-*-linux-gnu*) ;;
XEGCC=yes
else
echo $ac_n "checking checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:14875: checking checking whether we are using GNU C" >&5
+echo "configure:14952: checking checking whether we are using GNU C" >&5
cat > conftest.$ac_ext <<EOF
-#line 14877 "configure"
+#line 14954 "configure"
#include "confdefs.h"
#ifdef __GNUC__
fi
echo $ac_n "checking how to produce PIC code""... $ac_c" 1>&6
-echo "configure:14899: checking how to produce PIC code" >&5
+echo "configure:14976: checking how to produce PIC code" >&5
wl=
can_build_shared=yes
-if test "$XEGCC" = yes; then
+if test "$XEGCC" = yes -o "$__ICC" = yes; then
wl='-Wl,'
case "$xehost_os" in
# Check to make sure the dll_cflags actually works.
echo $ac_n "checking if PIC flag ${dll_cflags} really works""... $ac_c" 1>&6
-echo "configure:15000: checking if PIC flag ${dll_cflags} really works" >&5
+echo "configure:15077: checking if PIC flag ${dll_cflags} really works" >&5
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $dll_cflags -DPIC"
cat > conftest.$ac_ext <<EOF
-#line 15004 "configure"
+#line 15081 "configure"
#include "confdefs.h"
int main() {
int x=0;
; return 0; }
EOF
-if { (eval echo configure:15011: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15088: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
# On HP-UX, the stripped-down bundled CC doesn't accept +Z, but also
xldf=
xcldf=
echo $ac_n "checking if C compiler can produce shared libraries""... $ac_c" 1>&6
-echo "configure:15042: checking if C compiler can produce shared libraries" >&5
-if test "$XEGCC" = yes; then
+echo "configure:15119: checking if C compiler can produce shared libraries" >&5
+if test "$XEGCC" = yes -o "$__ICC" = yes; then
xcldf="-shared"
xldf="-shared"
else # Not using GCC
xe_libs=
ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&5'
cat > conftest.$ac_ext <<EOF
-#line 15093 "configure"
+#line 15170 "configure"
#include "confdefs.h"
int main() {
int x=0;
; return 0; }
EOF
-if { (eval echo configure:15100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15177: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
cc_produces_so=yes
else
if test "$XEGCC" = yes; then
# Check if gcc -print-prog-name=ld gives a path.
echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
-echo "configure:15125: checking for ld used by GCC" >&5
+echo "configure:15202: checking for ld used by GCC" >&5
ac_prog=`($CC -print-prog-name=ld) 2>&5`
case "$ac_prog" in
# Accept absolute paths.
esac
else
echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:15151: checking for GNU ld" >&5
+echo "configure:15228: checking for GNU ld" >&5
fi
if test -z "$LTLD"; then
# Check to see if it really is or isn't GNU ld.
echo $ac_n "checking if the linker is GNU ld""... $ac_c" 1>&6
-echo "configure:15189: checking if the linker is GNU ld" >&5
+echo "configure:15266: checking if the linker is GNU ld" >&5
# I'd rather use --version here, but apparently some GNU ld's only accept -v.
if $LTLD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
xe_gnu_ld=yes
# OK - only NOW do we futz about with ld.
# See if the linker supports building shared libraries.
echo $ac_n "checking whether the linker supports shared libraries""... $ac_c" 1>&6
-echo "configure:15217: checking whether the linker supports shared libraries" >&5
+echo "configure:15294: checking whether the linker supports shared libraries" >&5
dll_ld=$CC
dll_ldflags=$LDFLAGS
ld_shlibs=yes
for ac_func in dlerror _dlerror
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15428: checking for $ac_func" >&5
+echo "configure:15505: checking for $ac_func" >&5
cat > conftest.$ac_ext <<EOF
-#line 15431 "configure"
+#line 15508 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:15454: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15531: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
fi
cat > conftest.$ac_ext <<EOF
-#line 15493 "configure"
+#line 15570 "configure"
#include "confdefs.h"
int main(int c,char *v[]){return 0;}
EOF
-if { (eval echo configure:15497: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:15574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
then
:
else
fi
echo " Compiler: $CC $CFLAGS"
+case "$CC" in
+ gcc*) echo " Compiler version: `$CC --version | head -1`"
+ echo " Compiler specs file: `$CC -v 2>&1 | sed 's/.* \([^ ]\)/\1/' | head -1`"
+ ;;
+ *) case "$canonical" in
+ *-*-aix* )
+ realcc=`which $CC`
+ if test -L $realcc ; then
+ ccdir=`dirname $realcc`
+ ccprog=`/bin/ls -l $realcc | sed 's/.* \([^ ]\)/\1/'`
+ case $ccprog in
+ */*) realcc=$ccprog;;
+ *) realcc=$ccdir/$ccprog;;
+ esac
+ fi
+ lpp=`lslpp -wqc $realcc | cut -f2 -d:`
+ if test ! -z "$lpp" ; then
+ lppstr=`lslpp -Lqc $lpp`
+ lpplev=`echo "$lppstr" | cut -f3 -d:`
+ lppdesc=`echo "$lppstr" | cut -f8 -d:`
+ fi
+ if test ! -z "$lpplev" ; then
+ echo " Compiler version: $lpp $lpplev - $lppdesc"
+ else
+ echo " Compiler version: (unknown version)"
+ fi
+ ;;
+
+ *-*-solaris*)
+ ccvers=`$CC -V 2>&1 | head -1`
+ if test ! -z "$ccvers" ; then
+ echo " Compiler version: $ccvers"
+ fi
+ ;;
+
+ alpha*-dec-osf*)
+ ccvers=`$CC -V | tr '\n' ' '`
+ if test ! -z "$ccvers" ; then
+ echo " Compiler version: $ccvers"
+ fi
+ ;;
+
+ mips-sgi-irix*)
+ ccvers=`$CC -version`
+ if test ! -z "$ccvers" ; then
+ echo " Compiler version: $ccvers"
+ fi
+ ;;
+
+ i[3-9]86-pc-linux)
+ ccvers=`$CC -V 2>&1 | sed -n 's@^Intel.*Version @@'p`
+ if test ! -z "$ccvers" ; then
+ echo " Compiler version: $ccvers"
+ fi
+ ;;
+
+ *) echo " Compiler version: $CC on $canonical";;
+ esac
+esac
+
echo " Relocating allocator for buffers: $rel_alloc"
echo " GNU version of malloc: ${GNU_MALLOC}${GNU_MALLOC_reason}"
case "$ld_switch_site" in
- Consider configuring with --pdump." ;;
esac
+case "$canonical" in
+ *-*-linux*)
+ if test -f /etc/redhat-release ; then
+ echo " libc: `rpm -q glibc`";
+ else
+ echo "Need to guess glibc1/2/etc here";
+ fi
+ ;;
+
+ *-*-aix*)
+ echo " libc: bos.rte.libc `lslpp -Lqc bos.rte.libc | cut -f3 -d:`"
+ ;;
+
+ *-*-solaris*)
+ libc=`pkginfo -l SUNWcsl | grep VERSION: | awk '{print $2}'`
+ echo " libc: SUNWcsl $libc"
+
+ ;;
+
+ mips-sgi-irix*)
+ echo " IRIX version: `uname -sRm`'"
+ ;;
+
+
+ alpha*-dec-osf*)
+ (cd /usr/.smdb.;
+ libc=` grep -h libc.so *.inv | awk '$9 == "f" {print $12}' | tr '\n' ','`
+ echo " libc: $libc"
+
+ )
+ ;;
+
+ *) echo " libc: system-provided libc on $canonical" ;;
+esac
+
+
echo "
Window System:"
if test "$with_msw" = "yes"; then
fi
if test "$need_motif" = "yes" ; then
echo " Compiling in support for Motif."
+ if test "$have_lesstif" = "yes"; then
+ echo " - Using LessTif implementation."
+ fi
echo " *WARNING* Many versions of Motif are buggy, requiring workarounds."
echo " You are likely to experience slow redisplay."
echo " You may need to install vendor patches to Motif."
with_site_modules='yes'
with_menubars=''
with_scrollbars=''
+dnl can't turn off widgets here because of systems where they are demanded
with_widgets=''
with_dialogs=''
with_file_coding=''
esac
case "$canonical" in
- *-solaris* )
+ *-solaris* )
opsys=sol2
- os_release=`uname -r | sed -e 's/^\([[0-9]]\)\.\([[0-9]]\).*/\1\2/'`
+ os_release_major=`uname -r | sed -e 's/^\([[0-9]]\{1,\}\)\.\([[0-9]]\{1,\}\).*/\1/'`
+ os_release_minor=`uname -r | sed -e 's/^\([[0-9]]\{1,\}\)\.\([[0-9]]\{1,\}\).*/\2/'`
+ case "$os_release_minor" in [[0-9]])
+ os_release_minor="0${os_release_minor}";;
+ esac
+ os_release="${os_release_major}${os_release_minor}"
AC_DEFINE_UNQUOTED(OS_RELEASE, $os_release) ;;
dnl The last Sun386 ran 4.0.
sol2)
AC_DEFINE(__EXTENSIONS__)
dnl Solaris 2 before 2.5 had some bugs with feature test macro interaction.
- if test "$os_release" -ge 55; then
+ if test "$os_release" -ge 505; then
AC_DEFINE(_XOPEN_SOURCE,500)
AC_DEFINE(_XOPEN_SOURCE_EXTENDED)
fi ;;
return 12;
#elif defined __USLC__ && defined __SCO_VERSION__
return 13;
+#elif defined __INTEL_COMPILER
+return 14;
#else
return 0;
#endif
}], [],
[case "$conftest_rc" in
- 11) echo "You appear to be using the SunPro C compiler."; __SUNPRO_C=yes ;;
- 12) echo "You appear to be using the DEC C compiler." ; __DECC=yes ;;
- 13) echo "You appear to be using the SCO C compiler." ; __USLC__=yes ;;
+ 11) echo "You appear to be using the SunPro C compiler." ; __SUNPRO_C=yes ;;
+ 12) echo "You appear to be using the DEC C compiler." ; __DECC=yes ;;
+ 13) echo "You appear to be using the SCO C compiler." ; __USLC__=yes ;;
+ 14) echo "You appear to be using the Intel C++ compiler."; __ICC=yes
+ dnl Newer versions of icc claim to be GCC
+ GCC=no ;;
esac])
CFLAGS="-O3"
elif test "$CC" = "xlc"; then
CFLAGS="-g -O3 -qstrict -qnoansialias -qlibansi -qinfo -qro -qmaxmem=20000"
+ elif test "$__ICC" = "yes"; then
+ CFLAGS="-g -O3 -Ob2 -Wall -W1"
dnl ### Add optimal CFLAGS support for other compilers HERE!
else
CFLAGS="-O" ;dnl The only POSIX-approved flag
case "$arg" in -L*) XE_ADD_RUNPATH_DIR(`echo '' "$arg" | sed -e 's:^ ::' -e 's/^-L//'`);; esac
done
dnl Sometimes /opt/SUNWdt/lib is the only installed Motif available
+ dnl #### this test always fails here as need_motif is null
if test "$opsys $need_motif" = "sol2 yes"; then
xe_runpath_dir="/opt/SUNWdt/lib";
eval "$xe_add_unique_runpath_dir";
dnl Link with "-z ignore" on Solaris if supported
if test "$opsys" = "sol2"; then
- if test "$os_release" -ge 56; then
+ if test "$os_release" -ge 506; then
AC_MSG_CHECKING(for \"-z ignore\" linker flag)
case "`ld -h 2>&1`" in
*-z\ ignore\|record* ) AC_MSG_RESULT(yes)
XE_APPEND(netinstall, INSTALL_ARCH_DEP_SUBDIR)
fi
- install_pp="$blddir/lib-src/installexe.sh"
+ install_pp="$srcdir/lib-src/installexe.sh"
XE_APPEND(-lshell32 -lgdi32 -luser32 -lcomdlg32 -lcomctl32 -lkernel32 -lwinspool, libs_system)
test "$with_dragndrop" != no && XE_APPEND(msw, dragndrop_proto)
if test "$window_system" != x11; then
dnl Finish ensuring that we have values for the various toolkit items.
dnl Not all toolkits support all widgets
-dnl if Motif is available we use it for the dialog boxes.
+
+dnl Avoid using Motif :-(
+case "$opsys" in
+ *linux* ) lucid_prefers_motif = "no" ;;
+ * ) lucid_prefers_motif = "yes" ;;
+esac
case "$with_menubars" in "" | "yes" | "athena" )
with_menubars="lucid" ;;
esac
case "$with_dialogs" in "" | "yes" | "lucid" )
- if test "$have_motif" = "yes"; then with_dialogs="motif"
- elif test "$have_xaw" = "yes"; then with_dialogs="athena"
- else with_dialogs=no
+ if test "$lucid_prefers_motif" = "yes"; then
+ if test "$have_motif" = "yes"; then with_dialogs="motif"
+ elif test "$have_xaw" = "yes"; then with_dialogs="athena"
+ else with_dialogs=no
+ fi
+ else
+ if test "$have_xaw" = "yes"; then with_dialogs="athena"
+ elif test "$have_motif" = "yes"; then with_dialogs="motif"
+ else with_dialogs=no
+ fi
fi ;;
esac
case "$with_scrollbars" in "" | "yes" )
esac
case "$with_widgets" in
"yes" | "lucid")
- if test "$have_motif" = "yes"; then with_widgets="motif"
- elif test "$have_xaw" = "yes"; then with_widgets="athena"
- else with_widgets=no
+ if test "$lucid_prefers_motif" = "yes"; then
+ if test "$have_motif" = "yes"; then with_widgets="motif"
+ elif test "$have_xaw" = "yes"; then with_widgets="athena"
+ else with_widgets=no
+ fi
+ else
+ if test "$have_xaw" = "yes"; then with_widgets="athena"
+ elif test "$have_motif" = "yes"; then with_widgets="motif"
+ else with_widgets=no
+ fi
fi ;;
"" )
with_widgets=no ;;
AC_CHECKING(for XIM)
AC_CHECK_LIB(X11, XOpenIM, with_xim=xlib, with_xim=no)
dnl XIM + Lesstif is not (yet?) usable
- if test "$have_motif $have_lesstif" = "yes no"; then
+ dnl Only use Motif if linking Motif anyway, or don't have xlib XIM
+ if test "$need_motif $have_lesstif" = "yes no"; then
+ AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif)
+ elif test "$have_motif $have_lesstif $with_xim" = "yes no no"; then
AC_CHECK_LIB(Xm, XmImMbLookupString, with_xim=motif)
fi ;;
esac
dnl Autodetect Sun native sound from SUNWaudmo package
if test -z "$sound_found" -a -d "/usr/demo/SOUND"; then
- sound_found=yes
- XE_ADD_OBJS(sunplay.o)
- if test -d "/usr/demo/SOUND/include"
- then sound_cflags="-I/usr/demo/SOUND/include"
- else sound_cflags="-I/usr/demo/SOUND"
+ if test -d "/usr/demo/SOUND/include/multimedia"; then
+ sun_sound_cflags="-I/usr/demo/SOUND/include"
+ elif test -d "/usr/demo/SOUND/multimedia"; then
+ sun_sound_cflags="-I/usr/demo/SOUND"
fi
- if test -z "$native_sound_lib" ; then
- if test -r "/usr/demo/SOUND/lib/libaudio.a"
- then native_sound_lib="/usr/demo/SOUND/lib/libaudio.a"
- else native_sound_lib="/usr/demo/SOUND/libaudio.a"
- fi
+
+ if test -n "$native_sound_lib"; then
+ sun_sound_lib="$native_sound_lib"
+ elif test -r "/usr/demo/SOUND/lib/libaudio.a"; then
+ sun_sound_lib="/usr/demo/SOUND/lib/libaudio.a"
+ elif test -r "/usr/demo/SOUND/libaudio.a"; then
+ sun_sound_lib="/usr/demo/SOUND/libaudio.a"
+ fi
+
+ if test -n "$sun_sound_cflags" -a -n "$sun_sound_lib"; then
+ native_sound_lib="$sun_sound_lib"
+ sound_cflags="$sun_sound_cflags"
+ sound_found=yes
+ XE_ADD_OBJS(sunplay.o)
fi
fi
fi
echo " Compiler: $CC $CFLAGS"
+dnl Let's save some helpful-for-debugging info like compiler and libc versions..
+dnl First, see if it's gcc - the same check works everyplace...
+case "$CC" in
+ gcc*) echo " Compiler version: `$CC --version | head -1`"
+ echo " Compiler specs file: `$CC -v 2>&1 | sed 's/.* \([[^ ]]\)/\1/' | head -1`"
+ ;;
+dnl non-gcc machine-specific magic - contributions welcome
+ *) case "$canonical" in
+ *-*-aix* )
+ dnl Yes, it's this ugly for AIX...
+ realcc=`which $CC`
+ dnl Might be a symlink created by replaceCset command
+ if test -L $realcc ; then
+ ccdir=`dirname $realcc`
+ ccprog=`/bin/ls -l $realcc | sed 's/.* \([[^ ]]\)/\1/'`
+ dnl This doesn't handle ../../xlc type stuff, but I've not seen one...
+ case $ccprog in
+ */*) realcc=$ccprog;;
+ *) realcc=$ccdir/$ccprog;;
+ esac
+ fi
+ lpp=`lslpp -wqc $realcc | cut -f2 -d:`
+ if test ! -z "$lpp" ; then
+ lppstr=`lslpp -Lqc $lpp`
+ lpplev=`echo "$lppstr" | cut -f3 -d:`
+ lppdesc=`echo "$lppstr" | cut -f8 -d:`
+ fi
+ if test ! -z "$lpplev" ; then
+ echo " Compiler version: $lpp $lpplev - $lppdesc"
+ else
+ echo " Compiler version: (unknown version)"
+ fi
+ ;;
+
+ *-*-solaris*)
+ ccvers=`$CC -V 2>&1 | head -1`
+ if test ! -z "$ccvers" ; then
+ echo " Compiler version: $ccvers"
+ fi
+ ;;
+
+ alpha*-dec-osf*)
+ ccvers=`$CC -V | tr '\n' ' '`
+ if test ! -z "$ccvers" ; then
+ echo " Compiler version: $ccvers"
+ fi
+ ;;
+
+ mips-sgi-irix*)
+ ccvers=`$CC -version`
+ if test ! -z "$ccvers" ; then
+ echo " Compiler version: $ccvers"
+ fi
+ ;;
+
+ dnl Intel C++ Compiler on Linux
+ i[[3-9]]86-pc-linux)
+ ccvers=`$CC -V 2>&1 | sed -n 's@^Intel.*Version @@'p`
+ if test ! -z "$ccvers" ; then
+ echo " Compiler version: $ccvers"
+ fi
+ ;;
+
+ *) echo " Compiler version: $CC on $canonical";;
+ esac
+esac
+
echo " Relocating allocator for buffers: $rel_alloc"
echo " GNU version of malloc: ${GNU_MALLOC}${GNU_MALLOC_reason}"
case "$ld_switch_site" in
- Consider configuring with --pdump." ;;
esac
+dnl Now get the libc version - contributions welcome
+case "$canonical" in
+ *-*-linux*)
+ if test -f /etc/redhat-release ; then
+ echo " libc: `rpm -q glibc`";
+dnl need a Debian and Suse check here...
+ else
+ echo "Need to guess glibc1/2/etc here";
+ fi
+ ;;
+
+ *-*-aix*)
+ echo " libc: bos.rte.libc `lslpp -Lqc bos.rte.libc | cut -f3 -d:`"
+ ;;
+
+ *-*-solaris*)
+ libc=`pkginfo -l SUNWcsl | grep VERSION: | awk '{print $2}'`
+ echo " libc: SUNWcsl $libc"
+
+ ;;
+
+ mips-sgi-irix*)
+ echo " IRIX version: `uname -sRm`'"
+ ;;
+
+
+ alpha*-dec-osf*)
+ dnl Another ugly case
+ (cd /usr/.smdb.;
+ libc=` grep -h libc.so *.inv | awk '$9 == "f" {print $12}' | tr '\n' ','`
+ echo " libc: $libc"
+
+ )
+ ;;
+
+ *) echo " libc: system-provided libc on $canonical" ;;
+esac
+
+
echo "
Window System:"
if test "$with_msw" = "yes"; then
fi
if test "$need_motif" = "yes" ; then
echo " Compiling in support for Motif."
+ if test "$have_lesstif" = "yes"; then
+ echo " - Using LessTif implementation."
+ fi
echo " *WARNING* Many versions of Motif are buggy, requiring workarounds."
echo " You are likely to experience slow redisplay."
echo " You may need to install vendor patches to Motif."
*WARNING* The Motif menubar is currently broken.
--with-scrollbars=TYPE (Enum) Types: `lucid'(*), `motif', `athena', or `no'.
--with-dialogs=TYPE (Enum) Types: `lucid'(*), `motif', `athena', or `no'.
---with-widgets=TYPE (Enum) Types: `lucid'(*), `motif', `athena', or `no'.
+--with-widgets=TYPE (Enum) Types: `lucid', `motif', `athena', or `no'(*).
--with-athena=TYPE (Enum) Link with the TYPE Athena library. Types:
`xaw' [flat], `3d', `next', `95', or `xpm'.
--with-dragndrop (*) Support generic drag and drop API. (EXPERIMENTAL)
21.4.13: Rational FORTRAN
21.4.14: Reasonable Discussion
21.4.15: Security Through Obscurity
-21.4.16: Social Property
-21.4.17: Stable Release Maintainer
-21.4.18: Standard C
-21.4.19: Successful IPO
-21.4.20: Sufficiently Smart Compiler
-21.4.21: The Gift Economy
-21.4.22: Too Much Mozart
-21.4.23: UTF-8 BOM
+21.4.16: Corporate Culture
+21.4.17: Social Property
+21.4.18: Stable Release Maintainer
+21.4.19: Standard C
+21.4.20: Successful IPO
+21.4.21: Sufficiently Smart Compiler
+21.4.22: The Gift Economy
+21.4.23: Too Much Mozart
+21.4.24: UTF-8 BOM
N.B. Only incredibly redeeming suggestions can be accepted now.
*** emerge
Another interface over GNU patch.
+*** erc
+ERC is an Emacs InternetRelayChat client.
+
*** eshell
Command shell implemented entirely in Emacs Lisp.
Integrated Development Environment for Java.
*** liece
-IRC (Internet Relay Chat) client for Emacs.
+IRC (Internet Relay Chat) client for Emacs. Note, this package is
+deprecated and will be removed, use riece instead.
*** mail-lib
Fundamental lisp files for providing email support.
Messaging in an Emacs World.
*** mh-e
-Front end support for MH.
+The XEmacs Interface to the MH Mail System.
*** mine
Minehunt Game.
*** reftex
Emacs support for LaTeX cross-references, citations.
+*** riece
+IRC (Internet Relay Chat) client for Emacs.
+
*** rmail
An obsolete Emacs mailer. If you do not already use it don't start.
+++ /dev/null
-;; Package Index file -- Do not edit manually.
-;;;@@@
-(package-get-update-base-entry (quote
-(ecb
- (standards-version 1.1
- version "1.08"
- author-version "1.94"
- date "2003-06-27"
- build-date "2003-06-27"
- maintainer "Klaus Berndl <klaus.berndl@sdm.de>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Emacs source code browser."
- filename "ecb-1.08-pkg.tar.gz"
- md5sum "840dabab1055bd61a3c2ecd5d1b5a7a0"
- size 463303
- provides (ecb-buffertab ecb-compilation ecb-create-layout ecb-cycle ecb ecb-eshell ecb-examples ecb-face ecb-help ecb-layout ecb-layout-defs ecb-mode-line ecb-navigate ecb-speedbar ecb-tod ecb-autogen ecb-jde ecb-upgrade ecb-util silentcomp tree-buffer)
- requires (xemacs-base semantic eieio fsf-compat edit-utils jde mail-lib eshell ediff xemacs-devel speedbar)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(pgg
- (standards-version 1.1
- version "1.03"
- author-version "0.1"
- date "2003-05-14"
- build-date "2003-05-14"
- maintainer "Simon Josefsson <simon@josefsson.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Emacs interface to various PGP implementations."
- filename "pgg-1.03-pkg.tar.gz"
- md5sum "d5f112441b77a17e23fabd6bf4f17f49"
- size 31526
- provides (pgg pgg-def pgg-parse pgg-gpg pgg-pgp pgg-pgp5)
- requires (xemacs-base fsf-compat edebug)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(perl-modes
- (standards-version 1.1
- version "1.04"
- author-version "21.4"
- date "2003-01-18"
- build-date "2003-01-18"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Perl support."
- filename "perl-modes-1.04-pkg.tar.gz"
- md5sum "13cd4e312af571aefbf5415cfefc4fad"
- size 161021
- provides (cperl-mode perl-mode)
- requires (xemacs-base ispell ps-print edit-utils fsf-compat)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(python-modes
- (standards-version 1.1
- version "1.02"
- author-version "21.4"
- date "2003-01-13"
- build-date "2003-01-13"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Python support."
- filename "python-modes-1.02-pkg.tar.gz"
- md5sum "738bbb00e9bd21d3091ae41aedaac2f9"
- size 81943
- provides (pydoc python-mode)
- requires (xemacs-base mail-lib)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(ruby-modes
- (standards-version 1.1
- version "1.01"
- author-version "1.6.8"
- date "2003-01-13"
- build-date "2003-01-13"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Ruby support."
- filename "ruby-modes-1.01-pkg.tar.gz"
- md5sum "923181c6dd43210e7c85c971c754f38a"
- size 21775
- provides (inf-ruby ruby-mode rubydb)
- requires (xemacs-base debug)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(fortran-modes
- (standards-version 1.1
- version "1.02"
- author-version "21.4"
- date "2003-01-13"
- build-date "2003-01-13"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Fortran support."
- filename "fortran-modes-1.02-pkg.tar.gz"
- md5sum "ae3d346c19382f07227dd8756da53134"
- size 66600
- provides (f90 fortran)
- requires (xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(psgml-dtds
- (standards-version 1.1
- version "1.02"
- author-version "21.4"
- date "2002-08-29"
- build-date "2002-08-29"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Deprecated collection of DTDs for psgml."
- filename "psgml-dtds-1.02-pkg.tar.gz"
- md5sum "90100411b64045dae38166116d1f8e3f"
- size 367102
- provides ()
- requires (xemacs-base psgml edit-utils mail-lib fsf-compat eterm sh-script)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(docbookide
- (standards-version 1.1
- version "0.06"
- author-version "0.1"
- date "2003-01-13"
- build-date "2003-01-13"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "DocBook editing support."
- filename "docbookide-0.06-pkg.tar.gz"
- md5sum "625c9ef5bb10c655b6f6dcba1b42ba2a"
- size 31968
- provides (dbide-abbrev dbide-data dbide-font dbide-process docbookide)
- requires (xemacs-base ispell mail-lib)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(ecrypto
- (standards-version 1.1
- version "0.13"
- author-version "2.0"
- date "2003-06-22"
- build-date "2003-06-22"
- maintainer "Simon Josefsson <simon@josefsson.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Crypto functionality in Emacs Lisp."
- filename "ecrypto-0.13-pkg.tar.gz"
- md5sum "b05bf91a006f1778c6199ce263548e7e"
- size 68668
- provides (ascii-armor blowfish des hex-util md4 md5-dl md5-el md5 paranoid rander rc16 rijndael sha1-dl sha1-el sha1)
- requires ()
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(ocaml
- (standards-version 1.1
- version "0.04"
- author-version "3.06"
- date "2003-01-13"
- build-date "2003-01-13"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Objective Caml editing support."
- filename "ocaml-0.04-pkg.tar.gz"
- md5sum "3b2bc2c431e334050074aebcf260d06e"
- size 64814
- provides (caml-compat camldebug caml caml-font caml-help inf-caml)
- requires (xemacs-base fsf-compat)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(sasl
- (standards-version 1.1
- version "1.13"
- author-version "1.14.4"
- date "2003-05-28"
- build-date "2003-05-28"
- maintainer "Simon Josefsson <simon@josefsson.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Simple Authentication and Security Layer (SASL) library."
- filename "sasl-1.13-pkg.tar.gz"
- md5sum "d6121fb31ab47213f97862dc0d0ec7a1"
- size 27008
- provides (hmac-def hmac-md5 hmac-sha1 ntlm sasl sasl-cram sasl-digest sasl-ntlm sasl-plain sasl-login sasl-anonymous)
- requires (ecrypto)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(sml-mode
- (standards-version 1.1
- version "0.09"
- author-version "3.9.5"
- date "2003-01-18"
- build-date "2003-01-18"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "SML editing support."
- filename "sml-mode-0.09-pkg.tar.gz"
- md5sum "2022d71197f600716f0b41da3794c19b"
- size 81547
- provides (sml-compat sml-defs sml-mode sml-move sml-proc sml-util)
- requires (xemacs-base edebug fsf-compat)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(ess
- (standards-version 1.1
- version "1.04"
- author-version "5.1.21"
- date "2003-06-11"
- build-date "2003-06-11"
- maintainer "A.J. Rossini <rossini@xemacs.org>"
- distribution xemacs
- priority medium
- category "standard"
- dump nil
- description "ESS: Emacs Speaks Statistics."
- filename "ess-1.04-pkg.tar.gz"
- md5sum "ea46dcb7f35e56d9426c1749ee6c3fb5"
- size 446476
- provides (ess-batch ess-comp ess-cust ess-dump ess-emcs ess-font-lock ess-help ess-inf ess-iw32 ess-latex-mode ess-menu ess-mode ess-mous ess-noweb ess-site ess-sysdp ess-utils ess-vars ess essa-r essa-sas essd-arc essd-els essd-r essd-omg essd-r essd-s3 essd-s4 essd-sas essd-sp3 essd-sp4 essd-sp5 essd-sp6 essd-sta essd-vst essd-xls essddr essdsp6w essl-bug essl-lsp essl-omg essl-py essl-s essl-sas essl-sta make-regexp mouseme msdos noweb-font-lock-mode noweb-mode)
- requires (xemacs-base mail-lib fsf-compat edit-utils speedbar sh-script eterm)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(haskell-mode
- (standards-version 1.1
- version "1.05"
- author-version "1.44"
- date "2003-01-13"
- build-date "2003-01-13"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Haskell editing support."
- filename "haskell-mode-1.05-pkg.tar.gz"
- md5sum "198a9d68d1b4115c9faf45e14c264f54"
- size 94162
- provides (haskell-decl-scan haskell-doc haskell-font-lock haskell-indent haskell-mode haskell-simple-indent)
- requires (dired mail-lib xemacs-base edit-utils)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(xslide
- (standards-version 1.1
- version "1.07"
- author-version "0.2.1"
- date "2003-06-28"
- build-date "2003-06-28"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority medium
- category "standard"
- dump nil
- description "XSL editing support."
- filename "xslide-1.07-pkg.tar.gz"
- md5sum "1e07a704f0aba2774feb20ee36065c36"
- size 37872
- provides (xslide-abbrev xslide-data xslide-font xslide-process xslide)
- requires (ispell mail-lib xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(liece
- (standards-version 1.1
- version "1.12"
- author-version "1.4.9"
- date "2003-04-22"
- build-date "2003-04-22"
- maintainer "Daiki Ueno <ueno@unixuser.org>"
- distribution xemacs
- priority high
- category "standard"
- dump nil
- description "IRC (Internet Relay Chat) client for Emacs."
- filename "liece-1.12-pkg.tar.gz"
- md5sum "c7f2aab45f8ada9398d4b0807e80433a"
- size 199275
- provides (liece-xemacs gettext liece-clfns liece-handler liece-compat liece-version liece-vars liece-globals liece-inlines liece-filter liece-coding liece-dcc liece-menu liece-000 liece-200 liece-300 liece-400 liece-500 liece-nick liece-channel liece-commands liece-ctcp liece-q-el liece-message liece-handle liece-hilit liece-intl liece-mail liece-minibuf liece-misc liece-tcp liece-url liece-x-face liece-window liece)
- requires (apel mail-lib fsf-compat xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(latin-unity
- (standards-version 1.1
- version "1.07"
- author-version "1.07"
- date "2002-11-01"
- build-date "2002-11-01"
- maintainer "Stephen J. Turnbull <stephen@xemacs.org>"
- distribution mule
- priority high
- category "mule"
- dump nil
- description "MULE: find single ISO 8859 character set to encode a buffer."
- filename "latin-unity-1.07-pkg.tar.gz"
- md5sum "7d4f163e1d98af367fab9f4ea5d01d8d"
- size 116377
- provides (latin-unity latin-unity-tables latin-unity-utils)
- requires (mule-base mule-ucs leim fsf-compat dired)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(mmm-mode
- (standards-version 1.1
- version "1.00"
- author-version "0.4.7"
- date "2002-02-24"
- build-date "2002-02-28"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority medium
- category "standard"
- dump nil
- description "Multiple major modes in a single buffer"
- filename "mmm-mode-1.00-pkg.tar.gz"
- md5sum "c07c752ffd029d9a430c2fb118127e88"
- size 176080
- provides (mmm-auto mmm-class mmm-cmds mmm-compat mmm-mason mmm-mode mmm-region mmm-rpm mmm-sample mmm-univ mmm-utils mmm-vars)
- requires (xemacs-base fsf-compat )
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(ibuffer
- (standards-version 1.1
- version "1.08"
- author-version "21.5b6"
- date "2002-07-14"
- build-date "2002-07-14"
- maintainer "John Paul Wallington <jpw@shootybangbang.com>"
- distribution xemacs
- priority medium
- category "standard"
- dump nil
- description "Advanced replacement for buffer-menu"
- filename "ibuffer-1.08-pkg.tar.gz"
- md5sum "e7203eeeca98a89c2bfe051d81c729de"
- size 87113
- provides (ibuf-ext ibuf-macs ibuffer)
- requires (ibuffer xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(xemacs-base
- (standards-version 1.1
- version "1.78"
- author-version "21.4"
- date "2003-06-11"
- build-date "2003-06-11"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority high
- category "standard"
- dump nil
- description "Fundamental XEmacs support, you almost certainly need this."
- filename "xemacs-base-1.78-pkg.tar.gz"
- md5sum "2f49dd65c93ced29f2a9d97bf3c4c9b3"
- size 469861
- provides (add-log advice-preload advice annotations assoc case-table chistory comint-xemacs comint compile debug ebuff-menu echistory edmacro ehelp electric enriched env facemenu ffap helper imenu iso-syntax macros novice outline passwd pp regexp-opt regi ring shell skeleton sort thing time-stamp timezone tq xbm-button xpm-button)
- requires ()
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(tramp
- (standards-version 1.1
- version "1.15"
- author-version "2.0.35"
- date "2003-06-20"
- build-date "2003-06-20"
- maintainer "Kai Großjohann <kai.grossjohann@gmx.net>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Remote shell-based file editing."
- filename "tramp-1.15-pkg.tar.gz"
- md5sum "239ea97dafee64640e7c10082dd131d9"
- size 247697
- provides (tramp tramp-efs tramp-ftp tramp-smb tramp-util tramp-uu
- tramp-vc trampcache)
- requires (tramp xemacs-base vc fsf-compat efs dired mail-lib gnus ediff)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(text-modes
- (standards-version 1.1
- version "1.61"
- author-version "21.4"
- date "2003-06-08"
- build-date "2003-06-08"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority high
- category "standard"
- dump nil
- description "Miscellaneous support for editing text files."
- filename "text-modes-1.61-pkg.tar.gz"
- md5sum "d558a6d3137209ac2dac8dfb9259129a"
- size 359003
- provides (ansi-color autoinsert crontab-edit filladapt flyspell folding fold-isearch hexl htmlize image-mode iso-acc iso-ascii iso-cvt iso-insert iso-swed rtf-support swedish tabify whitespace-mode winmgr-mode xpm-mode xrdb-mode apache-mode po-mode po-compat css-mode)
- requires (ispell fsf-compat xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(pcl-cvs
- (standards-version 1.1
- version "1.64"
- author-version "R-2_9_9"
- date "2002-07-30"
- build-date "2002-07-30"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "CVS frontend."
- filename "pcl-cvs-1.64-pkg.tar.gz"
- md5sum "3d8f9aac5c5edefec62a33cb9695db9f"
- size 161512
- provides (cvs-compat cvs-edit cvs-log cvs-status easy-mmode pcl-cvs-defs pcl-cvs-info pcl-cvs-parse pcl-cvs-util pcl-cvs)
- requires (xemacs-base elib vc dired edebug ediff edit-utils mail-lib prog-modes)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(mail-lib
- (standards-version 1.1
- version "1.59"
- author-version "21.5b13"
- date "2003-05-14"
- build-date "2003-05-14"
- maintainer "Simon Josefsson <simon@josefsson.org>"
- distribution xemacs
- priority medium
- category "standard"
- dump nil
- description "Fundamental lisp files for providing email support."
- filename "mail-lib-1.59-pkg.tar.gz"
- md5sum "576bfafe24b1b08cfdf184fe021066c9"
- size 198415
- provides (base64 browse-url-xemacs browse-url highlight-headers mail-abbrevs mail-extr mail-utils mailheader netrc pop3 reporter rfc2104 rfc822 rmail rmail-mini rmailout sendmail smtpmail starttls tls)
- requires (eterm xemacs-base fsf-compat sh-script ecrypto)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(jde
- (standards-version 1.1
- version "1.45"
- author-version "2.3.2"
- date "2003-01-26"
- build-date "2003-01-26"
- maintainer "Andy Piper <andy@xemacs.org>"
- distribution xemacs
- priority medium
- category "standard"
- dump nil
- description "Integrated Development Environment for Java."
- filename "jde-1.45-pkg.tar.gz"
- md5sum "64c39644d4e12e053aa0eb982d473405"
- size 2403338
- provides (beanshell efc jde-ant jde-bug jde-checkstyle jde-compat jde-compile jde-complete jde-db jde-dbo jde-dbs jde-ejb jde-gen jde-help jde-imenu jde-import jde-java-font-lock jde-java-grammar jde-javadoc-gen jde-javadoc jde-jdb jde-make jde-open-source jde-package jde-parse-class jde-parse jde-run jde-setnu jde-stat jde-util jde-which-method jde-widgets jde-wiz jde-xref jde tree-widget)
- requires (jde cc-mode semantic debug speedbar edit-utils eterm mail-lib xemacs-base xemacs-devel eieio elib sh-script fsf-compat)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(fsf-compat
- (standards-version 1.1
- version "1.12"
- author-version "21.4"
- date "2003-01-13"
- build-date "2003-01-13"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority high
- category "standard"
- dump nil
- description "FSF Emacs compatibility files."
- filename "fsf-compat-1.12-pkg.tar.gz"
- md5sum "43183434592aed9a96e38ab48585b5fd"
- size 21442
- provides (overlay thingatpt timer x-popup-menu goto-addr)
- requires (xemacs-base)
- type single
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(edit-utils
- (standards-version 1.1
- version "2.02"
- author-version "21.4"
- date "2003-06-20"
- build-date "2003-06-20"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority high
- category "standard"
- dump nil
- description "Miscellaneous editor extensions, you probably need this."
- filename "edit-utils-2.02-pkg.tar.gz"
- md5sum "9155b838e5c09dd07dcefc926f5433e4"
- size 720244
- provides (abbrevlist after-save-commands atomic-extents avoid backup-dir balloon-help big-menubar blink-cursor blink-paren bookmark compare-w completion dabbrev desktop detached-minibuf edit-toolbar fast-lock file-part floating-toolbar flow-ctrl foldout func-menu hippie-exp icomplete id-select info-look iswitchb lazy-lock lazy-shot live-icon makesum man mic-paren paren mode-motion+ outl-mouse outln-18 page-ext blink-paren paren permanent-buffers popper power-macros recent-files redo reportmail resume rsz-minibuf saveconf savehist saveplace scroll-in-place setnu shell-font tempo toolbar-utils tree-menu uniquify vertical-mode where-was-i-db winring)
- requires (xemacs-base xemacs-devel fsf-compat dired mail-lib)
- type single
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(skk
- (standards-version 1.1
- version "1.23"
- author-version "10.62a"
- date "2002-09-25"
- build-date "2002-09-25"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution mule
- priority medium
- category "mule"
- dump nil
- description "MULE: Japanese Language Input Method."
- filename "skk-1.23-pkg.tar.gz"
- md5sum "dc35f20896a56c8cf2e7ba16b15e453b"
- size 1506691
- provides (skk-auto skk-comp skk-cursor skk-develop skk-foreword skk-gadget skk-isearch skk-kakasi skk-kcode skk-leim skk-look skk-num skk-obsolete skk-server skk-tut skk-vars skk-viper skk vip)
- requires (viper mule-base elib xemacs-base apel)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(ps-print
- (standards-version 1.1
- version "1.08"
- author-version "6.5.6"
- date "2002-08-29"
- build-date "2002-08-29"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority medium
- category "standard"
- dump nil
- description "Printing functions and utilities"
- filename "ps-print-1.08-pkg.tar.gz"
- md5sum "bbfb58fe514cf4bd6fbec2f62c43c823"
- size 153729
- provides (lpr ps-bdf ps-mule ps-print)
- requires (text-modes)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(sieve
- (standards-version 1.1
- version "1.13"
- author-version "21.4"
- date "2003-01-13"
- build-date "2003-01-13"
- maintainer "Simon Josefsson <simon@josefsson.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Manage Sieve email filtering scripts."
- filename "sieve-1.13-pkg.tar.gz"
- md5sum "a8816344f83e92821989f9298c415038"
- size 25479
- provides (sieve sieve-mode sieve-manage)
- requires (xemacs-base mail-lib cc-mode sasl)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(mule-ucs
- (standards-version 1.1
- version "1.04"
- author-version "0.84"
- date "2002-03-25"
- build-date "2002-03-25"
- maintainer "Stephen J. Turnbull <stephen@xemacs.org>"
- distribution mule
- priority high
- category "mule"
- dump nil
- description "MULE: Extended coding systems (including Unicode) for XEmacs."
- filename "mule-ucs-1.04-pkg.tar.gz"
- md5sum "08df8359e7999c60f62f6ec92cccc197"
- size 1313726
- provides (mccl-font mucs-ccl mucs-error mucs-type mucs mule-uni tae tbl-mg trans-util txt-tbl un-data un-define un-supple un-tools un-trbase unicode unidata utf u-cns-1 u-cns-2 u-cns-3 u-cns-4 u-cns-5 u-cns-6 u-cns-7 uascii ubig5 uetiopic ugb2312 uipa uiscii uiso8859-1 uiso8859-14 uiso8859-15 uiso8859-2 uiso8859-3 uiso8859-4 uiso8859-5 uiso8859-6 uiso8859-7 uiso8859-8 uiso8859-9 ujisx0201 ujisx0208 ujisx0212 uksc5601 usisheng usupple utibetan utis620 uviscii)
- requires (mule-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(clearcase
- (standards-version 1.0
- version "1.06"
- author-version "21.5b6"
- date "2002-06-27"
- build-date "2002-06-27"
- maintainer "Michael Diers <mdiers@elego.de>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "New Clearcase Version Control for XEmacs (UNIX, Windows)."
- filename "clearcase-1.06-pkg.tar.gz"
- md5sum "8f9a2485be7371b78b01b68039d91e09"
- size 89634
- provides (clearcase)
- requires (dired fsf-compat mail-lib xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(dictionary
- (standards-version 1.1
- version "1.12"
- author-version "1.8"
- date "2003-06-22"
- build-date "2003-06-22"
- maintainer "Torsten Hilbrich <dictionary@myrkr.in-berlin.de>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Interface to RFC2229 dictionary servers."
- filename "dictionary-1.12-pkg.tar.gz"
- md5sum "717517bbad4e241f18941fd6c289b868"
- size 39658
- provides (dictionary connection link)
- requires (xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(build
- (standards-version 1.0
- version "1.10"
- author-version "2.02"
- date "2003-01-13"
- build-date "2003-01-13"
- maintainer "Adrian Aichner <adrian@xemacs.org>"
- distribution stable
- priority low
- category "standard"
- dump nil
- description "Build XEmacs from within (UNIX, Windows)."
- filename "build-1.10-pkg.tar.gz"
- md5sum "442bf6d4729f40545d1ee1ad8eca5a93"
- size 49207
- provides (build)
- requires (xemacs-base pcl-cvs dired w3 prog-modes)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(xslt-process
- (standards-version 1.0
- version "1.11"
- author-version "1.2.1"
- date "2002-10-08"
- build-date "2002-10-08"
- maintainer "Ovidiu Predescu <ovidiu@xemacs.org>"
- distribution xemacs
- priority medium
- category "standard"
- dump nil
- description "XSLT processing support."
- filename "xslt-process-1.11-pkg.tar.gz"
- md5sum "30273cbe2e90ae703ea410879412e68b"
- size 199873
- provides (xslt-process)
- requires (jde cc-mode semantic debug speedbar edit-utils eterm mail-lib xemacs-base elib eieio sh-script fsf-compat xemacs-devel)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(eieio
- (standards-version 1.1
- version "1.04"
- author-version "0.17"
- date "2002-12-06"
- build-date "2002-12-06"
- maintainer "Eric Ludlam <zappo@gnu.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Enhanced Implementation of Emacs Interpreted Objects"
- filename "eieio-1.04-pkg.tar.gz"
- md5sum "6504c1a9225576fd0140cba9962e191b"
- size 165595
- provides (call-tree chart compare-strings eieio-base eieio-comp eieio-custom eieio-doc eieio-opt eieio-speedbar eieio-tests eieio linemark tree)
- requires (speedbar xemacs-base edebug)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(egg-its
- (standards-version 1.1
- version "1.26"
- author-version "21.5b1"
- date "2001-05-07"
- build-date "2001-05-10"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution mule
- priority high
- category "mule"
- dump nil
- description "MULE: Wnn (4.2 and 6) support. SJ3 support."
- filename "egg-its-1.26-pkg.tar.gz"
- md5sum "a69b09fedc9aee8422ed7ed35b6649eb"
- size 260749
- provides (egg-cnpinyin egg-cnzhuyin egg-cwnn-leim egg-jisx0201 egg-jsymbol egg-kwnn-leim egg-leim egg-sj3-client egg-sj3-leim egg-sj3 egg-wnn egg)
- requires (leim mule-base fsf-compat xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(edict
- (standards-version 1.1
- version "1.13"
- author-version "0.9.9"
- date "2002-01-30"
- build-date "2002-02-13"
- maintainer "Stephen J. Turnbull <stephen@xemacs.org>"
- distribution mule
- priority high
- category "mule"
- dump nil
- description "MULE: Lisp Interface to EDICT, Kanji Dictionary"
- filename "edict-1.13-pkg.tar.gz"
- md5sum "ceef82c336de553e504aa3d216fbd366"
- size 95541
- provides (dui-registry dui edict-edit edict-english edict-japanese edict-morphology edict-test edict ts-mode)
- requires (mule-base xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(lookup
- (standards-version 1.1
- version "1.13"
- author-version "1.0"
- date "2002-09-25"
- build-date "2002-09-25"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution mule
- priority high
- category "mule"
- dump nil
- description "MULE: Dictionary support"
- filename "lookup-1.13-pkg.tar.gz"
- md5sum "cd658e3024349bf67743f6a0cce96be5"
- size 214806
- provides (evi-mule evi lookup-content lookup-defs lookup-entry lookup-select lookup-package lookup-select lookup-types lookup-utils lookup-vars lookup-vse lookup ndcookie ndeb ndic ndict ndkks ndmisc ndnmz ndspell ndsrd ndtp sdicf stem)
- requires (mule-base cookie lookup)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(leim
- (standards-version 1.1
- version "1.20"
- author-version "21.4"
- date "2003-01-03"
- build-date "2003-01-03"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution mule
- priority medium
- category "mule"
- dump nil
- description "MULE: Quail. All non-English and non-Japanese language support."
- filename "leim-1.20-pkg.tar.gz"
- md5sum "33e2983108fb7c55f748b855a40e2a04"
- size 1708682
- provides ()
- requires (leim mule-base fsf-compat xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(locale
- (standards-version 1.1
- version "1.20"
- author-version "21.4"
- date "2002-11-01"
- build-date "2002-11-01"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution mule
- priority high
- category "mule"
- dump nil
- description "MULE: Localized menubars and localized splash screens."
- filename "locale-1.20-pkg.tar.gz"
- md5sum "f91249a741613f91f89369eb26458a2d"
- size 36563
- provides ()
- requires (mule-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(mule-base
- (standards-version 1.1
- version "1.43"
- author-version "21.5b13"
- date "2003-05-11"
- build-date "2003-05-11"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution mule
- priority high
- category "mule"
- dump nil
- description "MULE: Basic Mule support, required for building with Mule."
- filename "mule-base-1.43-pkg.tar.gz"
- md5sum "5caadede1749519085b30a016c99a7af"
- size 444550
- provides (canna-leim canna char-table china-util cyril-util isearch-ext japan-util ccl can-n-egg mule-help)
- requires (fsf-compat xemacs-base apel)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(strokes
- (standards-version 1.1
- version "1.08"
- author-version "21.1"
- date "2000-10-05"
- build-date "2001-01-15"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority medium
- category "oa"
- dump nil
- description "Mouse enhancement utility."
- filename "strokes-1.08-pkg.tar.gz"
- md5sum "c5ab0860ceb23b40798b11a1fa4c0240"
- size 43486
- provides (strokes)
- requires (text-modes edit-utils mail-lib xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(time
- (standards-version 1.1
- version "1.13"
- author-version "1.17"
- date "2003-05-11"
- build-date "2003-05-11"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority medium
- category "standard"
- dump nil
- description "Display time & date on the modeline."
- filename "time-1.13-pkg.tar.gz"
- md5sum "6fff6a2cf70c65710a905de3bbbc2e5d"
- size 20550
- provides (time)
- requires (xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(slider
- (standards-version 1.1
- version "1.13"
- author-version "0.3x1"
- date "2000-10-05"
- build-date "2001-01-15"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "oa"
- dump nil
- description "User interface tool."
- filename "slider-1.13-pkg.tar.gz"
- md5sum "3fbc16b2caeef30e87969e19efa40f32"
- size 12021
- provides (slider color-selector)
- requires ()
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(sgml
- (standards-version 1.1
- version "1.08"
- author-version "21.1"
- date "2000-10-05"
- build-date "2001-01-15"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "oa"
- dump nil
- description "SGML/Linuxdoc-SGML editing."
- filename "sgml-1.08-pkg.tar.gz"
- md5sum "bdadf462489fa1540cc56d1c561aaa54"
- size 26964
- provides (sgml linuxdoc-sgml)
- requires (xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(psgml
- (standards-version 1.1
- version "1.40"
- author-version "1.3.1"
- date "2003-01-19"
- build-date "2003-01-19"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority medium
- category "standard"
- dump nil
- description "Validated HTML/SGML editing."
- filename "psgml-1.40-pkg.tar.gz"
- md5sum "794e98e745f17aaa5fc3d731a59b9d0d"
- size 301036
- provides (iso-sgml psgml-api psgml-charent psgml-debug psgml-dtd psgml-edit psgml-fs psgml-html psgml-info psgml-parse psgml-sysdep psgml-xemacs psgml sgml-mode)
- requires (xemacs-base edit-utils edebug xemacs-devel mail-lib fsf-compat eterm sh-script ps-print)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(pc
- (standards-version 1.1
- version "1.25"
- author-version "21.5b6"
- date "2002-06-04"
- build-date "2002-06-04"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "PC style interface emulation."
- filename "pc-1.25-pkg.tar.gz"
- md5sum "03b7fcc55e1ce79a6017cdfa7fd49f3d"
- size 17429
- provides (delbs fusion pc-select pending-del s-region)
- requires (xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(ispell
- (standards-version 1.1
- version "1.24"
- author-version "3.2"
- date "2002-01-07"
- build-date "2002-01-14"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Spell-checking with GNU ispell."
- filename "ispell-1.24-pkg.tar.gz"
- md5sum "409bfa4ca95d91bc03d8dcfe7c8f7810"
- size 72543
- provides (ispell)
- requires ()
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(hm--html-menus
- (standards-version 1.1
- version "1.21"
- author-version "5.9"
- date "2003-06-28"
- build-date "2003-06-28"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "HTML editing."
- filename "hm--html-menus-1.21-pkg.tar.gz"
- md5sum "77d84c92c6ce3109dbec828ac24bb25d"
- size 179706
- provides (adapt hm--date hm--html-configuration hm--html-drag-and-drop hm--html-indentation hm--html-keys hm--html-menu hm--html-mode hm--html-not-standard hm--html html-view internal-drag-and-drop tmpl-minor-mode)
- requires (dired xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(frame-icon
- (standards-version 1.1
- version "1.09"
- author-version "21.1"
- date "1998-07-14"
- build-date "2001-01-15"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "oa"
- dump nil
- description "Set up mode-specific icons for each frame under XEmacs"
- filename "frame-icon-1.09-pkg.tar.gz"
- md5sum "91922e43447422f175065428367fb00b"
- size 33436
- provides (forms forms-mode)
- requires ()
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(forms
- (standards-version 1.1
- version "1.14"
- author-version "2.37"
- date "2002-01-07"
- build-date "2002-01-14"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Forms editing support (obsolete, use Widget instead)."
- filename "forms-1.14-pkg.tar.gz"
- md5sum "c6530292a349a0c567311502c2038270"
- size 48263
- provides (forms forms-mode)
- requires ()
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(calendar
- (standards-version 1.1
- version "1.19"
- author-version "21.4"
- date "2002-09-26"
- build-date "2002-09-26"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Calendar and diary support."
- filename "calendar-1.19-pkg.tar.gz"
- md5sum "f41fe8405fc58fefe03fef27428223fe"
- size 252793
- provides (appt cal-china cal-coptic cal-dst cal-french cal-hebrew cal-islam cal-iso cal-japanese cal-julian cal-mayan cal-move cal-persia cal-tex cal-x cal-xemacs calendar diary-lib holidays lunar solar)
- requires (xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(calc
- (standards-version 1.1
- version "1.23"
- author-version "2.02fX3"
- date "2002-05-09"
- build-date "2002-05-10"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Emacs calculator"
- filename "calc-1.23-pkg.tar.gz"
- md5sum "e66651dacc67325f6e6d033f80f2e989"
- size 1615158
- provides (calc-ext calc-macs calc)
- requires (xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(speedbar
- (standards-version 1.1
- version "1.26"
- author-version "0.14beta4"
- date "2003-01-03"
- build-date "2003-01-03"
- maintainer "Eric M. Ludlam <zappo@gnu.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Provides a separate frame with convenient references."
- filename "speedbar-1.26-pkg.tar.gz"
- md5sum "1bcc0c31772870347b33fed82da4dc91"
- size 163116
- provides (bigclock dframe rpm sb-ant sb-gud sb-html sb-image sb-info sb-rmail sb-texinfo sb-w3 speedbar)
- requires (xemacs-base edebug)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(pcomplete
- (standards-version 1.1
- version "1.02"
- author-version "1.1.6"
- date "2002-10-14"
- build-date "2002-10-14"
- maintainer "John Wiegley <johnw@gnu.org>"
- distribution xemacs
- priority medium
- category "standard"
- dump nil
- description "Provides programmatic completion."
- filename "pcomplete-1.02-pkg.tar.gz"
- md5sum "badc7fe7baa939025c954e37168a8157"
- size 37301
- provides (pcomplete)
- requires (sh-script xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(eshell
- (standards-version 1.1
- version "1.05"
- author-version "2.4.1"
- date "2002-12-06"
- build-date "2002-12-06"
- maintainer "John Wiegley <johnw@gnu.org>"
- distribution xemacs
- priority medium
- category "standard"
- dump nil
- description "Command shell implemented entirely in Emacs Lisp"
- filename "eshell-1.05-pkg.tar.gz"
- md5sum "657a26052b757a3caeb3a8f5256bfa64"
- size 231854
- provides (em-alias em-banner em-basic em-cmpl em-dirs em-glob em-hist em-ls em-pred em-prompt em-rebind em-script em-smart em-term em-unix em-xtra esh-arg esh-cmd esh-ext esh-io esh-maint esh-mode esh-module esh-opt esh-proc esh-test esh-toggle esh-util esh-var eshell)
- requires (xemacs-base eterm)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(view-process
- (standards-version 1.1
- version "1.12"
- author-version "2.4"
- date "2002-08-26"
- build-date "2002-08-26"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "A Unix process browsing tool."
- filename "view-process-1.12-pkg.tar.gz"
- md5sum "5259a3dbaa145eba1795d9b481589833"
- size 60436
- provides (view-process-mode)
- requires (xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(os-utils
- (standards-version 1.1
- version "1.31"
- author-version "21.4"
- date "2003-06-01"
- build-date "2003-06-01"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority medium
- category "standard"
- dump nil
- description "Miscellaneous O/S utilities."
- filename "os-utils-1.31-pkg.tar.gz"
- md5sum "ea1a8bcaa8dde3ab5e617197d7f6d587"
- size 201059
- provides (archive-mode background crypt++ crypt ftelnet inf-lisp jka-compr mchat rlogin ssh tar-mode telnet terminal uncompress)
- requires (xemacs-base)
- type single
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(ilisp
- (standards-version 1.1
- version "1.32"
- author-version "5.12.0"
- date "2003-05-02"
- build-date "2003-05-02"
- maintainer "ilisp Maintainers <ilisp@cons.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Front-end for Inferior Lisp."
- filename "ilisp-1.32-pkg.tar.gz"
- md5sum "b862aeb9131e1c51272b3fddfc79f323"
- size 345070
- provides (bridge comint-ipc completer ilcompat compat-fsf18 compat-fsf-19 compat-fsf-20 ilisp-chs ilisp-cl-easy-menu ilisp-ext ilisp-lw ilisp-key ilisp-menu ilisp-mnb ilisp-scheme-easy-menu ilisp il-luc19 il-luc19)
- requires (xemacs-base mail-lib fsf-compat eterm sh-script)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(igrep
- (standards-version 1.1
- version "1.10"
- author-version "2.95"
- date "2002-10-29"
- build-date "2002-10-29"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Enhanced front-end for Grep."
- filename "igrep-1.10-pkg.tar.gz"
- md5sum "ab371bae5cee68fb53afd5fd737cd462"
- size 16903
- provides (igrep)
- requires (dired xemacs-base efs)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(eterm
- (standards-version 1.1
- version "1.13"
- author-version "21.1"
- date "2000-10-05"
- build-date "2001-01-15"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority medium
- category "os"
- dump nil
- description "Terminal emulation."
- filename "eterm-1.13-pkg.tar.gz"
- md5sum "ebd64834d12a2a3fc04bbb6f4dd836fa"
- size 109184
- provides (eterm)
- requires (xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(viper
- (standards-version 1.1
- version "1.36"
- author-version "3.09"
- date "2003-05-19"
- build-date "2003-05-19"
- maintainer "Michael Kifer <kifer@cs.sunysb.edu>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "VI emulation support."
- filename "viper-1.36-pkg.tar.gz"
- md5sum "26b328fcd02c52acbf61bdc502daa489"
- size 329897
- provides (viper-cmd viper-ex viper-init viper-keym viper-macs viper-mous viper-util viper)
- requires (xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(tpu
- (standards-version 1.1
- version "1.12"
- author-version "4.2X"
- date "2000-10-05"
- build-date "2001-01-15"
- maintainer "Kevin Oberman <oberman@es.net>"
- distribution xemacs
- priority medium
- category "wp"
- dump nil
- description "DEC EDIT/TPU support."
- filename "tpu-1.12-pkg.tar.gz"
- md5sum "8ee6ca98afc9c18a1df013065c430f5e"
- size 58850
- provides (tpu)
- requires ()
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(textools
- (standards-version 1.1
- version "1.14"
- author-version "21.4"
- date "2003-01-13"
- build-date "2003-01-13"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority medium
- category "standard"
- dump nil
- description "Miscellaneous TeX support."
- filename "textools-1.14-pkg.tar.gz"
- md5sum "baaa68caca74c6cc21f99798c0e8e0e5"
- size 79510
- provides (bib-mode bibtex refer-to-bibtex)
- requires (xemacs-base)
- type single
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(texinfo
- (standards-version 1.1
- version "1.24"
- author-version "21.4"
- date "2003-04-26"
- build-date "2003-04-26"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority high
- category "standard"
- dump nil
- description "XEmacs TeXinfo support."
- filename "texinfo-1.24-pkg.tar.gz"
- md5sum "76c161778c926f90312f1596e75a9d76"
- size 133715
- provides (makeinfo tex-mode texinfmt texinfo texnfo-tex texnfo-upd)
- requires (xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(reftex
- (standards-version 1.1
- version "1.28"
- author-version "4.19"
- date "2002-08-29"
- build-date "2002-08-29"
- maintainer "Carsten Dominik <dominik@science.uva.nl>"
- distribution xemacs
- priority medium
- category "wp"
- dump nil
- description "Emacs support for LaTeX cross-references, citations.."
- filename "reftex-1.28-pkg.tar.gz"
- md5sum "8bf789e67715eb6eb77bec7cc25e37ed"
- size 340634
- provides (reftex-auc reftex-cite reftex-dcr reftex-vcr reftex-global reftex-index reftex-parse reftex-ref reftex-sel reftex-toc reftex-vars reftex)
- requires (fsf-compat xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(edt
- (standards-version 1.1
- version "1.12"
- author-version "21.5b1"
- date "2001-07-14"
- build-date "2001-07-15"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "DEC EDIT/EDT emulation."
- filename "edt-1.12-pkg.tar.gz"
- md5sum "0d7649d0f65d9de732918d756f5cf48b"
- size 62441
- provides (edt)
- requires (xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(crisp
- (standards-version 1.1
- version "1.12"
- author-version "1.34"
- date "1998-08-18"
- build-date "2001-01-15"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "wp"
- dump nil
- description "Crisp/Brief emulation."
- filename "crisp-1.12-pkg.tar.gz"
- md5sum "30308c6e5fb14f621d53046894c8c180"
- size 10075
- provides (crisp scroll-lock)
- requires ()
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(auctex
- (standards-version 1.1
- version "1.35"
- author-version "11.13"
- date "2003-01-03"
- build-date "2003-01-03"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority medium
- category "standard"
- dump nil
- description "Basic TeX/LaTeX support."
- filename "auctex-1.35-pkg.tar.gz"
- md5sum "168e82155e152dab8c7c913bc9a4788b"
- size 406466
- provides (auc-old auc-tex bib-cite font-latex latex multi-prompt tex-buf tex-info tex-jp tex-mik tex-site tex texmathp)
- requires (xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(vhdl
- (standards-version 1.1
- version "1.17"
- author-version "3.31.20"
- date "2003-06-08"
- build-date "2003-06-08"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Support for VHDL."
- filename "vhdl-1.17-pkg.tar.gz"
- md5sum "d228542a1db6f0f9552f3c239ea6723b"
- size 273038
- provides (vhdl-mode)
- requires (xemacs-base edit-utils c-support speedbar ps-print os-utils)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(x-symbol
- (standards-version 1.1
- version "1.05"
- author-version "4.5.1"
- date "2003-06-01"
- build-date "2003-06-01"
- maintainer "Steve Youngs <youngs@xemacs.org>"
- distribution xemacs
- priority high
- category "standard"
- dump nil
- description "Semi WYSIWYG for LaTeX, HTML, etc, using additional fonts."
- filename "x-symbol-1.05-pkg.tar.gz"
- md5sum "cac33616d6c1b40258d7e49cf161c5f6"
- size 682785
- provides (x-symbol-bib x-symbol-hooks x-symbol-image x-symbol-macs x-symbol-mule x-symbol-nomule x-symbol-sgml x-symbol-tex x-symbol-texi x-symbol-vars x-symbol-xmacs x-symbol)
- requires (x-symbol xemacs-base auctex mail-lib)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(vc
- (standards-version 1.1
- version "1.37"
- author-version "21.4"
- date "2003-01-18"
- build-date "2003-01-18"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Version Control for Free systems."
- filename "vc-1.37-pkg.tar.gz"
- md5sum "a80fd60632202fd0fe566215e8c89451"
- size 93512
- provides (vc vc-hooks)
- requires (dired xemacs-base vc mail-lib ediff)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(vc-cc
- (standards-version 1.1
- version "1.21"
- author-version "21.5b6"
- date "2002-06-04"
- build-date "2002-06-04"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Version Control for ClearCase (UnFree) systems."
- filename "vc-cc-1.21-pkg.tar.gz"
- md5sum "eb7ad3f9407b32509fa95fa272476b7d"
- size 94556
- provides (vc-cc vc-cc-hooks)
- requires (dired xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(sh-script
- (standards-version 1.1
- version "1.17"
- author-version "2.0e"
- date "2003-01-13"
- build-date "2003-01-13"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Support for editing shell scripts."
- filename "sh-script-1.17-pkg.tar.gz"
- md5sum "919e1c273b0eb05b17795f5f3382ef1c"
- size 36945
- provides (sh-script executable)
- requires (xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(scheme
- (standards-version 1.1
- version "1.13"
- author-version "21.4"
- date "2003-01-13"
- build-date "2003-01-13"
- maintainer "Karl M. Hegbloom <karlheg@bittersweet.inetarena.com>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Front-end support for Inferior Scheme."
- filename "scheme-1.13-pkg.tar.gz"
- md5sum "570e81d6079fb548b0b52d0e1f68aae2"
- size 37048
- provides (scheme xscheme cmuscheme cmuscheme48)
- requires (xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(prog-modes
- (standards-version 1.1
- version "1.79"
- author-version "21.4"
- date "2003-06-20"
- build-date "2003-06-20"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority medium
- category "standard"
- dump nil
- description "Support for various programming languages."
- filename "prog-modes-1.79-pkg.tar.gz"
- md5sum "6f066a6b89b7f0bbdab99a8bade933bf"
- size 657717
- provides (autoconf-mode awk-mode c-mode cvs diff-mode eiffel-mode icon javascript-mode ksh-mode m4-mode makefile mode-compile mode-compile-kill modula2 p4 php-mode postscript rexx-mode rpm-spec-mode simula-mode sql tcl teco verilog-mode)
- requires (mail-lib xemacs-devel xemacs-base cc-mode fsf-compat edit-utils ediff emerge efs vc speedbar dired ilisp sh-script)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(idlwave
- (standards-version 1.1
- version "1.28"
- author-version "4.15"
- date "2003-01-13"
- build-date "2003-01-13"
- maintainer "Carsten Dominik <dominik@astro.uva.nl>"
- distribution xemacs
- priority medium
- category "standard"
- dump nil
- description "Editing and Shell mode for the Interactive Data Language"
- filename "idlwave-1.28-pkg.tar.gz"
- md5sum "1e970d93e177fbdd3dff8d941bcc2dd0"
- size 404471
- provides (idlw-rinfo idlwave-rinfo idlw-shell idlwave-shell idlw-toolbar idlwave-toolbar idlwave)
- requires (fsf-compat xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(emerge
- (standards-version 1.1
- version "1.09"
- author-version "21.1"
- date "2000-10-05"
- build-date "2001-01-15"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "prog"
- dump nil
- description "Another interface over GNU patch."
- filename "emerge-1.09-pkg.tar.gz"
- md5sum "231c8120d60da2c9ddd856510da2491c"
- size 61043
- provides (emerge)
- requires ()
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(ediff
- (standards-version 1.1
- version "1.47"
- author-version "2.75"
- date "2003-05-19"
- build-date "2003-05-19"
- maintainer "Michael Kifer <kifer@cs.sunysb.edu>"
- distribution xemacs
- priority medium
- category "standard"
- dump nil
- description "Interface over GNU patch."
- filename "ediff-1.47-pkg.tar.gz"
- md5sum "32276e3b47bb3bf1e461c7271091bbab"
- size 305650
- provides (ediff-diff ediff-help ediff-hook ediff-init ediff-merg ediff-mult ediff-ptch ediff-tbar ediff-util ediff-vers ediff-wind ediff)
- requires (pcl-cvs elib dired xemacs-base edebug prog-modes)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(debug
- (standards-version 1.1
- version "1.16"
- author-version "21.4"
- date "2002-09-25"
- build-date "2002-09-25"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "GUD, gdb, dbx debugging support."
- filename "debug-1.16-pkg.tar.gz"
- md5sum "1450bf0762934d079c1287d8baa5859c"
- size 107641
- provides (dbx debug-toolbar gdb-highlight gdb gdbsrc gud history)
- requires (xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(c-support
- (standards-version 1.1
- version "1.16"
- author-version "21.1"
- date "2000-10-05"
- build-date "2001-01-15"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "prog"
- dump nil
- description "Basic single-file add-ons for editing C code."
- filename "c-support-1.16-pkg.tar.gz"
- md5sum "047accf51457a041bf920c9563de1bf6"
- size 70393
- provides (c-comment-edit cmacexp ctypes hideif hideshow)
- requires (cc-mode xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(ada
- (standards-version 1.1
- version "1.13"
- author-version "2.27"
- date "2003-01-13"
- build-date "2003-01-13"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Ada language support."
- filename "ada-1.13-pkg.tar.gz"
- md5sum "2bed65b1357b24d371f27e4cca3fe352"
- size 55694
- provides (ada-mode ada-stmt)
- requires (xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(cc-mode
- (standards-version 1.1
- version "1.33"
- author-version "5.28"
- date "2003-01-13"
- build-date "2003-01-13"
- maintainer "Martin Stjernholm <bug-cc-mode@gnu.org>"
- distribution xemacs
- priority medium
- category "standard"
- dump nil
- description "C, C++ and Java language support."
- filename "cc-mode-1.33-pkg.tar.gz"
- md5sum "c711a14526fe18470934455f65c689d2"
- size 261483
- provides (cc-bytecomp cc-align cc-cmds cc-compat cc-defs cc-engine cc-guess cc-langs cc-lobotomy cc-menus cc-mode-19 cc-mode cc-styles cc-vars)
- requires (xemacs-base mail-lib)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(semantic
- (standards-version 1.1
- version "1.17"
- author-version "1.4.2"
- date "2003-01-13"
- build-date "2003-01-13"
- maintainer "Eric M. Ludlam <zappo@gnu.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Semantic bovinator (Yacc/Lex for XEmacs). Includes Senator."
- filename "semantic-1.17-pkg.tar.gz"
- md5sum "6c374b18834351d2939683c5c62b44a6"
- size 443557
- provides (document-vars document semantic-analyze semantic-bnf semantic-c semantic-cb semantic-chart semantic-ctxt semantic-el semantic-example semantic-ia-sb semantic-ia semantic-imenu semantic-java semantic-load semantic-make semantic-sb semantic-scm semantic-skel semantic-texi semantic-util-modes semantic-util semantic semanticdb senator sformat working)
- requires (eieio xemacs-base xemacs-devel edit-utils speedbar texinfo fsf-compat cc-mode edebug)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(misc-games
- (standards-version 1.1
- version "1.16"
- author-version "21.4"
- date "2002-12-06"
- build-date "2002-12-06"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Other amusements and diversions."
- filename "misc-games-1.16-pkg.tar.gz"
- md5sum "2aaccb449220bcd0388165e07592764e"
- size 166197
- provides (decipher gomoku hanoi life morse rot13)
- requires (xemacs-base)
- type single
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(mine
- (standards-version 1.1
- version "1.14"
- author-version "1.9"
- date "2000-10-05"
- build-date "2001-01-15"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "games"
- dump nil
- description "Minehunt Game."
- filename "mine-1.14-pkg.tar.gz"
- md5sum "ebe471b68642906786db139d402002c7"
- size 66727
- provides (xmine)
- requires (xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(games
- (standards-version 1.1
- version "1.14"
- author-version "1.04"
- date "2003-06-15"
- build-date "2003-06-15"
- maintainer "Glynn Clements <glynn@sensei.co.uk>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Tetris, Sokoban, and Snake."
- filename "games-1.14-pkg.tar.gz"
- md5sum "5c00d86c1f959d32bf12da6f78fd1fcf"
- size 37132
- provides (gamegrid snake tetris sokoban)
- requires (xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(cookie
- (standards-version 1.1
- version "1.14"
- author-version "21.5b5"
- date "2002-03-25"
- build-date "2002-03-25"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Spook and Yow (Zippy quotes)."
- filename "cookie-1.14-pkg.tar.gz"
- md5sum "50581960785fb3949faabaae49896c32"
- size 34543
- provides (cookie1 yow)
- requires (xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(bbdb
- (standards-version 1.1
- version "1.23"
- author-version "2.34"
- date "2003-05-18"
- build-date "2003-05-18"
- maintainer "Ronan Waide <waider@waider.ie>"
- distribution xemacs
- priority medium
- category "standard"
- dump nil
- description "The Big Brother Data Base"
- filename "bbdb-1.23-pkg.tar.gz"
- md5sum "6cced769e1bd48d5a571b654958cd35d"
- size 374355
- provides (bbdb-com bbdb-ftp bbdb-gnus bbdb-gui bbdb-hooks bbdb-merge bbdb-mhe bbdb-migrate bbdb-print bbdb-reportmail bbdb-rmail bbdb-sc bbdb-snarf bbdb-srv bbdb-vm bbdb-w3 bbdb-whois bbdb-xemacs bbdb)
- requires (bbdb edit-utils gnus mh-e rmail supercite vm tm apel mail-lib xemacs-base w3 fsf-compat eterm sh-script net-utils os-utils)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(zenirc
- (standards-version 1.1
- version "1.13"
- author-version "2.112"
- date "2002-01-07"
- build-date "2002-01-14"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority medium
- category "standard"
- dump nil
- description "ZENIRC IRC Client."
- filename "zenirc-1.13-pkg.tar.gz"
- md5sum "38200c80672a32056426ed32c09473cf"
- size 276760
- provides (zenirc-18 zenirc-8ball zenirc-away zenirc-bork zenirc-color zenirc-command-queue zenirc-complete zenirc-ctcp-flood zenirc-dcc zenirc-doto zenirc-fill zenirc-finnish zenirc-format zenirc-fortran zenirc-french zenirc-history zenirc-ignore zenirc-iwantop zenirc-klingon zenirc-latin zenirc-meditate zenirc-netsplit zenirc-notify zenirc-oink zenirc-ojnk zenirc-pjg zenirc-popup zenirc-random-away zenirc-random-nick zenirc-signal zenirc-stamp zenirc-swedish zenirc-trigger zenirc-yow-filter zenirc-yow zenirc)
- requires (zenirc)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(mew
- (standards-version 1.1
- version "1.17"
- author-version "1.94.2"
- date "2002-03-25"
- build-date "2002-03-25"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Messaging in an Emacs World."
- filename "mew-1.17-pkg.tar.gz"
- md5sum "03fa0583b534322d0375901796d22ec5"
- size 654737
- provides (mew-addrbook mew-attach mew-bq mew-cache mew-complete mew-decode mew-demo mew-draft mew-encode mew-env mew-ext mew-fib mew-func mew-header mew-highlight mew-lang-jp mew-mark mew-message mew-mime mew-minibuf mew-mule mew-mule0 mew-mule2 mew-mule3 mew-os2 mew-pgp mew-pick mew-refile mew-scan mew-sort mew-summary mew-syntax mew-temacs mew-unix mew-vars mew-virtual mew-win32 mew-xemacs mew)
- requires (mew w3 efs mail-lib xemacs-base fsf-compat)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(tm
- (standards-version 1.1
- version "1.36"
- author-version "21.5b13"
- date "2003-05-14"
- build-date "2003-05-14"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Emacs MIME support. Not needed for gnus >= 5.8.0"
- filename "tm-1.36-pkg.tar.gz"
- md5sum "03830180796f04f085bcec5a62e2d17a"
- size 334020
- provides (char-util cless gnus-art-mime gnus-charset gnus-mime gnus-sum-mime latex-math-symbol mel-b mel-g mel-q mel-u mel message-mime mime-setup mu-bbdb mu-cite range sc-setup signature texi-util tl-atype tl-list tl-misc tl-num tl-seq tl-str tm-bbdb tm-def tm-edit-mc tm-edit tm-ew-d tm-ew-e tm-file tm-ftp tm-html tm-image tm-latex tm-mail tm-mh-e tm-parse tm-partial tm-pgp tm-play tm-rmail tm-setup tm-tar tm-text tm-view tm-vm tmh-comp)
- requires (gnus mh-e rmail vm mailcrypt mail-lib apel xemacs-base fsf-compat sh-script net-utils)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(gnus
- (standards-version 1.1
- version "1.71"
- author-version "5.10.2"
- date "2003-05-18"
- build-date "2003-05-18"
- maintainer "Steve Youngs <youngs@xemacs.org>"
- distribution xemacs
- priority medium
- category "standard"
- dump nil
- description "The Gnus Newsreader and Mailreader."
- filename "gnus-1.71-pkg.tar.gz"
- md5sum "87a26e70ef2632dc11831964c5b9267b"
- size 3282718
- provides (binhex canlock compface deuglify earcon flow-fill format-spec gnus-agent gnus-art gnus-async gnus-audio gnus-bcklg gnus-cache gnus-cite gnus-cus gnus-delay gnus-demon gnus-diary gnus-dired gnus-draft gnus-dup gnus-eform gnus-ems gnus-fun gnus-gl gnus-group gnus-int gnus-kill gnus-logic gnus-mh gnus-ml gnus-mlspl gnus-move gnus-msg gnus-nocem gnus-picon gnus-range gnus-registry gnus-salt gnus-score gnus-setup gnus-sieve gnus-soup gnus-spec gnus-srvr gnus-start gnus-sum gnus-topic gnus-undo gnus-util gnus-uu gnus-vm gnus-win gnus-xmas gnus ietf-drums imap mail-parse mail-prsvr mail-source mailcap message messagexmas messcompat mm-bodies mm-decode mm-encode mm-extern mm-partial mm-url mm-util mm-uu mm-view mml-sec mml-smime mml mml1991 mml2015 nnagent nnbabyl nndb nndiary nndir nndoc nndraft nneething nnfolder nngateway nnheader nnheaderxm nnimap nnkiboze nnlistserv nnmail nnmaildir nnmbox nnmh nnml nnnil nnoo nnrss nnslashdot nnsoup nnspool nntp nnultimate nnvirtual nnwarchive nnweb nnwfm parse-time qp rfc1843 rfc2045 rfc2047 rfc2231 score-mode smiley smime spam-report spam-stat spam time-date utf7 uudecode webmail yenc gnus-idna gpg-ring gpg hashcash vcard)
- requires (gnus w3 mh-e mailcrypt rmail eterm mail-lib xemacs-base fsf-compat ecrypto tm apel pgg net-utils sh-script os-utils dired sieve sasl)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(rmail
- (standards-version 1.1
- version "1.13"
- author-version "21.5b4"
- date "2002-01-13"
- build-date "2002-01-14"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "An obsolete Emacs mailer."
- filename "rmail-1.13-pkg.tar.gz"
- md5sum "4da12b01ea3735412f95edeb2a2bd0bd"
- size 96265
- provides (rmail-kill rmail-xemacs rmail rmailsort)
- requires (tm apel mail-lib xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(mailcrypt
- (standards-version 1.1
- version "2.12"
- author-version "3.5.8"
- date "2002-10-07"
- build-date "2002-10-07"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Support for messaging encryption with PGP."
- filename "mailcrypt-2.12-pkg.tar.gz"
- md5sum "a82276fc399b6a72d8769d6e3bcc7e41"
- size 153873
- provides (expect mailcrypt)
- requires (mail-lib fsf-compat xemacs-base cookie gnus mh-e rmail vm)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(supercite
- (standards-version 1.1
- version "1.19"
- author-version "3.55x3"
- date "2002-01-07"
- build-date "2002-01-14"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "An Emacs citation tool for News & Mail messages."
- filename "supercite-1.19-pkg.tar.gz"
- md5sum "8f6767ea4e03306d1e5553501ed7cd2e"
- size 100881
- provides (supercite)
- requires (mail-lib xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(mh-e
- (standards-version 1.1
- version "1.23"
- author-version "7.3"
- date "2003-05-19"
- build-date "2003-05-19"
- maintainer "Steve Youngs <mh-e-devel@lists.sf.net>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Front end support for MH."
- filename "mh-e-1.23-pkg.tar.gz"
- md5sum "d7d99f142797bbe3fba206d6932a1e75"
- size 551037
- provides (mh-alias mh-comp mh-customize mh-e mh-funcs mh-identity mh-inc mh-index mh-junk mh-loaddefs mh-mime mh-pick mh-seq mh-speed mh-unit mh-utils mh-xemacs-compat mh-xemacs-icons)
- requires (gnus mail-lib xemacs-base speedbar rmail tm apel sh-script fsf-compat xemacs-devel net-utils eterm os-utils)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(gnats
- (standards-version 1.1
- version "1.15"
- author-version "3.101"
- date "2002-06-27"
- build-date "2002-06-27"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority high
- category "standard"
- dump nil
- description "XEmacs bug reports."
- filename "gnats-1.15-pkg.tar.gz"
- md5sum "9503a79e2e396eb13151aec7eadf561b"
- size 189524
- provides (gnats gnats-admin send-pr)
- requires (mail-lib xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(footnote
- (standards-version 1.1
- version "1.15"
- author-version "0.18x"
- date "2002-04-24"
- build-date "2002-04-24"
- maintainer "SL Baur <steve@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Footnoting in mail message editing modes."
- filename "footnote-1.15-pkg.tar.gz"
- md5sum "1cbe1e587881611006d9a8fc82be3be1"
- size 21917
- provides (footnote-cyrillic footnote-greek footnote-han footnote-hebrew footnote-kana footnote)
- requires (mail-lib xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(eudc
- (standards-version 1.1
- version "1.38"
- author-version "1.32"
- date "2003-05-18"
- build-date "2003-05-18"
- maintainer "Oscar Figueiredo <oscar@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Emacs Unified Directory Client (LDAP, PH)."
- filename "eudc-1.38-pkg.tar.gz"
- md5sum "44f701aa6b6460eb766e994a6f0f3072"
- size 79327
- provides (eudc eudc-vars eudc-hotlist eudc-export eudc-bob eudcb-ldap eudcb-ph eudcb-bbdb)
- requires (fsf-compat xemacs-base bbdb mail-lib gnus rmail tm apel eterm sh-script net-utils)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(net-utils
- (standards-version 1.1
- version "1.32"
- author-version "21.4"
- date "2003-05-02"
- build-date "2003-05-02"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "Miscellaneous Networking Utilities."
- filename "net-utils-1.32-pkg.tar.gz"
- md5sum "0c756dbe87fac94fda8c175283fc7f2c"
- size 137374
- provides (ilisp-browse-cltl2 xemacsbug feedmail metamail net-utils rcompile shadowfile webjump webster-www dig dns xml)
- requires (bbdb w3 efs mail-lib xemacs-base fsf-compat eterm sh-script gnus rmail tm apel)
- type single
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(w3
- (standards-version 1.1
- version "1.28"
- author-version "4.0pre47"
- date "2003-01-13"
- build-date "2003-01-13"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority high
- category "standard"
- dump nil
- description "A Web browser."
- filename "w3-1.28-pkg.tar.gz"
- md5sum "67c77722bdb50d6ab6287d3994f91b09"
- size 695206
- provides (css devices w3-auto dsssl-flow dsssl font images mm mule-sysdp socks ssl urlauth url-cache url-cookie url-file url-gopher url-gw url-http url-ldap url-mail url-misc url-news url-ns url-parse url-vars url w3-about w3-auto w3-cfg w3-cus w3-display w3-emacs19 w3-e19 w3-e20 w3-elisp w3-emulate w3-forms w3-hot w3-hotindex w3-imap w3-java w3-jscript w3-keyword w3-latex w3-menu w3-mouse w3-parse w3-print w3-props w3-script w3-structure w3-speak w3-style w3-sysdp w3-toolbar w3-vars w3-widget w3-xemacs w3-xemac w3)
- requires (w3 mail-lib xemacs-base ecrypto)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(vm
- (standards-version 1.1
- version "7.14"
- author-version "7.14"
- date "2002-06-08"
- build-date "2002-06-08"
- maintainer "Kyle Jones <kyle_jones@wonderworks.com>"
- distribution xemacs
- priority medium
- category "standard"
- dump nil
- description "An Emacs mailer."
- filename "vm-7.14-pkg.tar.gz"
- md5sum "18c68c9165f4877a00f0fea395dc4aa3"
- size 793198
- provides (tapestry vm-byteopts vm-delete vm-digest vm-easymenu vm-edit vm-folder vm-imap vm-license vm-macro vm-mark vm-menu vm-message vm-mime vm-minibuf vm-misc vm-motion vm-mouse vm-page vm-pop vm-reply vm-save vm-search vm-sort vm-startup vm-summary vm-thread vm-toolbar vm-undo vm-user vm-vars vm vm-version vm-virtual vm-window)
- requires (mail-lib xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(sounds-wav
- (standards-version 1.1
- version "1.10"
- author-version "21.1"
- date "2000-05-23"
- build-date "2001-01-15"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority high
- category "libs"
- dump nil
- description "XEmacs Microsoft sound files."
- filename "sounds-wav-1.10-pkg.tar.gz"
- md5sum "89dff9f3b8e1aaaa19f000035e3aa199"
- size 149162
- provides ()
- requires ()
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(sounds-au
- (standards-version 1.1
- version "1.10"
- author-version "21.1"
- date "2000-05-23"
- build-date "2001-01-15"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority high
- category "libs"
- dump nil
- description "XEmacs Sun sound files."
- filename "sounds-au-1.10-pkg.tar.gz"
- md5sum "256e09c0570a19ae545350681bacaf3e"
- size 126306
- provides ()
- requires ()
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(xemacs-devel
- (standards-version 1.1
- version "1.55"
- author-version "21.4"
- date "2003-05-18"
- build-date "2003-05-18"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority medium
- category "standard"
- dump nil
- description "Emacs Lisp developer support."
- filename "xemacs-devel-1.55-pkg.tar.gz"
- md5sum "6fe0e1b869502c94adaa9e5d6623d5f3"
- size 233111
- provides (checkdoc docref eldoc elp eval-expr find-func hide-copyleft ielm patcher pp trace patch-keywords)
- requires (xemacs-base ispell mail-lib gnus rmail tm apel sh-script net-utils eterm)
- type single
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(tooltalk
- (standards-version 1.1
- version "1.13"
- author-version "21.1"
- date "2000-10-05"
- build-date "2001-01-15"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "libs"
- dump nil
- description "Support for building with Tooltalk."
- filename "tooltalk-1.13-pkg.tar.gz"
- md5sum "3f01dab216a3bc318d11f362d22ea89c"
- size 9301
- provides ()
- requires ()
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(elib
- (standards-version 1.1
- version "1.10"
- author-version "1.0"
- date "2002-01-07"
- build-date "2002-01-14"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority high
- category "standard"
- dump nil
- description "Portable Emacs Lisp utilities library."
- filename "elib-1.10-pkg.tar.gz"
- md5sum "01deb690554da8c3f7c97e0ae170ae69"
- size 73309
- provides (avltree bintree cookie dll elib-node queue-f queue-m read stack-f stack-m string)
- requires ()
- type single
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(edebug
- (standards-version 1.1
- version "1.18"
- author-version "21.4"
- date "2003-06-01"
- build-date "2003-06-01"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "standard"
- dump nil
- description "An Emacs Lisp debugger."
- filename "edebug-1.18-pkg.tar.gz"
- md5sum "ea33ebf474676aff1a782fa9abc0b958"
- size 114099
- provides (edebug cl-read cust-print eval-reg cl-specs)
- requires (xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(Sun
- (standards-version 1.1
- version "1.13"
- author-version "21.1"
- date "1998-07-25"
- build-date "2001-01-15"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority low
- category "libs"
- dump nil
- description "Support for Sparcworks."
- filename "Sun-1.13-pkg.tar.gz"
- md5sum "455b7e1c3564563687e36ab53352ba76"
- size 63836
- provides (sccs eos-browser eos-common eos-debugger eos-debugger eos-editor eos-init eos-load eos-menubar eos-toolbar sunpro)
- requires (cc-mode xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(apel
- (standards-version 1.1
- version "1.26"
- author-version "10.2"
- date "2003-01-03"
- build-date "2003-01-03"
- maintainer "XEmacs Development Team <xemacs-beta@xemacs.org>"
- distribution xemacs
- priority high
- category "standard"
- dump nil
- description "A Portable Emacs Library. Used by XEmacs MIME support."
- filename "apel-1.26-pkg.tar.gz"
- md5sum "f8981e7b041e5f493d30fbd82b15f831"
- size 108340
- provides (atype emu-20 emu-e19 emu-x20 emu-xemacs emu file-detect filename install mule-caesar path-util richtext std11-parse std11 tinyrich)
- requires (fsf-compat xemacs-base)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(efs
- (standards-version 1.0
- version "1.29"
- author-version "1.20"
- date "2002-04-24"
- build-date "2002-04-24"
- maintainer "Mike Sperber <sperber@informatik.uni-tuebingen.de>"
- distribution stable
- priority medium
- category "standard"
- dump nil
- description "Treat files on remote systems the same as local files."
- filename "efs-1.29-pkg.tar.gz"
- md5sum "8c2c6c00cfbdc5f8d64ad54ddfb731df"
- size 371905
- provides (efs)
- requires (xemacs-base dired)
- type regular
-))
-))
-;;;@@@
-(package-get-update-base-entry (quote
-(dired
- (standards-version 1.0
- version "1.13"
- author-version "7.10"
- date "2003-01-03"
- build-date "2003-01-03"
- maintainer "Mike Sperber <sperber@informatik.uni-tuebingen.de>"
- distribution stable
- priority medium
- category "standard"
- dump nil
- description "Manage file systems."
- filename "dired-1.13-pkg.tar.gz"
- md5sum "bedcfcb1c8c9829663f0d66d6612154e"
- size 196323
- provides (diff dired)
- requires (xemacs-base prog-modes)
- type regular
-))
-))
-;;;@@@
-;; Package Index file ends here
+2004-02-02 Vin Shelton <acs@xemacs.org>
+
+ * XEmacs 21.4.15 is released
+
2003-09-03 Vin Shelton <acs@xemacs.org>
* XEmacs 21.4.14 is released
## mmencode binary is used by tm - but is really part of the metamail package
## mmencode.c was merged copy of mmencode.c and codes.c of metamail
mmencode : ${srcdir}/mmencode.c
- $(CC) $(cflags) ${srcdir}/mmencode.c -o $@
+ $(CC) $(cflags) ${srcdir}/mmencode.c $(ldflags) -o $@
## The timer utility (timer.c, getdate.y) is not used in XEmacs
## because XEmacs provides built-in timer facilities.
make-path: ${srcdir}/make-path.c ../src/config.h
- $(CC) -Demacs $(cflags) ${srcdir}/make-path.c -o $@
+ $(CC) -Demacs $(cflags) ${srcdir}/make-path.c $(ldflags) -o $@
* files.el (insert-file-contents-literally): Treat file as binary;
call file-name-handlers. [sync with Emacs 20.3.10]
+2004-02-02 Vin Shelton <acs@xemacs.org>
+
+ * XEmacs 21.4.15 is released
+
+2003-12-12 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * itimer.el (activate-itimer): Modify the itimer timeout value as
+ if it were begun at the last time when the itimer driver was woken
+ up.
+
+2004-01-27 Stephen J. Turnbull <stephen@xemacs.org>
+
+ * specifier.el (Copyright):
+ Update.
+ (make-specifier-and-init):
+ (map-specifier):
+ (canonicalize-inst-pair):
+ (canonicalize-spec-list):
+ (set-specifier):
+ Synch docstrings to 21.5 where appropriate.
+
+2004-01-25 Steve Youngs <sryoungs@bigpond.net.au>
+
+ * package-get.el (package-get-list-packages-where): New. A
+ function that allows searching for groups of packages. For
+ example, find all packages that require the fsf-compat package.
+
+2004-01-25 Steve Youngs <youngs@xemacs.org>
+
+ The Great PUI Sync.
+
+ * auto-autoloads.el: Regenerated.
+
+ * custom-load.el: Regenerated.
+
+ * dumped-lisp.el (packages-hardcoded-lisp): New.
+
+ * menubar-items.el (menu-max-items): New.
+ (menu-submenu-max-items): New.
+ (menu-submenu-name-format): New.
+ (menu-split-long-menu): New.
+ (menu-sort-menu): New.
+ (default-menubar): Sync to 21.5 in regard to the PUI menus.
+
+ * obsolete.el (pui-add-install-directory): Renamed to the more
+ logical `pui-set-local-package-get-directory'.
+ (package-get-download-menu): Moved to `package-ui.el' and renamed
+ to `package-ui-add-download-menu'.
+
+ * package-admin.el (package-admin-install-function-mswindows):
+ Whitespace clean up.
+ (package-admin-add-single-file-package): Removed.
+ (package-admin-default-install-function): Whitespace clean up.
+ (package-admin-find-top-directory): New.
+ (package-admin-get-install-dir): Use it.
+ (package-admin-get-manifest-file):
+ (package-admin-check-manifest):
+ (package-admin-add-binary-package):
+ (package-admin-get-lispdir):
+ (package-admin-delete-binary-package):
+ (package-admin):
+
+ * package-get.el (package-get-package-index-file-location): New.
+ (package-get-install-to-user-init-directory): New.
+ (package-get-remote):
+ (package-get-download-sites):
+ (package-get-pre-release-download-sites): New.
+ (package-get-site-release-download-sites): New.
+ (package-get-base-filename):
+ (package-get-always-update):
+ (package-get-user-index-filename): Removed.
+ (package-get-pgp-available-p): New.
+ (package-get-require-signed-base-updates):
+ (package-get-was-current):
+ (package-entries-are-signed): New.
+ (package-get-continue-update-base): New.
+ (package-get-download-menu): Removed.
+ (package-get-require-base):
+ (package-get-update-base-entry):
+ (package-get-locate-file):
+ (package-get-locate-index-file):
+ (package-get-maybe-save-index):
+ (package-get-update-base):
+ (package-get-update-base-from-buffer):
+ (package-get-update-base-entries):
+ (package-get-interactive-package-query):
+ (package-get-update-all):
+ (package-get-all):
+ (package-get-dependencies):
+ (package-get-init-package):
+ (package-get-info): New.
+ (package-get):
+ (package-get-staging-dir):
+ (package-get-set-version-prop): Removed.
+ (package-get-installedp):
+ (package-get-ever-installed-p):
+ (packages): Removed.
+ (package-get-custom-groups): Removed.
+ (package-get-custom): Removed.
+ (package-get-custom-add-entry): Removed.
+
+ * package-info.el (batch-update-package-info):
+
+ * package-net.el (package-net-batch-generate-bin-ini):
+ (package-net-update-installed-db):
+
+ * package-ui.el (pui-info-buffer):
+ (pui-directory-exists): Removed.
+ (pui-package-dir-list): Removed.
+ (pui-add-install-directory): Removed.
+ (package-ui-download-menu): New.
+ (package-ui-pre-release-download-menu): New.
+ (package-ui-site-release-download-menu): New.
+ (pui-set-local-package-get-directory): New.
+ (pui-package-symbol-char):
+ (pui-update-package-display):
+ (pui-toggle-package):
+ (pui-toggle-package-key):
+ (pui-toggle-package-delete):
+ (pui-toggle-package-delete-key):
+ (pui-toggle-package-event):
+ (pui-toggle-verbosity-redisplay):
+ (pui-install-selected-packages):
+ (pui-add-required-packages):
+ (pui-help-echo):
+ (pui-display-info):
+ (list-packages-mode):
+ (pui-list-packages):
+
+ * packages.el (packages-compute-package-locations):
+ (package-require):
+ (package-delete-name):
+ (packages-hardcoded-lisp): Removed.
+ (packages-useful-lisp): Removed.
+ (packages-unbytecompiled-lisp): Removed.
+ (packages-find-package-directories):
+
+ Summary:
+
+ Major code clean up of all things PUI.
+
+ Much improved code to determine where packages should be
+ installed. PUI no longer depends on any packages being
+ pre-installed to compute where packages are to be installed to.
+
+ The user can specify the location of their package-index file. It
+ isn't necessary to set this because it has sane defaults. People
+ who "run-in-place" won't accidently overwrite the CVS
+ package-index file. See
+ `package-get-package-index-file-location'.
+
+ PUI will now properly clean up after itself in the event of an
+ unsuccessful package install. This drastically reduces the number
+ of "wrong md5sum" FAQs.
+
+ non-Mule XEmacsen can no longer install Mule packages.
+
+ Package management via the custom interface has been removed.
+
+ The PUI related menubar items have been reorganised.
+
+ The PGP verification code has been fixed and the default for
+ whether or not it is used is automatically computed.
+
+ * update-elc.el ((preloaded-file-list site-load-packages
+ need-to-dump dumped-exe)):
+ Just a couple of small changes to allow for
+ `packages-(hardcoded|useful|unbytecompiled)-lisp' not really
+ existing anymore.
+
+2003-12-10 Hrvoje Niksic <hniksic@xemacs.org>
+
+ * bytecomp.el (byte-compile-warn-about-unused-variables): Don't
+ apply `format' to the first argument of byte-compile-warn, it
+ already calls format.
+
+2003-12-03 Adrian Aichner <adrian@xemacs.org>
+
+ * files.el (delete-old-versions): Avoid going interactive during
+ make install when environment variable VERSION_CONTROL is set.
+
+2003-12-04 Vin Shelton <acs@xemacs.org>
+
+ * menubar-items.el (menu-item-search): Only bring up search dialog
+ box if the feature is available and desired.
+
+2003-11-04 Stephen J. Turnbull <stephen@xemacs.org>
+
+ * about.el (about-personal-info): Fix typo in Tony Rossini's entry.
+
+2003-11-05 Vin Shelton <acs@xemacs.org>
+
+ * help.el (Help-prin1-face):
+ (Help-princ-face):
+ princ and prin1 are functions and need to be called as such. The
+ idea for this patch was submitted by Eric Eide <eeide@cs.utah.edu>.
+
+2003-10-22 Stephen J. Turnbull <stephen@xemacs.org>
+
+ * about.el (about-xemacs): Give full version and build date.
+
+2003-09-19 Stephen J. Turnbull <stephen@xemacs.org>
+
+ * win32-native.el (grep-null-device): This XEmacs has null-device.
+
+2003-09-06 Mike Sperber <mike@xemacs.org>
+
+ * bytecomp.el (byte-compile-defvar-or-defconst): Actually
+ implement the specified semantics for `defvar.'
+
+2003-09-07 Adrian Aichner <adrian@xemacs.org>
+
+ * window-xemacs.el (display-buffer): Fix for `shrink-to-fit' by
+ Klaus Berndl, calling `shrink-window-if-larger-than-buffer' when
+ displaying buffer in question.
+
2003-09-03 Vin Shelton <acs@xemacs.org>
* XEmacs 21.4.14 is released
:format "%t"
:tag-glyph xemacs-logo)
(widget-insert "\n")
- (let* ((emacs-short-version (format "%d.%d"
+ (let* ((emacs-short-version (format "%d.%d.%d"
emacs-major-version
- emacs-minor-version))
- (emacs-about-version (format "version %s; April 2001"
- emacs-short-version)))
+ emacs-minor-version
+ emacs-patch-level))
+ (emacs-about-version (format "version %s; %s %s"
+ emacs-short-version
+ (cdr (assoc (substring emacs-build-time
+ 4 7)
+ '(("Jan" . "January")
+ ("Feb" . "February")
+ ("Mar" . "March")
+ ("Apr" . "April")
+ ("May" . "May")
+ ("Jun" . "June")
+ ("Jul" . "July")
+ ("Aug" . "August")
+ ("Sep" . "September")
+ ("Oct" . "October")
+ ("Nov" . "November")
+ ("Dec" . "December"))))
+ (substring emacs-build-time -4))))
(widget-insert (about-center emacs-about-version))
(widget-create 'link :help-echo "What's new in XEmacs"
:action 'about-news
and the Fred Hutchinson Cancer Research Center.
See ")
- (about-url-link 'rossini nil "Visit Anothony's home page")
+ (about-url-link 'rossini nil "Visit Anthony's home page")
(widget-insert ".\n"))
(slb
(widget-insert "\
;;;***
\f
-;;;### (autoloads (package-admin-add-binary-package package-admin-add-single-file-package) "package-admin" "lisp/package-admin.el")
-
-(autoload 'package-admin-add-single-file-package "package-admin" "\
-Install a single file Lisp package into XEmacs package hierarchy.
-`file' should be the full path to the lisp file to install.
-`destdir' should be a simple directory name.
-The optional `pkg-dir' can be used to override the default package hierarchy
-\(car (last late-packages))." t nil)
+;;;### (autoloads (package-admin-add-binary-package) "package-admin" "lisp/package-admin.el")
(autoload 'package-admin-add-binary-package "package-admin" "\
Install a pre-bytecompiled XEmacs package into package hierarchy." t nil)
;;;***
\f
-;;;### (autoloads (package-get-custom package-get-package-provider package-get package-get-dependencies package-get-all package-get-update-all package-get-delete-package package-get-save-base package-get-update-base-from-buffer package-get-update-base package-get-update-base-entry package-get-require-base package-get-download-menu) "package-get" "lisp/package-get.el")
+;;;### (autoloads (package-get-package-provider package-get package-get-list-packages-where package-get-info package-get-dependencies package-get-all package-get-update-all package-get-delete-package package-get-save-base package-get-update-base-from-buffer package-get-update-base package-get-update-base-entry package-get-require-base) "package-get" "lisp/package-get.el")
(defvar package-get-base nil "\
List of packages that are installed at this site.
be lexically ordered. It is debatable if it makes sense to have more than
one version of a package available.")
-(defcustom package-get-download-sites '(("Pre-Releases" "ftp.xemacs.org" "pub/xemacs/beta/experimental/packages") ("xemacs.org" "ftp.xemacs.org" "pub/xemacs/packages") ("ca.xemacs.org (Canada)" "ftp.ca.xemacs.org" "pub/Mirror/xemacs/packages") ("crc.ca (Canada)" "ftp.crc.ca" "pub/packages/editors/xemacs/packages") ("us.xemacs.org (United States)" "ftp.us.xemacs.org" "pub/xemacs/packages") ("ibiblio.org (United States)" "ibiblio.org" "pub/packages/editors/xemacs/packages") ("stealth.net (United States)" "ftp.stealth.net" "pub/mirrors/ftp.xemacs.org/pub/xemacs/packages") ("br.xemacs.org (Brazil)" "ftp.br.xemacs.org" "pub/xemacs/packages") ("at.xemacs.org (Austria)" "ftp.at.xemacs.org" "editors/xemacs/packages") ("be.xemacs.org (Belgium)" "ftp.be.xemacs.org" "xemacs/packages") ("cz.xemacs.org (Czech Republic)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/packages") ("dk.xemacs.org (Denmark)" "ftp.dk.xemacs.org" "pub/emacs/xemacs/packages") ("fi.xemacs.org (Finland)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/packages") ("fr.xemacs.org (France)" "ftp.fr.xemacs.org" "pub/xemacs/packages") ("pasteur.fr (France)" "ftp.pasteur.fr" "pub/computing/xemacs/packages") ("de.xemacs.org (Germany)" "ftp.de.xemacs.org" "pub/ftp.xemacs.org/tux/xemacs/packages") ("tu-darmstadt.de (Germany)" "ftp.tu-darmstadt.de" "pub/editors/xemacs/packages") ("ie.xemacs.org (Ireland)" "ftp.ie.xemacs.org" "mirrors/ftp.xemacs.org/pub/xemacs/packages") ("it.xemacs.org (Italy)" "ftp.it.xemacs.org" "unix/packages/XEMACS/packages") ("no.xemacs.org (Norway)" "ftp.no.xemacs.org" "pub/xemacs/packages") ("pl.xemacs.org (Poland)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/packages") ("ru.xemacs.org (Russia)" "ftp.ru.xemacs.org" "pub/xemacs/packages") ("sk.xemacs.org (Slovakia)" "ftp.sk.xemacs.org" "pub/mirrors/xemacs/packages") ("se.xemacs.org (Sweden)" "ftp.se.xemacs.org" "pub/gnu/xemacs/packages") ("ch.xemacs.org (Switzerland)" "ftp.ch.xemacs.org" "mirror/xemacs/packages") ("uk.xemacs.org (United Kingdom)" "ftp.uk.xemacs.org" "sites/ftp.xemacs.org/pub/xemacs/packages") ("jp.xemacs.org (Japan)" "ftp.jp.xemacs.org" "pub/GNU/xemacs/packages") ("aist.go.jp (Japan)" "ring.aist.go.jp" "pub/text/xemacs/packages") ("asahi-net.or.jp (Japan)" "ring.asahi-net.or.jp" "pub/text/xemacs/packages") ("dti.ad.jp (Japan)" "ftp.dti.ad.jp" "pub/unix/editor/xemacs/packages") ("jaist.ac.jp (Japan)" "ftp.jaist.ac.jp" "pub/GNU/xemacs/packages") ("nucba.ac.jp (Japan)" "mirror.nucba.ac.jp" "mirror/xemacs/packages") ("sut.ac.jp (Japan)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/packages") ("kr.xemacs.org (Korea)" "ftp.kr.xemacs.org" "pub/tools/emacs/xemacs/packages") ("za.xemacs.org (South Africa)" "ftp.za.xemacs.org" "mirrorsites/ftp.xemacs.org/packages") ("sa.xemacs.org (Saudi Arabia)" "ftp.sa.xemacs.org" "pub/mirrors/ftp.xemacs.org/xemacs/packages") ("au.xemacs.org (Australia)" "ftp.au.xemacs.org" "pub/xemacs/packages") ("aarnet.edu.au (Australia)" "mirror.aarnet.edu.au" "pub/xemacs/packages") ("nz.xemacs.org (New Zealand)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages")) "*List of remote sites available for downloading packages.\nList format is '(site-description site-name directory-on-site).\nSITE-DESCRIPTION is a textual description of the site. SITE-NAME\nis the internet address of the download site. DIRECTORY-ON-SITE\nis the directory on the site in which packages may be found.\nThis variable is used to initialize `package-get-remote', the\nvariable actually used to specify package download sites." :tag "Package download sites" :type '(repeat (list (string :tag "Name") host-name directory)) :group 'package-get)
+(defcustom package-get-package-index-file-location (or (getenv "EMACSPACKAGEPATH") user-init-directory) "*The directory where the package-index file can be found." :type 'directory :group 'package-get)
-(autoload 'package-get-download-menu "package-get" "\
-Build the `Add Download Site' menu." nil nil)
+(defcustom package-get-install-to-user-init-directory nil "*If non-nil install packages under `user-init-directory'." :type 'boolean :group 'package-get)
+
+(defcustom package-get-download-sites '(("US (Main XEmacs Site)" "ftp.xemacs.org" "pub/xemacs/packages") ("Australia (aarnet.edu.au)" "mirror.aarnet.edu.au" "pub/xemacs/packages") ("Australia (au.xemacs.org)" "ftp.au.xemacs.org" "pub/xemacs/packages") ("Austria (at.xemacs.org)" "ftp.at.xemacs.org" "editors/xemacs/packages") ("Belgium (be.xemacs.org)" "ftp.be.xemacs.org" "xemacs/packages") ("Brazil (br.xemacs.org)" "ftp.br.xemacs.org" "pub/xemacs/packages") ("Canada (ca.xemacs.org)" "ftp.ca.xemacs.org" "pub/Mirror/xemacs/packages") ("Canada (crc.ca)" "ftp.crc.ca" "pub/packages/editors/xemacs/packages") ("Canada (ualberta.ca)" "sunsite.ualberta.ca" "pub/Mirror/xemacs/packages") ("Czech Republic (cz.xemacs.org)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/packages") ("Denmark (dk.xemacs.org)" "ftp.dk.xemacs.org" "pub/emacs/xemacs/packages") ("Finland (fi.xemacs.org)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/packages") ("France (fr.xemacs.org)" "ftp.fr.xemacs.org" "pub/xemacs/packages") ("France (mirror.cict.fr)" "mirror.cict.fr" "xemacs/packages") ("France (pasteur.fr)" "ftp.pasteur.fr" "pub/computing/xemacs/packages") ("Germany (de.xemacs.org)" "ftp.de.xemacs.org" "pub/ftp.xemacs.org/tux/xemacs/packages") ("Germany (tu-darmstadt.de)" "ftp.tu-darmstadt.de" "pub/editors/xemacs/packages") ("Ireland (ie.xemacs.org)" "ftp.ie.xemacs.org" "mirrors/ftp.xemacs.org/pub/xemacs/packages") ("Italy (it.xemacs.org)" "ftp.it.xemacs.org" "unix/packages/XEMACS/packages") ("Japan (aist.go.jp)" "ring.aist.go.jp" "pub/text/xemacs/packages") ("Japan (asahi-net.or.jp)" "ring.asahi-net.or.jp" "pub/text/xemacs/packages") ("Japan (dti.ad.jp)" "ftp.dti.ad.jp" "pub/unix/editor/xemacs/packages") ("Japan (jaist.ac.jp)" "ftp.jaist.ac.jp" "pub/GNU/xemacs/packages") ("Japan (jp.xemacs.org)" "ftp.jp.xemacs.org" "pub/GNU/xemacs/packages") ("Japan (nucba.ac.jp)" "mirror.nucba.ac.jp" "mirror/xemacs/packages") ("Japan (sut.ac.jp)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/packages") ("Korea (kr.xemacs.org)" "ftp.kr.xemacs.org" "pub/tools/emacs/xemacs/packages") ("New Zealand (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages") ("Norway (no.xemacs.org)" "ftp.no.xemacs.org" "pub/xemacs/packages") ("Poland (pl.xemacs.org)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/packages") ("Russia (ru.xemacs.org)" "ftp.ru.xemacs.org" "pub/xemacs/packages") ("Slovakia (sk.xemacs.org)" "ftp.sk.xemacs.org" "pub/mirrors/xemacs/packages") ("South Africa (za.xemacs.org)" "ftp.za.xemacs.org" "mirrorsites/ftp.xemacs.org/packages") ("Sweden (se.xemacs.org)" "ftp.se.xemacs.org" "pub/gnu/xemacs/packages") ("Switzerland (ch.xemacs.org)" "ftp.ch.xemacs.org" "mirror/xemacs/packages") ("UK (uk.xemacs.org)" "ftp.uk.xemacs.org" "sites/ftp.xemacs.org/pub/xemacs/packages") ("US (ibiblio.org)" "ibiblio.org" "pub/packages/editors/xemacs/packages") ("US (stealth.net)" "ftp.stealth.net" "pub/mirrors/ftp.xemacs.org/pub/xemacs/packages") ("US (unc.edu)" "metalab.unc.edu" "pub/packages/editors/xemacs/packages") ("US (us.xemacs.org)" "ftp.us.xemacs.org" "pub/xemacs/packages") ("US (utk.edu)" "ftp.sunsite.utk.edu" "pub/xemacs/packages")) "*List of remote sites available for downloading packages.\nList format is '(site-description site-name directory-on-site).\nSITE-DESCRIPTION is a textual description of the site. SITE-NAME\nis the internet address of the download site. DIRECTORY-ON-SITE\nis the directory on the site in which packages may be found.\nThis variable is used to initialize `package-get-remote', the\nvariable actually used to specify package download sites." :tag "Package download sites" :type '(repeat (list (string :tag "Name") host-name directory)) :group 'package-get)
+
+(defcustom package-get-pre-release-download-sites '(("Pre-Releases (Main XEmacs Site)" "ftp.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Australia Pre-Releases (aarnet.edu.au)" "mirror.aarnet.edu.au" "pub/xemacs/beta/experimental/packages") ("Australia Pre-Releases (au.xemacs.org)" "ftp.au.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Austria Pre-Releases (at.xemacs.org)" "ftp.at.xemacs.org" "editors/xemacs/beta/experimentsl/packages") ("Brazil Pre-Releases (br.xemacs.org)" "ftp.br.xemacs.org" "pub/xemacs/xemacs-21.5/experimental/packages") ("Canada Pre-Releases (ca.xemacs.org)" "ftp.ca.xemacs.org" "pub/Mirror/xemacs/beta/experimental/packages") ("Canada Pre-Releases (crc.ca)" "ftp.crc.ca" "pub/packages/editors/xemacs/beta/experimental/packages") ("Canada Pre-Releases (ualberta.ca)" "sunsite.ualberta.ca" "pub/Mirror/xemacs/beta/experimental/packages") ("Czech Republic Pre-Releases (cz.xemacs.org)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/xemacs-21.5/experimental/packages") ("Denmark Pre-Releases (dk.xemacs.org)" "ftp.dk.xemacs.org" "pub/emacs/xemacs/beta/experimental/packages") ("Finland Pre-Releases (fi.xemacs.org)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/beta/experimental/packages") ("France Pre-Releases (fr.xemacs.org)" "ftp.fr.xemacs.org" "pub/xemacs/beta/experimental/packages") ("France Pre-Releases (mirror.cict.fr)" "mirror.cict.fr" "xemacs/beta/experimental/packages") ("France Pre-Releases (pasteur.fr)" "ftp.pasteur.fr" "pub/computing/xemacs/beta/experimental/packages") ("Germany Pre-Releases (de.xemacs.org)" "ftp.de.xemacs.org" "pub/ftp.xemacs.org/tux/xemacs/beta/experimental/packages") ("Germany Pre-Releases (tu-darmstadt.de)" "ftp.tu-darmstadt.de" "pub/editors/xemacs/beta/experimental/packages") ("Ireland Pre-Releases (ie.xemacs.org)" "ftp.ie.xemacs.org" "mirrors/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") ("Italy Pre-Releases (it.xemacs.org)" "ftp.it.xemacs.org" "unix/packages/XEMACS/beta/experimental/packages") ("Japan Pre-Releases (aist.go.jp)" "ring.aist.go.jp" "pub/text/xemacs/beta/experimental/packages") ("Japan Pre-Releases (asahi-net.or.jp)" "ring.asahi-net.or.jp" "pub/text/xemacs/beta/experimental/packages") ("Japan Pre-Releases (dti.ad.jp)" "ftp.dti.ad.jp" "pub/unix/editor/xemacs/beta/experimental/packages") ("Japan Pre-Releases (jaist.ac.jp)" "ftp.jaist.ac.jp" "pub/GNU/xemacs/beta/experimental/packages") ("Japan Pre-Releases (jp.xemacs.org)" "ftp.jp.xemacs.org" "pub/GNU/xemacs/beta/experimental/packages") ("Japan Pre-Releases (sut.ac.jp)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/xemacs-21.5/experimental/packages") ("New Zealand Pre-Releases (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages") ("Norway Pre-Releases (no.xemacs.org)" "ftp.no.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Poland Pre-Releases (pl.xemacs.org)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/beta/experimental/packages") ("Russia Pre-Releases (ru.xemacs.org)" "ftp.ru.xemacs.org" "pub/xemacs/beta/experimental/packages") ("Saudi Arabia Pre-Releases (sa.xemacs.org)" "ftp.sa.xemacs.org" "pub/mirrors/ftp.xemacs.org/xemacs/xemacs-21.5/experimental/packages") ("Slovakia Pre-Releases (sk.xemacs.org)" "ftp.sk.xemacs.org" "pub/mirrors/xemacs/beta/experimental/packages") ("South Africa Pre-Releases (za.xemacs.org)" "ftp.za.xemacs.org" "mirrorsites/ftp.xemacs.org/beta/experimental/packages") ("Sweden Pre-Releases (se.xemacs.org)" "ftp.se.xemacs.org" "pub/gnu/xemacs/beta/experimental/packages") ("Switzerland Pre-Releases (ch.xemacs.org)" "ftp.ch.xemacs.org" "mirror/xemacs/beta/experimental/packages") ("UK Pre-Releases (uk.xemacs.org)" "ftp.uk.xemacs.org" "sites/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") ("US Pre-Releases (ibiblio.org)" "ibiblio.org" "pub/packages/editors/xemacs/beta/experimental/packages") ("US Pre-Releases (stealth.net)" "ftp.stealth.net" "pub/mirrors/ftp.xemacs.org/pub/xemacs/beta/experimental/packages") ("US Pre-Releases (unc.edu)" "metalab.unc.edu" "pub/packages/editors/xemacs/beta/experimental/packages") ("US Pre-Releases (us.xemacs.org)" "ftp.us.xemacs.org" "pub/xemacs/beta/experimental/packages") ("US Pre-Releases (utk.edu)" "ftp.sunsite.utk.edu" "pub/xemacs/beta/experimental/packages")) "*List of remote sites available for downloading \"Pre-Release\" packages.\nList format is '(site-description site-name directory-on-site).\nSITE-DESCRIPTION is a textual description of the site. SITE-NAME\nis the internet address of the download site. DIRECTORY-ON-SITE\nis the directory on the site in which packages may be found.\nThis variable is used to initialize `package-get-remote', the\nvariable actually used to specify package download sites." :tag "Pre-Release Package download sites" :type '(repeat (list (string :tag "Name") host-name directory)) :group 'package-get)
+
+(defcustom package-get-site-release-download-sites nil "*List of remote sites available for downloading \"Site Release\" packages.\nList format is '(site-description site-name directory-on-site).\nSITE-DESCRIPTION is a textual description of the site. SITE-NAME\nis the internet address of the download site. DIRECTORY-ON-SITE\nis the directory on the site in which packages may be found.\nThis variable is used to initialize `package-get-remote', the\nvariable actually used to specify package download sites." :tag "Site Release Package download sites" :type '(repeat (list (string :tag "Name") host-name directory)) :group 'package-get)
(autoload 'package-get-require-base "package-get" "\
Require that a package-get database has been loaded.
package provides that functionality. Returns the list of packages
required by PACKAGES." nil nil)
+(autoload 'package-get-info "package-get" "\
+Get information about a package.
+
+Quite similar to `package-get-info-prop', but can retrieve a lot more
+information.
+
+Argument PACKAGE is the name of an XEmacs package (a symbol). It must
+be a valid package, ie, a member of `package-get-base'.
+
+Argument INFORMATION is a symbol that can be any one of:
+
+ standards-version Package system version (not used).
+ version Version of the XEmacs package.
+ author-version The upstream version of the package.
+ date The date the package was last modified.
+ build-date The date the package was last built.
+ maintainer The maintainer of the package.
+ distribution Will always be \"xemacs\" (not used).
+ priority \"low\", \"medium\", or \"high\" (not used).
+ category Either \"standard\", \"mule\", or \"unsupported\"..
+ dump Is the package dumped (not used).
+ description A description of the package.
+ filename The filename of the binary tarball of the package.
+ md5sum The md5sum of filename.
+ size The size in bytes of filename.
+ provides A list of symbols that this package provides.
+ requires A list of packages that this package requires.
+ type Can be either \"regular\" or \"single-file\".
+
+If optional argument ARG is non-nil insert INFORMATION into current
+buffer at point. This is very useful for doing things like inserting
+a maintainer's email address into a mail buffer.
+
+If optional argument REMOTE is non-nil use a package list from a
+remote site. For this to work `package-get-remote' must be non-nil.
+
+If this function is called interactively it will display INFORMATION
+in the minibuffer." t nil)
+
+(autoload 'package-get-list-packages-where "package-get" "\
+Return a list of packages that fulfill certain criteria.
+
+Argument ITEM, a symbol, is what you want to check for. ITEM must be a
+symbol even when it doesn't make sense to be a symbol (think, searching
+maintainers, descriptions, etc). The function will convert the symbol
+to a string if a string is what is needed. The downside to this is that
+ITEM can only ever be a single word.
+
+Argument FIELD, a symbol, is the field to check in. You can specify
+any one of:
+
+ Field Sane or Allowable Content
+ description any single word
+ category `standard' or `mule'
+ maintainer any single word
+ build-date yyyy-mm-dd
+ date yyyy-mm-dd
+ type `regular' or `single'
+ requires any package name
+ provides any symbol
+ priority `low', `medium', or `high'
+
+Optional Argument ARG, a prefix arg, insert output at point in the
+current buffer." t nil)
+
(autoload 'package-get "package-get" "\
Fetch PACKAGE from remote site.
Optional arguments VERSION indicates which version to retrieve, nil
The value of `package-get-base' is used to determine what files should
be retrieved. The value of `package-get-remote' is used to determine
-where a package should be retrieved from. The sites are tried in
-order so one is better off listing easily reached sites first.
+where a package should be retrieved from.
Once the package is retrieved, its md5 checksum is computed. If that
sum does not match that stored in `package-get-base' for this version
If FORCE-CURRENT is non-nil make sure the database is up to date. This might
lead to Emacs accessing remote sites." t nil)
-(autoload 'package-get-custom "package-get" "\
-Fetch and install the latest versions of all customized packages." t nil)
-
;;;***
\f
;;;### (autoloads (package-net-update-installed-db package-net-setup-directory) "package-net" "lisp/package-net.el")
;;;***
\f
-;;;### (autoloads (pui-list-packages pui-add-install-directory package-ui-add-site) "package-ui" "lisp/package-ui.el")
+;;;### (autoloads (pui-list-packages pui-set-local-package-get-directory package-ui-site-release-download-menu package-ui-pre-release-download-menu package-ui-download-menu package-ui-add-site) "package-ui" "lisp/package-ui.el")
(autoload 'package-ui-add-site "package-ui" "\
Add site to package-get-remote and possibly offer to update package list." nil nil)
-(autoload 'pui-add-install-directory "package-ui" "\
-Add a new package binary directory to the head of `package-get-remote'.
+(autoload 'package-ui-download-menu "package-ui" "\
+Build the `Add Download Site' menu." nil nil)
+
+(autoload 'package-ui-pre-release-download-menu "package-ui" "\
+Build the 'Pre-Release Download Sites' menu." nil nil)
+
+(autoload 'package-ui-site-release-download-menu "package-ui" "\
+Build the 'Site Release Download Sites' menu." nil nil)
+
+(autoload 'pui-set-local-package-get-directory "package-ui" "\
+Set a new package binary directory in `package-get-remote'.
Note that no provision is made for saving any changes made by this function.
It exists mainly as a convenience for one-time package installations from
disk." t nil)
(setq unreferenced (nreverse unreferenced))
(while unreferenced
(byte-compile-warn
- (format "variable %s bound but not referenced" (car unreferenced)))
+ "variable %s bound but not referenced" (car unreferenced))
(setq unreferenced (cdr unreferenced)))))
\f
;; `defconst' sets `var' unconditionally.
`(setq ,var ,value)
;; `defvar' sets `var' only when unbound.
- `(if (not (boundp ',var)) (setq ,var ,value))))
+ `(if (not (default-boundp ',var)) (set-default ',var ,value))))
`',var))))
(defun byte-compile-autoload (form)
+(defvar packages-hardcoded-lisp
+ '(
+ ;; Nothing at this time
+ )
+ "Lisp packages that are always dumped with XEmacs.
+This includes every package that is loaded directly by a package listed
+in dumped-lisp.el and is not itself listed.")
+
(setq preloaded-file-list
(assemble-list
"backquote" ; needed for defsubst etc.
;(defvar dired-kept-versions 2
; "*When cleaning directory, number of versions to keep.")
-(defcustom delete-old-versions nil
+(defcustom delete-old-versions (when noninteractive 'leave)
"*If t, delete excess backup versions silently.
If nil, ask confirmation. Any other value prevents any trimming."
:type '(choice (const :tag "Delete" t)
(princ object)
(put-nonduplicable-text-property
pos (marker-position standard-output) 'face face buf)))
- (t princ object)))
+ (t (princ object))))
;; replacement for `prin1' that puts the text in the specified face,
;; if possible
(prin1 object)
(put-nonduplicable-text-property
pos (marker-position standard-output) 'face face buf)))
- (t prin1 object)))
+ (t (prin1 object))))
(defvar help-symbol-regexp
(let ((sym-char "[+a-zA-Z0-9_:*]")
(format (cdr (car suff)) file)
(concat (cdr (car suff)) " < " file))))
(message "%s..." command)
- (call-process shell-file-name nil t nil "-c" command)
+ (call-process shell-file-name nil t nil shell-command-switch command)
(message "")
(when visit
(setq buffer-file-name file)
(error "itimer named \"%s\" already existing and activated"
(itimer-name itimer))))
(let ((inhibit-quit t))
+ (if itimer-timer
+ ;; Modify the itimer timeout value as if it were begun
+ ;; at the last time when the itimer driver was woken up.
+ (set-itimer-value
+ itimer
+ (+ (itimer-value itimer)
+ (itimer-time-difference (current-time)
+ itimer-timer-last-wakeup))))
;; add the itimer to the global list
(setq itimer-list (cons itimer itimer-list))
;; If the itimer process is scheduled to wake up too late for
"")))
(t "")))
+(defcustom menu-max-items 25
+ "*Maximum number of items in generated menus.
+If number of entries in such a menu is larger than this value, split menu
+into submenus of nearly equal length (see `menu-submenu-max-items'). If
+nil, never split menu into submenus."
+ :group 'menu
+ :type '(choice (const :tag "no submenus" nil)
+ (integer)))
+
+(defcustom menu-submenu-max-items 20
+ "*Maximum number of items in submenus when splitting menus.
+We split large menus into submenus of this many items, and then balance
+them out as much as possible (otherwise the last submenu may have very few
+items)."
+ :group 'menu
+ :type 'integer)
+
+(defcustom menu-submenu-name-format "%-12.12s ... %.12s"
+ "*Format specification of the submenu name when splitting menus.
+Used by `menu-split-long-menu' if the number of entries in a menu is
+larger than `menu-menu-max-items'.
+This string should contain one %s for the name of the first entry and
+one %s for the name of the last entry in the submenu.
+If the value is a function, it should return the submenu name. The
+function is be called with two arguments, the names of the first and
+the last entry in the menu."
+ :group 'menu
+ :type '(choice (string :tag "Format string")
+ (function)))
+
+(defun menu-split-long-menu (menu)
+ "Split MENU according to `menu-max-items' and add accelerator specs.
+
+You should normally use the idiom
+
+\(menu-split-long-menu (menu-sort-menu menu))
+
+See also `menu-sort-menu'."
+ (let ((len (length menu)))
+ (if (or (null menu-max-items)
+ (<= len menu-max-items))
+ (submenu-generate-accelerator-spec menu)
+ (let* ((outer (/ (+ len (1- menu-submenu-max-items))
+ menu-submenu-max-items))
+ (inner (/ (+ len (1- outer)) outer))
+ (result nil))
+ (while menu
+ (let ((sub nil)
+ (from (car menu)))
+ (dotimes (foo (min inner len))
+ (setq sub (cons (car menu) sub)
+ menu (cdr menu)))
+ (setq len (- len inner))
+ (let ((to (car sub)))
+ (setq sub (nreverse sub))
+ (setq result
+ (cons (cons (if (stringp menu-submenu-name-format)
+ (format menu-submenu-name-format
+ (menu-item-strip-accelerator-spec
+ (aref from 0))
+ (menu-item-strip-accelerator-spec
+ (aref to 0)))
+ (funcall menu-submenu-name-format
+ (menu-item-strip-accelerator-spec
+ (aref from 0))
+ (menu-item-strip-accelerator-spec
+ (aref to 0))))
+ (submenu-generate-accelerator-spec sub))
+ result)))))
+ (submenu-generate-accelerator-spec (nreverse result))))))
+
+(defun menu-sort-menu (menu)
+ "Sort MENU alphabetically.
+
+You should normally use the idiom
+
+\(menu-split-long-menu (menu-sort-menu menu))
+
+See also `menu-split-long-menu'."
+ (sort menu
+ #'(lambda (a b) (string-lessp (aref a 0) (aref b 0)))))
+
+(defun menu-item-search ()
+ "Bring up a search dialog if possible and desired, else do interactive search"
+ (interactive)
+ (if (should-use-dialog-box-p)
+ (make-search-dialog)
+ (isearch-forward)))
+
(defconst default-menubar
; (purecopy-menubar ;purespace is dead
;; note backquote.
["Select %_All" mark-whole-buffer]
["Select Pa%_ge" mark-page]
"----"
- ["%_Find..." make-search-dialog]
+ ["%_Find..." menu-item-search]
["R%_eplace..." query-replace]
["Replace (Rege%_xp)..." query-replace-regexp]
["%_List Matching Lines..." list-matching-lines]
("%_Tools"
("%_Packages"
- ("%_Add Download Site"
- :filter (lambda (&rest junk)
- (submenu-generate-accelerator-spec
- (package-get-download-menu))))
+ ("%_Set Download Site"
+ ("%_Official Releases"
+ :filter (lambda (&rest junk)
+ (menu-split-long-menu
+ (submenu-generate-accelerator-spec
+ (package-ui-download-menu)))))
+ ("%_Pre-Releases"
+ :filter (lambda (&rest junk)
+ (menu-split-long-menu
+ (submenu-generate-accelerator-spec
+ (package-ui-pre-release-download-menu)))))
+ ("%_Site Releases"
+ :filter (lambda (&rest junk)
+ (menu-split-long-menu
+ (submenu-generate-accelerator-spec
+ (package-ui-site-release-download-menu))))))
+ "--:shadowEtchedIn"
["%_Update Package Index" package-get-update-base]
["%_List and Install" pui-list-packages]
["U%_pdate Installed Packages" package-get-update-all]
- ;; hack-o-matic, we can't force a load of package-base here
- ;; since it triggers dialog box interactions which we can't
- ;; deal with while using a menu
- ("Using %_Custom"
- :filter (lambda (&rest junk)
- (if package-get-base
- (submenu-generate-accelerator-spec
- (cdr (custom-menu-create 'packages)))
- '("Please load Package Index"))))
-
["%_Help" (Info-goto-node "(xemacs)Packages")])
("%_Internet"
["Read Mail %_1 (VM)..." vm
=gt-pj-11
=gt-pj-k1
=gt-pj-k2
- =big5-cdp
japanese-jisx0208
=jis-x0208-1990
+ chinese-gb2312
japanese-jisx0212
japanese-jisx0208-1978
- chinese-gb2312
korean-ksc5601
chinese-cns11643-1
chinese-cns11643-2
chinese-cns11643-7
=jis-x0213-1-2000
=jis-x0213-2-2000
+ =big5-cdp
;; chinese-gb12345
chinese-isoir165
katakana-jisx0201
arabic-1-column
arabic-2-column
=gt-pj-1
- chinese-big5-eten-a
- chinese-big5-eten-b
- chinese-big5
=ucs-radicals
- =ucs-radicals@unicode
=ucs-bmp-cjk
- =ucs-bmp-cjk@unicode
=ucs-sip-ext-b
- =ucs-sip-ext-b@iso
=ruimoku-v6
- ideograph-daikanwa-2
- ideograph-daikanwa
=hanziku-1
=hanziku-2
=hanziku-3
=hanziku-10
=hanziku-11
=hanziku-12
+ =ucs-radicals@unicode
+ =ucs-sip-ext-b@iso
+ chinese-big5-eten-a
+ chinese-big5-eten-b
+ chinese-big5
+ =ucs-bmp-cjk@unicode
+ ideograph-daikanwa-2
+ ideograph-daikanwa
=cbeta
ucs-bmp
=jef-china3
"This used to be the name of the user whose init file was read at startup.")
(make-obsolete-variable 'init-file-user 'load-user-init-file-p)
+(define-obsolete-function-alias 'pui-add-install-directory
+ 'pui-set-local-package-get-directory) ; misleading name
;;;;;;;;;;;;;;;;;;;;;;;;;;;; hooks
(make-compatible-variable 'lisp-indent-hook 'lisp-indent-function)
;; Can't make this obsolete. easymenu depends on it.
(make-compatible 'add-menu 'add-submenu)
+(define-obsolete-function-alias 'package-get-download-menu
+ 'package-ui-download-menu)
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;; minibuffer
(define-compatible-function-alias 'read-minibuffer
;;; package-admin.el --- Installation and Maintenance of XEmacs packages
;; Copyright (C) 1997 by Free Software Foundation, Inc.
+;; Copyright (C) 2003, Steve Youngs.
;; Author: SL Baur <steve@xemacs.org>
;; Keywords: internal
hook is called *before* the package is deleted. The hook function is passed
two arguments: the package name, and the install directory.")
-;;;###autoload
-(defun package-admin-add-single-file-package (file destdir &optional pkg-dir)
- "Install a single file Lisp package into XEmacs package hierarchy.
-`file' should be the full path to the lisp file to install.
-`destdir' should be a simple directory name.
-The optional `pkg-dir' can be used to override the default package hierarchy
-\(car \(last late-packages))."
- (interactive "fLisp File: \nsDestination: ")
- (when (null pkg-dir)
- (setq pkg-dir (car (last late-packages))))
- (let ((destination (concat pkg-dir "/lisp/" destdir))
- (buf (get-buffer-create package-admin-temp-buffer)))
- (call-process "add-little-package.sh"
- nil
- buf
- t
- ;; rest of command line follows
- package-admin-xemacs file destination)))
-
(defun package-admin-install-function-mswindows (file pkg-dir buffer)
"Install function for mswindows."
(let ((default-directory (file-name-as-directory pkg-dir)))
;; Don't assume GNU tar.
(if (shell-command (concat "gunzip -c " filename " | tar xvf -") buffer)
0
- 1)
- ))
-
-; (call-process "add-big-package.sh"
-; nil
-; buffer
-; t
-; ;; rest of command line follows
-; package-admin-xemacs file pkg-dir))
-
-(defun package-admin-get-install-dir (package pkg-dir &optional mule-related)
- "If PKG-DIR is non-nil return that,
-else return the current location of the package if it is already installed
-or return a location appropriate for the package otherwise."
- (if pkg-dir
+ 1)))
+
+;; A few things needed by the following 2 functions.
+(eval-when-compile
+ (require 'packages)
+ (autoload 'package-get-info "package-get")
+ (autoload 'paths-decode-directory-path "find-paths")
+ (defvar package-get-install-to-user-init-directory))
+
+(defun package-admin-find-top-directory (type &optional user-dir)
+ "Return the top level directory for a package.
+
+Argument TYPE is a symbol that determines the type of package we're
+trying to find a directory for.
+
+Optional Argument USER-DIR if non-nil use directories off
+`user-init-directory'. This overrides everything except
+\"EMACSPACKAGEPATH\".
+
+This function honours the environment variable \"EMACSPACKAGEPATH\"
+and returns directories found there as a priority. If that variable
+doesn't exist and USER-DIR is nil, check in the normal places.
+
+If we still can't find a suitable directory, return nil.
+
+Possible values for TYPE are:
+
+ std == For \"standard\" packages that go in '/xemacs-packages/'
+ mule == For \"mule\" packages that go in '/mule-packages/'
+ site == For \"unsupported\" packages that go in '/site-packages/'
+
+Note: Type \"site\" is not yet fully supported."
+ (let* ((env-value (getenv "EMACSPACKAGEPATH"))
+ top-dir)
+ ;; First, check the environment var.
+ (if env-value
+ (let ((path-list (paths-decode-directory-path env-value 'drop-empties)))
+ (cond ((eq type 'std)
+ (while path-list
+ (if (equal (substring (car path-list) -16)
+ (concat "xemacs-packages" (char-to-string directory-sep-char)))
+ (setq top-dir (car path-list)))
+ (setq path-list (cdr path-list))))
+ ((eq type 'mule)
+ (while path-list
+ (if (equal (substring (car path-list) -14)
+ (concat "mule-packages" (char-to-string directory-sep-char)))
+ (setq top-dir (car path-list)))
+ (setq path-list (cdr path-list)))))))
+ ;; Wasn't in the environment, try `user-init-directory' if
+ ;; USER-DIR is non-nil.
+ (if (and user-dir
+ (not top-dir))
+ (cond ((eq type 'std)
+ (setq top-dir (file-name-as-directory
+ (expand-file-name "xemacs-packages" user-init-directory))))
+ ((eq type 'mule)
+ (setq top-dir (file-name-as-directory
+ (expand-file-name "mule-packages" user-init-directory))))))
+ ;; Finally check the normal places
+ (if (not top-dir)
+ (let ((path-list (nth 1 (packages-find-packages
+ emacs-roots
+ (packages-compute-package-locations user-init-directory)))))
+ (cond ((eq type 'std)
+ (while path-list
+ (if (equal (substring (car path-list) -16)
+ (concat "xemacs-packages" (char-to-string directory-sep-char)))
+ (setq top-dir (car path-list)))
+ (setq path-list (cdr path-list))))
+ ((eq type 'mule)
+ (while path-list
+ (if (equal (substring (car path-list) -14)
+ (concat "mule-packages" (char-to-string directory-sep-char)))
+ (setq top-dir (car path-list)))
+ (setq path-list (cdr path-list)))))))
+ ;; Now return either the directory or nil.
+ top-dir))
+
+(defun package-admin-get-install-dir (package &optional pkg-dir)
+ "Find a suitable installation directory for a package.
+
+Argument PACKAGE is the package to find a installation directory for.
+Optional Argument PKG-DIR, if non-nil is a directory to use for
+installation.
+
+If PKG-DIR is non-nil and writable, return that. Otherwise check to
+see if the PACKAGE is already installed and return that location, if
+it is writable. Finally, fall back to the `user-init-directory' if
+all else fails. As a side effect of installing packages under
+`user-init-directory' these packages become part of `early-packages'."
+ ;; If pkg-dir specified, return that if writable.
+ (if (and pkg-dir
+ (file-writable-p (directory-file-name pkg-dir)))
pkg-dir
- (let ((package-feature (intern-soft (concat
- (symbol-name package) "-autoloads")))
- autoload-dir)
- (when (and (not (eq package 'unknown))
- (featurep package-feature)
- (setq autoload-dir (feature-file package-feature))
- (setq autoload-dir (file-name-directory autoload-dir))
- (member autoload-dir (append early-package-load-path late-package-load-path)))
- ;; Find the corresponding entry in late-package
- (setq pkg-dir
- (car-safe (member-if (lambda (h)
- (string-match (concat "^" (regexp-quote h))
- autoload-dir))
- (append (cdr early-packages) late-packages)))))
- (if pkg-dir
- pkg-dir
- ;; Ok we need to guess
- (if mule-related
- (package-admin-get-install-dir 'mule-base nil nil)
- (if (eq package 'xemacs-base)
- (car (last late-packages))
- (package-admin-get-install-dir 'xemacs-base nil nil)))))))
-
-
+ ;; If the user want her packages under ~/.xemacs/, do so.
+ (let ((type (package-get-info package 'category)))
+ (if package-get-install-to-user-init-directory
+ (progn
+ (cond ((equal type "standard")
+ (setq pkg-dir (package-admin-find-top-directory 'std 'user-dir)))
+ ((equal type "mule")
+ (setq pkg-dir (package-admin-find-top-directory 'mule 'user-dir))))
+ pkg-dir)
+ ;; Maybe the package has been installed before, if so, return
+ ;; that directory.
+ (let ((package-feature (intern-soft (concat
+ (symbol-name package) "-autoloads")))
+ autoload-dir)
+ (when (and (not (eq package 'unknown))
+ (featurep package-feature)
+ (setq autoload-dir (feature-file package-feature))
+ (setq autoload-dir (file-name-directory autoload-dir))
+ (member autoload-dir (append early-package-load-path late-package-load-path)))
+ ;; Find the corresponding entry in late-package
+ (setq pkg-dir
+ (car-safe (member-if (lambda (h)
+ (string-match (concat "^" (regexp-quote h))
+ autoload-dir))
+ (append (cdr early-packages) late-packages)))))
+ (if (and pkg-dir
+ (file-writable-p (directory-file-name pkg-dir)))
+ pkg-dir
+ ;; OK, the package hasn't been previously installed so we need
+ ;; to guess where it should go.
+ (cond ((equal type "standard")
+ (setq pkg-dir (package-admin-find-top-directory 'std)))
+ ((equal type "mule")
+ (setq pkg-dir (package-admin-find-top-directory 'mule)))
+ (t
+ (error 'invalid-operation
+ "Invalid package type")))
+ (if (and pkg-dir
+ (file-writable-p (directory-file-name pkg-dir)))
+ pkg-dir
+ ;; Oh no! Either we still haven't found a suitable
+ ;; directory, or we can't write to the one we did find.
+ ;; Drop back to the `user-init-directory'.
+ (if (y-or-n-p (format "Directory isn't writable, use %s instead? "
+ user-init-directory))
+ (progn
+ (cond ((equal type "standard")
+ (setq pkg-dir (package-admin-find-top-directory 'std 'user-dir)))
+ ((equal type "mule")
+ (setq pkg-dir (package-admin-find-top-directory 'mule 'user-dir)))
+ (t
+ (error 'invalid-operation
+ "Invalid package type")))
+ ;; Turn on `package-get-install-to-user-init-directory'
+ ;; so we don't get asked for each package we try to
+ ;; install in this session.
+ (setq package-get-install-to-user-init-directory t)
+ pkg-dir)
+ ;; If we get to here XEmacs can't make up its mind and
+ ;; neither can the user, nothing left to do except barf. :-(
+ (error 'search-failed
+ (format
+ "Can't find suitable installation directory for package: %s"
+ package))))))))))
(defun package-admin-get-manifest-file (pkg-topdir package)
"Return the name of the MANIFEST file for package PACKAGE.
Note that PACKAGE is a symbol, and not a string."
- (let (dir)
- (setq dir (expand-file-name "pkginfo" pkg-topdir))
- (expand-file-name (concat "MANIFEST." (symbol-name package)) dir)
- ))
+ (let ((dir (file-name-as-directory
+ (expand-file-name "pkginfo" pkg-topdir))))
+ (expand-file-name (concat "MANIFEST." (symbol-name package)) dir)))
(defun package-admin-check-manifest (pkg-outbuf pkg-topdir)
"Check for a MANIFEST.<package> file in the package distribution.
If it doesn't exist, create and write one.
PKG-OUTBUF is the buffer that holds the output from `tar', and PKG-TOPDIR
is the top-level directory under which the package was installed."
- (let ( (manifest-buf " *pkg-manifest*")
- old-case-fold-search regexp package-name pathname regexps)
- ;; Save and restore the case-fold-search status.
- ;; We do this in case we have to screw with it (as it the case of
- ;; case-insensitive filesystems such as MS Windows).
- (setq old-case-fold-search case-fold-search)
+ (let ((manifest-buf " *pkg-manifest*")
+ (old-case-fold-search case-fold-search)
+ regexp package-name pathname regexps)
(unwind-protect
(save-excursion ;; Probably redundant.
- (set-buffer (get-buffer pkg-outbuf)) ;; Probably already the
- ;; current buffer.
+ (set-buffer (get-buffer pkg-outbuf)) ;; Probably already the current buffer.
(goto-char (point-min))
;; Make filenames case-insensitive, if necessary
(if (eq system-type 'windows-nt)
(setq case-fold-search t))
- ;; We really should compute the regexp.
- ;; However, directory-sep-char is currently broken, but we need
- ;; functional code *NOW*.
- (setq regexp "\\bpkginfo[\\/]MANIFEST\\...*")
+ (setq regexp (concat "\\bpkginfo"
+ (char-to-string directory-sep-char)
+ "MANIFEST\\...*"))
;; Look for the manifest.
(if (not (re-search-forward regexp nil t))
;; Yuk. We weren't passed the package name, and so we have
;; to dig for it. Look for it as the subdirectory name below
- ;; "lisp", "man", "info", or "etc".
+ ;; "lisp", or "man".
;; Here, we don't use a single regexp because we want to search
;; the directories for a package name in a particular order.
- ;; The problem is that packages could have directories like
- ;; "etc/sounds/" or "etc/photos/" and we don't want to get
- ;; these confused with the actual package name (although, in
- ;; the case of "etc/sounds/", it's probably correct).
(if (catch 'done
- (let ( (dirs '("lisp" "info" "man" "etc")) rexp)
+ (let ((dirs '("lisp" "man"))
+ rexp)
(while dirs
(setq rexp (concat "\\b" (car dirs)
"[\\/]\\([^\\/]+\\)[\//]"))
(if (re-search-forward rexp nil t)
(throw 'done t))
- (setq dirs (cdr dirs))
- )))
+ (setq dirs (cdr dirs)))))
(progn
(setq package-name (buffer-substring (match-beginning 1)
(match-end 1)))
(buffer-substring
(match-beginning 1)
(match-end 1)))
- (throw 'found-path t)
- ))
- (setq regexps (cdr regexps))
- )
- )
+ (throw 'found-path t)))
+ (setq regexps (cdr regexps))))
(progn
;; found a pathname -- add it to the manifest
;; buffer
(save-excursion
(set-buffer manifest-buf)
(goto-char (point-max))
- (insert pathname "\n")
- )
- ))
- (forward-line 1)
- )
+ (insert pathname "\n"))))
+ (forward-line 1))
;; Processed all lines.
;; Now, create the file, pkginfo/MANIFEST.<pkgname>
(save-excursion
(set-buffer manifest-buf)
;; Put the files in sorted order
- (sort-lines nil (point-min) (point-max))
+ (if (fboundp 'sort-lines)
+ (sort-lines nil (point-min) (point-max))
+ (warn "`xemacs-base' not installed, MANIFEST.%s not sorted"
+ package-name))
;; Write the file.
;; Note that using `write-region' *BYPASSES* any check
;; to see if XEmacs is currently editing/visiting the
;; file.
- (write-region (point-min) (point-max) pathname)
- )
- (kill-buffer manifest-buf)
- )
- (progn
- ;; We can't determine the package name from an extracted
- ;; file in the tar output buffer.
- ))
- ))
- )
+ (write-region (point-min) (point-max) pathname))
+ (kill-buffer manifest-buf))))))
;; Restore old case-fold-search status
- (setq case-fold-search old-case-fold-search))
- ))
+ (setq case-fold-search old-case-fold-search))))
;;;###autoload
(defun package-admin-add-binary-package (file &optional pkg-dir)
(interactive "fPackage tarball: ")
(let ((buf (get-buffer-create package-admin-temp-buffer))
(status 1)
- start err-list
- )
+ start err-list)
(setq pkg-dir (package-admin-get-install-dir 'unknown pkg-dir))
;; Ensure that the current directory doesn't change
(save-excursion
(if (re-search-forward (car err-list) nil t)
(progn
(setq status 1)
- (throw 'done nil)
- ))
- (setq err-list (cdr err-list))
- )
- )
+ (throw 'done nil)))
+ (setq err-list (cdr err-list))))
;; Make sure that the MANIFEST file exists
- (package-admin-check-manifest buf pkg-dir)
- ))
- )
- status
- ))
+ (package-admin-check-manifest buf pkg-dir))))
+ status))
(defun package-admin-rmtree (directory)
"Delete a directory and all of its contents, recursively.
(setq package-lispdir (expand-file-name (symbol-name package)
package-lispdir))
(file-accessible-directory-p package-lispdir))
- package-lispdir)
- ))
+ package-lispdir)))
(defun package-admin-delete-binary-package (package pkg-topdir)
"Delete a binary installation of PACKAGE below directory PKG-TOPDIR.
PACKAGE is a symbol, not a string."
- (let ( (tmpbuf " *pkg-manifest*") manifest-file package-lispdir dirs file)
+ (let (manifest-file package-lispdir dirs file)
(setq pkg-topdir (package-admin-get-install-dir package pkg-topdir))
(setq manifest-file (package-admin-get-manifest-file pkg-topdir package))
(run-hook-with-args 'package-delete-hook package pkg-topdir)
;; The manifest file exists! Use it to delete the old distribution.
(message "Removing old files for package \"%s\" ..." package)
(sit-for 0)
- (setq tmpbuf (get-buffer-create tmpbuf))
- (with-current-buffer tmpbuf
+ (with-temp-buffer
(buffer-disable-undo)
(erase-buffer)
(insert-file-contents manifest-file)
;; Delete empty directories.
(if dirs
- (let ( (orig-default-directory default-directory)
- ;; directory files file
- )
- ;; Make sure we preserve the existing `default-directory'.
- ;; JV, why does this change the default directory? Does it indeed?
- (unwind-protect
- (progn
- ;; Warning: destructive sort!
- (setq dirs (nreverse (sort dirs 'string<)))
-; ;; For each directory ...
-; (while dirs
-; (setq directory (file-name-as-directory (car dirs)))
-; (setq files (directory-files directory))
-; ;; Delete the directory if it's empty.
-; (if (catch 'done
-; (while files
-; (setq file (car files))
-; (if (and (not (string= file "."))
-; (not (string= file "..")))
-; (throw 'done nil))
-; (setq files (cdr files))
-; )
-; t)
-; (
-; (delete-directory directory))
-; (setq dirs (cdr dirs))
-; )
- ;; JV, On all OS's that I know of delete-directory fails on
- ;; on non-empty dirs anyway
- (mapc
- (lambda (dir)
- (condition-case ()
- (delete-directory dir)))
- dirs))
- (setq default-directory orig-default-directory)
- )))
- )
- (kill-buffer tmpbuf)
+ (progn
+ (mapc
+ (lambda (dir)
+ (condition-case ()
+ (delete-directory dir)))
+ dirs)))
;; Delete the MANIFEST file
;; (set-file-modes manifest-file 438) ;; 438 -> #o666
;; Note. Packages can have MANIFEST in MANIFEST.
(condition-case ()
(delete-file manifest-file)
(error nil)) ;; Do warning?
- (message "Removing old files for package \"%s\" ... done" package))
- ;; The manifest file doesn't exist. Fallback to just deleting the
- ;; package-specific lisp directory, if it exists.
- ;;
- ;; Delete old lisp directory, if any
- ;; Gads, this is ugly. However, we're not supposed to use `concat'
- ;; in the name of portability.
- (when (setq package-lispdir (package-admin-get-lispdir pkg-topdir
- package))
- (message "Removing old lisp directory \"%s\" ..."
- package-lispdir)
- (sit-for 0)
- (package-admin-rmtree package-lispdir)
- (message "Removing old lisp directory \"%s\" ... done"
- package-lispdir)
- ))
+ (message "Removing old files for package \"%s\" ... done" package)))
+ ;; The manifest file doesn't exist. Fallback to just deleting the
+ ;; package-specific lisp directory, if it exists.
+ ;;
+ ;; Delete old lisp directory, if any
+ ;; Gads, this is ugly. However, we're not supposed to use `concat'
+ ;; in the name of portability.
+ (setq package-lispdir (package-admin-get-lispdir pkg-topdir package))
+ (when package-lispdir
+ (message "Removing old lisp directory \"%s\" ..." package-lispdir)
+ (sit-for 0)
+ (package-admin-rmtree package-lispdir)
+ (message "Removing old lisp directory \"%s\" ... done" package-lispdir)))
;; Delete the package from the database of installed packages.
(package-delete-name package)))
;;; package-get.el --- Retrieve XEmacs package
;; Copyright (C) 1998 by Pete Ware
+;; Copyright (C) 2002 Ben Wing.
+;; Copyright (C) 2003, Steve Youngs
;; Author: Pete Ware <ware@cis.ohio-state.edu>
;; Heavy-Modifications: Greg Klanderman <greg@alphatech.com>
;; Jan Vroonhof <vroonhof@math.ethz.ch>
+;; Steve Youngs <youngs@xemacs.org>
;; Keywords: internal
;; This file is part of XEmacs.
:type 'directory
:group 'package-get)
+;;;###autoload
+(defcustom package-get-package-index-file-location
+ (or (getenv "EMACSPACKAGEPATH")
+ user-init-directory)
+ "*The directory where the package-index file can be found."
+ :type 'directory
+ :group 'package-get)
+
+;;;###autoload
+(defcustom package-get-install-to-user-init-directory nil
+ "*If non-nil install packages under `user-init-directory'."
+ :type 'boolean
+ :group 'package-get)
+
(define-widget 'host-name 'string
"A Host name."
:tag "Host")
(defcustom package-get-remote nil
- "*List of remote sites to contact for downloading packages.
-List format is '(site-name directory-on-site). Each site is tried in
-order until the package is found. As a special case, `site-name' can be
-`nil', in which case `directory-on-site' is treated as a local directory."
+ "*The remote site to contact for downloading packages.
+Format is '(site-name directory-on-site). As a special case, `site-name'
+can be `nil', in which case `directory-on-site' is treated as a local
+directory."
:tag "Package repository"
- :type '(repeat (choice (list :tag "Local" (const :tag "Local" nil) directory )
- (list :tag "Remote" host-name directory) ))
+ :type '(set (choice (const :tag "None" nil)
+ (list :tag "Local" (const :tag "Local" nil) directory)
+ (list :tag "Remote" host-name directory)))
:group 'package-get)
;;;###autoload
(defcustom package-get-download-sites
'(
- ;; North America
- ("Pre-Releases" "ftp.xemacs.org" "pub/xemacs/beta/experimental/packages")
- ("xemacs.org" "ftp.xemacs.org" "pub/xemacs/packages")
- ("ca.xemacs.org (Canada)" "ftp.ca.xemacs.org" "pub/Mirror/xemacs/packages")
- ("crc.ca (Canada)" "ftp.crc.ca" "pub/packages/editors/xemacs/packages")
- ("us.xemacs.org (United States)" "ftp.us.xemacs.org" "pub/xemacs/packages")
- ("ibiblio.org (United States)" "ibiblio.org" "pub/packages/editors/xemacs/packages")
- ("stealth.net (United States)" "ftp.stealth.net" "pub/mirrors/ftp.xemacs.org/pub/xemacs/packages")
- ;("uiuc.edu (United States)" "uiarchive.uiuc.edu" "pub/packages/xemacs/packages")
-
- ;; South America
- ("br.xemacs.org (Brazil)" "ftp.br.xemacs.org" "pub/xemacs/packages")
-
- ;; Europe
- ("at.xemacs.org (Austria)" "ftp.at.xemacs.org" "editors/xemacs/packages")
- ("be.xemacs.org (Belgium)" "ftp.be.xemacs.org" "xemacs/packages")
- ("cz.xemacs.org (Czech Republic)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/packages")
- ("dk.xemacs.org (Denmark)" "ftp.dk.xemacs.org" "pub/emacs/xemacs/packages")
- ("fi.xemacs.org (Finland)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/packages")
- ("fr.xemacs.org (France)" "ftp.fr.xemacs.org" "pub/xemacs/packages")
- ("pasteur.fr (France)" "ftp.pasteur.fr" "pub/computing/xemacs/packages")
- ("de.xemacs.org (Germany)" "ftp.de.xemacs.org" "pub/ftp.xemacs.org/tux/xemacs/packages")
- ("tu-darmstadt.de (Germany)" "ftp.tu-darmstadt.de" "pub/editors/xemacs/packages")
- ;("hu.xemacs.org (Hungary)" "ftp.hu.xemacs.org" "pub/packages/xemacs/packages")
- ("ie.xemacs.org (Ireland)" "ftp.ie.xemacs.org" "mirrors/ftp.xemacs.org/pub/xemacs/packages")
- ("it.xemacs.org (Italy)" "ftp.it.xemacs.org" "unix/packages/XEMACS/packages")
- ("no.xemacs.org (Norway)" "ftp.no.xemacs.org" "pub/xemacs/packages")
- ("pl.xemacs.org (Poland)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/packages")
- ("ru.xemacs.org (Russia)" "ftp.ru.xemacs.org" "pub/xemacs/packages")
- ("sk.xemacs.org (Slovakia)" "ftp.sk.xemacs.org" "pub/mirrors/xemacs/packages")
- ("se.xemacs.org (Sweden)" "ftp.se.xemacs.org" "pub/gnu/xemacs/packages")
- ("ch.xemacs.org (Switzerland)" "ftp.ch.xemacs.org" "mirror/xemacs/packages")
- ("uk.xemacs.org (United Kingdom)" "ftp.uk.xemacs.org" "sites/ftp.xemacs.org/pub/xemacs/packages")
-
- ;; Asia
- ("jp.xemacs.org (Japan)" "ftp.jp.xemacs.org" "pub/GNU/xemacs/packages")
- ("aist.go.jp (Japan)" "ring.aist.go.jp" "pub/text/xemacs/packages")
- ("asahi-net.or.jp (Japan)" "ring.asahi-net.or.jp" "pub/text/xemacs/packages")
- ("dti.ad.jp (Japan)" "ftp.dti.ad.jp" "pub/unix/editor/xemacs/packages")
- ("jaist.ac.jp (Japan)" "ftp.jaist.ac.jp" "pub/GNU/xemacs/packages")
- ("nucba.ac.jp (Japan)" "mirror.nucba.ac.jp" "mirror/xemacs/packages")
- ("sut.ac.jp (Japan)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/packages")
- ("kr.xemacs.org (Korea)" "ftp.kr.xemacs.org" "pub/tools/emacs/xemacs/packages")
- ;("tw.xemacs.org (Taiwan)" "ftp.tw.xemacs.org" "Editors/xemacs/packages")
-
- ;; Africa
- ("za.xemacs.org (South Africa)" "ftp.za.xemacs.org" "mirrorsites/ftp.xemacs.org/packages")
-
- ;; Middle East
- ("sa.xemacs.org (Saudi Arabia)" "ftp.sa.xemacs.org" "pub/mirrors/ftp.xemacs.org/xemacs/packages")
-
- ;; Australia
- ("au.xemacs.org (Australia)" "ftp.au.xemacs.org" "pub/xemacs/packages")
- ("aarnet.edu.au (Australia)" "mirror.aarnet.edu.au" "pub/xemacs/packages")
-
- ;; Oceania
- ("nz.xemacs.org (New Zealand)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages")
+ ;; Main XEmacs Site (ftp.xemacs.org)
+ ("US (Main XEmacs Site)"
+ "ftp.xemacs.org" "pub/xemacs/packages")
+ ;; In alphabetical order of Country, our mirrors...
+ ("Australia (aarnet.edu.au)" "mirror.aarnet.edu.au" "pub/xemacs/packages")
+ ("Australia (au.xemacs.org)" "ftp.au.xemacs.org" "pub/xemacs/packages")
+ ("Austria (at.xemacs.org)" "ftp.at.xemacs.org" "editors/xemacs/packages")
+ ("Belgium (be.xemacs.org)" "ftp.be.xemacs.org" "xemacs/packages")
+ ("Brazil (br.xemacs.org)" "ftp.br.xemacs.org" "pub/xemacs/packages")
+ ("Canada (ca.xemacs.org)" "ftp.ca.xemacs.org" "pub/Mirror/xemacs/packages")
+ ("Canada (crc.ca)" "ftp.crc.ca" "pub/packages/editors/xemacs/packages")
+ ("Canada (ualberta.ca)" "sunsite.ualberta.ca" "pub/Mirror/xemacs/packages")
+ ("Czech Republic (cz.xemacs.org)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/packages")
+ ("Denmark (dk.xemacs.org)" "ftp.dk.xemacs.org" "pub/emacs/xemacs/packages")
+ ("Finland (fi.xemacs.org)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/packages")
+ ("France (fr.xemacs.org)" "ftp.fr.xemacs.org" "pub/xemacs/packages")
+ ("France (mirror.cict.fr)" "mirror.cict.fr" "xemacs/packages")
+ ("France (pasteur.fr)" "ftp.pasteur.fr" "pub/computing/xemacs/packages")
+ ("Germany (de.xemacs.org)" "ftp.de.xemacs.org" "pub/ftp.xemacs.org/tux/xemacs/packages")
+ ("Germany (tu-darmstadt.de)" "ftp.tu-darmstadt.de" "pub/editors/xemacs/packages")
+ ("Ireland (ie.xemacs.org)" "ftp.ie.xemacs.org" "mirrors/ftp.xemacs.org/pub/xemacs/packages")
+ ("Italy (it.xemacs.org)" "ftp.it.xemacs.org" "unix/packages/XEMACS/packages")
+ ("Japan (aist.go.jp)" "ring.aist.go.jp" "pub/text/xemacs/packages")
+ ("Japan (asahi-net.or.jp)" "ring.asahi-net.or.jp" "pub/text/xemacs/packages")
+ ("Japan (dti.ad.jp)" "ftp.dti.ad.jp" "pub/unix/editor/xemacs/packages")
+ ("Japan (jaist.ac.jp)" "ftp.jaist.ac.jp" "pub/GNU/xemacs/packages")
+ ("Japan (jp.xemacs.org)" "ftp.jp.xemacs.org" "pub/GNU/xemacs/packages")
+ ("Japan (nucba.ac.jp)" "mirror.nucba.ac.jp" "mirror/xemacs/packages")
+ ("Japan (sut.ac.jp)" "sunsite.sut.ac.jp" "pub/archives/packages/xemacs/packages")
+ ("Korea (kr.xemacs.org)" "ftp.kr.xemacs.org" "pub/tools/emacs/xemacs/packages")
+ ("New Zealand (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages")
+ ("Norway (no.xemacs.org)" "ftp.no.xemacs.org" "pub/xemacs/packages")
+ ("Poland (pl.xemacs.org)" "ftp.pl.xemacs.org" "pub/unix/editors/xemacs/packages")
+ ("Russia (ru.xemacs.org)" "ftp.ru.xemacs.org" "pub/xemacs/packages")
+ ("Slovakia (sk.xemacs.org)" "ftp.sk.xemacs.org" "pub/mirrors/xemacs/packages")
+ ("South Africa (za.xemacs.org)" "ftp.za.xemacs.org" "mirrorsites/ftp.xemacs.org/packages")
+ ("Sweden (se.xemacs.org)" "ftp.se.xemacs.org" "pub/gnu/xemacs/packages")
+ ("Switzerland (ch.xemacs.org)" "ftp.ch.xemacs.org" "mirror/xemacs/packages")
+ ("UK (uk.xemacs.org)" "ftp.uk.xemacs.org" "sites/ftp.xemacs.org/pub/xemacs/packages")
+ ("US (ibiblio.org)" "ibiblio.org" "pub/packages/editors/xemacs/packages")
+ ("US (stealth.net)" "ftp.stealth.net" "pub/mirrors/ftp.xemacs.org/pub/xemacs/packages")
+ ("US (unc.edu)" "metalab.unc.edu" "pub/packages/editors/xemacs/packages")
+ ("US (us.xemacs.org)" "ftp.us.xemacs.org" "pub/xemacs/packages")
+ ("US (utk.edu)" "ftp.sunsite.utk.edu" "pub/xemacs/packages")
)
"*List of remote sites available for downloading packages.
List format is '(site-description site-name directory-on-site).
:type '(repeat (list (string :tag "Name") host-name directory))
:group 'package-get)
+;;;###autoload
+(defcustom package-get-pre-release-download-sites
+ '(
+ ;; Main XEmacs Site (ftp.xemacs.org)
+ ("Pre-Releases (Main XEmacs Site)" "ftp.xemacs.org"
+ "pub/xemacs/beta/experimental/packages")
+ ;; In alphabetical order of Country, our mirrors...
+ ("Australia Pre-Releases (aarnet.edu.au)" "mirror.aarnet.edu.au"
+ "pub/xemacs/beta/experimental/packages")
+ ("Australia Pre-Releases (au.xemacs.org)" "ftp.au.xemacs.org"
+ "pub/xemacs/beta/experimental/packages")
+ ("Austria Pre-Releases (at.xemacs.org)" "ftp.at.xemacs.org"
+ "editors/xemacs/beta/experimentsl/packages")
+ ("Brazil Pre-Releases (br.xemacs.org)" "ftp.br.xemacs.org"
+ "pub/xemacs/xemacs-21.5/experimental/packages")
+ ("Canada Pre-Releases (ca.xemacs.org)" "ftp.ca.xemacs.org"
+ "pub/Mirror/xemacs/beta/experimental/packages")
+ ("Canada Pre-Releases (crc.ca)" "ftp.crc.ca"
+ "pub/packages/editors/xemacs/beta/experimental/packages")
+ ("Canada Pre-Releases (ualberta.ca)" "sunsite.ualberta.ca"
+ "pub/Mirror/xemacs/beta/experimental/packages")
+ ("Czech Republic Pre-Releases (cz.xemacs.org)" "ftp.cz.xemacs.org"
+ "MIRRORS/ftp.xemacs.org/pub/xemacs/xemacs-21.5/experimental/packages")
+ ("Denmark Pre-Releases (dk.xemacs.org)" "ftp.dk.xemacs.org"
+ "pub/emacs/xemacs/beta/experimental/packages")
+ ("Finland Pre-Releases (fi.xemacs.org)" "ftp.fi.xemacs.org"
+ "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/beta/experimental/packages")
+ ("France Pre-Releases (fr.xemacs.org)" "ftp.fr.xemacs.org"
+ "pub/xemacs/beta/experimental/packages")
+ ("France Pre-Releases (mirror.cict.fr)" "mirror.cict.fr"
+ "xemacs/beta/experimental/packages")
+ ("France Pre-Releases (pasteur.fr)" "ftp.pasteur.fr"
+ "pub/computing/xemacs/beta/experimental/packages")
+ ("Germany Pre-Releases (de.xemacs.org)" "ftp.de.xemacs.org"
+ "pub/ftp.xemacs.org/tux/xemacs/beta/experimental/packages")
+ ("Germany Pre-Releases (tu-darmstadt.de)" "ftp.tu-darmstadt.de"
+ "pub/editors/xemacs/beta/experimental/packages")
+ ("Ireland Pre-Releases (ie.xemacs.org)" "ftp.ie.xemacs.org"
+ "mirrors/ftp.xemacs.org/pub/xemacs/beta/experimental/packages")
+ ("Italy Pre-Releases (it.xemacs.org)" "ftp.it.xemacs.org"
+ "unix/packages/XEMACS/beta/experimental/packages")
+ ("Japan Pre-Releases (aist.go.jp)" "ring.aist.go.jp"
+ "pub/text/xemacs/beta/experimental/packages")
+ ("Japan Pre-Releases (asahi-net.or.jp)" "ring.asahi-net.or.jp"
+ "pub/text/xemacs/beta/experimental/packages")
+ ("Japan Pre-Releases (dti.ad.jp)" "ftp.dti.ad.jp"
+ "pub/unix/editor/xemacs/beta/experimental/packages")
+ ("Japan Pre-Releases (jaist.ac.jp)" "ftp.jaist.ac.jp"
+ "pub/GNU/xemacs/beta/experimental/packages")
+ ("Japan Pre-Releases (jp.xemacs.org)" "ftp.jp.xemacs.org"
+ "pub/GNU/xemacs/beta/experimental/packages")
+ ("Japan Pre-Releases (sut.ac.jp)" "sunsite.sut.ac.jp"
+ "pub/archives/packages/xemacs/xemacs-21.5/experimental/packages")
+ ("New Zealand Pre-Releases (nz.xemacs.org)" "ftp.nz.xemacs.org" "mirror/ftp.xemacs.org/packages")
+ ("Norway Pre-Releases (no.xemacs.org)" "ftp.no.xemacs.org"
+ "pub/xemacs/beta/experimental/packages")
+ ("Poland Pre-Releases (pl.xemacs.org)" "ftp.pl.xemacs.org"
+ "pub/unix/editors/xemacs/beta/experimental/packages")
+ ("Russia Pre-Releases (ru.xemacs.org)" "ftp.ru.xemacs.org"
+ "pub/xemacs/beta/experimental/packages")
+ ("Saudi Arabia Pre-Releases (sa.xemacs.org)" "ftp.sa.xemacs.org"
+ "pub/mirrors/ftp.xemacs.org/xemacs/xemacs-21.5/experimental/packages")
+ ("Slovakia Pre-Releases (sk.xemacs.org)" "ftp.sk.xemacs.org"
+ "pub/mirrors/xemacs/beta/experimental/packages")
+ ("South Africa Pre-Releases (za.xemacs.org)" "ftp.za.xemacs.org"
+ "mirrorsites/ftp.xemacs.org/beta/experimental/packages")
+ ("Sweden Pre-Releases (se.xemacs.org)" "ftp.se.xemacs.org"
+ "pub/gnu/xemacs/beta/experimental/packages")
+ ("Switzerland Pre-Releases (ch.xemacs.org)" "ftp.ch.xemacs.org"
+ "mirror/xemacs/beta/experimental/packages")
+ ("UK Pre-Releases (uk.xemacs.org)" "ftp.uk.xemacs.org"
+ "sites/ftp.xemacs.org/pub/xemacs/beta/experimental/packages")
+ ("US Pre-Releases (ibiblio.org)" "ibiblio.org"
+ "pub/packages/editors/xemacs/beta/experimental/packages")
+ ("US Pre-Releases (stealth.net)" "ftp.stealth.net"
+ "pub/mirrors/ftp.xemacs.org/pub/xemacs/beta/experimental/packages")
+ ("US Pre-Releases (unc.edu)" "metalab.unc.edu"
+ "pub/packages/editors/xemacs/beta/experimental/packages")
+ ("US Pre-Releases (us.xemacs.org)" "ftp.us.xemacs.org"
+ "pub/xemacs/beta/experimental/packages")
+ ("US Pre-Releases (utk.edu)" "ftp.sunsite.utk.edu"
+ "pub/xemacs/beta/experimental/packages"))
+ "*List of remote sites available for downloading \"Pre-Release\" packages.
+List format is '(site-description site-name directory-on-site).
+SITE-DESCRIPTION is a textual description of the site. SITE-NAME
+is the internet address of the download site. DIRECTORY-ON-SITE
+is the directory on the site in which packages may be found.
+This variable is used to initialize `package-get-remote', the
+variable actually used to specify package download sites."
+ :tag "Pre-Release Package download sites"
+ :type '(repeat (list (string :tag "Name") host-name directory))
+ :group 'package-get)
+
+;;;###autoload
+(defcustom package-get-site-release-download-sites
+ nil
+ "*List of remote sites available for downloading \"Site Release\" packages.
+List format is '(site-description site-name directory-on-site).
+SITE-DESCRIPTION is a textual description of the site. SITE-NAME
+is the internet address of the download site. DIRECTORY-ON-SITE
+is the directory on the site in which packages may be found.
+This variable is used to initialize `package-get-remote', the
+variable actually used to specify package download sites."
+ :tag "Site Release Package download sites"
+ :type '(repeat (list (string :tag "Name") host-name directory))
+ :group 'package-get)
+
(defcustom package-get-remove-copy t
"*After copying and installing a package, if this is t, then remove the
copy. Otherwise, keep it around."
;; #### it may make sense for this to be a list of names.
;; #### also, should we rename "*base*" to "*index*" or "*db*"?
;; "base" is a pretty poor name.
-(defcustom package-get-base-filename "package-index.LATEST.pgp"
+(defcustom package-get-base-filename "package-index.LATEST.gpg"
"*Name of the default package-get database file.
This may either be a relative path, in which case it is interpreted
with respect to `package-get-remote', or an absolute path."
:type 'file
:group 'package-get)
-(defvar package-get-user-index-filename
- (paths-construct-path (list user-init-directory package-get-base-filename))
- "Name for the user-specific location of the package-get database file.")
-
(defcustom package-get-always-update nil
"*If Non-nil always make sure we are using the latest package index (base).
Otherwise respect the `force-current' argument of `package-get-require-base'."
:type 'boolean
:group 'package-get)
-(defcustom package-get-require-signed-base-updates nil
- "*If set to a non-nil value, require explicit user confirmation for updates
-to the package-get database which cannot have their signature verified via PGP.
-When nil, updates which are not PGP signed are allowed without confirmation."
+(defun package-get-pgp-available-p ()
+ "Checks the availability of Mailcrypt and PGP executable.
+
+Returns t if both are found, nil otherwise. As a side effect, set
+`mc-default-scheme' dependent on the PGP executable found."
+ (let (result)
+ (when (featurep 'mailcrypt-autoloads)
+ (autoload 'mc-setversion "mc-setversion"))
+ (when (fboundp 'mc-setversion)
+ (cond ((locate-file "gpg" exec-path
+ '("" ".btm" ".bat" ".cmd" ".exe" ".com")
+ 'executable)
+ (mc-setversion "gpg")
+ (setq result t))
+ ((locate-file "pgpe" exec-path
+ '("" ".btm" ".bat" ".cmd" ".exe" ".com")
+ 'executable)
+ (mc-setversion "5.0")
+ (setq result t))
+ ((locate-file "pgp" exec-path
+ '("" ".btm" ".bat" ".cmd" ".exe" ".com")
+ 'executable)
+ (mc-setversion "2.6")
+ (setq result t))))
+ (if result
+ result
+ nil)))
+
+(defcustom package-get-require-signed-base-updates (package-get-pgp-available-p)
+ "*If non-nil, try to verify the package index database via PGP.
+
+If nil, no PGP verification is done. If the package index database
+entries are not PGP signed and this variable is non-nil, require user
+confirmation to continue with the package-get procedure.
+
+The default for this variable is the return value of
+`package-get-pgp-available-p', non-nil if both the \"Mailcrypt\"
+package and a suitable PGP executable are available, nil otherwise."
:type 'boolean
:group 'package-get)
-(defvar package-get-was-current nil
- "Non-nil we did our best to fetch a current database.")
+(defvar package-entries-are-signed nil
+ "Non-nil when the package index file has been PGP signed.")
+(defvar package-get-continue-update-base nil
+ "Non-nil update the index even if it hasn't been signed.")
-;Shouldn't this be in package-ui?
-;;;###autoload
-(defun package-get-download-menu ()
- "Build the `Add Download Site' menu."
- (mapcar (lambda (site)
- (vector (car site)
- `(if (member (quote ,(cdr site))
- package-get-remote)
- (setq package-get-remote
- (delete (quote ,(cdr site))
- package-get-remote))
- (package-ui-add-site (quote ,(cdr site))))
- :style 'toggle
- :selected `(member (quote ,(cdr site))
- package-get-remote)))
- package-get-download-sites))
+(defvar package-get-was-current nil
+ "Non-nil we did our best to fetch a current database.")
;;;###autoload
(defun package-get-require-base (&optional force-current)
(package-get-update-base nil force-current))
(if (or (not (boundp 'package-get-base))
(not package-get-base))
- (error "Package-get database not loaded")
+ (error 'void-variable
+ "Package-get database not loaded")
(setq package-get-was-current force-current)))
(defconst package-get-pgp-signed-begin-line "^-----BEGIN PGP SIGNED MESSAGE-----"
(let ((existing (assq (car entry) package-get-base)))
(if existing
(setcdr existing (cdr entry))
- (setq package-get-base (cons entry package-get-base))
- (package-get-custom-add-entry (car entry) (car (cdr entry))))))
+ (setq package-get-base (cons entry package-get-base)))))
(defun package-get-locate-file (file &optional nil-if-not-found no-remote)
"Locate an existing FILE with respect to `package-get-remote'.
If NO-REMOTE is non-nil never search remote locations."
(if (file-name-absolute-p file)
file
- (let ((entries package-get-remote)
+ (let ((site package-get-remote)
(expanded nil))
- (while entries
- (unless (and no-remote (caar entries))
- (let ((expn (package-get-remote-filename (car entries) file)))
+ (when site
+ (unless (and no-remote (caar (list site)))
+ (let ((expn (package-get-remote-filename (car (list site)) file)))
(if (and expn (file-exists-p expn))
- (setq entries nil
- expanded expn))))
- (setq entries (cdr entries)))
+ (setq site nil
+ expanded expn)))))
(or expanded
(and (not nil-if-not-found)
file)))))
(defun package-get-locate-index-file (no-remote)
- "Locate the package-get index file. Do not return remote paths if NO-REMOTE
-is non-nil."
+ "Locate the package-get index file.
+
+Do not return remote paths if NO-REMOTE is non-nil. If the index
+file doesn't exist in `package-get-package-index-file-location', ask
+the user if one should be created using the index file in core as a
+template."
(or (package-get-locate-file package-get-base-filename t no-remote)
- (if (file-exists-p package-get-user-index-filename)
- package-get-user-index-filename)
- (locate-data-file package-get-base-filename)
- (error "Can't locate a package index file.")))
+ (if (file-exists-p (expand-file-name package-get-base-filename
+ package-get-package-index-file-location))
+ (expand-file-name package-get-base-filename
+ package-get-package-index-file-location)
+ (if (y-or-n-p (format "No index file, shall I create one in %s? "
+ package-get-package-index-file-location))
+ (progn
+ (save-excursion
+ (set-buffer
+ (find-file-noselect (expand-file-name
+ package-get-base-filename
+ package-get-package-index-file-location)))
+ (let ((coding-system-for-write 'binary))
+ (erase-buffer)
+ (insert-file-contents-literally
+ (locate-data-file package-get-base-filename))
+ (save-buffer (current-buffer))
+ (kill-buffer (current-buffer))))
+ (expand-file-name package-get-base-filename
+ package-get-package-index-file-location))
+ (error 'search-failed
+ "Can't locate a package index file.")))))
(defun package-get-maybe-save-index (filename)
"Offer to save the current buffer as the local package index file,
(with-temp-buffer
(insert-file-contents-literally location)
(md5 (current-buffer)))))
- (unless (and location (file-writable-p location))
- (setq location package-get-user-index-filename))
+ (when (not (file-writable-p location))
+ (if (y-or-n-p (format "Sorry, %s is read-only, can I use %s? "
+ location user-init-directory))
+ (setq location (expand-file-name
+ package-get-base-filename
+ package-get-package-index-file-location))
+ (error 'file-error
+ (format "%s is read-only" location))))
(when (y-or-n-p (concat "Update package index in " location "? "))
(let ((coding-system-for-write 'binary))
(write-file location)))))))
-
;;;###autoload
(defun package-get-update-base (&optional db-file force-current)
"Update the package-get database file with entries from DB-FILE.
(package-get-locate-index-file
(not force-current)))))
(if (not (file-exists-p db-file))
- (error "Package-get database file `%s' does not exist" db-file))
+ (error 'file-error
+ (format "Package-get database file `%s' does not exist" db-file)))
(if (not (file-readable-p db-file))
- (error "Package-get database file `%s' not readable" db-file))
+ (error 'file-error
+ (format "Package-get database file `%s' not readable" db-file)))
(let ((buf (get-buffer-create "*package database*")))
(unwind-protect
(save-excursion
used interactively, for example from a mail or news buffer."
(interactive)
(setq buf (or buf (current-buffer)))
- (let (content-beg content-end beg end)
+ (let (content-beg content-end)
(save-excursion
(set-buffer buf)
(goto-char (point-min))
(setq content-beg (point))
(setq content-end (save-excursion (goto-char (point-max)) (point)))
(when (re-search-forward package-get-pgp-signed-begin-line nil t)
- (setq beg (match-beginning 0))
(setq content-beg (match-end 0)))
(when (re-search-forward package-get-pgp-signature-begin-line nil t)
- (setq content-end (match-beginning 0)))
- (when (re-search-forward package-get-pgp-signature-end-line nil t)
- (setq end (point)))
- (if (not (and content-beg content-end beg end))
- (or (not package-get-require-signed-base-updates)
- (yes-or-no-p "Package-get entries not PGP signed, continue? ")
- (error "Package-get database not updated")))
- (if (and content-beg content-end beg end)
- (if (not (condition-case nil
- (or (fboundp 'mc-pgp-verify-region)
- (load-library "mc-pgp")
- (fboundp 'mc-pgp-verify-region))
- (error nil)))
- (or (not package-get-require-signed-base-updates)
- (yes-or-no-p
- "No mailcrypt; can't verify package-get DB signature, continue? ")
- (error "Package-get database not updated"))))
- (if (and beg end
- (fboundp 'mc-pgp-verify-region)
- (or (not
- (condition-case err
- (mc-pgp-verify-region beg end)
- (file-error
- (and (string-match "No such file" (nth 2 err))
- (or (not package-get-require-signed-base-updates)
- (yes-or-no-p
- (concat "Can't find PGP, continue without "
- "package-get DB verification? ")))))
- (t nil)))))
- (error "Package-get PGP signature failed to verify"))
+ (setq content-end (match-beginning 0))
+ (setq package-entries-are-signed t))
+ (re-search-forward package-get-pgp-signature-end-line nil t)
+ (setq package-get-continue-update-base t)
+ ;; This is a little overkill because the default value of
+ ;; `package-get-require-signed-base-updates' is the return of
+ ;; `package-get-pgp-available-p', but we have to allow for
+ ;; someone explicitly setting
+ ;; `package-get-require-signed-base-updates' to t. --SY
+ (when (and package-get-require-signed-base-updates
+ (package-get-pgp-available-p))
+ (if package-entries-are-signed
+ (let (good-sig)
+ (setq package-get-continue-update-base nil)
+ (autoload 'mc-verify "mc-toplev")
+ (when (mc-verify)
+ (setq good-sig t))
+ (if good-sig
+ (setq package-get-continue-update-base t)
+ (error 'process-error
+ "GnuPG error. Package database not updated")))
+ (if (yes-or-no-p
+ "Package Index is not PGP signed. Continue anyway? ")
+ (setq package-get-continue-update-base t)
+ (setq package-get-continue-update-base nil)
+ (warn "Package database not updated"))))
;; ToDo: We should call package-get-maybe-save-index on the region
- (package-get-update-base-entries content-beg content-end)
- (message "Updated package-get database"))))
+ (when package-get-continue-update-base
+ (package-get-update-base-entries content-beg content-end)
+ (message "Updated package database")))))
(defun package-get-update-base-entries (start end)
"Update the package-get database with the entries found between
(save-excursion
(goto-char start)
(if (not (re-search-forward "^(package-get-update-base-entry" nil t))
- (error "Buffer does not contain package-get database entries"))
+ (error 'search-failed
+ "Buffer does not contain package-get database entries"))
(beginning-of-line)
(let ((count 0))
(while (and (< (point) end)
(let ((entry (read (current-buffer))))
(if (or (not (consp entry))
(not (eq (car entry) 'package-get-update-base-entry)))
- (error "Invalid package-get database entry found"))
+ (error 'syntax-error
+ "Invalid package-get database entry found"))
(package-get-update-base-entry
(car (cdr (car (cdr entry)))))
(setq count (1+ count))))
'version))
(while (string=
(setq version (read-string "Version: " default-version))
- "")
- )
+ ""))
(if package-symbol
(list package-symbol version)
- (list package version))
- )
+ (list package version)))
(if package-symbol
(list package-symbol)
(list package))))))
(catch 'exit
(mapcar (lambda (pkg)
(if (not (package-get (car pkg) nil 'never))
- (throw 'exit nil) ;; Bail out if error detected
- ))
+ (throw 'exit nil))) ;; Bail out if error detected
packages-package-list))
(package-net-update-installed-db))
package))
(this-package (package-get-info-version
the-package version))
- (this-requires (package-get-info-prop this-package 'requires))
- )
+ (this-requires (package-get-info-prop this-package 'requires)))
(catch 'exit
(setq version (package-get-info-prop this-package 'version))
(unless (package-get-installedp package version)
(reqd-version (cadr reqd-package))
(reqd-name (car reqd-package)))
(if (null reqd-name)
- (error "Unable to find a provider for %s"
- (car this-requires)))
+ (error 'search-failed
+ (format "Unable to find a provider for %s"
+ (car this-requires))))
(if (not (setq fetched-packages
(package-get-all reqd-name reqd-version
fetched-packages
install-dir)))
- (throw 'exit nil)))
- )
- (setq this-requires (cdr this-requires)))
- )
- fetched-packages
- ))
+ (throw 'exit nil))))
+ (setq this-requires (cdr this-requires))))
+ fetched-packages))
;;;###autoload
(defun package-get-dependencies (packages)
(let* ((reqd-package (package-get-package-provider reqd))
(reqd-name (car reqd-package)))
(if (null reqd-name)
- (error "Unable to find a provider for %s" reqd))
+ (error 'search-failed
+ (format "Unable to find a provider for %s" reqd)))
reqd-name))
this-requires)
dependencies))
(progn
;; Add lispdir to load-path if it doesn't already exist.
;; NOTE: this does not take symlinks, etc., into account.
- (if (let ( (dirs load-path) )
+ (if (let ((dirs load-path))
(catch 'done
(while dirs
(if (string-equal (car dirs) lispdir)
(throw 'done nil))
- (setq dirs (cdr dirs))
- )
+ (setq dirs (cdr dirs)))
t))
(setq load-path (cons lispdir load-path)))
(if (not (package-get-load-package-file lispdir "auto-autoloads"))
(package-get-load-package-file lispdir "_pkg"))
t)
- nil)
- ))
+ nil)))
+
+;;;###autoload
+(defun package-get-info (package information &optional arg remote)
+ "Get information about a package.
+
+Quite similar to `package-get-info-prop', but can retrieve a lot more
+information.
+
+Argument PACKAGE is the name of an XEmacs package (a symbol). It must
+be a valid package, ie, a member of `package-get-base'.
+
+Argument INFORMATION is a symbol that can be any one of:
+
+ standards-version Package system version (not used).
+ version Version of the XEmacs package.
+ author-version The upstream version of the package.
+ date The date the package was last modified.
+ build-date The date the package was last built.
+ maintainer The maintainer of the package.
+ distribution Will always be \"xemacs\" (not used).
+ priority \"low\", \"medium\", or \"high\" (not used).
+ category Either \"standard\", \"mule\", or \"unsupported\"..
+ dump Is the package dumped (not used).
+ description A description of the package.
+ filename The filename of the binary tarball of the package.
+ md5sum The md5sum of filename.
+ size The size in bytes of filename.
+ provides A list of symbols that this package provides.
+ requires A list of packages that this package requires.
+ type Can be either \"regular\" or \"single-file\".
+
+If optional argument ARG is non-nil insert INFORMATION into current
+buffer at point. This is very useful for doing things like inserting
+a maintainer's email address into a mail buffer.
+
+If optional argument REMOTE is non-nil use a package list from a
+remote site. For this to work `package-get-remote' must be non-nil.
+
+If this function is called interactively it will display INFORMATION
+in the minibuffer."
+ (interactive "SPackage: \nSInfo: \nP")
+ (if remote
+ (package-get-require-base t)
+ (package-get-require-base nil))
+ (let ((all-pkgs package-get-base)
+ info)
+ (loop until (equal package (caar all-pkgs))
+ do (setq all-pkgs (cdr all-pkgs))
+ do (if (not all-pkgs)
+ (error 'invalid-argument
+ (format "%s is not a valid package" package))))
+ (setq info (plist-get (cadar all-pkgs) information))
+ (if (interactive-p)
+ (if arg
+ (insert (format "%s" info))
+ (if (package-get-key package :version)
+ (message "%s" info)
+ (message "%s (Package: %s is not installed)" info package)))
+ (if arg
+ (insert (format "%s" info))
+ info))))
+
+;;;###autoload
+(defun package-get-list-packages-where (item field &optional arg)
+ "Return a list of packages that fulfill certain criteria.
+
+Argument ITEM, a symbol, is what you want to check for. ITEM must be a
+symbol even when it doesn't make sense to be a symbol \(think, searching
+maintainers, descriptions, etc\). The function will convert the symbol
+to a string if a string is what is needed. The downside to this is that
+ITEM can only ever be a single word.
+
+Argument FIELD, a symbol, is the field to check in. You can specify
+any one of:
+
+ Field Sane or Allowable Content
+ description any single word
+ category `standard' or `mule'
+ maintainer any single word
+ build-date yyyy-mm-dd
+ date yyyy-mm-dd
+ type `regular' or `single'
+ requires any package name
+ provides any symbol
+ priority `low', `medium', or `high'
+
+Optional Argument ARG, a prefix arg, insert output at point in the
+current buffer."
+ (interactive "SList packages that have (item): \nSin their (field): \nP")
+ (package-get-require-base nil)
+ (let ((pkgs package-get-base)
+ (strings '(description category maintainer build-date date))
+ (symbols '(type requires provides priority))
+ results)
+ (cond ((memq field strings)
+ (setq item (symbol-name item))
+ (while pkgs
+ (when (string-match item (package-get-info (caar pkgs) field))
+ (setq results (push (caar pkgs) results)))
+ (setq pkgs (cdr pkgs))))
+ ((memq field symbols)
+ (if (or (eq field 'type)
+ (eq field 'priority))
+ (while pkgs
+ (when (eq item (package-get-info (caar pkgs) field))
+ (setq results (push (caar pkgs) results)))
+ (setq pkgs (cdr pkgs)))
+ (while pkgs
+ (when (memq item (package-get-info (caar pkgs) field))
+ (setq results (push (caar pkgs) results)))
+ (setq pkgs (cdr pkgs)))))
+ (t
+ (error 'wrong-type-argument field)))
+ (if (interactive-p)
+ (if arg
+ (insert (format "%s" results))
+ (message "%s" results)))
+ results))
;;;###autoload
(defun package-get (package &optional version conflict install-dir)
The value of `package-get-base' is used to determine what files should
be retrieved. The value of `package-get-remote' is used to determine
-where a package should be retrieved from. The sites are tried in
-order so one is better off listing easily reached sites first.
+where a package should be retrieved from.
Once the package is retrieved, its md5 checksum is computed. If that
sum does not match that stored in `package-get-base' for this version
package) version))
(latest (package-get-info-prop this-package 'version))
(installed (package-get-key package :version))
- (this-requires (package-get-info-prop this-package 'requires))
(found nil)
- (search-dirs package-get-remote)
+ (search-dir package-get-remote)
(base-filename (package-get-info-prop this-package 'filename))
(package-status t)
filenames full-package-filename)
+ (if (and (equal (package-get-info package 'category) "mule")
+ (not (featurep 'mule)))
+ (error 'invalid-state
+ "Mule packages can't be installed with a non-Mule XEmacs"))
(if (null this-package)
(if package-get-remote
- (error "Couldn't find package %s with version %s"
- package version)
- (error "No download sites or local package locations specified.")))
+ (error 'search-failed
+ (format "Couldn't find package %s with version %s"
+ package version))
+ (error 'syntax-error
+ "No download site or local package location specified.")))
(if (null base-filename)
- (error "No filename associated with package %s, version %s"
- package version))
- (setq install-dir
- (package-admin-get-install-dir package install-dir
- (or (eq package 'mule-base) (memq 'mule-base this-requires))))
+ (error 'syntax-error
+ (format "No filename associated with package %s, version %s"
+ package version)))
+ (setq install-dir (package-admin-get-install-dir package install-dir))
;; If they asked for the latest using version=nil, don't get an older
;; version than we already have.
latest))
(if (not (null version))
(warn "Installing %s package version %s, you had a newer version %s"
- package latest installed)
+ package latest installed)
(warn "Skipping %s package, you have a newer version %s"
- package installed)
+ package installed)
(throw 'skip-update t))))
;; Contrive a list of possible package filenames.
;; and copy it into the staging directory. Then validate
;; the checksum. Finally, install the package.
(catch 'done
- (let (search-filenames current-dir-entry host dir current-filename
- dest-filename)
+ (let (search-filenames host dir current-filename dest-filename)
;; In each search directory ...
- (while search-dirs
- (setq current-dir-entry (car search-dirs)
- host (car current-dir-entry)
- dir (car (cdr current-dir-entry))
- search-filenames filenames
- )
+ (when search-dir
+ (setq host (car search-dir)
+ dir (car (cdr search-dir))
+ search-filenames filenames)
;; Look for one of the possible package filenames ...
(while search-filenames
dest-filename (package-get-staging-dir current-filename))
(cond
;; No host means look on the current system.
- ( (null host)
- (setq full-package-filename
- (substitute-in-file-name
- (expand-file-name current-filename
- (file-name-as-directory dir))))
- )
+ ((null host)
+ (setq full-package-filename
+ (substitute-in-file-name
+ (expand-file-name current-filename
+ (file-name-as-directory dir)))))
;; If it's already on the disk locally, and the size is
- ;; greater than zero ...
- ( (and (file-exists-p dest-filename)
- (let (attrs)
- ;; file-attributes could return -1 for LARGE files,
- ;; but, hopefully, packages won't be that large.
- (and (setq attrs (file-attributes dest-filename))
- (> (nth 7 attrs) 0))))
- (setq full-package-filename dest-filename)
- )
+ ;; correct
+ ((and (file-exists-p dest-filename)
+ (eq (nth 7 (file-attributes dest-filename))
+ (package-get-info package 'size)))
+ (setq full-package-filename dest-filename))
;; If the file exists on the remote system ...
- ( (file-exists-p (package-get-remote-filename
- current-dir-entry current-filename))
- ;; Get it
- (setq full-package-filename dest-filename)
- (message "Retrieving package `%s' ..."
- current-filename)
- (sit-for 0)
- (copy-file (package-get-remote-filename current-dir-entry
- current-filename)
- full-package-filename t)
- )
- )
+ ((file-exists-p (package-get-remote-filename
+ search-dir current-filename))
+ ;; Get it
+ (setq full-package-filename dest-filename)
+ (message "Retrieving package `%s' ..."
+ current-filename)
+ (sit-for 0)
+ (copy-file (package-get-remote-filename search-dir
+ current-filename)
+ full-package-filename t)))
;; If we found it, we're done.
(if (and full-package-filename
(file-exists-p full-package-filename))
(throw 'done nil))
;; Didn't find it. Try the next possible filename.
- (setq search-filenames (cdr search-filenames))
- )
- ;; Try looking in the next possible directory ...
- (setq search-dirs (cdr search-dirs))
- )
- ))
+ (setq search-filenames (cdr search-filenames))))))
(if (or (not full-package-filename)
(not (file-exists-p full-package-filename)))
(if package-get-remote
- (error "Unable to find file %s" base-filename)
- (error
- "No download sites or local package locations specified.")))
+ (error 'search-failed
+ (format "Unable to find file %s" base-filename))
+ (error 'syntax-error
+ "No download sites or local package locations specified.")))
;; Validate the md5 checksum
;; Doing it with XEmacs removes the need for an external md5 program
(message "Validating checksum for `%s'..." package) (sit-for 0)
(if (not (string= (md5 (current-buffer))
(package-get-info-prop this-package
'md5sum)))
- (error "Package %s does not match md5 checksum" base-filename)))
+ (progn
+ (delete-file full-package-filename)
+ (error 'process-error
+ (format "Package %s does not match md5 checksum %s has been deleted"
+ base-filename full-package-filename)))))
(package-admin-delete-binary-package package install-dir)
(progn
(run-hook-with-args 'package-install-hook package install-dir)
(message "Added package `%s'" package)
- (sit-for 0)
- )
+ (sit-for 0))
(progn
;; display message only if there isn't already one.
(if (not (current-message))
(progn
(message "Added package `%s' (errors occurred)"
package)
- (sit-for 0)
- ))
+ (sit-for 0)))
(if package-status
- (setq package-status 'errors))
- ))
- )
+ (setq package-status 'errors)))))
(message "Installation of package %s failed." base-filename)
(sit-for 0)
(switch-to-buffer package-admin-temp-buffer)
- (setq package-status nil)
- ))
+ (delete-file full-package-filename)
+ (setq package-status nil)))
(setq found t))
(if (and found package-get-remove-copy)
(delete-file full-package-filename))
- package-status
- )))
+ package-status)))
(defun package-get-info-find-package (which name)
"Look in WHICH for the package called NAME and return all the info
(package-get-info-version
(package-get-info-find-package package-list package) version) property))
-(defun package-get-set-version-prop (package-list package version
- property value)
- "A utility to make it easier to add a VALUE for a specific PROPERTY
- in this VERSION of a specific PACKAGE kept in the PACKAGE-LIST.
-Returns the modified PACKAGE-LIST. Any missing fields are created."
- )
-
(defun package-get-staging-dir (filename)
"Return a good place to stash FILENAME when it is retrieved.
Use `package-get-dir' for directory to store stuff.
(concat dir "/"))
filename))))
-
(defun package-get-installedp (package version)
"Determine if PACKAGE with VERSION has already been installed.
I'm not sure if I want to do this by searching directories or checking
(equal (plist-get
(package-get-info-find-package packages-package-list
package) ':version)
- (if (floatp version) version (string-to-number version))))
+ (if (floatp version)
+ version
+ (string-to-number version))))
;;;###autoload
(defun package-get-package-provider (sym &optional force-current)
(message "No appropriate package found")))
found))
-;;
-;; customize interfaces.
-;; The group is in this file so that custom loads includes this file.
-;;
-(defgroup packages nil
- "Configure XEmacs packages."
- :group 'emacs)
-
-;;;###autoload
-(defun package-get-custom ()
- "Fetch and install the latest versions of all customized packages."
- (interactive)
- (package-get-require-base t)
- (mapcar (lambda (pkg)
- (if (eval (intern (concat (symbol-name (car pkg)) "-package")))
- (package-get (car pkg) nil))
- t)
- package-get-base)
- (package-net-update-installed-db))
-
(defun package-get-ever-installed-p (pkg &optional notused)
(string-match "-package$" (symbol-name pkg))
(custom-initialize-set
(intern (substring (symbol-name pkg) 0 (match-beginning 0))))
t)))
-(defvar package-get-custom-groups nil
- "List of package-get-custom groups")
-
-(defun package-get-custom-add-entry (package props)
- (let* ((category (plist-get props 'category))
- (group (intern (concat category "-packages")))
- (custom-var (intern (concat (symbol-name package) "-package")))
- (description (plist-get props 'description)))
- (when (not (memq group package-get-custom-groups))
- (setq package-get-custom-groups (cons group
- package-get-custom-groups))
- (eval `(defgroup ,group nil
- ,(concat category " package group")
- :group 'packages)))
- (eval `(defcustom ,custom-var nil
- ,description
- :group ',group
- :initialize 'package-get-ever-installed-p
- :type 'boolean))))
-
-
(provide 'package-get)
;;; package-get.el ends here
maintainer -- The package maintainer.
category -- The build category."
(unless noninteractive
- (error "`batch-update-package-info' is to be used only with -batch"))
+ (error 'invalid-operation
+ "`batch-update-package-info' is to be used only with -batch"))
(let ((version (nth 0 command-line-args-left))
(filename (nth 1 command-line-args-left))
(requires (nth 2 command-line-args-left))
(defun package-net-batch-generate-bin-ini ()
"Convert the package index to ini file format."
(unless noninteractive
- (error "`package-net-batch-generate-bin-ini' is to be used only with -batch"))
+ (error 'invalid-operation
+ "`package-net-batch-generate-bin-ini' is to be used only with -batch"))
(package-net-generate-bin-ini package-net-setup-version))
;;;###autoload
:group 'pui
:type 'face)
-
-
-
-(defvar pui-info-buffer "*Packages*"
- "Buffer to use for displaying package information.")
+(defcustom pui-info-buffer "*Packages*"
+ "*Buffer to use for displaying package information."
+ :group 'pui
+ :type 'string)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; End of user-changeable variables.
(define-key m "q" 'pui-quit)
(define-key m "g" 'pui-list-packages)
(define-key m "i" 'pui-display-info)
+ (define-key m "m" 'pui-display-maintainer)
(define-key m "?" 'describe-mode)
(define-key m "v" 'pui-toggle-verbosity-redisplay)
(define-key m "d" 'pui-toggle-package-delete-key)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Configuration routines
-(defun pui-directory-exists (dir)
- "Check to see if DIR exists in `package-get-remote'."
- (let (found)
- (mapcar #'(lambda (item)
- (if (and (null (car item))
- (string-equal (file-name-as-directory (car (cdr item)))
- (file-name-as-directory dir)))
- (setq found t)))
- package-get-remote)
- found
- ))
-
-(defun pui-package-dir-list (buffer)
- "In BUFFER, format the list of package binary paths."
- (let ( (count 1) paths sys dir)
- (set-buffer buffer)
- (buffer-disable-undo buffer)
- (erase-buffer buffer)
- (insert "Existing package binary paths:\n\n")
- (setq paths package-get-remote)
- (while paths
- (setq sys (car (car paths))
- dir (car (cdr (car paths))))
- (insert (format "%2s. " count))
- (if (null sys)
- (insert dir)
- (insert sys ":" dir))
- (insert "\n")
- (setq count (1+ count))
- (setq paths (cdr paths))
- )
- (insert "\nThese are the places that will be searched for package binaries.\n")
- (goto-char (point-min))
- ))
-
;;;###autoload
(defun package-ui-add-site (site)
"Add site to package-get-remote and possibly offer to update package list."
(let ((had-none (null package-get-remote)))
- (push site package-get-remote)
+ (setq package-get-remote site)
(when (and had-none package-get-was-current
(y-or-n-p "Update Package list?"))
(setq package-get-was-current nil)
(save-window-excursion
(pui-list-packages))))
(set-menubar-dirty-flag)))
-
;;;###autoload
-(defun pui-add-install-directory (dir)
- "Add a new package binary directory to the head of `package-get-remote'.
+(defun package-ui-download-menu ()
+ "Build the `Add Download Site' menu."
+ (mapcar (lambda (site)
+ (vector (car site)
+ `(if (equal package-get-remote (quote ,(cdr site)))
+ (setq package-get-remote nil)
+ (package-ui-add-site (quote ,(cdr site))))
+ ;; I've used radio buttons so that only a single
+ ;; site can be selected, but they are in fact
+ ;; toggles. SY.
+ :style 'radio
+ :selected `(equal package-get-remote (quote ,(cdr site)))))
+ package-get-download-sites))
+
+;;;###autoload
+(defun package-ui-pre-release-download-menu ()
+ "Build the 'Pre-Release Download Sites' menu."
+ (mapcar (lambda (site)
+ (vector (car site)
+ `(if (equal package-get-remote (quote ,(cdr site)))
+ (setq package-get-remote nil)
+ (package-ui-add-site (quote ,(cdr site))))
+ ;; I've used radio buttons so that only a single
+ ;; site can be selected, but they are in fact
+ ;; toggles. SY.
+ :style 'radio
+ :selected `(equal package-get-remote (quote ,(cdr site)))))
+ package-get-pre-release-download-sites))
+
+;;;###autoload
+(defun package-ui-site-release-download-menu ()
+ "Build the 'Site Release Download Sites' menu."
+ (mapcar (lambda (site)
+ (vector (car site)
+ `(if (equal package-get-remote (quote ,(cdr site)))
+ (setq package-get-remote nil)
+ (package-ui-add-site (quote ,(cdr site))))
+ ;; I've used radio buttons so that only a single
+ ;; site can be selected, but they are in fact
+ ;; toggles. SY.
+ :style 'radio
+ :selected `(equal package-get-remote (quote ,(cdr site)))))
+ package-get-site-release-download-sites))
+
+;;;###autoload
+(defun pui-set-local-package-get-directory ()
+ "Set a new package binary directory in `package-get-remote'.
Note that no provision is made for saving any changes made by this function.
It exists mainly as a convenience for one-time package installations from
disk."
- (interactive (let ( (tmpbuf (get-buffer-create
- "*Existing Package Binary Paths*"))
- dir)
- (save-window-excursion
- (save-excursion
- (unwind-protect
- (progn
- (pui-package-dir-list tmpbuf)
- (display-buffer tmpbuf)
- (setq dir (read-directory-name
- "New package binary directory to add? "
- nil nil t))
- )
- (kill-buffer tmpbuf)
- )))
- (list dir)
- ))
- (progn
- (if (not (pui-directory-exists dir))
- (progn
- (setq package-get-remote (cons (list nil dir) package-get-remote))
- (message "Package directory \"%s\" added." dir)
- )
- (message "Directory \"%s\" already exists in `package-get-remote'." dir))
- ))
+ (interactive)
+ (let ((dir (read-directory-name
+ "New package binary directory to add? "
+ nil nil t)))
+ (setq package-get-remote (list nil dir))
+ (message "Package directory \"%s\" added." dir)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Package list/installer routines
version))
(list " " pui-up-to-date-package-face)
(list "*" pui-outdated-package-face)))
- (list "-" pui-uninstalled-package-face))
- ))
+ (list "-" pui-uninstalled-package-face))))
(defun pui-update-package-display (extent &optional pkg-sym version)
"Update the package status for EXTENT.
(goto-char (extent-start-position extent))
(delete-char 1)
(insert sym-char)
- (set-buffer-modified-p nil)
- )
- ))
+ (set-buffer-modified-p nil))))
(defun pui-toggle-package (extent)
(let (pkg-sym)
(cons pkg-sym pui-selected-packages))
(setq pui-deleted-packages
(delete pkg-sym pui-deleted-packages)))
- (pui-update-package-display extent pkg-sym)
- ))
+ (pui-update-package-display extent pkg-sym)))
(defun pui-toggle-package-key ()
"Select/unselect package for installation, using the keyboard."
(if (setq extent (extent-at (point) (current-buffer) 'pui))
(progn
(pui-toggle-package extent)
- (forward-line 1)
- )
- (error "No package under cursor!"))
- ))
+ (forward-line 1))
+ (error 'invalid-operation
+ "No package under cursor!"))))
(defun pui-toggle-package-delete (extent)
(let (pkg-sym)
(cons pkg-sym pui-deleted-packages))
(setq pui-selected-packages
(delete pkg-sym pui-selected-packages)))
- (pui-update-package-display extent pkg-sym)
- ))
+ (pui-update-package-display extent pkg-sym)))
(defun pui-toggle-package-delete-key ()
(if (setq extent (extent-at (point) (current-buffer) 'pui))
(progn
(pui-toggle-package-delete extent)
- (forward-line 1)
- )
- (error "No package under cursor!"))
- ))
+ (forward-line 1))
+ (error 'invalid-operation
+ "No package under cursor!"))))
(defun pui-current-package ()
(let ((extent (extent-at (point) (current-buffer) 'pui)))
(defun pui-toggle-package-event (event)
"Select/unselect package for installation, using the mouse."
(interactive "e")
- (let* ( (ep (event-point event))
- (buffer (window-buffer (event-window event)))
- (extent (extent-at ep buffer 'pui-package))
- )
- (pui-toggle-package extent)
- ))
+ (let* ((ep (event-point event))
+ (buffer (window-buffer (event-window event)))
+ (extent (extent-at ep buffer 'pui-package)))
+ (pui-toggle-package extent)))
(defun pui-toggle-verbosity-redisplay ()
"Toggle verbose package info."
(interactive)
(progn
(setq pui-list-verbose (not pui-list-verbose))
- (pui-list-packages)
- ))
+ (pui-list-packages)))
(defun pui-install-selected-packages ()
"Install selected packages."
(interactive)
- (let ( (tmpbuf "*Packages-To-Remove*") do-delete)
+ (let ((tmpbuf "*Packages-To-Remove*")
+ do-delete)
(when pui-deleted-packages
(save-window-excursion
(with-output-to-temp-buffer tmpbuf
#'string<)
:activate-callback nil
:help-string "Packages selected for removal:\n"
- :completion-string t
- ))
+ :completion-string t))
(setq tmpbuf (get-buffer-create tmpbuf))
(display-buffer tmpbuf)
(setq do-delete (yes-or-no-p "Remove these packages? "))
(message "Deleting selected packages ...") (sit-for 0)
(mapcar (lambda (pkg)
(package-admin-delete-binary-package
- pkg (package-admin-get-install-dir pkg nil)))
+ pkg (package-admin-get-install-dir pkg)))
(nreverse pui-deleted-packages))
(message "Packages deleted"))))
- (let ( (tmpbuf "*Packages-To-Install*") do-install)
+ (let ((tmpbuf "*Packages-To-Install*")
+ do-install)
(if pui-selected-packages
(progn
;; Don't change window config when asking the user if he really
(sort (mapcar #'symbol-name pui-selected-packages) #'string<)
:activate-callback nil
:help-string "Packages selected for installation:\n"
- :completion-string t
- ))
+ :completion-string t))
(setq tmpbuf (get-buffer-create tmpbuf))
(display-buffer tmpbuf)
(setq do-install (y-or-n-p "Install these packages? "))
- (kill-buffer tmpbuf)
- )
+ (kill-buffer tmpbuf))
(if do-install
(progn
(save-excursion
;; Clear old temp buffer history
(set-buffer (get-buffer-create package-admin-temp-buffer))
(buffer-disable-undo package-admin-temp-buffer)
- (erase-buffer package-admin-temp-buffer)
- )
+ (erase-buffer package-admin-temp-buffer))
(message "Installing selected packages ...") (sit-for 0)
(if (catch 'done
(mapcar (lambda (pkg)
t)
(progn
(pui-list-packages)
- (message "Packages installed")
- ))
- )
- (clear-message)
- )
- )
+ (message "Packages installed"))))
+ (clear-message)))
(if pui-deleted-packages
(pui-list-packages)
- (error "No packages have been selected!")))
+ (error 'invalid-operation
+ "No packages have been selected!")))
;; sync with windows type systems
- (package-net-update-installed-db)
- ))
+ (package-net-update-installed-db)))
(defun pui-add-required-packages ()
"Select packages required by those already selected for installation."
nil nil nil nil nil 'pui)
(message "added dependencies"))
(clear-message)))
- (error "No packages have been selected!"))))
+ (error 'invalid-operation
+ "No packages have been selected!"))))
(defun pui-help-echo (extent &optional force-update)
"Display additional package info in the modeline.
EXTENT determines the package to display (the package information is
attached to the extent as properties)."
- (let (pkg-sym info inst-ver auth-ver date maintainer balloon req)
+ (let (pkg-sym info inst-ver inst-auth-ver auth-ver date maintainer balloon req)
(if (or force-update (not (current-message))
- (string-match ".*: .*: " (current-message))
- )
+ (string-match ".*: .*: " (current-message)))
(progn
(setq pkg-sym (extent-property extent 'pui-package)
info (extent-property extent 'pui-info)
inst-ver (package-get-key pkg-sym :version)
+ inst-auth-ver (package-get-key pkg-sym :author-version)
auth-ver (package-get-info-prop info 'author-version)
date (package-get-info-prop info 'date)
maintainer (package-get-info-prop info 'maintainer)
(setq balloon (format "
Package Information: [For package: \"%s\"]
================
-Installed Version : %.2f
-Author Version : %s
-Maintainer: %s
-Released: %s
+Installed Upstream Ver: %s Available Upstream Ver: %s
+Maintainer : %s
+Released : %s
Required Packages : %s\n\n"
- pkg-sym inst-ver auth-ver maintainer
+ pkg-sym inst-auth-ver auth-ver maintainer
date req))
(set-extent-property extent 'balloon-help balloon)))
- (if pui-list-verbose
- (format
- "Inst V: %.2f Auth V: %s Maint: %s"
- inst-ver auth-ver maintainer)
- (format "%.2f : %s : %s"
- inst-ver auth-ver maintainer))
- ))
- ))
+ (format
+ "Installed upstream ver: %s Available upstream ver: %s"
+ inst-auth-ver auth-ver)))))
(defun pui-display-info (&optional no-error event)
"Display additional package info in the modeline.
(message (pui-help-echo extent t))
(if no-error
(clear-message nil)
- (error "No package under cursor!")))
- )))
+ (error 'invalid-operation
+ "No package under cursor!"))))))
+
+(defun pui-display-maintainer (&optional no-error event)
+ "Display a package's maintainer in the minibuffer."
+ (interactive)
+ (let (extent pkg-sym info maintainer)
+ (save-excursion
+ (beginning-of-line)
+ (if (setq extent (extent-at (point) (current-buffer) 'pui))
+ (progn
+ (setq pkg-sym (extent-property extent 'pui-package)
+ info (extent-property extent 'pui-info)
+ maintainer (package-get-info-prop info 'maintainer))
+ (message (format "Maintainer: %s" maintainer)))
+ (if no-error
+ (clear-message nil)
+ (error 'invalid-operation
+ "No package under cursor!"))))))
(defvar pui-menu
'("Packages"
`\\[pui-add-required-packages]' to add any packages required by those selected.
`\\[pui-install-selected-packages]' to install/delete selected packages.
`\\[pui-display-info]' to display additional information about the package in the modeline.
+ `\\[pui-display-maintainer]' to display the package's maintainer in the minibuffer
`\\[pui-list-packages]' to refresh the package list.
`\\[pui-toggle-verbosity-redisplay]' to toggle between a verbose and non-verbose display.
`\\[pui-quit]' to kill this buffer.
"
- (error "You cannot enter this mode directly. Use `pui-list-packages'"))
+ (error 'invalid-operation
+ "You cannot enter this mode directly. Use `pui-list-packages'"))
(put 'list-packages-mode 'mode-class 'special)
select packages for installation via the keyboard or mouse."
(interactive)
(package-get-require-base t)
- (let ( (outbuf (get-buffer-create pui-info-buffer))
- (sep-string "===============================================================================\n")
- start )
+ (let ((outbuf (get-buffer-create pui-info-buffer))
+ (sep-string "===============================================================================\n")
+ start)
(message "Creating package list ...") (sit-for 0)
(set-buffer outbuf)
(setq buffer-read-only nil)
(progn
(setq current-vers (package-get-key pkg-sym :version))
(cond
- ( (not current-vers)
- (setq current-vers "-----") )
- ( (stringp current-vers)
- (setq current-vers
- (format "%.2f"
- (string-to-number current-vers))) )
- ( (numberp current-vers)
- (setq current-vers (format "%.2f" current-vers)) )
- )
+ ((not current-vers)
+ (setq current-vers "-----"))
+ ((stringp current-vers)
+ (setq current-vers
+ (format "%.2f"
+ (string-to-number current-vers))))
+ ((numberp current-vers)
+ (setq current-vers (format "%.2f" current-vers))))
(insert
(format "%s %-15s %-5.2f %-5s %s\n"
(car disp) pkg-sym
(if (stringp version)
(string-to-number version)
version)
- current-vers desc))
- ;; (insert
- ;; (format "\t\t %-12s %s\n"
- ;; (package-get-info-prop info 'author-version)
- ;; (package-get-info-prop info 'date)))
- )
+ current-vers desc)))
(insert (format "%s %-15s %-5s %s\n"
(car disp)
pkg-sym version desc)))
(set-extent-property extent 'pui-package pkg-sym)
(set-extent-property extent 'pui-info info)
(set-extent-property extent 'help-echo 'pui-help-echo)
- (set-extent-property extent 'keymap pui-package-keymap)
- ))
+ (set-extent-property extent 'keymap pui-package-keymap)))
(sort (copy-sequence package-get-base)
#'(lambda (a b)
(string< (symbol-name (car a))
(set-buffer-menubar current-menubar)
(add-submenu '() pui-menu)
(setq mode-popup-menu pui-menu))
- (clear-message)
- ;; (message (substitute-command-keys "Press `\\[pui-help]' for help."))
- ))
+ (clear-message)))
;;;###autoload
(defalias 'list-packages 'pui-list-packages)
;;; packages.el --- Low level support for XEmacs packages
;; Copyright (C) 1997 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003 Ben Wing.
;; Author: Steven L Baur <steve@xemacs.org>
;; Maintainer: Steven L Baur <steve@xemacs.org>
The third component is a thunk which, if it returns NIL, causes
the directory to be ignored."
(list
+ (list (paths-construct-path (list user-init-directory "site-packages"))
+ 'early #'(lambda () t))
+ (list (paths-construct-path (list user-init-directory "infodock-packages"))
+ 'early #'(lambda () (featurep 'infodock)))
(list (paths-construct-path (list user-init-directory "mule-packages"))
'early #'(lambda () (featurep 'mule)))
(list (paths-construct-path (list user-init-directory "xemacs-packages"))
(defun package-require (name version)
(let ((pkg (assq name packages-package-list)))
(cond ((null pkg)
- (error "Package %s has not been loaded into this XEmacsen"
- name))
+ (error 'invalid-state
+ (format "Package %s has not been loaded into this XEmacsen"
+ name)))
((< (package-get-key name :version) version)
- (error "Need version %g of package %s, got version %g"
- version name (cdr pkg)))
+ (error 'search-failed
+ (format "Need version %g of package %s, got version %g"
+ version name (cdr pkg))))
(t t))))
(defun package-delete-name (name)
;; one.
(while (setq pkg (assq name packages-package-list))
(setq packages-package-list (delete pkg (copy-alist
- packages-package-list)))
- )
- ))
+ packages-package-list))))))
;;; Build time stuff
(defvar autoload-file-name "auto-autoloads.el"
"Filename that autoloads are expected to be found in.")
-(defvar packages-hardcoded-lisp
- '(
- ;; Nothing at this time
- )
- "Lisp packages that are always dumped with XEmacs.
-This includes every package that is loaded directly by a package listed
-in dumped-lisp.el and is not itself listed.")
-
-(defvar packages-useful-lisp
- '("bytecomp"
- "byte-optimize"
- "shadow"
- "cl-macs")
- "Lisp packages that need early byte compilation.")
-
-(defvar packages-unbytecompiled-lisp
- '("paths.el"
- "dumped-lisp.el"
- "dumped-pkg-lisp.el"
- "version.el"
- "very-early-lisp.el")
- "Lisp packages that should not be byte compiled.")
-
-
-;; Copied from help.el, could possibly move it to here permanently.
+;; Moved from help.el.
;; Unlike the FSF version, our `locate-library' uses the `locate-file'
;; primitive, which should make it lightning-fast.
;; make sure paths-find-version-directory and paths-find-site-directory
;; don't both pick up version-independent directories ...
(let ((version-directory (paths-find-version-directory roots base nil nil t))
- (site-directory (paths-find-site-directory roots base nil nil t)))
+ (site-directory (paths-find-site-directory roots base)))
(paths-uniq-append
(and version-directory (list version-directory))
(and site-directory (list site-directory)))))
;;; specifier.el --- Lisp interface to specifiers
-;; Copyright (C) 1997 Free Software Foundation, Inc.
-;; Copyright (C) 1995, 1996, 2000 Ben Wing.
+;; Copyright (C) 1997, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 2000, 2002 Ben Wing.
;; Author: Ben Wing <ben@xemacs.org>
;; Keywords: internal, dumped
;;; Code:
(defun make-specifier-and-init (type spec-list &optional dont-canonicalize)
- "Create and initialize a new specifier.
-
-This is a front-end onto `make-specifier' that allows you to create a
-specifier and add specs to it at the same time. TYPE specifies the
-specifier type. SPEC-LIST supplies the specification(s) to be added
-to the specifier. Normally, almost any reasonable abbreviation of the
-full spec-list form is accepted, and is converted to the full form;
-however, if optional argument DONT-CANONICALIZE is non-nil, this
-conversion is not performed, and the SPEC-LIST must already be in full
-form. See `canonicalize-spec-list'."
+ "Create and initialize a specifier of type TYPE with spec(s) SPEC-LIST.
+
+A convenience API combining `make-specifier' and `set-specifier', allowing you
+to create a specifier and add specs to it at the same time.
+TYPE specifies the specifier type. See `make-specifier' for known types.
+SPEC-LIST supplies the specification(s) to be added to the specifier, in any
+ form acceptable to `canonicalize-spec-list'.
+Optional DONT-CANONICALIZE, if non-nil, inhibits the conversion, and the
+ SPEC-LIST must already be in full form."
(let ((sp (make-specifier type)))
(if (not dont-canonicalize)
(setq spec-list (canonicalize-spec-list spec-list type)))
(defun map-specifier (ms-specifier ms-func &optional ms-locale ms-maparg)
"Apply MS-FUNC to the specification(s) for MS-LOCALE in MS-SPECIFIER.
-If MS-LOCALE is a locale, MS-FUNC will be called for that locale.
-If MS-LOCALE is a locale type, MS-FUNC will be mapped over all locales
-of that type. If MS-LOCALE is 'all or nil, MS-FUNC will be mapped
-over all locales in MS-SPECIFIER.
+If optional MS-LOCALE is a locale, MS-FUNC will be called for that locale.
+If MS-LOCALE is a locale type, MS-FUNC will be mapped over all locales of that
+type. If MS-LOCALE is 'all or nil, MS-FUNC will be mapped over all locales in
+MS-SPECIFIER.
+
+Optional MS-MAPARG will be passed to MS-FUNC.
MS-FUNC is called with four arguments: the MS-SPECIFIER, the locale
being mapped over, the inst-list for that locale, and the
(defun canonicalize-inst-pair (inst-pair specifier-type &optional noerror)
"Canonicalize the given INST-PAIR.
-SPECIFIER-TYPE specifies the type of specifier that this SPEC-LIST
+SPECIFIER-TYPE specifies the type of specifier that this INST-PAIR
will be used for.
Canonicalizing means converting to the full form for an inst-pair, i.e.
(defun canonicalize-spec (spec specifier-type &optional noerror)
"Canonicalize the given SPEC (a specification).
-SPECIFIER-TYPE specifies the type of specifier that this SPEC-LIST
-will be used for.
+SPECIFIER-TYPE is the type of specifier that this SPEC will be used for.
Canonicalizing means converting to the full form for a spec, i.e.
`(LOCALE (TAG-SET . INSTANTIATOR) ...)'. This function accepts a
accepted by `set-specifier' and such into a form suitable for
`add-spec-list-to-specifier'.
-This function tries extremely hard to resolve any ambiguities,
-and the built-in specifier types (font, image, toolbar, etc.) are
-designed so that there won't be any ambiguities.
+The canonicalization algorithm is as follows:
+
+1. Attempt to parse SPEC-LIST as a single, possibly abbreviated, specification.
+2. If (1) fails, attempt to parse SPEC-LIST as a list of (abbreviated)
+ specifications.
+3. If (2) fails, SPEC-LIST is invalid.
+
+A possibly abbreviated specification SPEC is parsed by
+
+1. Attempt to parse SPEC as a possibly abbreviated inst-list.
+2. If (1) fails, attempt to parse SPEC as a cons of a locale and an
+ (abbreviated) inst-list.
+3. If (2) fails, SPEC is invalid.
+
+A possibly abbreviated inst-list INST-LIST is parsed by
+
+1. Attempt to parse INST-LIST as a possibly abbreviated inst-pair.
+2. If (1) fails, attempt to parse INST-LIST as a list of (abbreviated)
+ inst-pairs.
+3. If (2) fails, INST-LIST is invalid.
+
+A possibly abbreviated inst-pair INST-PAIR is parsed by
+
+1. Check if INST-PAIR is `valid-instantiator-p'.
+2. If not, check if INST-PAIR is a cons of something that is a tag, ie,
+ `valid-specifier-tag-p', and something that is `valid-instantiator-p'.
+3. If not, check if INST-PAIR is a cons of a list of tags and something that
+ is `valid-instantiator-p'.
+
+In summary, this function generally prefers more abbreviated forms.
+
+This function tries extremely hard to resolve any ambiguities, and the
+built-in specifier types (font, image, toolbar, etc.) are designed so that
+there won't be any ambiguities. (#### Unfortunately there are bugs in the
+treatment of toolbar spec-lists and generic spec-lists; avoid depending on
+canonicalization for these types.)
If NOERROR is nil, signal an error if the spec-list is invalid;
otherwise return t."
(nreverse result)))))))
(defun set-specifier (specifier value &optional locale tag-set how-to-add)
- "Add a specification or specifications to SPECIFIER.
+ "Add the specification(s) given by VALUE to SPECIFIER in LOCALE.
+
+VALUE may be any of the values accepted by `canonicalize-spec-list', including
+
+-- an instantiator (either a Lisp object which will be returned when the
+ specifier is instanced, or a Lisp object that can be instantiated to
+ produce an opaque value: eg, a font name (string) can be used for a font
+ specifier, but an instance will be a font object)
+-- a list of instantiators
+-- a cons of a locale and an instantiator, or of a locale and a list of
+ instantiators
+-- a cons of a tag or tag-set and an instantiator (or list of instantiators)
+-- a cons of a locale and the previous type of item
+-- a list of one or more of any of the previous types of items
+-- a canonical spec-list.
+
+See `canonicalize-spec-list' for details. If you need to know the details,
+though, strongly consider using the unambiguous APIs `add-spec-to-specifier'
+and `add-spec-list-to-specifier' instead.
+
+Finally, VALUE can itself be a specifier (of the same type as
+SPECIFIER), if you want to copy specifications from one specifier
+to another; this is equivalent to calling `copy-specifier', and
+LOCALE, TAG-SET, and HOW-TO-ADD have the same semantics as with
+that function.
+
+Note that a VALUE of `nil' is either illegal or will be treated as a value of
+`nil'; it does not remove existing specifications. Use `remove-specifier' for
+that. N.B. `remove-specifier' defaults to removing all specifications, not
+just the 'global one!
+
+Warning: this function is inherently heuristic, and should not be relied on to
+properly resolve ambiguities, when specifier instantiators can be lists
+\(currently, for toolbar specifiers and generic specifiers). In those cases
+use either `add-spec-to-specifier' or `add-spec-list-to-specifier'.
-This function adds a specification of VALUE in locale LOCALE.
LOCALE indicates where this specification is active, and should be
a buffer, a window, a frame, a device, or the symbol `global' to
-indicate that it applies everywhere. LOCALE usually defaults to
-`global' if omitted.
-
-VALUE is usually what is called an \"instantiator\" (which, roughly
-speaking, corresponds to the \"value\" of the property governed by
-SPECIFIER). The valid instantiators for SPECIFIER depend on the type
-of SPECIFIER (which you can determine using `specifier-type'). The
-specifier `scrollbar-width', for example, is of type `integer',
-meaning its valid instantiators are integers. The specifier governing
-the background color of the `default' face (you can retrieve this
-specifier using `(face-background 'default)') is of type `color',
-meaning its valid instantiators are strings naming colors and
-color-instance objects. For some types of specifiers, such as `image'
-and `toolbar', the instantiators can be very complex. Generally this
-is documented in the appropriate creation function --
-e.g. `make-color-specifier', `make-font-specifier',
-`make-image-specifier' -- or in the global variable holding the most
-common specifier for that type (`default-toolbar', `default-gutter',
-`current-display-table').
-
-NOTE: It does *not* work to give a VALUE of nil as a way of
-removing the specifications for a locale. Use `remove-specifier'
-instead. (And keep in mind that, if you omit the LOCALE argument
-to `remove-specifier', it removes *all* specifications! If you
-want to remove just the `global' specification, make sure to
-specify a LOCALE of `global'.)
-
-VALUE can also be a list of instantiators. This means basically,
-\"try each one in turn until you get one that works\". This allows
-you to give funky instantiators that may only work in some cases,
-and provide more normal backups for the other cases. (For example,
-you might like the color \"darkseagreen2\", but some X servers
-don't recognize this color, so you could provide a backup
-\"forest green\". Color TTY devices probably won't recognize this
-either, so you could provide a second backup \"green\". You'd
-do this by specifying this list of instantiators:
-
-'(\"darkseagreen2\" \"forest green\" \"green\")
-
-VALUE can also be various more complicated forms; see below.
+indicate that it applies everywhere. LOCALE defaults to
+`global' if omitted, and is overridden by locales provided by VALUE (in the
+cases where value is a full specification or a spec-list).
Optional argument TAG-SET is a tag or a list of tags, to be associated
with the VALUE. Tags are symbols (usually naming device types, such
See `copy-specifier' and `add-spec-to-specifier' for a full
description of what each of these means.
-VALUE can actually be anything acceptable to `canonicalize-spec-list';
-this includes, among other things:
-
--- a cons of a locale and an instantiator (or list of instantiators)
--- a cons of a tag or tag-set and an instantiator (or list of
- instantiators)
--- a cons of a locale and the previous type of item
--- a list of one or more of any of the previous types of items
-
-However, in these cases, you cannot give a LOCALE or TAG-SET,
-because they do not make sense. (You will probably get an error if
-you try this.)
-
-Finally, VALUE can itself be a specifier (of the same type as
-SPECIFIER), if you want to copy specifications from one specifier
-to another; this is equivalent to calling `copy-specifier', and
-LOCALE, TAG-SET, and HOW-TO-ADD have the same semantics as with
-that function.
-
Note that `set-specifier' is exactly complementary to `specifier-specs'
except in the case where SPECIFIER has no specs at all in it but nil
is a valid instantiator (in that case, `specifier-specs' will return
as meaning \"I'm adding a global instantiator and its value is `nil'\"),
or in strange cases where there is an ambiguity between a spec-list
and an inst-list, etc. (The built-in specifier types are designed
-in such a way as to avoid any such ambiguities.)
-
-NOTE: If you want to work with spec-lists, you should probably not
-use either `set-specifier' or `specifier-specs', but should use the
-lower-level functions `add-spec-list-to-specifier' and `specifier-spec-list'.
-These functions always work with fully-qualified spec-lists; thus, there
-is no possibility for ambiguity and no need to go through the function
-`canonicalize-spec-list', which is potentially time-consuming."
+in such a way as to avoid any such ambiguities.)"
;; backward compatibility: the old function had HOW-TO-ADD as the
;; third argument and no arguments after that.
value)
(defun modify-specifier-instances (specifier func &optional args force default
- locale tag-set)
+ locale tag-set)
"Modify all specifications that match LOCALE and TAG-SET by FUNC.
For each specification that exists for SPECIFIER, in locale LOCALE
preloaded-file-list
(if (featurep 'utf-2000)
system-char-db-source-file-list)
- packages-useful-lisp
site-load-packages))
(while preloaded-file-list
(let ((arg (car preloaded-file-list)))
dumped-exe))))
(setq need-to-dump t)))
- (if (null (member (file-name-nondirectory arg)
- packages-unbytecompiled-lisp))
+; (if (null (member (file-name-nondirectory arg)
+; packages-unbytecompiled-lisp))
+; (progn
+ (setq arg (locate-library arg))
+ (if (null arg)
(progn
- (setq arg (locate-library arg))
- (if (null arg)
- (progn
- (print (format "Error: Library file %s not found"
- (car preloaded-file-list)))
- ;; Uncomment in case of trouble
- ;;(print (format "late-packages: %S" late-packages))
- ;;(print (format "guessed-roots: %S" (paths-find-emacs-roots invocation-directory invocation-name)))
- (kill-emacs)))
- (if (string-match "\\.elc?\\'" arg)
- (setq arg (substring arg 0 (match-beginning 0))))
- (if (and (null (member arg processed))
- (file-exists-p (concat arg ".el"))
- (file-newer-than-file-p (concat arg ".el")
- (concat arg ".elc")))
- (setq processed (cons (concat arg ".el") processed)))))
+ (print (format "Error: Library file %s not found"
+ (car preloaded-file-list)))
+ ;; Uncomment in case of trouble
+ ;;(print (format "late-packages: %S" late-packages))
+ ;;(print (format "guessed-roots: %S" (paths-find-emacs-roots invocation-directory invocation-name)))
+ (kill-emacs)))
+ (if (string-match "\\.elc?\\'" arg)
+ (setq arg (substring arg 0 (match-beginning 0))))
+ (if (and (null (member arg processed))
+ (file-exists-p (concat arg ".el"))
+ (file-newer-than-file-p (concat arg ".el")
+ (concat arg ".elc")))
+ (setq processed (cons (concat arg ".el") processed)))
(setq preloaded-file-list (cdr preloaded-file-list))))
(if need-to-dump
CHISE character database format (S-expression version)
-+
+
* Relations between Characters
Property-name `->foo' or `<-foo' mean relations between characters.
kangxi \e$B9/_f;zE5\e(B
guangyun (kouin) \e$B9-1$\e(B
daikanwa (morohashi-daikanwa) \e$BBg4AOB<-E5\e(B
- ruishuu-meigishou \e$BN`f\L>5A>6\e(B
+ ruijumyougishou (ruishuu-meigishou) \e$BN`f\L>5A>6\e(B
zhengyun (seiin) \e$B@51$\e(B
zhengzi-tong (seiji-tsuu) \e$B@5;z\e$(CwW\e(B
shuowen-tongxun-dingsheng
(sougen-irai-zokujifu) \e$BAW850JMhB/;zIh\e(B
yuquan \e$B6L@t\e(B
chuanpian (senhen) \e$B@nJS\e(B
+ kanjo \e$B4A=q\e(B
+ ronkou \e$BO@9U\e(B
** Properties
(setq path-separator ";")
;; Set the null device (for compile.el).
-;; #### There should be such a global thingy as null-device - kkm
-(setq grep-null-device "NUL")
+;; Backward-compatibility; recent compile.el uses null-device if available.
+(setq grep-null-device null-device)
;; Set the grep regexp to match entries with drive letters.
(setq grep-regexp-alist
;; and does `returns' all over the place and there's no sense
;; in trying to rewrite it to be more Lispy.
(catch 'done
- (let (window old-frame target-frame explicit-frame)
+ (let (window old-frame target-frame explicit-frame shrink-it)
(setq old-frame (or (last-nonminibuf-frame) (selected-frame)))
(setq buffer (get-buffer buffer))
(check-argument-type 'bufferp buffer)
(and (window-leftmost-p window)
(window-rightmost-p window))))
(setq window (split-window window))
- (let (upper
-;; lower
- other)
+ (let (upper other)
(setq window (get-lru-window target-frame))
;; If the LRU window is selected, and big enough,
;; and can be split, split it.
;; even out their heights.
(if (window-previous-child window)
(setq other (window-previous-child window)
-;; lower window
upper other))
(if (window-next-child window)
(setq other (window-next-child window)
-;; lower other
upper window))
;; Check that OTHER and WINDOW are vertically arrayed.
(if (and other
2)
(window-height upper))
nil upper))
- (if shrink-to-fit
- (shrink-window-if-larger-than-buffer window)))))
+ ;; Klaus Berndl <klaus.berndl@sdm.de>: Only in
+ ;; this situation we shrink-to-fit but we can do
+ ;; this first after we have displayed buffer in
+ ;; window (s.b. (set-window-buffer window buffer))
+ (setq shrink-it shrink-to-fit))))
(setq window (get-lru-window target-frame)))
(set-window-buffer window buffer)
+ ;; Now window's previous buffer has been brought to the top
+ ;; of the MRU chain and window displays buffer - now we can
+ ;; shrink-to-fit if necessary
+ (if shrink-it
+ (shrink-window-if-larger-than-buffer window))
+
(display-buffer-1 window)))))
(or (equal wconfig (current-window-configuration))
(push-window-configuration wconfig))
+2004-02-02 Vin Shelton <acs@xemacs.org>
+
+ * XEmacs 21.4.15 is released
+
2003-09-03 Vin Shelton <acs@xemacs.org>
* XEmacs 21.4.14 is released
+2004-02-02 Vin Shelton <acs@xemacs.org>
+
+ * XEmacs 21.4.15 is released
+
+2004-01-27 Stephen J. Turnbull <stephen@xemacs.org>
+
+ * lispref/lispref.texi (Top): Pluralize node name Specifier Examples.
+ * lispref/specifiers.texi: Synch to 21.5 where appropriate.
+
+2003-11-04 Stephen J. Turnbull <stephen@xemacs.org>
+
+ * xemacs-faq.texi: Fix Tony Rossini's address.
+
+2004-01-25 Steve Youngs <youngs@xemacs.org>
+
+ * xemacs-faq.texi (Q2.0.2): Rewrite, mentioning the correct way to
+ remove a package.
+ (Q3.8.2): big-menubar is in the edit-utils package.
+ (Q4.3.2): Add a comment about not needing TM for things like Gnus,
+ MH-E and VM.
+ (Q5.3.3): State correct location of ps-print.el.
+
+ * xemacs/packages.texi (Packages): Remove "Creating Packages" menu
+ entry.
+ (Package Terminology): Whitespace clean up.
+ (Installing Packages): Whitespace clean up and add some @code
+ formatters.
+ Re-organise the menu so that installation via PUI is first and
+ Sumo is last.
+ (Automatically): mule-base is no longer a requirement for using
+ PUI.
+ Mention optionally requiring mailcrypt.
+ (Note): Removed.
+ (Manually): Move to below the PUI installation method.
+ (Sumo): Move to below the manual installation method.
+ (Which Packages): Add mailcrypt.
+ (Building Packages): Remove duplicated stuff that is in
+ lispref/packaging.texi, xref to it instead.
+ (Local.rules File): xref to the appropriate node in
+ lispref/packaging.texi.
+ (Available Packages): Update to current reality.
+ (all): Removed.
+ (srckit): Removed.
+ (binkit): Removed.
+
+ * xemacs/reading.texi (Reading Mail): Mention Gnus and MEW.
+
+ * new-users-guide/custom2.texi (Init File): big-menubar.el is in
+ the edit-utils package.
+
+ * lispref/packaging.texi (Packaging):
+ (The User View):
+ (The Library Maintainer View):
+ (Infrastructure):
+ (Control Files):
+ (Obtaining):
+ (The Package Release Engineer View):
+ (Package Terminology):
+ (Building Packages):
+ (Makefile Targets):
+ (packages): New.
+ (Local.rules File):
+ (XEMACS_PACKAGES): Removed.
+ (XEMACS_INSTALLED_PACKAGES_ROOT): New.
+ (NONMULE_PACKAGES): New.
+ (EXCLUDES): New.
+ (Creating Packages):
+ (BATCH): New.
+ (VERSION): Removed.
+ (AUTHOR_VERSION): Removed.
+ (MAINTAINER): Removed.
+ (PACKAGE): Removed.
+ (PKG_TYPE): Removed.
+ (REQUIRES): Removed.
+ (CATEGORY): Removed.
+ (ELS): Removed.
+ (ELCS): Removed.
+ (all): Removed.
+ (srckit): Removed.
+ (binkit): Removed.
+ (are): New.
+ (STANDARD_DOCS): New.
+ (ELCS_1_DEST): New.
+ (example): New.
+ (PACKAGE_SUPPRESS): New.
+ (EXPLICIT_DOCS): New.
+ (DATA_DEST): New.
+ (Documenting Packages):
+
+ Not quite a total rewrite, but a fairly thorough audit
+ nonetheless.
+
+2003-08-15 Stephen J. Turnbull <stephen@xemacs.org>
+
+ * internals/internals.texi: Update copyright notice.
+ (GCPROing): Add missing period.
+ (Adding Global Lisp Variables): general.c -> general-slots.h.
+ (A Reader's Guide to XEmacs Coding Conventions): New node.
+
+2003-10-22 Ilya N. Golubev <gin@mo.msk.ru>
+
+ * custom.texi (The Init File):
+ * xemacs-faq.texi (Q2.1.3):
+ (Q2.1.5):
+ * internals/internals.texi (Modules for Internationalization):
+ * lispref/display.texi (Beeping):
+ * lispref/ldap.texi (Encoder/Decoder Functions):
+ * lispref/markers.texi (The Mark):
+ (The Region):
+ * lispref/menus.texi (Menu Accelerator Functions):
+ * lispref/numbers.texi (Math Functions):
+ * lispref/packaging.texi (package-compile.el):
+ (Makefile Targets):
+ (Local.rules File):
+ * lispref/postgresql.texi (libpq Lisp Symbols and DataTypes):
+ (libpq Lisp Variables):
+ (Synchronous Interface Functions):
+ (Other libpq Functions):
+ * new-users-guide/custom2.texi (Init File):
+ (Setting Variables):
+ * new-users-guide/files.texi (File Names):
+ (Saving Files):
+ * new-users-guide/search.texi (Search and Replace):
+ * xemacs/custom.texi (X Resources):
+ Fix up erroneous uses of @var instead of @code for the names of
+ particular variables in programming languages.
+
+2003-10-20 Ilya N. Golubev <gin@mo.msk.ru>
+
+ * lispref/tips.texi (Style Tips): Note disabling undo in temporary
+ buffers.
+
+2003-10-16 Ilya N. Golubev <gin@mo.msk.ru>
+
+ * lispref/tips.texi (Comment Tips): Typo fix.
+
+2003-09-22 Adrian Aichner <adrian@xemacs.org>
+
+ * lispref/backups.texi (Reverting): Fix the PRINTED-MANUAL-TITLE
+ argument for a cross reference to "The XEmacs User's Manual".
+
2003-09-03 Vin Shelton <acs@xemacs.org>
* XEmacs 21.4.14 is released
@file{init.el} (in XEmacs 21.4 and later). If you use another file, you
must explicitly load it yourself.
-As of XEmacs 21.4.7, when @var{custom-file} is present, it is loaded
+As of XEmacs 21.4.7, when @code{custom-file} is present, it is loaded
@emph{after} @file{init.el}. This is likely to change in the future,
because (1) actions in @file{init.el} often would like to depend on
customizations for consistent appearance and (2) Custom is quite brutal
Copyright @copyright{} 1992 - 1996 Ben Wing.
Copyright @copyright{} 1996, 1997 Sun Microsystems.
-Copyright @copyright{} 1994 - 1998 Free Software Foundation.
+Copyright @copyright{} 1994 - 1998, 2002, 2003 Free Software Foundation.
Copyright @copyright{} 1994, 1995 Board of Trustees, University of Illinois.
situations, often in code far away from where the actual breakage is.
@menu
+* A Reader's Guide to XEmacs Coding Conventions::
* General Coding Rules::
* Writing Lisp Primitives::
* Writing Good Comments::
* Techniques for XEmacs Developers::
@end menu
+@node A Reader's Guide to XEmacs Coding Conventions
+@section A Reader's Guide to XEmacs Coding Conventions
+@cindex coding conventions
+@cindex reader's guide
+@cindex coding rules, naming
+
+Of course the low-level implementation language of XEmacs is C, but much
+of that uses the Lisp engine to do its work. However, because the code
+is ``inside'' of the protective containment shell around the ``reactor
+core,'' you'll see lots of complex ``plumbing'' needed to do the work
+and ``safety mechanisms,'' whose failure results in a meltdown. This
+section provides a quick overview (or review) of the various components
+of the implementation of Lisp objects.
+
+ Two typographic conventions help to identify C objects that implement
+Lisp objects. The first is that capitalized identifiers, especially
+beginning with the letters @samp{Q}, @samp{V}, @samp{F}, and @samp{S},
+for C variables and functions, and C macros with beginning with the
+letter @samp{X}, are used to implement Lisp. The second is that where
+Lisp uses the hyphen @samp{-} in symbol names, the corresponding C
+identifiers use the underscore @samp{_}. Of course, since XEmacs Lisp
+contains interfaces to many external libraries, those external names
+will follow the coding conventions their authors chose, and may overlap
+the ``XEmacs name space.'' However these cases are usually pretty
+obvious.
+
+ All Lisp objects are handled indirectly. The @code{Lisp_Object}
+type is usually a pointer to a structure, except for a very small number
+of types with immediate representations (currently characters and
+integers). However, these types cannot be directly operated on in C
+code, either, so they can also be considered indirect. Types that do
+not have an immediate representation always have a C typedef
+@code{Lisp_@var{type}} for a corresponding structure.
+@c #### mention l(c)records here?
+
+ In older code, it was common practice to pass around pointers to
+@code{Lisp_@var{type}}, but this is now deprecated in favor of using
+@code{Lisp_Object} for all function arguments and return values that are
+Lisp objects. The @code{X@var{type}} macro is used to extract the
+pointer and cast it to @code{(Lisp_@var{type} *)} for the desired type.
+
+ @strong{Convention}: macros whose names begin with @samp{X} operate on
+@code{Lisp_Object}s and do no type-checking. Many such macros are type
+extractors, but others implement Lisp operations in C (@emph{e.g.},
+@code{XCAR} implements the Lisp @code{car} function). These are unsafe,
+and must only be used where types of all data have already been checked.
+Such macros are only applied to @code{Lisp_Object}s. In internal
+implementations where the pointer has already been converted, the
+structure is operated on directly using the C @code{->} member access
+operator.
+
+ The @code{@var{type}P}, @code{CHECK_@var{type}}, and
+@code{CONCHECK_@var{type}} macros are used to test types. The first
+returns a Boolean value, and the latter signal errors. (The
+@samp{CONCHECK} variety allows execution to be CONtinued under some
+circumstances, thus the name.) Functions which expect to be passed user
+data invariably call @samp{CHECK} macros on arguments.
+
+ There are many types of specialized Lisp objects implemented in C, but
+the most pervasive type is the @dfn{symbol}. Symbols are used as
+identifiers, variables, and functions.
+
+ @strong{Convention}: Global variables whose names begin with @samp{Q}
+are constants whose value is a symbol. The name of the variable should
+be derived from the name of the symbol using the same rules as for Lisp
+primitives. Such variables allow the C code to check whether a
+particular @code{Lisp_Object} is equal to a given symbol. Symbols are
+Lisp objects, so these variables may be passed to Lisp primitives. (An
+alternative to the use of @samp{Q...} variables is to call the
+@code{intern} function at initialization in the
+@code{vars_of_@var{module}} function, which is hardly less efficient.)
+
+ @strong{Convention}: Global variables whose names begin with @samp{V}
+are variables that contain Lisp objects. The convention here is that
+all global variables of type @code{Lisp_Object} begin with @samp{V}, and
+no others do (not even integer and boolean variables that have Lisp
+equivalents). Most of the time, these variables have equivalents in
+Lisp, which are defined via the @samp{DEFVAR} family of macros, but some
+don't. Since the variable's value is a @code{Lisp_Object}, it can be
+passed to Lisp primitives.
+
+ The implementation of Lisp primitives is more complex.
+@strong{Convention}: Global variables with names beginning with @samp{S}
+contain a structure that allows the Lisp engine to identify and call a C
+function. In modern versions of XEmacs, these identifiers are almost
+always completely hidden in the @code{DEFUN} and @code{SUBR} macros, but
+you will encounter them if you look at very old versions of XEmacs or at
+GNU Emacs. @strong{Convention}: Functions with names beginning with
+@samp{F} implement Lisp primitives. Of course all their arguments and
+their return values must be Lisp_Objects. (This is hidden in the
+@code{DEFUN} macro.)
+
+
@node General Coding Rules
@section General Coding Rules
@cindex coding rules, general
@code{defsymbol()} are no problem, but some linkers will complain about
multiply-defined symbols. The most insidious aspect of this is that
often the link will succeed anyway, but then the resulting executable
-will sometimes crash in obscure ways during certain operations! To
-avoid this problem, declare any symbols with common names (such as
+will sometimes crash in obscure ways during certain operations!
+
+To avoid this problem, declare any symbols with common names (such as
@code{text}) that are not obviously associated with this particular
-module in the module @file{general.c}.
+module in the file @file{general-slots.h}. The ``-slots'' suffix
+indicates that this is a file that is included multiple times in
+@file{general.c}. Redefinition of preprocessor macros allows the
+effects to be different in each context, so this is actually more
+convenient and less error-prone than doing it in your module.
Global variables whose names begin with @samp{V} are variables that
contain Lisp objects. The convention here is that all global variables
@file{mule-mcpath.c} provides some functions to allow for pathnames
containing extended characters. This code is fragmentary, obsolete, and
-completely non-working. Instead, @var{pathname-coding-system} is used
+completely non-working. Instead, @code{pathname-coding-system} is used
to specify conversions of names of files and directories. The standard
C I/O functions like @samp{open()} are wrapped so that conversion occurs
automatically.
If you don't understand whether to @code{GCPRO} in a particular
instance, ask on the mailing lists. A general hint is that @code{prog1}
-is the canonical example
+is the canonical example.
@cindex garbage collection, conservative
@cindex conservative garbage collection
If you have made extensive changes to a file and then change your mind
about them, you can get rid of them by reading in the previous version
of the file with the @code{revert-buffer} command. @xref{Reverting, ,
-Reverting a Buffer, xemacs, The XEmacs Lisp Reference Manual}.
+Reverting a Buffer, xemacs, The XEmacs User's Manual}.
@deffn Command revert-buffer &optional check-auto-save noconfirm preserve-modes
This command replaces the buffer text with the text of the visited
The sound file must be in the Sun/NeXT U-LAW format. @var{sound-name}
should be a symbol, specifying the name of the sound. If @var{volume}
is specified, the sound will be played at that volume; otherwise, the
-value of @var{bell-volume} will be used.
+value of @code{bell-volume} will be used.
@end deffn
@defun play-sound sound &optional volume device
@end defun
@defun ldap-decode-string str
-Decode a string @var{str} according to @var{ldap-coding-system}.
+Decode a string @var{str} according to @code{ldap-coding-system}.
@end defun
@defun ldap-encode-string str
-Encode a string @var{str} according to @var{ldap-coding-system}.
+Encode a string @var{str} according to @code{ldap-coding-system}.
@end defun
@defun ldap-decode-address str
-Decode an address @var{str} according to @var{ldap-coding-system} and
+Decode an address @var{str} according to @code{ldap-coding-system} and
replacing $ signs with newlines as specified by LDAP encoding rules for
addresses.
@end defun
@defun ldap-encode-address str
-Encode an address @var{str} according to @var{ldap-coding-system} and
+Encode an address @var{str} according to @code{ldap-coding-system} and
replacing newlines with $ signs as specified by LDAP encoding rules for
addresses.
@end defun
Package Overview
-* The User's View::
-* The Library Maintainer's View::
-* The Package Release Engineer's View::
+* The User View::
+* The Library Maintainer View::
+* The Package Release Engineer View::
The Library Maintainer's View
Creating Packages
-* package-compile.el::
-* package-info.in Fields::
-* Makefile Variables::
+* package-info.in:: package-info.in
+* Makefile:: @file{Makefile}
* Makefile Targets::
Lisp Data Types
* Retrieving Specifications:: Querying a specifier's specifications.
* Specifier Instancing Functions::
Functions to instance a specifier.
-* Specifier Example:: Making all this stuff clearer.
+* Specifier Examples:: Making all this stuff clearer.
* Creating Specifiers:: Creating specifiers for your own use.
* Specifier Validation Functions::
Validating the components of a specifier.
mark position anyway---or @code{nil}, if the mark is not yet set for
the buffer.
-(Remember that if @var{zmacs-regions} is @code{nil}, the mark is
+(Remember that if @code{zmacs-regions} is @code{nil}, the mark is
always active as long as it exists, and the @var{force} argument
will have no effect.)
should normally use @code{interactive} with the @samp{r} specification
to find the beginning and end of the region. This lets other Lisp
programs specify the bounds explicitly as arguments and automatically
-respects the user's setting for @var{zmacs-regions}. (@xref{Interactive
-Codes}.)
+respects the user's setting for @code{zmacs-regions}.
+(@xref{Interactive Codes}.)
@defun region-beginning &optional buffer
This function returns the position of the beginning of @var{buffer}'s
@defvar zmacs-region-stays
If a command sets this variable to true, the currently active region
will remain activated when the command finishes. (Normally the region is
-deactivated when each command terminates.) If @var{zmacs-regions} is
+deactivated when each command terminates.) If @code{zmacs-regions} is
false, however, this has no effect. Under normal circumstances, you do
not need to set this; use the interactive specification @samp{_}
instead, if you want the region to remain active.
This function activates the region in the current buffer (this is
equivalent to activating the current buffer's mark). This will normally
also highlight the text in the active region and set
-@var{zmacs-region-stays} to @code{t}. (If @var{zmacs-regions} is false,
-however, this function has no effect.)
+@code{zmacs-region-stays} to @code{t}. (If @code{zmacs-regions} is
+false, however, this function has no effect.)
@end defun
@defun zmacs-deactivate-region
This function deactivates the region in the current buffer (this is
equivalent to deactivating the current buffer's mark). This will
normally also unhighlight the text in the active region and set
-@var{zmacs-region-stays} to @code{nil}. (If @var{zmacs-regions} is
+@code{zmacs-region-stays} to @code{nil}. (If @code{zmacs-regions} is
false, however, this function has no effect.)
@end defun
@code{set-mark-command}, @code{activate-region}, or
@code{exchange-point-and-mark}.) Note that calling
@file{zmacs-activate-region} will call this hook, even if the region is
-already active. If @var{zmacs-regions} is false, however, this hook
+already active. If @code{zmacs-regions} is false, however, this hook
will never get called under any circumstances.
@end defvar
@defvar zmacs-deactivate-region-hook
This normal hook is called when an active region becomes inactive.
(Calling @file{zmacs-deactivate-region} when the region is inactive will
-@emph{not} cause this hook to be called.) If @var{zmacs-regions} is
+@emph{not} cause this hook to be called.) If @code{zmacs-regions} is
false, this hook will never get called.
@end defvar
@defvar zmacs-update-region-hook
This normal hook is called when an active region is "updated" by
@code{zmacs-update-region}. This normally gets called at the end
-of each command that sets @var{zmacs-region-stays} to @code{t},
+of each command that sets @code{zmacs-region-stays} to @code{t},
indicating that the region should remain activated. The motion
commands do this.
@end defvar
precedence over bindings in the current keymap(s). @code{menu-fallback} means
that bindings in the current keymap take precedence over menu accelerator keys.
Thus a top level menu with an accelerator of "T" would be activated on a
-keypress of Meta-t if @var{menu-accelerator-enabled} is @code{menu-force}.
-However, if @var{menu-accelerator-enabled} is @code{menu-fallback}, then
+keypress of Meta-t if @code{menu-accelerator-enabled} is @code{menu-force}.
+However, if @code{menu-accelerator-enabled} is @code{menu-fallback}, then
Meta-t will not activate the menubar and will instead run the function
transpose-words, to which it is normally bound.
The default value is @code{nil}.
-See also @var{menu-accelerator-modifiers} and @var{menu-accelerator-prefix}.
+See also @code{menu-accelerator-modifiers} and @code{menu-accelerator-prefix}.
@end defvar
@defvar menu-accelerator-map
a keystroke. The default value of @code{(meta)} mirrors the usage of the alt key
as a menu accelerator in popular PC operating systems.
-The modifier keys in @var{menu-accelerator-modifiers} must match exactly the
+The modifier keys in @code{menu-accelerator-modifiers} must match exactly the
modifiers present in the keypress. The only exception is that the shift
-modifier is accepted in conjunction with alphabetic keys even if it is not
-a menu accelerator modifier.
+modifier is accepted in conjunction with alphabetic keys even if it is not a
+menu accelerator modifier.
-See also @var{menu-accelerator-enabled} and @var{menu-accelerator-prefix}.
+See also @code{menu-accelerator-enabled} and @code{menu-accelerator-prefix}.
@end defvar
@defvar menu-accelerator-prefix
@defun log number &optional base
This function returns the logarithm of @var{number}, with base @var{base}.
-If you don't specify @var{base}, the base @var{e} is used. If @var{number}
+If you don't specify @var{base}, the base @code{e} is used. If @var{number}
is negative, the result is a NaN.
@end defun
@menu
Introduction:
-* Package Overview:: Lisp Libraries and Packages.
+* Package Overview:: Lisp Libraries and Packages.
Packaging Lisp Libraries:
-* Package Terminology:: Basic stuff.
-* Building Packages:: Turn packaged source into a tarball.
-* Local.rules File:: Tell the @xpms{} about your host.
-* Creating Packages:: Tell the @xpms{} about your package.
+* Package Terminology:: Basic stuff.
+* Building Packages:: Turn packaged source into a tarball.
+* Makefile Targets:: Package @file{Makefile} targets
+* Local.rules File:: Tell the @xpms{} about your host.
+* Creating Packages:: Tell the @xpms{} about your package.
+* Documenting Packages:: Explain your package to users and hackers.
@c * History:: History of the @xpms{}
@c * Installation:: Installing the @xpms{} with your (X)Emacs.
@c * Configuration:: Configuring the @xpms{} for use.
@xpms{} provides to ensure that a package satisfies them.
@menu
-* The User's View::
-* The Library Maintainer's View::
-* The Package Release Engineer's View::
+* The User View::
+* The Library Maintainer View::
+* The Package Release Engineer View::
@end menu
-@node The User's View, The Library Maintainer's View, , Package Overview
-@section The User's View
+@node The User View, The Library Maintainer View, , Package Overview
+@section The User View
@strong{N.B.} Much of the discussion in this section undoubtedly
belongs elsewhere, @ref{Packages,,,xemacs}.
@file{/usr/local/lib/xemacs-21.4.6/}.
Users who do not have sufficient privilege to install packages in the
-system hierarchies may install package hierarchies under
-@file{~/.xemacs}. At present only the @file{xemacs-packages} and
-@file{mule-packages} hierarchies are supported, but it might make sense
-to extend this to support @file{infodock-packages} and
-@file{site-packages} hierarchies in the future.
+system hierarchies may install package hierarchies under @file{~/.xemacs}.
+At present only the @file{xemacs-packages}, @file{mule-packages}, and
+@file{site-packages} hierarchies are supported, but it might make sense to
+extend this to support @file{infodock-packages} hierarchies in the future.
The package hierarchies are not searched directly for libraries to be
loaded; this would be very costly. Instead, the hierarchies are ordered
receiving a @code{load-path} initialized to the core Lisp directories.
-@node The Library Maintainer's View, The Package Release Engineer's View, The User's View, Package Overview
-@section The Library Maintainer's View
+@node The Library Maintainer View, The Package Release Engineer View, The User View, Package Overview
+@section The Library Maintainer View
From the library maintainer's viewpoint, the advantages to the @xpms{}
stem from the convenience to the user of installation and upgrade.
package's source tree and provide administrative information.
@menu
-* Infrastructure:: Global Makefiles and common rules.
-* Control Files:: Package-specific Makefiles and administrative files.
-* Obtaining:: Obtaining the @xpms{} and required utilities.
+* Infrastructure:: Global Makefiles and common rules.
+* Control Files:: Package-specific Makefiles and administrative files.
+* Obtaining:: Obtaining the @xpms{} and required utilities.
@end menu
-@node Infrastructure, Control Files, , The Library Maintainer's View
+@node Infrastructure, Control Files, , The Library Maintainer View
@subsection Infrastructure
In order to get the greatest benefit from the @xpms{}, a library
The @file{packages} directory contains some auxiliary Lisp libraries
used in the compilation and packaging process. The content of these
-libraries is of interest primarily to the packaging engineers, @ref{The
-Package Release Engineer's View}.
+libraries is of interest primarily to the packaging engineers, @ref{The
+Package Release Engineer View}.
Finally, the @file{packages}, @file{packages/xemacs-packages}, and
@file{packages/mule-packages} directories contain @file{Makefile}s and
@item iterate.rules
controls recursive builds of multiple packages
+@item meta-iterate.rules
+This is used by higher-level subdirectories that do not directly
+contain packages. Subdirectories directly containing packages should
+use iterate.rules instead.
+
@item XEmacs.rules
provides the rules for building and packaging. Included by all package
@file{Makefile}s.
consistency checking for @file{Local.rules}, included by both the
top-level @file{Makefile} and by @file{XEmacs.rules}.
+@item Local.rules.inc
+a file to @code{include} in package @file{Makefile}s to be able to get
+at variables in @file{Local.rules} @emph{before} including
+@file{XEmacs.rules}.
+
@c #### Add to "issues"
@item package-compile.el
-compile environment (@emph{e.g.}, load-path) setup. It is very bogus
-that this is here, an alternative mechanism is likely to be provided.
+compile environment (@emph{e.g.}, load-path) setup.
@end table
Of these, only @file{Local.rules} and @file{package-compile.el} need to
package and are discussed in the next section, @ref{Control Files}.
-@node Control Files, Obtaining, Infrastructure, The Library Maintainer's View
+@node Control Files, Obtaining, Infrastructure, The Library Maintainer View
@subsection Control Files
Each package source must contain a number of control files in the
Not strictly required, but normally a ChangeLog will be added by the
XEmacs package maintainer if different from the upstream maintainer.
-@item package-compile.el
-compile environment (@emph{e.g.}, load-path) setup. It is very bogus
-that this is here, an alternative mechanism is likely to be provided.
-
@item _pkg.el
Generated. Simply does a @code{package-provide} for the package.
-@item _auto-autoloads.el
+@item auto-autoloads.el
Generated. Read when XEmacs is initialized, and provides autoloads for
-all defuns and other specially-marked forms in the sources.
+defuns and other forms in the sources that are marked with an
+@dfn{autoload cookie} (@samp{;;;###autoload}.
@item custom-loads.el
Generated. Read when XEmacs is initialized, and informs the Customize
@end table
-@node Obtaining, , Control Files, The Library Maintainer's View
+@node Obtaining, , Control Files, The Library Maintainer View
@subsection Obtaining the @xpms{} and Required Utilities
Currently both the infrastructure for creating XEmacs packages and the
@uref{http://www.xemacs.org/Develop/cvsaccess.html} for more
intformation.
-The @xpms{} currently requires GNU @file{make}, and probably XEmacs, to
-build packages.
+The @xpms{} currently requires GNU @file{make}, and XEmacs, to build
+packages.
-@node The Package Release Engineer's View, , The Library Maintainer's View, Package Overview
-@subsection The Package Release Engineer's View
+@node The Package Release Engineer View, , The Library Maintainer View, Package Overview
+@subsection The Package Release Engineer View
The XEmacs Package Release Engineer is responsible for keeping the
system coherent. The changes to @file{packages/package-compile.el} and
@c #### To be completed.
-@c #### The following section is lifted verbatim from the XEmacs User's
-@c Manual, file packages.texi.
@node Package Terminology, Building Packages, Package Overview, Packaging
@comment node-name, next, previous, up
@heading Package Terminology:
for distribution or installation. This is all of the package author's
source code plus all of the files necessary to build distribution
tarballs (Unix Tar format files, gzipped for space savings).
-@c #### This next is an Evile Practice and should be discontinued.
-(Occasionally sources that are not relevant to XEmacs are removed.)
+(Occasionally sources that are not relevant to XEmacs are usually
+renamed to @file{file.upstream}.)
Currently, source packages are only available via CVS. See
@url{http://www.xemacs.org/Develop/cvsaccess.html} for details.
specially, and even those only if they contain multibyte characters.
-@c #### The following section is lifted verbatim from the XEmacs User's
-@c Manual, file packages.texi.
-@node Building Packages, Local.rules File, Package Terminology, Packaging
+@node Building Packages, Makefile Targets, Package Terminology, Packaging
@comment node-name, next, previous, up
@cindex building packages
@cindex package building
@item GNU install
(or a BSD compatible install program).
@item GNU make
-(3.75 or later preferred).
+(3.79 or later preferred).
@item makeinfo
-(1.68 from texinfo-3.11 or later required, 1.69 from Texinfo 4 preferred).
+(4.2 from texinfo-4.2)
@item GNU tar
(or equivalent).
@item GNU gzip
And of course, XEmacs, 21.0 or higher.
-@subsection What You Can Do With Source Packages
+@section What You Can Do With Source Packages
The packages CVS sources are most useful for creating XEmacs package
tarballs for installation into your own XEmacs installations or for
distributing to others.
-The supported @file{make} targets are:
+It should be noted that most of the package @file{Makefile}s do
+@emph{not} need to contain @emph{any} target rules. Everything is
+handled from the @file{XEmacs.rules} file, located in the toplevel
+directory of the packages source tree.
-@table @code
-@item all
-Bytecompile all files, build and bytecompile byproduct files like
-@file{auto-autoloads.el} and @file{custom-load.el}. Create info version
-of TeXinfo documentation if present.
-@c #### Why do we need this _and_ the binkit target?
+@node Makefile Targets, Local.rules File, Building Packages, Packaging
+@cindex package makefile targets
+@chapter @file{Makefile} targets
+The following targets can be used when running @code{make} to build the
+packages:
+
+@table @samp
+@item mostlyclean
+Removes any documentation files that have been processed by @TeX{}.
+
+@item clean
+Does a @code{mostlyclean}, plus removes generated postscript and dvi
+files. Also removes any generated .elc files, along with the normal
+.elc files in the package and HTML and .info files.
+
+@item distclean
+Use this when preparing a distribution. It kills anything that can be
+rebuilt.
+
+@item extraclean
+Does a @code{distclean} and also removes any backup files (@file{*~})
+and @file{core} files.
+
+@item package-info
+Creates the @file{package-info} file from the @file{package-info.in} and
+writes an entry in the @file{package-index} file.
+
@item bindist
-Does a @code{make all} as well as create a binary package tarball in the
-staging directory.
+Builds the package, including any Texinfo documentation (info format),
+writes an entry into the @file{package-index} file and builds a tarball
+of the package. Also writes an entry into @file{setup-packages.ini}
+which is later used in the creation of netinstaller's @file{setup.ini}.
@item install
-Bytecompile all files, build and bytecompile byproduct files like
-@file{auto-autoloads.el} and @file{custom-load.el}. Create info version
-of TeXinfo documentation if present. And install everything into the
-staging directory.
-
-@item srckit
-Usually simply depends on @code{srckit-std}, with no actions. This does
-a @code{make distclean} and creates a package source tarball in the
-staging directory. This is generally only of use for package
-maintainers.
+Builds and installs a package
+
+@item install-only
+Doesn't build anything, just installs it.
+
+@item autoloads
+Generate the package's @file{auto-autoloads.el} file.
@item binkit
-May depend on @code{binkit-sourceonly}, @code{binkit-sourceinfo},
-@code{binkit-sourcedata}, or @code{binkit-sourcedatainfo}, with no
-actions. @code{sourceonly} indicates there is nothing to install in a
-data directory or info directory. @code{sourceinfo} indicates that
-source and info files are to be installed. @code{sourcedata} indicates
-that source and etc (data) files are to be installed.
-@code{sourcedatainfo} indicates source, etc (data), and info files are
-to be installed. A few packages have needs beyond the basic templates
-so this is not yet complete.
-
-@item dist
-Runs the rules @code{srckit} followed by @code{binkit}. This is
-primarily of use by XEmacs maintainers producing files for distribution.
+Creates the directories needed for installation and copies the files
+there. Basically this is an alias for @code{install-only}.
-@item clean
-Remove all built files except @file{auto-autoloads.el} and
-@file{custom-load.el}.
+@item html
+Builds the HTML versions of the documentation.
-@item distclean
-Remove all created files.
+@item compile
+Does most of the work. Builds the elcs, infos at a minimum.
@end table
-@c #### The following section is lifted verbatim from the XEmacs User's
-@c Manual, file packages.texi.
-@node Local.rules File, Creating Packages, Building Packages, Packaging
+@subsection The targets that most people would be interested in would be:
+
+@itemize @bullet
+@item @code{all}
+@item @code{bindist}
+@item @code{html}
+@item @code{install}
+@item @code{install-only}
+@item @code{clean}
+@item @code{distclean}
+@end itemize
+
+
+@node Local.rules File, Creating Packages, Makefile Targets, Packaging
@comment node-name, next, previous, up
@cindex local.rules
@heading The Local.rules File:
simply copy @file{Local.rules.template} from that directory to
@file{Local.rules} and edit it to suit your needs.
-These are the variables in @file{Local.rules} that you will need to
-provide values for. The following variables control which packages will
-be built:
-
-@table @var
-@item XEMACS_PACKAGES
-The default is @samp{xemacs-packages}, which results in the set in
-the @file{xemacs-packages/Makefile} @code{PACKAGES} variable.
+These are the variables in @file{Local.rules} that you may need to
+provide values for:
-Otherwise, it should be a list of package source directories prefixed by
-@samp{xemacs-packages}:
+@table @samp
+@item XEMACS
+The name (and path if needed) of the XEmacs binary to use for building
+the packages. The default is @code{xemacs}.
-@example
-XEMACS_PACKAGES = xemacs-packages/xemacs-base xemacs-packages/bbdb
-@end example
+@item XEMACS_21_5
+This will enable some, as yet, unimplemented features in XEmacs 21.5 and
+above. For now leave this blank (the default) regardless of the XEmacs
+version you are using.
@item BUILD_WITHOUT_MULE
-The default is the empty value.
+Set this to @samp{t} if you are using a non-Mule XEmacs. The default is
+that this variable is not set (blank) which means to build @emph{with}
+Mule.
-Building from CVS defaults to building the Mule
-packages. Set this to 't' if you don't want/have Mule.
+@item XEMACS_NATIVE_NT
+Set this to @samp{t} if you are using a native Microsoft Windows build
+of XEmacs (not a Cygwin build) to build the packages.
+@strong{N.B.} To Windows users, you still need the Cygwin environment to
+actually build the packages.
+
+@item XEMACS_INSTALLED_PACKAGES_ROOT
+Set this to the root of where you want the packages to be installed.
+Under this directory will hang @file{xemacs-packages} and
+@file{mule-packages}. See @var{NONMULE_INSTALLED_PACKAGES_ROOT} and
+@var{MULE_INSTALLED_PACKAGES_ROOT}. The default for this is
+@file{/usr/local/lib/xemacs}. Which may not be what you want if you are
+developing XEmacs. To quote the comments in
+@file{Local.rules.template}:
+
+@quotation
+If you are developing XEmacs, you probably don't want to install the
+packages under /usr/local, which is where the stable, released version
+of XEmacs goes. Instead, we suggest a layout as described in the base
+README file of recent versions of XEmacs. In a nutshell, we suggest
+you put your source under /src/xemacs, and under this put the package
+sources in package-src/, and the installed packages in xemacs-packages/
+and mule-packages/. If you do everything this way, you might want to
+set things as follows:
+
+XEMACS_INSTALLED_PACKAGES_ROOT = $@{XEMACS_PACKAGES_BASE@}/..
+
+which puts the xemacs-packages/ and mule-packages/ directories as sisters
+of the package-src/ directory, and you have to tell configure the location
+of the installed packages using `--package-path', something like
+
+configure --package-path=/src/xemacs/xemacs-packages;/src/xemacs/mule-packages
+@end quotation
-@item MULE_PACKAGES
-The default is @samp{mule-packages}, which results in the set in
-the @file{mule-packages/Makefile} @code{PACKAGES} variable.
+@item symlink
+The default is unset (blank). If you set this to @samp{t} then
+@code{make install} will create a @dfn{symlink farm} of the installed
+packages under @var{XEMACS_INSTALLED_PACKAGES_ROOT}. Obviously, for
+this to work, your system has to support symbolic links. This is as
+close as you can get to @dfn{running in place} for the packages.
+
+@item NONMULE_INSTALLED_PACKAGES_ROOT
+This is where the non-Mule packages get installed to. The default is
+@file{$@{XEMACS_INSTALLED_PACKAGES_ROOT@}/xemacs-packages}.
+
+@item MULE_INSTALLED_PACKAGES_ROOT
+This is where the Mule packages get installed to. The default is
+@file{$@{XEMACS_INSTALLED_PACKAGES_ROOT@}/mule-packages}.
-Otherwise, it should be a list of package source directories prefixed by
-@samp{mule-packages}:
+@item NONMULE_PACKAGES
+A whitespace separated list of non-Mule packages to build/install.
@example
-MULE_PACKAGES = mule-packages/mule-base mule-packages/skk
+NONMULE_PACKAGES = bbdb gnus xemacs-base prog-modes
@end example
-@item PACKAGE_INDEX
-The default is @file{package-index}.
-
-If you want the package index file to have a different name, change
-this. This is probably a bad idea unless you are a packages release
-engineer, as it will confuse the package administration tools.
-@end table
+The value for this variable can also be the symbol
+@samp{xemacs-packages}, which means to build/install @emph{all} of the
+non-Mule packages. The default is @samp{xemacs-packages}.
-The following variables determine where files are installed and how they
-are installed. Several of the defaults use the variable
-@var{XEMACS_PACKAGES_BASE}. Never set this variable in
-@file{Local.rules}; it is automatically set in @file{XEmacs.rules}.
+@item MULE_PACKAGES
+A whitespace separated list of Mule packages to build/install.
-@table @asis
-@item @var{XEMACS_STAGING}
-The default is @file{$@{XEMACS_PACKAGES_BASE@}/../xemacs-packages}.
+@example
+MULE_PACKAGES = mule-base leim locale
+@end example
-Generic packages will be installed here. This can be the final
-destination for files or symlinks (if the packages are being installed
-locally), or a clean staging area for building tarballs.
+The value for this variable can also be the symbol
+@samp{mule-packages}, which means to build/install @emph{all} of the
+Mule packages. The default is @samp{mule-packages}.
-@strong{N.B.} @samp{make bindist} ignores this variable. It should be
-handled by the administration utilities, but currently isn't.
+@item PACKAGE_INDEX
+The name of the package-index file. The default is @file{package-index}
+and you probably don't need to worry about changing it.
-@item @var{MULE_STAGING}
+@item INSTALL
+The path to a BSD compatible install program. The default is
+@code{install -c}.
-The default is @file{$@{XEMACS_PACKAGES_BASE@}/../mule-packages}.
+@item TAR
+The path to GNU/tar. The default is @code{tar}.
-Packages requiring Mule to load correctly will be installed here. This
-can be the final destination for files or symlinks (if the packages are
-being installed locally), or a clean staging area for building tarballs.
+@item BZIP2
+The path to the bzip2 compression program. The default is unset
+(blank). If this is set @file{.tar.bz2} archives will be built
+@emph{in addition to} the @file{.tar.gz} archives.
-@strong{N.B.} @samp{make bindist} ignores this variable. It should be
-handled by the administration utilities, but currently isn't.
+@item EXCLUDES
+For things that you @emph{don't} want to go into the package tarballs.
+It takes the same format as GNU/tar's @code{--exclude} option. The
+default is:
-@item symlink
-The default is the empty value.
-
-Set this to 't' if you want to simulate ``running in place.'' It is
-currently not possible to ask XEmacs to use any package source tree as
-an automatically configured member of @code{load-path}, and it is
-unlikely that complex trees such as that of the Gnus package will ever
-be able to ``run in place.'' This variable, when set to `t', causes the
-build process to create a symlink farm otherwise identical to an
-installed tree of binary packages. Thus it is purely a space
-optimization.
-
-Setting this is incompatible with @samp{make bindist}.
-@end table
+@example
+EXCLUDES = \
+ --exclude 'CVS' \
+ --exclude 'RCS' \
+ --exclude 'SCCS' \
+ --exclude '*~' \
+ --exclude '*.orig' \
+ --exclude '*.rej' \
+ --exclude '.\#*'
+@end example
-The following variables determine how packages are made.
+@item VANILLA
+Set to the XEmacs command line option that forces running in
+@dfn{vanilla} mode. The default is @samp{-vanilla}. You wouldn't ever
+need to alter this.
-@table @var
-@item XEMACS
-The default is @samp{xemacs}.
+@item BATCH
+How to put XEmacs into @dfn{batch} mode. It also sets a couple of other
+things and in the normal course of events you wouldn't need to alter
+this from the default which is:
-The path to the XEmacs executable you wish to use to compile the
-packages and execute Lisp build scripts.
+@example
+BATCH = $(VANILLA) -batch -eval \
+ '(setq stack-trace-on-error t \
+ load-always-display-messages t \
+ load-ignore-out-of-date-elc-files t \
+ load-show-full-path-in-messages t)'
+@end example
-@item XEMACS_NATIVE_NT
-The default is the empty value.
+@item MAKEINFO
+The path to @code{makeinfo}. The default is @samp{makeinfo}
-Set this to 't' if you are building on WinNT. It controls hairy shell
-quoting in the @file{Makefile}s.
+@item INSTALL_HTML
+Set this to @samp{t} if you want to install HTML versions of the Texinfo
+documentation. The default is unset (blank).
-@item INSTALL
-The default is @samp{install -c}.
+@item TEXI2HTML
+The path to the program that can convert Texinfo source to HTML. The
+default is @code{texi2html}.
-The path to your BSD compatible install program.
+@item TEXI2DVI
+The path to the program that can convert Texinfo source to DVI. The
+default is @code{texi2dvi}
-@item TAR
-The default is @samp{tar}.
+@item DVIPS
+The path to the program that can convert DVI to Postscript. The default
+is @code{dvips}
-The path to your tar program.
+@item TEXI2PDF
+The path to the program that can convert Texinfo source to PDF format.
+The default is @code{texi2pdf}.
-@item BZIP2
-The default is the empty value.
+@item TEX
+The path to @TeX{}. The default is @code{tex}
-If unset, bzipped tarballs will not be built. If this is set to
-something that resolves to a @samp{bzip2} executable, bzip2 tarballs
-will be built @emph{in addition to} @samp{gzip} tarballs.
+@item MSGFMT
+The path to msgfmt. The default is @code{msgfmt}
-@item MAKEINFO
-The default is @samp{makeinfo}.
+@item RCOPY
+The path to your copy command (GNU cp). The default is dependent on
+whether or not @var{symlink} is set (@samp{t}).
-The path to your @file{makeinfo} program
+If @var{symlink} is unset (blank), @var{RCOPY}'s default is
+@code{cp -af}. If @var{symlink} is set (@samp{t}), @var{RCOPY}'s
+default is @code{cp --force --recursive --symbolic-link}.
@end table
+It should be noted that in most cases the defaults should be fine. Most
+people will probably only need to alter:
-@c #### The following section is lifted verbatim from the XEmacs User's
-@c Manual, file packages.texi.
-@node Creating Packages, Issues, Local.rules File, Packaging
+@itemize @bullet
+@item @var{XEMACS_INSTALLED_PACKAGES_ROOT}
+@item @var{NONMULE_INSTALLED_PACKAGES_ROOT}
+@item @var{MULE_INSTALLED_PACKAGES_ROOT}
+@item @var{NONMULE_PACKAGES}
+@item @var{MULE_PACKAGES}
+@end itemize
+
+@node Creating Packages, Documenting Packages, Local.rules File, Packaging
@comment node-name, next, previous, up
@cindex creating packages
-@heading Creating Packages:
+@chapter Creating Packages:
Creating a package from an existing Lisp library is not very difficult.
In addition to the Lisp libraries themselves, you need a
-@file{package-info.in} file and a simple @file{Makefile}. The rest is
+@ref{package-info.in} file and a simple @ref{Makefile}. The rest is
done by @file{XEmacs.rules}, part of the packaging system
infrastructure.
-@file{package-info.in} contains a single Lisp form like this:
+@menu
+* package-info.in:: package-info.in
+* Makefile:: @file{Makefile}
+@end menu
+
+@node package-info.in, Makefile,,Creating Packages
+@chapter package-info.in
+@cindex package-info.in
+@cindex package-info
+@file{package-info.in} contains information that gets injected into the
+@file{package-index} file when @code{make bindist} is run. Here is a
+real world example from the xemacs-base package (a description of each
+field follows the example):
@example
-(NAME ; your package's name
+(xemacs-base
(standards-version 1.1
- version VERSION ; Makefile
- author-version AUTHOR_VERSION ; Makefile
- date DATE ; Makefile
- build-date BUILD_DATE ; generated
- maintainer MAINTAINER ; Makefile
- distribution DISTRIBUTION ; "mule" if MULE is needed,
- ; else "xemacs"
+ version VERSION
+ author-version AUTHOR_VERSION
+ date DATE
+ build-date BUILD_DATE
+ maintainer MAINTAINER
+ distribution xemacs
priority high
- category CATEGORY ; Makefile
+ category CATEGORY
dump nil
- description "DESCRIPTION" ; a one-line period-terminated string
- filename FILENAME ; obsolete
- md5sum MD5SUM ; generated
- size SIZE ; generated
- provides (FEATURE ...) ; one for every `provides' form
- requires (REQUIRES) ; Makefile
- ; NOT run-time dependencies! These
- ; are files that provide macros or
- ; defsubsts that must be inlined.
+ description "Fundamental XEmacs support, you almost certainly need this."
+ filename FILENAME
+ md5sum MD5SUM
+ size SIZE
+ provides (add-log advice-preload advice annotations assoc case-table chistory comint-xemacs comint compile debug ebuff-menu echistory edmacro ehelp electric enriched env facemenu ffap helper imenu iso-syntax macros novice outline passwd pp regexp-opt regi ring shell skeleton sort thing time-stamp timezone tq xbm-button xpm-button)
+ requires (REQUIRES)
type regular
))
@end example
-You should replace NAME, DISTRIBUTION, DESCRIPTION, and FEATURE ... with
-appropriate values, according to the comments. As a matter of style,
-the first letter of the description should be capitalized, and the
-string should end with a period. It need not be a complete sentence
-grammatically. Fields marked as @samp{obsolete} can be ignored. Fields
-marked as @samp{generated} are generated by the package construction
-process, and will be filled in automatically. Fields marked as
-@samp{Makefile} should be set as variables in the @file{Makefile}.
-
-The @samp{provides} can be done automatically, but currently aren't. It
-would probably be a good idea to set them in the @file{Makefile} (they
-do change, fairly often, but at present they aren't.
-
-The @file{Makefile} is quite stylized. The idea is similar to an
-@file{Imakefile} or an @code{automake} file: the complexity is hidden in
-generic rules files, in this case the @file{XEmacs.rules} include file
-in the top directory of the packages hierarchy.
-
-An @xpms{} @file{Makefile} has three components. First, there is a
-variable definition section. The standard @xpms{} @file{make} variables
-must be defined here for use by the @file{XEmacs.rules} include file.
-Second, the file @file{../../XEmacs.rules} is included. Finally, the
-@file{make} rules are defined, possibly including additional variable
-definitions for use by the @file{Makefile}. These always include rules
-for the targets @samp{all}, @samp{binkit}, and @file{srckit}.
-
-Although a number of facilities are available for complex libraries,
-most simple packages' @file{Makefile}s contain a copyright notice, the
-variable definitions mentioned above, and some boilerplate.
+@subheading Description of the Fields in @file{package-info.in}:
+@table @samp
+@item NAME
+The name of the package. In the case of the example it is
+@samp{xemacs-base}.
-@example
-# Makefile for apackage's lisp code
+@item standards-version
+Part of the internal package infrastructure, its value should always be
+@samp{1.1}. Do not change this.
+
+@item version
+This is the XEmacs package version number of the package. It is set
+from the @file{Makefile} variable @var{VERSION}. This is something that
+the XEmacs Package Release Engineer deals with so there is no need for a
+package maintainer to touch it. In @file{package-info.in} just put the
+place-marker, @samp{VERSION} here.
+
+@item author-version
+This is the package's internal, or @samp{upstream} version number if it
+has one. It is set from the @file{Makefile} variable
+@var{AUTHOR_VERSION}.
+
+@item date
+This is the date of the last change made to the package. It is
+auto-generated at build time, taken from the package's toplevel
+@file{ChangeLog}.
-# This file is part of XEmacs.
+@item build-date
+The date the package was built. It is auto-generated.
-# XEmacs is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any
-# later version.
+@item maintainer
+This is the name and email address of the package's maintainer. It is
+taken from the @file{Makefile} variable @var{MAINTAINER}.
-# XEmacs is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# for more details.
+@item distribution
+An unused field, leave as @samp{xemacs}
-# You should have received a copy of the GNU General Public License
-# along with XEmacs; see the file COPYING. If not, write to
-# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
+@item priority
+An unused field, can be any of @samp{high}, @samp{medium}, or
+@samp{low}.
-VERSION = 0.00
-AUTHOR_VERSION = 0.00
-MAINTAINER = A. M. Aintainer <ama@@not.a.doc>
-PACKAGE = apackage
-PKG_TYPE = regular
-REQUIRES = xemacs-base
-CATEGORY = standard
+@item category
+The @samp{category} of the package. It is taken from the
+@file{Makefile} variable @var{CATEGORY} and can be either
+@samp{standard} for non-Mule packages, or @samp{mule} for Mule
+packages. The is also provision for @samp{unsupported} in this field
+which would be for packages that XEmacs.org do not distribute.
-# All .els should be compiled and packaged.
-ELS = $(wildcard *.el)
-ELCS = $(ELS:.el=.elc)
+@strong{N.B.} As yet, the @xpms{} does @emph{not} support this type of
+package. It will in the future.
-include ../../XEmacs.rules
+@item dump
+Unused. Always @samp{nil}
-all:: $(ELCS) auto-autoloads.elc custom-load.elc
+@item description
+A free form short description of the package.
-srckit: srckit-std
+@item filename
+The file name of the package's binary tarball. It is generated at build
+time by @code{make bindist}.
-binkit: binkit-common
-@end example
+@item md5sum
+The MD5 message digest of the package's binary tarball. Generated at
+build time by @code{make bindist}.
-@menu
-* package-compile.el::
-* package-info.in Fields::
-* Makefile Variables::
-* Makefile Targets::
-@end menu
+@item size
+The size in bytes of the package's binary tarball. Generated at build
+time.
+@item provides
+A whitespace separated list of @emph{all} the features the package
+provides. Surround the list with parens.
-@node package-compile.el, package-info.in Fields, , Creating Packages
+@item requires
+Taken from the @file{Makefile} variable @var{REQUIRES}. It is a list of
+all the package's dependencies, including any macros and defstructs that
+need to be inlined.
-The @xpms{} does not automatically become aware of your package simply
-because there is a new subtree. If any package, including your own,
-requires any of your files, it must be explicitly added to the compile
-environment or loads/requires that search load-path will fail. The
-changes that need to be made are
+@samp{REQUIRES} cannot be correctly computed from the calls to
+@code{require} in the package's library sources. @samp{REQUIRES} is
+used to ensure that all macro and defstruct definitions used by the
+package are available at build time. This is not merely a matter of
+efficiency, to get the expansions inlined. In fact, it is
+@emph{impossible} to call a macro by name in byte-compiled Emacs Lisp
+code. Thus, if the macro expansion is not inlined, the call will result
+in an error at run-time! Thus, packages providing libraries that would
+be loaded because of autoload definitions must also be included.
-@table @strong
-@item an entry in @code{package-directory-map}
-This tells the @xpms{} which distribution (currently
-@samp{xemacs-packages} or @samp{mule-packages}) your package is found
-in. It then looks in the distribution subdirectory whose name is the
-same as the package's.
+@item type
+Can either be @samp{regular} for a regular package, or
+@samp{single-file} for a single file package.
-@item an entry in the @code{cond} in @code{package-name-to-directory}
-This is optional; it is necessary only if you keep your Lisp code
-somewhere other than the top-level directory of the package's source
-tree, eg, in @file{packages/xemacs-packages/@var{PACKAGE}/lisp}.
+@strong{N.B.} This doesn't refer to the number of lisp files in a
+package. A single-file package can have multiple lisp files in it.
+@xref{Package Terminology}.
@end table
-This only needs to be done once, when the package is first added to the
-@xpms{}. (Well, when you randomly change the subdirectory layout, too.)
-Your changes to @file{package-compile.el} must be cleared and checked in
-by the XEmacs Package Release Engineer before your package will build
-correctly from a fresh checkout.
-
-This is unfortunate; it works pretty well once set up, but can cause
-confusion when first building a package in the @xpms{} context. In
-particular, if the @code{package-directory-map} entry for a required
-package
-@c #### including the package itself?
-is not found, the necessary requires will not be executed by
-@file{package-compile.el}. If required functions are executed (under
-@code{eval-when-compile}), they won't be found and the compile will
-fail. If required function is actually a macro, the byte compiler will
-not recognize that, compile a function call to the macro. This will
-cause a run-time error because the byte-code interpreter does not know
-how to execute macros. (Macros can always be expanded at compile-time,
-and this is more efficient.)
-
-If your package keeps some or all Lisp code somewhere other than the top
-directory, then an entry in @code{package-name-to-directory} is also
-necessary, or requires will fail, leading to the problems just described.
-
-
-@node package-info.in Fields, Makefile Variables, package-compile.el, Creating Packages
-
-The @file{package-info.in} structure is simply Lisp data, to be read by
-a Lisp script, have values substituted for variables, and then written
-out (appropriately quoted) into a loadable Lisp file, to be consed into
-the @file{package-index.el} list at the FTP archives. That list is
-structured as an alist with package names as keys. The package data is
-a plist. Do not rely on this, as it may change. If you have a good
-reason for relying on it, let the maintainers know and we may
-incorporate it in a future revision of the @xpms{} standard.
-
-There are several kinds of fields, distinguished by how they get their
-values. There are literals written into @file{package-info.in} by the
-package maintainer. There are variables substituted in by the build
-process, some computed, and others written as values of @file{make}
-variables in the @file{Makefile} by the package maintainer. There are a
-few implementation constants, some of which are simply the default value
-for obsolete fields.
-
-The @file{package-info.in} literals provided by the maintainer generally
-should not change over the life of the package. (The exception is the
-@samp{provides} field, which should be generated, but isn't yet.)
-Values described as ``literal'' below are unquoted literal text. These
-are normally interpreted as symbols by the package build process. The
-maintainer literals are
-
-@table @asis
-@item @var{package_name}
-A literal. The only unnamed ``field,'' the name of the package.
-
-@item distribution
-A literal, either @samp{xemacs} (for generic packages) or @samp{mule}
-(for packages requiring Mule). @xref{Package Terminology}.
+The fields in @file{package-info.in} that need to be changed directly
+are:
+@itemize @bullet
+@item NAME
@item description
-A Lisp string containing a one-line text description for use in package
-listings.
-
@item provides
-A (Lisp) list of features provided by the libraries in the package. All
-of the features provided by libraries in your package should be elements
-of this list.
-
@item type
-A literal, either @samp{regular} or @samp{single-file}. For practical
-purposes, @samp{regular} should be considered an implementation constant.
-@end table
-
-@c #### The following should be rewritten to @xref the make variables
-@c node, and simply associate the field names to the make variables with
-@c one line of description.
-Values which are expected to change regularly as the package is enhanced
-are implemented as @file{make} variables. You should not change them in
-the @file{package-info.in} file; they are automatically filled in by the
-build process.
-
-The corresponding field name is given in parentheses. These include
-
-@table @code
-@item VERSION
-(version)
-The version of the XEmacs package, a numeric literal (a decimal
-fixed-point number with two-places of precision).
-
-@item AUTHOR_VERSION
-(author-version)
-The upstream author's version, an unintepreted literal.
+@end itemize
-@item DATE
-(date)
-Date of release of the upstream version.
+Everything else is either set from the appropriate @file{Makefile}
+variable, is auto-generated at build time, or is static.
-@item MAINTAINER
-(maintainer)
-A literal containing the XEmacs package's maintainer and his/her email
-address.
-
-@item CATEGORY
-(category)
-A literal, either @samp{standard} or @samp{mule}. Probably redundant.
-
-@item REQUIRES
-(requires)
-A list of packages required to correctly build this package.
-
-Note that the usual form in @file{package-info.in} already has the
-parentheses, so the @file{make} variable should be set to a
-space-separated list of package names @emph{not} enclosed in
-parentheses.
+@node Makefile,,package-info.in,Creating Packages
+@chapter @file{Makefile}
+@cindex Makefile, package
+@cindex package Makefile
+The @file{Makefile} is quite stylized. The idea is similar to an
+@file{Imakefile} or an @code{automake} file: the complexity is hidden in
+generic rules files, in this case the @file{XEmacs.rules} include file
+in the top directory of the packages hierarchy.
-The list is of @emph{packages}, not @emph{libraries}, as would
-ordinarily be provided to the Lisp @code{require} function.
+It is important to note that the XEmacs used to compile packages is
+the bare minimum: it is called with the @samp{-no-autoloads}. This
+means that anything not dumped into XEmacs by default needs to be
+specified in the @samp{REQUIRES} variable (for packaged Lisp) or in
+some cases the @samp{PRELOADS} (autoloads used in libraries mentioned
+in @samp{PRELOADS}).
-@samp{REQUIRES} cannot be correctly computed from the calls to
-@code{require} in the package's library sources. @samp{REQUIRES} is
-used to ensure that all macro and defstruct definitions used by the
-package are available at build time. This is not merely a matter of
-efficiency, to get the expansions inlined. In fact, it is
-@emph{impossible} to call a macro by name in byte-compiled Emacs Lisp
-code. Thus, if the macro expansion is not inlined, the call will result
-in an error at run-time! Thus, packages providing libraries that would
-be loaded because of autoload definitions must also be included.
+There isn't much to an @xpms{} @file{Makefile}, basically it just
+contains a few @file{Makefile} variables and that's it. See the
+example.
-On the other hand, if a package provides no macros to this package, it
-is preferable @emph{not} to include it in @samp{REQUIRES}, because it is
-not uncommon that if the developer doesn't normally use the required
-package, he will never use the functionality in the package being built,
-either. In that case it would be preferable to not require the
-developer to have source for the dependencies. That said, of course it
-is safe to put too many packages in @samp{REQUIRES}.
-@end table
+Here is a real world example, from the @samp{build} package:
-Values for the following fields are automatically generated by the build
-process.
+@example
+# Makefile for build lisp code
-@table @asis
-@item build-date
-The date the package tarball was generated.
+# This file is part of XEmacs.
-@item md5sum
-An MD5 checksum for the package tarball, as gzipped.
+# XEmacs is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2, or (at your option) any
+# later version.
-@item size
-The size of the package tarball, as gzipped.
-@end table
+# XEmacs is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
-It is not clear that either md5sum or size works correctly if the
-@samp{BZIP2} variable in @file{Local.rules} is set.
+# You should have received a copy of the GNU General Public License
+# along with XEmacs; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
-The implementation constants are
+# For the time being, remove MULE_ELCS from the all dependencies if
+# building without Mule.
-@table @asis
-@item standards-version
-Currently 1.1. Defines the format of the @file{package-info.in} file
-and the @file{Makefile}. A true implementation constant.
+VERSION = 1.10
+AUTHOR_VERSION = 2.02
+MAINTAINER = Adrian Aichner <adrian@@xemacs.org>
+PACKAGE = build
+PKG_TYPE = regular
+REQUIRES = xemacs-base pcl-cvs dired w3 prog-modes
+CATEGORY = standard
-@item priority
-An unimplemented and underspecified feature. Suggestions for
-specification and implementation welcome.
+ELCS = build.elc build-report.elc
-@item dump
-An obsolete feature, superseded by the @file{site-load.el} mechanism.
-The value should always be nil.
+STANDARD_DOCS = t
-@item filename
-An obsolete feature, completely ignored. Don't even think about doing
-anything useful with it.
-@end table
+include ../../XEmacs.rules
+@end example
+Most packages don't need any more than what you see above. It is
+usually @emph{not} necessary to specify any special @file{Makefile}
+rules. Everything is handled from the @file{*.rules} files in the
+toplevel of the package source hierarchy.
-@node Makefile Variables, Makefile Targets, package-info.in Fields, Creating Packages
+Of course, with that said, there are always exceptions to the rule. If
+you think that your package will need some special @file{Makefile}
+hackery contact the @email{xemacs-beta@@xemacs.org, XEmacs developers}.
+We distribute over 100 packages so the chances are good that you won't
+be the first to need such hackery and it is probably already catered
+for.
+@subheading @file{Makefile} Variables Explained:
A number of @file{make} variables are defined by the @xpms{}. Some are
required, others are optional. Of course your @file{Makefile} may
define other variables for private use, but you should be careful not to
The corresponding field names for @file{package-info.in}, where
relevant, are given in parentheses.
-@c #### This is the canonical place for this information. If there is
+@c This is the canonical place for this information. If there is
@c unnecessary duplication with package-info.in documentation, shorten
@c that and leave this full-length.
-@table @code
+@table @samp
@item VERSION
(version)
The version of the XEmacs package, a numeric literal (a decimal
-fixed-point number with two-places of precision).
+fixed-point number with two-places of precision). The only person who
+ever needs to touch this is the XEmacs Packages Release Engineer.
@item AUTHOR_VERSION
(author-version)
-The upstream author's version, an unintepreted literal.
-
-@item DATE
-(date)
-Date of release of the upstream version.
+The upstream author's version, an uninterpreted literal.
@item MAINTAINER
(maintainer)
A literal containing the XEmacs package's maintainer and his/her email
address.
+@item PACKAGE
+The name of the package, a literal
+
+@item PKG_TYPE
+The type of package, a literal containing either @samp{regular} for
+regular packages, or @samp{single-file} for single-file packages. This
+should feed the @samp{type} field in @file{package-info.in}, but
+currently it doesn't.
+
+@strong{N.B.} @samp{single-file} here does @emph{not} refer to the
+number of lisp files in a package. @xref{Package Terminology}.
+
@item CATEGORY
(category)
-A literal, either @samp{standard} or @samp{mule}. Probably redundant.
+A literal, either @samp{standard} or @samp{mule}. The non-Mule packages
+are @samp{standard} and the Mule packages are, you guessed it,
+@samp{mule}. This field is used at package installation time as part of
+the process of determining where a package should be installed to.
@item REQUIRES
(requires)
in an error at run-time! Thus, packages providing libraries that would
be loaded because of autoload definitions must also be included.
-On the other hand, if a package provides no macros to this package, it
-is preferable @emph{not} to include it in @samp{REQUIRES}, because it is
-not uncommon that if the developer doesn't normally use the required
-package, he will never use the functionality in the package being built,
-either. In that case it would be preferable to not require the
-developer to have source for the dependencies. That said, of course it
-is safe to put too many packages in @samp{REQUIRES}.
-
@item ELCS
The list of the byte-compiled Lisp files used by the package. These
files and their @file{.el} versions will be included in the binary
do sanity checking to @email{xemacs-patches@@xemacs.org}.
@end table
-Optional, but very commonly used variables include:
+Optional, but commonly used variables are explained below.
-@table @code
-item EXTRA_SOURCES
-Other files (such as extra Lisp sources or an upstream @file{Makefile})
-that are normally placed in the installed Lisp directory, but not
-byte-compiled. These files are @emph{preserved} by the @samp{clean}
-targets.
+@table @samp
+@item ELCS_1
+A list of extra byte-compiled Lisp files used by the package to be
+installed in a subdirectory of the package's lisp directory. The same
+care should be taken with this as with @var{ELCS} in regard to
+@code{make clean}.
+
+@item ELCS_1_DEST
+The name of the subdirectory for the @var{ELCS_1} files to be installed
+to. Be sure to include @samp{$(PACKAGE)/} as part of the name.
+
+@example
+ELCS_1_DEST = $(PACKAGE)/extra
+@end example
+
+Would put the @var{ELCS_1} files for the package, @samp{foo} into
+@file{xemacs-packages/lisp/foo/extra/}.
+
+@item EARLY_GENERATED_LISP
+For additional @file{.el} files that will be generated before any
+byte-compiling happens. Use this for @samp{autoload-type} files. You
+must write @file{Makefile} rules to build these files.
-@item EXTRA_OBJS
-Other files (such as compiled autoload or concatenated @file{.elc}
-libraries) which are normally placed in the installed Lisp directory,
-but do @emph{not} have corresponding source files and @emph{should} be
-deleted by the @samp{clean} targets. Some of these (such as
-package-specific autoload setups) can and probably should be replaced by
-@xpms{} solutions such as @file{auto-autoloads.el}, but many cannot.
+@item GENERATED_LISP
+For additional @file{.el} files that will be generated at
+byte-compilation time. You must write @file{Makefile} rules to build
+these files.
-@item PRELOADS
-A specification for loading libraries containing macros before compiling
-the Lisp in the package. This is spliced directly into the invocation
-of XEmacs for byte-compilation, so it must contain the @samp{-l} flag
-for XEmacs:
+@item PRELOADS
+This is used if you need to pass extra command line arguments to
+XEmacs to build the package. For instance, a specification for
+loading libraries containing macros before compiling the Lisp in the
+package. This is spliced directly into the invocation of XEmacs for
+byte-compilation, so it must contain the @samp{-l} flag for XEmacs:
@example
PRELOADS=-l ./apackage-macros.el -l ../bpackage/lisp/bpackage-macros.el
@end example
-@item INFO_FILES
-Any Info file(s) generated by the package. These must be paths relative
-to the root of the package's source tree.
+Preloads are loaded before @file{package-compile.el}, so the
+@var{load-path} is minimal. Therefore @samp{PRELOADS} must specify a
+full path to packaged Lisp. The base @var{load-path} does include the
+core Lisp directory, so core libraries are found.
-@item TEXI_FILES
-The Texinfo source file(s). These must be paths relative
-to the root of the package's source tree.
+@item AUTOLOAD_PATH
+The subdirectory in the package's source tree where the @file{.el} files
+reside. This is where the @file{auto-autoloads.el} file will be placed.
-@item MANUAL
-The name to be used for Info files and man pages.
+@strong{N.B.} There is no need to use this variable if the @file{.el}
+files are in the package's toplevel directory. @var{AUTOLOAD_PATH}
+defaults to @samp{.}.
-@item DATA_FILES
-Any data files, such as pixmaps, READMEs, and ChangeLogs. These must be
-paths relative to the root of the package's source tree.
+@item PACKAGE_SUPPRESS
+Place calls to @code{package-suppress} here to indicate Lisp libraries
+that should only be available to particular versions of XEmacs. For
+example:
-@item DATA_DEST
-The installation location for data files, relative to the @file{etc/}
-directory of the package hierarchy. The normal value is simply
-$(PACKAGE). Leaving it empty (@emph{i.e.}, put it directly under
-@file{etc/}) will probably work, but is subject to name conflicts with
-other packages.
-@end table
+@example
+PACKAGE_SUPPRESS = \
+ (package-suppress 'xemacs-base \"regexp-opt\" '(emacs-version>= 21 5 11)) \
+ (package-suppress 'xemacs-base \"easy-mmode\" '(emacs-version>= 21 5 11))
+@end example
-Rarely used variables.
+@c Change this when Ben has committed the WS that implements
+@c `package-suppress' --SY.
+@strong{N.B.} This feature has not yet been implemented in XEmacs yet.
+It will appear in an upcoming version of XEmacs 21.5.
-@c @table @code
-@c @item
-@c @end table
+@item STANDARD_DOCS
+Set this to @samp{t} if your package's Texinfo source file is located in
+the package's toplevel directory @emph{and} is named
+@file{$(PACKAGE).texi}.
-@node Makefile Targets, , Makefile Variables, Creating Packages
+@item EXPLICIT_DOCS
+Use this to explicitly list Texinfo sources that @emph{aren't} in the
+package's toplevel directory. For example:
-The standard targets that need to be defined in your @file{Makefile}
-follow. These normally should @emph{not} have an action. All of the
-work should be done by dependent targets, usually having standard
-definitions in the @xpms{}.
+@example
+EXPLICIT_DOCS = texi/$(PACKAGE).texi
+@end example
-@table @samp
-@item all
-A list of generated files, usually byte-compiled Lisp libraries, to be
-bundled in the package. The typical dependencies are
+See @var{DOCS_TXI_EXTENSION} and @var{DOCS_TEXINFO_EXTENSION} if you
+don't use the @file{.texi} file extension on your Texinfo sources.
+
+@item EXTRA_TEXI_FILES
+List here extra Texinfo source files needed to build your
+documentation. Whatever is listed here is passed on to @code{makeinfo}
+as a dependency.
+
+@item EXTRA_HTML_FILES
+Use this to specify extra @file{.html} files to output.
+
+@item DOCS_TEXINFO_EXTENSION
+Set this to @samp{t} if your Texinfo source files have a @samp{.texinfo}
+extension.
+
+@item DOCS_TXI_EXTENSION
+Set this to @samp{t} if your Texinfo source files have a @samp{.txi}
+extension.
+
+@item EXTRA_DOC_FILES
+Files listed here will be installed to @file{.../man/$(PACKAGE)/}. For
+example, you might want to list @TeX{} files or @file{.eps} files here.
+
+@item EXTRA_SOURCES
+Other files (such as extra Lisp sources or an upstream @file{Makefile})
+that are normally placed in the installed Lisp directory, but not
+byte-compiled. These files are @emph{preserved} by the @samp{clean}
+targets.
+
+@item LIBSRC_FILES
+For files that need to be installed to @file{lib-src/$(PACKAGE)/}. If
+the files listed here need to be built you will have to write
+@file{Makefile} rules to do so.
+
+@item DATA_FILES
+Any data files, such as pixmaps, READMEs, and ChangeLogs. These must be
+paths relative to the root of the package's source tree. These files
+will be copied to @samp{$(DATA_DEST)} for installation. Any directory
+component of the path for a file will be stripped, so that the
+file ends up in @samp{$(DATA_DEST)}, not in a subdiredtory.
+
+@item DATA_DEST
+The directory where the files in @var{DATA_FILES} are installed to. It
+is a subdirectory of the installed @file{etc/} directory. Be sure to
+prefix this value with @samp{$(PACKAGE)}, for example:
@example
-$(ELCS) auto-autoloads.elc custom-load.elc
+DATA_DEST = $(PACKAGE)/foo
@end example
-Other targets (such as Info files) may need to be added as dependencies
-for the @code{all} target.
+Would put files into @file{.../etc/$(PACKAGE)/foo/}.
-@item srckit
-The target for generating a source package. Not implemented. If it
-were, the normal dependency would be @samp{srckit-std}.
+@item DATA_1_FILES ... DATA_35_FILES
+For data files that need to go into a different directory from
+@var{DATA_DEST}.
-@item binkit
-The target for creating a ``master'' installation. Binary packages are
-actually generated by the @samp{bindist} target. @xref{Building Packages}.
+@item DATA_1_DEST ... DATA_35_DEST
+The name of the subdirectory for files specified in @var{DATA_n_FILES}.
+And like @var{DATA_DEST}, be sure to prefix @samp{$(PACKAGE)} to the
+value of these variables.
+
+@item EXTRA_DEPENDENCIES
+For additional files to build that aren't appropriate to place in any
+other @file{Makefile} variable. You will need to write @file{Makefile}
+rules to build these files.
@end table
-Standard dependencies for @code{srckit} and @code{binkit} are defined in
-@file{XEmacs.rules}. The most useful of these values are given in the
-following table.
+@section @file{package-compile.el}
+@cindex package-compile.el
+@cindex compiling packages
+The @xpms{} does not automatically become aware of your package simply
+because there is a new subtree. If any package, including your own,
+requires any of your files, it must be explicitly added to the compile
+environment or loads/requires that search load-path will fail. The
+changes that need to be made are
-@table @samp
-@item srckit-std
-Build a standard source kit. Not fully implemented.
+@table @strong
+@item an entry in @code{package-directory-map}
+This tells the @xpms{} which distribution (currently
+@samp{xemacs-packages} or @samp{mule-packages}) your package is found
+in. It then looks in the distribution subdirectory whose name is the
+same as the package's.
-@item binkit-sourceonly
-The @samp{binkit} target need only install source and compiled Lisp in
-the staging area. There is nothing to install in a data directory or
-info directory.
+@item an entry in the @code{cond} in @code{package-name-to-directory}
+This is optional; it is necessary only if you keep your Lisp code
+somewhere other than the top-level directory of the package's source
+tree, eg, in @file{packages/xemacs-packages/@var{PACKAGE}/lisp}.
+@end table
-@item binkit-sourceinfo
-Both source and info files are to be installed in the staging area.
+This only needs to be done once, when the package is first added to the
+@xpms{}. (Well, when you randomly change the subdirectory layout, too.)
+Your changes to @file{package-compile.el} must be cleared and checked in
+by the XEmacs Package Release Engineer before your package will build
+correctly from a fresh checkout.
+
+This is unfortunate; it works pretty well once set up, but can cause
+confusion when first building a package in the @xpms{} context. In
+particular, if the @code{package-directory-map} entry for a required
+package, including the package itself, is not found, the necessary
+requires will not be executed by @file{package-compile.el}. If
+required functions are executed (under @code{eval-when-compile}),
+they won't be found and the compile will fail. If required function
+is actually a macro, the byte compiler will not recognize that,
+compile a function call to the macro. This will cause a run-time
+error because the byte-code interpreter does not know how to execute
+macros. (Macros can always be expanded at compile-time, and this is
+more efficient.)
+
+If your package keeps some or all Lisp code somewhere other than the top
+directory, then an entry in @code{package-name-to-directory} is also
+necessary, or requires will fail, leading to the problems just described.
-@item binkit-sourcedata
-Both source and etc (data) files are to be installed in the staging
-area.
+@node Documenting Packages, Issues, Creating Packages, Packaging
+@comment node-name, next, previous, up
+@cindex documenting packages
+@heading Documenting Packages:
-@item binkit-sourcedatainfo
-Source, etc (data), and info files all are present and need to be
-installed in the staging area.
+@c #### Add a documentation section to Internals, and xref here.
+Some random notes on documenting your package.
-@item binkit-common
-A dependency for all the above. (In fact in the current implementation
-@samp{binkit-common} does all the work for all of the @samp{binkit}
-targets.)
-@end table
+Do write a Texinfo file. It's not that hard to do basically, and even
+using the more advanced features of Texinfo soon become natural. For a
+start, just grab the template @file{Samples/package.texi} from the
+@xpms{} source tree, and drop your current README into the Top node. At
+least this way your documentation will be accessible from the standard
+Info readers. Next, try to add lots of cross-referencing and logical
+markup, and then node structure.
+
+Address both end users and developer issues. You may not be the
+maintainer forever.
+
+If you are maintaining a package that is part of the GNU Emacs
+distribution, you'll likely find that you occasionally synchronize your
+package with the GNU Emacs sources. When you synch a file,
+conventionally you should place a comment just above the standard
+@code{;;; Code} comment that looks like this:
+
+@example
+;; Synched with:
+;; GNU Emacs 21.1, 2002-02-08, Stephen Turnbull <stephen@@xemacs.org>
+@end example
-Data files include things like pixmaps for a package-specific toolbar,
-and are normally installed in @file{etc/@var{PACKAGE_NAME}}. A few
-packages have needs beyond the basic templates. See @file{XEmacs.rules}
-or a future revision of this manual for details.
+This comment is a status flag; the ChangeLog doesn't really give the
+same information.
+Do maintain a detailed ChangeLog.
-@node Issues, , Creating Packages, Packaging
+@node Issues, , Documenting Packages, Packaging
@section Issues
To be completed.
connection and when the @code{pq-setenv} call is made.
@defvar pg:host
-Initialized from the @var{PGHOST} environment variable. The default
+Initialized from the @code{PGHOST} environment variable. The default
host to connect to.
@end defvar
@defvar pg:user
-Initialized from the @var{PGUSER} environment variable. The default
+Initialized from the @code{PGUSER} environment variable. The default
database user name.
@end defvar
@defvar pg:options
-Initialized from the @var{PGOPTIONS} environment variable. Default
+Initialized from the @code{PGOPTIONS} environment variable. Default
additional server options.
@end defvar
@defvar pg:port
-Initialized from the @var{PGPORT} environment variable. The default TCP
-port to connect to.
+Initialized from the @code{PGPORT} environment variable. The default
+TCP port to connect to.
@end defvar
@defvar pg:tty
-Initialized from the @var{PGTTY} environment variable. The default
+Initialized from the @code{PGTTY} environment variable. The default
debugging TTY.
Compatibility note: Debugging TTYs are turned off in the XEmacs Lisp
@end defvar
@defvar pg:database
-Initialized from the @var{PGDATABASE} environment variable. The default
-database to connect to.
+Initialized from the @code{PGDATABASE} environment variable. The
+default database to connect to.
@end defvar
@defvar pg:realm
-Initialized from the @var{PGREALM} environment variable. The default
+Initialized from the @code{PGREALM} environment variable. The default
Kerberos realm.
@end defvar
@defvar pg:client-encoding
-Initialized from the @var{PGCLIENTENCODING} environment variable. The
+Initialized from the @code{PGCLIENTENCODING} environment variable. The
default client encoding.
Compatibility note: This variable is not present in non-Mule XEmacsen.
@c unused
@defvar pg:authtype
-Initialized from the @var{PGAUTHTYPE} environment variable. The default
-authentication scheme used.
+Initialized from the @code{PGAUTHTYPE} environment variable. The
+default authentication scheme used.
Compatibility note: This variable is unused in versions of libpq after
6.5. It is not implemented at all in the XEmacs Lisp binding.
@end defvar
@defvar pg:geqo
-Initialized from the @var{PGGEQO} environment variable. Genetic
+Initialized from the @code{PGGEQO} environment variable. Genetic
optimizer options.
@end defvar
@defvar pg:cost-index
-Initialized from the @var{PGCOSTINDEX} environment variable. Cost index
-options.
+Initialized from the @code{PGCOSTINDEX} environment variable. Cost
+index options.
@end defvar
@defvar pg:cost-heap
-Initialized from the @var{PGCOSTHEAP} environment variable. Cost heap
+Initialized from the @code{PGCOSTHEAP} environment variable. Cost heap
options.
@end defvar
@defvar pg:tz
-Initialized from the @var{PGTZ} environment variable. Default
+Initialized from the @code{PGTZ} environment variable. Default
timezone.
@end defvar
@defvar pg:date-style
-Initialized from the @var{PGDATESTYLE} environment variable. Default
+Initialized from the @code{PGDATESTYLE} environment variable. Default
date style in returned date objects.
@end defvar
An unexpected response was received from the backend.
@item pgres::nonfatal-error
Undocumented. This value is returned when the libpq function
-@code{PQresultStatus} is called with a @var{NULL} pointer.
+@code{PQresultStatus} is called with a @code{NULL} pointer.
@item pgres::fatal-error
Undocumented. An error has occurred in processing the query and the
operation was not completed.
@end defun
@defun pq-get-is-null result tup-num field-num
-Return t if the specific value is the SQL @var{NULL}.
+Return t if the specific value is the SQL @code{NULL}.
@var{result} is a PGresult object.
@var{tup-num} selects which tuple to fetch from.
@var{field-num} selects which field to fetch from.
The following options are available in the options string:
@table @code
@item authtype
-Authentication type. Same as @var{PGAUTHTYPE}. This is no longer used.
+Authentication type. Same as @code{PGAUTHTYPE}. This is no longer used.
@item user
-Database user name. Same as @var{PGUSER}.
+Database user name. Same as @code{PGUSER}.
@item password
Database password.
@item dbname
-Database name. Same as @var{PGDATABASE}
+Database name. Same as @code{PGDATABASE}
@item host
-Symbolic hostname. Same as @var{PGHOST}.
+Symbolic hostname. Same as @code{PGHOST}.
@item hostaddr
Host address as four octets (eg. like 192.168.1.1).
@item port
-TCP port to connect to. Same as @var{PGPORT}.
+TCP port to connect to. Same as @code{PGPORT}.
@item tty
-Debugging TTY. Same as @var{PGTTY}. This value is suppressed in the
+Debugging TTY. Same as @code{PGTTY}. This value is suppressed in the
XEmacs Lisp API.
@item options
-Extra backend database options. Same as @var{PGOPTIONS}.
+Extra backend database options. Same as @code{PGOPTIONS}.
@end table
A database connection object is returned regardless of whether a
connection was established or not.
@end defun
@defun pq-env-2-encoding
-Return the integer code representing the coding system in @var{PGCLIENTENCODING}.
+Return the integer code representing the coding system in
+@code{PGCLIENTENCODING}.
@example
(pq-env-2-encoding)
@c -*-texinfo-*-
@c This is part of the XEmacs Lisp Reference Manual.
@c Copyright (C) 1995, 1996 Ben Wing.
+@c Copyright (C) 2002, 2004 Free Software Foundation, Inc.
@c See the file lispref.texi for copying conditions.
@setfilename ../../info/specifiers.info
@node Specifiers, Faces and Window-System Objects, Extents, top
@cindex specifier
A specifier is an object used to keep track of a property whose value
-may vary depending on the particular situation (e.g. particular buffer
-displayed in a particular window) that it is used in. The value of many
-built-in properties, such as the font, foreground, background, and such
-properties of a face and variables such as
-@code{modeline-shadow-thickness} and @code{top-toolbar-height}, is
-actually a specifier object. The specifier object, in turn, is
-``instanced'' in a particular situation to yield the real value
-of the property in that situation.
+should vary according to @emph{display context}, a window, a frame, or
+device. The value of many built-in properties, such as the font,
+foreground, background, and such properties of a face and variables
+such as @code{modeline-shadow-thickness} and
+@code{top-toolbar-height}, is actually a specifier object. The
+specifier object, in turn, is ``instanced'' in a particular situation
+to yield the real value of the property in the current context.
@defun specifierp object
This function returns non-@code{nil} if @var{object} is a specifier.
display and other properties to vary
(under user control) in a wide variety
of contexts.
+* Simple Specifier Usage:: Getting started with specifiers.
* Specifiers In-Depth:: Gory details about specifier innards.
* Specifier Instancing:: Instancing means obtaining the ``value'' of
a specifier in a particular context.
* Specifier Tag Functions:: Working with specifier tags.
* Specifier Instancing Functions::
Functions to instance a specifier.
-* Specifier Example:: Making all this stuff clearer.
+* Specifier Examples:: Making all this stuff clearer.
* Creating Specifiers:: Creating specifiers for your own use.
* Specifier Validation Functions::
Validating the components of a specifier.
@node Introduction to Specifiers
@section Introduction to Specifiers
-Sometimes you may want the value of a property to vary depending on
-the context the property is used in. A simple example of this in XEmacs
-is buffer-local variables. For example, the variable
+Perhaps the most useful way to explain specifiers is via an analogy.
+Emacs Lisp programmers are used to @emph{buffer-local variables}
+@ref{Buffer-Local Variables}. For example, the variable
@code{modeline-format}, which controls the format of the modeline, can
have different values depending on the particular buffer being edited.
The variable has a default value which most modes will use, but a
-specialized package such as Calendar might change the variable so
-as to tailor the modeline to its own purposes.
+specialized package such as Calendar might change the variable so as to
+tailor the modeline to its own purposes. Other variables are perhaps
+best thought of as ``mode local,'' such as font-lock keywords, but they
+are implemented as buffer locals.
Other properties (such as those that can be changed by the
@code{modify-frame-parameters} function, for example the color of the
displayed in all other frames on any mono (two-color, e.g. black and
white only) displays, and a default value in all other circumstances.
-A @dfn{specifier} is a generalization of this, allowing a great deal
-of flexibility in controlling exactly what value a property has in which
-circumstances. It is most commonly used for display properties, such as
-an image or the foreground color of a face. As a simple example, you can
-specify that the foreground of the default face be
+Specifiers generalize both buffer- and frame-local properties.
+Specifiers vary according to the @emph{display} context. Font-lock
+keywords in a buffer will be the same no matter which window the
+buffer is displayed in, but windows on TTY devices will simply not be
+capable of the flexibility that windows on modern GUI devices are.
+Specifiers provide a way for the programmer to @emph{declare} that an
+emphasized text should be italic on GUI devices and inverse video on
+TTYs. They also provide a way for the programmer to declare
+fallbacks, so that a color specified as ``chartreuse'' where possible
+can fall back to ``yellow'' on devices where only ANSI (4-bit) color
+is available. The complex calculations and device querying are
+transparent to both user and programmer. You ask for what you want;
+it's up to XEmacs to provide it, or a reasonable approximation.
+
+We call such a declaration a @dfn{specification}. A @dfn{specification}
+applies in a particular @dfn{locale}, which is a window, buffer, frame,
+device, or the global locale. The value part of the specification is
+called an @dfn{instantiator}. The process of determining the value in a
+particular context, or @dfn{domain}, is called @dfn{instantiation} or
+@dfn{instancing}. A domain is a window, frame, or device.
+
+The difference between @dfn{locale} and @dfn{domain} is somewhat subtle.
+You may think of a locale as a class of domains, which may span
+different devices. Since the specification is abstract (a Lisp form),
+you can state it without reference to a device. On the other hand, when
+you instantiate a specification, you must know the type of the device.
+It is useless to specify that ``blue means emphasis'' on a monochrome
+device. Thus instantiation requires specification of the device on
+which it will be rendered.
+
+Thus a @dfn{specifier} allows a great deal of flexibility in
+controlling exactly what value a property has in which circumstances.
+Specifiers are most commonly used for display properties, such as an image or
+the foreground color of a face. As a simple example, you can specify
+that the foreground of the default face be
@itemize @bullet
@item
white for all other buffers
@end itemize
+@node Simple Specifier Usage
+@section Simple Specifier Usage
+@cindex specifier examples
+@cindex examples, specifier
+@cindex adding a button to a toolbar
+@cindex toolbar button, adding
+
+A useful specifier application is adding a button to a toolbar. XEmacs
+provides several toolbars, one along each edge of the frame. Normally
+only one is used at a time, the default. The default toolbar is
+actually a specifier object which is the value of
+@code{default-toolbar}. @xref{Toolbar Intro}.
+
+The specification of a toolbar is simple: it is a list of buttons.
+Each button is a vector with four elements: an icon, a command, the
+enabled flag, and a help string. Let's retrieve the instance of the
+toolbar you see in the selected frame.
+
+@example
+(specifier-instance default-toolbar)
+@end example
+
+The value returned is, as promised, a list of vectors. Now let's build
+up a button, and add it to the toolbar. Our button will invoke the last
+defined keyboard macro. This is an alternative to
+@code{name-last-kbd-macro} for creating a persistent macro, rather than
+an alias for @kbd{C-x e}.
+
+A toolbar button icon can be quite sophisticated, with different images
+for button up, button down, and disabled states, and a similar set with
+captions. We'll use a very simple icon, but we have to jump through a
+few non-obvious hoops designed to support the sophisticated applications.
+The rest of the button descriptor is straightforward.
+
+@example
+(setq toolbar-my-kbd-macro-button
+ `[ (list (make-glyph "MyKbdMac"))
+ (lambda () (interactive) (execute-kbd-macro ,last-kbd-macro))
+ t
+ "Execute a previously defined keyboard macro." ])
+
+(set-specifier default-toolbar
+ (cons toolbar-my-kbd-macro-button
+ (specifier-specs default-toolbar 'global))
+ 'global)
+@end example
+
+To remove the button, just substitute the function @code{delete} for the
+@code{cons} above.
+
+What is the difference between @code{specifier-instance}, which we used
+in the example of retrieving the toolbar descriptor, and
+@code{specifier-specs}, which was used in the toolbar manipulating code?
+@code{specifier-specs} retrieves a copy of the instantiator, which is
+abstract and does not depend on context. @code{specifier-instance}, on
+the other hand, actually instantiates the specification, and returns the
+result for the given context. Another way to express this is:
+@code{specifier-specs} takes a @emph{locale} as an argument, while
+@code{specifier-instance} takes a @emph{domain}. The reason for
+providing @code{specifier-instance} is that sometimes you wish to see
+the object that XEmacs will actually use. @code{specifier-specs}, on
+the other hand, shows you what the programmer (or user) requested. When
+a program manipulates specifications, clearly it's the latter that is
+desirable.
+
+In the case of the toolbar descriptor, it turns out that these are the
+same: the instancing process is trivial. However, many specifications
+have non-trivial instancing. Compare the results of the following forms
+on my system. (The @samp{(cdr (first ...))} form is due to my use of
+Mule. On non-Mule XEmacsen, just use @code{specifier-specs}.)
+
+@example
+(cdr (first (specifier-specs (face-font 'default) 'global)))
+=> "-*--14-*jisx0208*-0"
+
+(specifier-instance (face-font 'default))
+#<font-instance "-*--14-*jisx0208*-0" on #<x-device on ":0.0" 0x970> 0xe0028b 0x176b>
+@end example
+
+In this case, @code{specifier-instance} returns an opaque object;
+programs can't work on it, they can only pass it around. Worse, in some
+environments the instantiation will fail, resulting in a different value
+(when another instantiation succeeds), or worse yet, an error, if all
+attempts to instance the specifier fail. @code{specifier-instance} is
+context-dependent, even for the exact same specification.
+@code{specifier-specs} is deterministic, and only depends on the
+specifications.
+
+Note that in the toolbar-changing code we operate in the global locale.
+This means that narrower locales, if they have specifications, will
+shadow our changes. (Specifier instancing does not merge
+specifications. It selects the "highest-priority successful
+specification" and instances that.)
+
+In fact, in our example, it seems pretty likely that different buffers
+@emph{should} have different buttons. (The icon can be the same, but
+the keyboard macro you create in a Dired buffer is highly unlikely to be
+useful in a LaTeX buffer!) Here's one way to implement this:
+
+@example
+(setq toolbar-my-kbd-macro-button
+ `[ (list (make-glyph "MyKbdMac"))
+ (lambda () (interactive) (execute-kbd-macro ,last-kbd-macro))
+ t
+ "Execute a previously defined keyboard macro." ])
+
+(set-specifier default-toolbar
+ (cons toolbar-my-kbd-macro-button
+ (cond ((specifier-specs default-toolbar
+ (current-buffer)))
+ ((specifier-specs default-toolbar
+ 'global)))
+ (current-buffer))
+@end example
+
+Finally, a cautionary note: the use of @code{specifier-specs} in the
+code above is for expository purposes. Don't use it in production code.
+In fact, the @code{set-specifier} form above is likely to fail
+occasionally, because you can add many specifications for the same
+locale.
+
+In these cases, @code{specifier-specs} will return a list. A further
+refinement is that a specification may be associated with a set of
+@dfn{specifier tags}. If the list of specifier tags is non-nil, then
+@code{specifier-specs} will return a cons of the tag set and the
+instantiator. Evidently @code{specifier-specs} is a bit unreliable.
+(For toolbars, the code above should work 99% of the time, because
+toolbars are rarely changed. Since instantiation is trivial, multiple
+specs are not useful---the first one always succeeds.)
+
+In fact, @code{specifier-specs} is intended to be used to display specs
+to humans with a minimum of clutter. The robust way to access
+specifications is via @code{specifier-spec-list}. @xref{Adding
+Specifications}, for the definition of @dfn{spec-list}. @xref{Retrieving
+Specifications}, for documentation of @code{specifier-specs} and
+@code{specifier-spec-list}. To get the desired effect, replace the form
+@code{(specifier-spec default-toolbar 'global)} with
+
+@example
+(cdr (second (first (specifier-spec-list default-toolbar 'global))))
+@end example
+
+(It should be obvious why the example uses the lazy unreliable method!)
+
@node Specifiers In-Depth
@section In-Depth Overview of a Specifier
@cindex specification (in a specifier)
@cindex specifier, tag
@cindex specifier, tag set
-A specifier object encapsulates a set of @dfn{specifications}, each of
-which says what its value should be if a particular condition applies.
+Having variables vary according the editing context is very useful, and
+the buffer is the natural ``atomic'' unit of editing context. In a GUI
+environment, it can be similarly useful to have variables whose values
+vary according to display context. The atomic unit of display context
+is the Emacs window. Buffers are cleanly grouped by modes, but windows
+are not so easily pigeonholed. On the one hand, a window displays a
+buffer, and thus one possible hierarchy is window, buffer, mode. On the
+other, a window is a component of a frame. This generates the window,
+frame, device hierarchy. Finally, there are objects such as toolbars
+whose properties are described by specifiers. These do not fit
+naturally into either hierarchy. This problem is as yet not cleanly
+solved.
+
+Another potential source of conceptual confusion is the instantiation
+process. Instantiating a buffer-local variable is simple: at any given
+point in time there is a current buffer, and its local values are used
+and set whenever the variable is accessed, unless the programmer goes to
+some special effort (uses @code{default-value} and @code{set-default}.
+However, a specifier object encapsulates a set of @dfn{specifications},
+each of which says what its value should be if a particular condition
+applies. Several such conditions might apply simultaneously in a given
+window.
+
For example, one specification might be ``The value should be
darkseagreen2 on X devices'' another might be ``The value should be blue
-in the *Help* buffer''. In specifier terminology, these conditions are
-called @dfn{locales} and the values are called @dfn{instantiators}.
+in the *Help* buffer''. So what do we do for "the *Help* buffer on an X
+device"? The answer is simple: give each type of locale a priority and
+check them in priority order, returning the first instantiator that
+successfully instantiates a value.
+
Given a specifier, a logical question is ``What is its value in a
particular situation?'' This involves looking through the specifications
to see which ones apply to this particular situation, and perhaps
window; in other words, it asks the specifier, ``What is your value in
this window?''.
+Note that the redisplay example is in a sense canonical. That is,
+specifiers are designed to present a uniform and @emph{efficient} API
+to redisplay. It is the efficiency constraint that motivates the
+introduction of specifier tags, and many restrictions on access (for
+example, a buffer is not a domain, and you cannot instantiate a
+specifier over a buffer).
+
More specifically, a specifier contains a set of @dfn{specifications},
each of which associates a @dfn{locale} (a window object, a buffer
object, a frame object, a device object, or the symbol @code{global})
device. (If a tag does not have a predicate, it matches all devices.)
All tags in a tag set must match a device for the associated inst-pair
to be instantiable over that device. (A null tag set is perfectly
-valid.)
+valid, and trivially matches all devices.)
+@c #### don't we have more device types now, gtk, ms-windows, mac-carbon?
The valid device types (normally @code{x}, @code{tty}, and
@code{stream}) and device classes (normally @code{color},
@code{grayscale}, and @code{mono}) can always be used as tags, and match
the existing ones, and has the same semantics as for
@code{add-spec-to-specifier}.
-In many circumstances, the higher-level function @code{set-specifier} is
-more convenient and should be used instead.
+The higher-level function @code{set-specifier} is often
+more convenient because it allows abbreviations of spec-lists to be used
+instead of the heavily nested canonical syntax. However, one should
+take great care in using them with specifiers types which can have lists
+as instantiators, such as toolbar specifiers and generic specifiers. In
+those cases it's probably best to use @code{add-spec-to-specifier} or
+@code{add-spec-list-to-specifier}.
@end defun
@defspec let-specifier specifier-list &rest body
a global specification), a cons of a locale and instantiator or locale
and instantiator list, a list of such conses, or nearly any other
reasonable form. More specifically, @var{value} can be anything
-accepted by @code{canonicalize-spec-list}.
+accepted by @code{canonicalize-spec-list} (described below).
@var{locale}, @var{tag-set}, and @var{how-to-add} are the same as in
@code{add-spec-to-specifier}.
adding a global instantiator and its value is @code{nil}''), or in
strange cases where there is an ambiguity between a spec-list and an
inst-list, etc. (The built-in specifier types are designed in such a way
-as to avoid any such ambiguities.)
+as to avoid any such ambiguities.) For robust code,
+@code{set-specifier} should probably be avoided for specifier types
+which accept lists as instantiators (currently toolbar specifiers and
+generic specifiers).
If you want to work with spec-lists, you should probably not use these
functions, but should use the lower-level functions
@var{specifier-type} specifies the type of specifier that this
@var{spec-list} will be used for.
+If @var{noerror} is @code{nil}, signal an error if the spec-list is
+invalid; otherwise return @code{t} for an invalid spec-list. (Note that
+this cannot be confused with a canonical spec-list.)
+
Canonicalizing means converting to the full form for a spec-list, i.e.
@code{((@var{locale} (@var{tag-set} . @var{instantiator}) ...) ...)}.
This function accepts a possibly abbreviated specification or a list of
and the built-in specifier types (font, image, toolbar, etc.) are
designed so that there won't be any ambiguities.
-If @var{noerror} is @code{nil}, signal an error if the spec-list is
-invalid; otherwise return @code{t}.
+The canonicalization algorithm is as follows:
+
+@enumerate
+@item
+Attempt to parse @var{spec-list} as a single, possibly abbreviated,
+specification.
+@item
+If that fails, attempt to parse @var{spec-list} as a list of (abbreviated)
+specifications.
+@item
+If that fails, @var{spec-list} is invalid.
+@end enumerate
+
+A possibly abbreviated specification @var{spec} is parsed by
+
+@enumerate
+@item
+Attempt to parse @var{spec} as a possibly abbreviated inst-list.
+@item
+If that fails, attempt to parse @var{spec} as a cons of a locale and an
+(abbreviated) inst-list.
+@item
+If that fails, @var{spec} is invalid.
+@end enumerate
+
+A possibly abbreviated inst-list @var{inst-list} is parsed by
+
+@enumerate
+@item
+Attempt to parse @var{inst-list} as a possibly abbreviated inst-pair.
+@item
+If that fails, attempt to parse @var{inst-list} as a list of (abbreviated)
+inst-pairs.
+@item
+If that fails, @var{inst-list} is invalid.
+@end enumerate
+
+A possibly abbreviated inst-pair @var{inst-pair} is parsed by
+
+@enumerate
+@item
+Check if @var{inst-pair} is @code{valid-instantiator-p}.
+@item
+If not, check if @var{inst-pair} is a cons of something that is a tag, ie,
+@code{valid-specifier-tag-p}, and something that is @code{valid-instantiator-p}.
+@item
+If not, check if @var{inst-pair} is a cons of a list of tags and something that
+is @code{valid-instantiator-p}.
+@item
+Otherwise, @var{inst-pair} is invalid.
+@end enumerate
+
+In summary, this function generally prefers more abbreviated forms.
@end defun
@node Retrieving Specifications
@section Functions for Instancing a Specifier
@defun specifier-instance specifier &optional domain default no-fallback
-This function instantiates @var{specifier} (return its value) in
+This function instantiates @var{specifier} (returns its value) in
@var{domain}. If no instance can be generated for this domain, return
@var{default}.
value will be a string, pixmap, or subwindow.
@end defun
+@defun specifier-matching-instance specifier matchspec &optional domain default no-fallback
+This function returns an instance for @var{specifier} in @var{domain}
+that matches @var{matchspec}. If no instance can be generated for
+@var{domain}, return @var{default}.
+
+This function is identical to @code{specifier-instance} except that a
+specification will only be considered if it matches @var{matchspec}.
+The definition of ``match,'' and allowed values for @var{matchspec}, are
+dependent on the particular type of specifier. Here are some examples:
+
+@itemize
+@item
+For chartable (e.g. display table) specifiers, @var{matchspec} should be a
+character, and the specification (a chartable) must give a value for
+that character in order to be considered. This allows you to specify,
+@emph{e.g.}, a buffer-local display table that only gives values for particular
+characters. All other characters are handled as if the buffer-local
+display table is not there. (Chartable specifiers are not yet
+implemented.)
+@item
+For font specifiers, @var{matchspec} should be a charset,
+and the specification (a font string) must have
+a registry that matches the charset's registry. (This only makes sense
+with Mule support.) This makes it easy to choose a font that can
+display a particular character. (This is what redisplay does, in fact.)
+@end itemize
+@end defun
+
@defun specifier-instance-from-inst-list specifier domain inst-list &optional default
This function attempts to convert a particular inst-list into an
instance. This attempts to instantiate @var{inst-list} in the given
@code{specifier-instance} instead.
@end defun
-@node Specifier Example
-@section Example of Specifier Usage
+@node Specifier Examples
+@section Examples of Specifier Usage
Now let us present an example to clarify the theoretical discussions we
have been through. In this example, we will use the general specifier
instantiation method succeeds and returns a color instance.
@end enumerate
+Here's another example, which implements something like GNU Emacs's
+``frame-local'' variables.
+
+@example
+;; Implementation
+
+;; There are probably better ways to write this macro
+;; Heaven help you if VAR is a buffer-local; you will become very
+;; confused. Probably should error on that.
+(defmacro define-frame-local-variable (var)
+ "Make the unbound symbol VAR become a frame-local variable."
+ (let ((val (if (boundp var) (symbol-value var) nil)))
+ `(progn
+ (setq ,var (make-specifier 'generic))
+ (add-spec-to-specifier ,var ',val 'global))))
+
+;; I'm not real happy about this terminology, how can `setq' be a defun?
+;; But `frame-set' would have people writing "(frame-set 'foo value)".
+(defun frame-setq (var value &optional frame)
+ "Set the local value of VAR to VALUE in FRAME.
+
+FRAME defaults to the selected frame."
+ (and frame (not (framep frame))
+ (error 'invalid-argument "FRAME must be a frame", frame))
+ (add-spec-to-specifier var value (or frame (selected-frame))))
+
+(defun frame-value (var &optional frame)
+ "Get the local value of VAR in FRAME.
+
+FRAME defaults to the selected frame."
+ (and frame (not (framep frame))
+ (error 'invalid-argument "FRAME must be a frame", frame))
+ ;; this is not just a map from frames to values; it also falls back
+ ;; to the global value
+ (specifier-instance var (or frame (selected-frame))))
+
+;; for completeness
+(defun frame-set-default (var value)
+ "Set the default value of frame-local variable VAR to VALUE."
+ (add-spec-to-specifier var value 'global))
+
+(defun frame-get-default (var)
+ "Get the default value of frame-local variable VAR."
+ (car (specifier-specs var 'global)))
+@end example
+
+Now you can execute the above definitions (eg, with @code{eval-last-sexp})
+and switch to @file{*scratch*} to play. Things will work differently if
+you already have a variable named @code{foo}.
+
+@example
+;; Usage
+
+foo
+@error{} Symbol's value as variable is void: foo
+
+(define-frame-local-variable foo)
+@result{} nil
+
+;; the value of foo is a specifier, which is an opaque object;
+;; you must use accessor functions to get values
+
+foo
+@result{} #<generic-specifier global=(nil) 0x4f5cb>
+
+;; since no frame-local value is set, the global value (which is the
+;; constant `nil') is returned
+(frame-value foo)
+@result{} nil
+
+;; get the default explicitly
+(frame-get-default foo)
+@result{} nil
+
+;; get the whole specification list
+(specifier-specs foo 'global)
+@result{} (nil)
+
+;; give foo a frame-local value
+
+(frame-setq foo 'bar)
+@result{} nil
+
+;; access foo in several ways
+
+;; Note that the print function for this kind of specifier only
+;; gives you the global setting. To get the full list of specs for
+;; debugging or study purposes, you must use specifier-specs or
+;; specifier-spec-list.
+foo
+@result{} #<generic-specifier global=(nil) 0x4f5cb>
+
+;; get the whole specification list
+(specifier-specs foo)
+@result{} ((#<x-frame "Message" 0x1bd66> (nil . bar)) (global (nil)))
+
+;; get the frame-local value
+(frame-value foo)
+@result{} bar
+
+;; get the default explicitly
+(frame-get-default foo)
+@result{} nil
+
+;; Switch to another frame and evaluate:
+;; C-x 5 o M-: (frame-setq foo 'baz) RET M-: (frame-value foo) RET
+@result{} baz
+
+;; Switch back.
+;; C-x 5 o
+(specifier-specs foo)
+@result{} ((#<x-frame "emacs" 0x28ec> (nil . baz))
+ (#<x-frame "Message" 0x1bd66> (nil . bar))
+ (global (nil)))
+
+(frame-value foo)
+@result{} bar
+
+(frame-get-default foo)
+@result{} nil
+@end example
+
+Note that since specifiers generalize both frame-local and buffer-local
+variables in a sensible way, XEmacs is not likely to put a high priority
+on implementing frame-local variables.
+@c Thanks to Jerry James for the following explanation. He is not
+@c responsible for its use here, Stephen Turnbull is.
+In fact, some developers think that frame-local variables are evil for
+the same reason that buffer-local variables are evil: the declaration is
+both global and invisible. That is, you cannot tell whether a variable
+is ``normal,'' buffer-local, or frame-local just by looking at it. So
+if you have namespace management problems, and some other Lisp package
+happens to use a variable name that you already declared frame- or
+buffer-local, weird stuff happens, and it is extremely hard to track
+down.
+
+
@node Creating Specifiers
@section Creating New Specifier Objects
@end defun
@defun make-specifier-and-init type spec-list &optional dont-canonicalize
-This function creates and initialize a new specifier.
+This function creates and initializes a new specifier.
-This is a front-end onto @code{make-specifier} that allows you to create
+This is a convenience API combining @code{make-specifier} and
+@code{set-specifier} that allows you to create
a specifier and add specs to it at the same time. @var{type} specifies
-the specifier type. @var{spec-list} supplies the specification(s) to be
-added to the specifier. Normally, almost any reasonable abbreviation of
-the full spec-list form is accepted, and is converted to the full form;
-however, if optional argument @var{dont-canonicalize} is non-@code{nil},
-this conversion is not performed, and the @var{spec-list} must already
-be in full form. See @code{canonicalize-spec-list}.
+the specifier type. Allowed types are as for @code{make-specifier}.
+
+@var{spec-list} supplies the specification(s) to be
+added to the specifier. Any abbreviation of
+the full spec-list form accepted by @code{canonicalize-spec-list} may
+be used.
+However, if the optional argument @var{dont-canonicalize} is non-@code{nil},
+canonicalization is not performed, and the @var{spec-list} must already
+be in full form.
@end defun
@defun make-integer-specifier spec-list
This function applies @var{func} to the specification(s) for
@var{locale} in @var{specifier}.
-If @var{locale} is a locale, @var{func} will be called for that locale.
+If optional @var{locale} is a locale, @var{func} will be called for that
+locale.
If @var{locale} is a locale type, @var{func} will be mapped over all
locales of that type. If @var{locale} is @code{nil} or the symbol
@code{all}, @var{func} will be mapped over all locales in
@var{specifier}.
+Optional @var{ms-maparg} will be passed to @var{ms-func}.
+
@var{func} is called with four arguments: the @var{specifier}, the
locale being mapped over, the inst-list for that locale, and the
optional @var{maparg}. If any invocation of @var{func} returns
@defun specifier-locale-type-from-locale locale
Given a specifier @var{locale}, this function returns its type.
@end defun
-
coherent if all libraries use the same conventions.
@item
+Use names starting with a space for temporary buffers (@pxref{Buffer
+Names}), or at least call @code{buffer-disable-undo} on them. Otherwise
+they may stay referenced by internal undo variable(s) after getting
+killed. If this happens before dumping (@pxref{Building XEmacs}), this
+may cause fatal error when portable dumper is used.
+
+@item
Indent each function with @kbd{C-M-q} (@code{indent-sexp}) using the
default indentation parameters.
@end group
@end smallexample
-Every function that has no documentation string (because it is use only
+Every function that has no documentation string (because it is used only
internally within the package it belongs to), should have instead a
two-semicolon comment right before the function, explaining what the
function does and how to call it properly. Explain precisely what each
After you type any of the above commands, you will be prompted for a
variable name in the @dfn{echo area}. Type in the name of the variable,
-for example, type @var{case-fold-search} @key{RET}
+for example, type @code{case-fold-search} @key{RET}
Your window will split into two and you will see the following message
in that window:
@end example
@noindent
-The value of the variable @var{c-tab-always-indent} is usually @samp{t}
+The value of the variable @code{c-tab-always-indent} is usually @samp{t}
for @samp{true}. When this variable is true, then hitting the @key{TAB}
-key always indents the current line.
+key always indents the current line.
@item
This expression will turn on the @var{auto-fill-mode} when you are in
This mode will automatically break lines when you type a space so that
the lines don't become too long. The length of the lines is controlled
-by the variable @var{fill-column}. You can set this variable to a value
+by the variable @code{fill-column}. You can set this variable to a value
you wish. Look at the documentation for this variable to see its default
value. To change the value to 75 for example, use:
@item
To control the number of buffers listed when you select the @b{Buffers}
-menu, you need to set the variable @var{buffers-menu-max-size} to
+menu, you need to set the variable @code{buffers-menu-max-size} to
whatever value you wish. For example, if you want 20 buffers to be listed
when you select @b{Buffers} use:
@noindent
If you want to write your own menus, you can look at some of the
examples in
-@file{/usr/local/lib/xemacs-VERSION/lisp/packages/big-menubar.el} file.
+@file{/usr/local/lib/xemacs/xemacs-packages/lisp/edit-utils/big-menubar.el} file.
@end itemize
a directory. You can see what the default directory of the current
buffer is by using the @b{Describe Variable} option from the @b{Help}
menu. When Emacs prompts you for the variable name to describe, type
-@var{default-directory}. If you wish to open a file in some other
+@code{default-directory}. If you wish to open a file in some other
directory, use @key{DEL} or the @key{BackSpace} key to go back and type
the path name of the new directory.
@vindex make-backup-files
When you save a file in Emacs, it destroys its old contents. However,
-if you set the variable @var{make-backup-files} to non-@code{nil}
+if you set the variable @code{make-backup-files} to non-@code{nil}
i.e. @samp{t}, Emacs will create a @dfn{backup} file. Select the
@b{Describe variable} option from the @b{Help} menu and look at the
documentation for this variable. Its default value should be
of the text they are searching, i.e. if you are searching for "String",
then "string" will also be one of the selections. If you want a case
sensitive search select the @b{Case Sensitive Search} from the
-@b{Option} menu. You can also set the variable @var{case-fold-search} to
+@b{Option} menu. You can also set the variable @code{case-fold-search} to
@code{nil} for making searches case-sensitive. For information on setting
variables, @xref{Setting Variables}. The two commands for searching for
strings in XEmacs are:
@finalout
@titlepage
@title XEmacs FAQ
-@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2003/05/02 06:00:43 $
+@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2003/10/09 19:16:02 $
@sp 1
-@author Tony Rossini <rossini@@biostat.washington.edu>
+@author Tony Rossini <rossini@@u.washington.edu>
@author Ben Wing <ben@@xemacs.org>
@author Chuck Thompson <cthomp@@xemacs.org>
@author Steve Baur <steve@@xemacs.org>
that you do not use}. You must be sure you do not use it though, so be
conservative at first.
-Possible candidates for deletion include w3, games, hyperbole, mh-e,
-hm-html-menus, vm, viper, oobr, gnus, etc. Ask yourself, @emph{Do I
-ever want to use this package?} If the answer is no, then it is a
-candidate for removal.
+Any package with the possible exceptions of xemacs-base, and EFS are
+candidates for removal. Ask yourself, @emph{Do I ever want to use this
+package?} If the answer is no, then it is a candidate for removal.
First, gzip all the .el files. Then go about package by package and
start gzipping the .elc files. Then run XEmacs and do whatever it is
-you normally do. If nothing bad happens, then delete the directory. Be
-conservative about deleting directories, and it would be handy to have a
-backup around in case you get too zealous.
+you normally do. If nothing bad happens, then remove the package. You
+can remove a package via the PUI interface
+(@code{M-x pui-list-packages}, then press @kbd{d} to mark the packages
+you wish to delete, and then @kbd{x} to delete them.
-@file{prim}, @file{modes}, @file{packages}, and @file{utils} are four
-directories you definitely do @strong{not} want to delete, although
-certain packages can be removed from them if you do not use them.
-
-Online texinfo sources in the @file{info} can either be compressed them
-or remove them. In either case, @kbd{C-h i} (info mode) will no longer
-work.
+Another method is to do @code{M-x package-get-delete-package}.
@node Q2.0.3, Q2.0.4, Q2.0.2, Installation
@unnumberedsubsec Q2.0.3: Compiling XEmacs with Netaudio.
The binary cannot find the @file{XKeysymDB} file. The location is
hardcoded at compile time so if the system the binary was built on puts
it a different place than your system does, you have problems. To fix,
-set the environment variable @var{XKEYSYMDB} to the location of the
+set the environment variable @code{XKEYSYMDB} to the location of the
@file{XKeysymDB} file on your system or to the location of the one
included with XEmacs which should be at
@iftex
and does not contain the necessary lines. Either ask your system
administrator to replace it with the one which comes with XEmacs (which
is the stock R6 version and is backwards compatible) or set your
-@var{XKEYSYMDB} variable to the location of XEmacs's described above.
+@code{XKEYSYMDB} variable to the location of XEmacs's described above.
@end itemize
@node Q2.1.4, Q2.1.5, Q2.1.3, Installation
Help! I can not get XEmacs to display on my Envizex X-terminal!
-Try setting the @var{DISPLAY} variable using the numeric IP address of
+Try setting the @code{DISPLAY} variable using the numeric IP address of
the host you are running XEmacs from.
@node Q2.1.6, Q2.1.7, Q2.1.5, Installation
@end lisp
If you'd like to write your own, this file provides as good a set of
-examples as any to start from. The file is located in
-@file{lisp/packages/big-menubar.el} in the XEmacs installation
-directory.
+examples as any to start from. The file is located in edit-utils
+package.
@node Q3.8.3, Q3.8.4, Q3.8.2, Customization
@unnumberedsubsec Q3.8.3: How do I control how many buffers are listed in the menu @code{Buffers List}?
this package out---it's much simpler than it looks, and once installed,
trivial to use.
+@email{youngs@@xemacs.org, Steve Youngs} writes:
+
+@quotation
+All the major Emacs Lisp based MUAs (Gnus, MH-E, and VM) all do their
+own thing when it comes to MIME so you won't need TM to get MIME support
+in these packages.
+@end quotation
+
@node Q4.3.3, Q4.3.4, Q4.3.2, Subsystems
@unnumberedsubsec Q4.3.3: Why isn't this @code{movemail} program working?
The package @code{ps-print}, which is now included with XEmacs, provides
the ability to do this. The source code contains complete instructions
-on its use, in @file{<xemacs_src_root>/lisp/packages/ps-print.el}.
+on its use, in
+@file{$prefix/lib/xemacs/xemacs-packages/lisp/ps-print/ps-print.el},
+being the default location of an installed ps-print package.
@node Q5.3.4, Q5.3.5, Q5.3.3, Miscellaneous
@unnumberedsubsec Q5.3.4: Getting @kbd{M-x lpr} to work with postscript printer.
Starting with XEmacs 21, XEmacs uses the class @samp{XEmacs} if it finds
any XEmacs resources in the resource database when the X connection is
initialized. Otherwise, it will use the class @samp{Emacs} for
-backwards compatibility. The variable @var{x-emacs-application-class}
+backwards compatibility. The variable @code{x-emacs-application-class}
may be consulted to determine the application class being used.
The examples in this section assume the application class is @samp{Emacs}.
* Installing Packages:: How to install packages.
* Building Packages:: Building packages from CVS sources.
* Local.rules File:: This is an important file that you must create.
-* Creating Packages:: The basics.
* Available Packages:: A brief directory of packaged LISP.
@end menu
There are two main flavors of packages.
@itemize @bullet
-@item
+@item
Regular Packages
@cindex regular packages
A regular package is one in which multiple files are involved and one
may not in general safely remove any of them.
-@item
+@item
Single-File Packages
@cindex single-file packages
A single-file package is an aggregate collection of thematically
Currently, source packages are only available via CVS. See
@url{http://cvs.xemacs.org/} for details.
+
@node Installing Packages, Building Packages, Package Terminology, Packages
@comment node-name, next, previous, up
@cindex installing packages
subdirectory @file{packages}. Package file names follow
the naming convention @file{<package-name>-<version>-pkg.tar.gz}.
-If you have @ref{(EFS)}, packages can be installed over the network.
+If you have EFS @ref{(EFS)}, packages can be installed over the network.
Alternatively, if you have copies of the packages locally, you can
install packages from a local disk or CDROM.
access it via the menus:
@example
- Tools -> Packages -> List and Install
+Tools -> Packages -> List and Install
@end example
Or, you can get to it via the keyboard:
@example
-M-x pui-list-packages
+@code{M-x pui-list-packages}
@end example
Hint to system administrators of multi-user systems: it might be a good
that you need @code{thingatpt}, type:
@example
-M-x package-get-package-provider RET thingatpt
+@code{M-x package-get-package-provider RET thingatpt}
@end example
-which will return something like (fsf-compat "1.08"). You can the use
+which will return something like @samp{(fsf-compat "1.08")}. You can the use
one of the methods above for installing the package you want.
@subsection XEmacs and Installing Packages
There are three main ways to install packages:
@menu
-* Sumo:: All at once, using the 'Sumo Tarball'.
-* Manually:: Using individual package tarballs.
* Automatically:: Using the package tools from XEmacs.
+* Manually:: Using individual package tarballs.
+* Sumo:: All at once, using the 'Sumo Tarball'.
* Which Packages:: Which packages to install.
* Removing Packages:: Removing packages.
@end menu
But regardless of the method you use to install packages, they can only
-be used by XEmacs after a restart.
-
-@node Sumo, Manually, ,Installing Packages
-@comment node-name, next, previous, up
-@cindex sumo package install
-@heading Installing the Sumo Packages:
-Those with little time, cheap connections and plenty of disk space can
-install all the packages at once using the sumo tarballs.
-Download the file: @file{xemacs-sumo.tar.gz}
-
-For an XEmacs compiled with Mule you also need: @file{xemacs-mule-sumo.tar.gz}
-
-N.B. They are called 'Sumo Tarballs' for good reason. They are
-currently about 19MB and 4.5MB (gzipped) respectively.
-
-Install them by:
-
-@code{cd $prefix/lib/xemacs ; gunzip -c <tarballname> | tar xvf - RET}
-
-Or, if you have GNU tar:
-
-@code{cd $prefix/lib/xemacs ; tar zxvf /path/to/<tarballname> RET}
+be used by XEmacs after a restart unless the package in question has not
+been previously installed.
-As the Sumo tarballs are not regenerated as often as the individual
-packages, it is recommended that you use the automatic package tools
-afterwards to pick up any recent updates.
-
-@node Manually, Automatically, Sumo, Installing Packages
-@comment node-name, next, previous, up
-@cindex manual package install
-@heading Manual Package Installation:
-Fetch the packages from the FTP site, CD-ROM whatever. The filenames
-have the form @file{name-<version>-pkg.tar.gz} and are gzipped tar files. For
-a fresh install it is sufficient to untar the file at the top of the
-package hierarchy.
-
-Note: If you are upgrading packages already installed, it's best to
-remove the old package first @ref{Removing Packages}.
-
-For example if we are installing the @file{xemacs-base}
-package (version 1.48):
-
-@example
- mkdir $prefix/lib/xemacs/xemacs-packages RET # if it does not exist yet
- cd $prefix/lib/xemacs/xemacs-packages RET
- gunzip -c /path/to/xemacs-base-1.48-pkg.tar.gz | tar xvf - RET
-
-Or if you have GNU tar, the last step can be:
-
- tar zxvf /path/to/xemacs-base-1.48-pkg.tar.gz RET
-@end example
-
-For MULE related packages, it is best to untar into the mule-packages
-hierarchy, i.e. for the @file{mule-base} package, version 1.37:
-
-@example
- mkdir $prefix/lib/xemacs/mule-packages RET # if it does not exist yet
- cd $prefix/lib/xemacs/mule-packages RET
- gunzip -c /path/to/mule-base-1.37-pkg.tar.gz | tar xvf - RET
-
-Or if you have GNU tar, the last step can be:
-
- tar zxvf /path/to/mule-base-1.37-pkg.tar.gz RET
-@end example
-
-@node Automatically, Which Packages ,Manually, Installing Packages
+@node Automatically, Manually, ,Installing Packages
@comment node-name, next, previous, up
@cindex automatic package install
@cindex package tools
and optionally:
- mule-base - Needed if you want to use XEmacs with MULE.
+ mailcrypt - To do PGP verification of the @file{package-index}
+ file.
@end example
After installing these by hand, fire up XEmacs and follow these
steps.
@enumerate 1
-@item
+@item
Choose a download site.
-via menu: Tools -> Packages -> Add Download Site
+via menu: Tools -> Packages -> Set Download Site
via keyb: @code{M-x customize-variable RET package-get-remote RET}
(put in the details of remote host and directory)
If the package tarballs _AND_ the package-index file are in a
-local directory, you can: @code{M-x pui-add-install-directory RET}
+local directory, you can: @code{M-x pui-set-local-package-get-directory RET}
-@item
+@item
Obtain a list of packages and display the list in a buffer named
@file{*Packages*}.
menu: Tools -> Packages -> List & Install
keyb: @code{M-x pui-list-packages RET}
XEmacs will now connect to the remote site and download the
-latest package-index file. If you see an error about the
-package-index entries not being PGP signed, you can safely
-ignore this because PGP has not been integrated into the XEmacs
-package tools yet.
+latest package-index file.
The visual package browser will then display a list of all packages.
Help information will be displayed at the very bottom of the buffer; you
From here, you can select or unselect packages for installation using
the @key{RET} key, the @kbd{Mouse-2} button or selecting "Select" from
-the (Popup) Menu.
+the Popup @kbd{Mouse-3} Menu.
Once you've finished selecting the packages, you can
press the @kbd{x} key (or use the menu) to actually install the
packages. Note that you will have to restart XEmacs for XEmacs to
@end table
Moving the mouse over a package will also cause additional information
-about the package to be displayed in the minibuffer.
+about the package to be displayed in the minibuffer. If you have
+balloon-help enabled a balloon-help frame will pop up and display
+additional package information also.
-@item
+@item
Choose the packages you wish to install.
mouse: Click button 2 on the package name.
keyb: @kbd{RET} on the package name
-@item
+@item
Make sure you have everything you need.
menu: Packages -> Add Required
keyb: @kbd{r}
For novices and gurus alike, this step can save your bacon.
It's easy to forget to install a critical package.
-@item
+@item
Download and install the packages.
menu: Packages -> Install/Remove Selected
keyb: @kbd{x}
will search for the latest version and install it and any packages that
it depends upon.
-@node Which Packages, Removing Packages, Automatically, Installing Packages
+@heading Keeping Packages Up To Date:
+Once you have the packages you want installed (using any of the above
+methods) you'll want to keep them up to date. You can do this easily
+from the menubar:
+
+@example
+Tools -> Packages -> Set Download Site
+Tools -> Packages -> Update Installed Packages
+@end example
+
+
+@node Manually, Sumo, Automatically, Installing Packages
+@comment node-name, next, previous, up
+@cindex manual package install
+@heading Manual Package Installation:
+Fetch the packages from the FTP site, CD-ROM whatever. The filenames
+have the form @file{name-<version>-pkg.tar.gz} and are gzipped tar files. For
+a fresh install it is sufficient to untar the file at the top of the
+package hierarchy.
+
+Note: If you are upgrading packages already installed, it's best to
+remove the old package first @ref{Removing Packages}.
+
+For example if we are installing the @file{xemacs-base}
+package (version 1.48):
+
+@example
+ mkdir $prefix/lib/xemacs/xemacs-packages RET # if it does not exist yet
+ cd $prefix/lib/xemacs/xemacs-packages RET
+ gunzip -c /path/to/xemacs-base-1.48-pkg.tar.gz | tar xvf - RET
+
+Or if you have GNU tar, the last step can be:
+
+ tar zxvf /path/to/xemacs-base-1.48-pkg.tar.gz RET
+@end example
+
+For MULE related packages, it is best to untar into the mule-packages
+hierarchy, i.e. for the @file{mule-base} package, version 1.37:
+
+@example
+ mkdir $prefix/lib/xemacs/mule-packages RET # if it does not exist yet
+ cd $prefix/lib/xemacs/mule-packages RET
+ gunzip -c /path/to/mule-base-1.37-pkg.tar.gz | tar xvf - RET
+
+Or if you have GNU tar, the last step can be:
+
+ tar zxvf /path/to/mule-base-1.37-pkg.tar.gz RET
+@end example
+
+@node Sumo, Which Packages, Manually, Installing Packages
+@comment node-name, next, previous, up
+@cindex sumo package install
+@heading Installing the Sumo Packages:
+Those with little time, cheap connections and plenty of disk space can
+install all the packages at once using the sumo tarballs.
+Download the file: @file{xemacs-sumo.tar.gz}
+
+For an XEmacs compiled with Mule you also need: @file{xemacs-mule-sumo.tar.gz}
+
+N.B. They are called 'Sumo Tarballs' for good reason. They are
+currently about 19MB and 4.5MB (gzipped) respectively.
+
+Install them by:
+
+@code{cd $prefix/lib/xemacs ; gunzip -c <tarballname> | tar xvf - RET}
+
+Or, if you have GNU tar:
+
+@code{cd $prefix/lib/xemacs ; tar zxvf /path/to/<tarballname> RET}
+
+As the Sumo tarballs are not regenerated as often as the individual
+packages, it is recommended that you use the automatic package tools
+afterwards to pick up any recent updates.
+
+@node Which Packages, Removing Packages, Sumo, Installing Packages
@comment node-name, next, previous, up
@cindex which packages
@cindex choosing packages
xemacs-base, xemacs-devel, c-support, cc-mode, debug, dired, efs,
edit-utils, fsf-compat, mail-lib, net-utils, os-utils, prog-modes,
-text-modes, time
+text-modes, time, mailcrypt
If you are using the XEmacs package tools, don't forget to do:
@item GNU make
(3.75 or later preferred).
@item makeinfo
-(1.68 from texinfo-3.11 or later required).
+(4.2 from GNU texinfo 4.2 or later required).
@item GNU tar
(or equivalent).
@item GNU gzip
tarballs for installation into your own XEmacs installations or for
distributing to others.
-Supported operations from @file{make} are:
-
-@table @code
-@item all
-Bytecompile all files, build and bytecompile byproduct files like
-@file{auto-autoloads.el} and @file{custom-load.el}. Create info version
-of TeXinfo documentation if present.
-
-@item bindist
-Does a @code{make all} as well as create a binary package tarball in the
-staging directory.
-
-@item install
-Bytecompile all files, build and bytecompile byproduct files like
-@file{auto-autoloads.el} and @file{custom-load.el}. Create info version
-of TeXinfo documentation if present. And install everything into the
-staging directory.
-
-@item srckit
-Usually aliased to @code{srckit-std}. This does a @code{make
-distclean} and creates a package source tarball in the staging
-directory. This is generally only of use for package maintainers.
-
-@item binkit
-May be aliased to @code{binkit-sourceonly}, @code{binkit-sourceinfo},
-@code{binkit-sourcedata}, or
-@code{binkit-sourcedatainfo}. @code{sourceonly} indicates there is
-nothing to install in a data directory or info directory.
-@code{sourceinfo} indicates that source and info files are to be
-installed. @code{sourcedata} indicates that source and etc (data) files
-are to be installed. @code{sourcedatainfo} indicates source, etc
-(data), and info files are to be installed. A few packages have needs
-beyond the basic templates so this is not yet complete.
-
-@item dist
-Runs the rules @code{srckit} followed by @code{binkit}. This is
-primarily of use by XEmacs maintainers producing files for distribution.
-
-@item clean
-Remove all built files except @file{auto-autoloads.el} and @file{custom-load.el}.
-
-@item distclean
-Remove all created files.
-@end table
+For a list and description of the different @file{Makefile} targets,
+@xref{Makefile Targets,,,lispref}.
-@node Local.rules File, Creating Packages, Building Packages, Packages
+@node Local.rules File, Available Packages, Building Packages, Packages
@comment node-name, next, previous, up
@cindex local.rules
@heading The Local.rules File:
file, @file{Local.rules.template}. Simply copy that to
@file{Local.rules} and edit it to suit your needs.
-These are the variables in 'Local.rules' that you will need to
-address. Items that have default settings have those defaults shown.
-
-@table @var
-@item XEMACS = xemacs
-If your XEmacs isn't in your path, change this. Native MS Windows users
-should double quote this if the path has embedded spaces.
-
-@item BUILD_WITHOUT_MULE =
-Building from CVS defaults to building the Mule
-packages. Set this to 't' if you don't want/have Mule
-
-@item XEMACS_NATIVE_NT =
-Set this to 't' if you are building on WinNT. NT users should note that
-you still need the Cygwin environment to build the packages.
-
-@item XEMACS_INSTALLED_PACKAGES_ROOT = /usr/local/lib/xemacs
-This is the directory tree under which the installed packages go. Under
-this directory there would normally be @file{xemacs-packages/} for
-standard (non-Mule) packages, @file{mule-packages/} for Mule packages
-(if you built XEmacs with Mule), and possibly @file{site-packages/} for
-3rd party packages that aren't distributed by XEmacs.org.
-
-@item symlink =
-Set this to 't' if you want to do a "run in place".
-Setting this doesn't work well with 'make bindist'
-
-@item NONMULE_INSTALLED_PACKAGES_ROOT = $@{XEMACS_INSTALLED_PACKAGES_ROOT@}/xemacs-packages
-This is where the non-Mule packages are installed to. You probably
-don't want to change this.
-
-@item MULE_INSTALLED_PACKAGES_ROOT = $@{XEMACS_INSTALLED_PACKAGES_ROOT@}/mule-packages
-This is where the Mule packages are installed to. You probably don't
-want to change this. Please note that @code{make bindist} does
-@emph{not} use this variable. When doing a @code{make bindist}
-@emph{everything} goes into @var{NONMULE_INSTALLED_PACKAGES_ROOT}.
-
-@item NONMULE_PACKAGES = xemacs-packages
-This is where you set the non-Mule packages that you want to install. eg:
-@example
- XEMACS_PACKAGES = xemacs-packages/xemacs-base xemacs-packages/bbdb
-@end example
-
-@item MULE_PACKAGES = mule-packages
-Same as for 'XEMACS_PACKAGES' except you list the Mule
-packages you want to install here. eg:
-@example
- MULE_PACKAGES = mule-packages/mule-base mule-packages/skk
-@end example
-
-@item PACKAGE_INDEX = package-index
-If you want the package-index file to have a different
-name, change this.
+For a complete discussion of the @file{Local.rules} file,
+@xref{Local.rules File,,,lispref}.
-@item INSTALL = install -c
-The path to your BSD compatible install program.
-
-@item TAR = tar
-The path to your tar program
-
-@item BZIP2 =
-If you want bzip2 tarballs, set this.
-
-@item MAKEINFO = makeinfo
-The path to your makeinfo program
-@end table
-
-
-@node Creating Packages, Available Packages, Local.rules File, Packages
-@comment node-name, next, previous, up
-@cindex creating packages
-@heading Creating Packages:
-Creating a package from an existing Lisp library is not very difficult.
-
-In addition to the Lisp libraries themselves, you need a
-@file{package-info.in} file and a simple @file{Makefile}. The rest is
-done by @file{XEmacs.rules}, part of the packaging system
-infrastructure.
-
-@file{package-info.in} contains a single Lisp form like this:
-
-@example
-(name ; your package's name
- (standards-version 1.1
- version VERSION
- author-version AUTHOR_VERSION
- date DATE
- build-date BUILD_DATE
- maintainer MAINTAINER
- distribution xemacs ; change to "mule" if MULE is needed
- priority high
- category CATEGORY
- dump nil
- description "DESCRIPTION" ; one-line period-terminated string
- filename FILENAME
- md5sum MD5SUM
- size SIZE
- provides (feature1 feature2) ; one for every `provides' form
- requires (REQUIRES)
- type regular
-))
-@end example
-
-You must fill in the four commented lines. The value of @code{name} is
-the name of your package as an unquoted symbol. Normally it is the name
-of the main Lisp file or principal feature provided. The allowed values
-for distribution are @code{xemacs} and @code{mule}. Write them as
-unquoted symbols. The @code{description} is a quoted Lisp string; use
-the usual conventions. The first letter should be capitalized, and the
-string should end in a period. It need not be a complete sentence
-grammatically. The value for @code{provides} is a list of feature
-symbols (written unquoted). All of the features provided by libraries
-in your package should be elements of this list. Implementing an
-automatic method for generating the @file{provides} line is desirable,
-but as yet undone.
-
-The variables in upper-case are references to variables set in the
-@file{Makefile} or automatically generated. Do not change them; they
-are automatically filled in by the build process.
-
-The remaining lines refer to implementation constants
-(@code{standards-version}), or features that are unimplemented or have
-been removed (@code{priority} and @code{dump}). The @code{type} line is
-not normally relevant to external maintainers; the alternate value is
-@code{single-file}, which refers to packages consed up out of a number
-of single-file libraries that are more or less thematically related. An
-example is @code{prog-modes}. Single-file packages are basically for
-administrative convenience, and new packages should generally be created
-as regular packages.
-
-The @file{Makefile} is quite stylized. The idea is similar to an
-@file{Imakefile} or an @code{automake} file: the complexity is hidden in
-generic rules files, in this case the @file{XEmacs.rules} include file
-in the top directory of the packages hierarchy. Although a number of
-facilities are available for complex libraries, most simple packages'
-@file{Makefile}s contain a copyright notice, a few variable definitions,
-an include for @file{XEmacs.rules}, and a couple of standard targets.
-
-The first few @code{make} variables defined are @code{VERSION},
-@code{AUTHOR_VERSION}, @code{MAINTAINER}, @code{PACKAGE},
-@code{PKG_TYPE}, @code{REQUIRES}, and @code{CATEGORY}. All but one were
-described in the description of @file{package-info.in}. The last is an
-administrative grouping. Current categories include @code{standard},
-and @code{mule}.
-
-Next, define the variable @code{ELCS}. This contains the list of the
-byte-compiled Lisp files used by the package. These files and their
-@file{.el} versions will be included in the binary package. If there
-are other files (such as extra Lisp sources or an upstream
-@file{Makefile}) that are normally placed in the installed Lisp
-directory, but not byte-compiled, they can be listed as the value of
-@code{EXTRA_SOURCES}.
-
-The include is simply
-@example
-include ../../XEmacs.rules
-@end example
-
-The standard targets follow. These are
-
-@example
-all:: $(ELCS) auto-autoloads.elc
-
-srckit: srckit-alias
-
-binkit: binkit-alias
-@end example
-
-Other targets (such as Texinfo sources) may need to be added as
-dependencies for the @code{all} target. Dependencies for @code{srckit}
-and @code{binkit} (that is, values for @var{srckit-alias} and
-@var{binkit-alias}) are defined in @file{XEmacs.rules}. The most useful
-of these values are given in the following table.
-
-@table @var
-@item srckit-alias
-Usually set to @code{srckit-std}.
-
-@item binkit-alias
-May be set to @code{binkit-sourceonly}, @code{binkit-sourceinfo},
-@code{binkit-sourcedata}, or
-@code{binkit-sourcedatainfo}. @code{sourceonly} indicates there is
-nothing to install in a data directory or info directory.
-@code{sourceinfo} indicates that source and info files are to be
-installed. @code{sourcedata} indicates that source and etc (data) files
-are to be installed. @code{sourcedatainfo} indicates source, etc
-(data), and info files are to be installed.
-@end table
-
-Data files include things like pixmaps for a package-specific toolbar,
-and are normally installed in @file{etc/@var{PACKAGE_NAME}}. A few
-packages have needs beyond the basic templates. See @file{XEmacs.rules}
-or a future revision of this manual for details.
-
-@node Available Packages, , Creating Packages, Packages
+@node Available Packages, , Local.rules File, Packages
@comment node-name, next, previous, up
@cindex available packages
@cindex packages
looking for isn't here, please send a message to the
@email{xemacs-beta@@xemacs.org, XEmacs Beta list}.
-This data is up to date as of September 22, 2002.
+This data is up to date as of June 27, 2003.
@subsection Normal Packages
A very broad selection of elisp packages.
@item games
Tetris, Sokoban, and Snake.
+@item general-docs
+General documentation. Presently, empty.
+
@item gnats
XEmacs bug reports.
Miscellaneous Networking Utilities. This is a single-file package and
files may be deleted at will.
+@item ocaml
+Objective Caml editing support.
+
@item os-utils
Miscellaneous single-file O/S utilities, for printing, archiving,
compression, remote shells, etc.
-@item ocaml
-Objective Caml language support.
-
@item pc
PC style interface emulation.
@item perl-modes
Perl language support.
+@item pgg
+Emacs interface to various PGP implementations.
+
@item prog-modes
Miscellaneous single-file lisp files for various programming languages.
@item w3
A Web browser.
+@item x-symbol
+Semi WYSIWYG for LaTeX, HTML, etc, using additional fonts.
+
@item xemacs-base
Fundamental XEmacs support. Install this unless you wish a totally
naked XEmacs.
@cindex mail
@cindex message
-XEmacs provides three separate mail-reading packages. Each one comes with
-its own manual, which is included standard with the XEmacs distribution.
+XEmacs provides several mail-reading packages. Each one comes with
+its own manual, which is included in each package.
The recommended mail-reading package for new users is VM. VM works
with standard Unix-mail-format folders and was designed as a replacement
for the older Rmail.
XEmacs also provides a sophisticated and comfortable front-end to the
-MH mail-processing system, called @samp{mh-e}. Unlike in other
+MH mail-processing system, called @samp{MH-E}. Unlike in other
mail programs, folders in MH are stored as file-system directories,
with each message occupying one (numbered) file. This facilitates
working with mail using shell commands, and many other features of
MH are also designed to integrate well with the shell and with
-shell scripts. Keep in mind, however, that in order to use mh-e
+shell scripts. Keep in mind, however, that in order to use MH-E
you must have the MH mail-processing system installed on your
computer.
-Finally, XEmacs provides the Rmail package. Rmail is (currently) the
-only mail reading package distributed with FSF GNU Emacs, and is
-powerful in its own right. However, it stores mail folders in a special
-format called @samp{Babyl}, that is incompatible with all other
-frequently-used mail programs. A utility program is provided for
-converting Babyl folders to standard Unix-mail format; however, unless
-you already have mail in Babyl-format folders, you should consider
-using VM or mh-e instead. (If at times you have to use FSF Emacs, it
-is not hard to obtain and install VM for that editor.)
+The @dfn{Everything including the kitchen sink} package @samp{Gnus} is
+also available as an XEmacs package. Gnus also handles Usenet articles
+as well as mail.
+
+@samp{MEW} (Messaging in the Emacs World) is another mail-reading
+package available for XEmacs.
+
+Finally, XEmacs provides the Rmail package. Rmail is (currently)
+the only mail reading package distributed with FSF GNU Emacs, and is
+powerful in its own right. However, it stores mail folders in a
+special format called @samp{Babyl}, that is incompatible with all
+other frequently-used mail programs. A utility program is provided
+for converting Babyl folders to standard Unix-mail format; however,
+unless you already have mail in Babyl-format folders, you should
+consider using Gnus, VM, or MH-E instead.
* Installing Packages:: How to install packages.
* Building Packages:: Building packages from sources.
* Local.rules File:: An important part of building packages.
-* Creating Packages:: The basics.
* Available Packages:: A brief directory of packaged LISP.
Basic Editing Commands
+2004-02-02 Vin Shelton <acs@xemacs.org>
+
+ * XEmacs 21.4.15 is released
+
2003-09-03 Vin Shelton <acs@xemacs.org>
* XEmacs 21.4.14 is released
+2004-02-02 Vin Shelton <acs@xemacs.org>
+
+ * XEmacs 21.4.15 is released
+
+2003-12-10 Adrian Aichner <adrian@xemacs.org>
+
+ * xemacs.mak (COPYCMD): New.
+ * xemacs.mak (COPY): New.
+ * xemacs.mak (COPYDIR): New.
+ * xemacs.mak (XEMACS_INCLUDES):
+ * xemacs.mak (install): Allow xemacs.mak to overwrite existing
+ installation.
+
+2003-11-06 Adrian Aichner <adrian@xemacs.org>
+
+ * minitar.c: Sync with Xemacs 21.5 version to fix package
+ installation in native Windows XEmacs.
+
2003-09-03 Vin Shelton <acs@xemacs.org>
* XEmacs 21.4.14 is released
#include <zlib.h>
-static int
-Usage(char *name)
+static void
+Usage (char *name)
{
- fprintf(stderr,"Usage: %s file.tar.gz [base-dir]\n",name);
- fprintf(stderr,"\tExtracts the contents compressed tar file to base-dir\n");
- exit(-1);
+ fprintf (stderr, "Usage: %s file.tar.gz [base-dir]\n", name);
+ fprintf (stderr, "\tExtracts the contents compressed tar file to base-dir\n");
+ exit (-1);
}
#define MAXNAMELEN 1024
static int
-octal(char *str)
+octal (char *str)
{
int ret = -1;
- sscanf(str,"%o",&ret);
+ sscanf (str, "%o", &ret);
return ret;
}
path component, so it is not created as a directory */
static int
-makepath(char *path)
+makepath (char *path)
{
char tmp[MAXNAMELEN];
char *cp;
- for (cp=path; cp; cp = (char*)strchr(cp+1,'/')){
- if (!*cp)
- break;
- if (*cp != '/')
- continue;
- strncpy(tmp, path, cp-path);
- tmp[cp-path] = '\0';
- if (strlen(tmp) == 0)
- continue;
+ for (cp=path; cp; cp = (char*)strchr (cp+1, '/'))
+ {
+ if (!*cp)
+ break;
+ if (*cp != '/')
+ continue;
+ strncpy (tmp, path, cp-path);
+ tmp[cp-path] = '\0';
+ if (strlen (tmp) == 0)
+ continue;
#ifdef WIN32_NATIVE
- if (mkdir(tmp)){
+ if (mkdir (tmp))
#else
- if (mkdir(tmp,0777)){
+ if (mkdir (tmp, 0777))
#endif
- if (errno == EEXIST)
- continue;
- else
- return -1;
+ {
+ if (errno == EEXIST)
+ continue;
+ else
+ return -1;
+ }
}
- }
return 0;
}
-
-
+
int
-main(int argc, char **argv)
+main (int argc, char **argv)
{
char fullname[MAXNAMELEN];
char *basedir = ".";
int directory = 0;
if (argc < 2 || argc > 3)
- Usage(argv[0]);
+ Usage (argv[0]);
tarfile = argv[1];
if (argc==3)
basedir = argv[2];
- if (! (infile = gzopen(tarfile,"rb"))){
- fprintf(stderr,"Cannot open %s\n", tarfile);
- exit(-2);
- }
-
- while (1){
-
-
- nread = gzread(infile,block,512);
-
- if (!in_block && nread == 0)
- break;
-
- if (nread != BLOCKSIZE){
- fprintf(stderr,"Error: incomplete block read. Exiting.\n");
- exit(-2);
+ if (! (infile = gzopen (tarfile, "rb")))
+ {
+ fprintf (stderr, "Cannot open %s\n", tarfile);
+ exit (-2);
}
+
+ while (1)
+ {
+ nread = gzread (infile, block, 512);
- if (!in_block){
- if (block[0]=='\0') /* We're done */
+ if (!in_block && nread == 0)
break;
- strncpy(magic,block+257,6);
- magic[6] = '\0';
- if (strcmp(magic,"ustar ")){
- fprintf(stderr,
- "Error: incorrect magic number in tar header. Exiting\n");
- }
-
- strncpy(name,block,100);
- name[100] = '\0';
- sprintf(fullname,"%s/%s",basedir,name);
- printf("%s\n",fullname);
- type = block[156];
+ if (nread != BLOCKSIZE)
+ {
+ fprintf (stderr, "Error: incomplete block read. Exiting.\n");
+ exit (-2);
+ }
+
+ if (!in_block)
+ {
+ if (block[0]=='\0') /* We're done */
+ break;
+
+ strncpy (magic, block+257, 6);
+ magic[6] = '\0';
+ if (strcmp (magic, "ustar "))
+ {
+ fprintf (stderr,
+ "Error: incorrect magic number in tar header. Exiting\n");
+ exit (-2);
+ }
+
+ strncpy (name, block, 100);
+ name[100] = '\0';
+ sprintf (fullname, "%s/%s", basedir, name);
+ printf ("%s\n", fullname);
+ type = block[156];
- switch(type){
- case '0':
- case '\0':
- directory = 0;
- break;
- case '5':
- directory = 1;
- break;
- default:
- fprintf(stderr,"Error: unknown type flag %c. Exiting.\n",type);
- break;
- }
+ switch (type)
+ {
+ case '0':
+ case '\0':
+ directory = 0;
+ break;
+ case '5':
+ directory = 1;
+ break;
+ default:
+ fprintf (stderr, "Error: unknown type flag %c. Exiting.\n", type);
+ exit (-2);
+ break;
+ }
- if (directory){
- in_block = 0;
+ if (directory)
+ {
+ in_block = 0;
- /* makepath will ignore the final path component, so make sure
- dirnames have a trailing slash */
-
- if (fullname[strlen(fullname)-1] != '/')
- strcat(fullname,"/");
- if (makepath(fullname)){
- fprintf(stderr, "Error: cannot create directory %s. Exiting.\n",
- fullname);
- exit(-2);
+ /* makepath will ignore the final path component, so make sure
+ dirnames have a trailing slash */
+
+ if (fullname[strlen (fullname)-1] != '/')
+ strcat (fullname, "/");
+ if (makepath (fullname))
+ {
+ fprintf (stderr, "Error: cannot create directory %s. Exiting.\n",
+ fullname);
+ exit (-2);
+ }
+ continue;
+ }
+ else
+ { /*file */
+ in_block = 1;
+ if (outfile)
+ {
+ if (fclose (outfile))
+ {
+ fprintf (stderr, "Error: cannot close file %s. Exiting.\n",
+ fullname);
+ exit (-2);
+ }
+ outfile = (FILE*)0;
+ }
+
+ if (!(outfile = fopen (fullname, "wb")))
+ {
+ /*try creating the directory, maybe it's not there */
+ if (makepath (fullname))
+ {
+ fprintf (stderr, "Error: cannot create file %s. Exiting.\n",
+ fullname);
+ exit (-2);
+ }
+ /* now try again to open the file */
+ if (!(outfile = fopen (fullname, "wb")))
+ {
+ fprintf (stderr, "Error: cannot create file %s. Exiting.\n",
+ fullname);
+ exit (-2);
+ }
+ }
+
+ strncpy (osize, block+124, 12);
+ osize[12] = '\0';
+ size = octal (osize);
+ if (size<0)
+ {
+ fprintf (stderr, "Error: invalid size in tar header. Exiting.\n");
+ exit (-2);
+ }
+ if (size==0) /* file of size 0 is done */
+ in_block = 0;
+ }
}
- continue;
- } else { /*file */
- in_block = 1;
- if (outfile){
- if (fclose(outfile)){
- fprintf(stderr,"Error: cannot close file %s. Exiting.\n",
- fullname);
- exit(-2);
- }
- outfile = (FILE*)0;
- }
-
- if ( !(outfile = fopen(fullname,"wb"))){
- /*try creating the directory, maybe it's not there */
- if (makepath(fullname)){
- fprintf(stderr,"Error: cannot create file %s. Exiting.\n",
- fullname);
- exit(-2);
- }
- /* now try again to open the file */
- if (!(outfile = fopen(fullname,"wb"))){
- fprintf(stderr,"Error: cannot create file %s. Exiting.\n",
- fullname);
- exit(-2);
- }
- }
-
- strncpy(osize,block+124,12);
- osize[12] = '\0';
- size = octal(osize);
- if (size<0){
- fprintf(stderr,"Error: invalid size in tar header. Exiting.\n");
- exit(-2);
- }
- }
- } else { /* write or continue writing file contents */
- nbytes = size>512? 512:size;
+ else
+ { /* write or continue writing file contents */
+ nbytes = size>512? 512:size;
- nwritten = fwrite(block, 1, nbytes, outfile);
- if (nwritten != nbytes){
- fprintf(stderr, "Error: only wrote %d bytes to file %s. Exiting.\n",
- nwritten, fullname);
- }
- size -= nbytes;
- if (size==0)
- in_block = 0;
+ nwritten = fwrite (block, 1, nbytes, outfile);
+ if (nwritten != nbytes)
+ {
+ fprintf (stderr, "Error: only wrote %d bytes to file %s. Exiting.\n",
+ nwritten, fullname);
+ exit (-2);
+ }
+ size -= nbytes;
+ if (size==0)
+ in_block = 0;
+ }
}
- }
- exit (0);
-}
-
+ return 0;
+}
MAKEDIRSTRING=$(MAKEDIR:\=\\)
XEMACSDIRSTRING=$(MAKEDIRSTRING:\\nt=)
-
-# Define a variable for the 'del' command to use
-# N.B. Windows Millenium Edition's ERASE can only handle one target (file or
-# wildcard) per invocation. Make sure each use has only one target!
-DEL=-del
-
# Program name and version
!include "$(XEMACS)\version.sh"
+# Put these before including config.inc so they can be overridden there.
+# Note that some versions of some commands are deficient.
+
+# Define a variable for the 'del' command to use.
+# WinME's DEL command can only handle one argument and only has the /P flag.
+# So only delete one glob at a time. Override flags in config.inc.
+DEL=-del
+
+# Tell COPY, MOVE, and XCOPY to suppress confirmation for overwriting
+# files.
+COPYCMD=/y
+# Define the 'copy' command to use.
+COPY=xcopy /q
+COPYDIR=xcopy /q /e
+
!include "config.inc"
!if !defined(INFODOCK)
# #### Copying is cheap, we should just force these
$(SRC)\config.h: config.h
+ set COPYCMD=$(COPYCMD)
copy config.h $(SRC)
$(SRC)\Emacs.ad.h: Emacs.ad.h
+ set COPYCMD=$(COPYCMD)
copy Emacs.ad.h $(SRC)
$(SRC)\paths.h: paths.h
+ set COPYCMD=$(COPYCMD)
copy paths.h $(SRC)
#------------------------------------------------------------------------------
# use this rule to install the system
install: all
cd $(NT)
+ set COPYCMD=$(COPYCMD)
@echo Installing in $(INSTALL_DIR) ...
@echo PlaceHolder > PlaceHolder
@xcopy /q PROBLEMS "$(INSTALL_DIR)\"
(Vcharset_thai_tis620): Likewise.
(Vcharset_katakana_jisx0201): Likewise.
+2004-02-02 Vin Shelton <acs@xemacs.org>
+
+ * XEmacs 21.4.15 is released
+
+2004-01-30 Glynn Clements <glynn.clements@virgin.net>
+
+ * device-x.c (x_error_handler): Don't call stderr_out
+
+2003-11-07 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * buffer.c (other-buffer): Clarify documentation of order of
+ arguments for FSF Emacs.
+
+2003-10-11 Olivier Galibert <galibert@pobox.com>
+
+ * window.c (Fdelete_window): Dirty the mirror structure _before_
+ marking the window deleted.
+
+2003-09-15 Jerry James <james@xemacs.org>
+
+ * event-msw.c (debug_mswin_messages): Conditionally compile
+ messages missing from the Cygwin headers.
+
+2003-06-16 Stephen J. Turnbull <stephen@xemacs.org>
+
+ * data.c (eq_with_ebola_notice): Fix typo in comment.
+ (Ftrue_list_p): Improve docstring.
+
+2003-10-13 Stephen J. Turnbull <stephen@xemacs.org>
+
+ * frame-x.c (x_update_frame_external_traits): Fix XtSetArg idiom.
+
+2003-09-27 Stephen J. Turnbull <stephen@xemacs.org>
+
+ * search.c (trivial_regexp_p): Regexps containing "\{" are
+ nontrivial. Thanks to Manfred Bartz for reporting the bug and
+ Stefan Monnier for suggesting a diagnosis.
+
+2003-09-25 Stephen J. Turnbull <stephen@xemacs.org>
+
+ * elhash.c (make-hash-table): Clarify use of :test #'equal.
+
+2003-09-12 Stephen J. Turnbull <stephen@xemacs.org>
+
+ * search.c (Fsearch_forward):
+ (Fsearch_backward):
+ Document negative count.
+
+2003-09-13 Stephen J. Turnbull <stephen@xemacs.org>
+
+ * regex.c (re_max_failures): Bump to 20000 for REGEX_MALLOC, too.
+
+2003-09-13 Martin Buchholz <martin@xemacs.org>
+
+ * s/sol2.h: Use OS_RELEASE=os_release_major*100+os_release_minor
+
+2003-09-15 Vin Shelton <acs@xemacs.org>
+
+ * .gdbinit (pobj): Remove Ilya's fix that was only intended for
+ 21.5.
+
+2003-09-12 Yoshiki Hayashi <yoshiki@xemacs.org>
+
+ * regex.c (TRANSLATE_EXTENDED_UNSAFE): Remove.
+ (re_search_2): Match the first byte of Bufbyte, not Emchar.
+ (re_match_2_internal): Use TRANSLATE instead of
+ TRANSLATE_EXTENDED_UNSAFE. The latter was a hack to bypass
+ non-ASCII char case conversion.
+
+2003-09-08 Mike Sperber <mike@xemacs.org>
+
+ * symbols.c (Fvariable_binding_locus): Add, as per suggestion from
+ RMS at: http://article.gmane.org/gmane.emacs.pretest.bugs/1010
+
+2003-06-14 Ilya N. Golubev <gin@mo.msk.ru>
+
+ * .gdbinit (pobj): fix printing of symbol name.
+
+2003-08-01 Ilya N. Golubev <gin@mo.msk.ru>
+
+ * frame-x.c (x_layout_widgets): When resizing is about to cause
+ frame size slip, mark it for redisplay.
+
+2003-08-18 Jerry James <james@xemacs.org>
+
+ * opaque.h: Remove unused (X)OPAQUE_MARKFUN definitions.
+
2003-09-03 Vin Shelton <acs@xemacs.org>
* XEmacs 21.4.14 is released
is provided, then the ordering is for that frame. If the second arg
is t, then the global ordering is returned.
-Note: In FSF Emacs, this function takes two arguments: BUFFER and
-VISIBLE-OK.
+Note: In FSF Emacs, this function takes the arguments in the order of
+BUFFER, VISIBLE-OK and FRAME.
*/
(buffer, frame, visible_ok))
{
&& ((CHARP (obj1) && INTP (obj2)) || (CHARP (obj2) && INTP (obj1))))
{
/* #### It would be really nice if this were a proper warning
- instead of brain-dead print ro Qexternal_debugging_output. */
+ instead of brain-dead print to Qexternal_debugging_output. */
write_c_string ("Comparison between integer and character is constant nil (",
Qexternal_debugging_output);
Fprinc (obj1, Qexternal_debugging_output);
}
DEFUN ("true-list-p", Ftrue_list_p, 1, 1, 0, /*
-Return t if OBJECT is a non-dotted, i.e. nil-terminated, list.
+Return t if OBJECT is an acyclic, nil-terminated (ie, not dotted), list.
*/
(object))
{
}
#endif /* EXTERNAL_WIDGET */
+#if 0
+ /* This ends up calling X, which isn't allowed in an X error handler
+ */
stderr_out ("\n%s: ",
(STRINGP (Vinvocation_name)
? (char *) XSTRING_DATA (Vinvocation_name)
: "xemacs"));
+#endif
XmuPrintDefaultErrorMessage (disp, event, stderr);
}
return 0;
Keyword :test can be `eq', `eql' (default) or `equal'.
Comparison between keys is done using this function.
If speed is important, consider using `eq'.
-When storing strings in the hash table, you will likely need to use `equal'.
+When hash table keys may be strings, you will likely need to use `equal'.
Keyword :size specifies the number of keys likely to be inserted.
This number of entries can be inserted without enlarging the hash table.
FROB (WM_GETHOTKEY)
FROB (WM_QUERYDRAGICON)
FROB (WM_COMPAREITEM)
-#if(WINVER >= 0x0500)
+#if(WINVER >= 0x0500) && defined(WM_GETOBJECT)
FROB (WM_GETOBJECT)
#endif /* WINVER >= 0x0500 */
FROB (WM_COMPACTING)
FROB (WM_ENTERIDLE)
#if(WINVER >= 0x0500)
FROB (WM_MENURBUTTONUP)
+#ifdef WM_MENUDRAG
FROB (WM_MENUDRAG)
+#endif
+#ifdef WM_MENUGETOBJECT
FROB (WM_MENUGETOBJECT)
+#endif
+#ifdef WM_UNINITMENUPOPUP
FROB (WM_UNINITMENUPOPUP)
+#endif
+#ifdef WM_MENUCOMMAND
FROB (WM_MENUCOMMAND)
+#endif
#endif /* WINVER >= 0x0500 */
FROB (WM_IME_SELECT)
FROB (WM_IME_CHAR)
#endif /* WINVER >= 0x0400 */
-#if(WINVER >= 0x0500)
+#if(WINVER >= 0x0500) && defined(WM_IME_REQUEST)
FROB (WM_IME_REQUEST)
#endif /* WINVER >= 0x0500 */
#if(WINVER >= 0x0400) && !defined(CYGWIN)
#endif
/* finally the text area */
- XtConfigureWidget (text, text_x, text_y,
- width - 2*textbord,
- height - text_y - 2*textbord,
- textbord);
+ {
+ Dimension nw = width - 2*textbord;
+ Dimension nh = height - text_y - 2*textbord;
+
+ if (nh != f->pixheight || nw != f->pixwidth)
+ MARK_FRAME_SIZE_SLIPPED (f);
+ XtConfigureWidget (text, text_x, text_y, nw, nh, textbord);
+ }
}
static void
Lisp_Object font = FACE_FONT (Vdefault_face, frame, Vcharset_ascii);
if (!EQ (font, Vthe_null_font_instance))
- XtSetArg (al[ac], XtNfont,
- (void *) FONT_INSTANCE_X_FONT (XFONT_INSTANCE (font)));
- ac++;
+ {
+ XtSetArg (al[ac], XtNfont,
+ (void *) FONT_INSTANCE_X_FONT (XFONT_INSTANCE (font)));
+ ac++;
+ }
}
else
abort ();
#define OPAQUE_SIZE(op) ((op)->size)
#define OPAQUE_DATA(op) ((void *) ((op)->data))
-#define OPAQUE_MARKFUN(op) ((op)->markfun)
#define XOPAQUE_SIZE(op) OPAQUE_SIZE (XOPAQUE (op))
#define XOPAQUE_DATA(op) OPAQUE_DATA (XOPAQUE (op))
-#define XOPAQUE_MARKFUN(op) OPAQUE_MARKFUN (XOPAQUE (op))
Lisp_Object make_opaque (const void *data, size_t size);
exactly that if always used MAX_FAILURE_SPACE each time we failed.
This is a variable only so users of regex can assign to it; we never
change it ourselves. */
-#if defined (MATCH_MAY_ALLOCATE)
+#if defined (MATCH_MAY_ALLOCATE) || defined (REGEX_MALLOC)
/* 4400 was enough to cause a crash on Alpha OSF/1,
whose default stack limit is 2mb. */
int re_max_failures = 20000;
when we use a character as a subscript we must make it unsigned. */
#define TRANSLATE(d) (TRANSLATE_P (translate) ? RE_TRANSLATE (d) : (d))
-#ifdef MULE
-
-#define TRANSLATE_EXTENDED_UNSAFE(emch) \
- (TRANSLATE_P (translate) && emch < 0x80 ? RE_TRANSLATE (emch) : (emch))
-
-#endif
-
/* Macros for outputting the compiled pattern into `buffer'. */
/* If the buffer isn't allocated when it comes in, use this. */
{
#ifdef MULE
Emchar buf_ch;
+ Bufbyte str[MAX_EMCHAR_LEN];
buf_ch = charptr_emchar (d);
buf_ch = RE_TRANSLATE (buf_ch);
- if (buf_ch >= 0200 || fastmap[(unsigned char) buf_ch])
+ set_charptr_emchar (str, buf_ch);
+ if (buf_ch >= 0200 || fastmap[(unsigned char) *str])
break;
#else
if (fastmap[(unsigned char)RE_TRANSLATE (*d)])
REGEX_PREFETCH ();
c = charptr_emchar ((const Bufbyte *) d);
- c = TRANSLATE_EXTENDED_UNSAFE (c); /* The character to match. */
+ c = TRANSLATE (c); /* The character to match. */
if (EQ (Qt, unified_range_table_lookup (p, c, Qnil)))
not_p = !not_p;
#endif
/* Fix understandable GCC lossage on Solaris 2.6 */
-#if defined(__GNUC__) && OS_RELEASE >= 56 && !defined(NOT_C_CODE)
+#if defined(__GNUC__) && OS_RELEASE >= 506 && !defined(NOT_C_CODE)
/* GCC va_list munging is a little messed up */
#define __GNUC_VA_LIST
*/
#undef UNEXEC
-#if OS_RELEASE < 56
+#if OS_RELEASE < 506
#define UNEXEC "unexsol2.o"
#else
#define UNEXEC "unexsol2-6.o"
#else /* C_CODE */
-#if OS_RELEASE <= 53
+#if OS_RELEASE <= 503
/* Solaris 2.3 has a bug in XListFontsWithInfo. */
#define BROKEN_XLISTFONTSWITHINFO
#endif
#define BROKEN_SIGCHLD
#endif
-#if OS_RELEASE < 55
+#if OS_RELEASE < 505
#if __STDC__ == 1 && defined(__SUNPRO_C)
#define _POSIX_C_SOURCE 1
extern void *__builtin_alloca (size_t);
#endif /* before SunOS 5.5 */
-#if OS_RELEASE == 55
+#if OS_RELEASE == 505
/* The following functions were added in Solaris 2.5,
but they forgot to add prototypes to the system header files. */
int getpagesize (void);
#endif /* SunOS 5.5 */
/* 2.5 now has `random' back in libc but we don't want to use it. */
-#if OS_RELEASE >= 55
+#if OS_RELEASE >= 505
#undef HAVE_RANDOM
/* Apparently not necessary here, and it causes 10% CPU chewage. */
#undef BROKEN_SIGCHLD
#endif /* >= SunOS 5.5 */
-#if OS_RELEASE < 56
+#if OS_RELEASE < 506
/* Missing prototypes, added in Solaris 2.6 */
struct timeval;
int utimes (char *file, struct timeval *tvp);
{
switch (*s++)
{
+ /* ']' doesn't appear here because it's only special after ] */
case '.': case '*': case '+': case '?': case '[': case '^': case '$':
return 0;
case '\\':
{
case '|': case '(': case ')': case '`': case '\'': case 'b':
case 'B': case '<': case '>': case 'w': case 'W': case 's':
- case 'S': case '=':
+ case 'S': case '=': case '{': case '}':
#ifdef MULE
/* 97/2/25 jhod Added for category matches */
case 'c': case 'C':
return follow_varalias_pointers (object, follow_past_lisp_magic);
}
+DEFUN ("variable-binding-locus", Fvariable_binding_locus, 1, 1, 0, /*
+Return a value indicating where VARIABLE's current binding comes from.
+If the current binding is buffer-local, the value is the current buffer.
+If the current binding is global (the default), the value is nil.
+*/
+ (variable))
+{
+ Lisp_Object valcontents;
+
+ CHECK_SYMBOL (variable);
+ variable = Findirect_variable (variable, Qnil);
+
+ /* Make sure the current binding is actually swapped in. */
+ find_symbol_value (variable);
+
+ valcontents = XSYMBOL (variable)->value;
+
+ if (SYMBOL_VALUE_MAGIC_P (valcontents)
+ && ((XSYMBOL_VALUE_MAGIC_TYPE (valcontents) == SYMVAL_BUFFER_LOCAL)
+ || (XSYMBOL_VALUE_MAGIC_TYPE (valcontents) == SYMVAL_SOME_BUFFER_LOCAL))
+ && (!NILP (Flocal_variable_p (variable, Fcurrent_buffer (), Qnil))))
+ return Fcurrent_buffer ();
+ else
+ return Qnil;
+}
\f
/************************************************************************/
/* initialization */
DEFSYMBOL (Qsymbol_value_in_buffer);
DEFSYMBOL (Qsymbol_value_in_console);
DEFSYMBOL (Qlocal_variable_p);
-
DEFSYMBOL (Qconst_integer);
DEFSYMBOL (Qconst_boolean);
DEFSYMBOL (Qconst_object);
DEFSUBR (Fdefvaralias);
DEFSUBR (Fvariable_alias);
DEFSUBR (Findirect_variable);
+ DEFSUBR (Fvariable_binding_locus);
DEFSUBR (Fdontusethis_set_symbol_value_handler);
}
else if (!NILP (w->vchild))
delete_all_subwindows (XWINDOW (w->vchild));
+ /* Warning: mark_window_as_deleted calls window_unmap_subwindows and
+ therefore redisplay, so it requires the mirror structure to be
+ correct. We must dirty the mirror before it is called. */
+ f->mirror_dirty = 1;
+
mark_window_as_deleted (w);
- f->mirror_dirty = 1;
return Qnil;
}
+2004-02-02 Vin Shelton <acs@xemacs.org>
+
+ * XEmacs 21.4.15 is released
+
+2003-10-22 Vin Shelton <acs@xemacs.org>
+
+ * automated/hash-table-tests.el: Remove debugging print
+ statements.
+
+2003-10-22 Stephen J. Turnbull <stephen@xemacs.org>
+
+ * automated/test-harness.el: Synch to 21.5.
+
+2003-09-25 Stephen J. Turnbull <stephen@xemacs.org>
+
+ * automated/regexp-tests.el (multiple-match): Test \{m,n\}.
+
+2003-09-09 Adrian Aichner <adrian@xemacs.org>
+
+ * automated/test-harness.el (test-harness-from-buffer): Log
+ results when running noninteractive.
+ * automated/test-harness.el (batch-test-emacs): Remove misplaced
+ debugging code.
+
2003-09-03 Vin Shelton <acs@xemacs.org>
* XEmacs 21.4.14 is released
(let ((k-sum 0) (v-sum 0))
(maphash #'(lambda (k v) (incf k-sum k) (incf v-sum v)) ht)
- (print k-sum)
- (print v-sum)
(Assert (= k-sum (/ (* size (- size 1)) 2)))
(Assert (= v-sum (- k-sum))))
(Assert (string-match "^\\(Ä\\)\\1$" "ÄÄ"))
(Assert (not (string-match "^\\(Ä\\)\\1$" "Ää"))))
+;; multiple-match
+;; Thanks to Manfred Bartz <MBartz@xix.com>
+;; c.e.x <vn4rkkm7ouf3b5@corp.supernews.com>
+;; #### Need to do repetitions of more complex regexps
+;; #### WASH ME!
+(with-temp-buffer
+ (Assert (not (string-match "^a\\{4,4\\}$" "aaa")))
+ (Assert (string-match "^a\\{4,4\\}$" "aaaa"))
+ (Assert (not (string-match "^a\\{4,4\\}$" "aaaaa")))
+ (Assert (not (string-match "^[a]\\{4,4\\}$" "aaa")))
+ (Assert (string-match "^[a]\\{4,4\\}$" "aaaa"))
+ (Assert (not (string-match "^[a]\\{4,4\\}$" "aaaaa")))
+ (Assert (not (string-match "^\\(a\\)\\{4,4\\}$" "aaa")))
+ (Assert (string-match "^\\(a\\)\\{4,4\\}$" "aaaa"))
+ (Assert (not (string-match "^\\(a\\)\\{4,4\\}$" "aaaaa")))
+ ;; Use class because repetition of single char broken in 21.5.15
+ (Assert (not (string-match "^[a]\\{3,5\\}$" "aa")))
+ (Assert (string-match "^[a]\\{3,5\\}$" "aaa"))
+ (Assert (string-match "^[a]\\{3,5\\}$" "aaaa"))
+ (Assert (string-match "^[a]\\{3,5\\}$" "aaaaa"))
+ (Assert (not (string-match "^[a]\\{3,5\\}$" "aaaaaa")))
+ (insert "\
+aa
+aaa
+aaaa
+aaaaa
+aaaaaa
+baaaa
+")
+ (goto-char (point-min))
+ (forward-line 1)
+ (Assert (not (looking-at "^a\\{4,4\\}$")))
+ (forward-line 1)
+ (Assert (looking-at "^a\\{4,4\\}$"))
+ (forward-line 1)
+ (Assert (not (looking-at "^a\\{4,4\\}$")))
+ (goto-char (point-min))
+ (forward-line 1)
+ (Assert (not (looking-at "^[a]\\{4,4\\}$")))
+ (forward-line 1)
+ (Assert (looking-at "^[a]\\{4,4\\}$"))
+ (forward-line 1)
+ (Assert (not (looking-at "^[a]\\{4,4\\}$")))
+ (goto-char (point-min))
+ (forward-line 1)
+ (Assert (not (looking-at "^\\(a\\)\\{4,4\\}$")))
+ (forward-line 1)
+ (Assert (looking-at "^\\(a\\)\\{4,4\\}$"))
+ (forward-line 1)
+ (Assert (not (looking-at "^\\(a\\)\\{4,4\\}$")))
+ ;; Use class because repetition of single char broken in 21.5.15
+ (goto-char (point-min))
+ (Assert (not (looking-at "^[a]\\{3,5\\}$")))
+ (forward-line 1)
+ (Assert (looking-at "^[a]\\{3,5\\}$"))
+ (forward-line 1)
+ (Assert (looking-at "^[a]\\{3,5\\}$"))
+ (forward-line 1)
+ (Assert (looking-at "^[a]\\{3,5\\}$"))
+ (forward-line 1)
+ (Assert (not (looking-at "^[a]\\{3,5\\}$")))
+ (goto-char (point-min))
+ (Assert (= 12 (re-search-forward "a\\{4,4\\}")))
+ (goto-char (point-min))
+ (Assert (= 12 (re-search-forward "b?a\\{4,4\\}")))
+ (goto-char (point-min))
+ (Assert (= 31 (re-search-forward "ba\\{4,4\\}")))
+ (goto-char (point-min))
+ (Assert (= 31 (re-search-forward "[b]a\\{4,4\\}")))
+ (goto-char (point-min))
+ (Assert (= 31 (re-search-forward "\\(b\\)a\\{4,4\\}")))
+ (goto-char (point-min))
+ (Assert (= 12 (re-search-forward "^a\\{4,4\\}")))
+ (goto-char (point-min))
+ (Assert (= 12 (re-search-forward "^a\\{4,4\\}$")))
+ (goto-char (point-min))
+ (Assert (= 12 (re-search-forward "[a]\\{4,4\\}")))
+ (goto-char (point-min))
+ (Assert (= 12 (re-search-forward "^[a]\\{4,4\\}")))
+ (goto-char (point-min))
+ (Assert (= 12 (re-search-forward "^[a]\\{4,4\\}$")))
+ )
+
;; charset, charset_not
;; Not called because it takes too much time.
(defun test-regexp-charset-paranoid ()
;; test-harness.el --- Run Emacs Lisp test suites.
-;;; Copyright (C) 1998 Free Software Foundation, Inc.
+;;; Copyright (C) 1998, 2002, 2003 Free Software Foundation, Inc.
+;;; Copyright (C) 2002 Ben Wing.
;; Author: Martin Buchholz
+;; Maintainer: Stephen J. Turnbull <stephen@xemacs.org>
;; Keywords: testing
;; This file is part of XEmacs.
;;; A test suite harness for testing XEmacs.
;;; The actual tests are in other files in this directory.
;;; Basically you just create files of emacs-lisp, and use the
-;;; Assert, Check-Error, and Check-Message functions to create tests.
+;;; Assert, Check-Error, Check-Message, and Check-Error-Message functions
+;;; to create tests. See `test-harness-from-buffer' below.
+;;; Don't suppress tests just because they're due to known bugs not yet
+;;; fixed -- use the Known-Bug-Expect-Failure and
+;;; Implementation-Incomplete-Expect-Failure wrapper macros to mark them.
+;;; A lot of the tests we run push limits; suppress Ebola message with the
+;;; Ignore-Ebola wrapper macro.
+;;;
;;; You run the tests using M-x test-emacs-test-file,
;;; or $(EMACS) -batch -l .../test-harness.el -f batch-test-emacs file ...
;;; which is run for you by the `make check' target in the top-level Makefile.
(require 'bytecomp)
+(defvar test-harness-test-compiled nil
+ "Non-nil means the test code was compiled before execution.")
+
(defvar test-harness-verbose
(and (not noninteractive) (> (device-baud-rate) search-slow-speed))
"*Non-nil means print messages describing progress of emacs-tester.")
+(defvar test-harness-file-results-alist nil
+ "Each element is a list (FILE SUCCESSES TESTS).
+The order is the reverse of the order in which tests are run.
+
+FILE is a string naming the test file.
+SUCCESSES is a non-negative integer, the number of successes.
+TESTS is a non-negative integer, the number of tests run.")
+
+(defvar test-harness-risk-infloops nil
+ "*Non-nil to run tests that may loop infinitely in buggy implementations.")
+
(defvar test-harness-current-file nil)
(defvar emacs-lisp-file-regexp (purecopy "\\.el\\'")
"*Regexp which matches Emacs Lisp source files.")
+(defconst test-harness-file-summary-template
+ (format "%%-%ds %%%dd of %%%dd tests successful (%%3d%%%%)."
+ (length "byte-compiler-tests.el:") ; use the longest file name
+ 5
+ 5)
+ "Format for summary lines printed after each file is run.")
+
+(defconst test-harness-null-summary-template
+ (format "%%-%ds No tests run."
+ (length "byte-compiler-tests.el:")) ; use the longest file name
+ "Format for \"No tests\" lines printed after a file is run.")
+
;;;###autoload
(defun test-emacs-test-file (filename)
"Test a file of Lisp code named FILENAME.
(setq body (cons (read buffer) body)))
(end-of-file nil)
(error
- (princ (format "Unexpected error %S reading forms from buffer\n" error-info))))
+ (princ (format "Unexpected error %S reading forms from buffer\n"
+ error-info))))
`(lambda ()
(defvar passes)
(defvar assertion-failures)
(trick-optimizer nil)
(unexpected-test-suite-failure nil)
- (debug-on-error t))
+ (debug-on-error t)
+ (pass-stream nil))
(with-output-to-temp-buffer "*Test-Log*"
+ (princ (format "Testing %s...\n\n" filename))
+
+ (defconst test-harness-failure-tag "FAIL")
+ (defconst test-harness-success-tag "PASS")
+
+ (defmacro Known-Bug-Expect-Failure (&rest body)
+ `(let ((test-harness-failure-tag "KNOWN BUG")
+ (test-harness-success-tag "PASS (FAILURE EXPECTED)"))
+ ,@body))
+
+ (defmacro Implementation-Incomplete-Expect-Failure (&rest body)
+ `(let ((test-harness-failure-tag "IMPLEMENTATION INCOMPLETE")
+ (test-harness-success-tag "PASS (FAILURE EXPECTED)"))
+ ,@body))
+
+ (defun Print-Failure (fmt &rest args)
+ (setq fmt (format "%s: %s" test-harness-failure-tag fmt))
+ (if (noninteractive) (apply #'message fmt args))
+ (princ (concat (apply #'format fmt args) "\n")))
+
+ (defun Print-Pass (fmt &rest args)
+ (setq fmt (format "%s: %s" test-harness-success-tag fmt))
+ (and test-harness-verbose
+ (princ (concat (apply #'format fmt args) "\n"))))
+
+ (defun Print-Skip (test reason &optional fmt &rest args)
+ (setq fmt (concat "SKIP: %S BECAUSE %S" fmt))
+ (princ (concat (apply #'format fmt test reason args) "\n")))
+
+ (defmacro Skip-Test-Unless (condition reason description &rest body)
+ "Unless CONDITION is satisfied, skip test BODY.
+REASON is a description of the condition failure, and must be unique (it
+is used as a hash key). DESCRIPTION describes the tests that were skipped.
+BODY is a sequence of expressions and may contain several tests."
+ `(if (not ,condition)
+ (let ((count (gethash ,reason skipped-test-reasons)))
+ (puthash ,reason (if (null count) 1 (1+ count))
+ skipped-test-reasons)
+ (Print-Skip ,description ,reason))
+ ,@body))
(defmacro Assert (assertion)
`(condition-case error-info
(progn
(assert ,assertion)
- (princ (format "PASS: %S" (quote ,assertion)))
- (terpri)
+ (Print-Pass "%S" (quote ,assertion))
(incf passes))
(cl-assertion-failed
- (princ (format "FAIL: Assertion failed: %S\n" (quote ,assertion)))
+ (Print-Failure "Assertion failed: %S" (quote ,assertion))
(incf assertion-failures))
- (t (princ (format "FAIL: %S ==> error: %S\n" (quote ,assertion) error-info))
+ (t (Print-Failure "%S ==> error: %S" (quote ,assertion) error-info)
(incf other-failures)
)))
`(condition-case error-info
(progn
(setq trick-optimizer (progn ,@body))
- (princ (format "FAIL: %S executed successfully, but expected error %S\n"
+ (Print-Failure "%S executed successfully, but expected error %S"
,quoted-body
- ',expected-error))
+ ',expected-error)
(incf no-error-failures))
(,expected-error
- (princ (format "PASS: %S ==> error %S, as expected\n"
- ,quoted-body ',expected-error))
+ (Print-Pass "%S ==> error %S, as expected"
+ ,quoted-body ',expected-error)
(incf passes))
(error
- (princ (format "FAIL: %S ==> expected error %S, got error %S instead\n"
- ,quoted-body ',expected-error error-info))
+ (Print-Failure "%S ==> expected error %S, got error %S instead"
+ ,quoted-body ',expected-error error-info)
(incf wrong-error-failures)))))
- (defmacro Check-Error-Message (expected-error expected-error-regexp &rest body)
+ (defmacro Check-Error-Message (expected-error expected-error-regexp
+ &rest body)
(let ((quoted-body (if (= 1 (length body))
`(quote ,(car body)) `(quote (progn ,@body)))))
`(condition-case error-info
(progn
(setq trick-optimizer (progn ,@body))
- (princ (format "FAIL: %S executed successfully, but expected error %S\n"
- ,quoted-body
- ',expected-error))
+ (Print-Failure "%S executed successfully, but expected error %S"
+ ,quoted-body ',expected-error)
(incf no-error-failures))
(,expected-error
(let ((error-message (second error-info)))
(if (string-match ,expected-error-regexp error-message)
(progn
- (princ (format "PASS: %S ==> error %S %S, as expected\n"
- ,quoted-body error-message ',expected-error))
+ (Print-Pass "%S ==> error %S %S, as expected"
+ ,quoted-body error-message ',expected-error)
(incf passes))
- (princ (format "FAIL: %S ==> got error %S as expected, but error message %S did not match regexp %S\n"
- ,quoted-body ',expected-error error-message ,expected-error-regexp))
+ (Print-Failure "%S ==> got error %S as expected, but error message %S did not match regexp %S"
+ ,quoted-body ',expected-error error-message ,expected-error-regexp)
(incf wrong-error-failures))))
(error
- (princ (format "FAIL: %S ==> expected error %S, got error %S instead\n"
- ,quoted-body ',expected-error error-info))
+ (Print-Failure "%S ==> expected error %S, got error %S instead"
+ ,quoted-body ',expected-error error-info)
(incf wrong-error-failures)))))
- (defun Print-Skip (test reason &optional fmt &rest args)
- (setq fmt (concat "SKIP: %S. REASON: %S" fmt))
- (princ (concat (apply #'format fmt test reason args) "\n")))
-
(defmacro Check-Message (expected-message-regexp &rest body)
- (if (not (fboundp 'defadvice))
- ;; #### This whole thing should go inside a macro Skip-Test
- (let* ((reason "advice unavailable")
- (count (gethash reason skipped-test-reasons)))
- ;(message "%S: %S" reason count)
- (puthash reason (if (null count) 1 (1+ count))
- skipped-test-reasons)
- `(Print-Skip ,expected-message-regexp ,reason))
+ (Skip-Test-Unless (fboundp 'defadvice)
+ "can't defadvice"
+ expected-message-regexp
(let ((quoted-body (if (= 1 (length body))
- `(quote ,(car body)) `(quote (progn ,@body)))))
+ `(quote ,(car body))
+ `(quote (progn ,@body)))))
`(let ((messages ""))
(defadvice message (around collect activate)
(defvar messages)
(setq trick-optimizer (progn ,@body))
(if (string-match ,expected-message-regexp messages)
(progn
- (princ (format "PASS: %S ==> value %S, message %S, matching %S, as expected\n"
- ,quoted-body trick-optimizer messages ',expected-message-regexp))
+ (Print-Pass "%S ==> value %S, message %S, matching %S, as expected"
+ ,quoted-body trick-optimizer messages ',expected-message-regexp)
(incf passes))
- (princ (format "FAIL: %S ==> value %S, message %S, NOT matching expected %S\n"
- ,quoted-body trick-optimizer messages ',expected-message-regexp))
+ (Print-Failure "%S ==> value %S, message %S, NOT matching expected %S"
+ ,quoted-body trick-optimizer messages
+ ',expected-message-regexp)
(incf missing-message-failures)))
(error
- (princ (format "FAIL: %S ==> unexpected error %S\n"
- ,quoted-body error-info))
+ (Print-Failure "%S ==> unexpected error %S"
+ ,quoted-body error-info)
(incf other-failures)))
(ad-unadvise 'message)))))
(message "Test suite execution aborted." error-info)
))
(princ "\nTesting Compiled Lisp\n\n")
- (let (code)
+ (let (code
+ (test-harness-test-compiled t))
(condition-case error-info
(setq code
;; our lisp code is often intentionally dubious,
(message "Unexpected error %S while executing byte-compiled code." error-info)
(message "Test suite execution aborted." error-info)
)))
- (princ "\nSUMMARY:\n")
+ (princ (format "\nSUMMARY for %s:\n" filename))
(princ (format "\t%5d passes\n" passes))
(princ (format "\t%5d assertion failures\n" assertion-failures))
(princ (format "\t%5d errors that should have been generated, but weren't\n" no-error-failures))
(basename (file-name-nondirectory filename))
(summary-msg
(if (> total 0)
- (format "%s: %d of %d (%d%%) tests successful."
- basename passes total (/ (* 100 passes) total))
- (format "%s: No tests run" basename)))
+ (format test-harness-file-summary-template
+ (concat basename ":")
+ passes total (/ (* 100 passes) total))
+ (format test-harness-null-summary-template
+ (concat basename ":"))))
(reasons ""))
(maphash (lambda (key value)
(setq reasons
(concat reasons
- (format "\n %d tests skipped because %s"
+ (format "\n %d tests skipped because %s."
value key))))
skipped-test-reasons)
(when (> (length reasons) 1)
Probably XEmacs cannot find your installed packages. Set EMACSPACKAGEPATH
to the package hierarchy root or configure with --package-path to enable
the skipped tests.")))
+ (setq test-harness-file-results-alist
+ (cons (list filename passes total)
+ test-harness-file-results-alist))
(message "%s" summary-msg))
(when unexpected-test-suite-failure
(message "Test suite execution failed unexpectedly."))
(fmakunbound 'Check-Error-Message)
(fmakunbound 'Ignore-Ebola)
(fmakunbound 'Int-to-Marker)
+ (and noninteractive
+ (message "%s" (buffer-substring-no-properties
+ nil nil "*Test-Log*")))
)))
(defvar test-harness-results-point-max nil)
(setq error t))))
(or (batch-test-emacs-1 file)
(setq error t))))
- ;;(message "%s" (buffer-string nil nil "*Test-Log*"))
- (message "Done")
+ (let ((namelen 0)
+ (succlen 0)
+ (testlen 0)
+ (results test-harness-file-results-alist))
+ ;; compute maximum lengths of variable components of report
+ ;; probably should just use (length "byte-compiler-tests.el")
+ ;; and 5-place sizes -- this will also work for the file-by-file
+ ;; printing when Adrian's kludge gets reverted
+ (flet ((print-width (i)
+ (let ((x 10) (y 1))
+ (while (>= i x)
+ (setq x (* 10 x) y (1+ y)))
+ y)))
+ (while results
+ (let* ((head (car results))
+ (nn (length (file-name-nondirectory (first head))))
+ (ss (print-width (second head)))
+ (tt (print-width (third head))))
+ (when (> nn namelen) (setq namelen nn))
+ (when (> ss succlen) (setq succlen ss))
+ (when (> tt testlen) (setq testlen tt)))
+ (setq results (cdr results))))
+ ;; create format and print
+ (let ((results (reverse test-harness-file-results-alist)))
+ (while results
+ (let* ((head (car results))
+ (basename (file-name-nondirectory (first head)))
+ (nsucc (second head))
+ (ntest (third head)))
+ (if (> ntest 0)
+ (message test-harness-file-summary-template
+ (concat basename ":")
+ nsucc
+ ntest
+ (/ (* 100 nsucc) ntest))
+ (message test-harness-null-summary-template
+ (concat basename ":")))
+ (setq results (cdr results))))))
+ (message "\nDone")
(kill-emacs (if error 1 0))))
(provide 'test-harness)
emacs_is_beta=
emacs_major_version=21
emacs_minor_version=4
-emacs_beta_version=14
-xemacs_codename="Reasonable Discussion"
+emacs_beta_version=15
+xemacs_codename="Security Through Obscurity"
emacs_kit_version=
infodock_major_version=4
infodock_minor_version=0