X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=configure.in;h=164e6d8e739ff73cc043ea779894e1a0aeb4b9ff;hb=de041722414a2e31c1c04caa10aaec9d6952e9b4;hp=878757cb6c70a0c87da043c6f6e8d3fdf853fff9;hpb=14463b6ad1ab1ccf81f9c33350b048e410ba94cb;p=xscreensaver diff --git a/configure.in b/configure.in index 878757cb..164e6d8e 100644 --- a/configure.in +++ b/configure.in @@ -1,4 +1,4 @@ -# configure.in --- xscreensaver, Copyright (c) 1997 Jamie Zawinski. +# configure.in --- xscreensaver, Copyright (c) 1997-2000 Jamie Zawinski. # AC_INIT(driver/subprocs.c) @@ -85,6 +85,37 @@ AC_DEFUN(AC_PROG_CC_ANSI, ]) +############################################################################### +# +# Function to work around the fucked up gcc 2.96 included in Red Hat 7.0 +# +############################################################################### + +AC_DEFUN(AC_ESCHEW_REDHAT_GCC_LOSSAGE, + [if test -n "$GCC"; then + AC_MSG_CHECKING(for Red Hat GCC lossage) + AC_CACHE_VAL(ac_cv_red_hat_gcc_lossage, + [ac_cv_red_hat_gcc_lossage=no + AC_EGREP_CPP(lossage, + [#include + #if !defined(__USE_POSIX) || !defined(__USE_SVID) || !defined(__USE_BSD) + lossage + #endif + ], ac_cv_red_hat_gcc_lossage=yes) + ]) + + ac_red_hat_gcc_lossage=$ac_cv_red_hat_gcc_lossage + if test "$ac_cv_red_hat_gcc_lossage" = yes ; then + rh_defines="-D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE"; + CC="$CC $rh_defines" + AC_MSG_RESULT(yes: need $rh_defines) + else + AC_MSG_RESULT(no) + fi + fi +]) + + ############################################################################### # # Function to figure out how to create directory trees. @@ -193,6 +224,26 @@ AC_DEFUN(AC_PROG_PERL, ]) +############################################################################### +# +# Function to demand "bc". Losers. +# +############################################################################### + +AC_DEFUN(AC_DEMAND_BC, + [ac_bc_result=`echo 6+9 | bc 2>/dev/null` + AC_MSG_CHECKING([for bc]) + if test "$ac_bc_result" = "15" ; then + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + echo '' + AC_MSG_ERROR([Your system doesn't have \"bc\", which has been a standard + part of Unix since the 1970s. Come back when your vendor + has grown a clue.]) + fi + ]) + ############################################################################### # # Functions to check how to do ICMP PING requests. @@ -654,9 +705,11 @@ AC_DEFUN(HANDLE_X_PATH_ARG, [ # random compiler setup AC_CANONICAL_HOST AC_PROG_CC_ANSI +AC_ESCHEW_REDHAT_GCC_LOSSAGE AC_PROG_CPP AC_C_CONST AC_C_INLINE +AC_DEMAND_BC # stuff for Makefiles AC_PROG_INSTALL @@ -976,14 +1029,22 @@ 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 that succeeded, then check for the DPMS code in the libraries if test "$have_dpms" = yes; then + + # first look in -lXext (this is where it is with XFree86 4.0) have_dpms=no - AC_CHECK_X_LIB(Xdpms, DPMSInfo, - [have_dpms=yes; SAVER_LIBS="$SAVER_LIBS -lXdpms"], [true], - -lXext -lX11) + AC_CHECK_X_LIB(Xext, DPMSInfo, [have_dpms=yes], [true], -lXext -lX11) + + # if that failed, look in -lXdpms (this is where it was in XFree86 3.x) + if test "$have_dpms" = no; then + AC_CHECK_X_LIB(Xdpms, DPMSInfo, + [have_dpms=yes; SAVER_LIBS="$SAVER_LIBS -lXdpms"], [true], + -lXext -lX11) + fi fi + # if that succeeded, then we've really got it. if test "$have_dpms" = yes; then AC_DEFINE(HAVE_DPMS_EXTENSION) @@ -1222,6 +1283,7 @@ fi ############################################################################### have_kerberos=no +have_kerberos5=no with_kerberos_req=unspecified AC_ARG_WITH(kerberos, @@ -1231,21 +1293,41 @@ AC_ARG_WITH(kerberos, HANDLE_X_PATH_ARG(with_kerberos, --with-kerberos, Kerberos) if test "$enable_locking" = yes -a "$with_kerberos" = yes; then - AC_CACHE_CHECK([for Kerberos], ac_cv_kerberos, + AC_CACHE_CHECK([for Kerberos 4], ac_cv_kerberos, [AC_TRY_X_COMPILE([#include ],, [ac_cv_kerberos=yes], [ac_cv_kerberos=no])]) + AC_CACHE_CHECK([for Kerberos 5], ac_cv_kerberos5, + [AC_TRY_X_COMPILE([#include ],, + [ac_cv_kerberos5=yes], + [ac_cv_kerberos5=no])]) + if test "$ac_cv_kerberos" = yes ; then have_kerberos=yes AC_DEFINE(HAVE_KERBEROS) + fi + + if test "$ac_cv_kerberos5" = yes ; then + have_kerberos=yes + have_kerberos5=yes + AC_DEFINE(HAVE_KERBEROS) + AC_DEFINE(HAVE_KERBEROS5) + fi + if test "$have_kerberos5" = yes ; then + # from Matt Knopp + # (who got it from amu@mit.edu) + PASSWD_LIBS="$PASSWD_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcrypt -lcom_err" + elif test "$have_kerberos" = yes ; then # from Tim Showalter PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes" + fi + + if test "$have_kerberos" = yes ; then 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 fi @@ -1503,7 +1585,7 @@ fi ############################################################################### # -# Check for -lgtk. +# Check for -lgtk (and Gnome stuff) # ############################################################################### @@ -1531,6 +1613,31 @@ if test "$with_gtk" != yes -a "$with_gtk" != no ; then exit 1 fi +have_gnome=no +with_gnome_req=unspecified +AC_ARG_WITH(gnome, +[ --with-gnome Include support for the Gnome Control Center.], + [with_gnome="$withval"; with_gnome_req="$withval"],[with_gnome=yes]) + +# if --with-gnome=/directory/ was specified, remember that directory so that +# we can also look for the `gnome-config' program in that directory. +case "$with_gnome" in + /*) + gnome_dir="$with_gnome" + ;; + *) + gnome_dir="" + ;; +esac + +HANDLE_X_PATH_ARG(with_gnome, --with-gnome, Gnome) + +if test "$with_gnome" != yes -a "$with_gnome" != no ; then + echo "error: must be yes or no: --with-gnome=$with_gnome" + exit 1 +fi + + jurassic_gtk=no if test "$with_gtk" = yes; then have_gtk=no @@ -1543,18 +1650,32 @@ if test "$with_gtk" = yes; then if test ! -z "$gtk_dir"; then # canonicalize slashes. gtk_dir=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'` - gtk_path="$gtk_dir:$gtk_dir:$gtk_path" + gtk_path="$gtk_dir:$gtk_path" fi - AC_PATH_PROGS(glib_config, glib-config,, $gtk_path) - AC_PATH_PROGS(gtk_config, gtk-config,, $gtk_path) + if test ! -z "gnome_dir"; then + # canonicalize slashes. + gnome_dir=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'` + gtk_path="$gnome_dir:$gtk_path" + fi + + AC_PATH_PROGS(glib_config, glib12-config glib-config,, $gtk_path) + AC_PATH_PROGS(gtk_config, gtk12-config gtk-config,, $gtk_path) + + if test "$with_gnome" = yes; then + AC_PATH_PROGS(gnome_config, gnome-config,, $gtk_path) + fi if test -n "$glib_config" -a -n "gtk_config" ; then have_gtk=yes + if test "$with_gnome" = yes -a -n "$gnome_config" ; then + have_gnome=yes + fi fi + if test "$have_gtk" = yes; then AC_CACHE_CHECK([Gtk version number], ac_cv_gtk_version_string, - [ac_cv_gtk_version_string=`$glib_config --version`]) + [ac_cv_gtk_version_string=`$gtk_config --version`]) ac_gtk_version_string=$ac_cv_gtk_version_string # M4 sucks!! changequote(X,Y) @@ -1569,18 +1690,81 @@ if test "$with_gtk" = yes; then if test "$ac_gtk_version" = "unknown" || test "$ac_gtk_version" -lt 1002 then have_gtk=no + have_gnome=no jurassic_gtk=yes fi fi + if test "$have_gtk" = yes; then AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags, [ac_cv_gtk_config_cflags=`$gtk_config --cflags`]) AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs, [ac_cv_gtk_config_libs=`$gtk_config --libs`]) - INCLUDES="$INCLUDES $ac_cv_gtk_config_cflags" - GTK_LIBS="$GTK_LIBS $ac_cv_gtk_config_libs" + fi + ac_gtk_config_cflags=$ac_cv_gtk_config_cflags + ac_gtk_config_libs=$ac_cv_gtk_config_libs + + # Check for Gnome Capplet support. + # + if test "$have_gnome" = yes -a "$have_gtk" = yes; then + gnome_config_libs="capplet gnomeui" + AC_MSG_CHECKING(for Gnome capplet includes) + AC_CACHE_VAL(ac_cv_gnome_config_cflags, + [if ( $gnome_config --cflags $gnome_config_libs 2>&1 >/dev/null | \ + grep Unknown >/dev/null ) ; then + ac_cv_gnome_config_cflags='' + else + ac_cv_gnome_config_cflags=`$gnome_config --cflags $gnome_config_libs` + fi]) + ac_gnome_config_cflags=$ac_cv_gnome_config_cflags + if test "$ac_gnome_config_cflags" = "" ; then + have_gnome=no + AC_MSG_RESULT(no) + else + AC_MSG_RESULT($ac_gnome_config_cflags) + fi + fi + + if test "$have_gnome" = yes -a "$have_gtk" = yes; then + AC_MSG_CHECKING(for Gnome capplet libs) + AC_CACHE_VAL(ac_cv_gnome_config_libs, + [if ( $gnome_config --libs $gnome_config_libs 2>&1 >/dev/null | + grep Unknown >/dev/null ) ; then + ac_cv_gnome_config_libs='' + else + ac_cv_gnome_config_libs=`$gnome_config --libs $gnome_config_libs` + fi]) + ac_gnome_config_libs=$ac_cv_gnome_config_libs + if test "$ac_gnome_config_libs" = "" ; then + have_gnome=no + AC_MSG_RESULT(no) + else + AC_MSG_RESULT($ac_gnome_config_libs) + fi + fi + + GNOME_DATADIR="" + if test "$have_gnome" = yes -a "$have_gtk" = yes; then + GNOME_DATADIR=`$gnome_config --datadir` + fi + + + # If we have Gnome, then override the gtk-config values with + # the gnome-config values. + # + if test "$have_gnome" = yes -a "$have_gtk" = yes; then + ac_gtk_config_cflags=$ac_gnome_config_cflags + ac_gtk_config_libs=$ac_gnome_config_libs + AC_DEFINE(HAVE_CRAPPLET) + fi + + + if test "$have_gtk" = yes; then + INCLUDES="$INCLUDES $ac_gtk_config_cflags" + GTK_LIBS="$GTK_LIBS $ac_gtk_config_libs" AC_DEFINE(HAVE_GTK) fi + fi @@ -1872,28 +2056,6 @@ EOF # AC_CHECK_X_LIB($gl_lib_1, glBindTexture, [AC_DEFINE(HAVE_GLBINDTEXTURE)], [true], $GL_LIBS -lX11 -lXext -lm) - - - # Check whether the `xscreensaver' executable should link against GL. - # See comments in utils/visual-gl.c for why this is sometimes necessary. - # - AC_MSG_CHECKING(whether drastic GL measures must be taken) - case "$host" in - *-sgi*) - AC_MSG_RESULT([yes -- hello, SGI.]) - AC_DEFINE(DAEMON_USE_GL) - SAVER_GL_SRCS='$(UTILS_SRC)/visual-gl.c' - SAVER_GL_OBJS='$(UTILS_BIN)/visual-gl.o' - SAVER_GL_LIBS="$GL_LIBS" - ;; - *) - AC_MSG_RESULT([no -- non-SGI.]) - SAVER_GL_SRCS='' - SAVER_GL_OBJS='' - SAVER_GL_LIBS='' - ;; - esac - fi elif test "$with_gl" != no; then @@ -1922,9 +2084,14 @@ GLE_LIBS="" if test "$with_gle" = yes; then - AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no) - if test "$have_gle" = yes ; then - AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no) + AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no) + if test "$have_gle3" = yes ; then + have_gle=yes; + else + AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no) + if test "$have_gle" = yes ; then + AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no) + fi fi if test "$have_gle" = yes ; then @@ -1948,6 +2115,13 @@ if test "$with_gle" = yes; then # [have_gle=yes; gle_halfassed=no], # [], $GL_LIBS -lX11 -lXext -lm) + # As of GLE 3 this is in libgle, and has changed name to uview_direction! + # *sigh* + if test "$have_gle3" = yes ; then + AC_CHECK_X_LIB(gle, uview_direction, + [have_gle=yes; gle_halfassed=no], + [], $GL_LIBS -lX11 -lXext -lm) + fi # if it wasn't in libgle, then look in libmatrix. if test "$have_gle" = no ; then AC_CHECK_X_LIB(matrix, uview_direction_d, @@ -1959,6 +2133,9 @@ if test "$with_gle" = yes; then if test "$have_gle" = yes ; then AC_DEFINE(HAVE_GLE) + if test "$have_gle3" = yes ; then + AC_DEFINE(HAVE_GLE3) + fi fi elif test "$with_gle" != no; then @@ -2329,6 +2506,7 @@ if test \! -z "$libdir" ; then fi +PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm ALL_DEMO_PROGRAMS= if test "$have_motif" = yes; then PREFERRED_DEMO_PROGRAM=xscreensaver-demo-Xm @@ -2428,6 +2606,7 @@ AC_SUBST(GLE_EXES) AC_SUBST(GLE_MEN) AC_SUBST(GLE_KLUDGE) AC_SUBST(HACKDIR) +AC_SUBST(GNOME_DATADIR) APPDEFAULTS=$ac_x_app_defaults AC_SUBST(APPDEFAULTS) @@ -2468,7 +2647,8 @@ warn() { warnpre if test "$warning" = long ; then echo '' ; fi warning=yes - echo "$warn_prefix $@" + rest="$@" + echo "$warn_prefix $rest" } warnL() { @@ -2476,11 +2656,13 @@ warnL() { warnpre warning=yes if test "$was" != no ; then echo '' ; fi - echo "$warn_prefix $@" + rest="$@" + echo "$warn_prefix $rest" } warn2() { - echo " $@" + rest="$@" + echo " $rest" warning=long } @@ -2564,6 +2746,12 @@ elif test "$with_gtk_req" = yes -a "$have_gtk" = no ; then fi +if test "$with_gnome_req" = yes -a "$have_gnome" = no ; then + warn 'Use of the Gnome Control Panel was requested, but the necessary' + warn2 'headers and/or libraries were not found.' +fi + + if test "$have_motif" = yes -a "$have_lesstif" = yes ; then preferred_lesstif=0.86 @@ -2746,7 +2934,7 @@ do_dir_warning=no # M4 sucks!! changequote(X,Y) rpmv=`(rpm -qv xscreensaver) 2>&- | \ - sed 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-[0-9][0-9]*$/\1/'` + sed 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-.*$/\1/'` changequote([,]) if test \! -z "$rpmv" ; then @@ -2777,15 +2965,15 @@ fi # Warn about egregious GNOME bogosity. # -if (rpm -qv control-center) >&- 2>&- ; then - warning=no - warnL "The Gnome Control Center seems to be installed." - echo "" - warn2 "Note that simply installing this version of xscreensaver" - warn2 "will not cause GNOME to know about the newly-added display" - warn2 "modes -- GNOME is just lame that way. Instead of using the" - warn2 "Control Center, try using the \`xscreensaver-demo' command." -fi +#if (rpm -qv control-center) >&- 2>&- ; then +# warning=no +# warnL "The Gnome Control Center seems to be installed." +# echo "" +# warn2 "Note that simply installing this version of xscreensaver" +# warn2 "will not cause GNOME to know about the newly-added display" +# warn2 "modes -- GNOME is just lame that way. Instead of using the" +# warn2 "Control Center, try using the \`xscreensaver-demo' command." +#fi if test "${bindir}" = "${HACKDIR}" ; then