configure.in 25.3 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)

Owen Taylor's avatar
Owen Taylor committed
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
32
GTK_MICRO_VERSION=0
CST 1999 Shawn T. Amundson's avatar
CST 1999 Shawn T. Amundson committed
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
# For automake.
VERSION=$GTK_VERSION
PACKAGE=gtk+

60 61 62
# Save this value here, since automake will set cflags later
cflags_set=${CFLAGS+set}

Elliot Lee's avatar
Elliot Lee committed
63
dnl Initialize automake stuff
64
AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define)
Elliot Lee's avatar
Elliot Lee committed
65 66 67 68 69 70 71 72 73 74 75 76

# 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

77 78 79 80 81 82 83 84 85 86 87 88
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
89 90 91 92
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)
Owen Taylor's avatar
Owen Taylor committed
93
AC_ARG_WITH(glib, [  --with-glib=DIR         Use uninstalled copy of glib])
94
AC_ARG_ENABLE(xim, [  --enable-xim            support XIM [default=yes]],
95
			, enable_xim="yes")
96 97
AC_ARG_ENABLE(xim_inst, [  --disable-xim-inst      does not use xim instantiate callback],
			, enable_xim_inst="maybe")
98
AC_ARG_ENABLE(rebuilds, [  --disable-rebuilds      disable all source autogeneration rules],,enable_rebuilds=yes)
99
AC_ARG_WITH(locale, [  --with-locale=LOCALE    locale name you want to use ])
Elliot Lee's avatar
Elliot Lee committed
100

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

103 104 105 106 107 108 109 110 111 112 113 114
gdktarget=x11
gdktargetlib=libgdk-x11.la
gtktargetlib=libgtk-x11.la
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

115
if test "x$enable_debug" = "xyes"; then
Tim Janik's avatar
Tim Janik committed
116
  test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
117
  GTK_DEBUG_FLAGS="-DG_ENABLE_DEBUG"
Elliot Lee's avatar
Elliot Lee committed
118
else
119
  if test "x$enable_debug" = "xno"; then
120
    GTK_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DGTK_NO_CHECK_CASTS"
121
  else
122
    GTK_DEBUG_FLAGS="-DGTK_NO_CHECK_CASTS"
123
  fi
Elliot Lee's avatar
Elliot Lee committed
124 125
fi

Owen Taylor's avatar
Owen Taylor committed
126 127
AC_DEFINE_UNQUOTED(GTK_COMPILED_WITH_DEBUGGING, "${enable_debug}")

Elliot Lee's avatar
Elliot Lee committed
128 129 130 131 132
# Build time sanity check...
AM_SANITY_CHECK

# Checks for programs.
AC_PROG_CC
133
AC_ISC_POSIX
Elliot Lee's avatar
Elliot Lee committed
134 135 136 137
AM_PROG_CC_STDC
AC_PROG_INSTALL
AC_PROG_MAKE_SET

Raja R Harinath's avatar
Raja R Harinath committed
138
changequote(,)dnl
139
if test "x$GCC" = "xyes"; then
Raja R Harinath's avatar
Raja R Harinath committed
140 141 142 143
  case " $CFLAGS " in
  *[\ \	]-Wall[\ \	]*) ;;
  *) CFLAGS="$CFLAGS -Wall" ;;
  esac
Elliot Lee's avatar
Elliot Lee committed
144

145
  if test "x$enable_ansi" = "xyes"; then
Raja R Harinath's avatar
Raja R Harinath committed
146 147 148 149 150 151 152 153 154
    case " $CFLAGS " in
    *[\ \	]-ansi[\ \	]*) ;;
    *) CFLAGS="$CFLAGS -ansi" ;;
    esac

    case " $CFLAGS " in
    *[\ \	]-pedantic[\ \	]*) ;;
    *) CFLAGS="$CFLAGS -pedantic" ;;
    esac
Elliot Lee's avatar
Elliot Lee committed
155 156
  fi
fi
Raja R Harinath's avatar
Raja R Harinath committed
157
changequote([,])dnl
Elliot Lee's avatar
Elliot Lee committed
158

159 160 161
# Honor aclocal flags
ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"

162
# define a MAINT-like variable REBUILD which is set if Perl
163 164 165 166 167
# and awk are found, so autogenerated sources can be rebuilt

AC_PROG_AWK
AC_CHECK_PROGS(PERL, perl5 perl)

168 169 170
# We would like indent, but don't require it.
AC_CHECK_PROG(INDENT, indent, indent)

171
REBUILD=\#
172 173 174 175 176
if test "x$enable_rebuilds" = "xyes" && \
     test -n "$PERL" && \
     $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 && \
     test -n "$AWK" ; then
  REBUILD=
177 178
fi
AC_SUBST(REBUILD)
179

Tor Lillqvist's avatar
Tor Lillqvist committed
180 181
AC_CHECK_FUNCS(lstat)

182 183 184 185
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
186
	STRIP_BEGIN='$(strip $(STRIP_DUMMY)'
187 188 189 190 191
	STRIP_END=')'
	AC_MSG_RESULT(yes)
else
	AC_MSG_RESULT(no)
fi
192 193
STRIP_DUMMY=
AC_SUBST(STRIP_DUMMY)
194 195 196
AC_SUBST(STRIP_BEGIN)
AC_SUBST(STRIP_END)

Owen Taylor's avatar
Owen Taylor committed
197
# i18n stuff
Dan Damian's avatar
Dan Damian committed
198
ALL_LINGUAS="ca cs da de el es et eu fi fr ga gl hr hu it ja ko lt nl no pl pt pt_BR ro ru sk sl sv tr uk wa zh_TW.Big5 zh_CN.GB2312"
199
AM_GTK_GNU_GETTEXT
200 201
LIBS="$LIBS $INTLLIBS"

202 203 204 205
# 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
206

207 208
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
209
AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
210

211
gtk_save_LIBS=$LIBS
212 213 214 215
LIBS="$LIBS -lm"
AC_TRY_RUN([#include <math.h>
             int main (void) { return (log(1) != log(1.)); }],
     AC_MSG_RESULT(none needed),
216
     gtk_save_CFLAGS="$CFLAGS"
217 218 219 220 221
     CFLAGS="$CFLAGS -std1"
     AC_TRY_RUN([#include <math.h>
	         int main (void) { return (log(1) != log(1.)); }],
         AC_MSG_RESULT(-std1),
         AC_MSG_RESULT()
222
         CFLAGS="$gtk_save_CFLAGS"
223
         AC_MSG_WARN(
224 225 226 227
                [No ANSI prototypes found in library. (-std1 didn't work.)]),
	 true
     ),
     AC_MSG_RESULT(none needed)
228 229 230
)
LIBS=$gtk_save_LIBS

231 232 233 234 235
MATH_LIB=-lm
GTK_LIBS_EXTRA=
AC_MSG_CHECKING(for the BeOS)
case $host in
  *-*-beos*)
Manish Singh's avatar
Manish Singh committed
236
    AC_MSG_RESULT(yes)
237 238 239
    GTK_LIBS_EXTRA="-L\$(top_builddir_full)/gdk/.libs -lgdk"
    MATH_LIB=
  ;;
Manish Singh's avatar
Manish Singh committed
240 241
  *)
    AC_MSG_RESULT(no)
242 243 244 245 246
  ;;
esac
AC_SUBST(MATH_LIB)
AC_SUBST(GTK_LIBS_EXTRA)

Manish Singh's avatar
Manish Singh committed
247 248 249 250
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),
251
  gtk_save_CFLAGS="$CFLAGS"
Manish Singh's avatar
Manish Singh committed
252 253 254 255
  CFLAGS="$CFLAGS -posix"
  AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
    AC_MSG_RESULT(-posix),
    AC_MSG_RESULT()
256
    CFLAGS="$gtk_save_CFLAGS"
Manish Singh's avatar
Manish Singh committed
257 258
    AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))

Owen Taylor's avatar
Owen Taylor committed
259 260 261 262 263 264 265 266
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

267
  AM_PATH_GLIB(1.3.1,,
Owen Taylor's avatar
Owen Taylor committed
268
    AC_MSG_ERROR([
269
*** GLIB 1.3.0 or better is required. The latest version of GLIB
270
*** is always available from ftp://ftp.gtk.org/.]),
271
    gobject gmodule gthread)
Owen Taylor's avatar
Owen Taylor committed
272

273
  # we do not want to make all gtk progs to link to thread libraries.
274
  glib_cflags=`$GLIB_CONFIG glib gobject gmodule --cflags`
Owen Taylor's avatar
Owen Taylor committed
275
  glib_thread_cflags="$GLIB_CFLAGS"
276
  glib_libs=`$GLIB_CONFIG glib gobject gmodule --libs`
Owen Taylor's avatar
Owen Taylor committed
277
  glib_thread_libs="$GLIB_LIBS"
278
  GLIB_LIBS="$glib_libs"
279
  GLIB_DEPLIBS="$glib_libs"
Owen Taylor's avatar
Owen Taylor committed
280 281 282
else
  # Use uninstalled glib (assume they got the version right)

Raja R Harinath's avatar
Raja R Harinath committed
283 284
  GLIB_CONFIG=$with_glib/glib-config
  if test -x $GLIB_CONFIG ; then 
Owen Taylor's avatar
Owen Taylor committed
285 286 287 288 289 290
    :
  else
    AC_MSG_ERROR([GLIB directory ($with_glib) not present or not configured])
  fi

  # For use in gtk-config
Owen Taylor's avatar
Owen Taylor committed
291 292 293 294
  glib_cflags=`$GLIB_CONFIG --cflags gmodule`
  glib_thread_cflags=`$GLIB_CONFIG --cflags gmodule gthread`
  glib_libs=`$GLIB_CONFIG --libs gmodule`
  glib_thread_libs=`$GLIB_CONFIG --libs gmodule gthread`
Owen Taylor's avatar
Owen Taylor committed
295

Raja R Harinath's avatar
Raja R Harinath committed
296
  glib_release=`$GLIB_CONFIG --version | sed 's%\\.[[0-9]]*$%%'`
Owen Taylor's avatar
Owen Taylor committed
297 298 299 300 301 302 303 304 305 306 307

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

308
  GLIB_CFLAGS="-I$glib_dir -I$glib_dir/gmodule"
Owen Taylor's avatar
Owen Taylor committed
309
  GLIB_LIBS="$glib_dir/libglib.la $glib_dir/gmodule/libgmodule.la"
310
  GLIB_DEPLIBS=
Owen Taylor's avatar
Owen Taylor committed
311 312 313 314 315 316 317

  AC_SUBST(GLIB_CFLAGS)
  AC_SUBST(GLIB_LIBS)
fi

AC_SUBST(glib_cflags)
AC_SUBST(glib_libs)
Owen Taylor's avatar
Owen Taylor committed
318 319
AC_SUBST(glib_thread_cflags)
AC_SUBST(glib_thread_libs)
320
AC_SUBST(GLIB_DEPLIBS)
Owen Taylor's avatar
Owen Taylor committed
321

Tor Lillqvist's avatar
Tor Lillqvist committed
322 323
AC_CHECK_HEADERS(dirent.h, AC_DEFINE(HAVE_DIRENT_H))
AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H))
324
AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H))
Tor Lillqvist's avatar
Tor Lillqvist committed
325

326 327 328
saved_cflags="$CFLAGS"
saved_ldflags="$LDFLAGS"

329 330 331 332
if test "x$gdktarget" = "xx11"; then
  # Find the X11 include and library directories
  AC_PATH_X
  AC_PATH_XTRA
333

334 335 336
  if test "x$x_includes" = "x"; then
    x_includes="/usr/include"
  fi
Elliot Lee's avatar
Elliot Lee committed
337

338 339
  CFLAGS="$CFLAGS $X_CFLAGS"
  LDFLAGS="$LDFLAGS $X_LDFLAGS $X_LIBS"
Elliot Lee's avatar
Elliot Lee committed
340

341 342
  if test "x$no_x" = "xyes"; then 
    AC_MSG_ERROR([
343 344
*** X libraries or include files not found. Check 'config.log' for 
*** more details.])
345
  fi
346

347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362
  # 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
363

364
  # Check for shaped window extension
365

366
  AC_CHECK_LIB(Xext, XShapeCombineMask,
367
      if test -z "`echo $x_libs | grep "\-lXext" 2> /dev/null`"; then
368
           x_libs="-lXext $x_libs"
369
      fi
370 371 372
      AC_DEFINE(HAVE_SHAPE_EXT),
      ,
      $x_libs)
373

374
  # Check for XConvertCase (X11R6 specific)
375

376
  AC_CHECK_LIB(X11, XConvertCase,
377 378 379 380
      AC_DEFINE(HAVE_XCONVERTCASE),
      ,
      $x_libs)

381
  # Check for XIM support.
382

383
  AC_CHECK_LIB(X11, XUnregisterIMInstantiateCallback,
384
	    : ,
385
	    enable_xim_inst="no",
386 387
	    $x_libs)

388 389 390
  # On Solaris, calling XRegisterIMInstantiateCallback seems to
  # cause an immediate segfault, so we disable it, unless
  # the user specifically forces it to be on.
391

392 393 394
  if test x$enable_xim_inst = xmaybe ; then
    case host in
	  *-*-solaris*)
395 396
            enable_xim_inst="no"
            ;;
397
	  *)
398 399
	    enable_xim_inst="yes"
	    ;;
400 401 402 403 404 405 406 407 408
    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
409

410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447
  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
448
  fi
449 450 451 452 453 454 455 456 457 458 459

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

  # these are already defined above
  #gdktargetlib = "libgdk-x11.la"
  #gtktargetlib = "libgtk-x11.la"

  AM_CONDITIONAL(USE_X11, true)
460 461
else
  AM_CONDITIONAL(USE_X11, false)
462 463
fi

464 465 466 467 468 469 470 471
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=

472 473
  gdktargetlib="libgdk-nanox.la"
  gtktargetlib="libgtk-nanox.la"
474 475 476 477 478 479 480 481 482

  with_xinput=no
  AC_DEFINE(XINPUT_NONE)
  x_cflags=
  x_includes=
  x_ldflags=
  x_libs=
  xinput_progs=
  AM_CONDITIONAL(USE_NANOX, true)
483 484
else
  AM_CONDITIONAL(USE_NANOX, false)
485 486 487 488 489 490 491 492
fi

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

493 494
  gdktargetlib="libgdk-linux-fb.la"
  gtktargetlib="libgtk-linux-fb.la"
495 496 497 498 499 500 501 502 503 504

  with_xinput=no
  AC_DEFINE(XINPUT_NONE)
  x_cflags=
  x_includes=
  x_ldflags=
  x_libs=
  xinput_progs=
  
  AM_CONDITIONAL(USE_LINUX_FB, true)
505 506
else
  AM_CONDITIONAL(USE_LINUX_FB, false)
507
fi
Elliot Lee's avatar
Elliot Lee committed
508

509 510 511 512 513 514 515
#
# 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
Elliot Lee's avatar
Elliot Lee committed
516 517 518 519 520 521 522 523

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
524 525 526 527 528 529 530 531
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)

532 533 534
CFLAGS="$saved_cflags"
LDFLAGS="$saved_ldflags"

Elliot Lee's avatar
Elliot Lee committed
535 536 537 538 539 540
AC_SUBST(x_cflags)
AC_SUBST(x_includes)
AC_SUBST(x_ldflags)
AC_SUBST(x_libs)
AC_SUBST(xinput_progs)

541 542 543 544 545 546
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
547 548


549 550 551
# Check if X_LOCALE definition is necessary

AC_MSG_CHECKING(need -DX_LOCALE)
552 553 554 555 556 557 558 559 560 561 562

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

int
main ()
{
  return setlocale (LC_ALL, "${with_locale}") == NULL;
}],
need_x_locale=no,
563 564
need_x_locale=yes,
need_x_locale=no)
565 566
AC_MSG_RESULT($need_x_locale)

Owen Taylor's avatar
Owen Taylor committed
567
if test $need_x_locale = yes; then
568
  GTK_LOCALE_FLAGS="-DX_LOCALE"
569 570
fi

Elliot Lee's avatar
Elliot Lee committed
571 572 573 574 575 576 577 578
# Checks for header files.
AC_HEADER_STDC

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

# Checks for library functions.
AC_TYPE_SIGNAL
Elliot Lee's avatar
Elliot Lee committed
579
AC_FUNC_MMAP
Elliot Lee's avatar
Elliot Lee committed
580

Raja R Harinath's avatar
Raja R Harinath committed
581 582
# 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
583 584
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
585 586 587
if test $gtk_ok = yes; then
    AC_MSG_RESULT([yes, found in sys/types.h])
else
Elliot Lee's avatar
Elliot Lee committed
588 589 590
    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
591 592 593 594
        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
595 596 597
    fi
fi

598
# `widechar' tests for gdki18n.h
Raja R Harinath's avatar
Raja R Harinath committed
599
AC_MSG_CHECKING(for wchar.h)
600 601 602
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
603
fi
604
AC_MSG_RESULT($gdk_wchar_h)
Raja R Harinath's avatar
Raja R Harinath committed
605 606 607

# Check for wctype.h (for iswalnum)
AC_MSG_CHECKING(for wctype.h)
608 609 610
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
611
fi
612
AC_MSG_RESULT($gdk_wctype_h)
Raja R Harinath's avatar
Raja R Harinath committed
613 614 615 616 617 618 619

# 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"
620
# The following is necessary for Linux libc-5.4.38
Raja R Harinath's avatar
Raja R Harinath committed
621 622 623 624 625 626 627 628 629 630 631 632 633 634
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);
635
], gdk_working_wctype=yes, gdk_working_wctype=no)
Raja R Harinath's avatar
Raja R Harinath committed
636 637
LIBS="$oLIBS"

638 639
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
640 641
   GDK_WLIBS=
fi
642
AC_MSG_RESULT($gdk_working_wctype)
Raja R Harinath's avatar
Raja R Harinath committed
643 644
AC_SUBST(GDK_WLIBS)

645 646 647 648
AC_SUBST(GTK_DEBUG_FLAGS)
AC_SUBST(GTK_XIM_FLAGS)
AC_SUBST(GTK_LOCALE_FLAGS)

Owen Taylor's avatar
Owen Taylor committed
649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 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 739 740 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
##################################################
# 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)
   GMODULE_LIBS="`glib-config --libs gmodule`"
   GMODULE_FLAGS="`glib-config --cflags gmodule`"
   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)

# 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.)
813
#
Owen Taylor's avatar
Owen Taylor committed
814
# This code is partially taken from Mesa
815
#
Owen Taylor's avatar
Owen Taylor committed
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 844 845 846 847 848 849 850 851 852 853 854 855
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

    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)


##################################################
# Checks for gtk-doc
##################################################

AC_CHECK_PROG(GTKDOC, gtkdoc-mkdb, true, false)
AM_CONDITIONAL(HAVE_GTK_DOC, $GTKDOC)
AC_SUBST(HAVE_GTK_DOC)
856 857 858 859 860 861 862 863

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
Owen Taylor's avatar
Owen Taylor committed
864
    enable_gtk_doc=no 
865 866 867 868 869 870 871
  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)

Owen Taylor's avatar
Owen Taylor committed
872 873 874 875 876 877 878 879
GDK_PIXBUF_DIR=`(cd $srcdir; pwd)`
AC_SUBST(GDK_PIXBUF_DIR)


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

880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916
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
917
$gdk_wc
918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938
_______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...
939 940
if test "x$gdktarget" = "xx11" ; then
  gdk_windowing='
941
#define GDK_WINDOWING_X11'
942 943 944 945 946
elif test "x$gdktarget" = "xnanox" ; then
  gdk_windowing='
#define GDK_WINDOWING_NANOX'
elif test "x$gdktarget" = "xlinux-fb" ; then
  gdk_windowing='
Elliot Lee's avatar
Elliot Lee committed
947 948
#define GDK_WINDOWING_FB
#define GDK_NATIVE_WINDOW_POINTER'
949 950
fi

951 952 953 954 955 956 957 958 959 960 961 962 963 964
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


965 966
])

967 968 969
AC_PATH_PROG(SGML2HTML, sgml2html, no)
AM_CONDITIONAL(HAVE_SGML2HTML, ! test x$SGML2HTML = xno)

970
AC_OUTPUT([
971
gtk+.spec
972
docs/gtk-config.1
973 974
Makefile
gtk-config
Owen Taylor's avatar
Owen Taylor committed
975
po/Makefile.in
Owen Taylor's avatar
Owen Taylor committed
976
demos/Makefile
977
docs/Makefile
978 979 980
docs/reference/Makefile
docs/reference/gdk-pixbuf/Makefile
docs/faq/Makefile
Owen Taylor's avatar
Owen Taylor committed
981 982 983 984
docs/tutorial/Makefile
gdk-pixbuf/Makefile
gdk-pixbuf/gdk-pixbuf-features.h
gdk-pixbuf/pixops/Makefile
985
gdk/Makefile
Owen Taylor's avatar
Owen Taylor committed
986
gdk/x11/Makefile
987
gdk/win32/Makefile
988 989
gdk/nanox/Makefile
gdk/linux-fb/Makefile
990
gtk/Makefile
991
gtk/gtkfeatures.h
992
gtk/gtkcompat.h
Elliot Lee's avatar
Elliot Lee committed
993 994
modules/Makefile
modules/linux-fb/Makefile
995
], [chmod +x gtk-config])