configure.in 27.5 KB
Newer Older
Elliot Lee's avatar
Elliot Lee committed
1 2 3
# Process this file with autoconf to produce a configure script.
AC_INIT(gdk/gdktypes.h)

4 5 6 7 8 9 10 11 12 13 14
# In the following, there are a the following variants
# of GLib cflags and libs variables
#
# GLIB_CFLAGS:  cflags for compiling libraries and example progs
# GLIB_LIBS:    libraries for linking example programs
# GLIB_DEPLIBS: libraries for linking libraries against
# glib_cflags:  cflags to store in gtk-config
# glib_libs:    libs to store in gtk-config
# glib_thread_cflags: cflags to store in gtk-config for gtk-config gthread
# glib_thread_libs:   libs to store in gtk-config for gtk-config gthread

15 16 17
# Save this value here, since automake will set cflags later
cflags_set=${CFLAGS+set}

18 19 20 21
dnl we to AC_DIVERT_PUSH/AC_DIVERT_POP these variable definitions so they
dnl are available for $ac_help expansion (don't we all *love* autoconf?)
AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
#
22 23 24 25 26 27 28 29
# Making releases:
#   GTK_MICRO_VERSION += 1;
#   GTK_INTERFACE_AGE += 1;
#   GTK_BINARY_AGE += 1;
# if any functions have been added, set GTK_INTERFACE_AGE to 0.
# if backwards compatibility has been broken,
# set GTK_BINARY_AGE and GTK_INTERFACE_AGE to 0.
#
30
GTK_MAJOR_VERSION=1
31
GTK_MINOR_VERSION=3
Owen Taylor's avatar
Owen Taylor committed
32
GTK_MICRO_VERSION=2
33 34
GTK_INTERFACE_AGE=0
GTK_BINARY_AGE=0
35
GTK_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$GTK_MICRO_VERSION
36 37 38
dnl
AC_DIVERT_POP()dnl

39 40 41
AC_SUBST(GTK_MAJOR_VERSION)
AC_SUBST(GTK_MINOR_VERSION)
AC_SUBST(GTK_MICRO_VERSION)
42 43
AC_SUBST(GTK_INTERFACE_AGE)
AC_SUBST(GTK_BINARY_AGE)
44 45 46 47 48 49 50 51 52 53 54 55
AC_SUBST(GTK_VERSION)

# libtool versioning
LT_RELEASE=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION
LT_CURRENT=`expr $GTK_MICRO_VERSION - $GTK_INTERFACE_AGE`
LT_REVISION=$GTK_INTERFACE_AGE
LT_AGE=`expr $GTK_BINARY_AGE - $GTK_INTERFACE_AGE`
AC_SUBST(LT_RELEASE)
AC_SUBST(LT_CURRENT)
AC_SUBST(LT_REVISION)
AC_SUBST(LT_AGE)

56 57 58 59 60 61 62 63 64 65 66 67 68
#
# gdk-pixbuf gets versioned separately, and for now, using standard
# libtool versioning, not GTK+-style versioning
#
GDK_PIXBUF_MAJOR=0
GDK_PIXBUF_MINOR=8
GDK_PIXBUF_MICRO=0
GDK_PIXBUF_VERSION="${GDK_PIXBUF_MAJOR}.${GDK_PIXBUF_MINOR}.${GDK_PIXBUF_MICRO}"
AC_SUBST(GDK_PIXBUF_MAJOR)
AC_SUBST(GDK_PIXBUF_MINOR)
AC_SUBST(GDK_PIXBUF_MICRO)
AC_SUBST(GDK_PIXBUF_VERSION)

69 70 71 72
# For automake.
VERSION=$GTK_VERSION
PACKAGE=gtk+

73 74
GETTEXT_PACKAGE=gtk20
AC_SUBST(GETTEXT_PACKAGE)
75
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE")
76

77 78 79
# Save this value here, since automake will set cflags later
cflags_set=${CFLAGS+set}

Elliot Lee's avatar
Elliot Lee committed
80
dnl Initialize automake stuff
81
AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define)
Elliot Lee's avatar
Elliot Lee committed
82 83 84 85 86 87 88 89 90 91 92 93

# Specify a configuration file
AM_CONFIG_HEADER(config.h)

dnl Initialize libtool
AM_PROG_LIBTOOL

dnl Initialize maintainer mode
AM_MAINTAINER_MODE

AC_CANONICAL_HOST

94 95 96 97 98 99 100 101 102 103 104 105
dnl figure debugging default, prior to $ac_help setup
dnl
AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
if test `expr $GTK_MINOR_VERSION \% 2` = 1 ; then
        debug_default=yes
else
        debug_default=minimum
fi
AC_DIVERT_POP()dnl

dnl declare --enable-* args and collect ac_help strings
AC_ARG_ENABLE(debug, [  --enable-debug=[no/minimum/yes] turn on debugging [default=$debug_default]],,enable_debug=$debug_default)
Elliot Lee's avatar
Elliot Lee committed
106 107 108 109
AC_ARG_ENABLE(shm, [  --enable-shm            support shared memory if available [default=yes]],
		   echo $enable_shm, enable_shm="yes")
AC_ARG_ENABLE(ansi, [  --enable-ansi           turn on strict ansi [default=no]],
		    , enable_ansi=no)
110
AC_ARG_WITH(glib, [  --with-glib=DIR         Use uninstalled copy of glib])
111
AC_ARG_ENABLE(xim, [  --enable-xim            support XIM [default=yes]],
112
			, enable_xim="yes")
113 114
AC_ARG_ENABLE(xim_inst, [  --disable-xim-inst      does not use xim instantiate callback],
			, enable_xim_inst="maybe")
Havoc Pennington's avatar
Havoc Pennington committed
115 116
AC_ARG_ENABLE(xkb, [  --enable-xkb            support XKB [default=maybe]],
			, enable_xkb="maybe")
117
AC_ARG_ENABLE(rebuilds, [  --disable-rebuilds      disable all source autogeneration rules],,enable_rebuilds=yes)
118
AC_ARG_WITH(locale, [  --with-locale=LOCALE    locale name you want to use ])
Elliot Lee's avatar
Elliot Lee committed
119

120
AC_ARG_WITH(xinput, [  --with-xinput=[no/gxi/xfree] support XInput ])
Elliot Lee's avatar
Elliot Lee committed
121

122
gdktarget=x11
123 124
gdktargetlib=libgdk-x11-1.3.la
gtktargetlib=libgtk-x11-1.3.la
125 126 127 128 129 130 131 132 133
AC_ARG_WITH(gdktarget, [  --with-gdktarget=[x11/nanox/linux-fb] select GDK target [default=x11] ],
	gdktarget=$with_gdktarget)

AC_SUBST(gdktarget)
case $gdktarget in
  x11|nanox|linux-fb) ;;
  *) AC_MSG_ERROR([Invalid target for GDK: use x11, nanox or linux-fb.]);;
esac

134
if test "x$enable_debug" = "xyes"; then
Tim Janik's avatar
Tim Janik committed
135
  test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
136
  GTK_DEBUG_FLAGS="-DG_ENABLE_DEBUG"
Elliot Lee's avatar
Elliot Lee committed
137
else
138
  if test "x$enable_debug" = "xno"; then
139
    GTK_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DGTK_NO_CHECK_CASTS"
140
  else
141
    GTK_DEBUG_FLAGS="-DGTK_NO_CHECK_CASTS"
142
  fi
Elliot Lee's avatar
Elliot Lee committed
143 144
fi

145 146
AC_DEFINE_UNQUOTED(GTK_COMPILED_WITH_DEBUGGING, "${enable_debug}")

Elliot Lee's avatar
Elliot Lee committed
147 148 149 150 151
# Build time sanity check...
AM_SANITY_CHECK

# Checks for programs.
AC_PROG_CC
152
AC_ISC_POSIX
Elliot Lee's avatar
Elliot Lee committed
153 154 155 156
AM_PROG_CC_STDC
AC_PROG_INSTALL
AC_PROG_MAKE_SET

Raja R Harinath's avatar
Raja R Harinath committed
157
changequote(,)dnl
158
if test "x$GCC" = "xyes"; then
Raja R Harinath's avatar
Raja R Harinath committed
159 160 161 162
  case " $CFLAGS " in
  *[\ \	]-Wall[\ \	]*) ;;
  *) CFLAGS="$CFLAGS -Wall" ;;
  esac
Elliot Lee's avatar
Elliot Lee committed
163

164
  if test "x$enable_ansi" = "xyes"; then
Raja R Harinath's avatar
Raja R Harinath committed
165 166 167 168 169 170 171 172 173
    case " $CFLAGS " in
    *[\ \	]-ansi[\ \	]*) ;;
    *) CFLAGS="$CFLAGS -ansi" ;;
    esac

    case " $CFLAGS " in
    *[\ \	]-pedantic[\ \	]*) ;;
    *) CFLAGS="$CFLAGS -pedantic" ;;
    esac
Elliot Lee's avatar
Elliot Lee committed
174 175
  fi
fi
Raja R Harinath's avatar
Raja R Harinath committed
176
changequote([,])dnl
Elliot Lee's avatar
Elliot Lee committed
177

178 179 180
# Honor aclocal flags
ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"

181
# define a MAINT-like variable REBUILD which is set if Perl
182 183 184 185 186
# and awk are found, so autogenerated sources can be rebuilt

AC_PROG_AWK
AC_CHECK_PROGS(PERL, perl5 perl)

187 188 189
# We would like indent, but don't require it.
AC_CHECK_PROG(INDENT, indent, indent)

190
REBUILD=\#
191 192 193 194 195
if test "x$enable_rebuilds" = "xyes" && \
     test -n "$PERL" && \
     $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 && \
     test -n "$AWK" ; then
  REBUILD=
196 197
fi
AC_SUBST(REBUILD)
198

199
AC_CHECK_FUNCS(lstat mkstemp sigsetjmp bind_textdomain_codeset)
Tor Lillqvist's avatar
Tor Lillqvist committed
200

201 202 203 204
AC_MSG_CHECKING(whether make is GNU Make)
STRIP_BEGIN=
STRIP_END=
if $ac_make --version 2>/dev/null | grep '^GNU Make ' >/dev/null ; then
205
	STRIP_BEGIN='$(strip $(STRIP_DUMMY)'
206 207 208 209 210
	STRIP_END=')'
	AC_MSG_RESULT(yes)
else
	AC_MSG_RESULT(no)
fi
211 212
STRIP_DUMMY=
AC_SUBST(STRIP_DUMMY)
213 214 215
AC_SUBST(STRIP_BEGIN)
AC_SUBST(STRIP_END)

Owen Taylor's avatar
Owen Taylor committed
216
# i18n stuff
217
ALL_LINGUAS="ca cs da de el en_GB en@IPA es et eu fa fi fr ga gl he hr hu ia it ja ko lt nl no pl pt pt_BR ro ru sk sl sp sr sv tr uk wa zh_TW zh_CN"
218
AM_GTK_GNU_GETTEXT
219 220
LIBS="$LIBS $INTLLIBS"

221 222 223 224
# AM_GTK_GNU_GETTEXT above substs $DATADIRNAME
# this is the directory where the *.{mo,gmo} files are installed
gtklocaledir='${prefix}/${DATADIRNAME}/locale'
AC_SUBST(gtklocaledir)
Owen Taylor's avatar
Owen Taylor committed
225

226 227
dnl The DU4 header files don't provide library prototypes unless 
dnl -std1 is given to the native cc.
Manish Singh's avatar
Manish Singh committed
228
AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
229

230
gtk_save_LIBS=$LIBS
231 232 233 234
LIBS="$LIBS -lm"
AC_TRY_RUN([#include <math.h>
             int main (void) { return (log(1) != log(1.)); }],
     AC_MSG_RESULT(none needed),
235
     gtk_save_CFLAGS="$CFLAGS"
236 237 238 239 240
     CFLAGS="$CFLAGS -std1"
     AC_TRY_RUN([#include <math.h>
	         int main (void) { return (log(1) != log(1.)); }],
         AC_MSG_RESULT(-std1),
         AC_MSG_RESULT()
241
         CFLAGS="$gtk_save_CFLAGS"
242
         AC_MSG_WARN(
243 244 245 246
                [No ANSI prototypes found in library. (-std1 didn't work.)]),
	 true
     ),
     AC_MSG_RESULT(none needed)
247 248 249
)
LIBS=$gtk_save_LIBS

250 251 252 253 254
MATH_LIB=-lm
GTK_LIBS_EXTRA=
AC_MSG_CHECKING(for the BeOS)
case $host in
  *-*-beos*)
255
    AC_MSG_RESULT(yes)
256 257 258
    GTK_LIBS_EXTRA="-L\$(top_builddir_full)/gdk/.libs -lgdk"
    MATH_LIB=
  ;;
259 260
  *)
    AC_MSG_RESULT(no)
261 262 263 264 265
  ;;
esac
AC_SUBST(MATH_LIB)
AC_SUBST(GTK_LIBS_EXTRA)

266 267 268 269
dnl NeXTStep cc seems to need this
AC_MSG_CHECKING([for extra flags for POSIX compliance])
AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
  AC_MSG_RESULT(none needed),
270
  gtk_save_CFLAGS="$CFLAGS"
271 272 273 274
  CFLAGS="$CFLAGS -posix"
  AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
    AC_MSG_RESULT(-posix),
    AC_MSG_RESULT()
275
    CFLAGS="$gtk_save_CFLAGS"
276 277
    AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))

278 279 280 281 282 283 284 285
if test x$with_glib = xyes ; then
  AC_MSG_ERROR([
*** Directory must be specified for --with-glib])
fi

if test x$with_glib = x ; then 
  # Look for separately installed glib

286
  AM_PATH_GLIB_2_0(1.3.1,,
287
    AC_MSG_ERROR([
288
*** GLIB 1.3.1 or better is required. The latest version of GLIB
289
*** is always available from ftp://ftp.gtk.org/.]),
290
    gobject gmodule gthread)
291

292
  # we do not want to make all gtk progs to link to thread libraries.
293
  glib_cflags=`$GLIB_CONFIG_2_0 glib gobject gmodule --cflags`
294
  glib_thread_cflags="$GLIB_CFLAGS"
295
  glib_libs=`$GLIB_CONFIG_2_0 glib gobject gmodule --libs`
296
  glib_thread_libs="$GLIB_LIBS"
297
  GLIB_LIBS="$glib_libs"
298
  GLIB_DEPLIBS="$glib_libs"
299 300 301
else
  # Use uninstalled glib (assume they got the version right)

302 303
  GLIB_CONFIG_2_0=$with_glib/glib-config-2.0
  if test -x $GLIB_CONFIG_2_0 ; then 
304 305 306 307 308 309
    :
  else
    AC_MSG_ERROR([GLIB directory ($with_glib) not present or not configured])
  fi

  # For use in gtk-config
310 311 312 313
  glib_cflags=`$GLIB_CONFIG_2_0 --cflags gmodule`
  glib_thread_cflags=`$GLIB_CONFIG_2_0 --cflags gmodule gthread`
  glib_libs=`$GLIB_CONFIG_2_0 --libs gmodule`
  glib_thread_libs=`$GLIB_CONFIG_2_0 --libs gmodule gthread`
314

315
  glib_release=`$GLIB_CONFIG_2_0 --version | sed 's%\\.[[0-9]]*$%%'`
316 317 318 319 320 321 322 323 324 325 326

  # canonicalize relative paths
  case $with_glib in 
    /*)
      glib_dir=$with_glib
      ;;
    *)
      glib_dir="\$(top_builddir)/$with_glib"
      ;;
  esac

327
  GLIB_CFLAGS="-I$glib_dir -I$glib_dir/gmodule"
328
  GLIB_LIBS="$glib_dir/libglib-1.3.la $glib_dir/gmodule/libgmodule-1.3.la"
329
  GLIB_DEPLIBS=
330 331 332 333 334 335 336

  AC_SUBST(GLIB_CFLAGS)
  AC_SUBST(GLIB_LIBS)
fi

AC_SUBST(glib_cflags)
AC_SUBST(glib_libs)
337 338
AC_SUBST(glib_thread_cflags)
AC_SUBST(glib_thread_libs)
339
AC_SUBST(GLIB_DEPLIBS)
340

341 342
AC_CHECK_HEADERS(dirent.h, AC_DEFINE(HAVE_DIRENT_H))
AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H))
343
AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H))
Tor Lillqvist's avatar
Tor Lillqvist committed
344
AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H))
345

346 347 348
saved_cflags="$CFLAGS"
saved_ldflags="$LDFLAGS"

349 350 351 352
if test "x$gdktarget" = "xx11"; then
  # Find the X11 include and library directories
  AC_PATH_X
  AC_PATH_XTRA
353

354 355 356
  if test "x$x_includes" = "x"; then
    x_includes="/usr/include"
  fi
Elliot Lee's avatar
Elliot Lee committed
357

358 359
  CFLAGS="$CFLAGS $X_CFLAGS"
  LDFLAGS="$LDFLAGS $X_LDFLAGS $X_LIBS"
Elliot Lee's avatar
Elliot Lee committed
360

361 362
  if test "x$no_x" = "xyes"; then 
    AC_MSG_ERROR([
363 364
*** X libraries or include files not found. Check 'config.log' for 
*** more details.])
365
  fi
366

367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382
  # Checks for libraries.
  # Check for the X11 library
  AC_CHECK_LIB(X11, XOpenDisplay, x_libs="-lX11 $X_EXTRA_LIBS", 
    AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]),
    $X_EXTRA_LIBS)

  if test "x$enable_shm" = "xyes"; then
    # Check for the Xext library (needed for XShm extention)
    AC_CHECK_LIB(Xext, XShmAttach, 
        x_libs="-lXext $x_libs", 
        # On AIX, it is in XextSam instead, but we still need -lXext
        AC_CHECK_LIB(XextSam, XShmAttach, 
            x_libs="-lXextSam -lXext $x_libs", 
            no_xext_lib=yes, $x_libs),
        $x_libs)
  fi
Elliot Lee's avatar
Elliot Lee committed
383

384
  # Check for shaped window extension
385

386
  AC_CHECK_LIB(Xext, XShapeCombineMask,
387
      if test -z "`echo $x_libs | grep "\-lXext" 2> /dev/null`"; then
388
           x_libs="-lXext $x_libs"
389
      fi
390 391 392
      AC_DEFINE(HAVE_SHAPE_EXT),
      ,
      $x_libs)
393

394
  # Check for XConvertCase (X11R6 specific)
395

396
  AC_CHECK_LIB(X11, XConvertCase,
397 398 399 400
      AC_DEFINE(HAVE_XCONVERTCASE),
      ,
      $x_libs)

401
  # Check for XIM support.
402

403
  AC_CHECK_LIB(X11, XUnregisterIMInstantiateCallback,
404
	    : ,
405
	    enable_xim_inst="no",
406 407
	    $x_libs)

408 409 410
  # On Solaris, calling XRegisterIMInstantiateCallback seems to
  # cause an immediate segfault, so we disable it, unless
  # the user specifically forces it to be on.
411

412 413 414
  if test x$enable_xim_inst = xmaybe ; then
    case host in
	  *-*-solaris*)
415 416
            enable_xim_inst="no"
            ;;
417
	  *)
418 419
	    enable_xim_inst="yes"
	    ;;
420 421 422 423 424 425 426 427 428
    esac
  fi

  if test "x$enable_xim" = "xyes"; then
    GTK_XIM_FLAGS="-DUSE_XIM"
    if test "x$enable_xim_inst" = "xyes"; then
      AC_DEFINE(USE_X11R6_XIM)
    fi
  fi
429

Havoc Pennington's avatar
Havoc Pennington committed
430 431 432 433 434 435 436 437 438 439 440 441 442 443
  # Check for XKB support.

  if test "x$enable_xkb" = "xyes"; then
        AC_MSG_WARN(XKB support explicitly enabled)
        AC_DEFINE(HAVE_XKB)
  elif test "x$enable_xkb" = "xmaybe"; then
        AC_CHECK_LIB(X11, XkbQueryExtension,
                     AC_DEFINE(HAVE_XKB),
	             ,
	             $x_libs)
  else
        AC_MSG_WARN(XKB support explicitly disabled)
  fi

444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481
  x_cflags="$X_CFLAGS"
  x_ldflags="$X_LDFLAGS $X_LIBS"

  # set up things for XInput

  if test "x$with_xinput" = "xgxi" || test "x$with_xinput" = "xyes"; then
    AC_DEFINE(XINPUT_GXI)
    xinput_progs=gxid
    x_libs="-lXi $x_libs"
  elif test "x$with_xinput" = "xxfree"; then
    AC_DEFINE(XINPUT_XFREE)
    x_libs="-lXi $x_libs"
  else
    AC_DEFINE(XINPUT_NONE)
  fi

  AM_CONDITIONAL(XINPUT_GXI, test x$with_xinput = xgxi)
  AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree)

  if test "x$enable_shm" = "xyes"; then
    # Check for shared memory
    AC_CHECK_HEADER(sys/ipc.h, AC_DEFINE(HAVE_IPC_H), no_sys_ipc=yes)
    AC_CHECK_HEADER(sys/shm.h, AC_DEFINE(HAVE_SHM_H), no_sys_shm=yes)

    # Check for the X shared memory extension header file
    AC_MSG_CHECKING(X11/extensions/XShm.h)
    if test "x$no_xext_lib" = "xyes"; then
      AC_MSG_RESULT(no)
      no_xshm=yes
    else
      if test -f "$x_includes/X11/extensions/XShm.h"; then
        AC_MSG_RESULT(yes)
        AC_DEFINE(HAVE_XSHM_H)
      else
        AC_MSG_RESULT(no)
        no_xshm=yes
      fi
    fi
482
  fi
483 484 485 486 487 488 489

  more_cflags="$x_cflags"
  more_ldflags="$x_ldflags"
  more_libs="$x_libs"
  more_includes="$x_includes"

  # these are already defined above
490 491
  #gdktargetlib = "libgdk-x11-1.3.la"
  #gtktargetlib = "libgtk-x11-1.3.la"
492 493

  AM_CONDITIONAL(USE_X11, true)
494 495
else
  AM_CONDITIONAL(USE_X11, false)
496 497
fi

498 499 500 501 502 503 504 505
if test "x$gdktarget" = "xnanox"; then
  AC_CHECK_LIB(nano-X, GrOpen,,AC_MSG_ERROR([nano-X libraries not found.]))
  # nano-X may require additional libraries
  more_cflags=
  more_ldflags=
  more_libs="-lnano-X"
  more_includes=

506 507
  gdktargetlib="libgdk-nanox-1.3.la"
  gtktargetlib="libgtk-nanox-1.3.la"
508 509 510 511 512 513 514 515 516

  with_xinput=no
  AC_DEFINE(XINPUT_NONE)
  x_cflags=
  x_includes=
  x_ldflags=
  x_libs=
  xinput_progs=
  AM_CONDITIONAL(USE_NANOX, true)
517 518
else
  AM_CONDITIONAL(USE_NANOX, false)
519 520 521 522 523 524 525 526
fi

if test "x$gdktarget" = "xlinux-fb"; then
  more_cflags=
  more_ldflags=
  more_libs=
  more_includes=

527 528
  gdktargetlib="libgdk-linux-fb-1.3.la"
  gtktargetlib="libgtk-linux-fb-1.3.la"
529 530 531 532 533 534 535 536 537 538

  with_xinput=no
  AC_DEFINE(XINPUT_NONE)
  x_cflags=
  x_includes=
  x_ldflags=
  x_libs=
  xinput_progs=
  
  AM_CONDITIONAL(USE_LINUX_FB, true)
539 540
else
  AM_CONDITIONAL(USE_LINUX_FB, false)
541
fi
Elliot Lee's avatar
Elliot Lee committed
542

543 544 545 546 547 548 549
#
# Check for Pango
#
AC_PATH_PROG(PANGO_CONFIG, pango-config, no)
if test x$PANGO_CONFIG = xno ; then
  AC_MSG_ERROR([*** pango-config not found])
fi
550 551 552 553 554 555 556 557

if test "x$gdktarget" = "xx11"; then
	PANGO_CFLAGS="`$PANGO_CONFIG --cflags pangox`"
	PANGO_LIBS="`$PANGO_CONFIG --libs pangox`"
else
	PANGO_CFLAGS="`$PANGO_CONFIG --cflags pango`"
	PANGO_LIBS="`$PANGO_CONFIG --libs pango`"
fi
558 559 560 561 562 563 564 565
CFLAGS="$CFLAGS $PANGO_CFLAGS"
AC_SUBST(PANGO_LIBS)
AC_SUBST(PANGO_CFLAGS)

AC_CHECK_LIB(pango, pango_context_new, :, AC_MSG_ERROR([
*** Pango not found. Pango is required to build
*** GTK+. For more information see http://www.pango.org]), $PANGO_LIBS $x_ldflags $x_libs)

566 567 568
CFLAGS="$saved_cflags"
LDFLAGS="$saved_ldflags"

Elliot Lee's avatar
Elliot Lee committed
569 570 571 572 573 574
AC_SUBST(x_cflags)
AC_SUBST(x_includes)
AC_SUBST(x_ldflags)
AC_SUBST(x_libs)
AC_SUBST(xinput_progs)

575 576 577 578 579 580
AC_SUBST(more_cflags)
AC_SUBST(more_includes)
AC_SUBST(more_ldflags)
AC_SUBST(more_libs)
AC_SUBST(gdktargetlib)
AC_SUBST(gtktargetlib)
Elliot Lee's avatar
Elliot Lee committed
581 582


583 584 585
# Check if X_LOCALE definition is necessary

AC_MSG_CHECKING(need -DX_LOCALE)
586 587 588 589 590 591 592 593 594 595 596

AC_TRY_RUN([
#include <stdio.h>
#include <locale.h>

int
main ()
{
  return setlocale (LC_ALL, "${with_locale}") == NULL;
}],
need_x_locale=no,
597 598
need_x_locale=yes,
need_x_locale=no)
599 600
AC_MSG_RESULT($need_x_locale)

Owen Taylor's avatar
Owen Taylor committed
601
if test $need_x_locale = yes; then
602
  GTK_LOCALE_FLAGS="-DX_LOCALE"
603 604
fi

Elliot Lee's avatar
Elliot Lee committed
605 606 607 608 609 610 611 612
# Checks for header files.
AC_HEADER_STDC

# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST

# Checks for library functions.
AC_TYPE_SIGNAL
613
AC_FUNC_MMAP
Elliot Lee's avatar
Elliot Lee committed
614

Raja R Harinath's avatar
Raja R Harinath committed
615 616
# Check if <sys/select.h> needs to be included for fd_set
AC_MSG_CHECKING([for fd_set])
Elliot Lee's avatar
Elliot Lee committed
617 618
AC_TRY_COMPILE([#include <sys/types.h>],
        [fd_set readMask, writeMask;], gtk_ok=yes, gtk_ok=no)
Raja R Harinath's avatar
Raja R Harinath committed
619 620 621
if test $gtk_ok = yes; then
    AC_MSG_RESULT([yes, found in sys/types.h])
else
Elliot Lee's avatar
Elliot Lee committed
622 623 624
    AC_HEADER_EGREP(fd_mask, sys/select.h, gtk_ok=yes)
    if test $gtk_ok = yes; then
        AC_DEFINE(HAVE_SYS_SELECT_H)
Raja R Harinath's avatar
Raja R Harinath committed
625 626 627 628
        AC_MSG_RESULT([yes, found in sys/select.h])
    else
	AC_DEFINE(NO_FD_SET)
	AC_MSG_RESULT(no)
Elliot Lee's avatar
Elliot Lee committed
629 630 631
    fi
fi

632
# `widechar' tests for gdki18n.h
Raja R Harinath's avatar
Raja R Harinath committed
633
AC_MSG_CHECKING(for wchar.h)
634 635 636
AC_TRY_CPP([#include <wchar.h>], gdk_wchar_h=yes, gdk_wchar_h=no)
if test $gdk_wchar_h = yes; then
   AC_DEFINE(HAVE_WCHAR_H,1,[Have wchar.h include file])
Raja R Harinath's avatar
Raja R Harinath committed
637
fi
638
AC_MSG_RESULT($gdk_wchar_h)
Raja R Harinath's avatar
Raja R Harinath committed
639 640 641

# Check for wctype.h (for iswalnum)
AC_MSG_CHECKING(for wctype.h)
642 643 644
AC_TRY_CPP([#include <wctype.h>], gdk_wctype_h=yes, gdk_wctype_h=no)
if test $gdk_wctype_h = yes; then
   AC_DEFINE(HAVE_WCTYPE_H,1,[Have wctype.h include file])
Raja R Harinath's avatar
Raja R Harinath committed
645
fi
646
AC_MSG_RESULT($gdk_wctype_h)
Raja R Harinath's avatar
Raja R Harinath committed
647 648 649 650 651 652 653

# in Solaris 2.5, `iswalnum' is in -lw
GDK_WLIBS=
AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum,GDK_WLIBS=-lw)])

oLIBS="$LIBS"
LIBS="$LIBS $GDK_WLIBS"
654
# The following is necessary for Linux libc-5.4.38
Raja R Harinath's avatar
Raja R Harinath committed
655 656 657 658 659 660 661 662 663 664 665 666 667 668
AC_MSG_CHECKING(if iswalnum() and friends are properly defined)
AC_TRY_LINK([#include <stdlib.h>],[
#if (defined(HAVE_WCTYPE_H) || defined(HAVE_WCHAR_H))
#  ifdef HAVE_WCTYPE_H
#    include <wctype.h>
#  else
#    ifdef HAVE_WCHAR_H
#      include <wchar.h>
#    endif
#  endif
#else
#  define iswalnum(c) ((wchar_t)(c) <= 0xFF && isalnum(c))
#endif
iswalnum((wchar_t) 0);
669
], gdk_working_wctype=yes, gdk_working_wctype=no)
Raja R Harinath's avatar
Raja R Harinath committed
670 671
LIBS="$oLIBS"

672 673
if test $gdk_working_wctype = no; then
   AC_DEFINE(HAVE_BROKEN_WCTYPE,1,[Is the wctype implementation broken])
Raja R Harinath's avatar
Raja R Harinath committed
674 675
   GDK_WLIBS=
fi
676
AC_MSG_RESULT($gdk_working_wctype)
Raja R Harinath's avatar
Raja R Harinath committed
677 678
AC_SUBST(GDK_WLIBS)

679 680 681 682
AC_SUBST(GTK_DEBUG_FLAGS)
AC_SUBST(GTK_XIM_FLAGS)
AC_SUBST(GTK_LOCALE_FLAGS)

683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738
##################################################
# Checks for gdk-pixbuf
##################################################

AC_MSG_CHECKING(whether to build gmodulized gdk-pixbuf)

AC_ARG_ENABLE(modules, [  --disable-modules       Disables dynamic module loading],[
	if test x$withval = xyes; then 
	    with_modules=yes
        else
            with_modules=no
	fi
])

dynworks=false
deps=
if test x$with_modules = xno; then
    AC_MSG_RESULT(no)
else
    AC_MSG_RESULT(yes)
    AC_MSG_CHECKING(whether dynamic modules work)
    oLIBS="$LIBS"
    oCFLAGS="$CFLAGS"
    CFLAGS="$GLIB_CFLAGS"
    LIBS="$GLIB_LIBS"
    AC_TRY_RUN([
    #include <glib.h>
    #include <gmodule.h>
    main ()
    {
    	if (g_module_supported ())
    	    exit (0);
    	else
    	    exit (1);
    }
    ], dynworks=true)
    LIBS="$oLIBS"
    CFLAGS="$oCFLAGS"
fi

dnl Now we check to see if our libtool supports shared lib deps
dnl (in a rather ugly way even)
if $dynworks; then
   pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} libtool --config"
   pixbuf_deplibs_check=`$pixbuf_libtool_config | \
      grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \
      sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'`
   if test "x$pixbuf_deplibs_check" = "xnone" || \
      test "x$pixbuf_deplibs_check" = "xunknown" || \
      test "x$pixbuf_deplibs_check" = "x"; then
      dynworks=false
   fi
fi

if $dynworks; then
   AC_DEFINE(USE_GMODULE)
739 740
   GMODULE_LIBS="`$GLIB_CONFIG_2_0 --libs gmodule`"
   GMODULE_FLAGS="`$GLIB_CONFIG_2_0 --cflags gmodule`"
741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843
   AC_SUBST(GMODULE_LIBS)
   AC_SUBST(GMODULE_FLAGS)
   AC_MSG_RESULT(yes)
else
   AC_MSG_RESULT(no)
fi

dnl Test for libtiff
  if test -z "$LIBTIFF"; then
    AC_CHECK_LIB(tiff, TIFFReadScanline,
      AC_CHECK_HEADER(tiffio.h,
        TIFF='tiff'; LIBTIFF='-ltiff',
        AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***)),
      AC_CHECK_LIB(tiff, TIFFWriteScanline,
        AC_CHECK_HEADER(tiffio.h,
          TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz',
          AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***)),
        AC_CHECK_LIB(tiff34, TIFFFlushData,
          AC_CHECK_HEADER(tiffio.h,
            TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
            AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***)),
        AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF library not found) ***), -ljpeg -lz -lm), -ljpeg -lz -lm), -lm)
  fi

dnl Test for libjpeg
  if test -z "$LIBJPEG"; then
    AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
      jpeg_ok=yes,
      jpeg_ok=no
      AC_MSG_WARN(*** JPEG loader will not be built (JPEG library not found) ***))
    if test "$jpeg_ok" = yes; then
      AC_MSG_CHECKING([for jpeglib.h])
      AC_TRY_CPP(
[#include <stdio.h>
#undef PACKAGE
#undef VERSION
#include <jpeglib.h>],
        jpeg_ok=yes,
        jpeg_ok=no)
      AC_MSG_RESULT($jpeg_ok)
      if test "$jpeg_ok" = yes; then
        LIBJPEG='-ljpeg'
        AC_CHECK_LIB(jpeg, jpeg_simple_progression,     
          AC_DEFINE(HAVE_PROGRESSIVE_JPEG),
          AC_MSG_WARN(JPEG library does not support progressive saving.))
      else
          AC_MSG_WARN(*** JPEG loader will not be built (JPEG header file not found) ***)
      fi
    fi
  fi

dnl Test for libpng
  if test -z "$LIBPNG"; then
    AC_CHECK_LIB(png, png_read_info,
      AC_CHECK_HEADER(png.h,
        png_ok=yes,
        png_ok=no),
      AC_MSG_WARN(*** PNG loader will not be built (PNG library not found) ***), -lz -lm)
    if test "$png_ok" = yes; then
      AC_MSG_CHECKING([for png_structp in png.h])
      AC_TRY_COMPILE([#include <png.h>],
        [png_structp pp; png_infop info; png_colorp cmap; png_create_read_struct;],
        png_ok=yes,
        png_ok=no)
      AC_MSG_RESULT($png_ok)
      if test "$png_ok" = yes; then
        PNG='png'; LIBPNG='-lpng -lz'
      else
        AC_MSG_WARN(*** PNG loader will not be built (PNG library is too old) ***)
      fi
    else
     AC_MSG_WARN(*** PNG loader will not be built (PNG header file not found) ***)
    fi
  fi

deps="$LIBTIFF $LIBJPEG $LIBPNG"

AC_SUBST(LIBTIFF)
AC_SUBST(LIBJPEG)
AC_SUBST(LIBPNG)

AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks)

AC_HEADER_STDC
AC_HEADER_DIRENT
AC_HEADER_SYS_WAIT

AC_TYPE_SIGNAL

AM_CONDITIONAL(HAVE_TIFF, test "x$LIBTIFF" != x)
AM_CONDITIONAL(HAVE_PNG, test "x$LIBPNG" != x)
AM_CONDITIONAL(HAVE_JPEG, test "x$LIBJPEG" != x)

GDK_PIXBUF_LIBDIR='-L${libdir}'
GDK_PIXBUF_INCLUDEDIR="-I${includedir} $GTK_CFLAGS"
GDK_PIXBUF_LIBS="$GLIB_LIBS -lgdk_pixbuf $deps $GTK_LIBS"
AC_SUBST(STATIC_LIB_DEPS)
STATIC_LIB_DEPS="$deps"

AC_SUBST(GDK_PIXBUF_LIBDIR)
AC_SUBST(GDK_PIXBUF_INCLUDEDIR)
AC_SUBST(GDK_PIXBUF_LIBS)

Havoc Pennington's avatar
Havoc Pennington committed
844 845 846 847 848 849 850 851
GDK_PIXBUF_XLIB_LIBDIR=$GDK_PIXBUF_LIBDIR
GDK_PIXBUF_XLIB_INCLUDEDIR=$GDK_PIXBUF_INCLUDEDIR
GDK_PIXBUF_XLIB_LIBS="$GLIB_LIBS -lgdk_pixbuf_xlib $deps $X11_LIBS"

AC_SUBST(GDK_PIXBUF_XLIB_LIBDIR)
AC_SUBST(GDK_PIXBUF_XLIB_INCLUDEDIR)
AC_SUBST(GDK_PIXBUF_XLIB_LIBS)

852 853 854
# Checks to see if we should compile in MMX support (there will be
# a runtime test when the code is actually run to see if it should
# be used - this just checks if we can compile it.)
855
#
856
# This code is partially taken from Mesa
857
#
858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878
AC_MSG_CHECKING(for x86 platform)
case $host_cpu in
  i386|i486|i586|i686|i786|k6|k7)
	use_x86_asm=yes
        ;;
   *)
  	use_x86_asm=no
esac
AC_MSG_RESULT($use_x86_asm)

use_mmx_asm=no
if test $use_x86_asm = yes; then
    save_ac_ext=$ac_ext
    ac_ext=S
    
    AC_MSG_CHECKING(compiler support for MMX)
    cp $srcdir/gdk-pixbuf/pixops/scale_line_22_33_mmx.S conftest.S
    if AC_TRY_EVAL(ac_compile); then
        use_mmx_asm=yes
    fi

879 880
    rm -rf conftest*

881 882 883 884 885 886 887 888 889 890 891 892 893
    ac_ext=$save_ac_ext
    if test $use_mmx_asm = yes; then
      AC_DEFINE(USE_MMX)
      AC_MSG_RESULT(yes)
    else
      AC_MSG_RESULT(no)
    fi
fi

AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)


##################################################
Owen Taylor's avatar
Owen Taylor committed
894
# Checks for gtk-doc and docbook-tools
895 896
##################################################

897 898 899 900 901 902 903 904 905 906
AC_ARG_WITH(html-dir, [  --with-html-dir=PATH path to installed docs ])

if test "x$with_html_dir" = "x" ; then
  HTML_DIR='${datadir}/gtk-doc/html'
else
  HTML_DIR=$with_html_dir
fi

AC_SUBST(HTML_DIR)

907 908 909
AC_CHECK_PROG(GTKDOC, gtkdoc-mkdb, true, false)
AM_CONDITIONAL(HAVE_GTK_DOC, $GTKDOC)
AC_SUBST(HAVE_GTK_DOC)
910

Owen Taylor's avatar
Owen Taylor committed
911 912 913
AC_CHECK_PROG(DB2HTML, db2html, true, false)
AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)

914 915 916 917 918 919 920
dnl Let people disable the gtk-doc stuff.
AC_ARG_ENABLE(gtk-doc, [  --enable-gtk-doc  Use gtk-doc to build documentation [default=auto]], enable_gtk_doc="$enableval", enable_gtk_doc=auto)

if test x$enable_gtk_doc = xauto ; then
  if test x$GTKDOC = xtrue ; then
    enable_gtk_doc=yes
  else
921
    enable_gtk_doc=no 
922 923 924 925 926 927 928
  fi
fi

dnl NOTE: We need to use a separate automake conditional for this
dnl       to make this work with the tarballs.
AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes)

929 930 931 932 933 934 935 936
GDK_PIXBUF_DIR=`(cd $srcdir; pwd)`
AC_SUBST(GDK_PIXBUF_DIR)


##################################################
# Output commands
##################################################

937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973
AC_OUTPUT_COMMANDS([

## Generate `gdk/gdkconfig.h' in two cases
## 1. `config.status' is run either explicitly, or via configure.
##     Esp. not when it is run in `Makefile' to generate makefiles and
##     config.h
## 2. CONFIG_OTHER is set explicitly
##
## Case 1 is difficult.  We know that `automake' sets one of
## CONFIG_FILES or CONFIG_HEADERS to empty.  This heuristic works
## only when AM_CONFIG_HEADER is set, however.

if test -n "${CONFIG_FILES}" && test -n "${CONFIG_HEADERS}"; then
  # Both CONFIG_FILES and CONFIG_HEADERS are non-empty ==> Case 1
  CONFIG_OTHER=${CONFIG_OTHER:-gdk/gdkconfig.h}
fi
case "$CONFIG_OTHER" in
*gdk/gdkconfig.h*)
	echo creating gdk/gdkconfig.h
	outfile=gdkconfig.h-tmp
	cat > $outfile <<\_______EOF
/* gdkconfig.h
 *
 * This is a generated file.  Please modify `configure.in'
 */

#ifndef GDKCONFIG_H
#define GDKCONFIG_H

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

_______EOF

	cat >>$outfile <<_______EOF
$gdk_windowing
974
$gdk_wc
975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995
_______EOF

	cat >>$outfile <<_______EOF

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* GDKCONFIG_H */
_______EOF


	if cmp -s $outfile gdk/gdkconfig.h; then
	  echo gdk/gdkconfig.h is unchanged
	  rm -f $outfile
	else
	  mv $outfile gdk/gdkconfig.h
	fi ;;
esac
],[
# Currently we always use X11 on those systems where we run configure...
996 997
if test "x$gdktarget" = "xx11" ; then
  gdk_windowing='
998
#define GDK_WINDOWING_X11'
999 1000 1001 1002 1003
elif test "x$gdktarget" = "xnanox" ; then
  gdk_windowing='
#define GDK_WINDOWING_NANOX'
elif test "x$gdktarget" = "xlinux-fb" ; then
  gdk_windowing='
1004 1005
#define GDK_WINDOWING_FB
#define GDK_NATIVE_WINDOW_POINTER'
1006 1007
fi

1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021
if test x$gdk_wchar_h = xyes; then
  gdk_wc='
#define GDK_HAVE_WCHAR_H 1'
fi
if test x$gdk_wctype_h = xyes; then
  gdk_wc="\$gdk_wc
#define GDK_HAVE_WCTYPE_H 1"
fi
if test x$gdk_working_wctype = xno; then
  gdk_wc="\$gdk_wc
#define GDK_HAVE_BROKEN_WCTYPE 1"
fi


1022 1023
])

1024 1025 1026
AC_PATH_PROG(SGML2HTML, sgml2html, no)
AM_CONDITIONAL(HAVE_SGML2HTML, ! test x$SGML2HTML = xno)

1027
AC_OUTPUT([
1028
gtk+.spec
1029
docs/gtk-config.1
1030
Makefile
1031
gtk-config-2.0
1032
gdk-pixbuf-2.0.pc
1033 1034
gdk-2.0.pc
gtk+-2.0.pc
Owen Taylor's avatar
Owen Taylor committed
1035
po/Makefile.in
1036 1037
build/Makefile
build/win32/Makefile
1038
demos/Makefile
1039
demos/gtk-demo/Makefile
1040
docs/Makefile
1041 1042
docs/reference/Makefile
docs/reference/gdk-pixbuf/Makefile
1043 1044
docs/reference/gdk/Makefile
docs/reference/gtk/Makefile
1045
docs/faq/Makefile
1046 1047
docs/tutorial/Makefile
gdk-pixbuf/Makefile
1048
gdk-pixbuf/makefile.mingw
1049 1050
gdk-pixbuf/gdk-pixbuf-features.h
gdk-pixbuf/pixops/Makefile
1051
gdk-pixbuf/pixops/makefile.mingw
1052
gdk/Makefile
1053
gdk/makefile.mingw
1054
gdk/x11/Makefile
1055
gdk/win32/Makefile
1056
gdk/win32/makefile.mingw
1057 1058
gdk/win32/rc/Makefile
gdk/win32/rc/gdk.rc
1059 1060
gdk/nanox/Makefile
gdk/linux-fb/Makefile
1061
gtk/Makefile
1062
gtk/makefile.mingw
1063
gtk/makefile.msc
1064
gtk/gtkcompat.h
1065
gtk/gtk-win32.rc
1066
gtk/stock-icons/Makefile
1067 1068
modules/Makefile
modules/linux-fb/Makefile
Owen Taylor's avatar
Owen Taylor committed
1069
modules/input/Makefile
Havoc Pennington's avatar
Havoc Pennington committed
1070 1071 1072
contrib/Makefile
contrib/gdk-pixbuf-xlib/Makefile
contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-2.0.pc
1073
], [chmod +x gtk-config-2.0])