configure.in 26.1 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

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

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

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

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

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

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

381
  # Check for shaped window extension
382

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

391
  # Check for XConvertCase (X11R6 specific)
392

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

398
  # Check for XIM support.
399

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

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

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

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
  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
465
  fi
466 467 468 469 470 471 472

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

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

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

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

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

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

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

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

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

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

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

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

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

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


566 567 568
# Check if X_LOCALE definition is necessary

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

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

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

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

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

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

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

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

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

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

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

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


##################################################
Owen Taylor's avatar
Owen Taylor committed
867
# Checks for gtk-doc and docbook-tools
Owen Taylor's avatar
Owen Taylor committed
868 869 870 871 872
##################################################

AC_CHECK_PROG(GTKDOC, gtkdoc-mkdb, true, false)
AM_CONDITIONAL(HAVE_GTK_DOC, $GTKDOC)
AC_SUBST(HAVE_GTK_DOC)
873

Owen Taylor's avatar
Owen Taylor committed
874 875 876
AC_CHECK_PROG(DB2HTML, db2html, true, false)
AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)

877 878 879 880 881 882 883
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
884
    enable_gtk_doc=no 
885 886 887 888 889 890 891
  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
892 893 894 895 896 897 898 899
GDK_PIXBUF_DIR=`(cd $srcdir; pwd)`
AC_SUBST(GDK_PIXBUF_DIR)


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

900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936
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
937
$gdk_wc
938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958
_______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...
959 960
if test "x$gdktarget" = "xx11" ; then
  gdk_windowing='
961
#define GDK_WINDOWING_X11'
962 963 964 965 966
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
967 968
#define GDK_WINDOWING_FB
#define GDK_NATIVE_WINDOW_POINTER'
969 970
fi

971 972 973 974 975 976 977 978 979 980 981 982 983 984
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


985 986
])

987 988 989
AC_PATH_PROG(SGML2HTML, sgml2html, no)
AM_CONDITIONAL(HAVE_SGML2HTML, ! test x$SGML2HTML = xno)

990
AC_OUTPUT([
991
gtk+.spec
992
docs/gtk-config.1
993
Makefile
994
gtk-config-2.0
Owen Taylor's avatar
Owen Taylor committed
995
po/Makefile.in
Tor Lillqvist's avatar
Tor Lillqvist committed
996 997
build/Makefile
build/win32/Makefile
Owen Taylor's avatar
Owen Taylor committed
998
demos/Makefile
999
docs/Makefile
1000 1001 1002
docs/reference/Makefile
docs/reference/gdk-pixbuf/Makefile
docs/faq/Makefile
Owen Taylor's avatar
Owen Taylor committed
1003 1004
docs/tutorial/Makefile
gdk-pixbuf/Makefile
1005
gdk-pixbuf/makefile.mingw
Owen Taylor's avatar
Owen Taylor committed
1006 1007
gdk-pixbuf/gdk-pixbuf-features.h
gdk-pixbuf/pixops/Makefile
1008
gdk-pixbuf/pixops/makefile.mingw
1009
gdk/Makefile
1010
gdk/makefile.mingw
Owen Taylor's avatar
Owen Taylor committed
1011
gdk/x11/Makefile
1012
gdk/win32/Makefile
1013
gdk/win32/makefile.mingw
1014 1015
gdk/nanox/Makefile
gdk/linux-fb/Makefile
1016
gtk/Makefile
1017
gtk/makefile.mingw
1018
gtk/gtkcompat.h
Elliot Lee's avatar
Elliot Lee committed
1019 1020
modules/Makefile
modules/linux-fb/Makefile
1021
], [chmod +x gtk-config-2.0])