configure.in 26.4 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=1
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 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)
Owen Taylor's avatar
Owen Taylor committed
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")
115
AC_ARG_ENABLE(rebuilds, [  --disable-rebuilds      disable all source autogeneration rules],,enable_rebuilds=yes)
116
AC_ARG_WITH(locale, [  --with-locale=LOCALE    locale name you want to use ])
Elliot Lee's avatar
Elliot Lee committed
117

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

120
gdktarget=x11
121 122
gdktargetlib=libgdk-x11-1.3.la
gtktargetlib=libgtk-x11-1.3.la
123 124 125 126 127 128 129 130 131
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

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

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

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

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

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

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

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

176 177 178
# Honor aclocal flags
ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"

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

AC_PROG_AWK
AC_CHECK_PROGS(PERL, perl5 perl)

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

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

197
AC_CHECK_FUNCS(lstat mkstemp sigsetjmp)
Tor Lillqvist's avatar
Tor Lillqvist committed
198

199 200 201 202
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
203
	STRIP_BEGIN='$(strip $(STRIP_DUMMY)'
204 205 206 207 208
	STRIP_END=')'
	AC_MSG_RESULT(yes)
else
	AC_MSG_RESULT(no)
fi
209 210
STRIP_DUMMY=
AC_SUBST(STRIP_DUMMY)
211 212 213
AC_SUBST(STRIP_BEGIN)
AC_SUBST(STRIP_END)

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

219 220 221 222
# 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
223

224 225
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
226
AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
227

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

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

Manish Singh's avatar
Manish Singh committed
264 265 266 267
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),
268
  gtk_save_CFLAGS="$CFLAGS"
Manish Singh's avatar
Manish Singh committed
269 270 271 272
  CFLAGS="$CFLAGS -posix"
  AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
    AC_MSG_RESULT(-posix),
    AC_MSG_RESULT()
273
    CFLAGS="$gtk_save_CFLAGS"
Manish Singh's avatar
Manish Singh committed
274 275
    AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))

Owen Taylor's avatar
Owen Taylor committed
276 277 278 279 280 281 282 283
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

284
  AM_PATH_GLIB_2_0(1.3.1,,
Owen Taylor's avatar
Owen Taylor committed
285
    AC_MSG_ERROR([
286
*** GLIB 1.3.1 or better is required. The latest version of GLIB
287
*** is always available from ftp://ftp.gtk.org/.]),
288
    gobject gmodule gthread)
Owen Taylor's avatar
Owen Taylor committed
289

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

300 301
  GLIB_CONFIG_2_0=$with_glib/glib-config-2.0
  if test -x $GLIB_CONFIG_2_0 ; then 
Owen Taylor's avatar
Owen Taylor committed
302 303 304 305 306 307
    :
  else
    AC_MSG_ERROR([GLIB directory ($with_glib) not present or not configured])
  fi

  # For use in gtk-config
308 309 310 311
  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`
Owen Taylor's avatar
Owen Taylor committed
312

313
  glib_release=`$GLIB_CONFIG_2_0 --version | sed 's%\\.[[0-9]]*$%%'`
Owen Taylor's avatar
Owen Taylor committed
314 315 316 317 318 319 320 321 322 323 324

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

325
  GLIB_CFLAGS="-I$glib_dir -I$glib_dir/gmodule"
326
  GLIB_LIBS="$glib_dir/libglib-1.3.la $glib_dir/gmodule/libgmodule-1.3.la"
327
  GLIB_DEPLIBS=
Owen Taylor's avatar
Owen Taylor committed
328 329 330 331 332 333 334

  AC_SUBST(GLIB_CFLAGS)
  AC_SUBST(GLIB_LIBS)
fi

AC_SUBST(glib_cflags)
AC_SUBST(glib_libs)
Owen Taylor's avatar
Owen Taylor committed
335 336
AC_SUBST(glib_thread_cflags)
AC_SUBST(glib_thread_libs)
337
AC_SUBST(GLIB_DEPLIBS)
Owen Taylor's avatar
Owen Taylor committed
338

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

344 345 346
saved_cflags="$CFLAGS"
saved_ldflags="$LDFLAGS"

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

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

356 357
  CFLAGS="$CFLAGS $X_CFLAGS"
  LDFLAGS="$LDFLAGS $X_LDFLAGS $X_LIBS"
Elliot Lee's avatar
Elliot Lee committed
358

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

365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380
  # 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
381

382
  # Check for shaped window extension
383

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

392
  # Check for XConvertCase (X11R6 specific)
393

394
  AC_CHECK_LIB(X11, XConvertCase,
395 396 397 398
      AC_DEFINE(HAVE_XCONVERTCASE),
      ,
      $x_libs)

399
  # Check for XIM support.
400

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

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

410 411 412
  if test x$enable_xim_inst = xmaybe ; then
    case host in
	  *-*-solaris*)
413 414
            enable_xim_inst="no"
            ;;
415
	  *)
416 417
	    enable_xim_inst="yes"
	    ;;
418 419 420 421 422 423 424 425 426
    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
427

428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465
  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
466
  fi
467 468 469 470 471 472 473

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

  # these are already defined above
474 475
  #gdktargetlib = "libgdk-x11-1.3.la"
  #gtktargetlib = "libgtk-x11-1.3.la"
476 477

  AM_CONDITIONAL(USE_X11, true)
478 479
else
  AM_CONDITIONAL(USE_X11, false)
480 481
fi

482 483 484 485 486 487 488 489
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=

490 491
  gdktargetlib="libgdk-nanox-1.3.la"
  gtktargetlib="libgtk-nanox-1.3.la"
492 493 494 495 496 497 498 499 500

  with_xinput=no
  AC_DEFINE(XINPUT_NONE)
  x_cflags=
  x_includes=
  x_ldflags=
  x_libs=
  xinput_progs=
  AM_CONDITIONAL(USE_NANOX, true)
501 502
else
  AM_CONDITIONAL(USE_NANOX, false)
503 504 505 506 507 508 509 510
fi

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

511 512
  gdktargetlib="libgdk-linux-fb-1.3.la"
  gtktargetlib="libgtk-linux-fb-1.3.la"
513 514 515 516 517 518 519 520 521 522

  with_xinput=no
  AC_DEFINE(XINPUT_NONE)
  x_cflags=
  x_includes=
  x_ldflags=
  x_libs=
  xinput_progs=
  
  AM_CONDITIONAL(USE_LINUX_FB, true)
523 524
else
  AM_CONDITIONAL(USE_LINUX_FB, false)
525
fi
Elliot Lee's avatar
Elliot Lee committed
526

527 528 529 530 531 532 533
#
# 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
534 535 536 537 538 539 540 541

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

550 551 552
CFLAGS="$saved_cflags"
LDFLAGS="$saved_ldflags"

Elliot Lee's avatar
Elliot Lee committed
553 554 555 556 557 558
AC_SUBST(x_cflags)
AC_SUBST(x_includes)
AC_SUBST(x_ldflags)
AC_SUBST(x_libs)
AC_SUBST(xinput_progs)

559 560 561 562 563 564
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
565 566


567 568 569
# Check if X_LOCALE definition is necessary

AC_MSG_CHECKING(need -DX_LOCALE)
570 571 572 573 574 575 576 577 578 579 580

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

int
main ()
{
  return setlocale (LC_ALL, "${with_locale}") == NULL;
}],
need_x_locale=no,
581 582
need_x_locale=yes,
need_x_locale=no)
583 584
AC_MSG_RESULT($need_x_locale)

Owen Taylor's avatar
Owen Taylor committed
585
if test $need_x_locale = yes; then
586
  GTK_LOCALE_FLAGS="-DX_LOCALE"
587 588
fi

Elliot Lee's avatar
Elliot Lee committed
589 590 591 592 593 594 595 596
# 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
597
AC_FUNC_MMAP
Elliot Lee's avatar
Elliot Lee committed
598

Raja R Harinath's avatar
Raja R Harinath committed
599 600
# 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
601 602
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
603 604 605
if test $gtk_ok = yes; then
    AC_MSG_RESULT([yes, found in sys/types.h])
else
Elliot Lee's avatar
Elliot Lee committed
606 607 608
    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
609 610 611 612
        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
613 614 615
    fi
fi

616
# `widechar' tests for gdki18n.h
Raja R Harinath's avatar
Raja R Harinath committed
617
AC_MSG_CHECKING(for wchar.h)
618 619 620
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
621
fi
622
AC_MSG_RESULT($gdk_wchar_h)
Raja R Harinath's avatar
Raja R Harinath committed
623 624 625

# Check for wctype.h (for iswalnum)
AC_MSG_CHECKING(for wctype.h)
626 627 628
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
629
fi
630
AC_MSG_RESULT($gdk_wctype_h)
Raja R Harinath's avatar
Raja R Harinath committed
631 632 633 634 635 636 637

# 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"
638
# The following is necessary for Linux libc-5.4.38
Raja R Harinath's avatar
Raja R Harinath committed
639 640 641 642 643 644 645 646 647 648 649 650 651 652
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);
653
], gdk_working_wctype=yes, gdk_working_wctype=no)
Raja R Harinath's avatar
Raja R Harinath committed
654 655
LIBS="$oLIBS"

656 657
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
658 659
   GDK_WLIBS=
fi
660
AC_MSG_RESULT($gdk_working_wctype)
Raja R Harinath's avatar
Raja R Harinath committed
661 662
AC_SUBST(GDK_WLIBS)

663 664 665 666
AC_SUBST(GTK_DEBUG_FLAGS)
AC_SUBST(GTK_XIM_FLAGS)
AC_SUBST(GTK_LOCALE_FLAGS)

Owen Taylor's avatar
Owen Taylor committed
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
##################################################
# 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)
723 724
   GMODULE_LIBS="`$GLIB_CONFIG_2_0 --libs gmodule`"
   GMODULE_FLAGS="`$GLIB_CONFIG_2_0 --cflags gmodule`"
Owen Taylor's avatar
Owen Taylor committed
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 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830
   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.)
831
#
Owen Taylor's avatar
Owen Taylor committed
832
# This code is partially taken from Mesa
833
#
Owen Taylor's avatar
Owen Taylor committed
834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854
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

855 856
    rm -rf conftest*

Owen Taylor's avatar
Owen Taylor committed
857 858 859 860 861 862 863 864 865 866 867 868 869
    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
870
# Checks for gtk-doc and docbook-tools
Owen Taylor's avatar
Owen Taylor committed
871 872
##################################################

873 874 875 876 877 878 879 880 881 882
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)

Owen Taylor's avatar
Owen Taylor committed
883 884 885
AC_CHECK_PROG(GTKDOC, gtkdoc-mkdb, true, false)
AM_CONDITIONAL(HAVE_GTK_DOC, $GTKDOC)
AC_SUBST(HAVE_GTK_DOC)
886

Owen Taylor's avatar
Owen Taylor committed
887 888 889
AC_CHECK_PROG(DB2HTML, db2html, true, false)
AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)

890 891 892 893 894 895 896
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
897
    enable_gtk_doc=no 
898 899 900 901 902 903 904
  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
905 906 907 908 909 910 911 912
GDK_PIXBUF_DIR=`(cd $srcdir; pwd)`
AC_SUBST(GDK_PIXBUF_DIR)


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

913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949
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
950
$gdk_wc
951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971
_______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...
972 973
if test "x$gdktarget" = "xx11" ; then
  gdk_windowing='
974
#define GDK_WINDOWING_X11'
975 976 977 978 979
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
980 981
#define GDK_WINDOWING_FB
#define GDK_NATIVE_WINDOW_POINTER'
982 983
fi

984 985 986 987 988 989 990 991 992 993 994 995 996 997
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


998 999
])

1000 1001 1002
AC_PATH_PROG(SGML2HTML, sgml2html, no)
AM_CONDITIONAL(HAVE_SGML2HTML, ! test x$SGML2HTML = xno)

1003
AC_OUTPUT([
1004
gtk+.spec
1005
docs/gtk-config.1
1006
Makefile
1007
gtk-config-2.0
Owen Taylor's avatar
Owen Taylor committed
1008
po/Makefile.in
Tor Lillqvist's avatar
Tor Lillqvist committed
1009 1010
build/Makefile
build/win32/Makefile
Owen Taylor's avatar
Owen Taylor committed
1011
demos/Makefile
1012
docs/Makefile
1013 1014
docs/reference/Makefile
docs/reference/gdk-pixbuf/Makefile
1015 1016
docs/reference/gdk/Makefile
docs/reference/gtk/Makefile
1017
docs/faq/Makefile
Owen Taylor's avatar
Owen Taylor committed
1018 1019
docs/tutorial/Makefile
gdk-pixbuf/Makefile
1020
gdk-pixbuf/makefile.mingw
Owen Taylor's avatar
Owen Taylor committed
1021 1022
gdk-pixbuf/gdk-pixbuf-features.h
gdk-pixbuf/pixops/Makefile
1023
gdk-pixbuf/pixops/makefile.mingw
1024
gdk/Makefile
1025
gdk/makefile.mingw
Owen Taylor's avatar
Owen Taylor committed
1026
gdk/x11/Makefile
1027
gdk/win32/Makefile
1028
gdk/win32/makefile.mingw
1029 1030
gdk/nanox/Makefile
gdk/linux-fb/Makefile
1031
gtk/Makefile
1032
gtk/makefile.mingw
1033
gtk/gtkcompat.h
Elliot Lee's avatar
Elliot Lee committed
1034 1035
modules/Makefile
modules/linux-fb/Makefile
1036
], [chmod +x gtk-config-2.0])