AC_PREREQ(2.50) AC_INIT(src/display.c) AM_CONFIG_HEADER(config.h) # we'll hold the 2.8.x versioning for GNOME 2.8, it was also used # for GNOME 2.6, then after GNOME 2.8 we'll have the numbers synced # with GNOME AM_INIT_AUTOMAKE(metacity, 2.8.6) # Honor aclocal flags ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS" GETTEXT_PACKAGE=metacity AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Name of default gettext domain]) AM_MAINTAINER_MODE AC_PROG_INTLTOOL([0.21]) AC_PROG_CC AC_ISC_POSIX AC_HEADER_STDC AC_LIBTOOL_WIN32_DLL AM_PROG_LIBTOOL #### Integer sizes AC_CHECK_SIZEOF(char) AC_CHECK_SIZEOF(short) AC_CHECK_SIZEOF(long) AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(void *) AC_CHECK_SIZEOF(long long) AC_CHECK_SIZEOF(__int64) ## byte order AC_C_BIGENDIAN #### Warnings changequote(,)dnl if test "x$GCC" = "xyes"; then case " $CFLAGS " in *[\ \ ]-Wall[\ \ ]*) ;; *) CFLAGS="$CFLAGS -Wall" ;; esac # case " $CFLAGS " in # *[\ \ ]-Wshadow[\ \ ]*) ;; # *) CFLAGS="$CFLAGS -Wshadow" ;; # esac case " $CFLAGS " in *[\ \ ]-Wchar-subscripts[\ \ ]*) ;; *) CFLAGS="$CFLAGS -Wchar-subscripts" ;; esac case " $CFLAGS " in *[\ \ ]-Wmissing-declarations[\ \ ]*) ;; *) CFLAGS="$CFLAGS -Wmissing-declarations" ;; esac case " $CFLAGS " in *[\ \ ]-Wmissing-prototypes[\ \ ]*) ;; *) CFLAGS="$CFLAGS -Wmissing-prototypes" ;; esac case " $CFLAGS " in *[\ \ ]-Wnested-externs[\ \ ]*) ;; *) CFLAGS="$CFLAGS -Wnested-externs" ;; esac case " $CFLAGS " in *[\ \ ]-Wpointer-arith[\ \ ]*) ;; *) CFLAGS="$CFLAGS -Wpointer-arith" ;; esac case " $CFLAGS " in *[\ \ ]-Wcast-align[\ \ ]*) ;; *) CFLAGS="$CFLAGS -Wcast-align" ;; esac case " $CFLAGS " in *[\ \ ]-Wsign-compare[\ \ ]*) ;; *) CFLAGS="$CFLAGS -Wsign-compare" ;; esac if test "x$enable_ansi" = "xyes"; then case " $CFLAGS " in *[\ \ ]-ansi[\ \ ]*) ;; *) CFLAGS="$CFLAGS -ansi" ;; esac case " $CFLAGS " in *[\ \ ]-pedantic[\ \ ]*) ;; *) CFLAGS="$CFLAGS -pedantic" ;; esac fi fi changequote([,])dnl METACITY_PC_MODULES='gtk+-2.0 >= 2.2.0 pango >= 1.2.0' AC_ARG_ENABLE(config-dialog, [ --enable-config-dialog enable the config dialog that you need with GNOME 2.0 (obsolete with GNOME 2.2)],,enable_config_dialog=no) AM_CONDITIONAL(BUILD_CONFIG_DIALOG, test x$enable_config_dialog = xyes) if test x$enable_config_dialog = xyes; then AC_DEFINE(BUILD_CONFIG_DIALOG,1,[Build configuration dialog]) fi AC_ARG_ENABLE(gconf, [ --disable-gconf disable gconf usage, for embedded/size-sensitive non-GNOME builds],,enable_gconf=yes) if test x$enable_gconf = xyes; then AC_DEFINE(HAVE_GCONF,1,[Build with gconf support]) METACITY_PC_MODULES="$METACITY_PC_MODULES gconf-2.0 >= 1.2.0" fi AC_ARG_ENABLE(verbose-mode, [ --disable-verbose disable metacity's ability to do verbose logging, for embedded/size-sensitive custom builds],,enable_verbose_mode=yes) if test x$enable_verbose_mode = xyes; then AC_DEFINE(WITH_VERBOSE_MODE,1,[Build with verbose mode support]) fi AC_ARG_ENABLE(sm, [ --disable-sm disable metacity's session management support, for embedded/size-sensitive custom non-GNOME builds],,enable_sm=auto) AC_ARG_ENABLE(startup-notification, [ --disable-startup-notification disable metacity's startup notification support, for embedded/size-sensitive custom non-GNOME builds],,enable_startup_notification=auto) AC_ARG_ENABLE(compositor, [ --disable-compositor disable metacity's compositing manager],,enable_compositor=auto) AC_ARG_ENABLE(xsync, [ --disable-xsync disable metacity's use of the XSync extension],,enable_xsync=auto) AC_ARG_ENABLE(render, [ --disable-render disable metacity's use of the RENDER extension],,enable_render=auto) AC_ARG_ENABLE(shape, [ --disable-shape disable metacity's use of the shaped window extension],,enable_shape=auto) ## try definining HAVE_BACKTRACE AC_CHECK_HEADERS(execinfo.h, [AC_CHECK_FUNCS(backtrace)]) ALL_LINGUAS="am ar az be bg bn bs ca cs cy da de el en_CA en_GB es et eu fa fi fr ga gl gu he hi hr hu id is it ja ko lt lv mk ml mn ms nb nl nn no or pa pl pt pt_BR ro ru sl sk sq sr sr@Latn sv ta th tk tr uk vi wa zh_CN zh_TW" AM_GLIB_GNU_GETTEXT ## here we get the flags we'll actually use PKG_CHECK_MODULES(METACITY_MESSAGE, gtk+-2.0 >= 2.2.0) PKG_CHECK_MODULES(METACITY_WINDOW_DEMO, gtk+-2.0 >= 2.2.0) if test x$enable_config_dialog = xyes; then PKG_CHECK_MODULES(METACITY_PROPS, gtk+-2.0 >= 2.2.0 gconf-2.0 >= 1.1.9 libglade-2.0) fi if $PKG_CONFIG --atleast-version 1.2.0 pangoxft; then echo "pangoxft found" else AC_MSG_ERROR("Pango 1.2.0 or greater based on Xft2 is required") fi STARTUP_NOTIFICATION_VERSION=0.7 AC_MSG_CHECKING([Startup notification library >= $STARTUP_NOTIFICATION_VERSION]) if $PKG_CONFIG --atleast-version $STARTUP_NOTIFICATION_VERSION libstartup-notification-1.0; then have_startup_notification=yes else have_startup_notification=no fi AC_MSG_RESULT($have_startup_notification) if test x$enable_startup_notification = xyes; then have_startup_notification=yes echo "startup-notification support forced on" elif test x$enable_startup_notification = xauto; then true else have_startup_notification=no fi if test x$have_startup_notification = xyes; then echo "Building with libstartup-notification" METACITY_PC_MODULES="$METACITY_PC_MODULES libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_VERSION" AC_DEFINE(HAVE_STARTUP_NOTIFICATION, , [Building with startup notification support]) else echo "Building without libstartup-notification" fi ## init this, it gets set either in the compositor check below ## or the render-specific check later have_xrender=no XCOMPOSITE_VERSION=1.0 AC_MSG_CHECKING([Xcomposite >= $XCOMPOSITE_VERSION]) if $PKG_CONFIG --atleast-version $XCOMPOSITE_VERSION xcomposite; then have_xcomposite=yes else have_xcomposite=no fi AC_MSG_RESULT($have_xcomposite) if test x$enable_compositor = xyes; then have_xcomposite=yes echo "CompositeExt support forced on" elif test x$enable_compositor = xauto; then echo "Not building compositing manager by default now, must enable explicitly to get it. And it doesn't work, so don't bother unless you want to hack on it..." have_xcomposite=no else have_xcomposite=no fi if test x$have_xcomposite = xyes; then echo "Building with CompositeExt" METACITY_PC_MODULES="$METACITY_PC_MODULES xcomposite >= $XCOMPOSITE_VERSION xfixes xrender xdamage" AC_DEFINE(HAVE_COMPOSITE_EXTENSIONS, , [Building with compositing manager support]) ## force on render also have_xrender=yes else echo "Building without compositing manager" fi ## if no compositor, still possibly enable render if test x$have_xcomposite = xno; then XRENDER_VERSION=0.0 AC_MSG_CHECKING([xrender >= $XRENDER_VERSION]) if $PKG_CONFIG --atleast-version $XRENDER_VERSION xrender; then have_xrender=yes else have_xrender=no fi AC_MSG_RESULT($have_xrender) if test x$enable_render = xyes; then have_xrender=yes echo "Render support forced on" elif test x$enable_render = xauto; then true else have_xrender=no fi if test x$have_xrender = xyes; then echo "Building with Render" METACITY_PC_MODULES="$METACITY_PC_MODULES xrender >= $XRENDER_VERSION" fi fi ## have_composite if test x$have_xrender = xyes; then AC_DEFINE(HAVE_RENDER, , [Building with Render extension support]) fi PKG_CHECK_MODULES(METACITY, $METACITY_PC_MODULES) AC_PATH_XTRA ALL_X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS" # Check for Xinerama extension (Solaris impl or Xfree impl) metacity_save_cppflags="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $X_CFLAGS" AC_ARG_ENABLE(xinerama,[ --disable-xinerama disable metacity's use of the Xinerama extension], try_xinerama=$enable_xinerama,try_xinerama=yes) use_solaris_xinerama=no use_xfree_xinerama=no if test "${try_xinerama}" != no; then case "$host" in *-*-solaris*) # Check for solaris use_solaris_xinerama=yes AC_CHECK_LIB(Xext, XineramaGetInfo, use_solaris_xinerama=yes, use_solaris_xinerama=no, $ALL_X_LIBS) if test "x$use_solaris_xinerama" = "xyes"; then AC_CHECK_HEADER(X11/extensions/xinerama.h, if test -z "`echo $ALL_X_LIBS | grep "\-lXext" 2> /dev/null`"; then X_EXTRA_LIBS="-lXext $X_EXTRA_LIBS" fi AC_DEFINE(HAVE_SOLARIS_XINERAMA, , [Have Solaris-style Xinerama]) AC_DEFINE(HAVE_XINERAMA, , [Have some version of Xinerama]), use_solaris_xinerama=no, [#include ]) fi AC_MSG_CHECKING(for Xinerama support on Solaris) AC_MSG_RESULT($use_solaris_xinerama); ;; *) # Check for XFree use_xfree_xinerama=yes AC_CHECK_LIB(Xinerama, XineramaQueryExtension, [AC_CHECK_HEADER(X11/extensions/Xinerama.h, X_EXTRA_LIBS="-lXinerama $X_EXTRA_LIBS" if test -z "`echo $ALL_X_LIBS | grep "\-lXext" 2> /dev/null`"; then X_EXTRA_LIBS="-lXext $X_EXTRA_LIBS" fi AC_DEFINE(HAVE_XFREE_XINERAMA, , [Have XFree86-style Xinerama]) AC_DEFINE(HAVE_XINERAMA,, [Have some version of Xinerama]), use_xfree_xinerama=no, [#include ])], use_xfree_xinerama=no, -lXext $ALL_X_LIBS) AC_MSG_CHECKING(for Xinerama support on XFree86) AC_MSG_RESULT($use_xfree_xinerama); ;; esac fi CPPFLAGS="$metacity_save_cppflags" SHAPE_LIBS= found_shape=no AC_CHECK_LIB(Xext, XShapeQueryExtension, [AC_CHECK_HEADER(X11/extensions/shape.h, SHAPE_LIBS=-lXext found_shape=yes)], , $ALL_X_LIBS) if test x$enable_shape = xno; then found_shape=no fi if test x$enable_shape = xyes; then if test "$found_shape" = "no"; then AC_MSG_ERROR([--enable-shape forced and Shape not found]) exit 1 fi fi if test "x$found_shape" = "xyes"; then AC_DEFINE(HAVE_SHAPE, , [Have the shape extension library]) fi found_xkb=no AC_CHECK_LIB(X11, XkbQueryExtension, [AC_CHECK_HEADER(X11/XKBlib.h, found_xkb=yes)], , $ALL_X_LIBS) if test "x$found_xkb" = "xyes"; then AC_DEFINE(HAVE_XKB, , [Have keyboard extension library]) fi RANDR_LIBS= found_randr=no AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration, [AC_CHECK_HEADER(X11/extensions/Xrandr.h, RANDR_LIBS=-lXrandr found_randr=yes,, [#include ])], , -lXrender -lXext $ALL_X_LIBS) if test "x$found_randr" = "xyes"; then AC_DEFINE(HAVE_RANDR, , [Have the Xrandr extension library]) fi XSYNC_LIBS= found_xsync=no AC_CHECK_LIB(Xext, XSyncQueryExtension, [AC_CHECK_HEADER(X11/extensions/sync.h, found_xsync=yes,, [#include ])], , $ALL_X_LIBS) if test x$enable_xsync = xno; then found_xsync=no fi if test x$enable_xsync = xyes; then if test "$found_xsync" = "no"; then AC_MSG_ERROR([--enable-xsync forced and XSync not found]) exit 1 fi fi if test "x$found_xsync" = "xyes"; then XSYNC_LIBS=-lXext AC_DEFINE(HAVE_XSYNC, , [Have the Xsync extension library]) fi METACITY_LIBS="$XSYNC_LIBS $RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $METACITY_LIBS" METACITY_MESSAGE_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $METACITY_MESSAGE_LIBS" METACITY_WINDOW_DEMO_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $METACITY_WINDOW_DEMO_LIBS" METACITY_PROPS_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $METACITY_PROPS_LIBS" found_sm=no case "$METACITY_LIBS" in *-lSM*) found_sm=yes ;; *) AC_CHECK_LIB(SM, SmcSaveYourselfDone, [AC_CHECK_HEADERS(X11/SM/SMlib.h, METACITY_LIBS="-lSM -lICE $METACITY_LIBS" found_sm=no)], , $METACITY_LIBS) ;; esac if test x$enable_sm = xno; then found_sm=no fi if test x$enable_sm = xyes; then if test "$found_sm" = "no"; then AC_MSG_ERROR([--enable-sm forced and -lSM not found]) exit 1 fi fi if test "$found_sm" = "yes"; then AC_DEFINE(HAVE_SM, , [Building with SM support]) fi AM_CONDITIONAL(HAVE_SM, test "$found_sm" = "yes") HOST_ALIAS=$host_alias AC_SUBST(HOST_ALIAS) AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no) if test x"$GDK_PIXBUF_CSOURCE" = xno; then AC_MSG_ERROR([gdk-pixbuf-csource executable not found in your path - should be installed with GTK]) fi AC_SUBST(GDK_PIXBUF_CSOURCE) ## hack to work with old GTK versions for now save_LDFLAGS=$LDFLAGS LDFLAGS="$METACITY_LIBS $LDFLAGS" AC_CHECK_FUNCS(gdk_pixbuf_new_from_stream) LDFLAGS=$save_LDFLAGS if test x$enable_gconf = xyes; then AC_PATH_PROG(GCONFTOOL, gconftool-2, no) if test x"$GCONFTOOL" = xno; then AC_MSG_ERROR([gconftool-2 executable not found in your path - should be installed with GConf]) fi AM_GCONF_SOURCE_2 fi AC_OUTPUT([ Makefile doc/Makefile src/Makefile src/wm-tester/Makefile src/libmetacity-private.pc src/tools/Makefile src/themes/Makefile po/Makefile.in ]) if test x$enable_gconf = xno; then echo "*** WARNING WARNING WARNING WARNING WARNING" echo "*** Building without GConf" echo "*** This means there's no way to change prefs except" echo "*** hacking source code, at least for now." echo "*** Also, some prefs may have broken defaults." echo "*** Patches needed for a simple no-gconf config file." echo "*** This is intended for embedded systems etc., not for normal use." fi if test x$enable_verbose_mode = xno; then echo "*** WARNING WARNING WARNING WARNING WARNING" echo "*** Building without verbose mode" echo "*** This means there's no way to debug metacity problems." echo "*** Please build normal desktop versions of metacity" echo "*** with verbose mode enabled so users can use it when they report bugs." fi dnl ========================================================================== echo " metacity-$VERSION: prefix: ${prefix} source code location: ${srcdir} compiler: ${CC} GConf: ${enable_gconf} XFree86 Xinerama: ${use_xfree_xinerama} Solaris Xinerama: ${use_solaris_xinerama} Startup notification: ${have_startup_notification} Compositing manager: ${have_xcomposite} Session management: ${found_sm} Shape extension: ${found_shape} Resize-and-rotate: ${found_randr} Xsync: ${found_xsync} Render: ${have_xrender} Deprecated config dialog: ${enable_config_dialog} " # echo "This is the UNSTABLE branch of metacity, use 2.8.1.x for stable (gnome-2-6 branch in CVS)"