1dnl ************************************************************************** 2dnl Define version info 3dnl ************************************************************************** 4 5m4_define([m_major_version], [3]) 6m4_define([m_minor_version], [42]) 7m4_define([m_micro_version], [0]) 8m4_define([m_version], [m_major_version.m_minor_version.m_micro_version]) 9 10dnl ************************************************************************** 11dnl Define bugzilla address 12dnl ************************************************************************** 13 14m4_define([m_bugzilla_url], 15 [https://gitlab.gnome.org/GNOME/metacity/-/issues]) 16 17dnl ************************************************************************** 18dnl Initialize autoconf 19dnl ************************************************************************** 20 21AC_INIT([metacity], m_version, [m_bugzilla_url]) 22AC_CONFIG_HEADERS([config.h]) 23AC_CONFIG_SRCDIR([src/core/display.c]) 24AC_CONFIG_MACRO_DIR([m4]) 25AC_CONFIG_AUX_DIR([build-aux]) 26 27dnl ************************************************************************** 28dnl Set release policy 29dnl ************************************************************************** 30 31AX_IS_RELEASE([git-directory]) 32 33dnl ************************************************************************** 34dnl Enable debug 35dnl ************************************************************************** 36 37AX_CHECK_ENABLE_DEBUG([yes]) 38 39dnl ************************************************************************** 40dnl Add warning flags 41dnl ************************************************************************** 42 43AX_COMPILER_FLAGS([WARN_CFLAGS], [WARN_LDFLAGS]) 44 45dnl ************************************************************************** 46dnl Initialize automake 47dnl ************************************************************************** 48 49AM_INIT_AUTOMAKE([1.14 no-dist-gzip dist-xz tar-ustar -Wno-portability subdir-objects]) 50AM_MAINTAINER_MODE([enable]) 51AM_SILENT_RULES([yes]) 52 53dnl ************************************************************************** 54dnl Initialize libtool 55dnl ************************************************************************** 56 57LT_INIT([disable-static]) 58LT_LIB_M 59 60dnl ************************************************************************** 61dnl Check for required programs 62dnl ************************************************************************** 63 64AC_PATH_PROG([GLIB_MKENUMS], [glib-mkenums]) 65AC_PATH_PROG([GLIB_COMPILE_RESOURCES], [glib-compile-resources]) 66 67dnl ************************************************************************** 68dnl Internationalization 69dnl ************************************************************************** 70 71AM_GNU_GETTEXT([external]) 72AM_GNU_GETTEXT_VERSION([0.19.6]) 73AM_GNU_GETTEXT_REQUIRE_VERSION([0.19.6]) 74 75GETTEXT_PACKAGE=metacity 76AC_SUBST([GETTEXT_PACKAGE]) 77AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], ["$GETTEXT_PACKAGE"], 78 [Name of default gettext domain]) 79 80dnl ************************************************************************** 81dnl Metacity version 82dnl ************************************************************************** 83 84AC_DEFINE([METACITY_MAJOR_VERSION], [m_major_version], [Metacity major version]) 85AC_DEFINE([METACITY_MINOR_VERSION], [m_minor_version], [Metacity minor version]) 86AC_DEFINE([METACITY_MICRO_VERSION], [m_micro_version], [Metacity micro version]) 87 88dnl ************************************************************************** 89dnl Check for required packages 90dnl ************************************************************************** 91 92GLIB_REQUIRED_VERSION=2.67.3 93GTK_REQUIRED_VERSION=3.24.6 94PANGO_REQUIRED_VERSION=1.2.0 95XCOMPOSITE_REQUIRED_VERSION=0.3 96 97PKG_CHECK_MODULES([LIBMETACITY], [ 98 glib-2.0 >= $GLIB_REQUIRED_VERSION 99 gtk+-3.0 >= $GTK_REQUIRED_VERSION 100]) 101 102PKG_CHECK_MODULES([METACITY_THEME_VIEWER], [ 103 glib-2.0 >= $GLIB_REQUIRED_VERSION 104 gtk+-3.0 >= $GTK_REQUIRED_VERSION 105]) 106 107dnl ************************************************************************** 108dnl Get GTK+ data prefix, needed by libmetacity 109dnl ************************************************************************** 110 111GTK_DATA_PREFIX=`$PKG_CONFIG --variable=prefix gtk+-3.0` 112AC_DEFINE_UNQUOTED([GTK_DATA_PREFIX], ["$GTK_DATA_PREFIX"], [GTK+ data prefix]) 113 114dnl ************************************************************************** 115dnl Library version information 116dnl ************************************************************************** 117 118dnl Before making a release, the library version should be modified. Follow 119dnl these instructions sequentially: 120dnl 1. If the library source code has changed at all since the last update, 121dnl then increment lt_revision. 122dnl 2. If any interfaces have been added, removed, or changed since the last 123dnl update, increment lt_current, and set lt_revision to 0. 124dnl 3. If any interfaces have been added since the last public release, then 125dnl increment lt_age. 126dnl 4. If any interfaces have been removed or changed since the last public 127dnl release, then set lt_age to 0. 128 129m4_define([lt_current], [3]) 130m4_define([lt_revision], [0]) 131m4_define([lt_age], [0]) 132m4_define([lt_version_info], [lt_current:lt_revision:lt_age]) 133 134AC_SUBST([LT_VERSION_INFO], [lt_version_info]) 135 136dnl ************************************************************************** 137 138# Honor aclocal flags 139AC_SUBST(ACLOCAL_AMFLAGS, "\${ACLOCAL_FLAGS}") 140 141AC_PROG_CC 142AC_PROG_MKDIR_P 143AC_ISC_POSIX 144AC_HEADER_STDC 145 146#### Integer sizes 147 148AC_CHECK_SIZEOF(char) 149AC_CHECK_SIZEOF(short) 150AC_CHECK_SIZEOF(long) 151AC_CHECK_SIZEOF(int) 152AC_CHECK_SIZEOF(void *) 153AC_CHECK_SIZEOF(long long) 154AC_CHECK_SIZEOF(__int64) 155 156## byte order 157AC_C_BIGENDIAN 158 159METACITY_PC_MODULES="gtk+-3.0 >= $GTK_REQUIRED_VERSION gio-2.0 >= $GLIB_REQUIRED_VERSION pango >= $PANGO_REQUIRED_VERSION gsettings-desktop-schemas >= 3.3.0 xcomposite >= $XCOMPOSITE_REQUIRED_VERSION xfixes xrender xdamage xres xpresent" 160 161GLIB_GSETTINGS 162 163AC_ARG_ENABLE(canberra, 164 AC_HELP_STRING([--disable-canberra], 165 [disable use of canberra for event sounds, for embedded non-GNOME builds]),, 166 enable_canberra=yes) 167 168if test x$enable_canberra = xyes; then 169 AC_DEFINE(HAVE_CANBERRA,1,[Build with canberra support]) 170 METACITY_PC_MODULES="$METACITY_PC_MODULES libcanberra-gtk3" 171fi 172 173AC_ARG_ENABLE(sm, 174 AC_HELP_STRING([--disable-sm], 175 [disable metacity's session management support, for embedded/size-sensitive custom non-GNOME builds]),, 176 enable_sm=auto) 177 178AC_ARG_ENABLE(startup-notification, 179 AC_HELP_STRING([--disable-startup-notification], 180 [disable metacity's startup notification support, for embedded/size-sensitive custom non-GNOME builds]),, 181 enable_startup_notification=auto) 182 183AC_ARG_ENABLE(render, 184 AC_HELP_STRING([--disable-render], 185 [disable metacity's use of the RENDER extension]),, 186 enable_render=auto) 187 188## here we get the flags we'll actually use 189PKG_CHECK_MODULES(ALL, glib-2.0 >= $GLIB_REQUIRED_VERSION gthread-2.0 >= $GLIB_REQUIRED_VERSION) 190PKG_CHECK_MODULES(METACITY_MESSAGE, gtk+-3.0 >= $GTK_REQUIRED_VERSION) 191 192# Unconditionally use this dir to avoid a circular dep with gnomecc 193GNOME_KEYBINDINGS_KEYSDIR="${datadir}/gnome-control-center/keybindings" 194AC_SUBST(GNOME_KEYBINDINGS_KEYSDIR) 195 196STARTUP_NOTIFICATION_VERSION=0.7 197AC_MSG_CHECKING([Startup notification library >= $STARTUP_NOTIFICATION_VERSION]) 198if $PKG_CONFIG --atleast-version $STARTUP_NOTIFICATION_VERSION libstartup-notification-1.0; then 199 have_startup_notification=yes 200else 201 have_startup_notification=no 202fi 203AC_MSG_RESULT($have_startup_notification) 204 205if test x$enable_startup_notification = xyes; then 206 have_startup_notification=yes 207 echo "startup-notification support forced on" 208elif test x$enable_startup_notification = xauto; then 209 true 210else 211 have_startup_notification=no 212fi 213 214if test x$have_startup_notification = xyes; then 215 echo "Building with libstartup-notification" 216 METACITY_PC_MODULES="$METACITY_PC_MODULES libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_VERSION" 217 AC_DEFINE(HAVE_STARTUP_NOTIFICATION, , [Building with startup notification support]) 218else 219 echo "Building without libstartup-notification" 220fi 221 222AC_MSG_CHECKING([Xcursor]) 223if $PKG_CONFIG xcursor; then 224 have_xcursor=yes 225 else 226 have_xcursor=no 227 fi 228 AC_MSG_RESULT($have_xcursor) 229 230if test x$have_xcursor = xyes; then 231 echo "Building with Xcursor" 232 METACITY_PC_MODULES="$METACITY_PC_MODULES xcursor" 233 AC_DEFINE(HAVE_XCURSOR, , [Building with Xcursor support]) 234fi 235 236AC_MSG_CHECKING([libgtop]) 237if $PKG_CONFIG libgtop-2.0; then 238 have_gtop=yes 239 else 240 have_gtop=no 241 fi 242 AC_MSG_RESULT($have_gtop) 243 244if test x$have_gtop = xyes; then 245 echo "Building with libgtop" 246 METACITY_PC_MODULES="$METACITY_PC_MODULES libgtop-2.0" 247 AC_DEFINE(HAVE_GTOP, , [Building with libgtop]) 248fi 249 250PKG_CHECK_MODULES(METACITY, $METACITY_PC_MODULES) 251 252AC_PATH_XTRA 253 254ALL_X_LIBS="-lX11 $X_EXTRA_LIBS" 255 256# Check for Xinerama extension 257metacity_save_cppflags="$CPPFLAGS" 258CPPFLAGS="$CPPFLAGS $X_CFLAGS" 259 260AC_ARG_ENABLE(xinerama, 261 AC_HELP_STRING([--disable-xinerama], 262 [disable metacity's use of the Xinerama extension]), 263 try_xinerama=$enable_xinerama,try_xinerama=yes) 264 265have_xinerama=no 266if test "${try_xinerama}" != no; then 267 have_xinerama=yes 268 AC_CHECK_LIB(Xinerama, XineramaQueryExtension, 269 [AC_CHECK_HEADER(X11/extensions/Xinerama.h, 270 X_EXTRA_LIBS="-lXinerama $X_EXTRA_LIBS" 271 if test -z "`echo $ALL_X_LIBS | grep "\-lXext" 2> /dev/null`"; then 272 X_EXTRA_LIBS="-lXext $X_EXTRA_LIBS" 273 fi 274 AC_DEFINE(HAVE_XINERAMA, , [Have the Xinerama extension library]), 275 have_xinerama=no, 276 [#include <X11/Xlib.h>])], 277 have_xinerama=no, -lXext $ALL_X_LIBS) 278 AC_MSG_CHECKING([Xinerama]) 279 AC_MSG_RESULT($have_xinerama) 280fi 281 282CPPFLAGS="$metacity_save_cppflags" 283 284found_xkb=no 285AC_CHECK_LIB(X11, XkbQueryExtension, 286 [AC_CHECK_HEADER(X11/XKBlib.h, 287 found_xkb=yes)], 288 , $ALL_X_LIBS) 289 290if test "x$found_xkb" = "xyes"; then 291 AC_DEFINE(HAVE_XKB, , [Have keyboard extension library]) 292fi 293 294 295RANDR_LIBS= 296found_randr=no 297AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration, 298 [AC_CHECK_HEADER(X11/extensions/Xrandr.h, 299 RANDR_LIBS=-lXrandr found_randr=yes,, 300 [#include <X11/Xlib.h>])], 301 , -lXrender -lXext $ALL_X_LIBS) 302 303if test "x$found_randr" = "xyes"; then 304 AC_DEFINE(HAVE_RANDR, , [Have the Xrandr extension library]) 305fi 306 307METACITY_LIBS="$ALL_LIBS $METACITY_LIBS $RANDR_LIBS -lX11 -lXext $X_EXTRA_LIBS $LIBM" 308METACITY_MESSAGE_LIBS="$METACITY_MESSAGE_LIBS -lX11 $X_EXTRA_LIBS" 309 310found_sm=no 311case "$METACITY_LIBS" in 312 *-lSM*) 313 found_sm=yes 314 ;; 315 *) 316 AC_CHECK_LIB(SM, SmcSaveYourselfDone, 317 [AC_CHECK_HEADERS(X11/SM/SMlib.h, 318 METACITY_LIBS="-lSM -lICE $METACITY_LIBS" found_sm=yes)], 319 , $METACITY_LIBS) 320 ;; 321esac 322 323if test x$enable_sm = xno; then 324 found_sm=no 325fi 326 327if test x$enable_sm = xyes; then 328 if test "$found_sm" = "no"; then 329 AC_MSG_ERROR([--enable-sm forced and -lSM not found]) 330 exit 1 331 fi 332fi 333 334if test "$found_sm" = "yes"; then 335 AC_DEFINE(HAVE_SM, , [Building with SM support]) 336fi 337 338AM_CONDITIONAL(HAVE_SM, test "$found_sm" = "yes") 339 340AC_PATH_PROG(ZENITY, zenity, no) 341if test x"$ZENITY" = xno; then 342 AC_MSG_ERROR([zenity not found in your path - needed for dialogs]) 343fi 344 345AC_SEARCH_LIBS([dlsym], [dl], [], [ 346 AC_MSG_ERROR([unable to find the dlsym() function]) 347]) 348 349dnl ************************************************************************** 350dnl Check for Vulkan support 351dnl ************************************************************************** 352 353AC_ARG_ENABLE([vulkan], 354 [AS_HELP_STRING([--enable-vulkan], [enable Vulkan support])], 355 [enable_vulkan="$enableval"], [enable_vulkan="auto"]) 356 357AS_IF([test "x$enable_vulkan" != "xno"], [ 358 AC_CHECK_LIB([vulkan], [vkCreateInstance], [ 359 AC_CHECK_HEADER([vulkan/vulkan.h], [found_vulkan=yes], [found_vulkan=no]) 360 ], [found_vulkan=no]) 361 362 AS_IF([test "x$found_vulkan" = "xyes"], [ 363 AC_DEFINE([HAVE_VULKAN], 1, [Build with Vulkan support]) 364 METACITY_LIBS="$METACITY_LIBS -lvulkan" 365 ], [ 366 AS_IF([test "x$enable_vulkan" = "xyes"], [ 367 AC_MSG_ERROR([Vulkan enabled but not found]) 368 ]) 369 ]) 370], [found_vulkan=no]) 371 372AM_CONDITIONAL([HAVE_VULKAN], [test "x$found_vulkan" = "xyes"]) 373 374dnl ************************************************************************** 375dnl Process .in files 376dnl ************************************************************************** 377 378AC_CONFIG_FILES([ 379 Makefile 380 381 data/Makefile 382 data/applications/Makefile 383 data/keybindings/Makefile 384 data/pkgconfig/Makefile 385 data/pkgconfig/libmetacity.pc 386 data/schemas/Makefile 387 data/ui/Makefile 388 389 doc/Makefile 390 doc/man/Makefile 391 392 libmetacity/Makefile 393 394 src/Makefile 395 src/tools/Makefile 396 397 theme-viewer/Makefile 398 399 po/Makefile.in 400]) 401 402AC_OUTPUT 403 404dnl ************************************************************************** 405dnl Show summary 406dnl ************************************************************************** 407 408echo "" 409echo " Metacity $VERSION" 410echo " `echo Metacity $VERSION | sed "s/./=/g"`" 411echo "" 412echo " srcdir ......................: ${srcdir}" 413echo "" 414echo " compiler ....................: ${CC}" 415echo " cflags ......................: ${CFLAGS}" 416echo "" 417echo " prefix ......................: ${prefix}" 418echo " exec_prefix .................: ${exec_prefix}" 419echo " libdir ......................: ${libdir}" 420echo " sysconfdir ..................: ${sysconfdir}" 421echo " libexecdir ..................: ${libexecdir}" 422echo "" 423echo " Canberra ....................: ${enable_canberra}" 424echo " Xinerama ....................: ${have_xinerama}" 425echo " Startup notification ........: ${have_startup_notification}" 426echo " Session management ..........: ${found_sm}" 427echo " Resize-and-rotate ...........: ${found_randr}" 428echo " Xcursor .....................: ${have_xcursor}" 429echo " Vulkan ......................: ${found_vulkan}" 430echo "" 431