configure.ac 13.2 KB
Newer Older
1 2 3 4 5
dnl **************************************************************************
dnl Define version info
dnl **************************************************************************

m4_define([m_major_version], [3])
6
m4_define([m_minor_version], [36])
7
m4_define([m_micro_version], [1])
8
m4_define([m_version], [m_major_version.m_minor_version.m_micro_version])
9

10 11 12 13 14 15 16 17 18 19
dnl **************************************************************************
dnl Define bugzilla address
dnl **************************************************************************

m4_define([m_bugzilla_url],
          [https://bugzilla.gnome.org/enter_bug.cgi?product=metacity])

dnl **************************************************************************
dnl Initialize autoconf
dnl **************************************************************************
rhp's avatar
...  
rhp committed
20

Alberts Muktupāvels's avatar
Alberts Muktupāvels committed
21
AC_INIT([metacity], m_version, [m_bugzilla_url])
22 23
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_SRCDIR([src/core/display.c])
24
AC_CONFIG_MACRO_DIR([m4])
25
AC_CONFIG_AUX_DIR([build-aux])
rhp's avatar
...  
rhp committed
26

27 28 29 30 31 32
dnl **************************************************************************
dnl Set release policy
dnl **************************************************************************

AX_IS_RELEASE([git-directory])

33 34 35 36 37 38
dnl **************************************************************************
dnl Enable debug
dnl **************************************************************************

AX_CHECK_ENABLE_DEBUG([yes])

39 40 41 42 43 44
dnl **************************************************************************
dnl Add warning flags
dnl **************************************************************************

AX_COMPILER_FLAGS([WARN_CFLAGS], [WARN_LDFLAGS])

45 46 47 48
dnl **************************************************************************
dnl Initialize automake
dnl **************************************************************************

49
AM_INIT_AUTOMAKE([1.14 no-dist-gzip dist-xz tar-ustar -Wno-portability subdir-objects])
50
AM_MAINTAINER_MODE([enable])
51
AM_SILENT_RULES([yes])
rhp's avatar
...  
rhp committed
52

53 54 55 56 57
dnl **************************************************************************
dnl Initialize libtool
dnl **************************************************************************

LT_INIT
58
LT_LIB_M
59

60 61 62 63 64
dnl **************************************************************************
dnl Check for required programs
dnl **************************************************************************

AC_PATH_PROG([GLIB_MKENUMS], [glib-mkenums])
65
AC_PATH_PROG([GLIB_COMPILE_RESOURCES], [glib-compile-resources])
66 67 68 69 70 71 72 73 74 75 76 77

dnl **************************************************************************
dnl Internationalization
dnl **************************************************************************

AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT_VERSION([0.19.4])

GETTEXT_PACKAGE=metacity
AC_SUBST([GETTEXT_PACKAGE])
AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], ["$GETTEXT_PACKAGE"],
                   [Name of default gettext domain])
78

Alberts Muktupāvels's avatar
Alberts Muktupāvels committed
79 80 81 82
dnl **************************************************************************
dnl Metacity version
dnl **************************************************************************

83 84 85
AC_DEFINE([METACITY_MAJOR_VERSION], [m_major_version], [Metacity major version])
AC_DEFINE([METACITY_MINOR_VERSION], [m_minor_version], [Metacity minor version])
AC_DEFINE([METACITY_MICRO_VERSION], [m_micro_version], [Metacity micro version])
Alberts Muktupāvels's avatar
Alberts Muktupāvels committed
86

87 88 89 90 91
dnl **************************************************************************
dnl Check for required packages
dnl **************************************************************************

GLIB_REQUIRED_VERSION=2.44.0
Alberts Muktupāvels's avatar
Alberts Muktupāvels committed
92
GTK_REQUIRED_VERSION=3.22.0
93 94
PANGO_REQUIRED_VERSION=1.2.0
XCOMPOSITE_REQUIRED_VERSION=0.3
95 96 97 98 99 100

PKG_CHECK_MODULES([LIBMETACITY], [
  glib-2.0 >= $GLIB_REQUIRED_VERSION
  gtk+-3.0 >= $GTK_REQUIRED_VERSION
])

101 102 103 104 105
PKG_CHECK_MODULES([METACITY_THEME_VIEWER], [
  glib-2.0 >= $GLIB_REQUIRED_VERSION
  gtk+-3.0 >= $GTK_REQUIRED_VERSION
])

106 107 108 109 110 111 112
dnl **************************************************************************
dnl Get GTK+ data prefix, needed by libmetacity
dnl **************************************************************************

GTK_DATA_PREFIX=`$PKG_CONFIG --variable=prefix gtk+-3.0`
AC_DEFINE_UNQUOTED([GTK_DATA_PREFIX], ["$GTK_DATA_PREFIX"], [GTK+ data prefix])

113 114 115 116
dnl **************************************************************************
dnl Library version information
dnl **************************************************************************

117
m4_define([lt_current], [2])
118
m4_define([lt_revision], [0])
119
m4_define([lt_age], [1])
120 121 122 123
m4_define([lt_version_info], [lt_current:lt_revision:lt_age])

AC_SUBST([LT_VERSION_INFO], [lt_version_info])

124 125
dnl **************************************************************************

126
# Honor aclocal flags
127
AC_SUBST(ACLOCAL_AMFLAGS, "\${ACLOCAL_FLAGS}")
128

rhp's avatar
...  
rhp committed
129 130 131 132
AC_PROG_CC
AC_ISC_POSIX
AC_HEADER_STDC

133 134 135 136 137 138 139 140 141 142
#### 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)

143 144 145
## byte order
AC_C_BIGENDIAN

146
METACITY_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"
147

148
GLIB_GSETTINGS
149

150 151 152 153 154 155 156
AC_ARG_ENABLE(canberra,
  AC_HELP_STRING([--disable-canberra],
                 [disable use of canberra for event sounds, for embedded non-GNOME builds]),,
  enable_canberra=yes)

if test x$enable_canberra = xyes; then
    AC_DEFINE(HAVE_CANBERRA,1,[Build with canberra support])
157
    METACITY_PC_MODULES="$METACITY_PC_MODULES libcanberra-gtk3"
158 159
fi

160 161 162 163
AC_ARG_ENABLE(sm,
  AC_HELP_STRING([--disable-sm],
                 [disable metacity's session management support, for embedded/size-sensitive custom non-GNOME builds]),,
  enable_sm=auto)
164

165 166 167 168
AC_ARG_ENABLE(startup-notification,
  AC_HELP_STRING([--disable-startup-notification],
                 [disable metacity's startup notification support, for embedded/size-sensitive custom non-GNOME builds]),,
  enable_startup_notification=auto)
169

170 171 172 173
AC_ARG_ENABLE(render,
  AC_HELP_STRING([--disable-render],
                 [disable metacity's use of the RENDER extension]),,
  enable_render=auto)
174

rhp's avatar
...  
rhp committed
175
## here we get the flags we'll actually use
176 177
PKG_CHECK_MODULES(ALL, glib-2.0 >= $GLIB_REQUIRED_VERSION gthread-2.0 >= $GLIB_REQUIRED_VERSION)
PKG_CHECK_MODULES(METACITY_MESSAGE, gtk+-3.0 >= $GTK_REQUIRED_VERSION)
178

179 180
# Unconditionally use this dir to avoid a circular dep with gnomecc
GNOME_KEYBINDINGS_KEYSDIR="${datadir}/gnome-control-center/keybindings"
181 182
AC_SUBST(GNOME_KEYBINDINGS_KEYSDIR)

183
STARTUP_NOTIFICATION_VERSION=0.7
184
AC_MSG_CHECKING([Startup notification library >= $STARTUP_NOTIFICATION_VERSION])
185
if $PKG_CONFIG --atleast-version $STARTUP_NOTIFICATION_VERSION libstartup-notification-1.0; then
186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201
   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
202
  echo "Building with libstartup-notification"
203 204
  METACITY_PC_MODULES="$METACITY_PC_MODULES libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_VERSION"
  AC_DEFINE(HAVE_STARTUP_NOTIFICATION, , [Building with startup notification support])
205 206 207 208
else
  echo "Building without libstartup-notification"
fi

209 210 211 212 213 214 215 216 217 218 219 220 221 222
AC_MSG_CHECKING([Xcursor])
if $PKG_CONFIG xcursor; then
     have_xcursor=yes
  else
     have_xcursor=no
  fi
  AC_MSG_RESULT($have_xcursor)

if test x$have_xcursor = xyes; then
  echo "Building with Xcursor"
  METACITY_PC_MODULES="$METACITY_PC_MODULES xcursor"
  AC_DEFINE(HAVE_XCURSOR, , [Building with Xcursor support]) 
fi

223 224 225 226 227 228 229 230 231 232 233 234 235 236
AC_MSG_CHECKING([libgtop])
if $PKG_CONFIG libgtop-2.0; then
     have_gtop=yes
  else
     have_gtop=no
  fi
  AC_MSG_RESULT($have_gtop)

if test x$have_gtop = xyes; then
  echo "Building with libgtop"
  METACITY_PC_MODULES="$METACITY_PC_MODULES libgtop-2.0"
  AC_DEFINE(HAVE_GTOP, , [Building with libgtop]) 
fi

237 238
PKG_CHECK_MODULES(METACITY, $METACITY_PC_MODULES)

239 240
AC_PATH_XTRA

241
ALL_X_LIBS="-lX11 $X_EXTRA_LIBS"
242

243
# Check for Xinerama extension
244
metacity_save_cppflags="$CPPFLAGS"
245
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
246

247 248 249 250
AC_ARG_ENABLE(xinerama,
  AC_HELP_STRING([--disable-xinerama],
                 [disable metacity's use of the Xinerama extension]),
  try_xinerama=$enable_xinerama,try_xinerama=yes)
251

252
have_xinerama=no
253
if test "${try_xinerama}" != no; then
254 255 256 257 258 259 260 261 262 263 264 265 266
    have_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_XINERAMA, , [Have the Xinerama extension library]),
                         have_xinerama=no,
                         [#include <X11/Xlib.h>])],
        have_xinerama=no, -lXext $ALL_X_LIBS)
    AC_MSG_CHECKING([Xinerama])
    AC_MSG_RESULT($have_xinerama)
267
fi
268 269

CPPFLAGS="$metacity_save_cppflags"
270

271 272 273 274 275 276 277 278 279 280 281
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


282
RANDR_LIBS=
283
found_randr=no
284
AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration,
285 286 287
               [AC_CHECK_HEADER(X11/extensions/Xrandr.h,
                                RANDR_LIBS=-lXrandr found_randr=yes,,
				[#include <X11/Xlib.h>])],
288
               , -lXrender -lXext $ALL_X_LIBS)
289

290
if test "x$found_randr" = "xyes"; then
291
   AC_DEFINE(HAVE_RANDR, , [Have the Xrandr extension library])
292
fi
293

294
METACITY_LIBS="$ALL_LIBS $METACITY_LIBS $RANDR_LIBS -lX11 -lXext $X_EXTRA_LIBS $LIBM"
295 296
METACITY_MESSAGE_LIBS="$METACITY_MESSAGE_LIBS -lX11 $X_EXTRA_LIBS"
METACITY_PROPS_LIBS="$METACITY_PROPS_LIBS -lX11 $X_EXTRA_LIBS"
297

298
found_sm=no
rhp's avatar
...  
rhp committed
299 300
case "$METACITY_LIBS" in
 *-lSM*)
301
    found_sm=yes
rhp's avatar
...  
rhp committed
302 303 304
    ;;
 *)
  AC_CHECK_LIB(SM, SmcSaveYourselfDone, 
305
               [AC_CHECK_HEADERS(X11/SM/SMlib.h,
306
                                METACITY_LIBS="-lSM -lICE $METACITY_LIBS" found_sm=yes)],
rhp's avatar
...  
rhp committed
307 308 309 310
               , $METACITY_LIBS)
    ;;
esac

311 312 313 314 315 316 317 318 319 320 321
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

322
if test "$found_sm" = "yes"; then
323
   AC_DEFINE(HAVE_SM, , [Building with SM support])
rhp's avatar
...  
rhp committed
324 325
fi

326
AM_CONDITIONAL(HAVE_SM, test "$found_sm" = "yes") 
327

328 329 330 331
AC_PATH_PROG(ZENITY, zenity, no)
if test x"$ZENITY" = xno; then
  AC_MSG_ERROR([zenity not found in your path - needed for dialogs])
fi
332

333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355
dnl **************************************************************************
dnl Check for Vulkan support
dnl **************************************************************************

AC_ARG_ENABLE([vulkan],
              [AS_HELP_STRING([--enable-vulkan], [enable Vulkan support])],
              [enable_vulkan="$enableval"], [enable_vulkan="auto"])

AS_IF([test "x$enable_vulkan" != "xno"], [
  AC_CHECK_LIB([vulkan], [vkCreateInstance], [
    AC_CHECK_HEADER([vulkan/vulkan.h], [found_vulkan=yes], [found_vulkan=no])
  ], [found_vulkan=no])

  AS_IF([test "x$found_vulkan" = "xyes"], [
    AC_DEFINE([HAVE_VULKAN], 1, [Build with Vulkan support])
    METACITY_LIBS="$METACITY_LIBS -lvulkan"
  ], [
    AS_IF([test "x$enable_vulkan" = "xyes"], [
      AC_MSG_ERROR([Vulkan enabled but not found])
    ])
  ])
], [found_vulkan=no])

356 357
AM_CONDITIONAL([HAVE_VULKAN], [test "x$found_vulkan" = "xyes"])

358 359 360 361
dnl **************************************************************************
dnl Process .in files
dnl **************************************************************************

362
AC_CONFIG_FILES([
363 364
  Makefile

365
  data/Makefile
366 367
  data/applications/Makefile
  data/keybindings/Makefile
368 369
  data/pkgconfig/Makefile
  data/pkgconfig/libmetacity.pc
370
  data/schemas/Makefile
371
  data/ui/Makefile
372

373 374 375
  doc/Makefile
  doc/man/Makefile

376 377
  libmetacity/Makefile

378 379 380
  src/Makefile
  src/tools/Makefile

381 382
  theme-viewer/Makefile

383
  po/Makefile.in
rhp's avatar
...  
rhp committed
384
])
385

386 387
AC_OUTPUT

388
dnl **************************************************************************
389
dnl Show summary
390
dnl **************************************************************************
391

392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407
echo ""
echo "  Metacity $VERSION"
echo "  `echo Metacity $VERSION | sed "s/./=/g"`"
echo ""
echo "  srcdir ......................: ${srcdir}"
echo ""
echo "  compiler ....................: ${CC}"
echo "  cflags ......................: ${CFLAGS}"
echo ""
echo "  prefix ......................: ${prefix}"
echo "  exec_prefix .................: ${exec_prefix}"
echo "  libdir ......................: ${libdir}"
echo "  sysconfdir ..................: ${sysconfdir}"
echo "  libexecdir ..................: ${libexecdir}"
echo ""
echo "  Canberra ....................: ${enable_canberra}"
408
echo "  Xinerama ....................: ${have_xinerama}"
409 410 411 412
echo "  Startup notification ........: ${have_startup_notification}"
echo "  Session management ..........: ${found_sm}"
echo "  Resize-and-rotate ...........: ${found_randr}"
echo "  Xcursor .....................: ${have_xcursor}"
413
echo "  Vulkan ......................: ${found_vulkan}"
414
echo ""