X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=configure.in;h=8dec22a968321925be7f73dcba674c8e93ab79dc;hb=cf665b135b41d4f42067f9d9a8111c9602777cc1;hp=4fd08b644254c2e78c3acd19d8e7ff89dce930b2;hpb=0bd2eabab3e404c6769fe8f59b639275e960c415;p=xscreensaver diff --git a/configure.in b/configure.in index 4fd08b64..8dec22a9 100644 --- a/configure.in +++ b/configure.in @@ -2,6 +2,11 @@ # AC_INIT(driver/subprocs.c) + +echo -n "current directory: " +pwd +echo "command line was: $0 $@" + AC_CONFIG_HEADER(config.h) AC_CANONICAL_HOST @@ -19,8 +24,10 @@ if test -z "$GCC"; then CC="$CC -qlanglvl=ansi -qhalt=e" ;; -# NOTE: for Digital, need to add -std1 to get ANSI, but I'm not sure -# yet what $host pattern we should be testing for... + *-dec-*) + AC_MSG_RESULT(DEC: adding -std1) + CC="$CC -std1" + ;; *) AC_MSG_RESULT(no idea) @@ -37,21 +44,67 @@ AC_TRY_RUN([ main(int ac, char **av) { return 0; } ], AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.)) case "$host" in - *-irix*) - if test -n "$GCC"; then - AC_MSG_RESULT(Turning on gcc compiler warnings.) - CC="$CC -Wall -Wstrict-prototypes -Wnested-externs -Wno-format" - else - # not gcc - AC_MSG_RESULT(Turning on SGI compiler warnings.) - CC="$CC -fullwarn -use_readonly_const -rdata_shared -g3" - fi + *-irix5* |*-irix6.[0-3]* ) + if test -n "$GCC"; then + AC_MSG_RESULT(Turning on gcc compiler warnings.) + CC="$CC -Wall -Wstrict-prototypes -Wnested-externs -Wno-format" + else + # not gcc + AC_MSG_RESULT(Turning on SGI compiler warnings.) + CC="$CC -fullwarn -use_readonly_const -rdata_shared -g3" + fi ;; + + *-linux-*) + AC_MSG_RESULT(Turning on gcc compiler warnings.) + CC="$CC -Wall -Wstrict-prototypes -Wnested-externs -Wno-format" + ;; + +# *-dec-osf*) +# if test -z "$GCC"; then +# AC_MSG_RESULT(Turning on DEC C compiler warnings.) +# CC="$CC -migrate -w0 -verbose -warnprotos" +# fi +# ;; + esac +# Try and determine whether ${INSTALL} can create intermediate directories, +# and if not, whether "mkdir -p" works instead. This sets ${INSTALL_DIRS}. +# (But autoconf should earn its keep and do this for us!) +# +AC_DEFUN(AC_PROG_INSTALL_DIRS, + [INSTALL_DIRS='${INSTALL} -d' + AC_MSG_CHECKING(whether \"\${INSTALL} -d\" creates intermediate directories) + rm -rf conftestdir + if mkdir conftestdir; then + cd conftestdir >&- + + ${INSTALL} -d `pwd`/dir1/dir2 >&- 2>&- + if test -d dir1/dir2 ; then + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + AC_MSG_CHECKING(whether \"mkdir -p\" creates intermediate directories) + rm -rf dir1 + mkdir -p dir1/dir2 >&- 2>&- + if test -d dir1/dir2/. ; then + AC_MSG_RESULT(yes) + INSTALL_DIRS='mkdir -p' + else + AC_MSG_RESULT(no) + fi + fi + cd .. >&- + rm -rf conftestdir + fi +]) + + AC_PROG_CPP AC_PROG_INSTALL +AC_PROG_INSTALL_DIRS AC_PROG_MAKE_SET AC_C_CONST @@ -81,10 +134,10 @@ AC_CACHE_VAL(ac_cv_gettimeofday_args, [ac_gettimeofday_args=0])]) ac_cv_gettimeofday_args=$ac_gettimeofday_args]) ac_gettimeofday_args=$ac_cv_gettimeofday_args -if test $ac_gettimeofday_args = 1 ; then +if test "$ac_gettimeofday_args" = 1 ; then AC_DEFINE(HAVE_GETTIMEOFDAY) AC_MSG_RESULT(one argument) -elif test $ac_gettimeofday_args = 2 ; then +elif test "$ac_gettimeofday_args" = 2 ; then AC_DEFINE(HAVE_GETTIMEOFDAY) AC_DEFINE(GETTIMEOFDAY_TWO_ARGS) AC_MSG_RESULT(two arguments) @@ -94,9 +147,9 @@ fi AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv) -AC_CHECK_FUNCS(sigaction) +AC_CHECK_FUNCS(sigaction syslog) -AC_CHECK_HEADERS(unistd.h) +AC_CHECK_HEADERS(unistd.h crypt.h sys/select.h) dnl /usr/local/src/ssh-1.2.17/putenv.c -- AC_REPLACE_FUNCS(putenv) @@ -109,11 +162,8 @@ Installation options: specify the name of the subdirectory. For example, --exec-prefix=/usr/local/bin --enable-subdir=demos would put xscreensaver in /usr/local/bin/, and would - put the demos in /usr/local/bin/demos/. Note that if - you do this, you must make sure that the directory - is on your \$PATH before xscreensaver is started: the - directory name is not hardcoded into the program. - This merely sets the default installation location. + put the demos in /usr/local/bin/demos/. (If DIR + begins with /, then bindir will not be prepended.) --disable-subdir Just put the demos in \`bindir' (this is the default.) ], @@ -140,11 +190,10 @@ AC_PATH_XTRA # Try and find the app-defaults directory. # It sucks that autoconf doesn't do this already... # -AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF, - [ +AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,[ rm -fr conftestdir if mkdir conftestdir; then - cd conftestdir + cd conftestdir >&- # Make sure to not put "make" in the Imakefile rules, since we grep it out. cat > Imakefile <<'EOF' acfindx: @@ -154,12 +203,12 @@ EOF # GNU make sometimes prints "make[1]: Entering...", which'd confuse us. eval `${MAKE-make} acfindx 2>/dev/null | grep -v make` fi - cd .. + cd .. >&- rm -fr conftestdir fi]) -AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT, -[ # Look for the directory under a standard set of common directories. +AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,[ + # Look for the directory under a standard set of common directories. # Check X11 before X11Rn because it's often a symlink to the current release. for ac_dir in \ /usr/X11/lib/app-defaults \ @@ -222,7 +271,9 @@ AC_DEFUN(AC_PATH_X_APP_DEFAULTS, [AC_REQUIRE_CPP() AC_CACHE_CHECK([for X app-defaults directory], ac_cv_x_app_defaults, [AC_PATH_X_APP_DEFAULTS_XMKMF - AC_PATH_X_APP_DEFAULTS_DIRECT + if test x"$ac_x_app_defaults" = x; then + AC_PATH_X_APP_DEFAULTS_DIRECT + fi if test x"$ac_x_app_defaults" = x; then ac_cv_x_app_defaults="/usr/lib/X11/app-defaults" else @@ -276,19 +327,19 @@ AC_DEFUN(AC_TRY_X_COMPILE, [ AC_DEFUN(AC_CHECK_X_LIB, [ ac_save_CPPFLAGS="$CPPFLAGS" ac_save_LDFLAGS="$LDFLAGS" + if test \! -z "$includedir" ; then CPPFLAGS="$CPPFLAGS -I$includedir" fi - if test \! -z "$includedir" ; then - CPPFLAGS="$CPPFLAGS -I$includedir" - fi + # note: $X_CFLAGS includes $x_includes + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + if test \! -z "$libdir" ; then LDFLAGS="$LDFLAGS -L$libdir" fi - CPPFLAGS="$CPPFLAGS $X_CFLAGS" - if test \! -z "$x_libraries" ; then - LDFLAGS="$LDFLAGS -L$x_libraries" - fi + # note: $X_LIBS includes $x_libraries + LDFLAGS="$LDFLAGS $X_LIBS" + AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5]) CPPFLAGS="$ac_save_CPPFLAGS" LDFLAGS="$ac_save_LDFLAGS"]) @@ -307,6 +358,65 @@ AC_DEFUN(AC_TRY_X_RUN, [ +# Usage: HANDLE_X_PATH_ARG([variable_name], +# [--command-line-option], +# [descriptive string]) +# +# All of the --with options take three forms: +# +# --with-foo (or --with-foo=yes) +# --without-foo (or --with-foo=no) +# --with-foo=/DIR +# +# This function, HANDLE_X_PATH_ARG, deals with the /DIR case. When it sees +# a directory (string beginning with a slash) it checks to see whether +# /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS +# as appropriate. +# +AC_DEFUN(HANDLE_X_PATH_ARG, [ + case "$[$1]" in + yes) ;; + no) ;; + + /*) + AC_MSG_CHECKING([for [$3] headers]) + d=$[$1]/include + if test -d $d; then + X_CFLAGS="-I$d $X_CFLAGS" + AC_MSG_RESULT($d) + else + AC_MSG_RESULT(not found ($d: no such directory)) + fi + + AC_MSG_CHECKING([for [$3] libs]) + d=$[$1]/lib + if test -d $d; then + X_LIBS="-L$d $X_LIBS" + AC_MSG_RESULT($d) + else + AC_MSG_RESULT(not found ($d: no such directory)) + fi + + # replace the directory string with "yes". + [$1]_req="yes" + [$1]=$[$1]_req + ;; + + *) + echo "" + echo "error: argument to [$2] must be \"yes\", \"no\", or a directory." + echo " If it is a directory, then \`DIR/include' will be added to" + echo " the -I list, and \`DIR/lib' will be added to the -L list." + exit 1 + ;; + esac + + # why is this necessary? + # if we don't do this, then "./configure --with-motif=/usr/local/lesstif" + # behaves as if "--with-zippy=/usr/local/lesstif" was also present! + withval= + ]) + # check for the HP XHPDisableReset server extension headers. @@ -323,42 +433,117 @@ AC_CACHE_CHECK([for XPointer], ac_cv_xpointer, [XPointer foo = (XPointer) 0;], [ac_cv_xpointer=yes], [ac_cv_xpointer=no])]) -if test $ac_cv_xpointer != yes; then +if test "$ac_cv_xpointer" != yes; then AC_DEFINE(XPointer,[char*]) fi +# Random special-cases for certain pathological OSes. You know who you are. +# case "$host" in *-hpux*) - # Thanks for not making xmkmf find this by default, you losers. + + # The following arcana was gleaned from conversations with + # Eric Schwartz : + # + # On HPUX 10.x, the parts of X that HP considers "standard" live in + # /usr/{include,lib}/X11R6/. The parts that HP doesn't consider + # "standard", notably, Xaw and Xmu, live in /usr/contrib/X11R6/. + # Also, there are symlinks from /usr/include/ and /usr/lib/ into + # /usr/{include,lib}/X11R6/, so that (if you don't use Xmu at all) + # you don't need any -I or -L arguments. + # + # On HPUX 9.x, /usr/{include,lib}/X11R5/ and /usr/contrib/X11R5/ + # are the same division as 10.x. However, there are no symlinks to + # the X stuff from /usr/include/ and /usr/lib/, so -I and -L + # arguments are always necessary. + # + # However, X11R6 was available on HPUX 9.x as a patch: if that + # patch was installed, then all of X11R6 went in to + # /usr/contrib/X11R6/ (there was no /usr/{include,lib}/X11R6/.) + # + # HPUX 8.x was the same as 9.x, but was X11R4 instead (I don't know + # whether R5 was available as a patch; R6 undoubtedly was not.) + # + # So. We try and use the highest numbered pair of + # /usr/{include,lib}/X11R?/ and /usr/contrib/X11R?/{include,lib}/ + # that are available. We do not mix and match different versions + # of X. + # + # Questions I still don't know the answers to: (do you?) + # + # * Does HPUX 10.x come with /usr/contrib/X11R6/ standard? + # Or does that need to be installed separately? + # + # * On HPUX 9.x, where /usr/include/X11R5/ was standard, and + # /usr/contrib/X11R6/ could be installed as a patch, what was in + # that contrib directory? Did it contain so-called "standard" + # X11R6, or did it include Xaw and Xmu as well? If the former, + # where did one find Xaw and Xmu on 9.x R6 systems? Would this + # be a situation where one had to reach into the R5 headers and + # libs to find Xmu? That is, must both R6 and R5 directories + # be on the -I and -L lists in that case? + # + for version in X11R6 X11R5 X11R4 ; do + # if either pair of directories exists... + if test -d /usr/lib/$version || test -d /usr/contrib/$version/lib ; then + # if contrib exists, use it... + if test -d /usr/contrib/$version/lib ; then + X_CFLAGS="$X_CFLAGS -I/usr/contrib/$version/include" + X_LIBS="$X_LIBS -L/usr/contrib/$version/lib" + fi + # if the "standard" one exists, use it. + if test -d /usr/lib/$version ; then + X_CFLAGS="$X_CFLAGS -I/usr/include/$version" + X_LIBS="$X_LIBS -L/usr/lib/$version" + fi + # since at least one of the pair exists, go no farther. + break + fi + done + + # Now find Motif. Thanks for not making xmkmf find this by + # default, you losers. + # if test -d /usr/lib/Motif1.2 ; then - X_CFLAGS="-I/usr/include/Motif1.2 $X_CFLAGS" - X_LIBS="-L/usr/lib/Motif1.2 $X_LIBS" + X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.2" + X_LIBS="$X_LIBS -L/usr/lib/Motif1.2" elif test -d /usr/lib/Motif1.1 ; then - X_CFLAGS="-I/usr/include/Motif1.1 $X_CFLAGS" - X_LIBS="-L/usr/lib/Motif1.1 $X_LIBS" + X_CFLAGS="$X_CFLAGS -I/usr/include/Motif1.1" + X_LIBS="$X_LIBS -L/usr/lib/Motif1.1" + fi + + # Now let's check for the pseudo-standard locations for OpenGL and XPM. + # + if test -d /opt/Mesa/lib ; then + X_CFLAGS="-I/opt/Mesa/include $X_CFLAGS" + X_LIBS="-L/opt/Mesa/lib $X_LIBS" fi - # This too. You losers. - if test -d /usr/contrib/X11R6/include ; then - X_CFLAGS="-I/usr/contrib/X11R6/include $X_CFLAGS" - X_LIBS="-L/usr/contrib/X11R6/lib $X_LIBS" - elif test -d /usr/X11R6/include ; then - X_CFLAGS="-I/usr/X11R6/include $X_CFLAGS" - X_LIBS="-L/usr/X11R6/lib $X_LIBS" - elif test -d /usr/contrib/X11R5/include ; then - X_CFLAGS="-I/usr/contrib/X11R5/include $X_CFLAGS" - X_LIBS="-L/usr/contrib/X11R5/lib $X_LIBS" - elif test -d /usr/X11R5/include ; then - X_CFLAGS="-I/usr/X11R5/include $X_CFLAGS" - X_LIBS="-L/usr/X11R5/lib $X_LIBS" + if test -d /opt/xpm/lib/X11 ; then + X_CFLAGS="-I/opt/xpm/include $X_CFLAGS" + X_LIBS="-L/opt/xpm/lib/X11 $X_LIBS" + fi + + # On HPUX, default to installing in /opt/xscreensaver/ instead of + # in /usr/local/, unless there is already an xscreensaver in + # /usr/local/bin/. This can be overridden with the --prefix arg + # to configure. I'm not sure this is the right thing to do, but + # Richard Lloyd says so... + # + if test \! -x /usr/local/bin/xscreensaver ; then + ac_default_prefix=/opt/xscreensaver fi ;; *-solaris*) - # Same to you, pinheads. (Is this really the standard location now? - # What happened to the joke that this kind of thing went in /opt?) + + # Thanks for not making xmkmf find this by default, pinheads. + # And thanks for moving things around again, too. Is this + # really the standard location now? What happened to the + # joke that this kind of thing went in /opt? # cthomp says "answer: CDE (Common Disorganized Environment)" + # if test -f /usr/dt/include/Xm/Xm.h ; then X_CFLAGS="$X_CFLAGS -I/usr/dt/include" X_LIBS="$X_LIBS -L/usr/dt/lib -R:/usr/dt/lib" @@ -375,7 +560,7 @@ esac # have_xmu=no AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes]) -if test $have_xmu = no ; then +if test "$have_xmu" = no ; then XMU_SRCS='$(UTILS_SRC)/xmu.c' XMU_OBJS='$(UTILS_BIN)/xmu.o' else @@ -390,7 +575,7 @@ fi # See comp.windows.x FAQ question 124 about _get_wmShellWidgetClass on 4.1.x. # The right fix is to get OpenWindows 3.0 patches 100512-02 and 100573-03. # -if test $have_xmu = yes ; then +if test "$have_xmu" = yes ; then case "$host" in *-sunos4*) AC_CACHE_CHECK([for the SunOS 4.1.x _get_wmShellWidgetClass bug], @@ -407,14 +592,14 @@ if test $have_xmu = yes ; then [ac_cv_sunos_xmu_bug=no], [ac_cv_sunos_xmu_bug=yes]) LDFLAGS="$ac_save_LDFLAGS"]) - if test $ac_cv_sunos_xmu_bug = yes ; then + if test "$ac_cv_sunos_xmu_bug" = yes ; then AC_CACHE_CHECK([whether the compiler understands -static], ac_cv_ld_static, [ac_save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -static" AC_TRY_LINK(,,[ac_cv_ld_static=yes],[ac_cv_ld_static=no]) LDFLAGS="$ac_save_LDFLAGS"]) - if test $ac_cv_ld_static = yes ; then + if test "$ac_cv_ld_static" = yes ; then LDFLAGS="$LDFLAGS -static" else LDFLAGS="$LDFLAGS -Bstatic" @@ -429,19 +614,27 @@ fi # have_sgi=no with_sgi_req=unspecified -AC_ARG_WITH(sgi-ext,[ -Server options: +AC_ARG_WITH(sgi-ext, +[Except where noted, all of the --with options below can also take a +directory argument: for example, --with-motif=/opt/Motif. That would +cause /opt/Motif/include/ to be added to the -I list, and /opt/Motif/lib/ +to be added to the -L list, assuming those directories exist. + +X Server Extension options: --with-sgi-ext Include support for the SGI SCREEN_SAVER server extension, if possible (this is the default). --without-sgi-ext Do not compile in support for this extension.], [with_sgi="$withval"; with_sgi_req="$withval"],[with_sgi=yes]) -if test $with_sgi = yes; then + +HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER) + +if test "$with_sgi" = yes; then AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h, [have_sgi=yes AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)]) -elif test $with_sgi != no; then +elif test "$with_sgi" != no; then echo "error: must be yes or no: --with-sgi-ext=$with_sgi" exit 1 fi @@ -456,17 +649,20 @@ AC_ARG_WITH(mit-ext, server extension, if possible (this is the default). --without-mit-ext Do not compile in support for this extension.], [with_mit="$withval"; with_mit_req="$withval"],[with_mit=yes]) -if test $have_sgi != yes; then - if test $with_mit = yes; then + +HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER) + +if test "$have_sgi" != yes; then + if test "$with_mit" = yes; then AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes]) # Now check to see if it's really in the library; XF86Free-3.3 ships # scrnsaver.h, but doesn't include the code in libXext.a, the idiots! # - if test $have_mit = yes; then + if test "$have_mit" = yes; then AC_CHECK_X_LIB(Xext, XScreenSaverRegister, [], [have_mit=no], -lm) - if test $have_mit = no; then + if test "$have_mit" = no; then # Fuck! Looks like XF86Free-3.3 actually puts it in XExExt instead # of in Xext. Thank you master, may I have another. AC_CHECK_X_LIB(XExExt, XScreenSaverRegister, @@ -474,7 +670,7 @@ if test $have_sgi != yes; then [], -lX11 -lXext -lm) fi - if test $have_mit = no; then + if test "$have_mit" = no; then # Double fuck! Looks like some versions of XFree86 (whichever version # it is that comes with RedHat Linux 2.0 -- I can't find a version # number) put this garbage in Xss instead of Xext. Thank you master, @@ -484,13 +680,13 @@ if test $have_sgi != yes; then [], -lX11 -lXext -lm) fi - if test $have_mit = yes; then + if test "$have_mit" = yes; then AC_DEFINE(HAVE_MIT_SAVER_EXTENSION) fi fi - elif test $with_mit != no; then + elif test "$with_mit" != no; then echo "error: must be yes or no: --with-mit-ext=$with_mit" exit 1 fi @@ -506,11 +702,14 @@ AC_ARG_WITH(xidle-ext, if possible (this is the default). --without-xidle-ext Do not compile in support for this extension.], [with_xidle="$withval"; with_xidle_req="$withval"],[with_xidle=yes]) -if test $with_xidle = yes; then + +HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE) + +if test "$with_xidle" = yes; then AC_CHECK_X_HEADER(X11/extensions/xidle.h, [have_xidle=yes AC_DEFINE(HAVE_XIDLE_EXTENSION)]) -elif test $with_xidle != no; then +elif test "$with_xidle" != no; then echo "error: must be yes or no: --with-xidle-ext=$with_xidle" exit 1 fi @@ -525,19 +724,22 @@ AC_ARG_WITH(xshm-ext, extension, if possible (this is the default). --without-xshm-ext Do not compile in support for this extension.], [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes]) -if test $with_xshm = yes; then + +HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM) + +if test "$with_xshm" = yes; then # first check for Xshm.h. AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes]) # if that succeeded, then check for sys/ipc.h. - if test $have_xshm = yes; then + if test "$have_xshm" = yes; then have_xshm=no AC_CHECK_X_HEADER(sys/ipc.h, [have_xshm=yes]) fi # if that succeeded, then check for sys/shm.h. - if test $have_xshm = yes; then + if test "$have_xshm" = yes; then have_xshm=no AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes]) fi @@ -557,11 +759,11 @@ if test $with_xshm = yes; then esac # if that succeeded, then we've really got it. - if test $have_xshm = yes; then + if test "$have_xshm" = yes; then AC_DEFINE(HAVE_XSHM_EXTENSION) fi -elif test $with_xshm != no; then +elif test "$with_xshm" != no; then echo "error: must be yes or no: --with-xshm-ext=$with_xshm" exit 1 fi @@ -576,13 +778,16 @@ AC_ARG_WITH(sgivc-ext, extension, if possible (this is the default). --without-sgivc-ext Do not compile in support for this extension.], [with_sgivc="$withval"; with_sgivc_req="$withval"],[with_sgivc=yes]) -if test $with_sgivc = yes; then + +HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL) + +if test "$with_sgivc" = yes; then # first check for XSGIvc.h AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes]) # if that succeeded, then check for the -lXsgivc - if test $have_sgivc = yes; then + if test "$have_sgivc" = yes; then have_sgivc=no AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap, [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [], @@ -590,11 +795,11 @@ if test $with_sgivc = yes; then fi # if that succeeded, then we've really got it. - if test $have_sgivc = yes; then + if test "$have_sgivc" = yes; then AC_DEFINE(HAVE_SGI_VC_EXTENSION) fi -elif test $with_sgivc != no; then +elif test "$with_sgivc" != no; then echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc" exit 1 fi @@ -609,13 +814,16 @@ AC_ARG_WITH(dpms-ext, if possible (this is the default). --without-dpms-ext Do not compile in support for this extension.], [with_dpms="$withval"; with_dpms_req="$withval"],[with_dpms=yes]) -if test $with_dpms = yes; then + +HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS) + +if test "$with_dpms" = yes; then # first check for dpms.h AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes]) # if that succeeded, then check for the -lXdpms - if test $have_dpms = yes; then + if test "$have_dpms" = yes; then have_dpms=no AC_CHECK_X_LIB(Xdpms, DPMSInfo, [have_dpms=yes; SAVER_LIBS="$SAVER_LIBS -lXdpms"], [], @@ -623,11 +831,11 @@ if test $with_dpms = yes; then fi # if that succeeded, then we've really got it. - if test $have_dpms = yes; then + if test "$have_dpms" = yes; then AC_DEFINE(HAVE_DPMS_EXTENSION) fi -elif test $with_dpms != no; then +elif test "$with_dpms" != no; then echo "error: must be yes or no: --with-dpms-ext=$with_dpms" exit 1 fi @@ -643,38 +851,42 @@ with_motif_req=unspecified with_athena_req=unspecified AC_ARG_WITH(motif,[ -Toolkit options: +X Client Toolkit options: - --with-motif Use the Motif toolkit for the user interface, - if possible (this is the default). + --with-motif Use the Motif toolkit for the user interface, if + possible (this is the default). --without-motif Do not use Motif.], [with_motif="$withval"; with_motif_req="$withval"],[with_motif=no]) +HANDLE_X_PATH_ARG(with_motif, --with-motif, Motif) + AC_ARG_WITH(athena, [ --with-athena Use the Athena toolkit for the user interface, if possible (this is the default if Motif isn't used.) --without-athena Do not use Athena.], [with_athena="$withval"; with_athena_req="$withval"],[with_athena=no]) -if test $with_motif != yes -a $with_motif != no ; then +HANDLE_X_PATH_ARG(with_athena, --with-athena, Athena) + +if test "$with_motif" != yes -a "$with_motif" != no ; then echo "error: must be yes or no: --with-motif=$with_motif" exit 1 fi -if test $with_athena != yes -a $with_athena != no ; then +if test "$with_athena" != yes -a "$with_athena" != no ; then echo "error: must be yes or no: --with-athena=$with_athena" exit 1 fi # Saying --without-motif is the same as saying --with-athena. -if test $with_motif_req = no ; then +if test "$with_motif_req" = no ; then with_athena_req=yes with_athena=yes fi # Saying --without-athena is the same as saying --with-motif. -if test $with_athena_req = no ; then +if test "$with_athena_req" = no ; then with_motif_req=yes with_motif=yes fi @@ -685,21 +897,23 @@ check_motif() { AC_CHECK_X_HEADER(Xm/Xm.h, [have_motif=yes AC_DEFINE(HAVE_MOTIF) - SAVER_LIBS="-lXm $SAVER_LIBS"]) + TOOLKIT_LIBS="-lXm $TOOLKIT_LIBS"]) } check_athena() { have_athena=no have_athena3d=no AC_CHECK_X_HEADER(X11/Xaw/Dialog.h, [have_athena=yes]) - AC_CHECK_X_LIB(Xaw3d, Xaw3dComputeTopShadowRGB, - [have_athena=yes; have_athena3d=yes], [], - -lXt -lXmu -lXext -lX11) - - if test $have_athena3d = yes; then - SAVER_LIBS="-lXaw3d $SAVER_LIBS" - elif test $have_athena = yes; then - SAVER_LIBS="-lXaw $SAVER_LIBS" + if test "$have_athena" = yes; then + AC_CHECK_X_LIB(Xaw3d, Xaw3dComputeTopShadowRGB, + [have_athena=yes; have_athena3d=yes], [], + -lXt -lXmu -lXext -lX11) + fi + + if test "$have_athena3d" = yes; then + TOOLKIT_LIBS="-lXaw3d $TOOLKIT_LIBS" + elif test "$have_athena" = yes; then + TOOLKIT_LIBS="-lXaw $TOOLKIT_LIBS" fi } @@ -710,20 +924,20 @@ check_athena() { # If they asked for neither, check motif then athena. proselytize_motif=yes -if test $with_motif = yes; then +if test "$with_motif" = yes; then # asked for both, or for motif only check_motif - if test $have_motif = yes; then + if test "$have_motif" = yes; then with_athena=no with_athena_req=no else check_athena fi -elif test $with_athena = yes; then +elif test "$with_athena" = yes; then # asked for athena only check_athena - if test $have_athena = yes; then + if test "$have_athena" = yes; then with_motif=no proselytize_motif=no else @@ -733,7 +947,7 @@ elif test $with_athena = yes; then else # asked for neither check_motif - if test $have_motif = yes; then + if test "$have_motif" = yes; then with_athena=no else check_athena @@ -741,20 +955,20 @@ else fi -if test $have_motif = yes; then +if test "$have_motif" = yes; then proselytize_motif=no fi # If we have Athena, check whether it's a version that includes # XawViewportSetCoordinates in Viewport.h (R3 (or R4?) don't.) -if test $have_athena = yes ; then +if test "$have_athena" = yes ; then AC_CACHE_CHECK([for XawViewportSetCoordinates in Viewport.h], ac_cv_have_XawViewportSetCoordinates, [ac_cv_have_XawViewportSetCoordinates=no AC_EGREP_X_HEADER(XawViewportSetCoordinates, X11/Xaw/Viewport.h, ac_cv_have_XawViewportSetCoordinates=yes)]) - if test $ac_cv_have_XawViewportSetCoordinates = yes ; then + if test "$ac_cv_have_XawViewportSetCoordinates" = yes ; then AC_DEFINE(HAVE_XawViewportSetCoordinates) fi fi @@ -763,7 +977,7 @@ fi # If we have Motif, check whether it's really LessTif. # have_lesstif=no -if test $have_motif = yes ; then +if test "$have_motif" = yes ; then AC_CACHE_CHECK([whether Motif is really LessTif], ac_cv_have_lesstif, [AC_TRY_X_COMPILE([#include ], @@ -773,22 +987,39 @@ if test $have_motif = yes ; then have_lesstif=$ac_cv_have_lesstif fi -# don't cache this -unset ac_cv_good_lesstif - -good_lesstif=no -if test $have_lesstif = yes ; then - # It must be at least "GNU Lesstif 0.82". - # #### If you change this, also sync the warning message lower down. - AC_CACHE_CHECK([whether LessTif is of a recent enough vintage], - ac_cv_good_lesstif, - [AC_TRY_X_RUN([#include - int main() { exit(LesstifVersion < 82); }], - [ac_cv_good_lesstif=yes], - [ac_cv_good_lesstif=no], - # cross compiling? Make an ass out of umption. - [ac_cv_good_lesstif=yes])]) - good_lesstif=$ac_cv_good_lesstif +# don't cache these +unset ac_cv_lesstif_version +unset ac_cv_lesstif_version_string + +lesstif_version=unknown +lesstif_version_string=unknown + +if test "$have_lesstif" = yes ; then + ltv=unknown + echo unknown > conftest-lt + AC_CACHE_CHECK([LessTif version number], + ac_cv_lesstif_version_string, + [AC_TRY_X_RUN([#include + #include + int main() { + FILE *f = fopen("conftest-lt", "w"); + if (!f) exit(1); + fprintf(f, "%d %d.%d\n", LesstifVersion, + LESSTIF_VERSION, LESSTIF_REVISION); + fclose(f); + exit(0); + }], + [ltv=`cat conftest-lt` + ac_cv_lesstif_version=`echo $ltv | sed 's/ .*//'` + ac_cv_lesstif_version_string=`echo $ltv | sed 's/.* //'`], + [ac_cv_lesstif_version=unknown + ac_cv_lesstif_version_string=unknown], + [ac_cv_lesstif_version=unknown + ac_cv_lesstif_version_string=unknown])]) + rm -f conftest-lt + lesstif_version=$ac_cv_lesstif_version + lesstif_version_string=$ac_cv_lesstif_version_string + fi @@ -797,10 +1028,10 @@ fi # I have no idea. # have_xp_ext=no -if test $have_motif = yes ; then +if test "$have_motif" = yes ; then have_xp_ext=no AC_CHECK_X_LIB(Xp, XpQueryExtension, - [have_xp_ext=yes; SAVER_LIBS="$SAVER_LIBS -lXp"], + [have_xp_ext=yes; TOOLKIT_LIBS="$TOOLKIT_LIBS -lXp"], [], -lX11 -lXext -lm) fi @@ -810,18 +1041,21 @@ fi have_xpm=no with_xpm_req=unspecified AC_ARG_WITH(xpm,[ -Demo options: +Graphics Demo options: --with-xpm Include support for XPM files in some demos, if possible (this is the default). --without-xpm Do not compile in support for XPM files.], [with_xpm="$withval"; with_xpm_req="$withval"],[with_xpm=yes]) -if test $with_xpm = yes; then + +HANDLE_X_PATH_ARG(with_xpm, --with-xpm, XPM) + +if test "$with_xpm" = yes; then AC_CHECK_X_HEADER(X11/xpm.h, [have_xpm=yes AC_DEFINE(HAVE_XPM) XPM_LIBS="-lXpm"]) -elif test $with_xpm != no; then +elif test "$with_xpm" != no; then echo "error: must be yes or no: --with-xpm=$with_xpm" exit 1 fi @@ -830,6 +1064,7 @@ fi # check for the GL header # have_gl=no +ac_have_mesa_gl=no with_gl_req=unspecified AC_ARG_WITH(gl, [ --with-gl Build those demos which depend on OpenGL, @@ -837,28 +1072,104 @@ AC_ARG_WITH(gl, --without-gl Do not build the OpenGL demos.], [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes]) -if test $with_gl = yes; then +HANDLE_X_PATH_ARG(with_gl, --with-gl, GL) + +ac_mesagl_version=unknown +ac_mesagl_version_string=unknown + +if test "$with_gl" = yes; then AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no) - if test $have_gl = yes ; then + if test "$have_gl" = yes ; then AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no) fi # If we have the headers, try and figure out which vendor it's from. # - if test $have_gl = yes ; then + if test "$have_gl" = yes ; then AC_DEFINE(HAVE_GL) - have_mesa_gl=no - AC_EGREP_X_HEADER(Mesa, GL/glx.h, [have_mesa_gl=yes]) - if test $have_mesa_gl = no ; then + + # We need to know whether it's MesaGL so that we know which libraries + # to link against. + # + AC_MSG_CHECKING(whether GL is really MesaGL) + AC_CACHE_VAL(ac_cv_have_mesa_gl, + [ac_cv_have_mesa_gl=no + AC_EGREP_X_HEADER(Mesa, GL/glx.h, [ac_cv_have_mesa_gl=yes]) + ]) + ac_have_mesa_gl=$ac_cv_have_mesa_gl + AC_MSG_RESULT($ac_have_mesa_gl) + + if test "$ac_have_mesa_gl" = no ; then + gl_lib_1="GL" GL_LIBS="-lGL -lGLU" else AC_DEFINE(HAVE_MESA_GL) + gl_lib_1="MesaGL" GL_LIBS="-lMesaGL -lMesaGLU" fi + + + # If it's MesaGL, we'd like to issue a warning if the version number + # is less than or equal to 2.6, because that version had a security bug. + # + if test "$ac_have_mesa_gl" = yes; then + + # don't cache these. + unset ac_cv_mesagl_version + unset ac_cv_mesagl_version_string + + AC_MSG_CHECKING(MesaGL version number) + AC_CACHE_VAL(ac_cv_mesagl_version_string, + [cat > conftest.$ac_ext < +#configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION +EOF + + ac_save_CPPFLAGS="$CPPFLAGS" + if test \! -z "$includedir" ; then + CPPFLAGS="$CPPFLAGS -I$includedir" + fi + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + + mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | sed -n \ + 's/^#configure:.*\([0-9][0-9]*\).*\([0-9][0-9]*\).*$/\1.\2/p'` + rm -f conftest.$ac_ext + + CPPFLAGS="$ac_save_CPPFLAGS" + + if test "$mglv" = ""; then + ac_mesagl_version=unknown + ac_mesagl_version_string=unknown + else + ac_mesagl_version_string=$mglv + maj=`echo $mglv | sed -n 's/\..*//p'` + min=`echo $mglv | sed -n 's/.*\.//p'` + ac_mesagl_version=`echo "$maj * 1000 + $min" | bc` + if test -z "$ac_mesagl_version"; then + ac_mesagl_version=unknown + ac_mesagl_version_string=unknown + fi + fi + ac_cv_mesagl_version=$ac_mesagl_version + ac_cv_mesagl_version_string=$ac_mesagl_version_string + ]) + ac_mesagl_version=$ac_cv_mesagl_version + ac_mesagl_version_string=$ac_cv_mesagl_version_string + AC_MSG_RESULT($ac_cv_mesagl_version_string) + fi + + + # Check for OpenGL 1.1 features. + # + AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)], + [], $GL_LIBS -lX11 -lXext -lm) + fi -elif test $with_gl != no; then +elif test "$with_gl" != no; then echo "error: must be yes or no: --with-gl=$with_gl" exit 1 fi @@ -874,10 +1185,13 @@ AC_ARG_WITH(readdisplay, --without-readdisplay Do not compile in support for this extension.], [with_readdisplay="$withval"; with_readdisplay_req="$withval"], [with_readdisplay=yes]) -if test $with_readdisplay = yes; then + +HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay) + +if test "$with_readdisplay" = yes; then AC_CHECK_X_HEADER(X11/extensions/readdisplay.h, AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION)) -elif test $with_readdisplay != no; then +elif test "$with_readdisplay" != no; then echo "error: must be yes or no: --with-readdisplay=$with_readdisplay" exit 1 fi @@ -893,18 +1207,21 @@ AC_ARG_WITH(sgivideo, --without-sgivideo Do not compile in support for this library.], [with_sgivideo="$withval"; with_sgivideo_req="$withval"], [with_sgivideo=yes]) -if test $with_sgivideo = yes; then + +HANDLE_X_PATH_ARG(with_sgivideo, --with-sgivideo, Iris Video) + +if test "$with_sgivideo" = yes; then AC_CHECK_X_HEADER(dmedia/vl.h, have_sgivideo=yes) - if test $have_sgivideo = yes; then + if test "$have_sgivideo" = yes; then have_sgivideo=no AC_CHECK_LIB(vl, vlOpenVideo, have_sgivideo=yes) - if test $have_sgivideo = yes; then + if test "$have_sgivideo" = yes; then SGI_VIDEO_OBJS="$(UTILS_BIN)/sgivideo.o" SGI_VIDEO_LIBS="-lvl" AC_DEFINE(HAVE_SGI_VIDEO) fi fi -elif test $with_sgivideo != no; then +elif test "$with_sgivideo" != no; then echo "error: must be yes or no: --with-sgivideo=$with_sgivideo" exit 1 fi @@ -985,7 +1302,7 @@ if test ! -n "$ac_cv_zippy_program"; then # # try running libexec/yow and see if it exits without error. # - if test x"$dir" != x -a -x $dir/yow ; then + if test x"$dir" != x -a -x "$dir/yow" ; then if $dir/yow >&- 2>&- ; then ac_cv_zippy_program="$dir/yow" AC_MSG_RESULT($ac_cv_zippy_program) @@ -1007,7 +1324,7 @@ if test ! -n "$ac_cv_zippy_program"; then # # try running libexec/yow and see if it exits without error. # - if test x"$dir" != x -a -x $dir/yow ; then + if test x"$dir" != x -a -x "$dir/yow" ; then if $dir/yow >&- 2>&- ; then ac_cv_zippy_program="$dir/yow" AC_MSG_RESULT($ac_cv_zippy_program) @@ -1057,7 +1374,6 @@ AC_DEFINE_UNQUOTED(ZIPPY_PROGRAM, "$ac_cv_zippy_program") # Allow locking to be disabled at compile-time. # -have_locking=yes have_kerberos=no with_kerberos_req=unspecified have_shadow=no @@ -1065,13 +1381,64 @@ with_shadow_req=unspecified need_setuid=no AC_ARG_ENABLE(locking,[ -Locking options: +Screen Locking options: --enable-locking Compile in support for locking the display (this is the default.) --disable-locking Do not allow locking at all.], [enable_locking="$enableval"],[enable_locking=yes]) -if test $enable_locking = yes; then +if test "$enable_locking" = yes; then + true +elif test "$enable_locking" = no; then + AC_DEFINE(NO_LOCKING) +else + echo "error: must be yes or no: --enable-locking=$enable_locking" + exit 1 +fi + + + +# Check to see if we can lock Virtual-Terminal switching, but allow that +# to be disabled at compile-time. +# +ac_vt_lockswitch=no +AC_ARG_ENABLE(vt-locking,[ + --enable-vt-locking Compile in support for locking Virtual Terminals. + This is the default if the system supports it, and + if locking support is included (--enable-locking.) + --disable-vt-locking Do not allow locking of VTs, even if locking is + enabled.], + [enable_vt_locking="$enableval"],[enable_vt_locking=yes]) +if test "$enable_vt_locking" = yes; then + + AC_MSG_CHECKING(for the VT_LOCKSWITCH ioctl) + AC_CACHE_VAL(ac_cv_vt_lockswitch, + [AC_TRY_COMPILE([#include + #include + #include ], + [int x = VT_LOCKSWITCH; int y = VT_UNLOCKSWITCH;], + [ac_cv_vt_lockswitch=yes], + [ac_cv_vt_lockswitch=no])]) + ac_vt_lockswitch=$ac_cv_vt_lockswitch + AC_MSG_RESULT($ac_vt_lockswitch) + +elif test "$enable_locking" = no; then + true +else + echo "error: must be yes or no: --enable-vt-locking=$enable_vt_locking" + exit 1 +fi + +if test "$ac_vt_lockswitch" = yes; then + AC_DEFINE(HAVE_VT_LOCKSWITCH) + # the VT_LOCKSWITCH ioctl can only be used when running as root. + # #### but it doesn't work yet, so don't worry about that for now. +# need_setuid=yes +fi + + + +if test "$enable_locking" = yes; then # Check for Kerberos. # @@ -1080,17 +1447,27 @@ if test $enable_locking = yes; then if possible (this is the default.) --without-kerberos Do not compile in support for Kerberos.], [with_kerberos="$withval"; with_kerberos_req="$withval"],[with_kerberos=yes]) - if test $with_kerberos = yes; then + + HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos) + + if test "$with_kerberos" = yes; then AC_CACHE_CHECK([for Kerberos], ac_cv_kerberos, [AC_TRY_X_COMPILE([#include ],, [ac_cv_kerberos=yes], [ac_cv_kerberos=no])]) - if test $ac_cv_kerberos = yes ; then + if test "$ac_cv_kerberos" = yes ; then have_kerberos=yes AC_DEFINE(HAVE_KERBEROS) - PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lnsl -lsocket" + + # from Tim Showalter + PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes" + AC_CHECK_FUNC(res_search,, + AC_CHECK_LIB(resolv,res_search,PASSWD_LIBS="${PASSWD_LIBS} -lresolv", + AC_MSG_WARN([Can't find DNS resolver libraries needed for Kerberos]) + )) + fi - elif test $with_kerberos != no; then + elif test "$with_kerberos" != no; then echo "error: must be yes or no: --with-kerberos=$with_kerberos" exit 1 fi @@ -1104,9 +1481,12 @@ if test $enable_locking = yes; then --without-shadow Do not compile in support for shadow passwords. ], [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes]) - if test $with_shadow = no; then + + HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password) + + if test "$with_shadow" = no; then passwd_cruft_done=yes - elif test $with_shadow != yes; then + elif test "$with_shadow" != yes; then echo "error: must be yes or no: --with-shadow=$with_shadow" exit 1 fi @@ -1114,7 +1494,7 @@ if test $enable_locking = yes; then # Sun's "adjunct" passwords. # - if test $passwd_cruft_done = no ; then + if test "$passwd_cruft_done" = no ; then AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct, [AC_TRY_X_COMPILE([#include #include @@ -1126,7 +1506,7 @@ if test $enable_locking = yes; then const char *pw = p->pwa_passwd;], [ac_cv_sun_adjunct=yes], [ac_cv_sun_adjunct=no])]) - if test $ac_cv_sun_adjunct = yes; then + if test "$ac_cv_sun_adjunct" = yes; then have_shadow=yes need_setuid=yes passwd_cruft_done=yes @@ -1136,7 +1516,7 @@ if test $enable_locking = yes; then # DEC and SCO so-called "enhanced" security. # - if test $passwd_cruft_done = no ; then + if test "$passwd_cruft_done" = no ; then AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd, [AC_TRY_X_COMPILE([#include #include @@ -1171,7 +1551,7 @@ if test $enable_locking = yes; then # HP's entry in the "Not Invented Here" Sweepstakes. # - if test $passwd_cruft_done = no ; then + if test "$passwd_cruft_done" = no ; then AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd, [AC_TRY_X_COMPILE([#include #include @@ -1183,7 +1563,7 @@ if test $enable_locking = yes; then const char *pw = p->pw_passwd;], [ac_cv_hpux_passwd=yes], [ac_cv_hpux_passwd=no])]) - if test $ac_cv_hpux_passwd = yes; then + if test "$ac_cv_hpux_passwd" = yes; then have_shadow=yes need_setuid=yes passwd_cruft_done=yes @@ -1196,7 +1576,7 @@ if test $enable_locking = yes; then # Traditional (ha!) shadow passwords. # - if test $passwd_cruft_done = no ; then + if test "$passwd_cruft_done" = no ; then AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow, [AC_TRY_X_COMPILE([#include #include @@ -1207,7 +1587,7 @@ if test $enable_locking = yes; then const char *pw = p->sp_pwdp;], [ac_cv_shadow=yes], [ac_cv_shadow=no])]) - if test $ac_cv_shadow = yes; then + if test "$ac_cv_shadow" = yes; then have_shadow=yes need_setuid=yes passwd_cruft_done=yes @@ -1216,7 +1596,7 @@ if test $enable_locking = yes; then # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc. have_getspnam=no AC_CHECK_LIB(c, getspnam, [have_getspnam=yes]) - if test $have_getspnam = no ; then + if test "$have_getspnam" = no ; then AC_CHECK_LIB(gen, getspnam, [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"]) fi @@ -1228,14 +1608,14 @@ if test $enable_locking = yes; then # program is setuid. So, guess that we've got this lossage to contend with # if /etc/master.passwd exists, and default to a setuid installation. # - if test $passwd_cruft_done = no ; then + if test "$passwd_cruft_done" = no ; then AC_CACHE_CHECK([for FreeBSD-style shadow passwords], ac_cv_master_passwd, [if test -f /etc/master.passwd ; then ac_cv_master_passwd=yes else ac_cv_master_passwd=no fi]) - if test $ac_cv_master_passwd = yes; then + if test "$ac_cv_master_passwd" = yes; then need_setuid=yes passwd_cruft_done=yes fi @@ -1244,7 +1624,7 @@ if test $enable_locking = yes; then # On some systems (UnixWare 2.1), crypt() is in -lcrypt instead of -lc. have_crypt=no AC_CHECK_LIB(c, crypt, [have_crypt=yes]) - if test $have_crypt = no ; then + if test "$have_crypt" = no ; then AC_CHECK_LIB(crypt, crypt, [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"]) fi @@ -1254,7 +1634,7 @@ if test $enable_locking = yes; then # if they were found. But, on some systems, we need setuid even when # using plain old vanilla passwords. # - if test $need_setuid = no ; then + if test "$need_setuid" = no ; then case "$host" in *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* ) need_setuid=yes @@ -1262,11 +1642,6 @@ if test $enable_locking = yes; then esac fi -elif test $enable_locking = no; then - AC_DEFINE(NO_LOCKING) -else - echo "error: must be yes or no: --enable-locking=$enable_locking" - exit 1 fi @@ -1286,25 +1661,22 @@ DEPEND_FLAGS= DEPEND_DEFINES= -# Autoconf doesn't seem to have an INSTALL_DIRS, so let's define our own... -INSTALL_DIRS='$(INSTALL) -d' - # Done testing things -- now substitute in some stuff for the Makefiles. # -if test $have_motif = yes; then +if test "$have_motif" = yes; then AC_DEFINE(HAVE_MOTIF) - DIALOG_SRCS='$(MOTIF_SRCS)' - DIALOG_OBJS='$(MOTIF_OBJS)' -elif test $have_athena = yes; then + TOOLKIT_SRCS='$(MOTIF_SRCS)' + TOOLKIT_OBJS='$(MOTIF_OBJS)' +elif test "$have_athena" = yes; then AC_DEFINE(HAVE_ATHENA) - DIALOG_SRCS='$(ATHENA_SRCS)' - DIALOG_OBJS='$(ATHENA_OBJS)' + TOOLKIT_SRCS='$(ATHENA_SRCS)' + TOOLKIT_OBJS='$(ATHENA_OBJS)' else - DIALOG_SRCS='' - DIALOG_OBJS='' + TOOLKIT_SRCS='' + TOOLKIT_OBJS='' fi -if test $have_kerberos = yes; then +if test "$have_kerberos" = yes; then PASSWD_SRCS='$(KERBEROS_SRCS)' PASSWD_OBJS='$(KERBEROS_OBJS)' else @@ -1312,7 +1684,7 @@ else PASSWD_OBJS='$(PWENT_OBJS)' fi -if test $enable_locking = yes; then +if test "$enable_locking" = yes; then LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)' LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)' else @@ -1320,7 +1692,7 @@ else LOCK_OBJS='' fi -if test $need_setuid = yes; then +if test "$need_setuid" = yes; then NEED_SETUID=yes INSTALL_SETUID='$(INSTALL) $(SUID_FLAGS)' else @@ -1329,18 +1701,17 @@ else fi tab=' ' -if test $have_gl = yes; then +if test "$have_gl" = yes; then GL_EXES='$(GL_EXES)' - GL_KLUDGE_1=${tab}${tab}${tab}${tab}${tab}${tab}${tab}${tab}${tab}' \' - GL_KLUDGE_2=${tab} + GL_KLUDGE=${tab} else - GL_KLUDGE_1=${tab}${tab}${tab}${tab}${tab}${tab}${tab}${tab}${tab}'\n' - GL_KLUDGE_2='!'${tab} + GL_KLUDGE=' -'${tab} fi AC_SUBST(INCLUDES) AC_SUBST(SAVER_LIBS) +AC_SUBST(TOOLKIT_LIBS) AC_SUBST(HACK_LIBS) AC_SUBST(XPM_LIBS) AC_SUBST(GL_LIBS) @@ -1351,8 +1722,8 @@ AC_SUBST(NEED_SETUID) AC_SUBST(SGI_VIDEO_OBJS) AC_SUBST(SGI_VIDEO_LIBS) -AC_SUBST(DIALOG_SRCS) -AC_SUBST(DIALOG_OBJS) +AC_SUBST(TOOLKIT_SRCS) +AC_SUBST(TOOLKIT_OBJS) AC_SUBST(PASSWD_SRCS) AC_SUBST(PASSWD_OBJS) AC_SUBST(XMU_SRCS) @@ -1360,8 +1731,7 @@ AC_SUBST(XMU_OBJS) AC_SUBST(LOCK_SRCS) AC_SUBST(LOCK_OBJS) AC_SUBST(GL_EXES) -AC_SUBST(GL_KLUDGE_1) -AC_SUBST(GL_KLUDGE_2) +AC_SUBST(GL_KLUDGE) AC_SUBST(HACKDIR) AC_SUBST(APPDEFAULTS) @@ -1371,10 +1741,15 @@ AC_SUBST(DEPEND_DEFINES) # Print some warnings before emitting the Makefiles. # +warn_prefix_1=" Warning:" +warn_prefix_2=" Note:" +warn_prefix="$warn_prefix_1" + warning=no warnsep=' #################################################################' + warnpre() { - if test $warning = no ; then + if test "$warning" = no ; then echo '' ; echo "$warnsep" ; echo '' warning=yes fi @@ -1382,17 +1757,17 @@ warnpre() { warn() { warnpre - if test $warning = long ; then echo '' ; fi + if test "$warning" = long ; then echo '' ; fi warning=yes - echo " Warning: $@" + echo "$warn_prefix $@" } warnL() { was=$warning warnpre warning=yes - if test $was != no ; then echo '' ; fi - echo " Warning: $@" + if test "$was" != no ; then echo '' ; fi + echo "$warn_prefix $@" } warn2() { @@ -1400,84 +1775,152 @@ warn2() { warning=long } -if test $with_sgi_req = yes -a $have_sgi = no ; then +note() { + warn_prefix="$warn_prefix_2" + warn $@ + warn_prefix="$warn_prefix_1" +} + +noteL() { + warn_prefix="$warn_prefix_2" + warnL $@ + warn_prefix="$warn_prefix_1" +} + + +if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then warn 'The SGI saver extension was requested, but was not found.' fi -if test $with_mit_req = yes -a $have_mit = no ; then +if test "$with_mit_req" = yes -a "$have_mit" = no ; then warn 'The MIT saver extension was requested, but was not found.' fi -if test $with_xidle_req = yes -a $have_xidle = no ; then +if test "$with_xidle_req" = yes -a "$have_xidle" = no ; then warn 'The XIdle extension was requested, but was not found.' fi -if test $with_xshm_req = yes -a $have_xshm = no ; then +if test "$with_xshm_req" = yes -a "$have_xshm" = no ; then warn 'The XSHM extension was requested, but was not found.' fi -if test $with_sgivc_req = yes -a $have_sgivc = no ; then +if test "$with_sgivc_req" = yes -a "$have_sgivc" = no ; then warn 'The SGI-VIDEO-CONTROL extension was requested, but was not found.' fi -if test $with_dpms_req = yes -a $have_dpms = no ; then +if test "$with_dpms_req" = yes -a "$have_dpms" = no ; then warn 'The DPMS extension was requested, but was not found.' fi -if test $have_motif = no -a $have_athena = no ; then +if test "$have_motif" = no -a "$have_athena" = no ; then warnL "Neither Motif nor Athena widgets seem to be available;" - warn2 "one or the other is required." + warn2 "the \`xscreensaver-demo' program requires one or the" + warn2 "other." proselytize_motif=no -elif test $with_motif_req = yes -a $have_motif = no ; then +elif test "$with_motif_req" = yes -a "$have_motif" = no ; then warnL "Use of Motif was requested, but it wasn't found;" warn2 "Athena will be used instead." -elif test $with_athena_req = yes -a $have_athena = no ; then +elif test "$with_athena_req" = yes -a "$have_athena" = no ; then warnL "Use of Athena was requested, but it wasn't found;" warn2 "Motif will be used instead." fi -if test $have_motif = yes -a $have_lesstif = yes ; then - if test $good_lesstif != yes ; then - warnL "Motif is being used, but it appears to actually be" - warn2 "LessTif, and the version number is less than 0.82!" - warn2 "Such old versions of LessTif are too buggy to use" - warn2 "with XScreenSaver; it is strongly recommended that" - warn2 "you upgrade! See ." +if test "$have_motif" = yes -a "$have_lesstif" = yes ; then + + preferred_lesstif=0.86 + + if test "$lesstif_version" = unknown; then + warnL "Unable to determine the LessTif version number!" + warn2 "Make sure you are using version $preferred_lesstif or newer." + warn2 "See ." + + elif test \! $lesstif_version -gt 82; then + warnL "LessTif version $lesstif_version_string is being used." + warn2 "LessTif versions 0.82 and earlier are too buggy to" + warn2 "use with XScreenSaver; it is strongly recommended" + warn2 "that you upgrade to at least version $preferred_lesstif!" + warn2 "See ." fi fi -if test $proselytize_motif = yes ; then +if test "$proselytize_motif" = yes ; then warnL "Athena widgets are being used instead of Motif." - warn2 "XScreenSaver looks much better with Motif, and has" - warn2 "a few extra features as well. Wouldn't you rather" - warn2 "be using Motif? It is shipped by every commercial" - warn2 "Unix vendor; and there is a free implementation" - warn2 "available as well: see ." + warn2 "The \`xscreensaver-demo' program looks much better" + warn2 "with Motif. Wouldn't you rather be using Motif?" + warn2 "It is shipped by every commercial Unix vendor;" + warn2 "and there is a free implementation available as" + warn2 "well: see ." fi -if test $with_xpm_req = yes -a $have_xpm = no ; then - warn 'Use of XPM was requested, but it was not found.' + +if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then + preferred_mesagl=2.7 + + if test "$ac_mesagl_version" = unknown; then + warnL "Unable to determine the MesaGL version number!" + warn2 "Make sure you are using version $preferred_mesagl or newer." + + elif test \! "$ac_mesagl_version" -gt 2006; then + warnL "MesaGL version $ac_mesagl_version_string is being used." + warn2 "MesaGL versions 2.6 and earlier have a security bug." + warn2 "It is strongly recommended that you upgrade to at" + warn2 "least version $preferred_mesagl." + fi fi -if test $with_gl_req = yes -a $have_gl = no ; then - warn 'Use of GL was requested, but it was not found.' + +if test "$have_xpm" = no ; then + if test "$with_xpm_req" = yes ; then + warnL 'Use of XPM was requested, but it was not found.' + elif test "$with_xpm_req" = no ; then + noteL 'The XPM library is not being used.' + else + noteL 'The XPM library was not found.' + fi + + echo '' + warn2 'Some of the demos will not be as colorful as they' + warn2 'could be. You might want to consider installing XPM' + warn2 'and re-running configure. (Remember to delete the' + warn2 'config.cache file first.) You can find XPM at most' + warn2 'X11 archive sites, such as .' +fi + +if test "$have_gl" = no ; then + if test "$with_gl_req" = yes ; then + warnL 'Use of GL was requested, but it was not found.' + elif test "$with_gl_req" = no ; then + noteL 'The OpenGL 3D library is not being used.' + else + noteL 'The OpenGL 3D library was not found.' + fi + + echo '' + warn2 'Those demos which use 3D will not be built or installed.' + warn2 'You might want to consider installing OpenGL and' + warn2 're-running configure. (Remember to delete the' + warn2 "config.cache file first.) If your vendor doesn't ship" + warn2 'their own implementation of OpenGL, you can get a free' + warn2 'version at .' + warn2 'For general OpenGL info, see .' + fi -if test $with_readdisplay_req = yes -a $have_readdisplay = no ; then +if test "$with_readdisplay_req" = yes -a "$have_readdisplay" = no ; then warn 'Use of XReadDisplay was requested, but it was not found.' fi -if test $with_sgivideo_req = yes -a $have_sgivideo = no ; then +if test "$with_sgivideo_req" = yes -a "$have_sgivideo" = no ; then warn 'Use of the Iris Video Library was requested, but it was not found.' fi -if test $with_kerberos_req = yes -a $have_kerberos = no ; then +if test "$with_kerberos_req" = yes -a "$have_kerberos" = no ; then warn 'Use of Kerberos was requested, but it was not found.' fi -if test $with_shadow_req = yes -a $have_shadow = no ; then +if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then warn 'Use of shadow passwords was requested, but they were not found.' fi @@ -1488,7 +1931,7 @@ if test -n "$with_zippy_req"; then fi fi -if test $warning != no; then +if test "$warning" != no; then echo '' ; echo "$warnsep" ; echo '' fi @@ -1519,11 +1962,11 @@ eval HACKDIR=${HACKDIR} echo "" echo "$warnsep" echo "" -echo ' When you run "make install", the "xscreensaver" and' -echo ' "xscreensaver-command" executables will be installed in' -echo " ${bindir}." +echo ' When you run "make install", the "xscreensaver",' +echo ' "xscreensaver-demo", and "xscreensaver-command" executables' +echo " will be installed in ${bindir}." echo "" -echo " The various graphics demos (60+ different executables) will" +echo " The various graphics demos (80+ different executables) will" echo " be installed in ${HACKDIR}." echo "" echo " If you would prefer the demos to be installed elsewhere"