X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=configure.in;h=e6d3cdc7232c70e085d2215302ef4d0ff22b3a0b;hb=e4fa2ac140f7bc56571373a7b7eb585fa4500e38;hp=51c8e52673fce78ad435628803690df56fb31376;hpb=bbd0773f2adde4927a6196361d4061e70bf48cd9;p=xscreensaver diff --git a/configure.in b/configure.in index 51c8e526..e6d3cdc7 100644 --- a/configure.in +++ b/configure.in @@ -56,6 +56,8 @@ AC_DEFUN(AC_PROG_CC_ANSI, esac fi + OBJCC="$CC" + AC_MSG_CHECKING([whether the compiler works on ANSI C]) AC_TRY_RUN([ main(int ac, char **av) { return 0; } ], AC_MSG_RESULT(yes), @@ -66,6 +68,7 @@ AC_DEFUN(AC_PROG_CC_ANSI, if test -n "$GCC"; then AC_MSG_RESULT(Turning on gcc compiler warnings.) CC="$CC -pedantic -Wall -Wstrict-prototypes -Wnested-externs" + OBJCC="$OBJCC -Wall" # supposedly gcc 3.4 will have "-Wdeclaration-after-statement" # and then perhaps we can do without -pedantic? else @@ -827,7 +830,6 @@ AC_HEADER_SYS_WAIT AC_HEADER_DIRENT AC_GETTIMEOFDAY_ARGS AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv sbrk) - AC_CHECK_FUNCS(sigaction syslog realpath setrlimit) AC_CHECK_ICMP AC_CHECK_ICMPHDR @@ -849,6 +851,16 @@ AC_PATH_X_APP_DEFAULTS AC_X_RANDOM_PATHS AC_XPOINTER +AC_MSG_CHECKING(whether this is MacOS X) + ac_macosx=no + case "$host" in + *-apple-darwin* ) + ac_macosx=yes + ;; + esac +AC_MSG_RESULT($ac_macosx) + + ############################################################################### # @@ -864,6 +876,7 @@ AC_SUBST(GETTEXT_PACKAGE) ALL_LINGUAS="ca da de es et fi fr hu it ja ko nl no pl pt pt_BR ru sk sv vi wa zh_CN zh_TW" AM_GLIB_GNU_GETTEXT +MKINSTALLDIRS="$INSTALL_DIRS" ############################################################################### @@ -1246,12 +1259,12 @@ if test "$with_xinerama" = yes; then # first look in -lXext have_xinerama=no - AC_CHECK_X_LIB(Xext, XineramaQueryExtension, [have_xinerama=yes], [true], + AC_CHECK_X_LIB(Xext, XineramaQueryScreens, [have_xinerama=yes], [true], -lXext -lX11) # if that failed, look in -lXinerama (this is where it is in XFree86 4.1.) if test "$have_xinerama" = no; then - AC_CHECK_X_LIB(Xinerama, XineramaQueryExtension, + AC_CHECK_X_LIB(Xinerama, XineramaQueryScreens, [have_xinerama=yes; SAVER_LIBS="$SAVER_LIBS -lXinerama"], [true], -lXext -lX11) fi @@ -1459,6 +1472,15 @@ else exit 1 fi +# We can't lock on MacOS X, so don't even bother compiling in support for it. +# +if test "$ac_macosx" = yes; then + if test "$enable_locking" = yes; then + AC_MSG_RESULT(locking disabled: it doesn't work on MacOS X) + enable_locking=no + AC_DEFINE(NO_LOCKING) + fi +fi ############################################################################### @@ -1542,6 +1564,13 @@ if test "$enable_locking" = yes -a "$with_pam" = yes; then # those are in libc. On Linux and Solaris, they're in libdl. AC_CHECK_LIB(dl, dlopen, [PASSWD_LIBS="${PASSWD_LIBS} -ldl"]) + # On Linux, sigtimedwait() is in libc; on Solaris, it's in librt. + have_timedwait=no + AC_CHECK_LIB(c, sigtimedwait, [have_timedwait=yes]) + if test "$have_timedwait" = no ; then + AC_CHECK_LIB(rt, sigtimedwait, [PASSWD_LIBS="${PASSWD_LIBS} -lrt"]) + fi + AC_MSG_CHECKING(how to call pam_strerror) AC_CACHE_VAL(ac_cv_pam_strerror_args, [AC_TRY_COMPILE([#include @@ -1867,6 +1896,44 @@ elif test "$have_shadow" = yes ; then fi +############################################################################### +# +# Check for external password helper +# On SuSE, instead of having xscreensaver be a setuid program, they +# fork an external program that takes the password on stdin, and +# returns true if that password is a valid one. Then only that +# smaller program needs to be setuid. +# +# (Note that this external program is not a GUI: the GUI is still +# all in xscreensaver itself; the external program just does auth.) +# +############################################################################### + +have_passwd_helper=no +with_passwd_helper_req=unspecified + +AC_ARG_WITH(passwd-helper, +[ --with-passwd-helper Include support for an external password + verification helper program.], + [with_passwd_helper="$withval"; with_passwd_helper_req="$withval"],[with_passwd_helper=no]) +# no HANDLE_X_PATH_ARG for this one + +if test "$enable_locking" = no ; then + with_passwd_helper_req=no + with_passwd_helper=no +fi + +case "$with_passwd_helper" in + ""|no) : ;; + /*) + AC_DEFINE_UNQUOTED(PASSWD_HELPER_PROGRAM, "$with_passwd_helper") + have_passwd_helper=yes;; + *) + echo "error: --with-passwd-helper needs full pathname of helper (not '$with_passwd_helper')." >&2 + exit 1 +esac + + ############################################################################### # # Check for -lXm. @@ -3117,6 +3184,25 @@ if test "$with_jpeg" = yes; then fi +############################################################################### +# +# Check for pty support for 'phosphor' +# +############################################################################### + +PTY_LIBS= +have_ptys=no +AC_CHECK_X_HEADER(pty.h, [have_ptys=yes]) +if test "$have_ptys" = yes; then + # we have the header, now check for the library + have_ptys=no + AC_CHECK_X_LIB(util, forkpty, + [have_ptys=yes + PTY_LIBS="-lutil" + AC_DEFINE(HAVE_FORKPTY)]) +fi + + ############################################################################### # # Check for the XSHM server extension. @@ -3394,6 +3480,10 @@ if test "$have_pam" = yes; then PASSWD_SRCS="$PASSWD_SRCS \$(PAM_SRCS)" PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)" INSTALL_PAM="install-pam" +fi +if test "$have_passwd_helper" = yes; then + PASSWD_SRCS="$PASSWD_SRCS \$(PWHELPER_SRCS)" + PASSWD_OBJS="$PASSWD_OBJS \$(PWHELPER_OBJS)" fi PASSWD_SRCS="$PASSWD_SRCS \$(PWENT_SRCS)" PASSWD_OBJS="$PASSWD_OBJS \$(PWENT_OBJS)" @@ -3407,6 +3497,17 @@ else LOCK_OBJS='$(NOLOCK_OBJS_1)' fi +if test "$ac_macosx" = yes; then + EXES_OSX='$(EXES_OSX)' + SCRIPTS_OSX='$(SCRIPTS_OSX)' + MEN_OSX='$(MEN_OSX)' +else + EXES_OSX= + SCRIPTS_OSX= + MEN_OSX= +fi + + INSTALL_SETUID='$(INSTALL_PROGRAM) $(SUID_FLAGS)' if test "$need_setuid" = yes; then @@ -3560,6 +3661,7 @@ AC_SUBST(XML_LIBS) AC_SUBST(JPEG_LIBS) AC_SUBST(HACK_LIBS) AC_SUBST(XPM_LIBS) +AC_SUBST(PTY_LIBS) AC_SUBST(GL_LIBS) AC_SUBST(GLE_LIBS) AC_SUBST(XDPMS_LIBS) @@ -3570,6 +3672,11 @@ AC_SUBST(INSTALL_DIRS) AC_SUBST(NEED_SETUID) AC_SUBST(INSTALL_PAM) +AC_SUBST(OBJCC) +AC_SUBST(EXES_OSX) +AC_SUBST(SCRIPTS_OSX) +AC_SUBST(MEN_OSX) + AC_SUBST(PASSWD_SRCS) AC_SUBST(PASSWD_OBJS) AC_SUBST(XMU_SRCS) @@ -3761,10 +3868,12 @@ fi if test "$gtk2_halfassed" != no ; then warnL "GTK version $gtk2_halfassed was found, but at least one supporting" warn2 "library ($gtk2_halfassed_lib) was not, so GTK 2.x can't be used." - v="$ac_gtk_version_string" - warn2 "GTK $v is also installed, so it will be used instead." - warn2 "Please read the above output and the \`config.log' file" - warn2 "for more details." + if test "$have_gtk" = yes ; then + v="$ac_gtk_version_string" + warn2 "GTK $v is also installed, so it will be used instead." + warn2 "Please read the above output and the \`config.log' file" + warn2 "for more details." + fi fi @@ -4113,7 +4222,7 @@ if test "$do_dir_warning" = yes; then echo ' "xscreensaver-demo", and "xscreensaver-command" executables' echo " will be installed in ${bindir}/." echo "" - echo " The various graphics demos (160+ different executables) will" + echo " The various graphics demos (175+ different executables) will" echo " be installed in ${HACKDIR}/." echo "" echo " If you would prefer the demos to be installed elsewhere,"