X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=configure.in;h=4fd08b644254c2e78c3acd19d8e7ff89dce930b2;hb=0bd2eabab3e404c6769fe8f59b639275e960c415;hp=e614456efd23100439ace27201bd87ad8f69a640;hpb=6bb727f03bff0389fbb1349d7df4c9d8d7532959;p=xscreensaver diff --git a/configure.in b/configure.in index e614456e..4fd08b64 100644 --- a/configure.in +++ b/configure.in @@ -18,6 +18,10 @@ if test -z "$GCC"; then AC_MSG_RESULT(AIX: adding -qlanglvl=ansi -qhalt=e) 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... + *) AC_MSG_RESULT(no idea) ;; @@ -67,13 +71,13 @@ 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], + [struct timeval tv; struct timezone tzp; + gettimeofday(&tv, &tzp);], + [ac_gettimeofday_args=2], [AC_TRY_COMPILE([#include #include ], - [struct timeval tv; struct timezone tzp; - gettimeofday(&tv, &tzp);], - [ac_gettimeofday_args=2], + [struct timeval tv; gettimeofday(&tv);], + [ac_gettimeofday_args=1], [ac_gettimeofday_args=0])]) ac_cv_gettimeofday_args=$ac_gettimeofday_args]) ac_gettimeofday_args=$ac_cv_gettimeofday_args @@ -115,12 +119,19 @@ Installation options: ], [enable_subdir="$enableval"],[enable_subdir=no]) if test x"$enable_subdir" = xno; then - HACKDIR='$(bindir)' + 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 + # there must be a better way than this... + if test -z "`echo $enable_subdir | sed 's@^/.*@@'`" ; then + # absolute path + HACKDIR=$enable_subdir + else + # relative path + HACKDIR='${bindir}/'$enable_subdir + fi fi @@ -531,6 +542,20 @@ if test $with_xshm = yes; then AC_CHECK_X_HEADER(sys/shm.h, [have_xshm=yes]) fi + # AIX is pathological, as usual: apparently it's normal for the Xshm headers + # to exist, but the library code to not exist. And even better, the library + # code is in its own library: libXextSam.a. So, if we're on AIX, and that + # lib doesn't exist, give up. + # + case "$host" in + *-aix*) + have_xshm=no + AC_CHECK_X_LIB(XextSam, XShmQueryExtension, + [have_xshm=yes; SAVER_LIBS="$SAVER_LIBS -lXextSam"], + [], -lX11 -lXext -lm) + ;; + esac + # if that succeeded, then we've really got it. if test $have_xshm = yes; then AC_DEFINE(HAVE_XSHM_EXTENSION) @@ -575,9 +600,37 @@ elif test $with_sgivc != no; then fi +# Check for the DPMS server extension header. +# +have_dpms=no +with_dpms_req=unspecified +AC_ARG_WITH(dpms-ext, +[ --with-dpms-ext Include support for the DPMS server extension, + 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 + + # 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 + have_dpms=no + AC_CHECK_X_LIB(Xdpms, DPMSInfo, + [have_dpms=yes; SAVER_LIBS="$SAVER_LIBS -lXdpms"], [], + -lXext -lX11) + fi + # if that succeeded, then we've really got it. + if test $have_dpms = yes; then + AC_DEFINE(HAVE_DPMS_EXTENSION) + fi - +elif test $with_dpms != no; then + echo "error: must be yes or no: --with-dpms-ext=$with_dpms" + exit 1 +fi @@ -585,6 +638,7 @@ fi # have_motif=no have_athena=no +have_athena3d=no with_motif_req=unspecified with_athena_req=unspecified @@ -635,10 +689,18 @@ check_motif() { } check_athena() { - AC_CHECK_X_HEADER(X11/Xaw/Dialog.h, - [have_athena=yes - AC_DEFINE(HAVE_ATHENA) - SAVER_LIBS="-lXaw $SAVER_LIBS"]) + 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" + fi } @@ -730,6 +792,19 @@ if test $have_lesstif = yes ; then 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. +# +have_xp_ext=no +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"], + [], -lX11 -lXext -lm) +fi + + # check for XPM header. # have_xpm=no @@ -1148,6 +1223,24 @@ if test $enable_locking = yes; then fi fi + # On FreeBSD, getpwnam() and friends work just like on non-shadow-password + # systems -- except you only get stuff in the pw_passwd field if the running + # 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 + 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 + need_setuid=yes + passwd_cruft_done=yes + 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]) @@ -1193,6 +1286,8 @@ 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. # @@ -1251,6 +1346,7 @@ AC_SUBST(XPM_LIBS) AC_SUBST(GL_LIBS) AC_SUBST(PASSWD_LIBS) AC_SUBST(INSTALL_SETUID) +AC_SUBST(INSTALL_DIRS) AC_SUBST(NEED_SETUID) AC_SUBST(SGI_VIDEO_OBJS) AC_SUBST(SGI_VIDEO_LIBS) @@ -1324,6 +1420,10 @@ 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 + warn 'The DPMS 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." @@ -1399,3 +1499,37 @@ AC_OUTPUT(Makefile hacks/Makefile hacks/glx/Makefile driver/XScreenSaver.ad) + +# You are in a twisty maze of namespaces and syntaxes, all alike. +# Fuck the skull of Unix. +# +eval bindir=${bindir} +eval bindir=${bindir} +eval bindir=${bindir} +eval bindir=${bindir} +eval bindir=${bindir} +eval bindir=${bindir} +eval HACKDIR=${HACKDIR} +eval HACKDIR=${HACKDIR} +eval HACKDIR=${HACKDIR} +eval HACKDIR=${HACKDIR} +eval HACKDIR=${HACKDIR} +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 "" +echo " The various graphics demos (60+ 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 ""