# configure.in --- xscreensaver, Copyright (c) 1997 Jamie Zawinski. # AC_INIT(driver/subprocs.c) AC_CONFIG_HEADER(config.h) AC_CANONICAL_HOST AC_PROG_CC if test -z "$GCC"; then AC_MSG_CHECKING(how to request ANSI compilation) case "$host" in *-hpux*) AC_MSG_RESULT(HPUX: adding -Ae) CC="$CC -Ae" ;; *-aix*) AC_MSG_RESULT(AIX: adding -qlanglvl=ansi -qhalt=e) CC="$CC -qlanglvl=ansi -qhalt=e" ;; *) AC_MSG_RESULT(no idea) ;; esac fi AC_MSG_CHECKING([whether the compiler works on ANSI C]) AC_TRY_RUN([ main(int ac, char **av) { return 0; } ], AC_MSG_RESULT(yes), AC_MSG_RESULT(no) AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.), 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 ;; esac AC_PROG_CPP AC_PROG_INSTALL AC_PROG_MAKE_SET AC_C_CONST AC_C_INLINE AC_HEADER_STDC AC_HEADER_TIME AC_HEADER_SYS_WAIT AC_HEADER_DIRENT AC_TYPE_MODE_T AC_TYPE_PID_T AC_TYPE_SIZE_T AC_TYPE_SIGNAL AC_MSG_CHECKING(how to call gettimeofday) AC_CACHE_VAL(ac_cv_gettimeofday_args, [AC_TRY_COMPILE([#include #include ], [struct timeval tv; gettimeofday(&tv);], [ac_gettimeofday_args=1], [AC_TRY_COMPILE([#include #include ], [struct timeval tv; struct timezone tzp; gettimeofday(&tv, &tzp);], [ac_gettimeofday_args=2], [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 AC_DEFINE(HAVE_GETTIMEOFDAY) AC_MSG_RESULT(one argument) elif test $ac_gettimeofday_args = 2 ; then AC_DEFINE(HAVE_GETTIMEOFDAY) AC_DEFINE(GETTIMEOFDAY_TWO_ARGS) AC_MSG_RESULT(two arguments) else AC_MSG_RESULT(unknown) fi AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv) AC_CHECK_FUNCS(sigaction) AC_CHECK_HEADERS(unistd.h) dnl /usr/local/src/ssh-1.2.17/putenv.c -- AC_REPLACE_FUNCS(putenv) AC_ARG_ENABLE(subdir,[ Installation options: --enable-subdir=DIR Put the demo programs in a subdirectory of \`bindir', instead of putting them in bindir itself. You can 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. --disable-subdir Just put the demos in \`bindir' (this is the default.) ], [enable_subdir="$enableval"],[enable_subdir=no]) if test x"$enable_subdir" = xno; then HACKDIR='$(bindir)' elif test x"$enable_subdir" = xyes -o x"$enable_subdir" = x ; then echo "error: must be a subdirectory name: --enable-subdir=$enable_subdir" exit 1 else HACKDIR='$(bindir)/'$enable_subdir fi 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, [ rm -fr conftestdir if mkdir conftestdir; then cd conftestdir # Make sure to not put "make" in the Imakefile rules, since we grep it out. cat > Imakefile <<'EOF' acfindx: @echo 'ac_x_app_defaults="${XAPPLOADDIR}"' EOF if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then # GNU make sometimes prints "make[1]: Entering...", which'd confuse us. eval `${MAKE-make} acfindx 2>/dev/null | grep -v make` fi cd .. rm -fr conftestdir fi]) 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 \ /usr/X11R6/lib/app-defaults \ /usr/X11R6/lib/X11/app-defaults \ /usr/X11R5/lib/app-defaults \ /usr/X11R5/lib/X11/app-defaults \ /usr/X11R4/lib/app-defaults \ /usr/X11R4/lib/X11/app-defaults \ \ /usr/lib/X11/app-defaults \ /usr/lib/X11R6/app-defaults \ /usr/lib/X11R5/app-defaults \ /usr/lib/X11R4/app-defaults \ \ /usr/local/X11/lib/app-defaults \ /usr/local/X11R6/lib/app-defaults \ /usr/local/X11R5/lib/app-defaults \ /usr/local/X11R4/lib/app-defaults \ \ /usr/local/lib/X11/app-defaults \ /usr/local/lib/X11R6/app-defaults \ /usr/local/lib/X11R6/X11/app-defaults \ /usr/local/lib/X11R5/app-defaults \ /usr/local/lib/X11R5/X11/app-defaults \ /usr/local/lib/X11R4/app-defaults \ /usr/local/lib/X11R4/X11/app-defaults \ \ /usr/X386/lib/X11/app-defaults \ /usr/x386/lib/X11/app-defaults \ /usr/XFree86/lib/X11/app-defaults \ \ /usr/lib/X11/app-defaults \ /usr/local/lib/X11/app-defaults \ /usr/unsupported/lib/X11/app-defaults \ /usr/athena/lib/X11/app-defaults \ /usr/local/x11r5/lib/X11/app-defaults \ /usr/lpp/Xamples/lib/X11/app-defaults \ /lib/usr/lib/X11/app-defaults \ \ /usr/openwin/lib/app-defaults \ /usr/openwin/lib/X11/app-defaults \ /usr/openwin/share/lib/app-defaults \ /usr/openwin/share/lib/X11/app-defaults \ \ /X11R6/lib/app-defaults \ /X11R5/lib/app-defaults \ /X11R4/lib/app-defaults \ ; \ do if test -d "$ac_dir"; then ac_x_app_defaults=$ac_dir break fi done ]) 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_cv_x_app_defaults="/usr/lib/X11/app-defaults" else # Record where we found app-defaults for the cache. ac_cv_x_app_defaults="$ac_x_app_defaults" fi]) eval ac_x_app_defaults="$ac_cv_x_app_defaults"]) AC_PATH_X_APP_DEFAULTS APPDEFAULTS=$ac_x_app_defaults # Like AC_CHECK_HEADER, but it uses the already-computed -I directories. # AC_DEFUN(AC_CHECK_X_HEADER, [ ac_save_CPPFLAGS="$CPPFLAGS" if test \! -z "$includedir" ; then CPPFLAGS="$CPPFLAGS -I$includedir" fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" AC_CHECK_HEADER([$1], [$2]) CPPFLAGS="$ac_save_CPPFLAGS"]) # Like AC_EGREP_HEADER, but it uses the already-computed -I directories. # AC_DEFUN(AC_EGREP_X_HEADER, [ ac_save_CPPFLAGS="$CPPFLAGS" if test \! -z "$includedir" ; then CPPFLAGS="$CPPFLAGS -I$includedir" fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" AC_EGREP_HEADER([$1], [$2], [$3], [$4]) CPPFLAGS="$ac_save_CPPFLAGS"]) # Like AC_TRY_COMPILE, but it uses the already-computed -I directories. # AC_DEFUN(AC_TRY_X_COMPILE, [ ac_save_CPPFLAGS="$CPPFLAGS" if test \! -z "$includedir" ; then CPPFLAGS="$CPPFLAGS -I$includedir" fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" AC_TRY_COMPILE([$1], [$2], [$3], [$4]) CPPFLAGS="$ac_save_CPPFLAGS"]) # Like AC_CHECK_LIB, but it uses the already-computed -I and -L directories. # Use this sparingly; it probably doesn't work very well on X programs. # 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 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 AC_CHECK_LIB([$1], [$2], [$3], [$4], [$5]) CPPFLAGS="$ac_save_CPPFLAGS" LDFLAGS="$ac_save_LDFLAGS"]) # Like AC_TRY_RUN, but it uses the already-computed -I directories. # (But not the -L directories!) # AC_DEFUN(AC_TRY_X_RUN, [ ac_save_CPPFLAGS="$CPPFLAGS" if test \! -z "$includedir" ; then CPPFLAGS="$CPPFLAGS -I$includedir" fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" AC_TRY_RUN([$1], [$2], [$3], [$4]) CPPFLAGS="$ac_save_CPPFLAGS"]) # check for the HP XHPDisableReset server extension headers. # AC_EGREP_X_HEADER(XHPDisableReset, X11/XHPlib.h, [AC_DEFINE(HAVE_XHPDISABLERESET) SAVER_LIBS="-lXhp11 $SAVER_LIBS"]) # Check for the availability of the XPointer typedef, and define it otherwise. # AC_CACHE_CHECK([for XPointer], ac_cv_xpointer, [AC_TRY_X_COMPILE([#include ], [XPointer foo = (XPointer) 0;], [ac_cv_xpointer=yes], [ac_cv_xpointer=no])]) if test $ac_cv_xpointer != yes; then AC_DEFINE(XPointer,[char*]) fi case "$host" in *-hpux*) # 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" 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" 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" 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?) # 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" # Some versions of Slowlaris Motif require -lgen. But not all. Why? AC_CHECK_LIB(gen, regcmp, [X_LIBS="$X_LIBS -lgen"]) fi ;; esac # Check for Xmu (some fucked up vendors don't ship it...) # have_xmu=no AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes]) if test $have_xmu = no ; then XMU_SRCS='$(UTILS_SRC)/xmu.c' XMU_OBJS='$(UTILS_BIN)/xmu.o' else XMU_SRCS='' XMU_OBJS='' SAVER_LIBS="-lXmu $SAVER_LIBS" HACK_LIBS="-lXmu $HACK_LIBS" AC_DEFINE(HAVE_XMU) 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 case "$host" in *-sunos4*) AC_CACHE_CHECK([for the SunOS 4.1.x _get_wmShellWidgetClass bug], ac_cv_sunos_xmu_bug, [ac_save_LDFLAGS="$LDFLAGS" if test \! -z "$x_libraries" ; then LDFLAGS="$LDFLAGS -L$x_libraries" fi # Note: this trick never works! (Generally.) # We're only getting away with using AC_TRY_LINK # with X libraries because we know it's SunOS. LDFLAGS="$LDFLAGS -lXmu -lXt -lX11 -lXext -lm" AC_TRY_LINK(,, [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 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 LDFLAGS="$LDFLAGS -static" else LDFLAGS="$LDFLAGS -Bstatic" fi fi ;; esac fi # Check for the SGI SCREEN_SAVER server extension header. # have_sgi=no with_sgi_req=unspecified AC_ARG_WITH(sgi-ext,[ Server 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 AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h, [have_sgi=yes AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)]) elif test $with_sgi != no; then echo "error: must be yes or no: --with-sgi-ext=$with_sgi" exit 1 fi # Check for the MIT-SCREEN-SAVER server extension header, # unless the SGI extension has already been found. # have_mit=no with_mit_req=unspecified AC_ARG_WITH(mit-ext, [ --with-mit-ext Include support for the MIT-SCREEN-SAVER 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 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 AC_CHECK_X_LIB(Xext, XScreenSaverRegister, [], [have_mit=no], -lm) 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, [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXExExt"], [], -lX11 -lXext -lm) fi 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, # may I have another. AC_CHECK_X_LIB(Xss, XScreenSaverRegister, [have_mit=yes; SAVER_LIBS="$SAVER_LIBS -lXss"], [], -lX11 -lXext -lm) fi if test $have_mit = yes; then AC_DEFINE(HAVE_MIT_SAVER_EXTENSION) fi fi elif test $with_mit != no; then echo "error: must be yes or no: --with-mit-ext=$with_mit" exit 1 fi fi # Check for the XIDLE server extension header. # have_xidle=no with_xidle_req=unspecified AC_ARG_WITH(xidle-ext, [ --with-xidle-ext Include support for the XIDLE server extension, 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 AC_CHECK_X_HEADER(X11/extensions/xidle.h, [have_xidle=yes AC_DEFINE(HAVE_XIDLE_EXTENSION)]) elif test $with_xidle != no; then echo "error: must be yes or no: --with-xidle-ext=$with_xidle" exit 1 fi # Check for the XSHM server extension header. # have_xshm=no with_xshm_req=unspecified AC_ARG_WITH(xshm-ext, [ --with-xshm-ext Include support for the XSHM (Shared Memory) server 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 # 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 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 have_xshm=no AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes]) fi # if that succeeded, then we've really got it. if test $have_xshm = yes; then AC_DEFINE(HAVE_XSHM_EXTENSION) fi elif test $with_xshm != no; then echo "error: must be yes or no: --with-xshm-ext=$with_xshm" exit 1 fi # Check for the SGI-VIDEO-CONTROL server extension header. # have_sgivc=no with_sgivc_req=unspecified AC_ARG_WITH(sgivc-ext, [ --with-sgivc-ext Include support for the SGI-VIDEO-CONTROL server 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 # 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 have_sgivc=no AC_CHECK_X_LIB(Xsgivc, XSGIvcQueryGammaMap, [have_sgivc=yes; SAVER_LIBS="$SAVER_LIBS -lXsgivc"], [], -lXext -lX11) fi # if that succeeded, then we've really got it. if test $have_sgivc = yes; then AC_DEFINE(HAVE_SGI_VC_EXTENSION) fi elif test $with_sgivc != no; then echo "error: must be yes or no: --with-sgivc-ext=$with_sgivc" exit 1 fi # Check for Motif and Athena --with and --without arguments. # have_motif=no have_athena=no with_motif_req=unspecified with_athena_req=unspecified AC_ARG_WITH(motif,[ Toolkit options: --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]) 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 echo "error: must be yes or no: --with-motif=$with_motif" exit 1 fi 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 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 with_motif_req=yes with_motif=yes fi # Check for Motif and Athena headers. check_motif() { AC_CHECK_X_HEADER(Xm/Xm.h, [have_motif=yes AC_DEFINE(HAVE_MOTIF) SAVER_LIBS="-lXm $SAVER_LIBS"]) } check_athena() { AC_CHECK_X_HEADER(X11/Xaw/Dialog.h, [have_athena=yes AC_DEFINE(HAVE_ATHENA) SAVER_LIBS="-lXaw $SAVER_LIBS"]) } # If they asked for both motif and athena, check motif then athena. # If they asked for only motif, check motif then athena. # If they asked for only athena, check athena then motif. # If they asked for neither, check motif then athena. proselytize_motif=yes if test $with_motif = yes; then # asked for both, or for motif only check_motif if test $have_motif = yes; then with_athena=no with_athena_req=no else check_athena fi elif test $with_athena = yes; then # asked for athena only check_athena if test $have_athena = yes; then with_motif=no proselytize_motif=no else check_motif fi else # asked for neither check_motif if test $have_motif = yes; then with_athena=no else check_athena fi fi 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 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 AC_DEFINE(HAVE_XawViewportSetCoordinates) fi fi # If we have Motif, check whether it's really LessTif. # have_lesstif=no if test $have_motif = yes ; then AC_CACHE_CHECK([whether Motif is really LessTif], ac_cv_have_lesstif, [AC_TRY_X_COMPILE([#include ], [long vers = LesstifVersion;], [ac_cv_have_lesstif=yes], [ac_cv_have_lesstif=no])]) 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 fi # check for XPM header. # have_xpm=no with_xpm_req=unspecified AC_ARG_WITH(xpm,[ 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 AC_CHECK_X_HEADER(X11/xpm.h, [have_xpm=yes AC_DEFINE(HAVE_XPM) XPM_LIBS="-lXpm"]) elif test $with_xpm != no; then echo "error: must be yes or no: --with-xpm=$with_xpm" exit 1 fi # check for the GL header # have_gl=no with_gl_req=unspecified AC_ARG_WITH(gl, [ --with-gl Build those demos which depend on OpenGL, if possible (this is the default). --without-gl Do not build the OpenGL demos.], [with_gl="$withval"; with_gl_req="$withval"],[with_gl=yes]) 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 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 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 GL_LIBS="-lGL -lGLU" else AC_DEFINE(HAVE_MESA_GL) GL_LIBS="-lMesaGL -lMesaGLU" fi fi elif test $with_gl != no; then echo "error: must be yes or no: --with-gl=$with_gl" exit 1 fi # check for SGI XReadDisplay server extension header. # have_readdisplay=no with_readdisplay_req=unspecified AC_ARG_WITH(readdisplay, [ --with-readdisplay Include support for the XReadDisplay server extension if possible (this is the default). --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 AC_CHECK_X_HEADER(X11/extensions/readdisplay.h, AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION)) elif test $with_readdisplay != no; then echo "error: must be yes or no: --with-readdisplay=$with_readdisplay" exit 1 fi # check for SGI's Iris Video Library header. # have_sgivideo=no with_sgivideo_req=unspecified AC_ARG_WITH(sgivideo, [ --with-sgivideo Include support for SGI's Iris Video Library if possible (this is the default). --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 AC_CHECK_X_HEADER(dmedia/vl.h, have_sgivideo=yes) if test $have_sgivideo = yes; then have_sgivideo=no AC_CHECK_LIB(vl, vlOpenVideo, have_sgivideo=yes) 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 echo "error: must be yes or no: --with-sgivideo=$with_sgivideo" exit 1 fi # Try to find a program to generate random text. # # Zippy is funnier than the idiocy generally spat out by `fortune', # so try to find that, by invoking Emacs and asking it where its # libexec directory is ("yow" lives in there.) # # If that doesn't work, see if fortune, zippy, or yow are on $PATH, # and if so, use them. # # If that doesn't work, look in /usr/games, and if it's there, use # the full pathname. # with_zippy_req="" AC_ARG_WITH(zippy, [ --with-zippy=PROGRAM Some demos are able to run an external program and display its text; this names the program to use by default (though it can be overridden with X resources.) If you don't specify this, the default is to use \"yow\" from the Emacs distribution (if you have it) or else to use \"fortune\".], [ with_zippy_req="$withval"; with_zippy="$withval" ], [ with_zippy_req="$withval"; with_zippy="$withval" ]) if test "$with_zippy" = no || test "$with_zippy" = yes ; then with_zippy="" with_zippy_req="" fi if test -n "$with_zippy_req" ; then ac_cv_zippy_program="" case "$with_zippy_req" in /*) AC_MSG_CHECKING([for $with_zippy_req]) if test -x "$with_zippy_req" ; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) with_zippy="" fi ;; *) # don't cache unset ac_cv_path_zip2 AC_PATH_PROG(zip2, $with_zippy_req, []) if test "$zip2" = ""; then with_zippy="" fi ;; esac ac_cv_zippy_program="$with_zippy" elif test -n "$ac_cv_zippy_program"; then AC_MSG_RESULT([checking for zippy... (cached) $ac_cv_zippy_program]) fi if test ! -n "$ac_cv_zippy_program"; then AC_CHECK_PROGS(emacs_exe, emacs) AC_CHECK_PROGS(xemacs_exe, xemacs) ac_cv_zippy_program="" eargs='-batch -q -nw --eval' if test -n "$emacs_exe" ; then AC_MSG_CHECKING([for emacs yow]) # # get emacs to tell us where the libexec directory is. # dir=`$emacs_exe $eargs '(princ (concat exec-directory "\n"))' \ 2>/dev/null | tail -1` dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'` # # try running libexec/yow and see if it exits without error. # 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) else AC_MSG_RESULT(no) fi fi fi if test -z "$ac_cv_zippy_program" ; then AC_MSG_CHECKING([for xemacs yow]) if test -n "$xemacs_exe" ; then # # get xemacs to tell us where the libexec directory is. # dir=`$xemacs_exe $eargs '(princ (concat exec-directory "\n"))' \ 2>/dev/null | tail -1` dir=`echo "$dir" | sed 's@///*@/@g;s@/$@@'` # # try running libexec/yow and see if it exits without error. # 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) else # # in some xemacs installations, the pathname of the yow.lines file # isn't hardcoded into the yow executable, and must be passed on # the command line. See if it's in libexec/../etc/. # M4 sucks!! changequote(X,Y) dir_up=`echo "$dir" | sed 's@/[^/]*$@@'` changequote([,]) yow="yow -f $dir_up/etc/yow.lines" if $dir/$yow >&- 2>&- ; then ac_cv_zippy_program="$dir/$yow" AC_MSG_RESULT($ac_cv_zippy_program) else AC_MSG_RESULT(no) fi fi fi fi fi # if that didn't work, try for some other programs... if test -z "$ac_cv_zippy_program" ; then fortune='' AC_CHECK_PROGS(fortune, [fortune zippy yow]) # if that didn't work, try for those programs in /usr/games... if test -z "$fortune" ; then AC_PATH_PROGS(fortune, [fortune zippy yow], fortune, /usr/games:/usr/local/games) fi fi fi if test -z "$ac_cv_zippy_program" ; then ac_cv_zippy_program=fortune fi 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 with_shadow_req=unspecified need_setuid=no AC_ARG_ENABLE(locking,[ 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 # Check for Kerberos. # AC_ARG_WITH(kerberos, [ --with-kerberos Include support for Kerberos authentication, 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 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 have_kerberos=yes AC_DEFINE(HAVE_KERBEROS) PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lnsl -lsocket" fi elif test $with_kerberos != no; then echo "error: must be yes or no: --with-kerberos=$with_kerberos" exit 1 fi # Next, check for the nine billion variants of shadow passwords... passwd_cruft_done=no AC_ARG_WITH(shadow, [ --with-shadow Include support for shadow password authentication, if possible (this is the default, if no Kerberos.) --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 passwd_cruft_done=yes elif test $with_shadow != yes; then echo "error: must be yes or no: --with-shadow=$with_shadow" exit 1 fi # Sun's "adjunct" passwords. # 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 #include #include #include #include ], [struct passwd_adjunct *p = getpwanam("nobody"); const char *pw = p->pwa_passwd;], [ac_cv_sun_adjunct=yes], [ac_cv_sun_adjunct=no])]) if test $ac_cv_sun_adjunct = yes; then have_shadow=yes need_setuid=yes passwd_cruft_done=yes AC_DEFINE(HAVE_ADJUNCT_PASSWD) fi fi # DEC and SCO so-called "enhanced" security. # 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 #include #include #include #include ], [struct pr_passwd *p; const char *pw; set_auth_parameters(0, 0); check_auth_parameters(); p = getprpwnam("nobody"); pw = p->ufld.fd_encrypt;], [ac_cv_enhanced_passwd=yes], [ac_cv_enhanced_passwd=no])]) if test $ac_cv_enhanced_passwd = yes; then have_shadow=yes need_setuid=yes passwd_cruft_done=yes AC_DEFINE(HAVE_ENHANCED_PASSWD) # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx) # (I'm told it needs -lcurses too, but I don't understand why.) AC_CHECK_LIB(prot, getprpwnam, [PASSWD_LIBS="$PASSWD_LIBS -lprot -lcurses -lx"], [# On DEC, getprpwnam() is in -lsecurity AC_CHECK_LIB(security, getprpwnam, [PASSWD_LIBS="$PASSWD_LIBS -lsecurity"])], [-lx]) fi fi # HP's entry in the "Not Invented Here" Sweepstakes. # 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 #include #include #include #include ], [struct s_passwd *p = getspwnam("nobody"); const char *pw = p->pw_passwd;], [ac_cv_hpux_passwd=yes], [ac_cv_hpux_passwd=no])]) if test $ac_cv_hpux_passwd = yes; then have_shadow=yes need_setuid=yes passwd_cruft_done=yes AC_DEFINE(HAVE_HPUX_PASSWD) # on HPUX, bigcrypt is in -lsec AC_CHECK_LIB(sec, bigcrypt, [PASSWD_LIBS="$PASSWD_LIBS -lsec"]) fi fi # Traditional (ha!) shadow passwords. # if test $passwd_cruft_done = no ; then AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow, [AC_TRY_X_COMPILE([#include #include #include #include #include ], [struct spwd *p = getspnam("nobody"); const char *pw = p->sp_pwdp;], [ac_cv_shadow=yes], [ac_cv_shadow=no])]) if test $ac_cv_shadow = yes; then have_shadow=yes need_setuid=yes passwd_cruft_done=yes AC_DEFINE(HAVE_SHADOW_PASSWD) # 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 AC_CHECK_LIB(gen, getspnam, [have_getspnam=yes; PASSWD_LIBS="$PASSWD_LIBS -lgen"]) fi fi fi # 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 AC_CHECK_LIB(crypt, crypt, [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"]) fi # Most of the above shadow mechanisms will have set need_setuid to yes, # if they were found. But, on some systems, we need setuid even when # using plain old vanilla passwords. # if test $need_setuid = no ; then case "$host" in *-hpux* | *-aix* | *-netbsd* | *-freebsd* | *-openbsd* ) need_setuid=yes ;; 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 if test \! -z "$includedir" ; then INCLUDES="-I$includedir" fi if test \! -z "$libdir" ; then LDFLAGS="$LDFLAGS -L$libdir" fi ##### should have options to override the DEPEND crap, I guess... DEPEND=makedepend DEPEND_FLAGS= DEPEND_DEFINES= # Done testing things -- now substitute in some stuff for the Makefiles. # if test $have_motif = yes; then AC_DEFINE(HAVE_MOTIF) DIALOG_SRCS='$(MOTIF_SRCS)' DIALOG_OBJS='$(MOTIF_OBJS)' elif test $have_athena = yes; then AC_DEFINE(HAVE_ATHENA) DIALOG_SRCS='$(ATHENA_SRCS)' DIALOG_OBJS='$(ATHENA_OBJS)' else DIALOG_SRCS='' DIALOG_OBJS='' fi if test $have_kerberos = yes; then PASSWD_SRCS='$(KERBEROS_SRCS)' PASSWD_OBJS='$(KERBEROS_OBJS)' else PASSWD_SRCS='$(PWENT_SRCS)' PASSWD_OBJS='$(PWENT_OBJS)' fi if test $enable_locking = yes; then LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)' LOCK_OBJS='$(LOCK_OBJS_1) $(PASSWD_OBJS)' else LOCK_SRCS='' LOCK_OBJS='' fi if test $need_setuid = yes; then NEED_SETUID=yes INSTALL_SETUID='$(INSTALL) $(SUID_FLAGS)' else NEED_SETUID=no INSTALL_SETUID='$(INSTALL_PROGRAM)' fi tab=' ' 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} else GL_KLUDGE_1=${tab}${tab}${tab}${tab}${tab}${tab}${tab}${tab}${tab}'\n' GL_KLUDGE_2='!'${tab} fi AC_SUBST(INCLUDES) AC_SUBST(SAVER_LIBS) AC_SUBST(HACK_LIBS) AC_SUBST(XPM_LIBS) AC_SUBST(GL_LIBS) AC_SUBST(PASSWD_LIBS) AC_SUBST(INSTALL_SETUID) AC_SUBST(NEED_SETUID) AC_SUBST(SGI_VIDEO_OBJS) AC_SUBST(SGI_VIDEO_LIBS) AC_SUBST(DIALOG_SRCS) AC_SUBST(DIALOG_OBJS) AC_SUBST(PASSWD_SRCS) AC_SUBST(PASSWD_OBJS) AC_SUBST(XMU_SRCS) 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(HACKDIR) AC_SUBST(APPDEFAULTS) AC_SUBST(DEPEND) AC_SUBST(DEPEND_FLAGS) AC_SUBST(DEPEND_DEFINES) # Print some warnings before emitting the Makefiles. # warning=no warnsep=' #################################################################' warnpre() { if test $warning = no ; then echo '' ; echo "$warnsep" ; echo '' warning=yes fi } warn() { warnpre if test $warning = long ; then echo '' ; fi warning=yes echo " Warning: $@" } warnL() { was=$warning warnpre warning=yes if test $was != no ; then echo '' ; fi echo " Warning: $@" } warn2() { echo " $@" warning=long } 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 warn 'The MIT saver extension was requested, but was not found.' fi 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 warn 'The XSHM extension was requested, but was not found.' fi 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 $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." proselytize_motif=no 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 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 ." fi fi 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 ." fi if test $with_xpm_req = yes -a $have_xpm = no ; then warn 'Use of XPM was requested, but it was not found.' fi if test $with_gl_req = yes -a $have_gl = no ; then warn 'Use of GL was requested, but it was not found.' fi 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 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 warn 'Use of Kerberos was requested, but it was not found.' fi if test $with_shadow_req = yes -a $have_shadow = no ; then warn 'Use of shadow passwords was requested, but they were not found.' fi if test -n "$with_zippy_req"; then if test "$with_zippy_req" != "$ac_cv_zippy_program" ; then warnL "$with_zippy_req was requested as the Zippy program," warn2 "but was not found. The default will be used instead." fi fi if test $warning != no; then echo '' ; echo "$warnsep" ; echo '' fi AC_OUTPUT(Makefile utils/Makefile driver/Makefile xlockmore/xlock/Makefile xlockmore/modes/Makefile hacks/Makefile hacks/glx/Makefile driver/XScreenSaver.ad)