X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=configure.in;h=74235ab5a940c4cb77d8f3a8f04ab2af7c2c5700;hp=7c3e8b4e1546d14a9b837675e8c42c64a4ae7fbd;hb=4361b69d3178d7fc98d0388f9a223af6c2651aba;hpb=ec8d2b32b63649e6d32bdfb306eda062769af823 diff --git a/configure.in b/configure.in index 7c3e8b4e..74235ab5 100644 --- a/configure.in +++ b/configure.in @@ -1,9 +1,9 @@ -# configure.in --- xscreensaver, Copyright (c) 1997-2005 Jamie Zawinski. +# configure.in --- xscreensaver, Copyright (c) 1997-2014 Jamie Zawinski. # AC_PREREQ(2.52) AC_INIT(driver/subprocs.c) -AC_CONFIG_HEADER(config.h) +AC_CONFIG_HEADERS([config.h]) echo "current directory: `pwd`" echo "command line was: $0 $@" @@ -15,7 +15,7 @@ echo "command line was: $0 $@" ############################################################################### AH_TOP([ -/* config.h.in --- xscreensaver, Copyright (c) 1998-2000 Jamie Zawinski. +/* config.h.in --- xscreensaver, Copyright (c) 1991-2014 Jamie Zawinski. * * The best way to set these parameters is by running the included `configure' * script. That examines your system, and generates `config.h' from @@ -169,6 +169,12 @@ AH_TEMPLATE([HAVE_XMU], of X, and if your vendor doesn't ship it, you should report that as a bug.]) +AH_TEMPLATE([HAVE_XUTF8DRAWSTRING], + [Define this if you have the function Xutf8DrawString().]) + +AH_TEMPLATE([HAVE_XFT], + [Define this if you have libXft2.]) + AH_TEMPLATE([HAVE_GL], [Define this if you have OpenGL. Some of the demos require it, so if you don't have it, then those particular demos won't be @@ -190,6 +196,9 @@ AH_TEMPLATE([HAVE_GLE], AH_TEMPLATE([HAVE_GLE3],[Define this if you have the -lgle from GLE version 3]) +AH_TEMPLATE([HAVE_JWZGLES],[Define this to target the OpenGL ES 1.x API + instead of OpenGL 1.3.]) + AH_TEMPLATE([HAVE_XSHM_EXTENSION], [Define this if you have the X Shared Memory Extension.]) @@ -245,6 +254,11 @@ AH_TEMPLATE([HAVE_PAM_FAIL_DELAY], [Define this if you have pam_fail_delay function. see driver/passwd-pam.c.]) +AH_TEMPLATE([PAM_CHECK_ACCOUNT_TYPE], + [Whether PAM should check the result of account modules + when authenticating. Only do this if you have account + configured properly on your system.]) + AH_TEMPLATE([PAM_STRERROR_TWO_ARGS], [Define if you have PAM and pam_strerror() requires two arguments.]) @@ -289,6 +303,9 @@ AH_TEMPLATE([HAVE_ICMPHDR], [Define this if you do pings with a `struct icmphdr' and an `un.echo.id' slot.]) +AH_TEMPLATE([HAVE_GETIFADDRS], + [Define this if you have the getifaddrs() function.]) + AH_TEMPLATE([HAVE_FORKPTY], [Define this if you have the 'forkpty' function: This allows 'phosphor' and 'apple2' to run curses-based @@ -303,11 +320,17 @@ AH_TEMPLATE([GETTIMEOFDAY_TWO_ARGS], AH_TEMPLATE([XPointer], [Define this to void* if you're using X11R4 or earlier.]) +AH_TEMPLATE([HAVE_PTHREAD], + [Define this if your system supports POSIX threads.]) + +AH_TEMPLATE([HAVE_RECORD_ANIM], + [Define this to enable recording of videos.]) + # After checking to see that --srcdir is correct (which AC_INIT does) # check for some random other files that come later in the tar file, # to make sure everything is here. # -for d in driver utils hacks hacks/glx ; do +for d in utils jwxyz hacks hacks/glx driver ; do f=$srcdir/$d/Makefile.in if test \! -r $f ; then echo "" @@ -318,14 +341,53 @@ for d in driver utils hacks hacks/glx ; do fi done +############################################################################### +# +# Query AX_PTHREAD, and figure out which compiler gets used. +# +############################################################################### + +AC_DEFUN([AC_PROG_CC_PTHREAD], + [have_pthread=no + with_pthread_req=unspecified + + # AX_PTHREAD is from the GNU Autoconf Archive. + # https://savannah.gnu.org/projects/autoconf-archive/ + m4_include(ax_pthread.m4) + + # This affects CC, LIBS, and CFLAGS, instead of defining new variables. + + AC_ARG_WITH([pthread], + [ --with-pthread Enables POSIX threads, for SMP support.], + [with_pthread="$withval"; with_pthread_req="$withval"], + [with_pthread=yes]) + + if test "$with_pthread" = yes; then + # AX_PTHREAD might want a different compiler. + AX_PTHREAD( + [if test "$CC" = "$PTHREAD_CC" -o -z "$ac_original_cc"; then + have_pthread=yes + else + ac_prog_cc_no_pthread=yes + fi + ]) + + if test "$have_pthread" = yes; then + AC_DEFINE([HAVE_PTHREAD]) + CC=$PTHREAD_CC + fi + fi +]) + + ############################################################################### # # Function to figure out how to run the compiler. # ############################################################################### -AC_DEFUN(AC_PROG_CC_ANSI, - [AC_PROG_CC +AC_DEFUN([AC_PROG_CC_ANSI], + [AC_REQUIRE([AC_PROG_CC]) if test -z "$GCC"; then # not using GCC @@ -395,7 +457,7 @@ AC_DEFUN(AC_PROG_CC_ANSI, # ############################################################################### -AC_DEFUN(AC_CHECK_GCC_ARG, +AC_DEFUN([AC_CHECK_GCC_ARG], [if test -n "$GCC"; then AC_CACHE_CHECK([whether gcc accepts [$2]], ac_cv_gcc_accepts_[$1], @@ -412,16 +474,16 @@ AC_DEFUN(AC_CHECK_GCC_ARG, fi ]) -AC_DEFUN(AC_NO_LONG_STRING_WARNINGS, +AC_DEFUN([AC_NO_LONG_STRING_WARNINGS], [AC_CHECK_GCC_ARG(no_overlength, -Wno-overlength-strings)]) -AC_DEFUN(AC_NO_MISPLACED_DECLARATIONS, +AC_DEFUN([AC_NO_MISPLACED_DECLARATIONS], [AC_CHECK_GCC_ARG(no_decl_after, -Wdeclaration-after-statement)]) # Need to disable Objective C extensions in ANSI C on MacOS X to work # around an Apple-specific gcc bug. # -AC_DEFUN(AC_NO_OBJECTIVE_C, +AC_DEFUN([AC_NO_OBJECTIVE_C], [AC_CHECK_GCC_ARG(no_cpp_precomp, -no-cpp-precomp)]) ############################################################################### @@ -444,7 +506,7 @@ AC_DEFUN(AC_NO_OBJECTIVE_C, # ############################################################################### -AC_DEFUN(AC_GCC_ACCEPTS_STD, [ +AC_DEFUN([AC_GCC_ACCEPTS_STD], [ case "$host" in *-darwin* ) # Fucking Apple let // comments sneak into OpenGL headers, so @@ -456,7 +518,7 @@ AC_DEFUN(AC_GCC_ACCEPTS_STD, [ esac ]) -AC_DEFUN(AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE, +AC_DEFUN([AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE], [if test -n "$GCC"; then AC_GCC_ACCEPTS_STD AC_MSG_RESULT(Disabling C++ comments in ANSI C code.) @@ -495,7 +557,7 @@ AC_DEFUN(AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE, # ############################################################################### -AC_DEFUN(AC_PROG_INSTALL_DIRS, +AC_DEFUN([AC_PROG_INSTALL_DIRS], [AC_CACHE_CHECK([whether "\${INSTALL} -d" creates intermediate directories], ac_cv_install_d_creates_dirs, [ac_cv_install_d_creates_dirs=no @@ -546,7 +608,7 @@ AC_DEFUN(AC_PROG_INSTALL_DIRS, # ############################################################################### -AC_DEFUN(AC_GETTIMEOFDAY_ARGS, +AC_DEFUN([AC_GETTIMEOFDAY_ARGS], [AC_MSG_CHECKING(how to call gettimeofday) AC_CACHE_VAL(ac_cv_gettimeofday_args, [AC_TRY_COMPILE([#include @@ -585,7 +647,7 @@ changequote(X,Y) perl_version_cmd='print $]' changequote([,]) -AC_DEFUN(AC_PROG_PERL, +AC_DEFUN([AC_PROG_PERL], [AC_PATH_PROGS(PERL, [perl5 perl],,) if test -z "$PERL" ; then PERL_VERSION=0 @@ -603,7 +665,7 @@ AC_DEFUN(AC_PROG_PERL, # ############################################################################### -AC_DEFUN(AC_DEMAND_BC, +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 @@ -623,7 +685,7 @@ AC_DEFUN(AC_DEMAND_BC, # ############################################################################### -AC_DEFUN(AC_CHECK_ICMP, +AC_DEFUN([AC_CHECK_ICMP], [AC_CACHE_CHECK([for struct icmp], ac_cv_have_icmp, [AC_TRY_COMPILE([#include #include @@ -666,7 +728,7 @@ AC_DEFUN(AC_CHECK_ICMP, AC_DEFINE(HAVE_ICMP) fi]) -AC_DEFUN(AC_CHECK_ICMPHDR, +AC_DEFUN([AC_CHECK_ICMPHDR], [AC_CACHE_CHECK([for struct icmphdr], ac_cv_have_icmphdr, [AC_TRY_COMPILE([#include #include @@ -714,7 +776,7 @@ AC_DEFUN(AC_CHECK_ICMPHDR, # Try and find the app-defaults directory. # It sucks that autoconf doesn't do this already... # -AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,[ +AC_DEFUN([AC_PATH_X_APP_DEFAULTS_XMKMF],[ rm -fr conftestdir if mkdir conftestdir; then cd conftestdir 2>/dev/null @@ -742,10 +804,13 @@ AC_ARG_WITH(x-app-defaults,[], [eval ac_x_app_defaults="$withval"]) -AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,[ +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/share/X11/app-defaults \ + \ /usr/X11/lib/app-defaults \ /usr/X11R6/lib/app-defaults \ /usr/X11R6/lib/X11/app-defaults \ @@ -759,6 +824,8 @@ AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,[ /usr/lib/X11R5/app-defaults \ /usr/lib/X11R4/app-defaults \ \ + /etc/X11/app-defaults \ + \ /usr/local/X11/lib/app-defaults \ /usr/local/X11R6/lib/app-defaults \ /usr/local/X11R5/lib/app-defaults \ @@ -801,14 +868,16 @@ AC_DEFUN(AC_PATH_X_APP_DEFAULTS_DIRECT,[ done ]) -AC_DEFUN(AC_PATH_X_APP_DEFAULTS, +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 + [# skip this, it's always wrong these days. + # AC_PATH_X_APP_DEFAULTS_XMKMF if test x"$ac_x_app_defaults" = x; then - AC_PATH_X_APP_DEFAULTS_DIRECT + true AC_PATH_X_APP_DEFAULTS_DIRECT fi if test x"$ac_x_app_defaults" = x; then + /bin/echo -n 'fallback: ' ac_cv_x_app_defaults="/usr/lib/X11/app-defaults" else # Record where we found app-defaults for the cache. @@ -817,7 +886,7 @@ AC_DEFUN(AC_PATH_X_APP_DEFAULTS, eval ac_x_app_defaults="$ac_cv_x_app_defaults"]) -AC_DEFUN(AC_XPOINTER, +AC_DEFUN([AC_XPOINTER], [AC_CACHE_CHECK([for XPointer], ac_cv_xpointer, [AC_TRY_X_COMPILE([#include ], [XPointer foo = (XPointer) 0;], @@ -831,7 +900,7 @@ AC_DEFUN(AC_XPOINTER, # Random special-cases for X on certain pathological OSes. # You know who you are. # -AC_DEFUN(AC_X_RANDOM_PATHS, +AC_DEFUN([AC_X_RANDOM_PATHS], [case "$host" in *-hpux*) @@ -963,7 +1032,33 @@ AC_DEFUN(AC_X_RANDOM_PATHS, ;; esac]) +AC_DEFUN([AC_CHECK_GETIFADDRS], + [AC_CACHE_CHECK([for getifaddrs], ac_cv_have_getifaddrs, + [AC_TRY_COMPILE([#include + #include + #include + #include ], + [struct ifaddrs *ifa; + getifaddrs (&ifa); + ifa->ifa_next = 0; + ifa->ifa_addr->sa_family = 0;], + [ac_cv_have_getifaddrs=yes], + [ac_cv_have_getifaddrs=no])]) + if test "$ac_cv_have_getifaddrs" = yes ; then + AC_DEFINE(HAVE_GETIFADDRS) + fi]) +AC_DEFUN([AC_TYPE_SOCKLEN_T], + [AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t, + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ + #include + #include ]], [[ + socklen_t socklen; + ]])],[ac_cv_type_socklen_t=yes],[ac_cv_type_socklen_t=no])]) + if test "$ac_cv_type_socklen_t" != yes; then + AC_DEFINE(socklen_t, int, + [Define to `int' if or does not define.]) + fi]) ############################################################################### # @@ -973,7 +1068,7 @@ AC_DEFUN(AC_X_RANDOM_PATHS, # Like AC_CHECK_HEADER, but it uses the already-computed -I directories. # -AC_DEFUN(AC_CHECK_X_HEADER, [ +AC_DEFUN([AC_CHECK_X_HEADER], [ ac_save_CPPFLAGS="$CPPFLAGS" if test \! -z "$includedir" ; then CPPFLAGS="$CPPFLAGS -I$includedir" @@ -985,7 +1080,7 @@ AC_DEFUN(AC_CHECK_X_HEADER, [ # Like AC_EGREP_HEADER, but it uses the already-computed -I directories. # -AC_DEFUN(AC_EGREP_X_HEADER, [ +AC_DEFUN([AC_EGREP_X_HEADER], [ ac_save_CPPFLAGS="$CPPFLAGS" if test \! -z "$includedir" ; then CPPFLAGS="$CPPFLAGS -I$includedir" @@ -997,7 +1092,7 @@ AC_DEFUN(AC_EGREP_X_HEADER, [ # Like AC_TRY_COMPILE, but it uses the already-computed -I directories. # -AC_DEFUN(AC_TRY_X_COMPILE, [ +AC_DEFUN([AC_TRY_X_COMPILE], [ ac_save_CPPFLAGS="$CPPFLAGS" if test \! -z "$includedir" ; then CPPFLAGS="$CPPFLAGS -I$includedir" @@ -1011,7 +1106,7 @@ AC_DEFUN(AC_TRY_X_COMPILE, [ # 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_DEFUN([AC_CHECK_X_LIB], [ ac_save_CPPFLAGS="$CPPFLAGS" ac_save_LDFLAGS="$LDFLAGS" # ac_save_LIBS="$LIBS" @@ -1039,7 +1134,7 @@ AC_DEFUN(AC_CHECK_X_LIB, [ # Like AC_TRY_RUN, but it uses the already-computed -I directories. # (But not the -L directories!) # -AC_DEFUN(AC_TRY_X_RUN, [ +AC_DEFUN([AC_TRY_X_RUN], [ ac_save_CPPFLAGS="$CPPFLAGS" if test \! -z "$includedir" ; then CPPFLAGS="$CPPFLAGS -I$includedir" @@ -1066,7 +1161,7 @@ AC_DEFUN(AC_TRY_X_RUN, [ # /DIR/include and /DIR/lib exist, and adds them to $X_CFLAGS and $X_LIBS # as appropriate. # -AC_DEFUN(HANDLE_X_PATH_ARG, [ +AC_DEFUN([HANDLE_X_PATH_ARG], [ case "$[$1]" in yes) ;; no) ;; @@ -1122,6 +1217,11 @@ test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # random compiler setup AC_CANONICAL_HOST + +ac_original_cc=$CC +AC_PROG_CC +AC_PROG_CC_PTHREAD # Needs ac_original_cc. + AC_PROG_CC_ANSI AC_NO_LONG_STRING_WARNINGS AC_NO_MISPLACED_DECLARATIONS @@ -1147,7 +1247,7 @@ INSTALL_SCRIPT='${INSTALL}' # random libc stuff AC_HEADER_STDC -AC_CHECK_HEADERS(unistd.h) +AC_CHECK_HEADERS(unistd.h inttypes.h) AC_TYPE_MODE_T AC_TYPE_PID_T AC_TYPE_SIZE_T @@ -1156,11 +1256,16 @@ AC_HEADER_TIME AC_HEADER_SYS_WAIT AC_HEADER_DIRENT AC_GETTIMEOFDAY_ARGS +AC_SYS_LARGEFILE AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv sbrk) AC_CHECK_FUNCS(sigaction syslog realpath setrlimit) -AC_CHECK_FUNCS(setlocale) +AC_CHECK_FUNCS(setlocale sqrtf) +AC_CHECK_FUNCS(getaddrinfo) +AC_CHECK_MEMBERS([struct sockaddr.sa_len],,, [[#include ]]) AC_CHECK_ICMP AC_CHECK_ICMPHDR +AC_CHECK_GETIFADDRS +AC_TYPE_SOCKLEN_T AC_CHECK_HEADERS(crypt.h sys/select.h) AC_PROG_PERL @@ -1195,7 +1300,7 @@ AC_MSG_RESULT($ac_macosx) # ############################################################################### -AC_PROG_INTLTOOL +IT_PROG_INTLTOOL GETTEXT_PACKAGE=xscreensaver AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [This is the name of the gettext package to use.]) @@ -1204,7 +1309,7 @@ AC_DEFINE_UNQUOTED(PACKAGE, "$GETTEXT_PACKAGE", generated code.]) AC_SUBST(GETTEXT_PACKAGE) -ALL_LINGUAS="ca da de es et fi fr hu it ja ko nb nl pl pt pt_BR ru sk sv vi wa zh_CN zh_TW" +ALL_LINGUAS="da de es et fi fr hu it ja ko nb nl pl pt pt_BR ru sk sv vi wa zh_CN zh_TW" AM_GLIB_GNU_GETTEXT MKINSTALLDIRS="$INSTALL_DIRS" @@ -1925,6 +2030,20 @@ AC_ARG_WITH([pam_service_name], xscreensaver will authenticate as.]), [pam_service_name="$withval"],[pam_service_name="xscreensaver"]) +AC_ARG_ENABLE(pam-check-account-type, + [AC_HELP_STRING([--enable-pam-check-account-type], + [Whether PAM should check the result of account + modules when authenticating. Only do this if you + have account configured properly on your system.])], + [enable_pam_check_account_type="$enableval"],[enable_pam_check_account_type=no]) +if test "$enable_pam_check_account_type" = yes ; then + AC_DEFINE(PAM_CHECK_ACCOUNT_TYPE) + true +elif test "$enable_pam_check_account_type" != no ; then + echo "error: must be yes or no: --enable-pam-check-account-type=$enable_pam_check_account_type" + exit 1 +fi + HANDLE_X_PATH_ARG(with_pam, --with-pam, PAM) if test "$enable_locking" = yes -a "$with_pam" = yes; then @@ -2349,6 +2468,8 @@ esac with_login_manager_req=unspecified default_login_manager_1='gdmflexiserver -ls' default_login_manager_2='kdmctl reserve' +default_login_manager_3='lxdm -c USER_SWITCH' +default_login_manager_4='dm-tool switch-to-greeter' AC_ARG_WITH(login-manager, [ --with-login-manager Put a "New Login" button on the unlock dialog that @@ -2368,23 +2489,46 @@ case "$with_login_manager_req" in ;; yes|unspecified) - # Try both defaults, use the one that exists. + # Try various defaults, use the first one that exists. - set dummy $default_login_manager_1 ; login_manager_tmp=$2 - unset ac_cv_path_login_manager_tmp # don't cache - AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, []) - if test ! -z "$login_manager_tmp" ; then - with_login_manager="$default_login_manager_1" - else + with_login_manager="" + + if test -z "$with_login_manager" ; then + set dummy $default_login_manager_1 ; login_manager_tmp=$2 + unset ac_cv_path_login_manager_tmp # don't cache + AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, []) + if test ! -z "$login_manager_tmp" ; then + with_login_manager="$default_login_manager_1" + fi + fi + + if test -z "$with_login_manager" ; then set dummy $default_login_manager_2 ; login_manager_tmp=$2 unset ac_cv_path_login_manager_tmp # don't cache AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, []) if test ! -z "$login_manager_tmp" ; then with_login_manager="$default_login_manager_2" - else - with_login_manager="" fi fi + + if test -z "$with_login_manager" ; then + set dummy $default_login_manager_3 ; login_manager_tmp=$2 + unset ac_cv_path_login_manager_tmp # don't cache + AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, []) + if test ! -z "$login_manager_tmp" ; then + with_login_manager="$default_login_manager_3" + fi + fi + + if test -z "$with_login_manager" ; then + set dummy $default_login_manager_4 ; login_manager_tmp=$2 + unset ac_cv_path_login_manager_tmp # don't cache + AC_PATH_PROG(login_manager_tmp, $login_manager_tmp, []) + if test ! -z "$login_manager_tmp" ; then + with_login_manager="$default_login_manager_4" + fi + fi + ;; /*) @@ -2520,6 +2664,9 @@ pkg_check_version() { jurassic_gtk=no gtk_halfassed=no +have_gtk_2_22_or_higher=no +COMMENT_DEMO_GLADE2_GTK_2_22_HEAD="" +COMMENT_DEMO_GLADE2_GTK_2_22_TAIL="" if test "$with_gtk" = yes; then have_gtk=no @@ -2570,6 +2717,15 @@ if test "$with_gtk" = yes; then AC_DEFINE(HAVE_XML) fi + if test "$have_gtk" = yes; then + ok="yes" + pkg_check_version gtk+-2.0 2.22 + have_gtk_2_22_or_higher="$ok" + if test "$have_gtk_2_22_or_higher" = yes; then + COMMENT_DEMO_GLADE2_GTK_2_22_HEAD="" + fi + fi fi @@ -2838,6 +2994,9 @@ if test "$with_gl" = yes; then AC_MSG_RESULT(omitting "$libdir" from LDFLAGS) libdir='' + # Looks like as of OSX 10.12, gcc can't do ObjC. + OBJCC="clang -Wall" + fi @@ -2845,6 +3004,9 @@ if test "$with_gl" = yes; then # So if the Mesa headers exist, and -lpthread exists, then always # link -lpthread after the Mesa libs (be they named -lGL or -lMesaGL.) # + # Oftentimes, AX_PTHREAD will bring in -lpthread as well; but that ends + # up before -l(Mesa)GL, instead of after where it would belong. + # if test "$ac_have_mesa_gl" = yes; then AC_CHECK_LIB(pthread, pthread_create, [GL_LIBS="-lpthread"], [],) fi @@ -3067,6 +3229,29 @@ elif test "$with_gle" != no; then fi +############################################################################### +# +# Handle --with-gles +# +############################################################################### + +with_gles_req=unspecified +AC_ARG_WITH(gles, +[ --with-gles Target OpenGL ES 1.x API instead of OpenGL 1.3.], + [with_gles="$withval"; with_gles_req="$withval"],[with_gles=no]) + +HANDLE_X_PATH_ARG(with_gles, --with-gles, JWZGLES) + +if test "$with_gles" = yes; then + have_gles=yes + AC_DEFINE(HAVE_JWZGLES) + JWZGLES_OBJS='$(JWXYZ_BIN)/jwzgles.o' + AC_MSG_RESULT(using OpenGL ES compatiblity shim) +elif test "$with_gles" != no; then + echo "error: must be yes or no: --with-gles=$with_xpm" + exit 1 +fi + ############################################################################### # # Check for -lgdk_pixbuf. @@ -3272,6 +3457,94 @@ if test "$with_jpeg" = yes; then fi +############################################################################### +# +# Check for -lXft +# +############################################################################### + +have_xutf8drawstring=no +AC_CHECK_X_LIB(X11, Xutf8DrawString, + [have_xutf8drawstring=yes], + [true], -lX11 -lXext -lm) +if test "$have_xutf8drawstring" = yes ; then + AC_DEFINE(HAVE_XUTF8DRAWSTRING) +fi + + +have_xft=no +with_xft_req=unspecified +xft_halfassed=no +AC_ARG_WITH(xft, +[ --with-xft Include support for the X Freetype library.], + [with_xft="$withval"; with_xft_req="$withval"], + [with_xft=yes]) + +HANDLE_X_PATH_ARG(with_xft, --with-xft, Xft) + +if test "$with_xft" != yes -a "$with_xft" != no ; then + echo "error: must be yes or no: --with-xft=$with_xft" + exit 1 +fi + +if test "$with_xft" = yes; then + + pkgs='' + ok="yes" + pkg_check_version xft 2.1.0 + have_xft="$ok" + + if test "$have_xft" = yes; then + AC_CACHE_CHECK([for Xft includes], ac_cv_xft_config_cflags, + [ac_cv_xft_config_cflags=`$pkg_config --cflags $pkgs`]) + AC_CACHE_CHECK([for Xft libs], ac_cv_xft_config_libs, + [ac_cv_xft_config_libs=`$pkg_config --libs $pkgs`]) + fi + + ac_xft_config_cflags=$ac_cv_xft_config_cflags + ac_xft_config_libs=$ac_cv_xft_config_libs + + if test "$have_xft" = yes; then + # + # we appear to have Xft; check for headers/libs to be sure. + # + ac_save_xft_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $ac_xft_config_cflags" + + have_xft=no + AC_CHECK_X_HEADER(X11/Xft/Xft.h, [have_xft=yes]) + + CPPFLAGS="$ac_save_xft_CPPFLAGS" + fi + + if test "$have_xft" = yes; then + # we have the headers, now check for the libraries + have_xft=no + xft_halfassed=yes + + AC_MSG_RESULT(checking for Xft usability...) + AC_CHECK_X_LIB(c, XftDrawStringUtf8, [have_xft=yes],, + $ac_xft_config_libs -lX11 -lXext -lm) + fi + + if test "$have_xft" = no; then + AC_MSG_RESULT(checking for Xft usability... no) + fi +fi + +if test "$have_xft" = yes; then + INCLUDES="$INCLUDES $ac_xft_config_cflags" + XFT_LIBS="$ac_xft_config_libs" + XFT_SRCS='' + XFT_OBJS='' + AC_DEFINE(HAVE_XFT) +else + XFT_LIBS='' + XFT_SRCS='$(UTILS_SRC)/xft.c' + XFT_OBJS='$(UTILS_BIN)/xft.o' +fi + + ############################################################################### # # Check for pty support: this allows 'phosphor' and 'apple2' @@ -3280,7 +3553,7 @@ fi ############################################################################### PTY_LIBS= -AC_CHECK_HEADERS(pty.h util.h) +AC_CHECK_HEADERS(pty.h util.h sys/termios.h) AC_CHECK_X_LIB(util, forkpty, [PTY_LIBS="-lutil" ac_have_forkpty=yes @@ -3610,6 +3883,39 @@ elif test "$setuid_hacks" != no; then fi +############################################################################### +# +# Check for --with-record-animation +# +############################################################################### + +record_anim_default=no +record_anim="$record_anim_default" +AC_ARG_WITH(record-animation, +[ --with-record-animation Include code for generating MP4 videos. +], + [record_anim="$withval"], [record_anim="$record_anim_default"]) + +HANDLE_X_PATH_ARG(record_anim, --with-record-animation, record animation) + +if test "$record_anim" = yes; then + true +elif test "$record_anim" != no; then + echo "error: must be yes or no: --with-record-animation=$record_anim" + exit 1 +fi + +if test "$record_anim" = yes; then + if test "$have_gdk_pixbuf" != yes; then + AC_MSG_ERROR(--with-record-animation requires GDK-Pixbuf) + else + AC_MSG_RESULT(enabling --with-record-animation) + AC_DEFINE(HAVE_RECORD_ANIM) + ANIM_OBJS='$(ANIM_OBJS)' + ANIM_LIBS='$(ANIM_LIBS)' + fi +fi + ############################################################################### # # Done testing. Now, set up the various -I and -L variables, @@ -3652,6 +3958,11 @@ if test "$have_pam" = yes; then PASSWD_OBJS="$PASSWD_OBJS \$(PAM_OBJS)" INSTALL_PAM="install-pam" fi +if test "$enable_pam_check_account_type" = yes; then + COMMENT_PAM_CHECK_ACCOUNT="" +else + COMMENT_PAM_CHECK_ACCOUNT="#" +fi if test "$have_passwd_helper" = yes; then PASSWD_SRCS="$PASSWD_SRCS \$(PWHELPER_SRCS)" PASSWD_OBJS="$PASSWD_OBJS \$(PWHELPER_OBJS)" @@ -3800,12 +4111,16 @@ AC_SUBST(INSTALL_DIRS) AC_SUBST(NEED_SETUID) AC_SUBST(INSTALL_PAM) AC_SUBST(HAVE_PAM_FAIL_DELAY) +AC_SUBST(COMMENT_PAM_CHECK_ACCOUNT) AC_SUBST(NEW_LOGIN_COMMAND) AC_SUBST(NEW_LOGIN_COMMAND_P) AC_SUBST(DEFAULT_IMAGES_P) AC_SUBST(DEFAULT_IMAGE_DIRECTORY) AC_SUBST(DEFAULT_TEXT_FILE) AC_SUBST(WITH_BROWSER) +AC_SUBST(COMMENT_DEMO_GLADE2_GTK_2_22_HEAD) +AC_SUBST(COMMENT_DEMO_GLADE2_GTK_2_22_TAIL) + AC_SUBST(OBJCC) AC_SUBST(EXES_OSX) @@ -3817,6 +4132,9 @@ AC_SUBST(PASSWD_OBJS) AC_SUBST(XMU_SRCS) AC_SUBST(XMU_OBJS) AC_SUBST(XMU_LIBS) +AC_SUBST(XFT_SRCS) +AC_SUBST(XFT_OBJS) +AC_SUBST(XFT_LIBS) AC_SUBST(SAVER_GL_SRCS) AC_SUBST(SAVER_GL_OBJS) AC_SUBST(SAVER_GL_LIBS) @@ -3831,6 +4149,7 @@ AC_SUBST(GL_MEN) AC_SUBST(GL_KLUDGE) AC_SUBST(GLE_EXES) AC_SUBST(GLE_KLUDGE) +AC_SUBST(JWZGLES_OBJS) AC_SUBST(GNOME24) AC_SUBST(GNOME22) AC_SUBST(NOGNOME) @@ -3840,6 +4159,8 @@ AC_SUBST(GTK_DATADIR) AC_SUBST(PO_DATADIR) AC_SUBST(HACK_CONF_DIR) AC_SUBST(GTK_EXTRA_OBJS) +AC_SUBST(ANIM_OBJS) +AC_SUBST(ANIM_LIBS) APPDEFAULTS=$ac_x_app_defaults AC_SUBST(APPDEFAULTS) @@ -3851,10 +4172,13 @@ AC_SUBST(PERL) AC_OUTPUT(Makefile utils/Makefile - driver/Makefile + jwxyz/Makefile hacks/Makefile hacks/glx/Makefile po/Makefile.in + driver/Makefile + driver/xscreensaver.pam + driver/xscreensaver-demo.glade2 driver/XScreenSaver.ad) ############################################################################### @@ -3913,6 +4237,18 @@ noteL() { } +# ac_prog_cc_no_pthread normally only happens on AIX, because according +# to AX_PTHREAD, AIX needs CC=xlc_r or CC=cc_r to do threads. +# If CC is specified, it takes precedence over --with-pthread. +if test "$ac_prog_cc_no_pthread" ; then + warnL "You requested $ac_original_cc for the C compiler, but it doesn't" + warn2 "support POSIX threads." + echo "" + warn2 "If you have multiple CPU cores, try CC=$PTHREAD_CC." +elif test "$with_pthread_req" = yes -a "$have_pthread" = no ; then + warn 'POSIX threads were requested, but were not found.' +fi + if test "$with_sgi_req" = yes -a "$have_sgi" = no ; then warn 'The SGI saver extension was requested, but was not found.' fi @@ -4135,6 +4471,28 @@ if test "$have_jpeg" = no ; then fi +if test "$have_xft" = no ; then + if test "$with_xft_req" = yes ; then + warnL "Use of libXft was requested, but it was not found." + elif test "$with_xft_req" = no ; then + noteL 'The Xft library is not being used.' + else + noteL "The Xft library was not found." + fi + + if test "$xft_halfassed" = yes ; then + echo '' + warn2 'More specifically, we found the headers, but not the' + warn2 'libraries; so either Xft is half-installed on this' + warn2 "system, or something else went wrong. The \`config.log'" + warn2 'file might contain some clues.' + echo '' + fi + + warn2 "This means that fonts won't be anti-aliased." +fi + + if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then preferred_mesagl=3.4 mgv="$ac_mesagl_version_string" @@ -4177,10 +4535,7 @@ if test "$have_gl" = no ; then echo '' warn2 'Those demos which use 3D will not be built or installed.' warn2 'You might want to consider installing OpenGL and' - warn2 "re-running configure. If your vendor doesn't ship" - warn2 'their own implementation of OpenGL, you can get a free' - warn2 'version at . For general OpenGL' - warn2 'info, see .' + warn2 're-running configure.' fi @@ -4200,7 +4555,7 @@ if test "$have_gl" = yes -a "$have_gle" = no ; then warn2 'library is not.' else noteL 'The OpenGL Library was found, but the GLE (GL Extrusion)' - warn2 'was not.' + warn2 'library was not.' fi if test "$gle_halfassed" = yes ; then @@ -4215,8 +4570,7 @@ if test "$have_gl" = yes -a "$have_gle" = no ; then warn2 'Some of the OpenGL (3D) demos (those that depend on GLE)' warn2 'will not be built or installed. You might want to consider' warn2 'installing GLE and re-running configure. You can find the' - warn2 'GLE library at . For general' - warn2 'OpenGL info, see .' + warn2 'GLE library at ' fi fi @@ -4351,7 +4705,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 (190+ different executables) will" + echo " The various graphics demos (200+ different executables) will" echo " be installed in ${HACKDIR}/." echo "" echo " If you would prefer the demos to be installed elsewhere,"