configure.in 52.6 KB
Newer Older
Elliot Lee's avatar
Elliot Lee committed
1
# Process this file with autoconf to produce a configure script.
2
3
4
5
6
7
8
9
10
11
12
13
# require autoconf 2.54
AC_PREREQ(2.54)

# 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.

m4_define([gtk_major_version], [2])
Matthias Clasen's avatar
Matthias Clasen committed
14
m4_define([gtk_minor_version], [11])
15
m4_define([gtk_micro_version], [7])
16
17
m4_define([gtk_version],
          [gtk_major_version.gtk_minor_version.gtk_micro_version])
Matthias Clasen's avatar
2.11.2    
Matthias Clasen committed
18
m4_define([gtk_interface_age], [0])
Owen Taylor's avatar
Owen Taylor committed
19
20
m4_define([gtk_binary_age],
          [m4_eval(100 * gtk_minor_version + gtk_micro_version)])
21
22
23
24
# This is the X.Y used in -lgtk-FOO-X.Y
m4_define([gtk_api_version], [2.0])

# Define a string for the earliest version that this release has
25
26
27
28
# backwards binary compatibility with for all interfaces a module
# might. Unless we add module-only API with lower stability
# guarantees, this should be unchanged until we break binary compat
# for GTK+.
29
30
#
#GTK_BINARY_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$LT_CURRENT
31
m4_define([gtk_binary_version], [2.10.0])
32
33

# required versions of other packages
34
m4_define([glib_required_version], [2.13.5])
35
m4_define([pango_required_version], [1.17.3])
36
m4_define([atk_required_version], [1.9.0])
Matthias Clasen's avatar
Matthias Clasen committed
37
m4_define([cairo_required_version], [1.2.0])
38
39
40


AC_INIT([gtk+], [gtk_version],
41
        [http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B],
42
43
44
45
46
47
48
49
50
	[gtk+])

AC_CONFIG_SRCDIR([gdk/gdktypes.h])

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

AM_INIT_AUTOMAKE(no-define)
AM_CONFIG_HEADER(config.h)
Elliot Lee's avatar
Elliot Lee committed
51

Owen Taylor's avatar
Owen Taylor committed
52
#
53
# For each of the libraries we build, we define the following
54
 
55
56
57
58
59
60
61
# substituted variables:
#
# foo_PACKAGES:     pkg-config packages this library requires
# foo_EXTRA_LIBS:   Libraries this module requires not pulled in by pkg-config
# foo_EXTRA_CFLAGS: cflags this module requires not pulled in by pkg-config
# foo_DEP_LIBS:     All libraries this module requires
# foo_DEP_CFLAGS:   All cflags this module requires
62
63


64
65
66
67
68
69
70
71
GTK_MAJOR_VERSION=gtk_major_version
GTK_MINOR_VERSION=gtk_minor_version
GTK_MICRO_VERSION=gtk_micro_version
GTK_INTERFACE_AGE=gtk_interface_age
GTK_BINARY_AGE=gtk_binary_age
GTK_VERSION=gtk_version
GTK_API_VERSION=gtk_api_version
GTK_BINARY_VERSION=gtk_binary_version
72
73
74
AC_SUBST(GTK_MAJOR_VERSION)
AC_SUBST(GTK_MINOR_VERSION)
AC_SUBST(GTK_MICRO_VERSION)
75
76
AC_SUBST(GTK_INTERFACE_AGE)
AC_SUBST(GTK_BINARY_AGE)
Owen Taylor's avatar
Owen Taylor committed
77
AC_SUBST(GTK_API_VERSION)
78
AC_SUBST(GTK_VERSION)
79
AC_SUBST(GTK_BINARY_VERSION)
80
81

# libtool versioning
82
83
84
85
86
87
#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`
#LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`

88
89
90
91
92
93
m4_define([lt_current], [m4_eval(100 * gtk_minor_version + gtk_micro_version - gtk_interface_age)])
m4_define([lt_revision], [gtk_interface_age])
m4_define([lt_age], [m4_eval(gtk_binary_age - gtk_interface_age)])
LT_VERSION_INFO="lt_current:lt_revision:lt_age"
LT_CURRENT_MINUS_AGE=m4_eval(lt_current - lt_age)
AC_SUBST(LT_VERSION_INFO)
Tor Lillqvist's avatar
Tor Lillqvist committed
94
AC_SUBST(LT_CURRENT_MINUS_AGE)
95

96

97
98
99
100
#
# gdk-pixbuf gets versioned separately, and for now, using standard
# libtool versioning, not GTK+-style versioning
#
101
102
103
GDK_PIXBUF_MAJOR=gtk_major_version
GDK_PIXBUF_MINOR=gtk_minor_version
GDK_PIXBUF_MICRO=gtk_micro_version
104
105
106
107
108
109
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)

110
111
GETTEXT_PACKAGE=gtk20
AC_SUBST(GETTEXT_PACKAGE)
112
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE")
113

114
115
AC_CANONICAL_HOST

116
117
118
119
120
121
122
123
124
125
126
127
MATH_LIB=-lm
AC_MSG_CHECKING([for native Win32])
case "$host" in
  *-*-mingw*)
    os_win32=yes
    MATH_LIB=
    ;;
  *)
    os_win32=no
    ;;
esac
AC_MSG_RESULT([$os_win32])
Elliot Lee's avatar
Elliot Lee committed
128

Matthias Clasen's avatar
Matthias Clasen committed
129
130
131
132
133
case $host in
  *-*-linux*)
    os_linux=yes
    ;;
esac
Elliot Lee's avatar
Elliot Lee committed
134
dnl Initialize libtool
135
AC_PROG_CC
136
AM_DISABLE_STATIC
137

138
139
140
141
142
143
144
dnl 
dnl Check for a working C++ compiler, but do not bail out, if none is found.
dnl We use this for an automated test for C++ header correctness.
dnl 
AC_CHECK_PROGS(CXX, [$CCC c++ g++ gcc CC cxx cc++ cl], gcc)
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
145

146
147
AC_TRY_COMPILE(,[class a { int b; } c;], ,CXX=)
AM_CONDITIONAL(HAVE_CXX, test "$CXX" != "")
148
149
150
151
152
153

gtk_save_cxxflags="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS -x objective-c++"
AC_TRY_COMPILE([@interface Foo @end],,OBJC=yes,OBJC=no)
AM_CONDITIONAL(HAVE_OBJC, test "$OBJC" == "yes")
CXXFLAGS="$gtk_save_cxxflags"
154
155
AC_LANG_RESTORE

Tor Lillqvist's avatar
Typo.    
Tor Lillqvist committed
156
if test "$os_win32" = "yes"; then
157
158
159
160
161
162
163
164
165
166
  if test x$enable_static = xyes -o x$enable_static = x; then
    AC_MSG_WARN([Disabling static library build, must build as DLL on Windows.])
    enable_static=no
  fi
  if test x$enable_shared = xno; then
    AC_MSG_WARN([Enabling shared library build, must build as DLL on Windows.])
  fi
  enable_shared=yes
fi

167
AC_LIBTOOL_WIN32_DLL
Elliot Lee's avatar
Elliot Lee committed
168
169
AM_PROG_LIBTOOL

170
171
172
# Make sure we use 64-bit versions of various file stuff.
AC_SYS_LARGEFILE

173
AM_PROG_AS
Matthias Clasen's avatar
Matthias Clasen committed
174
AC_PATH_PROG(NM, nm, nm)
175

Elliot Lee's avatar
Elliot Lee committed
176
177
178
dnl Initialize maintainer mode
AM_MAINTAINER_MODE

Tor Lillqvist's avatar
Tor Lillqvist committed
179
180
181
182
183
184
185
186
187
188
189
190
191
AC_MSG_CHECKING([for some Win32 platform])
case "$host" in
  *-*-mingw*|*-*-cygwin*)
    platform_win32=yes
    ;;
  *)
    platform_win32=no
    ;;
esac
AC_MSG_RESULT([$platform_win32])
AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")

AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
192
AM_CONDITIONAL(OS_UNIX, test "$os_win32" != "yes")
Matthias Clasen's avatar
Matthias Clasen committed
193
AM_CONDITIONAL(OS_LINUX, test "$os_linux" = "yes")
Tor Lillqvist's avatar
Tor Lillqvist committed
194
195

if test "$os_win32" = "yes"; then
Tor Lillqvist's avatar
Tor Lillqvist committed
196
197
198
199
  AC_CHECK_TOOL(WINDRES, windres, no)
  if test "$WINDRES" = no; then
    AC_MSG_ERROR([*** Could not find an implementation of windres in your PATH.])
  fi
Tor Lillqvist's avatar
Tor Lillqvist committed
200
201
202
203
  AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
fi
AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)

204
205
m4_define([debug_default],
          m4_if(m4_eval(gtk_minor_version % 2), [1], [yes], [minimum]))
206
207

dnl declare --enable-* args and collect ac_help strings
208
209
210
211
212
213
AC_ARG_ENABLE(debug,
              AC_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@],
                             [turn on debugging @<:@default=debug_default@:>@]),,
              enable_debug=debug_default)
AC_ARG_ENABLE(shm,
              [AC_HELP_STRING([--enable-shm],
214
215
                              [support shared memory if available [default=yes]])],,
              [enable_shm="yes"])
216
217
218
219
AC_ARG_ENABLE(xkb,
              [AC_HELP_STRING([--enable-xkb],
                              [support XKB [default=maybe]])],,
              [enable_xkb="maybe"])
220
221
222
223
AC_ARG_ENABLE(xinerama,
              [AC_HELP_STRING([--enable-xinerama],
	                      [support xinerama extension if available [default=yes]])],,
              [enable_xinerama="yes"])
224
225
226
227
AC_ARG_ENABLE(rebuilds,
              [AC_HELP_STRING([--disable-rebuilds],
                              [disable all source autogeneration rules])],,
              [enable_rebuilds=yes])
228
229
230
231
AC_ARG_ENABLE(visibility,
              [AC_HELP_STRING([--disable-visibility],
                              [don't use ELF visibility attributes])],,
              [enable_visibility=yes])
232
233
234
235

AC_ARG_WITH(xinput,
            [AC_HELP_STRING([--with-xinput=@<:@no/yes@:>@], [support XInput])])

Tor Lillqvist's avatar
Tor Lillqvist committed
236
237
238
239
240
241
if test "$platform_win32" = yes; then
  gdktarget=win32
else
  gdktarget=x11
fi

Matthias Clasen's avatar
Matthias Clasen committed
242
AC_ARG_WITH(gdktarget, [  --with-gdktarget=[[x11/win32/quartz/directfb]] select non-default GDK target],
243
244
245
246
	gdktarget=$with_gdktarget)

AC_SUBST(gdktarget)
case $gdktarget in
Matthias Clasen's avatar
Matthias Clasen committed
247
248
  x11|win32|quartz|directfb) ;;
  *) AC_MSG_ERROR([Invalid target for GDK: use x11, quartz, directfb or win32.]);;
249
250
esac

Owen Taylor's avatar
Owen Taylor committed
251
252
gdktargetlib=libgdk-$gdktarget-$GTK_API_VERSION.la
gtktargetlib=libgtk-$gdktarget-$GTK_API_VERSION.la
Tor Lillqvist's avatar
Tor Lillqvist committed
253
254
255
256

AC_SUBST(gdktargetlib)
AC_SUBST(gtktargetlib)

257
if test "x$enable_debug" = "xyes"; then
Tim Janik's avatar
Tim Janik committed
258
  test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
259
  GTK_DEBUG_FLAGS="-DG_ENABLE_DEBUG -DG_ERRORCHECK_MUTEXES" 
Elliot Lee's avatar
Elliot Lee committed
260
else
261
  if test "x$enable_debug" = "xno"; then
262
    GTK_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"
263
  else
264
    GTK_DEBUG_FLAGS="-DG_DISABLE_CAST_CHECKS"
265
  fi
Elliot Lee's avatar
Elliot Lee committed
266
267
fi

268

269
270
271
272
273
if test "x$enable_visibility" = "xno"; then
  GTK_DEBUG_FLAGS="$GTK_DEBUG_FLAGS -DDISABLE_VISIBILITY"
fi


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

Alexander Larsson's avatar
Alexander Larsson committed
276
			
Elliot Lee's avatar
Elliot Lee committed
277
278
279
280
# Build time sanity check...
AM_SANITY_CHECK

# Checks for programs.
281
AC_ISC_POSIX
Elliot Lee's avatar
Elliot Lee committed
282
283
284
285
AM_PROG_CC_STDC
AC_PROG_INSTALL
AC_PROG_MAKE_SET

Raja R Harinath's avatar
Raja R Harinath committed
286
changequote(,)dnl
287
if test "x$GCC" = "xyes"; then
Raja R Harinath's avatar
Raja R Harinath committed
288
289
290
291
  case " $CFLAGS " in
  *[\ \	]-Wall[\ \	]*) ;;
  *) CFLAGS="$CFLAGS -Wall" ;;
  esac
Elliot Lee's avatar
Elliot Lee committed
292

293
  if test "x$enable_ansi" = "xyes"; then
Raja R Harinath's avatar
Raja R Harinath committed
294
295
296
297
298
299
300
301
302
    case " $CFLAGS " in
    *[\ \	]-ansi[\ \	]*) ;;
    *) CFLAGS="$CFLAGS -ansi" ;;
    esac

    case " $CFLAGS " in
    *[\ \	]-pedantic[\ \	]*) ;;
    *) CFLAGS="$CFLAGS -pedantic" ;;
    esac
Elliot Lee's avatar
Elliot Lee committed
303
  fi
304
305
fi
changequote([,])dnl
Tor Lillqvist's avatar
Tor Lillqvist committed
306

307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
# Ensure MSVC-compatible struct packing convention is used when
# compiling for Win32 with gcc.
# What flag to depends on gcc version: gcc3 uses "-mms-bitfields", while
# gcc2 uses "-fnative-struct".
if test x"$os_win32" = xyes; then
  if test x"$GCC" = xyes; then
    msnative_struct=''
    AC_MSG_CHECKING([how to get MSVC-compatible struct packing])
    if test -z "$ac_cv_prog_CC"; then
      our_gcc="$CC"
    else
      our_gcc="$ac_cv_prog_CC"
    fi
    case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in
      2.)
	if $our_gcc -v --help 2>/dev/null | grep fnative-struct >/dev/null; then
	  msnative_struct='-fnative-struct'
	fi
	;;
      *)
	if $our_gcc -v --help 2>/dev/null | grep ms-bitfields >/dev/null; then
	  msnative_struct='-mms-bitfields'
	fi
	;;
Tor Lillqvist's avatar
Tor Lillqvist committed
331
    esac
332
333
334
335
336
337
338
    if test x"$msnative_struct" = x ; then
      AC_MSG_RESULT([no way])
      AC_MSG_WARN([produced libraries might be incompatible with MSVC-compiled code])
    else
      CFLAGS="$CFLAGS $msnative_struct"
      AC_MSG_RESULT([${msnative_struct}])
    fi
Tor Lillqvist's avatar
Tor Lillqvist committed
339
  fi
Elliot Lee's avatar
Elliot Lee committed
340
341
fi

342
343
344
# Honor aclocal flags
ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"

345
346
347
348
349
350
## Initial sanity check, done here so that users get told they 
## have the wrong dependencies as early in the process as possible.
## Later on we actually use the cflags/libs from separate pkg-config
## calls. Oh, also the later pkg-config calls don't include 
## the version requirements since those make the module lists 
## annoying to construct
351
352
353
PKG_CHECK_MODULES(BASE_DEPENDENCIES,
  [glib-2.0 >= glib_required_version dnl
   atk >= atk_required_version dnl
Matthias Clasen's avatar
Matthias Clasen committed
354
355
   pango >= pango_required_version dnl
   cairo >= cairo_required_version])
356

Tor Lillqvist's avatar
Tor Lillqvist committed
357
358
359
360
361
362
363
364
if test "$os_win32" != yes; then
    # libtool option to control which symbols are exported
    # right now, symbols starting with _ are not exported
    LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[[^_]].*"'
else
    # We currently use .def files on Windows (for gdk-pixbuf, gdk and gtk)
    LIBTOOL_EXPORT_OPTIONS=
fi
365
366
AC_SUBST(LIBTOOL_EXPORT_OPTIONS)

367
368
369
370
371
dnl ******************************************************
dnl * See whether to include shared library dependencies *
dnl ******************************************************

AC_ARG_ENABLE(explicit-deps, 
372
373
374
              [AC_HELP_STRING([--enable-explicit-deps=@<:@yes/no/auto@:>@],
                              [use explicit dependencies in .pc files [default=auto]])],,
              [enable_explicit_deps=auto])
375
376
377
378

AC_MSG_CHECKING([Whether to write dependencies into .pc files])
case $enable_explicit_deps in
  auto)
379
    export SED
380
    deplibs_check_method=`(./libtool --config; echo 'eval echo $deplibs_check_method') | sh`
381
    if test "x$deplibs_check_method" '!=' xpass_all || test "x$enable_static" = xyes ; then
382
383
384
385
386
387
388
389
390
391
392
393
394
395
      enable_explicit_deps=yes  
    else
      enable_explicit_deps=no  
    fi
  ;;
  yes|no) 
  ;;
  *) AC_MSG_ERROR([Value given to --enable-explicit-deps must be one of yes, no or auto])
  ;;
esac
AC_MSG_RESULT($enable_explicit_deps)

AM_CONDITIONAL(DISABLE_EXPLICIT_DEPS, test $enable_explicit_deps = no)

396
# define a MAINT-like variable REBUILD which is set if Perl
397
398
# and awk are found, so autogenerated sources can be rebuilt

399
AC_PATH_PROGS(PERL, perl5 perl)
400

401
402
403
# We would like indent, but don't require it.
AC_CHECK_PROG(INDENT, indent, indent)

404
REBUILD=\#
405
406
if test "x$enable_rebuilds" = "xyes" && \
     test -n "$PERL" && \
407
     $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 ; then
408
  REBUILD=
409
410
fi
AC_SUBST(REBUILD)
411

Matthias Clasen's avatar
Matthias Clasen committed
412
AC_CHECK_FUNCS(lstat mkstemp flockfile getc_unlocked)
413
AC_CHECK_FUNCS(localtime_r)
414
415
416
417
418
419
420
421
422
423
424
425

# _NL_TIME_FIRST_WEEKDAY is an enum and not a define
AC_MSG_CHECKING([for _NL_TIME_FIRST_WEEKDAY])
AC_TRY_LINK([#include <langinfo.h>], [
char c;
c = *((unsigned char *)  nl_langinfo(_NL_TIME_FIRST_WEEKDAY));
], gtk_ok=yes, gtk_ok=no)
AC_MSG_RESULT($gtk_ok)
if test "$gtk_ok" = "yes"; then
  AC_DEFINE([HAVE__NL_TIME_FIRST_WEEKDAY], [1],
	    [Define if _NL_TIME_FIRST_WEEKDAY is available])
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
# _NL_MEASUREMENT_MEASUREMENT is an enum and not a define
AC_MSG_CHECKING([for _NL_MEASUREMENT_MEASUREMENT])
AC_TRY_LINK([#include <langinfo.h>], [
char c;
c = *((unsigned char *)  nl_langinfo(_NL_MEASUREMENT_MEASUREMENT));
], gtk_ok=yes, gtk_ok=no)
AC_MSG_RESULT($gtk_ok)
if test "$gtk_ok" = "yes"; then
  AC_DEFINE([HAVE__NL_MEASUREMENT_MEASUREMENT], [1],
	    [Define if _NL_MEASUREMENT_MEASUREMENT is available])
fi

# _NL_PAPER_HEIGHT is an enum and not a define
AC_MSG_CHECKING([for _NL_PAPER_HEIGHT])
AC_TRY_LINK([#include <langinfo.h>], [
char c;
c = *((unsigned char *)  nl_langinfo(_NL_PAPER_HEIGHT));
], gtk_ok=yes, gtk_ok=no)
AC_MSG_RESULT($gtk_ok)
if test "$gtk_ok" = "yes"; then
  AC_DEFINE([HAVE__NL_PAPER_HEIGHT], [1],
	    [Define if _NL_PAPER_HEIGHT is available])
fi

# _NL_PAPER_WIDTH is an enum and not a define
AC_MSG_CHECKING([for _NL_PAPER_WIDTH])
AC_TRY_LINK([#include <langinfo.h>], [
char c;
c = *((unsigned char *)  nl_langinfo(_NL_PAPER_WIDTH));
], gtk_ok=yes, gtk_ok=no)
AC_MSG_RESULT($gtk_ok)
if test "$gtk_ok" = "yes"; then
  AC_DEFINE([HAVE__NL_PAPER_WIDTH], [1],
	    [Define if _NL_PAPER_WIDTH is available])
fi
	
463
464
465
466
467
468
469
470
471
472
# sigsetjmp is a macro on some platforms, so AC_CHECK_FUNCS is not reliable
AC_MSG_CHECKING(for sigsetjmp)
AC_TRY_LINK([#include <setjmp.h>], [
sigjmp_buf env;
sigsetjmp(env, 0);
], gtk_ok=yes, gtk_ok=no)
AC_MSG_RESULT($gtk_ok)
if test "$gtk_ok" = "yes"; then
  AC_DEFINE(HAVE_SIGSETJMP)
fi
Tor Lillqvist's avatar
Tor Lillqvist committed
473

Owen Taylor's avatar
Owen Taylor committed
474
# i18n stuff
475
476
477
478
479
# TRANSLATORS:  Please note that gtk+ has both po/ and po-properties/
# directories.  If you add a new language to ALL_LINGUAS, please make
# sure that both po/ and po-properties/ have .po files that correspond
# to your language.  If you only add one to po/, the build will break
# in po-properties/.
Yannig MARCHEGAY's avatar
Yannig MARCHEGAY committed
480
ALL_LINGUAS="af am ang ar az az_IR be be@latin bg bn bn_IN br bs ca cs cy da de dz el en_CA en_GB eo es et eu fa fi fr ga gl gu he hi hr hu hy ia id is it ja ka ko ku li lt lv mi mk ml mn mr ms nb ne nl nn nso oc or pa pl pt pt_BR ro ru rw sk sl sq sr sr@Latn sr@ije sv ta te th tk tr tt uk ur uz uz@cyrillic vi wa xh yi zh_CN zh_HK zh_TW"
481
AM_GLIB_GNU_GETTEXT
482
LIBS="$LIBS $INTLLIBS"
483
484
485
AC_OUTPUT_COMMANDS([case "$CONFIG_FILES" in *po-properties/Makefile.in*)
        sed -e "/POTFILES =/r po-properties/POTFILES" po-properties/Makefile.in > po-properties/Makefile
      esac])
486

Owen Taylor's avatar
Owen Taylor committed
487
AM_GLIB_DEFINE_LOCALEDIR(GTK_LOCALEDIR)
Owen Taylor's avatar
Owen Taylor committed
488

489
490
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
491
AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
492

493
gtk_save_LIBS=$LIBS
494
495
496
497
LIBS="$LIBS -lm"
AC_TRY_RUN([#include <math.h>
             int main (void) { return (log(1) != log(1.)); }],
     AC_MSG_RESULT(none needed),
498
     gtk_save_CFLAGS="$CFLAGS"
499
500
501
502
503
     CFLAGS="$CFLAGS -std1"
     AC_TRY_RUN([#include <math.h>
	         int main (void) { return (log(1) != log(1.)); }],
         AC_MSG_RESULT(-std1),
         AC_MSG_RESULT()
504
         CFLAGS="$gtk_save_CFLAGS"
505
         AC_MSG_WARN(
506
507
508
509
                [No ANSI prototypes found in library. (-std1 didn't work.)]),
	 true
     ),
     AC_MSG_RESULT(none needed)
510
511
512
)
LIBS=$gtk_save_LIBS

513
514
515
AC_MSG_CHECKING(for the BeOS)
case $host in
  *-*-beos*)
Manish Singh's avatar
Manish Singh committed
516
    AC_MSG_RESULT(yes)
517
518
    MATH_LIB=
  ;;
Manish Singh's avatar
Manish Singh committed
519
520
  *)
    AC_MSG_RESULT(no)
521
522
  ;;
esac
523
524
525
526
527
528
529
530
531
532
533
534
535
536

#
# see bug 162979
#
AC_MSG_CHECKING(for HP-UX)
case $host_os in
  hpux9* | hpux10* | hpux11*)
    AC_MSG_RESULT(yes)
    CFLAGS="$CFLAGS -DHPPEX -DSHMLINK"
  ;;
  *)
    AC_MSG_RESULT(no)
  ;;
esac
537

Manish Singh's avatar
Manish Singh committed
538
539
540
541
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),
542
  gtk_save_CFLAGS="$CFLAGS"
Manish Singh's avatar
Manish Singh committed
543
544
545
546
  CFLAGS="$CFLAGS -posix"
  AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
    AC_MSG_RESULT(-posix),
    AC_MSG_RESULT()
547
    CFLAGS="$gtk_save_CFLAGS"
Manish Singh's avatar
Manish Singh committed
548
549
    AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))

550
#
Owen Taylor's avatar
Owen Taylor committed
551
552
# Run AM_PATH_GLIB_2_0 to make sure that GLib is installed and working
# 
553

554
GLIB_PACKAGES="gobject-2.0 gmodule-no-export-2.0"
555

556
AM_PATH_GLIB_2_0(glib_required_version, :,
Owen Taylor's avatar
Owen Taylor committed
557
  AC_MSG_ERROR([
558
559
*** GLIB glib_required_version or better is required. The latest version of 
*** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.]),
560
  gobject gmodule-no-export gthread)
Owen Taylor's avatar
Owen Taylor committed
561

562
563
564
565
566
567
568
569
# See if it's safe to turn G_DISABLE_DEPRECATED on.
GLIB_VERSION_MAJOR_MINOR=`$PKG_CONFIG --modversion glib-2.0 | sed "s/\.@<:@^.@:>@*\$//"`
GLIB_REQUIRED_VERSION_MAJOR_MINOR=`echo glib_required_version | sed "s/\.@<:@^.@:>@*\$//"`
if test "x$GLIB_VERSION_MAJOR_MINOR" = "x$GLIB_REQUIRED_VERSION_MAJOR_MINOR"; then
  CFLAGS="-DG_DISABLE_DEPRECATED $CFLAGS"
fi


Owen Taylor's avatar
Owen Taylor committed
570
571
572
573
574
575
576
577
dnl
dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
dnl
gtk_save_LIBS=$LIBS
LIBS="$LIBS $GLIB_LIBS"
AC_CHECK_FUNCS(bind_textdomain_codeset)
LIBS=$gtk_save_LIBS

Tor Lillqvist's avatar
Tor Lillqvist committed
578
AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H))
579
AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H))
Tor Lillqvist's avatar
Tor Lillqvist committed
580
AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H))
581
AC_CHECK_HEADERS(ftw.h, AC_DEFINE(HAVE_FTW_H))
582

583
584
585
586
587
588
589
590
591
592
593
AC_MSG_CHECKING([for GNU ftw extensions])
AC_TRY_COMPILE([#define _XOPEN_SOURCE 500
#define _GNU_SOURCE
#include <ftw.h>], [int flags = FTW_ACTIONRETVAL;], gtk_ok=yes, gtk_ok=no)
if test $gtk_ok = yes; then
    AC_MSG_RESULT([yes])
    AC_DEFINE(HAVE_GNU_FTW,1,[Have GNU ftw])
else
    AC_MSG_RESULT([no])
fi

594
595
596
saved_cflags="$CFLAGS"
saved_ldflags="$LDFLAGS"

597

598
599
# Checks for header files.
AC_HEADER_STDC
600

601
602
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
Elliot Lee's avatar
Elliot Lee committed
603

604
605
606
# Checks for library functions.
AC_TYPE_SIGNAL
AC_FUNC_MMAP
607

Matthias Clasen's avatar
Matthias Clasen committed
608
AC_CHECK_FUNCS(mallinfo)
609
610
AC_CHECK_FUNCS(getresuid)
AC_TYPE_UID_T
611

612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
# Check if <sys/select.h> needs to be included for fd_set
AC_MSG_CHECKING([for fd_set])
AC_TRY_COMPILE([#include <sys/types.h>],
        [fd_set readMask, writeMask;], gtk_ok=yes, gtk_ok=no)
if test $gtk_ok = yes; then
    AC_MSG_RESULT([yes, found in sys/types.h])
else
    AC_HEADER_EGREP(fd_mask, sys/select.h, gtk_ok=yes)
    if test $gtk_ok = yes; then
        AC_DEFINE(HAVE_SYS_SELECT_H)
        AC_MSG_RESULT([yes, found in sys/select.h])
    else
	AC_DEFINE(NO_FD_SET)
	AC_MSG_RESULT(no)
    fi
fi
628

629
630
631
632
633
634
635
# `widechar' tests for gdki18n.h
AC_MSG_CHECKING(for wchar.h)
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])
fi
AC_MSG_RESULT($gdk_wchar_h)
636

637
638
639
640
641
642
643
# Check for wctype.h (for iswalnum)
AC_MSG_CHECKING(for wctype.h)
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])
fi
AC_MSG_RESULT($gdk_wctype_h)
644

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

649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
oLIBS="$LIBS"
LIBS="$LIBS $GDK_WLIBS"
# The following is necessary for Linux libc-5.4.38
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);
], gdk_working_wctype=yes, gdk_working_wctype=no)
LIBS="$oLIBS"
668

669
670
671
672
673
674
if test $gdk_working_wctype = no; then
   AC_DEFINE(HAVE_BROKEN_WCTYPE,1,[Is the wctype implementation broken])
   GDK_WLIBS=
fi
AC_MSG_RESULT($gdk_working_wctype)
AC_SUBST(GDK_WLIBS)
Havoc Pennington's avatar
Delete.    
Havoc Pennington committed
675

676
677
678
679
680
681
682
683
# Check for uxtheme.h (for MS-Windows Engine)
AC_MSG_CHECKING(for uxtheme.h)
AC_TRY_CPP([#include <uxtheme.h>], gtk_uxtheme_h=yes, gtk_uxtheme_h=no)
if test $gtk_uxtheme_h = yes; then
   AC_DEFINE(HAVE_UXTHEME_H,1,[Have uxtheme.h include file])
fi
AC_MSG_RESULT($gtk_uxtheme_h)

Matthias Clasen's avatar
Matthias Clasen committed
684
685
686
687
# Checks for gdkspawn
AC_CHECK_HEADERS(crt_externs.h)
AC_CHECK_FUNCS(_NSGetEnviron)

688

689
690
691
##################################################
# Checks for gdk-pixbuf
##################################################
692

693
694
695
696
697
698
699
700
701
702
703
704
705
706
dnl ********************************************************
dnl * See whether we need to load our modules as .la files *
dnl ********************************************************

use_la_modules=false
case $host in
  *-aix*) use_la_modules=true
esac

if $use_la_modules ; then
   AC_DEFINE(USE_LA_MODULES, 1, [Whether to load modules via .la files rather than directly])
fi


707
AC_MSG_CHECKING(whether to build gmodulized gdk-pixbuf)
708

709
710
711
AC_ARG_ENABLE(modules,
              [AC_HELP_STRING([--disable-modules],
                              [disable dynamic module loading])])
712

713
714
dynworks=false
deps=
715
if test x$enable_modules = xno; then
716
717
718
719
    AC_MSG_RESULT(no)
else
    AC_MSG_RESULT(yes)
    AC_MSG_CHECKING(whether dynamic modules work)
720
    ## for loop is to strip newline 
721
    tmp=`$PKG_CONFIG --variable=gmodule_supported gmodule-no-export-2.0`
722
723
724
    for I in $tmp; do
        dynworks=$I
    done
725

726
727
728
729
730
731
732
733
734
735
736
737
738
    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
739

740
741
742
743
744
745
    if $dynworks; then
        AC_DEFINE(USE_GMODULE)
        AC_MSG_RESULT(yes)
    else
        AC_MSG_RESULT(no)
    fi
746
fi
Havoc Pennington's avatar
Havoc Pennington committed
747

Owen Taylor's avatar
Owen Taylor committed
748
749
750
dnl We allow people to disable image loaders explicitely, but if they don't we error
dnl out so that people don't accidentally build without them.

751
752
753
754
755
756
757
758
759
AC_ARG_WITH(libpng,
            [AC_HELP_STRING([--without-libpng],
                            [disable PNG loader for gdk-pixbuf])])
AC_ARG_WITH(libjpeg,
            [AC_HELP_STRING([--without-libjpeg],
                            [disable JPEG loader for gdk-pixbuf])])
AC_ARG_WITH(libtiff,
            [AC_HELP_STRING([--without-libtiff],
                            [disable TIFF loader for gdk-pixbuf])])
Owen Taylor's avatar
Owen Taylor committed
760

761
dnl Test for libtiff
Owen Taylor's avatar
Owen Taylor committed
762
  if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
763
    AC_CHECK_LIB(tiff, TIFFReadRGBAImageOriented,
Tor Lillqvist's avatar
Tor Lillqvist committed
764
      [AC_CHECK_HEADER(tiffio.h,
765
        TIFF='tiff'; LIBTIFF='-ltiff',
Tor Lillqvist's avatar
Tor Lillqvist committed
766
767
768
        AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
      [AC_CHECK_LIB(tiff, TIFFWriteScanline,
        [AC_CHECK_HEADER(tiffio.h,
769
          TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz',
Tor Lillqvist's avatar
Tor Lillqvist committed
770
771
772
          AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
        [AC_CHECK_LIB(tiff34, TIFFFlushData,
          [AC_CHECK_HEADER(tiffio.h,
773
            TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
Tor Lillqvist's avatar
Tor Lillqvist committed
774
            AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
775
        AC_MSG_WARN(*** TIFF loader will not be built (TIFF library not found) ***), -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm)
Havoc Pennington's avatar
Havoc Pennington committed
776
777
  fi

Owen Taylor's avatar
Owen Taylor committed
778
779
780
781
782
783
784
  if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
     AC_MSG_ERROR([
*** Checks for TIFF loader failed. You can build without it by passing 
*** --without-libtiff to configure but some programs using GTK+ may
*** not work properly])
  fi

785
dnl Test for libjpeg
Owen Taylor's avatar
Owen Taylor committed
786
  if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
787
788
789
790
791
792
793
794
795
796
    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
797
#undef HAVE_STDLIB_H
798
799
800
801
802
803
804
805
806
807
808
809
810
#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
811
812
  fi

Owen Taylor's avatar
Owen Taylor committed
813
814
815
816
817
818
819
  if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
     AC_MSG_ERROR([
*** Checks for JPEG loader failed. You can build without it by passing 
*** --without-libjpeg to configure but some programs using GTK+ may
*** not work properly])
  fi

820
dnl Test for libpng
Owen Taylor's avatar
Owen Taylor committed
821
  if test x$with_libpng != xno && test -z "$LIBPNG"; then
822
823
824
825
826
827
828
829
830
831
832
833
834
    AC_MSG_CHECKING(for libpng12)
    if $PKG_CONFIG --exists libpng12 ; then
        AC_MSG_RESULT(yes)
        PNG='png'
	PNG_DEP_CFLAGS_PACKAGES=libpng12
	LIBPNG=`$PKG_CONFIG --libs libpng12`
    else
      AC_MSG_RESULT(no)
      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)
835
      if test "$png_ok" = yes; then
836
837
838
839
840
841
842
843
844
845
846
        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
847
      else
848
       AC_MSG_WARN(*** PNG loader will not be built (PNG header file not found) ***)
849
850
      fi
    fi
851
  fi
852

Owen Taylor's avatar
Owen Taylor committed
853
854
855
856
857
858
859
860
  if test x$with_libpng != xno && test -z "$LIBPNG"; then
     AC_MSG_ERROR([
*** Checks for PNG loader failed. You can build without it by passing 
*** --without-libpng to configure but many programs using GTK+ will
*** not work properly. The PNG loader is also needed if you are compiling
*** from CVS.])
  fi

861
862
863
AC_SUBST(LIBTIFF)
AC_SUBST(LIBJPEG)
AC_SUBST(LIBPNG)
864

865
AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks)
866

867
868
869
870
#
# Allow building some or all gdk-pixbuf loaders included
#
AC_MSG_CHECKING(pixbuf loaders to build)
871

872
873
874
dnl due to an autoconf bug, commas in the first arg to
dnl AC_HELP_STRING cause problems.
dnl AC_HELP_STRING([--with-included-loaders=LOADER1 LOADER2 ...],
875
dnl                [build the specified loaders into gdk-pixbuf])
876
877
AC_ARG_WITH(included_loaders,
[  --with-included-loaders=LOADER1,LOADER2,...
878
                          build the specified loaders into gdk-pixbuf])
879

880
if $dynworks; then 
881
   :
882
883
884
885
886
887
888
else
   ## if the option was specified, leave it; otherwise disable included loaders
   if test x$with_included_loaders = xno; then
           with_included_loaders=yes
   fi
fi

889
all_loaders="png,bmp,wbmp,gif,ico,ani,jpeg,pnm,ras,tiff,xpm,xbm,tga,pcx"
890
891
892
893
included_loaders=""
# If no loaders specified, include all
if test "x$with_included_loaders" = xyes ; then
  included_loaders="$all_loaders"
894
else
895
  included_loaders="$with_included_loaders"
896
897
fi

898
AC_MSG_RESULT($included_loaders)
899

900
901
INCLUDED_LOADER_OBJ=
INCLUDED_LOADER_DEFINE=
902

903
904
IFS="${IFS= 	}"; gtk_save_ifs="$IFS"; IFS=","
for loader in $included_loaders; do
905
 if echo "$all_loaders" | egrep "(^|,)$loader(\$|,)" > /dev/null; then
906
907
908
909
   :
 else
   AC_MSG_ERROR([the specified loader $loader does not exist])
 fi
910

911
 INCLUDED_LOADER_OBJ="$INCLUDED_LOADER_OBJ libstatic-pixbufloader-$loader.la"
912
 INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_$loader"
913
 eval INCLUDE_$loader=yes
914
915
916
917
done
IFS="$gtk_save_ifs"
AC_SUBST(INCLUDED_LOADER_OBJ)
AC_SUBST(INCLUDED_LOADER_DEFINE)
918

919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
AM_CONDITIONAL(INCLUDE_PNG, [test x"$INCLUDE_png" = xyes])
AM_CONDITIONAL(INCLUDE_BMP, [test x"$INCLUDE_bmp" = xyes])
AM_CONDITIONAL(INCLUDE_WBMP, [test x"$INCLUDE_wbmp" = xyes])
AM_CONDITIONAL(INCLUDE_GIF, [test x"$INCLUDE_gif" = xyes])
AM_CONDITIONAL(INCLUDE_ICO, [test x"$INCLUDE_ico" = xyes])
AM_CONDITIONAL(INCLUDE_ANI, [test x"$INCLUDE_ani" = xyes])
AM_CONDITIONAL(INCLUDE_JPEG, [test x"$INCLUDE_jpeg" = xyes])
AM_CONDITIONAL(INCLUDE_PNM, [test x"$INCLUDE_pnm" = xyes])
AM_CONDITIONAL(INCLUDE_RAS, [test x"$INCLUDE_ras" = xyes])
AM_CONDITIONAL(INCLUDE_TIFF, [test x"$INCLUDE_tiff" = xyes])
AM_CONDITIONAL(INCLUDE_XPM, [test x"$INCLUDE_xpm" = xyes])
AM_CONDITIONAL(INCLUDE_XBM, [test x"$INCLUDE_xbm" = xyes])
AM_CONDITIONAL(INCLUDE_TGA, [test x"$INCLUDE_tga" = xyes])
AM_CONDITIONAL(INCLUDE_PCX, [test x"$INCLUDE_pcx" = xyes])

934
AC_HEADER_SYS_WAIT
Alexander Larsson's avatar
Alexander Larsson committed
935

936
937
938
939
940
941
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)

Havoc Pennington's avatar
Havoc Pennington committed
942
if $dynworks ; then
943
  STATIC_LIB_DEPS=
944
  if echo "$included_loaders" | egrep '(^|,)tiff($|,)' > /dev/null; then
Havoc Pennington's avatar
Havoc Pennington committed
945
    STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBTIFF"
946
  fi
947
  if echo "$included_loaders" | egrep '(^|,)jpeg($|,)' > /dev/null; then
Havoc Pennington's avatar
Havoc Pennington committed
948
    STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBJPEG"
949
  fi
950
  if echo "$included_loaders" | egrep '(^|,)png($|,)' > /dev/null; then
Havoc Pennington's avatar
Havoc Pennington committed
951
    STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBPNG"
952
  fi
953
else
954
  STATIC_LIB_DEPS="$LIBTIFF $LIBJPEG $LIBPNG"
955
fi
Elliot Lee's avatar
Elliot Lee committed
956

957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
# Checks to see whether we should include mediaLib
# support.
#
AC_CHECK_HEADER(sys/systeminfo.h, AC_DEFINE(HAVE_SYS_SYSTEMINFO_H))
AC_CHECK_HEADER(sys/sysinfo.h, AC_DEFINE(HAVE_SYS_SYSINFO_H))

AC_MSG_CHECKING(for mediaLib 2.3)
use_mlib25=no
# Check for a mediaLib 2.3 function since that is what the GTK+ mediaLib
# patch requires.
AC_CHECK_LIB(mlib, mlib_ImageSetStruct, use_mlib=yes, use_mlib=no)
if test $use_mlib = yes; then
    AC_DEFINE(USE_MEDIALIB)
    MEDIA_LIB=-lmlib

    AC_MSG_CHECKING(for mediaLib 2.5)
    # Check for a mediaLib 2.5 function since that is what is needed for
    # gdk_rgb_convert integration.
    AC_CHECK_LIB(mlib, mlib_VideoColorRGBint_to_BGRAint, use_mlib25=yes, use_mlib25=no)
    if test $use_mlib25 = yes; then
        AC_DEFINE(USE_MEDIALIB25)
    fi
fi
AM_CONDITIONAL(USE_MEDIALIB, test $use_mlib = yes)
AM_CONDITIONAL(USE_MEDIALIB25, test $use_mlib25 = yes)

983
984
985
# 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.)
986
#
987
# This code is partially taken from Mesa
988
#
989
990
991
992
993
994
995
996
997
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)
Elliot Lee's avatar
Elliot Lee committed
998

999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
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

    rm -rf conftest*

    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
Elliot Lee's avatar
Elliot Lee committed
1019
fi
1020

1021
AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)
1022

1023
1024
1025
1026
1027
REBUILD_PNGS=
if test -z "$LIBPNG"; then
  REBUILD_PNGS=#
fi

1028
1029
dnl Look for a host system's gdk-pixbuf-csource if we are cross-compiling

1030
AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
1031

1032
if test $cross_compiling = yes; then
1033
  AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
1034
1035
  AC_PATH_PROG(GTK_UPDATE_ICON_CACHE, gtk-update-icon-cache, no)
  if test x$GTK_UPDATE_ICON_CACHE = xno; then
1036
    REBUILD_PNGS=#
1037
1038
  fi
fi
1039

1040
if test ! -f $srcdir/gtk/gtkbuiltincache.h && 
1041
1042
   test "x$REBUILD_PNGS" = "x#" ; then
     AC_MSG_ERROR([
1043
*** gtkbuiltincache.h is not in the tree, and cannot be built
1044
*** because you don't have libpng, or (when cross-compiling) you 
1045
*** don't have a prebuilt gtk-update-icon-cache on the build system.])
1046
1047
1048
1049
fi

AC_SUBST(REBUILD_PNGS)

1050
GDK_PIXBUF_PACKAGES="gmodule-no-export-2.0 gobject-2.0"
1051
GDK_PIXBUF_EXTRA_LIBS="$STATIC_LIB_DEPS $MATH_LIB $MEDIA_LIB"
1052
GDK_PIXBUF_EXTRA_CFLAGS= 
1053
GDK_PIXBUF_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1054
GDK_PIXBUF_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $PNG_DEP_CFLAGS_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS"
1055

1056
1057
1058
########################################
# Windowing system checks
########################################
1059

1060
1061
1062
GDK_PIXBUF_XLIB_PACKAGES=
GDK_PIXBUF_XLIB_EXTRA_CFLAGS=
GDK_PIXBUF_XLIB_EXTRA_LIBS=
1063
1064
	
X_PACKAGES=fontconfig
1065
1066
1067
1068
1069
1070
GDK_EXTRA_LIBS="$GDK_WLIBS"
GDK_EXTRA_CFLAGS=
	
# GTK+ uses some X calls, so needs to link against X directly
GTK_DEP_PACKAGES_FOR_X=
GTK_DEP_LIBS_FOR_X=
1071

1072
if test "x$gdktarget" = "xx11"; then
1073
1074
1075
1076
1077
1078
1079
1080
1081
  #
  # We use fontconfig very peripherally when decoding the default
  # settings.
  #
  if $PKG_CONFIG --exists fontconfig; then : ; else
    AC_MSG_ERROR([
*** fontconfig (http://www.fontconfig.org) is required by the X11 backend.])
  fi

1082
  #
1083
  # Check for basic X packages; we use pkg-config if available
1084
  #
1085
  if $PKG_CONFIG --exists x11 xext xrender; then
1086
    have_base_x_pc=true
1087
    X_PACKAGES="$X_PACKAGES x11 xext xrender"
1088
1089
    x_libs="`$PKG_CONFIG --libs x11 xext xrender`"
    X_CFLAGS="`$PKG_CONFIG --cflags x11 xext xrender`"
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
    
    # Strip out any .la files that pkg-config might give us (this happens
    # with -uninstalled.pc files)
    x_libs_for_checks=
    for I in $x_libs ; do
      case $I in 
        *.la) ;;
        *) x_libs_for_checks="$x_libs_for_checks $I" ;;
      esac
    done
    
    GDK_PIXBUF_XLIB_PACKAGES="x11"
    GTK_PACKAGES_FOR_X="x11"
  else
    have_base_x_pc=false
    AC_PATH_XTRA
    if test x$no_x = xyes ; then
      AC_MSG_ERROR([X development libraries not found])
    fi
    
    x_cflags="$X_CFLAGS"
1111
    x_libs_for_checks="$X_LIBS -lXext -lXrender -lX11 $X_EXTRA_LIBS"
Elliot Lee's avatar
Elliot Lee committed
1112

1113
1114
    GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
    GDK_PIXBUF_XLIB_EXTRA_LIBS="$X_LIBS -lX11 $X_EXTRA_LIBS"
1115
    GTK_DEP_LIBS_FOR_X="$X_LIBS -lXrender -lX11 $X_EXTRA_LIBS"
1116
1117
  fi

1118
1119
  # Extra libraries found during checks (-lXinerama, etc), not from pkg-config.
  x_extra_libs=
Alexander Larsson's avatar
Alexander Larsson committed
1120

1121
  gtk_save_cppflags="$CPPFLAGS"
1122
  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
Alexander Larsson's avatar
Alexander Larsson committed
1123

1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
  gtk_save_LIBS=$LIBS
  LIBS="$x_libs_for_checks $LIBS"
  
  # Sanity check for the X11 and Xext libraries. While everything we need from
  # Xext is optional, the chances a system has *none* of these things is so
  # small that we just unconditionally require it.
  AC_CHECK_FUNC(XOpenDisplay, :,
                AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]))
  AC_CHECK_FUNC(XextFindDisplay, :,
                AC_MSG_ERROR([*** libXext not found. Check 'config.log' for more details.]))
1134
1135
  AC_CHECK_FUNC(XRenderQueryExtension, :,
                AC_MSG_ERROR([*** libXrender not found. Check 'config.log' for more details.]))
1136

1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
  # Check for xReply

  AC_MSG_CHECKING([if <X11/extensions/XIproto.h> is needed for xReply])
  AC_TRY_COMPILE([#include <X11/Xlibint.h>],
      [xReply *rep;],
      [AC_MSG_RESULT([no])],
      [AC_TRY_COMPILE([#include <X11/extensions/XIproto.h>
#include <X11/Xlibint.h>],
           [xReply *rep;],
           [AC_MSG_RESULT([yes])
            AC_DEFINE([NEED_XIPROTO_H_FOR_XREPLY], 1,
                [Define if <X11/extensions/XIproto.h> needed for xReply])],
           [AC_MSG_RESULT([unknown])
            AC_MSG_ERROR([xReply type unavailable. X11 is too old])])])

1152
  # Check for XConvertCase, XInternAtoms (X11R6 specific)
1153

1154
  AC_CHECK_FUNCS(XConvertCase XInternAtoms)
1155

1156
1157
  # Generic X11R6 check needed for XIM support; we could
  # probably use this to replace the above, but we'll
1158
1159
  # leave the separate checks for XConvertCase and XInternAtoms 
  # for clarity
1160
  
1161
  have_x11r6=false
1162
1163
  AC_CHECK_FUNC(XAddConnectionWatch,
      have_x11r6=true)
1164
1165
1166

  if $have_x11r6; then
    AC_DEFINE(HAVE_X11R6,1,[Define if we have X11R6])
1167
  fi
1168
  AM_CONDITIONAL(HAVE_X11R6, $have_x11r6)
1169
1170
1171
1172
1173
1174
1175

  # Check for XKB support.

  if test "x$enable_xkb" = "xyes"; then
        AC_MSG_WARN(XKB support explicitly enabled)
        AC_DEFINE(HAVE_XKB)
  elif test "x$enable_xkb" = "xmaybe"; then
1176
1177
        AC_CHECK_FUNC(XkbQueryExtension,
                      AC_DEFINE(HAVE_XKB))
1178
1179
1180
1181
  else
        AC_MSG_WARN(XKB support explicitly disabled)
  fi

1182
  # Check for shaped window extension
1183

1184
1185
  AC_CHECK_FUNC(XShapeCombineMask,
      AC_DEFINE(HAVE_SHAPE_EXT))
1186

1187
  # X SYNC check
1188
1189
  gtk_save_CFLAGS="$CFLAGS"
  CFLAGS="$CFLAGS $x_cflags"
1190
  
1191
1192
1193
1194
  AC_CHECK_FUNC(XSyncQueryExtension,
      [AC_CHECK_HEADER(X11/extensions/sync.h,
	  AC_DEFINE(HAVE_XSYNC, 1, Have the SYNC extension library),
	  :, [#include <X11/Xlib.h>])])
1195

1196
1197
  CFLAGS="$gtk_save_CFLAGS"

1198
1199
  # Xshm checks

1200
1201
1202
1203
1204
1205
1206
1207
1208
  if test "x$enable_shm" = "xyes"; then
     # Check for the XShm extension, normally in Xext
     AC_CHECK_FUNC(XShmAttach,
	:,
	# On AIX, it is in XextSam instead
	[AC_CHECK_LIB(XextSam, XShmAttach, 
	    [GTK_ADD_LIB(x_extra_libs,XextSam)])])
  fi    

1209
1210
1211
1212
1213
1214
  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
Owen Taylor's avatar
Owen Taylor committed
1215
    have_xshm=no 
1216
1217
    AC_MSG_CHECKING(X11/extensions/XShm.h)
    if test "x$no_xext_lib" = "xyes"; then
Owen Taylor's avatar
Owen Taylor committed
1218
      :
1219
    else
Owen Taylor's avatar
Owen Taylor committed
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
      gtk_save_CFLAGS="$CFLAGS"
      CFLAGS="$CFLAGS $x_cflags"
      AC_TRY_COMPILE([
#include <stdlib.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/extensions/XShm.h>
], [XShmSegmentInfo *x_shm_info;], have_xshm=yes)
      CFLAGS="$gtk_save_CFLAGS"
    fi
    AC_MSG_RESULT($have_xshm)
    if test $have_xshm = yes ; then
      AC_DEFINE(HAVE_XSHM_H)
1236
1237
    fi
  fi
Owen Taylor's avatar
Owen Taylor committed
1238

1239
1240
1241
1242
  if test "x$enable_xinerama" = "xyes"; then
    # Check for Xinerama extension (Solaris impl or Xfree impl)
    gtk_save_cppflags="$CPPFLAGS"
    CPPFLAGS="$CPPFLAGS $x_cflags"
1243
  
1244
    case "$host" in
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
      *-*-solaris*)
          # Check for solaris
	  AC_MSG_CHECKING(for Xinerama support on Solaris)
	  
	  have_solaris_xinerama=false
	  AC_CHECK_FUNC(XineramaGetInfo,
	      [AC_CHECK_HEADER(X11/extensions/xinerama.h,
  		  [have_solaris_xinerama=true], :,
		  [#include <X11/Xlib.h>])])
		
          if $have_solaris_xinerama ; then
            AC_DEFINE(HAVE_SOLARIS_XINERAMA)
	    AC_DEFINE(HAVE_XINERAMA) 
            AC_MSG_RESULT(yes)
          else
            AC_MSG_RESULT(no)
          fi
          ;;
      *)
	  # Check for XFree
          AC_MSG_CHECKING(for Xinerama support on XFree86)
	  
          have_xfree_xinerama=false
          if $PKG_CONFIG --exists xinerama ; then
             have_xfree_xinerama=true
             X_PACKAGES="$X_PACKAGES xinerama"
          else    
	      AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
	          [AC_CHECK_HEADER(X11/extensions/Xinerama.h, 
	              [GTK_ADD_LIB(x_extra_libs,Xinerama)
1275
		      have_xfree_xinerama=true], :,
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
                      [#include <X11/Xlib.h>])])
          fi

          if $have_xfree_xinerama ; then
            AC_DEFINE(HAVE_XFREE_XINERAMA)
	    AC_DEFINE(HAVE_XINERAMA) 
            AC_MSG_RESULT(yes)
         else
            AC_MSG_RESULT(no)
         fi
         ;;
1287
1288
1289
    esac
  fi
  
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
  # set up things for XInput

  if test "x$with_xinput" = "xxfree" || test "x$with_xinput" = "xyes"; then
    AC_DEFINE(XINPUT_XFREE)
    
    if $PKG_CONFIG --exists xi ; then
      X_PACKAGES="$X_PACKAGES xi"
    else
      GTK_ADD_LIB(x_extra_libs, Xi)
    fi
1300
  else
1301
    AC_DEFINE(XINPUT_NONE)
1302
  fi
Owen Taylor's avatar
Owen Taylor committed
1303

1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
  AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree || test x$with_xinput = xyes)

  # Check for the RANDR extension

  have_randr=false
  if $PKG_CONFIG --exists xrandr ; then
    have_randr=true
    X_PACKAGES="$X_PACKAGES xrandr"
  else    
    AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration,
       [AC_CHECK_HEADER(X11/extensions/Xrandr.h,
          # RANDR requires RENDER
          [have_randr=true
          GTK_ADD_LIB(x_extra_libs, Xrender)
          GTK_ADD_LIB(x_extra_libs, Xrandr)],
	  :, [#include <X11/Xlib.h>])])
  fi

  if $have_randr ; then
     AC_DEFINE(HAVE_RANDR, 1, Have the Xrandr extension library)
  fi
       
  # Checks for Xcursor library
  
  if $PKG_CONFIG --exists xcursor ; then
    AC_DEFINE(HAVE_XCURSOR, 1, Have the Xcursor library)
    
    X_PACKAGES="$X_PACKAGES xcursor"
  fi

  # Checks for XFixes extension
  
  if $PKG_CONFIG --exists xfixes ; then
    AC_DEFINE(HAVE_XFIXES, 1, Have the XFIXES X extension)
    
    X_PACKAGES="$X_PACKAGES xfixes"
1340
    GTK_PACKAGES_FOR_X="$GTK_PACKAGES_FOR_X xfixes"
1341
1342
  fi