X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=configure.in;h=7ed621c0a2f8af52092c4214ea61bbca1aef33c0;hb=dba664f31aa87285db4d76cf8c5e66335299703a;hp=85703d44c58b8a817cdce1ad5d0b48343ea8deb4;hpb=f8cf5ac7b2f53510f80a0eaf286a25298be17bfe;p=xscreensaver diff --git a/configure.in b/configure.in index 85703d44..7ed621c0 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 @@ -299,6 +299,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 @@ -313,6 +316,9 @@ 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.]) + # 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. @@ -328,14 +334,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 @@ -405,7 +450,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], @@ -422,16 +467,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)]) ############################################################################### @@ -454,7 +499,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 @@ -466,7 +511,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.) @@ -505,7 +550,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 @@ -556,7 +601,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 @@ -595,7 +640,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 @@ -613,7 +658,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 @@ -633,7 +678,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 @@ -676,7 +721,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 @@ -724,7 +769,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 @@ -752,7 +797,7 @@ 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 \ @@ -811,7 +856,7 @@ 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 @@ -827,7 +872,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;], @@ -841,7 +886,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*) @@ -973,6 +1018,21 @@ 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]) ############################################################################### @@ -983,7 +1043,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" @@ -995,7 +1055,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" @@ -1007,7 +1067,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" @@ -1021,7 +1081,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" @@ -1049,7 +1109,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" @@ -1076,7 +1136,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) ;; @@ -1132,6 +1192,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 @@ -1166,11 +1231,13 @@ 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_ICMP AC_CHECK_ICMPHDR +AC_CHECK_GETIFADDRS AC_CHECK_HEADERS(crypt.h sys/select.h) AC_PROG_PERL @@ -1205,7 +1272,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.]) @@ -2869,6 +2936,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 @@ -3982,6 +4052,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 @@ -4246,10 +4328,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 @@ -4269,7 +4348,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 @@ -4284,8 +4363,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 @@ -4420,7 +4498,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,"