X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=configure.in;h=ae0e4930b02784d5a353e2d29cb396b1db07aa08;hb=3f9592851ce4ed76a9979bfdd6ec7dc5c457e183;hp=68a89a58dff7c62e6bb81e473fcc44d9970d7b65;hpb=8eb2873d7054e705c4e83f22d18c40946a9e2529;p=xscreensaver diff --git a/configure.in b/configure.in index 68a89a58..ae0e4930 100644 --- a/configure.in +++ b/configure.in @@ -1,6 +1,7 @@ # configure.in --- xscreensaver, Copyright (c) 1997-2000 Jamie Zawinski. # +AC_PREREQ(2.53) AC_INIT(driver/subprocs.c) AC_CONFIG_HEADER(config.h) @@ -23,7 +24,6 @@ for d in driver utils hacks hacks/glx ; do fi done - ############################################################################### # # Function to figure out how to run the compiler. @@ -98,7 +98,7 @@ AC_DEFUN(AC_GCC_ACCEPTS_STD, [if test -n "$GCC"; then AC_CACHE_CHECK([whether gcc accepts -std], ac_cv_gcc_accepts_std, - [if ( gcc -E -std=c89 - &1 >/dev/null | \ + [if ( gcc -E -std=c89 - /dev/null 2>&1 | \ grep unrecognized >/dev/null ); then ac_cv_gcc_accepts_std=no else @@ -152,12 +152,12 @@ AC_DEFUN(AC_PROG_INSTALL_DIRS, [ac_cv_install_d_creates_dirs=no rm -rf conftestdir if mkdir conftestdir; then - cd conftestdir >&- - ${INSTALL} -d `pwd`/dir1/dir2 >&- 2>&- + cd conftestdir 2>/dev/null + ${INSTALL} -d `pwd`/dir1/dir2 >/dev/null 2>&1 if test -d dir1/dir2/. ; then ac_cv_install_d_creates_dirs=yes fi - cd .. >&- + cd .. 2>/dev/null rm -rf conftestdir fi ]) @@ -168,12 +168,12 @@ AC_DEFUN(AC_PROG_INSTALL_DIRS, [ac_cv_mkdir_p_creates_dirs=no rm -rf conftestdir if mkdir conftestdir; then - cd conftestdir >&- - mkdir -p dir1/dir2 >&- 2>&- + cd conftestdir 2>/dev/null + mkdir -p dir1/dir2 >/dev/null 2>&1 if test -d dir1/dir2/. ; then ac_cv_mkdir_p_creates_dirs=yes fi - cd .. >&- + cd .. 2>/dev/null rm -rf conftestdir fi ]) @@ -368,17 +368,17 @@ AC_DEFUN(AC_CHECK_ICMPHDR, AC_DEFUN(AC_PATH_X_APP_DEFAULTS_XMKMF,[ rm -fr conftestdir if mkdir conftestdir; then - cd conftestdir >&- + cd conftestdir 2>/dev/null # Make sure to not put "make" in the Imakefile rules, since we grep it out. cat > Imakefile <<'EOF' acfindx: @echo 'ac_x_app_defaults="${XAPPLOADDIR}"' EOF - if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then + if (xmkmf) >/dev/null 2>&1 && test -f Makefile; then # GNU make sometimes prints "make[1]: Entering...", which'd confuse us. eval `${MAKE-make} acfindx 2>/dev/null | grep -v make` fi - cd .. >&- + cd .. 2>/dev/null rm -fr conftestdir fi]) @@ -609,7 +609,7 @@ AC_DEFUN(AC_CHECK_X_HEADER, [ CPPFLAGS="$CPPFLAGS -I$includedir" fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" - AC_CHECK_HEADER([$1], [$2]) + AC_CHECK_HEADER([$1],[$2],[$3],[$4]) CPPFLAGS="$ac_save_CPPFLAGS"]) # Like AC_EGREP_HEADER, but it uses the already-computed -I directories. @@ -746,6 +746,7 @@ AC_NO_CPLUSPLUS_COMMENTS_IN_C_CODE AC_PROG_CPP AC_C_CONST AC_C_INLINE +AC_EXEEXT AC_DEMAND_BC # stuff for Makefiles @@ -771,7 +772,7 @@ AC_HEADER_TIME AC_HEADER_SYS_WAIT AC_HEADER_DIRENT AC_GETTIMEOFDAY_ARGS -AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv) +AC_CHECK_FUNCS(select fcntl uname nice setpriority getcwd getwd putenv sbrk) AC_CHECK_FUNCS(sigaction syslog realpath setrlimit) AC_CHECK_ICMP @@ -795,6 +796,21 @@ AC_X_RANDOM_PATHS AC_XPOINTER +############################################################################### +# +# Gettext support +# +############################################################################### + +AC_PROG_INTLTOOL +GETTEXT_PACKAGE=xscreensaver +AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE") +AC_DEFINE_UNQUOTED(PACKAGE, "$GETTEXT_PACKAGE") +AC_SUBST(GETTEXT_PACKAGE) + +ALL_LINGUAS="ca de et fr it ko pl pt sv da es fi hu ja no pt pt_BR ru wa" +AM_GLIB_GNU_GETTEXT + ############################################################################### # @@ -803,7 +819,10 @@ AC_XPOINTER ############################################################################### have_xmu=no -AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes]) +AC_CHECK_X_HEADER(X11/Xmu/Error.h, [have_xmu=yes],, + [#include + #include + #include ]) if test "$have_xmu" = no ; then XMU_SRCS='$(UTILS_SRC)/xmu.c' XMU_OBJS='$(UTILS_BIN)/xmu.o' @@ -871,8 +890,7 @@ AC_ARG_WITH(hackdir,[ Installation options: --with-hackdir=DIR Where to install the hundreds of demo executables. - Default: \`PREFIX/lib/xscreensaver/' -], + Default: \`PREFIX/lib/xscreensaver/'], [with_hackdir="$withval"; with_hackdir_req="$withval"],[with_hackdir=yes]) if test x"$with_hackdir" = xyes; then @@ -934,16 +952,13 @@ else # there must be a better way than this... if test -z "`echo $with_configdir | sed 's@^/.*@@'`" ; then # absolute path - CONFIGDIR=$with_configdir + HACK_CONF_DIR=$with_configdir else # relative path - CONFIGDIR="\${exec_prefix}$with_configdir" + HACK_CONF_DIR="\${exec_prefix}$with_configdir" fi fi -# canonicalize slashes. -CONFIGDIR=`echo "${CONFIGDIR}" | sed 's@/$@@;s@//*@/@g'` - @@ -977,7 +992,8 @@ HANDLE_X_PATH_ARG(with_sgi, --with-sgi-ext, SGI SCREEN_SAVER) if test "$with_sgi" = yes; then AC_CHECK_X_HEADER(X11/extensions/XScreenSaver.h, [have_sgi=yes - AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)]) + AC_DEFINE(HAVE_SGI_SAVER_EXTENSION)],, + [#include ]) elif test "$with_sgi" != no; then echo "error: must be yes or no: --with-sgi-ext=$with_sgi" @@ -1000,7 +1016,8 @@ AC_ARG_WITH(mit-ext, HANDLE_X_PATH_ARG(with_mit, --with-mit-ext, MIT-SCREEN-SAVER) if test "$with_mit" = yes; then - AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes]) + AC_CHECK_X_HEADER(X11/extensions/scrnsaver.h, [have_mit=yes],, + [#include ]) # Now check to see if it's really in the library; XF86Free-3.3 ships # scrnsaver.h, but doesn't include the code in libXext.a, the idiots! @@ -1055,7 +1072,8 @@ HANDLE_X_PATH_ARG(with_xidle, --with-xidle-ext, XIDLE) if test "$with_xidle" = yes; then AC_CHECK_X_HEADER(X11/extensions/xidle.h, [have_xidle=yes - AC_DEFINE(HAVE_XIDLE_EXTENSION)]) + AC_DEFINE(HAVE_XIDLE_EXTENSION)],, + [#include ]) elif test "$with_xidle" != no; then echo "error: must be yes or no: --with-xidle-ext=$with_xidle" exit 1 @@ -1079,7 +1097,8 @@ HANDLE_X_PATH_ARG(with_sgivc, --with-sgivc-ext, SGI-VIDEO-CONTROL) if test "$with_sgivc" = yes; then # first check for XSGIvc.h - AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes]) + AC_CHECK_X_HEADER(X11/extensions/XSGIvc.h, [have_sgivc=yes],, + [#include ]) # if that succeeded, then check for the -lXsgivc if test "$have_sgivc" = yes; then @@ -1117,7 +1136,8 @@ HANDLE_X_PATH_ARG(with_dpms, --with-dpms-ext, DPMS) if test "$with_dpms" = yes; then # first check for dpms.h - AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes]) + AC_CHECK_X_HEADER(X11/extensions/dpms.h, [have_dpms=yes],, + [#include ]) # if that succeeded, then check for the DPMS code in the libraries if test "$have_dpms" = yes; then @@ -1163,7 +1183,8 @@ HANDLE_X_PATH_ARG(with_xinerama, --with-xinerama-ext, XINERAMA) if test "$with_xinerama" = yes; then # first check for Xinerama.h - AC_CHECK_X_HEADER(X11/extensions/Xinerama.h, [have_xinerama=yes]) + AC_CHECK_X_HEADER(X11/extensions/Xinerama.h, [have_xinerama=yes],, + [#include ]) # if that succeeded, then check for the XINERAMA code in the libraries if test "$have_xinerama" = yes; then @@ -1210,7 +1231,8 @@ HANDLE_X_PATH_ARG(with_xf86vmode, --with-xf86vmode-ext, xf86vmode) if test "$with_xf86vmode" = yes; then # first check for xf86vmode.h - AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes]) + AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86vmode=yes],, + [#include ]) # if that succeeded, then check for the -lXxf86vm if test "$have_xf86vmode" = yes; then @@ -1253,7 +1275,8 @@ if test "$with_xf86gamma" = yes; then if test "$have_xf86vmode" = yes; then have_xf86gamma=yes else - AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86gamma=yes]) + AC_CHECK_X_HEADER(X11/extensions/xf86vmode.h, [have_xf86gamma=yes],, + [#include ]) fi # if that succeeded, then check for the -lXxf86vm @@ -1516,8 +1539,8 @@ if test "$enable_locking" = yes -a "$with_kerberos" = yes; then # (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" + # from Tim Showalter for FreeBSD 4.2 + PASSWD_LIBS="$PASSWD_LIBS -lkrb -ldes -lcom_err" fi if test "$have_kerberos" = yes ; then @@ -1771,12 +1794,18 @@ if test "$with_motif" = yes; then AC_CHECK_X_HEADER(Xm/Xm.h, [have_motif=yes AC_DEFINE(HAVE_MOTIF) - MOTIF_LIBS="$MOTIF_LIBS -lXm"]) + MOTIF_LIBS="$MOTIF_LIBS -lXm"],, + [#include + #include + #include ]) fi if test "$have_motif" = yes; then - AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)]) + AC_CHECK_X_HEADER(Xm/ComboBox.h, [AC_DEFINE(HAVE_XMCOMBOBOX)],, + [#include + #include + #include ]) fi @@ -1839,21 +1868,21 @@ jurassic_gtk=no if test "$with_gtk" = yes; then have_gtk=no - # if the user specified --with-gtk=/foo/ then look in /foo/bin/ - # for glib-config and gtk-config. + # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then + # look in /foo/bin/ for glib-config, gtk-config, and gnome-config. # gtk_path="$PATH" if test ! -z "$gtk_dir"; then # canonicalize slashes. - gtk_dir=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'` - gtk_path="$gtk_dir:$gtk_path" + foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'` + gtk_path="$foo:$gtk_path" fi - if test ! -z "gnome_dir"; then + if test ! -z "$gnome_dir"; then # canonicalize slashes. - gnome_dir=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'` - gtk_path="$gnome_dir:$gtk_path" + foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'` + gtk_path="$foo:$gtk_path" fi AC_PATH_PROGS(glib_config, glib12-config glib-config,, $gtk_path) @@ -1863,7 +1892,7 @@ if test "$with_gtk" = yes; then AC_PATH_PROGS(gnome_config, gnome-config,, $gtk_path) fi - if test -n "$glib_config" -a -n "gtk_config" ; then + 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 @@ -1904,10 +1933,10 @@ if test "$with_gtk" = yes; then # Check for Gnome Capplet support. # if test "$have_gnome" = yes -a "$have_gtk" = yes; then - gnome_config_libs="gtk capplet gnomeui xml" + gnome_config_libs="gtk capplet gnomeui gdk_pixbuf" 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 | \ + [if ( $gnome_config --cflags $gnome_config_libs >/dev/null 2>&1 | \ grep Unknown >/dev/null ) ; then ac_cv_gnome_config_cflags='' else @@ -1925,7 +1954,7 @@ if test "$with_gtk" = yes; then 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 | + [if ( $gnome_config --libs $gnome_config_libs >/dev/null 2>&1 | grep Unknown >/dev/null ) ; then ac_cv_gnome_config_libs='' else @@ -1953,6 +1982,11 @@ if test "$with_gtk" = yes; then ac_gtk_config_cflags=$ac_gnome_config_cflags ac_gtk_config_libs=$ac_gnome_config_libs AC_DEFINE(HAVE_CRAPPLET) + + # check for this function that was not in libcapplet 1.2. + AC_CHECK_X_LIB(capplet, capplet_widget_changes_are_immediate, + [AC_DEFINE(HAVE_CRAPPLET_IMMEDIATE)], [true], + $ac_gnome_config_libs) fi @@ -1976,17 +2010,29 @@ fi ############################################################################### # -# Check for -lxml (if we have Gtk) +# Check for -lxml # ############################################################################### have_xml=no with_xml_req=unspecified +xml_halfassed=no AC_ARG_WITH(xml, [ --with-xml The XML toolkit is needed for some parts of the Gtk interface.], [with_xml="$withval"; with_xml_req="$withval"],[with_xml=yes]) +# if --with-xml=/directory/ was specified, remember that directory so that +# we can also look for the `xml-config' program in that directory. +case "$with_xml" in + /*) + xml_dir="$with_xml" + ;; + *) + xml_dir="" + ;; +esac + HANDLE_X_PATH_ARG(with_xml, --with-xml, XML) if test "$with_xml" != yes -a "$with_xml" != no ; then @@ -1994,33 +2040,90 @@ if test "$with_xml" != yes -a "$with_xml" != no ; then exit 1 fi -if test "$have_gtk" != yes; then - # don't bother if no GTK - with_xml=no -fi - if test "$with_xml" = yes; then have_xml=no + have_old_xml=no + + # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then + # look in /foo/bin/ for for xml-config. + # + xml_path="$PATH" + + if test ! -z "$gtk_dir"; then + # canonicalize slashes. + foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'` + xml_path="$foo:$xml_path" + fi + + if test ! -z "$gnome_dir"; then + # canonicalize slashes. + foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'` + xml_path="$foo:$xml_path" + fi + + AC_PATH_PROGS(xml_config, xml2-config xml-config,, $xml_path) + + # If we found the xml-config program, run it to get flags. + # + if test -n "$xml_config" ; then + AC_CACHE_CHECK([for XML includes], ac_cv_xml_config_cflags, + [ac_cv_xml_config_cflags=`$xml_config --cflags`]) + AC_CACHE_CHECK([for XML libs], ac_cv_xml_config_libs, + [ac_cv_xml_config_libs=`$xml_config --libs`]) + ac_xml_config_cflags=$ac_cv_xml_config_cflags + ac_xml_config_libs=$ac_cv_xml_config_libs + fi + + ac_save_xml_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $ac_xml_config_cflags" + + # first try which is the new way... + # + AC_CHECK_X_HEADER(libxml/xmlIO.h, [have_xml=yes],, + [#include ]) + + # if that didn't work, then try just which is the old way... + # + if test "$have_xml" = no; then + AC_CHECK_X_HEADER(xmlIO.h, [have_xml=yes; have_old_xml=yes],, + [#include ]) + fi - # the XML stuff is likely to be in GTK paths. - ac_save_X_CFLAGS="$X_CFLAGS" - ac_save_X_LIBS="$X_LIBS" - X_CFLAGS="$X_CFLAGS $ac_gtk_config_cflags" - X_LIBS="$X_LIBS $ac_gtk_config_libs" + CPPFLAGS="$ac_save_xml_CPPFLAGS" - AC_CHECK_X_HEADER(xmlIO.h, [have_xml=yes]) + have_zlib=no + if test "$have_xml" = yes; then + # we have the XML headers; now make sure zlib is around. + # yes, it's stupid we have to do this too, but there is + # dependency screwage in Gnome. + AC_CHECK_X_LIB(z, zlibVersion, [have_zlib=yes]) + if test "$have_zlib" = no; then + xml_halfassed=yes + have_xml=no + fi + fi if test "$have_xml" = yes; then # we have the header, now check for the library have_xml=no + xml_halfassed=yes AC_CHECK_X_LIB(xml, xmlParseChunk, [have_xml=yes - XML_LIBS="-lxml" - AC_DEFINE(HAVE_XML)]) + xml_halfassed=no + XML_LIBS="$ac_xml_config_libs" + AC_DEFINE(HAVE_XML)], + [true], + $ac_xml_config_libs) fi - X_CFLAGS="$ac_save_X_CFLAGS" - X_LIBS="$ac_save_X_LIBS" + if test "$have_xml" = yes; then + INCLUDES="$INCLUDES $ac_xml_config_cflags" + GTK_LIBS="$GTK_LIBS $ac_xml_config_libs" + AC_DEFINE(HAVE_XML) + if test "$have_old_xml" = yes; then + AC_DEFINE(HAVE_OLD_XML_HEADERS) + fi + fi fi @@ -2191,7 +2294,8 @@ ac_mesagl_version_string=unknown if test "$with_gl" = yes; then AC_CHECK_X_HEADER(GL/gl.h, have_gl=yes, have_gl=no) if test "$have_gl" = yes ; then - AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no) + AC_CHECK_X_HEADER(GL/glx.h, have_gl=yes, have_gl=no, + [#include ]) fi # If we have the headers, try and figure out which vendor it's from. @@ -2283,11 +2387,21 @@ EOF fi CPPFLAGS="$CPPFLAGS $X_CFLAGS" - # M4 sucks!! - changequote(X,Y) +# With autoconf 2.13 we could do this: +# +# changequote(X,Y) +# mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | sed -n \ +# 's/^configure:.*\([0-9][0-9]*\).*\([0-9][0-9]*\).*$/\1.\2/p'` +# changequote([,]) +# +# but with autoconf 2.52+ (m4 1.4) that causes an error: +# m4: ERROR: Recursion limit of 1024 exceeded, use -L to change it +# +# So, we need to use the autoconf line-noise macros @<:@ for [ and @:>@ for ] +# mglv=`(eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | sed -n \ - 's/^configure:.*\([0-9][0-9]*\).*\([0-9][0-9]*\).*$/\1.\2/p'` - changequote([,]) + 's/^configure:.*\(@<:@0-9@:>@@<:@0-9@:>@*\).*\(@<:@0-9@:>@@<:@0-9@:>@*\).*$/\1.\2/p'` + rm -f conftest.$ac_ext @@ -2346,13 +2460,16 @@ GLE_LIBS="" if test "$with_gle" = yes; then - AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no) + AC_CHECK_X_HEADER(GL/gle.h, have_gle3=yes, have_gle3=no, + [#include ]) if test "$have_gle3" = yes ; then have_gle=yes; else - AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no) + AC_CHECK_X_HEADER(GL/gutil.h, have_gle=yes, have_gle=no, + [#include ]) if test "$have_gle" = yes ; then - AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no) + AC_CHECK_X_HEADER(GL/tube.h, have_gle=yes, have_gle=no, + [#include ]) fi fi @@ -2426,7 +2543,8 @@ if test "$with_xpm" = yes; then AC_CHECK_X_HEADER(X11/xpm.h, [have_xpm=yes AC_DEFINE(HAVE_XPM) - XPM_LIBS="-lXpm"]) + XPM_LIBS="-lXpm"],, + [#include ]) elif test "$with_xpm" != no; then echo "error: must be yes or no: --with-xpm=$with_xpm" exit 1 @@ -2442,6 +2560,153 @@ if test "$have_motif" = yes -a "$have_xpm" = yes ; then fi +############################################################################### +# +# Check for -lgdk_pixbuf. +# +############################################################################### + +have_gdk_pixbuf=no +with_gdk_pixbuf_req=unspecified +AC_ARG_WITH(pixbuf, +[ --with-pixbuf Include support for the GDK-Pixbuf library in some + demos, which will make it possible for them to read + GIF, JPEG, and PNG files as well.], + [with_gdk_pixbuf="$withval"; with_gdk_pixbuf_req="$withval"], + [with_gdk_pixbuf=yes]) + +# if --with-pixbuf=/directory/ was specified, remember that directory so that +# we can also look for the `gdk-pixbuf-config' program in that directory. +case "$with_gdk_pixbuf" in + /*) + gdk_pixbuf_dir="$with_gdk_pixbuf" + ;; + *) + gdk_pixbuf_dir="" + ;; +esac + +HANDLE_X_PATH_ARG(with_gdk_pixbuf, --with-pixbuf, GDK_PIXBUF) + +if test "$with_gdk_pixbuf" != yes -a "$with_gdk_pixbuf" != no ; then + echo "error: must be yes or no: --with-pixbuf=$with_gdk_pixbuf" + exit 1 +fi + +if test "$with_gdk_pixbuf" = yes; then + have_gdk_pixbuf=no + + # if the user specified --with-gtk=/foo/ or --with-gnome=/foo/ then + # look in /foo/bin/ for for gdk-pixbuf-config. + # + gdk_pixbuf_path="$PATH" + + if test ! -z "$gtk_dir"; then + # canonicalize slashes. + foo=`echo "${gtk_dir}/bin" | sed 's@//*@/@g'` + gdk_pixbuf_path="$foo:$gdk_pixbuf_path" + fi + + if test ! -z "$gnome_dir"; then + # canonicalize slashes. + foo=`echo "${gnome_dir}/bin" | sed 's@//*@/@g'` + gdk_pixbuf_path="$foo:$gdk_pixbuf_path" + fi + + AC_PATH_PROGS(gdk_pixbuf_config, gdk-pixbuf-config,, $gdk_pixbuf_path) + + # If we found the gdk-pixbuf-config program, run it to get flags. + # + if test -n "$gdk_pixbuf_config" ; then + AC_CACHE_CHECK([for gdk-pixbuf includes], ac_cv_gdk_pixbuf_config_cflags, + [ac_cv_gdk_pixbuf_config_cflags=`$gdk_pixbuf_config --cflags`]) + AC_CACHE_CHECK([for gdk-pixbuf libs], ac_cv_gdk_pixbuf_config_libs, + [ac_cv_gdk_pixbuf_config_libs=`$gdk_pixbuf_config --libs`]) + ac_gdk_pixbuf_config_cflags=$ac_cv_gdk_pixbuf_config_cflags + ac_gdk_pixbuf_config_libs=$ac_cv_gdk_pixbuf_config_libs + fi + + ac_save_gdk_pixbuf_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $ac_gdk_pixbuf_config_cflags" + + # check for header 1... + AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf.h, [have_gdk_pixbuf=yes]) + + # if that worked, check for header 2... + if test "$have_gdk_pixbuf" = yes; then + have_gdk_pixbuf=no + AC_CHECK_X_HEADER(gdk-pixbuf/gdk-pixbuf-xlib.h, [have_gdk_pixbuf=yes]) + fi + + CPPFLAGS="$ac_save_gdk_pixbuf_CPPFLAGS" + + if test "$have_gdk_pixbuf" = yes; then + # we have the headers, now check for the libraries + have_gdk_pixbuf=no + gdk_pixbuf_halfassed=yes + # library 1... + AC_CHECK_X_LIB(gdk_pixbuf, gdk_pixbuf_new_from_file, + [have_gdk_pixbuf=yes], [true], + $ac_gdk_pixbuf_config_libs) + # library 2... + if test "$have_gdk_pixbuf" = yes; then + AC_CHECK_X_LIB(gdk_pixbuf_xlib, gdk_pixbuf_xlib_init, + [have_gdk_pixbuf=yes + gdk_pixbuf_halfassed=no], + [true], + $ac_gdk_pixbuf_config_libs) + fi + fi + + if test "$have_gdk_pixbuf" = yes; then + INCLUDES="$INCLUDES $ac_gdk_pixbuf_config_cflags" + XPM_LIBS="$ac_gdk_pixbuf_config_libs -lgdk_pixbuf -lgdk_pixbuf_xlib" + AC_DEFINE(HAVE_GDK_PIXBUF) + fi +fi + + +############################################################################### +# +# Check for -ljpeg +# +############################################################################### + +have_jpeg=no +with_jpeg_req=unspecified +jpeg_halfassed=no +AC_ARG_WITH(jpeg, +[ --with-jpeg Include support for the JPEG library in some demos, + which will make it possible for them to read JPEG + files as well.], + [with_jpeg="$withval"; with_jpeg_req="$withval"], + [with_jpeg=yes]) + +HANDLE_X_PATH_ARG(with_jpeg, --with-jpeg, JPEG) + +if test "$with_jpeg" != yes -a "$with_jpeg" != no ; then + echo "error: must be yes or no: --with-jpeg=$with_jpeg" + exit 1 +fi + +if test "$with_jpeg" = yes; then + + have_jpeg=no + AC_CHECK_X_HEADER(jpeglib.h, [have_jpeg=yes]) + + if test "$have_jpeg" = yes; then + # we have the header, now check for the library + have_jpeg=no + jpeg_halfassed=yes + AC_CHECK_X_LIB(jpeg, jpeg_start_compress, + [have_jpeg=yes + jpeg_halfassed=no + JPEG_LIBS="-ljpeg" + AC_DEFINE(HAVE_JPEGLIB)]) + fi +fi + + ############################################################################### # # Check for the XSHM server extension. @@ -2451,7 +2716,7 @@ fi have_xshm=no with_xshm_req=unspecified AC_ARG_WITH(xshm-ext, -[ --with-xshm-ext Include support for the XSHM extension.], +[ --with-xshm-ext Include support for the Shared Memory extension.], [with_xshm="$withval"; with_xshm_req="$withval"],[with_xshm=yes]) HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM) @@ -2459,7 +2724,8 @@ HANDLE_X_PATH_ARG(with_xshm, --with-xshm-ext, XSHM) if test "$with_xshm" = yes; then # first check for Xshm.h. - AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes]) + AC_CHECK_X_HEADER(X11/extensions/XShm.h, [have_xshm=yes],, + [#include ]) # if that succeeded, then check for sys/ipc.h. if test "$have_xshm" = yes; then @@ -2517,7 +2783,8 @@ HANDLE_X_PATH_ARG(with_xdbe, --with-xdbe-ext, DOUBLE-BUFFER) if test "$with_xdbe" = yes; then - AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes]) + AC_CHECK_X_HEADER(X11/extensions/Xdbe.h, [have_xdbe=yes],, + [#include ]) if test "$have_xdbe" = yes; then AC_DEFINE(HAVE_DOUBLE_BUFFER_EXTENSION) fi @@ -2549,7 +2816,8 @@ HANDLE_X_PATH_ARG(with_readdisplay, --with-readdisplay, XReadDisplay) if test "$with_readdisplay" = yes; then AC_CHECK_X_HEADER(X11/extensions/readdisplay.h, - AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION)) + AC_DEFINE(HAVE_READ_DISPLAY_EXTENSION),, + [#include ]) elif test "$with_readdisplay" != no; then echo "error: must be yes or no: --with-readdisplay=$with_readdisplay" exit 1 @@ -2761,6 +3029,10 @@ else GLE_KLUDGE="-${tab} " fi +if test "$have_jpeg" = yes -a "$have_gdk_pixbuf" = yes; then + JPEG_EXES='$(JPEG_EXES)' +fi + # Another substitution in the XScreenSaver.ad.in file: # @@ -2775,6 +3047,7 @@ fi # Now that we know whether we have Gnome, we can decide where the XML # config files get installed. +# if test -z "$HACK_CONF_DIR" ; then if test -n "$GNOME_DATADIR" ; then HACK_CONF_DIR='${GNOME_DATADIR}/control-center/screensavers' @@ -2784,6 +3057,25 @@ if test -z "$HACK_CONF_DIR" ; then fi + +# After computing $HACK_CONF_DIR, make sure $GTK_ICONDIR has a value +# so that we know where to install the Gtk pixmaps. +# +if test -n "$GNOME_DATADIR" ; then + GTK_ICONDIR='$(GNOME_DATADIR)/pixmaps' +elif test "$have_gtk" = yes; then + # should this be "$(prefix)/share/pixmaps"? But /usr/X11R6/share/ is wrong... + GTK_ICONDIR='/usr/share/pixmaps' +else + GTK_ICONDIR='' +fi + + +# canonicalize slashes. +HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" | sed 's@/$@@;s@//*@/@g'` + + + ############################################################################### # # Perform substitutions and write Makefiles. @@ -2798,6 +3090,7 @@ AC_SUBST(SAVER_LIBS) AC_SUBST(MOTIF_LIBS) AC_SUBST(GTK_LIBS) AC_SUBST(XML_LIBS) +AC_SUBST(JPEG_LIBS) AC_SUBST(HACK_LIBS) AC_SUBST(XPM_LIBS) AC_SUBST(GL_LIBS) @@ -2820,6 +3113,7 @@ AC_SUBST(SAVER_GL_OBJS) AC_SUBST(SAVER_GL_LIBS) AC_SUBST(LOCK_SRCS) AC_SUBST(LOCK_OBJS) +AC_SUBST(JPEG_EXES) AC_SUBST(GL_EXES) AC_SUBST(GL_UTIL_EXES) AC_SUBST(GL_MEN) @@ -2831,6 +3125,7 @@ AC_SUBST(GNOMEHELP_Y) AC_SUBST(GNOMEHELP_N) AC_SUBST(HACKDIR) AC_SUBST(GNOME_DATADIR) +AC_SUBST(GTK_ICONDIR) AC_SUBST(HACK_CONF_DIR) APPDEFAULTS=$ac_x_app_defaults @@ -2846,6 +3141,7 @@ AC_OUTPUT(Makefile driver/Makefile hacks/Makefile hacks/glx/Makefile + po/Makefile.in driver/XScreenSaver.ad) ############################################################################### @@ -2980,17 +3276,40 @@ if test "$with_gnome_req" = yes -a "$have_gnome" = no ; then warn2 'headers and/or libraries were not found.' fi -if test "$with_xml_req" = yes -a "$have_xml" = no ; then - warn 'Use of the XML library was requested, but the necessary' - warn2 'headers and/or libraries were not found.' -elif test "$have_gtk" = yes -a "$have_xml" = no ; then - warn 'GTK is being used, but the XML library was not found.' - warn2 'Some functionality will be disabled.' +if test "$have_gtk" = yes ; then + if test "$have_xml" = no ; then + if test "$with_xml_req" = yes ; then + warn 'Use of the XML library was requested, but the necessary' + warn2 'headers and/or libraries were not found.' + else + warn 'GTK is being used, but the XML library was not found.' + fi + + if test "$xml_halfassed" = yes ; then + + if test "$have_zlib" = yes ; then + which="XML libraries" + else + which="\`zlib' library" + fi + + echo '' + warn2 'More specifically, we found the headers, but not the' + warn2 "$which; so either XML is half-installed on this" + warn2 "system, or something else went wrong. The \`config.log'" + warn2 'file might contain some clues.' + fi + + echo '' + warn2 "Without XML, the per-display-mode \`Settings' dialogs" + warn2 'will not be available. Specify the location of the XML' + warn2 'library through the --with-xml option to configure.' + fi fi if test "$have_motif" = yes -a "$have_lesstif" = yes ; then - preferred_lesstif=0.86 + preferred_lesstif=0.92 if test "$lesstif_version" = unknown; then warnL "Unable to determine the LessTif version number!" @@ -3007,22 +3326,85 @@ if test "$have_motif" = yes -a "$have_lesstif" = yes ; then fi +if test "$have_motif" = yes -a "$have_gtk" = no ; then + warn 'Motif is being used, and GTK is not.' + echo '' + warn2 'Though the Motif front-end to xscreensaver is still' + warn2 'maintained, it is no longer being updated with new' + warn2 'features: all new development on the xscreensaver-demo' + warn2 'program is happening in the GTK version, and not in the' + warn2 'Motif version. It is recommended that you build against' + warn2 'GTK instead of Motif. See .' +fi + + +if test "$with_xpm_req" = yes -a "$have_xpm" = no; then + warnL 'Use of XPM was requested, but it was not found.' +fi + +if test "$with_gdk_pixbuf_req" = yes -a "$have_gdk_pixbuf" = no; then + warnL 'Use of GDK-Pixbuf was requested, but it was not found.' +fi + +if test "$have_xpm" = no -a "$have_gdk_pixbuf" = no; then -if test "$have_xpm" = no ; then if test "$with_xpm_req" = yes ; then - warnL 'Use of XPM was requested, but it was not found.' + true elif test "$with_xpm_req" = no ; then - noteL 'The XPM library is not being used.' + warnL 'The XPM library is not being used.' else - noteL 'The XPM library was not found.' + warnL 'The XPM library was not found.' + fi + + if test "$with_gdk_pixbuf_req" = yes ; then + true + elif test "$with_gdk_pixbuf_req" = no ; then + warnL 'The GDK-Pixbuf library is not being used.' + else + warnL 'The GDK-Pixbuf library was not found.' + fi + + if test "$gdk_pixbuf_halfassed" = yes ; then + echo '' + warn2 'More specifically, we found the headers, but not the' + warn2 'libraries; so either GDK-Pixbuf is half-installed on this' + warn2 "system, or something else went wrong. The \`config.log'" + warn2 'file might contain some clues.' fi echo '' warn2 'Some of the demos will not be as colorful as they' - warn2 'could be. You might want to consider installing XPM' - warn2 'and re-running configure. (Remember to delete the' - warn2 'config.cache file first.) You can find XPM at most' - warn2 'X11 archive sites, such as .' + warn2 'could be. You should consider installing Pixbuf or' + warn2 'XPM and re-running configure. (Remember to delete' + warn2 'the config.cache file first.) The Pixbuf library is' + warn2 'a part of GNOME. The XPM library comes with most' + warn2 'X11 installations; you can also find it at the X11' + warn2 'archive sites, such as .' + echo '' + warn2 'GDK-Pixbuf is recommended over XPM, as it provides' + warn2 'support for more image formats.' +fi + + +if test "$have_jpeg" = no ; then + if test "$with_jpeg_req" = yes ; then + warnL 'Use of libjpeg was requested, but it was not found.' + elif test "$with_jpeg_req" = no ; then + noteL 'The JPEG library is not being used.' + else + noteL 'The JPEG library was not found.' + fi + + if test "$jpeg_halfassed" = yes ; then + echo '' + warn2 'More specifically, we found the headers, but not the' + warn2 'library; so either JPEG 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 the \`webcollage' program will be much slower." fi @@ -3177,7 +3559,7 @@ do_dir_warning=no # M4 sucks!! changequote(X,Y) -rpmv=`(rpm -qv xscreensaver) 2>&- | \ +rpmv=`(rpm -qv xscreensaver) 2>/dev/null | \ sed -n 's/^xscreensaver-\([0-9][0-9]*[.][0-9][0-9]*\)-.*$/\1/p'` changequote([,]) @@ -3197,10 +3579,10 @@ if test \! -z "$rpmv" ; then echo "" if test "$rpmbdir" = "$rpmhdir" ; then - warn2 "The RPM version was installed in $rpmbdir." + warn2 "The RPM version was installed in $rpmbdir/." else - warn2 "The RPM version was installed in $rpmbdir," - warn2 "with demos in $rpmhdir." + warn2 "The RPM version was installed in $rpmbdir/," + warn2 "with demos in $rpmhdir/." fi do_dir_warning=yes @@ -3217,15 +3599,14 @@ if test "$do_dir_warning" = yes; then echo "" echo ' When you run "make install", the "xscreensaver",' echo ' "xscreensaver-demo", and "xscreensaver-command" executables' - echo " will be installed in ${bindir}." + echo " will be installed in ${bindir}/." echo "" - echo " The various graphics demos (120+ different executables) will" - echo " also be installed in ${HACKDIR}." + echo " The various graphics demos (140+ 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 --with-hackdir=DIR option. For more" - echo " information, run $0 --help." + echo " If you would prefer the demos to be installed elsewhere," + echo " you should re-run configure with the --with-hackdir=DIR" + echo " option. For more information, run \`./configure --help'." warning=yes fi