1dnl Process this file with autoconf to produce a configure script. 2dnl Copyright (C) 1998 John Harper <john@dcs.warwick.ac.uk> 3dnl $Id: configure.in,v 1.140 2008/02/18 20:59:59 jkozicki Exp $ 4dnl 5dnl This file is part of sawfish. 6dnl 7dnl sawfish is free software; you can redistribute it and/or modify it 8dnl under the terms of the GNU General Public License as published by 9dnl the Free Software Foundation; either version 2, or (at your option) 10dnl any later version. 11dnl 12dnl sawfish is distributed in the hope that it will be useful, but 13dnl WITHOUT ANY WARRANTY; without even the implied warranty of 14dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15dnl GNU General Public License for more details. 16dnl 17dnl You should have received a copy of the GNU General Public License 18dnl along with sawfish; see the file COPYING. If not, write to 19dnl the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 20 21AC_REVISION($Revision: 1.141 $) 22AC_INIT(src/sawfish.h) 23 24AC_CONFIG_HEADER(config.h) 25AC_CONFIG_MACRO_DIR([m4]) 26 27AM_PROG_LIBTOOL 28 29dnl Release versioning info 30version="1.13.0" 31subversion="" 32codename="Bolero" 33 34VERSION=${version} 35 36PACKAGE="sawfish" 37GETTEXT_PACKAGE=${PACKAGE} 38 39install_sh=../install-sh 40 41SUBDIRS="src lisp scripts themes sounds man" 42 43sawfishdir='${datadir}/sawfish' 44lispdir='${sawfishdir}/lisp' 45localedir='${datadir}/locale' 46sawfishexecdir='${libdir}/sawfish' 47 48dnl Several checks 49AC_C_CONST 50AC_C_INLINE 51AC_C_BIGENDIAN 52AC_TYPE_SIZE_T 53AC_FUNC_ALLOCA 54AC_FUNC_VPRINTF 55AC_CHECK_FUNCS(gethostname socket snprintf getpagesize) 56AC_PROG_INSTALL 57AC_CHECK_LIB(nsl, xdr_void) 58AC_CHECK_LIB(socket, bind) 59AC_HEADER_SYS_WAIT 60AC_HEADER_TIME 61AC_CHECK_HEADERS(fcntl.h sys/time.h sys/utsname.h) 62PKG_PROG_PKG_CONFIG 63 64dnl Check for X headers, etc 65_cppflags="${CPPFLAGS}" 66CPPFLAGS="${CPPFLAGS} ${X_CFLAGS}" 67 68AC_ARG_WITH(xorg-x11r7, 69 [ --with-xorg-x11r7 Use X.Org X11R7 70 --without-xorg-x11r7 Use X.Org/XFree86 X11R6 instead], [], [with_xorg_x11r7=yes]) 71 72if test "$with_xorg_x11r7" != "no"; then 73 74AC_CHECK_HEADERS(X11/extensions/Xdbe.h, [], [], [#include <X11/Xlib.h> ]) 75 76dnl Checks for X extensions/libraries 77XINERAMA_LIBS="" 78XRANDR_LIBS="" 79XFT_LIBS="" 80XFT_CFLAGS="" 81 82AC_ARG_WITH([xinerama], [AS_HELP_STRING([--with-xinerama], [Include Xinerama support])], [], [with_xinerama=yes]) 83 84if test "$with_xinerama" != "no"; then 85 86PKG_CHECK_MODULES(libXinerama, xinerama >= 1.0 87 ,XINERAMA_LIBS="-lXinerama" 88 AC_DEFINE(HAVE_X11_EXTENSIONS_XINERAMA_H, 1, [Have xinerama]) 89 ,AC_MSG_ERROR([cannot locate libXinerama])) 90 91fi 92 93PKG_CHECK_MODULES(libXRandR, xrandr >= 1.0 94 ,XRANDR_LIBS="-lXrandr" 95 AC_DEFINE(HAVE_X11_EXTENSIONS_XRANDR_H, 1, [Have xrandr]) 96 ,AC_MSG_ERROR([cannot locate libXRandR])) 97 98PKG_CHECK_MODULES(libXft, xft >= 1.0 99 ,XFT_LIBS="-lXft" 100 XFT_CFLAGS="`$PKG_CONFIG --cflags xft`" 101 AC_DEFINE(HAVE_X11_XFT_XFT_H, 1, [Have xft]) 102 ,AC_MSG_ERROR([cannot locate libXft])) 103 104dnl is X available? 105X_LIBS="" 106 107PKG_CHECK_MODULES(libX11, x11 >= 1.0 108 ,AC_DEFINE(HAVE_X11, 1, [Have X11]) 109 X_LIBS="`$PKG_CONFIG --libs x11`" 110 X_CFLAGS="`$PKG_CONFIG --cflags x11`" 111 AC_DEFINE(X_DISPLAY_MISSING, 0, [Have x11]) 112 ,AC_MSG_ERROR([cannot locate libX11])) 113 114X_LIBS="${X_LIBS} -lXext -lXrender" 115 116X_EXTRA_LIBS="" 117 118PKG_CHECK_MODULES(libICE, ice >= 1.0 119 ,X_EXTRA_LIBS="${X_EXTRA_LIBS} -lICE" 120 AC_DEFINE(HAVE_X11_ICE_ICE_H, 1, [Have libice]) 121 ,AC_MSG_ERROR([cannot locate libICE])) 122 123PKG_CHECK_MODULES(libSM, sm >= 1.0 124 ,X_EXTRA_LIBS="${X_EXTRA_LIBS} -lSM" 125 AC_DEFINE(HAVE_X11_SM_SMLIB_H, 1, [Have smlib]) 126 ,AC_MSG_ERROR([cannot locate libSM])) 127 128PKG_CHECK_MODULES(XTest, xtst >= 1.0 129 ,X_EXTRA_LIBS="${X_EXTRA_LIBS} -lXtst" 130 AC_DEFINE(HAVE_X11_EXTENSIONS_XTST_H, 1, [Have Xtest (libXtst)]) 131 ,AC_MSG_ERROR([cannot locate Xtest (libXtst)])) 132 133X_SERVER="X.Org X11R7" 134 135CPPFLAGS="${_cppflags}" 136 137else 138 139AC_CHECK_HEADERS(X11/ICE/ICE.h X11/SM/SMlib.h X11/extensions/Xdbe.h X11/extensions/XTest.h, [], [], [#include <X11/Xlib.h> ]) 140 141dnl Checks for X extensions/libraries 142XINERAMA_LIBS="" 143XRANDR_LIBS="" 144XFT_LIBS="" 145XFT_CFLAGS="" 146 147if test "$with_xinerama" != "no"; then 148 149AC_CHECK_LIB(Xinerama, XineramaQueryScreens, 150 [XINERAMA_LIBS="-lXinerama" 151 AC_CHECK_HEADERS(X11/extensions/Xinerama.h)], 152 [],[$X_LIBS -lX11 -lXext]) 153 154fi 155 156AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration, 157 [XRANDR_LIBS="-lXrandr" 158 AC_CHECK_HEADERS(X11/extensions/Xrandr.h, [], [], 159 [#include <X11/Xlib.h> ])], 160 [],[$X_LIBS -lX11 -lXext]) 161 162dnl Try using $PKG_CONFIG first, since it looks like Xft2 may fail our 163dnl hand-crafted tests 164PKG_CHECK_MODULES(XFT, xft >= 1.0, 165 [_cppflags=$CPPFLAGS 166 CPPFLAGS="$CPPFLAGS $XFT_CFLAGS" 167 AC_CHECK_HEADERS(X11/Xft/Xft.h) 168 CPPFLAGS=$_cppflags], 169 [AC_CHECK_LIB(Xft, XftDrawCreate, 170 [XFT_LIBS="-lXft -lXrender" 171 AC_CHECK_HEADERS(X11/Xft/Xft.h)], 172 [], [$X_LIBS -lX11 -lXext])]) 173 174dnl is X available? 175if test "${no_x}" != "yes"; then 176 AC_DEFINE(HAVE_X11, 1, [Have X11]) 177 X_LIBS="${X_LIBS} -lXext -lXrender" 178 X_EXTRA_LIBS="-lSM -lICE -lXtst" 179else 180 AC_MSG_ERROR([You need X11 for sawfish]) 181fi 182 183X_SERVER="X.Org/XFree86 X11R6" 184 185CPPFLAGS="${_cppflags}" 186 187fi 188 189dnl Checks for pango 190 191AC_ARG_WITH(pango, 192 [ --with-pango Use Pango instead of Xft 193 --without-pango], [], [with_pango=yes]) 194 195if test "$with_pango" = "yes"; then 196 197PANGO_MIN_VER="1.8.0" 198 199PANGO_MODULES="pango " 200 201PKG_CHECK_MODULES(PANGO, pango >= ${PANGO_MIN_VER} 202 ,AC_DEFINE(HAVE_PANGO, 1, [Have pango]) FONT_LOADER="Pango" 203 ,AC_MSG_ERROR([cannot locate pango >= $PANGO_MIN_VER])) 204 205PKG_CHECK_MODULES(PANGOXFT, pangoxft >= ${PANGO_MIN_VER} 206 ,AC_DEFINE(HAVE_PANGO_XFT, 1, [Have pangoxft]) PANGO_MODULES="${PANGO_MODULES} pangoxft" have_pango_xft="yes" FONT_LOADER="Pango XFT" AC_SUBST(have_pango_xft) 207 ,AC_MSG_WARN([pango xft support not available $PANGO_MIN_VER])) 208 209PANGO_LIBS=`$PKG_CONFIG --libs $PANGO_MODULES` 210PANGO_CFLAGS=`$PKG_CONFIG --cflags $PANGO_MODULES` 211 212else FONT_LOADER="X.Org" 213fi 214 215dnl Check for librep 216REP_MIN_VER="0.92.3" 217 218AC_CHECK_PROG(REP_BIN, [rep], [yes]) 219if test "$REP_BIN" != "yes"; then 220 echo "rep binary not found!" 221 exit 1 222fi 223 224PKG_CHECK_MODULES(LIBREP, librep >= ${REP_MIN_VER} 225 ,REP_EXECDIR="`$PKG_CONFIG --variable=repcommonexecdir librep`" 226 REP_CFLAGS="`$PKG_CONFIG --cflags librep`" 227 REP_LIBS="`$PKG_CONFIG --libs librep`" 228 REP_MSGFMT="`which msgfmt`" 229 REP_VERSION="`$PKG_CONFIG --variable=version librep`" 230 ,AC_MSG_ERROR([cannot locate librep >= $REP_MIN_VER])) 231 232dnl Check for GTK+2 233GTK_MIN_VER="2.24.0" 234GDK_MIN_VER="2.23.0" 235 236PKG_CHECK_MODULES(GTK, gtk+-2.0 >= ${GTK_MIN_VER} 237 ,GTK_LIBS="`$PKG_CONFIG --libs gtk+-2.0`" 238 GTK_CFLAGS="`$PKG_CONFIG --cflags gtk+-2.0`" 239 AC_DEFINE(HAVE_GTK, 1, [Have GTK]) 240 ,AC_MSG_ERROR([cannot locate gtk+ >= $GTK_MIN_VER])) 241 242dnl Check for rep-gtk 243REP_GTK_MIN_VER="0.90.7" 244 245PKG_CHECK_MODULES(REP_GTK, rep-gtk >= ${REP_GTK_MIN_VER} 246 , 247 ,AC_MSG_ERROR([cannot locate rep-gtk >= $REP_GTK_MIN_VER])) 248 249dnl Check for image handling libraries 250AC_ARG_WITH(gdk-pixbuf, 251 [ --with-gdk-pixbuf Use gdk-pixbuf for image management 252 --without-gdk-pixbuf Use Imlib1 instead], [], [with_gdk_pixbuf=yes]) 253 254if test "$with_gdk_pixbuf" != "no"; then 255 PKG_CHECK_MODULES(GDK_PIXBUF, gdk-pixbuf-xlib-2.0 >= ${GDK_MIN_VER} 256 ,IMAGE_CFLAGS="`$PKG_CONFIG --cflags gdk-pixbuf-xlib-2.0`" 257 IMAGE_LIBS="`$PKG_CONFIG --libs gdk-pixbuf-xlib-2.0`" 258 IMAGE_PC="gdk-pixbuf-xlib-2.0 >= ${GDK_MIN_VER}" 259 AC_DEFINE(HAVE_GDK_PIXBUF, 1, [Have gdk-pixbuf]) 260 AC_DEFINE(NEED_PIXMAP_CACHE, 1, [Need pixmap cache]) 261 IMAGE_LOADER="GDK Pixbuf Xlib" 262 imageloader="gdk-pixbuf-xlib" 263 with_gdk_pixbuf=yes 264 ,AC_MSG_ERROR([cannot locate gdk-pixbuf-xlib-2.0 >= $GTK_MIN_VER]) 265 with_gdk_pixbuf=no) 266fi 267 268if test "$with_gdk_pixbuf" = "no"; then 269 PKG_CHECK_MODULES(IMLIB1, imlib >= 1.9 270 ,IMAGE_CFLAGS="-I`$PKG_CONFIG --variable includedir imlib`" 271 IMAGE_LIBS="`$PKG_CONFIG --libs imlib`" 272 IMAGE_PC="imlib >= 1.9" 273 AC_DEFINE(HAVE_IMLIB, 1, [Have Imlib1]) 274 IMLIB_VERSION="`$PKG_CONFIG --modversion imlib`" 275 IMAGE_LOADER="IMLIB 1" 276 imageloader="imlib1" 277 ,AC_MSG_ERROR([cannot locate imlib1 library])) 278fi 279 280dnl Check wether to install mo files 281 282AC_ARG_WITH(nls, 283 [ --with-nls Install translations 284 --without-nls], [], [with_nls=yes]) 285 286if test "$with_nls" = "yes"; then 287 SUBDIRS="${SUBDIRS} po" 288fi 289 290dnl session files stuff 291 292AC_ARG_WITH(kde4session, 293 [ --with-kde4session install kde4 session files 294 --without-kde4session], [], [with_kde4session=yes]) 295 296KDE4_SESSION="$with_kde4session" 297 298if test "$with_kde4session" = "yes"; then 299 KDED4IR="`kde4-config --install data`" 300fi 301 302dnl fallback 303if test "x$KDE4DIR" = x; then 304 KDE4DIR="${datadir}/kde4/apps/" 305fi 306 307AC_ARG_WITH(kde5session, 308 [ --with-kde5session install kde5 session files 309 --without-kde5session], [], [with_kde5session=yes]) 310 311KDE5_SESSION="$with_kde5session" 312 313if test "$with_kde5session" = "yes"; then 314 KDE5DIR="`kf5-config --install data`" 315fi 316 317dnl fallback 318if test "x$KDE5DIR" = x; then 319 KDE5DIR="${datadir}/" 320fi 321 322AC_ARG_WITH(luminasession, 323 [ --with-luminasession install lumina session files 324 --without-luminasession], [], [with_luminasession=yes]) 325 326LUMINA_SESSION="$with_luminasession" 327 328AC_ARG_WITH(matesession, 329 [ --with-matesession install mate session files 330 --without-matesession], [], [with_matesession=yes]) 331 332MATE_SESSION="$with_matesession" 333 334AC_ARG_WITH(xfcesession, 335 [ --with-xfcesession install xfce session files 336 --without-xfcesession], [], [with_xfcesession=yes]) 337 338XFCE_SESSION="$with_xfcesession" 339 340AC_ARG_WITH(gnome2session, 341 [ --with-gnome2session install gnome2 session files 342 --without-gnome2session], [], [with_gnome2session=yes]) 343 344GNOME2_SESSION="$with_gnome2session" 345 346dnl Check for GNOME location 347AC_ARG_WITH(gnome_prefix, 348 [ --with-gnome-prefix=DIR Root of GNOME installation], [], 349 [ with_gnome_prefix="" ]) 350AC_MSG_CHECKING([for GNOME prefix]) 351if test "x$with_gnome_prefix" = "x"; then 352 with_gnome_prefix='${prefix}' 353fi 354AC_MSG_RESULT([$with_gnome_prefix]) 355GNOMEDIR=$with_gnome_prefix 356 357dnl How do we get dependency lines in the Makefile? 358if test "x${GCC}" = "xyes"; then 359 MAKEDEP='$(CC) -MM' 360else 361 case ${host} in 362 *-dec-osf*) 363 dnl works on Tru64 364 MAKEDEP='$(CC) -M' 365 ;; 366 *-sun-solaris*) 367 dnl works on Solaris 368 MAKEDEP='/usr/ccs/lib/cpp -M' 369 ;; 370 *) 371 dnl disable dependences? 372 MAKEDEP='true' 373 ;; 374 esac 375fi 376 377AC_MSG_CHECKING(for languages to install) 378AC_ARG_ENABLE(linguas, 379 [ --enable-linguas=LANGS... Install language catalogs for language codes LANGS], 380 [ LINGUAS="$enableval" ], [ LINGUAS="" ]) 381if test "x$LINGUAS" = x; then 382 changequote({,}) 383 LINGUAS="`echo $srcdir/po/*.po | sed -e 's/[^ ]*\/po\/\([^ ]*\)\.po/\1/g'`" 384 changequote([,]) 385fi 386dnl too gross for words.. 387if test $REP_MSGFMT = true; then 388 LINGUAS="" 389fi 390AC_MSG_RESULT($LINGUAS) 391 392dnl Nonstandard exported symbols 393AC_SUBST(version) 394AC_SUBST(subversion) 395AC_SUBST(sawfishdir) 396AC_SUBST(sawfishexecdir) 397AC_SUBST(lispdir) 398AC_SUBST(localedir) 399AC_SUBST(install_sh) 400AC_SUBST(datarootdir) 401AC_SUBST(imageloader) 402AC_SUBST(MAKEDEP) 403AC_SUBST(GNOMEDIR) 404AC_SUBST(KDEDIR) 405AC_SUBST(SUBDIRS) 406AC_SUBST(HAVE_X11) 407AC_SUBST(CPPFLAGS) 408AC_SUBST(CFLAGS) 409AC_SUBST(LIBS) 410AC_SUBST(X_CFLAGS) 411AC_SUBST(X_LIBS) 412AC_SUBST(X_EXTRA_LIBS) 413AC_SUBST(XINERAMA_LIBS) 414AC_SUBST(XRANDR_LIBS) 415AC_SUBST(XFT_LIBS) 416AC_SUBST(XFT_CFLAGS) 417AC_SUBST(PANGO_MIN_VER) 418AC_SUBST(PANGO_LIBS) 419AC_SUBST(PANGO_CFLAGS) 420AC_SUBST(REP_EXECDIR) 421AC_SUBST(REP_CFLAGS) 422AC_SUBST(REP_LIBS) 423AC_SUBST(REP_VERSION) 424AC_SUBST(REP_MSGFMT) 425AC_SUBST(IMAGE_LIBS) 426AC_SUBST(IMAGE_CFLAGS) 427AC_SUBST(IMAGE_PC) 428AC_SUBST(GTK_MIN_VER) 429AC_SUBST(GTK_LIBS) 430AC_SUBST(GTK_CFLAGS) 431AC_SUBST(REP_MIN_VER) 432AC_SUBST(REP_GTK_MIN_VER) 433AC_SUBST(VERSION) 434AC_SUBST(PACKAGE) 435AC_SUBST(GETTEXT_PACKAGE) 436AC_SUBST(LINGUAS) 437AC_SUBST(KDE4_SESSION) 438AC_SUBST(GNOME2_SESSION) 439AC_SUBST(KDE5_SESSION) 440AC_SUBST(LUMINA_SESSION) 441AC_SUBST(MATE_SESSION) 442AC_SUBST(XFCE_SESSION) 443AC_SUBST(KDE4DIR) 444AC_SUBST(KDE5DIR) 445AC_SUBST(codename) 446 447dnl Build all files 448AC_CONFIG_FILES([ 449Makedefs 450Makefile 451data/sawfish.ebuild 452data/sawfish.pc 453data/sawfish.spec 454lisp/Makefile 455lisp/sawfish/cfg/Makefile 456lisp/sawfish/gtk/Makefile 457lisp/sawfish/gtk/widgets/font.jl 458man/Makefile 459po/Makefile 460scripts/Makefile 461sounds/Makefile 462src/Makefile 463themes/Makefile 464]) 465 466AC_OUTPUT 467 468mv data/sawfish.ebuild sawfish-$version.ebuild 469mv data/sawfish.spec sawfish.spec 470 471REP_VERSION="`$PKG_CONFIG --modversion librep`" 472REP_GTK_VERSION="`$PKG_CONFIG --modversion rep-gtk`" 473GLIB_VERSION="`$PKG_CONFIG --modversion glib-2.0`" 474PANGO_VERSION="`$PKG_CONFIG --modversion pango`" 475 476if $PKG_CONFIG --exists cairo; then 477 CAIRO_VERSION="`$PKG_CONFIG --modversion cairo`" 478fi 479 480GTK_VERSION="`$PKG_CONFIG --modversion gtk+-2.0`" 481 482echo " 483 == == == == == == == == == == == == == 484 485 sawfish: $version '$codename' 486 487 == == == == == == == == == == == == == 488 489 prefix: $prefix 490 exec_prefix: $exec_prefix 491 libdir: $libdir 492 493 == == == == == == == == == == == == == 494 495 compiler: $CC 496 cflags: $CFLAGS $DEVELOPMENT_CFLAGS 497 preprocessor: $CPP 498 cppflags: $CPPFLAGS 499 ldflags: $LDFLAGS 500 makeflags: $MAKEFLAGS 501 502 == == == == == == == == == == == == == 503 504 rep: $REP_VERSION 505 rep-gtk: $REP_GTK_VERSION 506 glib: $GLIB_VERSION" 507 508if $PKG_CONFIG --exists cairo; then 509 echo " cairo: $CAIRO_VERSION" 510fi 511 512echo " pango: $PANGO_VERSION 513 gtk+: $GTK_VERSION" 514 515if test "$with_gdk_pixbuf" = "no"; then 516echo " imlib1: $IMLIB_VERSION" 517fi 518 519echo " 520 == == == == == == == == == == == == == 521 522 xserver: $X_SERVER 523 524 == == == == == == == == == == == == == 525 526 image loader: $IMAGE_LOADER 527 528 == == == == == == == == == == == == == 529 530 font loader: $FONT_LOADER 531 532 == == == == == == == == == == == == == 533 534 Be sure to read README.IMPORTANT! 535 536 == == == == == == == == == == == == == 537 " 538 539dnl If it doesn't look like GNU Make is being used, give a friendly warning 540tem=`make --version -f /dev/null 2>&1 | grep GNU` 541if test "x$tem" = "x"; then 542 AC_MSG_WARN([You need to use GNU Make when compiling sawfish]) 543fi 544 545dnl Local variables: 546dnl major-mode: sh-mode 547dnl End: 548