X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=configure.in;h=df6f23e67cbde728a45f12e8689963d9e7b87966;hb=59ac4e9a0de290e4275a7bbb890ad16abd09d68f;hp=62495c42e5b00b643c7eeea30d635b9bf9ce64b1;hpb=c31d10b6605cd8dc1a7b61fef4256f06198767e5;p=xscreensaver diff --git a/configure.in b/configure.in index 62495c42..df6f23e6 100644 --- a/configure.in +++ b/configure.in @@ -3,8 +3,7 @@ AC_INIT(driver/subprocs.c) -echo -n "current directory: " -pwd +echo "current directory: `pwd`" echo "command line was: $0 $@" AC_CONFIG_HEADER(config.h) @@ -149,7 +148,7 @@ fi AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv) AC_CHECK_FUNCS(sigaction syslog) -AC_CHECK_HEADERS(unistd.h crypt.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) @@ -184,9 +183,17 @@ else fi fi +# canonicalize slashes. +HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'` + AC_PATH_XTRA +if test "$have_x" != yes; then + AC_MSG_ERROR(Couldn't find X11 headers/libs. Try \`$0 --help'.) +fi + + # Try and find the app-defaults directory. # It sucks that autoconf doesn't do this already... # @@ -568,6 +575,7 @@ else XMU_OBJS='' SAVER_LIBS="-lXmu $SAVER_LIBS" HACK_LIBS="-lXmu $HACK_LIBS" + TOOLKIT_LIBS="-lXmu $TOOLKIT_LIBS" AC_DEFINE(HAVE_XMU) fi @@ -841,6 +849,40 @@ elif test "$with_dpms" != no; then fi +# Check for /proc/interrupts +# +have_proc_interrupts=no +with_proc_interrupts_req=unspecified +AC_ARG_WITH(proc-interrupts, +[ --with-proc-interrupts Include support for consulting the /proc/interrupts + file to notice keyboard activity, if possible. + --without-proc-interrupts Do not compile in support for this method.], + [with_proc_interrupts="$withval"; with_proc_interrupts_req="$withval"], + [with_proc_interrupts=yes]) + +if test "$with_proc_interrupts" = yes; then + + AC_MSG_CHECKING(whether /proc/interrupts contains keyboard data) + AC_CACHE_VAL(ac_cv_have_proc_interrupts, + [ac_cv_have_proc_interrupts=no + if grep keyboard /proc/interrupts >/dev/null 2>&1 ; then + ac_cv_have_proc_interrupts=yes + fi + ]) + have_proc_interrupts=$ac_cv_have_proc_interrupts + + AC_MSG_RESULT($have_proc_interrupts) + + if test "$have_proc_interrupts" = yes; then + AC_DEFINE(HAVE_PROC_INTERRUPTS) + fi + +elif test "$with_proc_interrupts" != no; then + echo "error: must be yes or no: --with-proc-interrupts=$with_proc_interrupts" + exit 1 +fi + + # Check for Motif and Athena --with and --without arguments. # @@ -1023,6 +1065,57 @@ if test "$have_lesstif" = yes ; then fi +if test "$have_motif" = yes ; then + mtv=unknown + echo unknown > conftest-mt + AC_CACHE_CHECK([Motif version number], + ac_cv_motif_version_string, + [AC_TRY_X_RUN([#include + #include + int main() { + FILE *f = fopen("conftest-mt", "w"); + if (!f) exit(1); + fprintf(f, "%d %d.%d\n", XmVersion, + XmVERSION, XmREVISION); + fclose(f); + exit(0); + }], + [mtv=`cat conftest-mt` + ac_cv_motif_version=`echo $mtv | sed 's/ .*//'` + ac_cv_motif_version_string=`echo $mtv | sed 's/.* //'`], + [ac_cv_motif_version=unknown + ac_cv_motif_version_string=unknown], + [ac_cv_motif_version=unknown + ac_cv_motif_version_string=unknown])]) + rm -f conftest-mt + motif_version=$ac_cv_motif_version + motif_version_string=$ac_cv_motif_version_string + +fi + + +# If this is Motif 2.x, and we have XPM, then link against XPM as well. +# The deal is, Motif 2.x requires XPM -- but it's a compilation option of +# the library whether to build the XPM code into libXm, or whether to rely +# on an external libXm. So the only way to tell whether XPM is a link-time +# requirement is to examine libXm.a, which is very difficult to do in an +# autoconf script. So... if it's Motif 2.x, we always link against XPM if +# the XPM lib exists (and this will be a no-op if libXm happens to already +# have the XPM code in it.) +# +motif_requires_xpm=no +if test "$have_motif" = yes ; then + AC_MSG_CHECKING(whether Motif requires XPM) + if test "$motif_version" -ge 2000; then + motif_requires_xpm=yes + AC_MSG_RESULT(maybe) + else + AC_MSG_RESULT(no) + fi +fi + + + # Some versions of Motif (2.1.0, at least) require -lXp, the "X Printing # Extension". Why this extension isn't in -lXext with all the others, # I have no idea. @@ -1036,6 +1129,19 @@ if test "$have_motif" = yes ; then fi +# Check for _Xsetlocale in -lXintl, since at least some recent versions +# of Motif (on Linux) need it. +# +have_xintl=no +if test "$have_motif" = yes ; then + AC_CHECK_X_LIB(Xintl, _Xsetlocale, [have_xintl=yes], [have_xintl=no], + -lX11 -lXext -lm) + if test "$have_xintl" = yes; then + TOOLKIT_LIBS="$TOOLKIT_LIBS -lXintl" + fi +fi + + # check for XPM header. # have_xpm=no @@ -1060,6 +1166,15 @@ elif test "$with_xpm" != no; then exit 1 fi +# See comment near $motif_requires_xpm, above. +# Need to do this here, after both Motif and XPM have been checked for. +# +if test "$have_motif" = yes -a "$have_xpm" = yes ; then + if test "$motif_requires_xpm" = yes ; then + TOOLKIT_LIBS="$TOOLKIT_LIBS $XPM_LIBS" + fi +fi + # check for the GL header # @@ -1125,7 +1240,7 @@ if test "$with_gl" = yes; then #line __oline__ "configure" #include "confdefs.h" #include -#configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION +configure: MESA_MAJOR_VERSION MESA_MINOR_VERSION EOF ac_save_CPPFLAGS="$CPPFLAGS" @@ -1134,8 +1249,12 @@ EOF fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" + # M4 sucks!! + changequote(X,Y) 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'` + 's/^configure:.*\([0-9][0-9]*\).*\([0-9][0-9]*\).*$/\1.\2/p'` + changequote([,]) + rm -f conftest.$ac_ext CPPFLAGS="$ac_save_CPPFLAGS" @@ -1162,6 +1281,24 @@ EOF fi + # If it's MesaGL, check to see if it requires -lpthread. + # + have_pthread=no + mesa_requires_pthread=no + if test "$ac_have_mesa_gl" = yes; then + + AC_CHECK_LIB(pthread, pthread_create, [have_pthread=yes], [],) + if test "$have_pthread" = yes; then + AC_CHECK_X_LIB($gl_lib_1, gl_get_thread_context, + [mesa_requires_pthread=yes], [], + $GL_LIBS -lpthread -lX11 -lXext -lm) + fi + + if test "$mesa_requires_pthread" = yes; then + GL_LIBS="$GL_LIBS -lpthread" + fi + fi + # Check for OpenGL 1.1 features. # AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)], @@ -1378,6 +1515,8 @@ have_kerberos=no with_kerberos_req=unspecified have_shadow=no with_shadow_req=unspecified +have_pam=no +with_pam_req=unspecified need_setuid=no AC_ARG_ENABLE(locking,[ @@ -1422,7 +1561,7 @@ if test "$enable_vt_locking" = yes; then ac_vt_lockswitch=$ac_cv_vt_lockswitch AC_MSG_RESULT($ac_vt_lockswitch) -elif test "$enable_locking" = no; then +elif test "$enable_vt_locking" = no; then true else echo "error: must be yes or no: --enable-vt-locking=$enable_vt_locking" @@ -1471,13 +1610,40 @@ if test "$enable_locking" = yes; then echo "error: must be yes or no: --with-kerberos=$with_kerberos" exit 1 fi + + # Check for PAM. + AC_ARG_WITH(pam, +[ --with-pam Include support for PAM (Pluggable Authentication + Modules) if possible (this is the default.) + --without-pam Do not compile in support for PAM.], + [with_pam="$withval"; with_pam_req="$withval"],[with_pam=no]) +#### Leave PAM off by default for now, since it's buggy on Solaris +#### (and probably Linux, but it's so hard to tell...) + + HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM) + + if test "$with_pam" = yes; then + AC_CACHE_CHECK([for PAM], ac_cv_pam, + [AC_TRY_X_COMPILE([#include ],, + [ac_cv_pam=yes], + [ac_cv_pam=no])]) + if test "$ac_cv_pam" = yes ; then + have_pam=yes + AC_DEFINE(HAVE_PAM) + PASSWD_LIBS="${PASSWD_LIBS} -lpam -ldl" + fi + elif test "$with_pam" != no; then + echo "error: must be yes or no: --with-pam=$with_pam" + exit 1 + fi # Next, check for the nine billion variants of shadow passwords... - passwd_cruft_done=no + pwent_cruft_done=no AC_ARG_WITH(shadow, [ --with-shadow Include support for shadow password authentication, - if possible (this is the default, if no Kerberos.) + if possible (this is the default, if no Kerberos or + PAM.) --without-shadow Do not compile in support for shadow passwords. ], [with_shadow="$withval"; with_shadow_req="$withval"],[with_shadow=yes]) @@ -1485,7 +1651,7 @@ if test "$enable_locking" = yes; then HANDLE_X_PATH_ARG(with_shadow, --with-shadow, shadow password) if test "$with_shadow" = no; then - passwd_cruft_done=yes + pwent_cruft_done=yes elif test "$with_shadow" != yes; then echo "error: must be yes or no: --with-shadow=$with_shadow" exit 1 @@ -1494,7 +1660,7 @@ if test "$enable_locking" = yes; then # Sun's "adjunct" passwords. # - if test "$passwd_cruft_done" = no ; then + if test "$pwent_cruft_done" = no ; then AC_CACHE_CHECK([for Sun-style shadow passwords], ac_cv_sun_adjunct, [AC_TRY_X_COMPILE([#include #include @@ -1509,14 +1675,14 @@ if test "$enable_locking" = yes; then if test "$ac_cv_sun_adjunct" = yes; then have_shadow=yes need_setuid=yes - passwd_cruft_done=yes + pwent_cruft_done=yes AC_DEFINE(HAVE_ADJUNCT_PASSWD) fi fi # DEC and SCO so-called "enhanced" security. # - if test "$passwd_cruft_done" = no ; then + if test "$pwent_cruft_done" = no ; then AC_CACHE_CHECK([for DEC-style shadow passwords], ac_cv_enhanced_passwd, [AC_TRY_X_COMPILE([#include #include @@ -1535,7 +1701,7 @@ if test "$enable_locking" = yes; then if test $ac_cv_enhanced_passwd = yes; then have_shadow=yes need_setuid=yes - passwd_cruft_done=yes + pwent_cruft_done=yes AC_DEFINE(HAVE_ENHANCED_PASSWD) # On SCO, getprpwnam() is in -lprot (which uses nap() from -lx) @@ -1551,7 +1717,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 "$pwent_cruft_done" = no ; then AC_CACHE_CHECK([for HP-style shadow passwords], ac_cv_hpux_passwd, [AC_TRY_X_COMPILE([#include #include @@ -1566,7 +1732,7 @@ if test "$enable_locking" = yes; then if test "$ac_cv_hpux_passwd" = yes; then have_shadow=yes need_setuid=yes - passwd_cruft_done=yes + pwent_cruft_done=yes AC_DEFINE(HAVE_HPUX_PASSWD) # on HPUX, bigcrypt is in -lsec @@ -1576,7 +1742,7 @@ if test "$enable_locking" = yes; then # Traditional (ha!) shadow passwords. # - if test "$passwd_cruft_done" = no ; then + if test "$pwent_cruft_done" = no ; then AC_CACHE_CHECK([for generic shadow passwords], ac_cv_shadow, [AC_TRY_X_COMPILE([#include #include @@ -1590,7 +1756,7 @@ if test "$enable_locking" = yes; then if test "$ac_cv_shadow" = yes; then have_shadow=yes need_setuid=yes - passwd_cruft_done=yes + pwent_cruft_done=yes AC_DEFINE(HAVE_SHADOW_PASSWD) # On some systems (UnixWare 2.1), getspnam() is in -lgen instead of -lc. @@ -1608,7 +1774,7 @@ 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 "$pwent_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 @@ -1617,7 +1783,7 @@ if test "$enable_locking" = yes; then fi]) if test "$ac_cv_master_passwd" = yes; then need_setuid=yes - passwd_cruft_done=yes + pwent_cruft_done=yes fi fi @@ -1626,7 +1792,7 @@ if test "$enable_locking" = yes; then 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"]) + [have_crypt=yes; PASSWD_LIBS="$PASSWD_LIBS -lcrypt"]) fi @@ -1645,7 +1811,6 @@ if test "$enable_locking" = yes; then fi - if test \! -z "$includedir" ; then INCLUDES="-I$includedir" fi @@ -1677,12 +1842,17 @@ else fi if test "$have_kerberos" = yes; then - PASSWD_SRCS='$(KERBEROS_SRCS)' - PASSWD_OBJS='$(KERBEROS_OBJS)' -else - PASSWD_SRCS='$(PWENT_SRCS)' - PASSWD_OBJS='$(PWENT_OBJS)' + PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)" + PASSWD_OBJS="$PASSWD_OBJS \$(KERBEROS_OBJS)" fi +if test "$have_pam" = yes; then + PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)" + PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)" + INSTALL_PAM="install-pam" +fi + PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)" + PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)" + if test "$enable_locking" = yes; then LOCK_SRCS='$(LOCK_SRCS_1) $(PASSWD_SRCS)' @@ -1719,6 +1889,7 @@ AC_SUBST(PASSWD_LIBS) AC_SUBST(INSTALL_SETUID) AC_SUBST(INSTALL_DIRS) AC_SUBST(NEED_SETUID) +AC_SUBST(INSTALL_PAM) AC_SUBST(SGI_VIDEO_OBJS) AC_SUBST(SGI_VIDEO_LIBS) @@ -1856,7 +2027,7 @@ fi if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then - preferred_mesagl=2.7 + preferred_mesagl=3.0 if test "$ac_mesagl_version" = unknown; then warnL "Unable to determine the MesaGL version number!" @@ -1903,8 +2074,8 @@ if test "$have_gl" = no ; then 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 .' + warn2 'version at . For general OpenGL' + warn2 'info, see .' fi @@ -1920,6 +2091,10 @@ 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_pam_req" = yes -a "$have_pam" = no ; then + warn 'Use of PAM 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 @@ -1959,20 +2134,26 @@ eval HACKDIR=${HACKDIR} eval HACKDIR=${HACKDIR} eval HACKDIR=${HACKDIR} -echo "" -echo "$warnsep" -echo "" -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 (80+ different executables) will" -echo " be installed in ${HACKDIR}." -echo "" -echo " If you would prefer the demos to be installed elsewhere" -echo " (for example, in a dedicated directory) you should re-run" -echo " configure with the --enable-subdir=DIR option. For more" -echo " information, run $0 --help." -echo "" -echo "$warnsep" -echo "" +# canonicalize slashes. +bindir=`echo "${bindir}" | sed 's@/$@@;s@//*@/@g'` +HACKDIR=`echo "${HACKDIR}" | sed 's@/$@@;s@//*@/@g'` + +if test "${bindir}" = "${HACKDIR}" ; then + echo "" + echo "$warnsep" + echo "" + 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 (80+ different executables) will" + echo " also be installed in ${HACKDIR}." + echo "" + echo " If you would prefer the demos to be installed elsewhere" + echo " (for example, in a dedicated directory) you should re-run" + echo " configure with the --enable-subdir=DIR option. For more" + echo " information, run $0 --help." + echo "" + echo "$warnsep" + echo "" +fi