configure.in 61.3 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])
14
m4_define([gtk_minor_version], [13])
Matthias Clasen's avatar
Matthias Clasen committed
15
m4_define([gtk_micro_version], [4])
16
m4_define([gtk_interface_age], [0])
Owen Taylor's avatar
Owen Taylor committed
17
18
m4_define([gtk_binary_age],
          [m4_eval(100 * gtk_minor_version + gtk_micro_version)])
19
20
m4_define([gtk_version],
          [gtk_major_version.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.17.3])
35
m4_define([pango_required_version], [1.20])
36
m4_define([atk_required_version], [1.13.0])
37
m4_define([cairo_required_version], [1.6])
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
101
102
m4_define([gail_lt_current],[18])
m4_define([gail_lt_revision],[1])
m4_define([gail_lt_age],[0])
m4_define([gail_lt_version_info],[gail_lt_current:gail_lt_revision:gail_lt_age])
m4_define([gail_lt_current_minus_age],[m4_eval(gail_lt_current - gail_lt_age)])
AC_SUBST([GAIL_LT_VERSION_INFO],[gail_lt_version_info])
AC_SUBST([GAIL_LT_CURRENT_MINUS_AGE],[gail_lt_current_minus_age])
103

104
105
106
107
#
# gdk-pixbuf gets versioned separately, and for now, using standard
# libtool versioning, not GTK+-style versioning
#
108
109
110
GDK_PIXBUF_MAJOR=gtk_major_version
GDK_PIXBUF_MINOR=gtk_minor_version
GDK_PIXBUF_MICRO=gtk_micro_version
111
112
113
114
115
116
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)

117
118
GETTEXT_PACKAGE=gtk20
AC_SUBST(GETTEXT_PACKAGE)
119
120
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
                   [The prefix for our gettext translation domains.])
121

122
123
AC_CANONICAL_HOST

124
125
126
127
128
129
130
131
132
133
134
135
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
136

Matthias Clasen's avatar
Matthias Clasen committed
137
138
139
140
141
case $host in
  *-*-linux*)
    os_linux=yes
    ;;
esac
Elliot Lee's avatar
Elliot Lee committed
142
dnl Initialize libtool
143
AC_PROG_CC
144
AM_DISABLE_STATIC
145

146
147
148
149
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 
150
AC_CHECK_TOOLS(CXX, [$CCC c++ g++ gcc CC cxx cc++ cl], gcc)
151
152
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
153

154
155
AC_TRY_COMPILE(,[class a { int b; } c;], ,CXX=)
AM_CONDITIONAL(HAVE_CXX, test "$CXX" != "")
156
157
158
159

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

Tor Lillqvist's avatar
Typo.    
Tor Lillqvist committed
164
if test "$os_win32" = "yes"; then
165
166
167
168
169
170
171
172
173
174
  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

175
AC_LIBTOOL_WIN32_DLL
Elliot Lee's avatar
Elliot Lee committed
176
177
AM_PROG_LIBTOOL

178
179
180
# Make sure we use 64-bit versions of various file stuff.
AC_SYS_LARGEFILE

181
AM_PROG_AS
Matthias Clasen's avatar
Matthias Clasen committed
182
AC_PATH_PROG(NM, nm, nm)
183

Elliot Lee's avatar
Elliot Lee committed
184
185
186
dnl Initialize maintainer mode
AM_MAINTAINER_MODE

Tor Lillqvist's avatar
Tor Lillqvist committed
187
188
189
190
191
192
193
194
195
196
197
198
199
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")
200
AM_CONDITIONAL(OS_UNIX, test "$os_win32" != "yes")
Matthias Clasen's avatar
Matthias Clasen committed
201
AM_CONDITIONAL(OS_LINUX, test "$os_linux" = "yes")
Tor Lillqvist's avatar
Tor Lillqvist committed
202
203

if test "$os_win32" = "yes"; then
Tor Lillqvist's avatar
Tor Lillqvist committed
204
205
206
207
  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
208
209
210
211
  AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
fi
AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)

212
213
m4_define([debug_default],
          m4_if(m4_eval(gtk_minor_version % 2), [1], [yes], [minimum]))
214
215

dnl declare --enable-* args and collect ac_help strings
216
217
218
219
220
221
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],
222
223
                              [support shared memory if available [default=yes]])],,
              [enable_shm="yes"])
224
225
226
227
AC_ARG_ENABLE(xkb,
              [AC_HELP_STRING([--enable-xkb],
                              [support XKB [default=maybe]])],,
              [enable_xkb="maybe"])
228
229
230
AC_ARG_ENABLE(xinerama,
              [AC_HELP_STRING([--enable-xinerama],
	                      [support xinerama extension if available [default=yes]])],,
Matthias Clasen's avatar
Matthias Clasen committed
231
              [enable_xinerama="no"])
232
233
234
235
AC_ARG_ENABLE(rebuilds,
              [AC_HELP_STRING([--disable-rebuilds],
                              [disable all source autogeneration rules])],,
              [enable_rebuilds=yes])
236
237
238
239
AC_ARG_ENABLE(visibility,
              [AC_HELP_STRING([--disable-visibility],
                              [don't use ELF visibility attributes])],,
              [enable_visibility=yes])
240
241
242
243

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

Tor Lillqvist's avatar
Tor Lillqvist committed
244
245
246
247
248
249
if test "$platform_win32" = yes; then
  gdktarget=win32
else
  gdktarget=x11
fi

Matthias Clasen's avatar
Matthias Clasen committed
250
AC_ARG_WITH(gdktarget, [  --with-gdktarget=[[x11/win32/quartz/directfb]] select non-default GDK target],
251
252
253
254
	gdktarget=$with_gdktarget)

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

Owen Taylor's avatar
Owen Taylor committed
259
260
gdktargetlib=libgdk-$gdktarget-$GTK_API_VERSION.la
gtktargetlib=libgtk-$gdktarget-$GTK_API_VERSION.la
Tor Lillqvist's avatar
Tor Lillqvist committed
261
262
263
264

AC_SUBST(gdktargetlib)
AC_SUBST(gtktargetlib)

265
if test "x$enable_debug" = "xyes"; then
Tim Janik's avatar
Tim Janik committed
266
  test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
267
  GTK_DEBUG_FLAGS="-DG_ENABLE_DEBUG -DG_ERRORCHECK_MUTEXES" 
Elliot Lee's avatar
Elliot Lee committed
268
else
269
  if test "x$enable_debug" = "xno"; then
270
    GTK_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"
271
  else
272
    GTK_DEBUG_FLAGS="-DG_DISABLE_CAST_CHECKS"
273
  fi
Elliot Lee's avatar
Elliot Lee committed
274
275
fi

276

277
278
279
280
281
if test "x$enable_visibility" = "xno"; then
  GTK_DEBUG_FLAGS="$GTK_DEBUG_FLAGS -DDISABLE_VISIBILITY"
fi


282
283
AC_DEFINE_UNQUOTED(GTK_COMPILED_WITH_DEBUGGING, "${enable_debug}",
                   [Define if debugging is enabled])
Owen Taylor's avatar
Owen Taylor committed
284

Alexander Larsson's avatar
Alexander Larsson committed
285
			
Elliot Lee's avatar
Elliot Lee committed
286
287
288
289
# Build time sanity check...
AM_SANITY_CHECK

# Checks for programs.
290
AC_ISC_POSIX
Elliot Lee's avatar
Elliot Lee committed
291
292
293
294
AM_PROG_CC_STDC
AC_PROG_INSTALL
AC_PROG_MAKE_SET

Raja R Harinath's avatar
Raja R Harinath committed
295
changequote(,)dnl
296
if test "x$GCC" = "xyes"; then
Raja R Harinath's avatar
Raja R Harinath committed
297
298
299
300
  case " $CFLAGS " in
  *[\ \	]-Wall[\ \	]*) ;;
  *) CFLAGS="$CFLAGS -Wall" ;;
  esac
Elliot Lee's avatar
Elliot Lee committed
301

302
  if test "x$enable_ansi" = "xyes"; then
Raja R Harinath's avatar
Raja R Harinath committed
303
304
305
306
307
308
309
310
311
    case " $CFLAGS " in
    *[\ \	]-ansi[\ \	]*) ;;
    *) CFLAGS="$CFLAGS -ansi" ;;
    esac

    case " $CFLAGS " in
    *[\ \	]-pedantic[\ \	]*) ;;
    *) CFLAGS="$CFLAGS -pedantic" ;;
    esac
Elliot Lee's avatar
Elliot Lee committed
312
  fi
313
314
fi
changequote([,])dnl
Tor Lillqvist's avatar
Tor Lillqvist committed
315

316
CPPFLAGS="$CPPFLAGS -DG_DISABLE_SINGLE_INCLUDES -DATK_DISABLE_SINGLE_INCLUDES -DPANGO_DISABLE_SINGLE_INCLUDES -DGDK_PIXBUF_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_SINGLE_INCLUDES"
317

318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
# 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
342
    esac
343
344
345
346
347
348
349
    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
350
  fi
Elliot Lee's avatar
Elliot Lee committed
351
352
fi

353
354
355
# Honor aclocal flags
ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"

356
357
358
359
360
361
## 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
362
363
364
PKG_CHECK_MODULES(BASE_DEPENDENCIES,
  [glib-2.0 >= glib_required_version dnl
   atk >= atk_required_version dnl
Matthias Clasen's avatar
Matthias Clasen committed
365
366
   pango >= pango_required_version dnl
   cairo >= cairo_required_version])
367

Tor Lillqvist's avatar
Tor Lillqvist committed
368
369
370
371
372
373
374
375
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
376
377
AC_SUBST(LIBTOOL_EXPORT_OPTIONS)

378
379
380
381
382
dnl ******************************************************
dnl * See whether to include shared library dependencies *
dnl ******************************************************

AC_ARG_ENABLE(explicit-deps, 
383
384
385
              [AC_HELP_STRING([--enable-explicit-deps=@<:@yes/no/auto@:>@],
                              [use explicit dependencies in .pc files [default=auto]])],,
              [enable_explicit_deps=auto])
386
387
388
389

AC_MSG_CHECKING([Whether to write dependencies into .pc files])
case $enable_explicit_deps in
  auto)
390
    export SED
391
    deplibs_check_method=`(./libtool --config; echo 'eval echo $deplibs_check_method') | sh`
392
    if test "x$deplibs_check_method" '!=' xpass_all || test "x$enable_static" = xyes ; then
393
394
395
396
397
398
399
400
401
402
403
404
405
406
      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)

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

410
AC_PATH_PROGS(PERL, perl5 perl)
411

412
413
414
# We would like indent, but don't require it.
AC_CHECK_PROG(INDENT, indent, indent)

415
REBUILD=\#
416
417
if test "x$enable_rebuilds" = "xyes" && \
     test -n "$PERL" && \
418
     $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 ; then
419
  REBUILD=
420
421
fi
AC_SUBST(REBUILD)
422

Matthias Clasen's avatar
Matthias Clasen committed
423
AC_CHECK_FUNCS(lstat mkstemp flockfile getc_unlocked)
424
AC_CHECK_FUNCS(localtime_r)
425
426
427
428
429
430
431
432
433
434
435
436

# _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
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
466
467
468
469
470
471
472
473
# _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
	
474
475
476
477
478
479
480
481
# 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
482
483
  AC_DEFINE(HAVE_SIGSETJMP, 1,
            [Define to 1 if sigsetjmp is available])
484
fi
Tor Lillqvist's avatar
Tor Lillqvist committed
485

Owen Taylor's avatar
Owen Taylor committed
486
# i18n stuff
487
488
489
490
491
# 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/.
Andre Klapper's avatar
Andre Klapper committed
492
ALL_LINGUAS="af am ang ar as az az_IR be be@latin bg bn bn_IN br bs ca ca@valencia 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 io is it ja ka kn 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 si 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"
493
AM_GLIB_GNU_GETTEXT
494
LIBS="$LIBS $INTLLIBS"
495
496
497
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])
498

Owen Taylor's avatar
Owen Taylor committed
499
AM_GLIB_DEFINE_LOCALEDIR(GTK_LOCALEDIR)
Owen Taylor's avatar
Owen Taylor committed
500

501
502
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
503
AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
504

505
gtk_save_LIBS=$LIBS
506
507
508
509
LIBS="$LIBS -lm"
AC_TRY_RUN([#include <math.h>
             int main (void) { return (log(1) != log(1.)); }],
     AC_MSG_RESULT(none needed),
510
     gtk_save_CFLAGS="$CFLAGS"
511
512
513
514
515
     CFLAGS="$CFLAGS -std1"
     AC_TRY_RUN([#include <math.h>
	         int main (void) { return (log(1) != log(1.)); }],
         AC_MSG_RESULT(-std1),
         AC_MSG_RESULT()
516
         CFLAGS="$gtk_save_CFLAGS"
517
         AC_MSG_WARN(
518
519
520
521
                [No ANSI prototypes found in library. (-std1 didn't work.)]),
	 true
     ),
     AC_MSG_RESULT(none needed)
522
523
524
)
LIBS=$gtk_save_LIBS

525
526
527
AC_MSG_CHECKING(for the BeOS)
case $host in
  *-*-beos*)
Manish Singh's avatar
Manish Singh committed
528
    AC_MSG_RESULT(yes)
529
530
    MATH_LIB=
  ;;
Manish Singh's avatar
Manish Singh committed
531
532
  *)
    AC_MSG_RESULT(no)
533
534
  ;;
esac
535
536
537
538
539
540
541
542
543
544
545
546
547
548

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

Manish Singh's avatar
Manish Singh committed
550
551
552
553
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),
554
  gtk_save_CFLAGS="$CFLAGS"
Manish Singh's avatar
Manish Singh committed
555
556
557
558
  CFLAGS="$CFLAGS -posix"
  AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
    AC_MSG_RESULT(-posix),
    AC_MSG_RESULT()
559
    CFLAGS="$gtk_save_CFLAGS"
Manish Singh's avatar
Manish Singh committed
560
561
    AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))

562
#
Owen Taylor's avatar
Owen Taylor committed
563
564
# Run AM_PATH_GLIB_2_0 to make sure that GLib is installed and working
# 
565

566
GLIB_PACKAGES="gobject-2.0 gmodule-no-export-2.0"
567

568
AM_PATH_GLIB_2_0(glib_required_version, :,
Owen Taylor's avatar
Owen Taylor committed
569
  AC_MSG_ERROR([
570
571
*** GLIB glib_required_version or better is required. The latest version of 
*** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.]),
572
  gobject gmodule-no-export gthread)
Owen Taylor's avatar
Owen Taylor committed
573

574
575
576
577
578
579
580
581
# 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
582
583
584
585
586
587
588
589
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

590
591
592
593
594
595
596
597
598
599
600
601
AC_CHECK_HEADERS(pwd.h,
                 AC_DEFINE(HAVE_PWD_H, 1,
                           [Define to 1 if pwd.h is available]))
AC_CHECK_HEADERS(sys/time.h,
                 AC_DEFINE(HAVE_SYS_TIME_H, 1,
                           [Define to 1 if time.h is available]))
AC_CHECK_HEADERS(unistd.h,
                 AC_DEFINE(HAVE_UNISTD_H, 1,
                           [Define to 1 if unistd.h is available]))
AC_CHECK_HEADERS(ftw.h,
                 AC_DEFINE(HAVE_FTW_H, 1,
                           [Define to 1 if ftw.h is available]))
602

603
604
605
606
607
608
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])
609
    AC_DEFINE(HAVE_GNU_FTW, 1, [Have GNU ftw])
610
611
612
613
else
    AC_MSG_RESULT([no])
fi

614
615
616
saved_cflags="$CFLAGS"
saved_ldflags="$LDFLAGS"

617

618
619
# Checks for header files.
AC_HEADER_STDC
620

621
622
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
Elliot Lee's avatar
Elliot Lee committed
623

624
625
626
# Checks for library functions.
AC_TYPE_SIGNAL
AC_FUNC_MMAP
627

Matthias Clasen's avatar
Matthias Clasen committed
628
AC_CHECK_FUNCS(mallinfo)
629
630
AC_CHECK_FUNCS(getresuid)
AC_TYPE_UID_T
631

632
633
634
635
636
637
638
639
640
# 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
641
642
        AC_DEFINE(HAVE_SYS_SELECT_H, 1,
                  [Define to 1 if sys/select.h is available])
643
644
        AC_MSG_RESULT([yes, found in sys/select.h])
    else
645
646
	AC_DEFINE(NO_FD_SET, 1,
                  [Define to 1 if fd_set is not available])
647
648
649
	AC_MSG_RESULT(no)
    fi
fi
650

651
652
653
654
# `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
655
   AC_DEFINE(HAVE_WCHAR_H, 1, [Have wchar.h include file])
656
657
fi
AC_MSG_RESULT($gdk_wchar_h)
658

659
660
661
662
# 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
663
   AC_DEFINE(HAVE_WCTYPE_H, 1, [Have wctype.h include file])
664
665
fi
AC_MSG_RESULT($gdk_wctype_h)
666

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

671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
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"
690

691
if test $gdk_working_wctype = no; then
692
   AC_DEFINE(HAVE_BROKEN_WCTYPE, 1, [Is the wctype implementation broken])
693
694
695
696
   GDK_WLIBS=
fi
AC_MSG_RESULT($gdk_working_wctype)
AC_SUBST(GDK_WLIBS)
Havoc Pennington's avatar
Delete.    
Havoc Pennington committed
697

698
699
700
701
# 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
702
   AC_DEFINE(HAVE_UXTHEME_H, 1, [Have uxtheme.h include file])
703
704
705
fi
AC_MSG_RESULT($gtk_uxtheme_h)

Matthias Clasen's avatar
Matthias Clasen committed
706
707
708
709
# Checks for gdkspawn
AC_CHECK_HEADERS(crt_externs.h)
AC_CHECK_FUNCS(_NSGetEnviron)

710

711
712
713
##################################################
# Checks for gdk-pixbuf
##################################################
714

715
716
717
718
719
720
721
722
723
724
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
725
726
   AC_DEFINE(USE_LA_MODULES, 1,
             [Whether to load modules via .la files rather than directly])
727
728
729
fi


730
AC_MSG_CHECKING(whether to build gmodulized gdk-pixbuf)
731

732
733
734
AC_ARG_ENABLE(modules,
              [AC_HELP_STRING([--disable-modules],
                              [disable dynamic module loading])])
735

736
737
dynworks=false
deps=
738
if test x$enable_modules = xno; then
739
740
741
742
    AC_MSG_RESULT(no)
else
    AC_MSG_RESULT(yes)
    AC_MSG_CHECKING(whether dynamic modules work)
743
    ## for loop is to strip newline 
744
    tmp=`$PKG_CONFIG --variable=gmodule_supported gmodule-no-export-2.0`
745
746
747
    for I in $tmp; do
        dynworks=$I
    done
748

749
750
751
752
753
754
755
756
757
758
759
760
761
    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
762

763
    if $dynworks; then
764
765
        AC_DEFINE(USE_GMODULE, 1,
                  [Define to 1 if gmodule works and should be used])
766
767
768
769
        AC_MSG_RESULT(yes)
    else
        AC_MSG_RESULT(no)
    fi
770
fi
Havoc Pennington's avatar
Havoc Pennington committed
771

Owen Taylor's avatar
Owen Taylor committed
772
773
774
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.

775
776
777
778
779
780
781
782
783
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])])
784
785
786
AC_ARG_WITH(libjasper,
            [AC_HELP_STRING([--without-libjasper],
                            [disable JPEG2000 loader for gdk-pixbuf])])
Owen Taylor's avatar
Owen Taylor committed
787

788
789
790
791
792
793
AC_ARG_ENABLE(gdiplus,
            [AC_HELP_STRING([--disable-gdiplus-loaders],
                            [disable GDI+ loaders for gdk-pixbuf])])

AM_CONDITIONAL(BUILD_GDIPLUS_LOADERS, [ test x$os_win32 = xyes && test x$enable_gdiplus != xno ])

794
dnl Test for libtiff
795
if test x$os_win32 = xno || test x$enable_gdiplus = xno; then
Owen Taylor's avatar
Owen Taylor committed
796
  if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
797
    AC_CHECK_LIB(tiff, TIFFReadRGBAImageOriented,
Tor Lillqvist's avatar
Tor Lillqvist committed
798
      [AC_CHECK_HEADER(tiffio.h,
799
        TIFF='tiff'; LIBTIFF='-ltiff',
Tor Lillqvist's avatar
Tor Lillqvist committed
800
801
802
        AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
      [AC_CHECK_LIB(tiff, TIFFWriteScanline,
        [AC_CHECK_HEADER(tiffio.h,
803
          TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz',
Tor Lillqvist's avatar
Tor Lillqvist committed
804
805
806
          AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
        [AC_CHECK_LIB(tiff34, TIFFFlushData,
          [AC_CHECK_HEADER(tiffio.h,
807
            TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
Tor Lillqvist's avatar
Tor Lillqvist committed
808
            AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
809
        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
810
811
  fi

Owen Taylor's avatar
Owen Taylor committed
812
813
814
815
816
817
  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
818
fi
Owen Taylor's avatar
Owen Taylor committed
819

820
dnl Test for libjpeg
821
if test x$os_win32 = xno || test x$enable_gdiplus = xno; then
Owen Taylor's avatar
Owen Taylor committed
822
  if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
823
824
825
826
827
828
829
830
831
832
    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
833
#undef HAVE_STDLIB_H
834
835
836
837
838
839
840
#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,     
841
842
          AC_DEFINE(HAVE_PROGRESSIVE_JPEG, 1,
                    [Define to 1 is libjpeg supports progressive JPEG]),
843
844
845
846
847
          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
848
849
  fi

Owen Taylor's avatar
Owen Taylor committed
850
851
852
853
854
855
  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
856
fi
Owen Taylor's avatar
Owen Taylor committed
857

858
dnl Test for libpng
Owen Taylor's avatar
Owen Taylor committed
859
  if test x$with_libpng != xno && test -z "$LIBPNG"; then
860
861
862
863
864
865
866
867
868
869
870
871
872
    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)
873
      if test "$png_ok" = yes; then
874
875
876
877
878
879
880
881
882
883
884
        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
885
      else
886
       AC_MSG_WARN(*** PNG loader will not be built (PNG header file not found) ***)
887
888
      fi
    fi
889
  fi
890

Owen Taylor's avatar
Owen Taylor committed
891
892
893
894
895
896
897
898
  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

899
900
901
902
903
904
905
906
907
908
909
dnl Test for libjasper
  if test x$with_libjasper != xno && test -z "$LIBJASPER"; then
    AC_CHECK_LIB(jasper, jas_init, LIBJASPER=-ljasper, [])
  fi

  if test x$with_libjasper != xno && test -z "$LIBJASPER"; then
     AC_MSG_ERROR([
*** Checks for JPEG2000 loader failed. You can build without it by passing 
*** --without-libjasper to configure])
  fi

910
911
912
AC_SUBST(LIBTIFF)
AC_SUBST(LIBJPEG)
AC_SUBST(LIBPNG)
913
AC_SUBST(LIBJASPER)
914

915
AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks)
916

917
918
919
920
#
# Allow building some or all gdk-pixbuf loaders included
#
AC_MSG_CHECKING(pixbuf loaders to build)
921

922
923
924
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 ...],
925
dnl                [build the specified loaders into gdk-pixbuf])
926
927
AC_ARG_WITH(included_loaders,
[  --with-included-loaders=LOADER1,LOADER2,...
928
                          build the specified loaders into gdk-pixbuf])
929

930
if $dynworks; then 
931
   :
932
933
934
935
936
937
938
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

939
940
941
942
943
# Use the traditional png loader instead of the GDI+ one on Windows,
# because some important apps like GIMP need to read and write
# arbitrary tEXt chunks which doesn't seem to be possible through GDI+

all_loaders="ani,icns,pcx,ras,tga,png,pnm,wbmp,xbm,xpm"
944
945
946
if test x$with_libjasper != xno; then
  all_loaders="$all_loaders,jasper"
fi
947
948
949
950
951
952
953
954
955
if test x$os_win32 = xyes && test x$enable_gdiplus != xno; then
  # Skip PNG, see comment above
  gdip_formats="bmp emf gif ico jpeg tiff wmf"
  for f in $gdip_formats; do
    all_loaders="$all_loaders,gdip-$f"
  done
else
  all_loaders="$all_loaders,bmp,gif,ico,jpeg,tiff"
fi
956
957
958
959
included_loaders=""
# If no loaders specified, include all
if test "x$with_included_loaders" = xyes ; then
  included_loaders="$all_loaders"
960
else
961
  included_loaders="$with_included_loaders"
962
963
fi

964
AC_MSG_RESULT($included_loaders)
965

966
967
INCLUDED_LOADER_OBJ=
INCLUDED_LOADER_DEFINE=
968

969
970
IFS="${IFS= 	}"; gtk_save_ifs="$IFS"; IFS=","
for loader in $included_loaders; do
971
 if echo "$all_loaders" | egrep "(^|,)$loader(\$|,)" > /dev/null; then
972
973
974
975
   :
 else
   AC_MSG_ERROR([the specified loader $loader does not exist])
 fi
976

977
 loader_underscores=`echo $loader | sed -e 's/-/_/g'`
978
 INCLUDED_LOADER_OBJ="$INCLUDED_LOADER_OBJ libstatic-pixbufloader-$loader.la"
979
980
981
982
983
984
985

 # Don't bother defining separate -DINCLUDE_gdip_foo for each gdip-foo loader
 case $loader in
   gdip-*) ;;
   *) INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_$loader_underscores";;
 esac
 eval INCLUDE_$loader_underscores=yes
986
done
987
988
989
990
991
992
993

# Just define one -DINCLUDE_gdiplus for all the gdip-foo loaders
# (except gdip-png, which isn't built at all)
if test x"$INCLUDE_gdip_ico" = xyes; then
  INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_gdiplus"
fi

994
995
996
IFS="$gtk_save_ifs"
AC_SUBST(INCLUDED_LOADER_OBJ)
AC_SUBST(INCLUDED_LOADER_DEFINE)
997

998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
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])
1012
AM_CONDITIONAL(INCLUDE_ICNS, [test x"$INCLUDE_icns" = xyes])
1013
AM_CONDITIONAL(INCLUDE_JASPER, [test x"$INCLUDE_jasper" = xyes])
1014
1015
1016
# As all GDI+ loaders are either built-in or not, arbitrarily just
# check one of the variables here
AM_CONDITIONAL(INCLUDE_GDIPLUS, [test x"$INCLUDE_gdip_ico" = xyes])
1017

1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
#
# Allow building some or all immodules included
#
AC_MSG_CHECKING(immodules to build)

dnl due to an autoconf bug, commas in the first arg to
dnl AC_HELP_STRING cause problems.
dnl AC_HELP_STRING([--with-included-immodules=MODULE1 MODULE2 ...],
dnl                [build the specified input method modules into gtk])
AC_ARG_WITH(included_immodules,
[  --with-included-immodules=MODULE1,MODULE2,...
                          build the specified input methods into gtk])

if $dynworks; then 
   :
else
   ## if the option was specified, leave it; otherwise disable included immodules
   if test x$with_included_immodules = xno; then
           with_included_immodules=yes
   fi
fi

all_immodules="am-et,cedilla,cyrillic-translit"
if test "$gdktarget" = "win32"; then
   all_immodules="${all_immodules},ime"
fi
all_immodules="${all_immodules},inuktitut,ipa,multipress,thai,ti-er,ti-et,viqr"
if test "$gdktarget" = "x11"; then
   all_immodules="${all_immodules},xim"
fi

included_immodules=""
# If the switch specified without listing any specific ones, include all
if test "x$with_included_immodules" = xyes ; then
  included_immodules="$all_immodules"
else
  included_immodules="$with_included_immodules"
fi

AC_MSG_RESULT($included_immodules)
AM_CONDITIONAL(HAVE_INCLUDED_IMMMODULES, test "x$included_immodules" != x)

INCLUDED_IMMODULE_OBJ=
INCLUDED_IMMODULE_DEFINE=

IFS="${IFS= 	}"; gtk_save_ifs="$IFS"; IFS=","
for immodule in $included_immodules; do
 immodule_underscores=`echo $immodule | sed -e 's/-/_/g'`
 if echo "$all_immodules" | egrep "(^|,)$immodule(\$|,)" > /dev/null; then
   :
 else
   AC_MSG_ERROR([the specified input method $immodule does not exist])
 fi

 INCLUDED_IMMODULE_OBJ="$INCLUDED_IMMODULE_OBJ ../modules/input/libstatic-im-$immodule.la"
 INCLUDED_IMMODULE_DEFINE="$INCLUDED_IMMODULE_DEFINE -DINCLUDE_IM_$immodule_underscores"
 eval INCLUDE_$immodule_underscores=yes
done
IFS="$gtk_save_ifs"
AC_SUBST(INCLUDED_IMMODULE_OBJ)
AC_SUBST(INCLUDED_IMMODULE_DEFINE)

AM_CONDITIONAL(INCLUDE_IM_AM_ET, [test x"$INCLUDE_am_et" = xyes])
AM_CONDITIONAL(INCLUDE_IM_CEDILLA, [test x"$INCLUDE_cedilla" = xyes])
AM_CONDITIONAL(INCLUDE_IM_CYRILLIC_TRANSLIT, [test x"$INCLUDE_cyrillic_translit" = xyes])
AM_CONDITIONAL(INCLUDE_IM_IME, [test x"$INCLUDE_ime" = xyes])
AM_CONDITIONAL(INCLUDE_IM_INUKTITUT, [test x"$INCLUDE_inuktitut" = xyes])
AM_CONDITIONAL(INCLUDE_IM_IPA, [test x"$INCLUDE_ipa" = xyes])
AM_CONDITIONAL(INCLUDE_IM_MULTIPRESS, [test x"$INCLUDE_multipress" = xyes])
AM_CONDITIONAL(INCLUDE_IM_THAI, [test x"$INCLUDE_thai" = xyes])
AM_CONDITIONAL(INCLUDE_IM_TI_ER, [test x"$INCLUDE_ti_er" = xyes])
AM_CONDITIONAL(INCLUDE_IM_TI_ET, [test x"$INCLUDE_ti_et" = xyes])
AM_CONDITIONAL(INCLUDE_IM_VIQR, [test x"$INCLUDE_viqr" = xyes])
AM_CONDITIONAL(INCLUDE_IM_XIM, [test x"$INCLUDE_xim" = xyes])

1093
AC_HEADER_SYS_WAIT
Alexander Larsson's avatar
Alexander Larsson committed
1094

1095
1096
1097
1098
1099
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)
1100
AM_CONDITIONAL(HAVE_JASPER, test "x$LIBJASPER" != x)
1101

Havoc Pennington's avatar
Havoc Pennington committed
1102
if $dynworks ; then
1103
  STATIC_LIB_DEPS=
1104
  if echo "$included_loaders" | egrep '(^|,)tiff($|,)' > /dev/null; then
Havoc Pennington's avatar
Havoc Pennington committed
1105
    STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBTIFF"
1106
  fi
1107
  if echo "$included_loaders" | egrep '(^|,)jpeg($|,)' > /dev/null; then
Havoc Pennington's avatar
Havoc Pennington committed
1108
    STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBJPEG"
1109
  fi
1110
  if echo "$included_loaders" | egrep '(^|,)png($|,)' > /dev/null; then
Havoc Pennington's avatar
Havoc Pennington committed
1111
    STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBPNG"
1112
  fi
1113
else
1114
  STATIC_LIB_DEPS="$LIBTIFF $LIBJPEG $LIBPNG"
1115
fi
Elliot Lee's avatar
Elliot Lee committed
1116

1117
1118
1119
# Checks to see whether we should include mediaLib
# support.
#
1120
1121
1122
1123
1124
1125
AC_CHECK_HEADER(sys/systeminfo.h,
                AC_DEFINE(HAVE_SYS_SYSTEMINFO_H, 1, 
                          [Define to 1 if sys/systeminfo.h is available]))
AC_CHECK_HEADER(sys/sysinfo.h,
                AC_DEFINE(HAVE_SYS_SYSINFO_H, 1,
                          [Define to 1 if sys/sysinfo.h is available]))
1126
1127
1128
1129
1130
1131
1132

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
1133
1134
    AC_DEFINE(USE_MEDIALIB, 1,
              [Define to 1 if medialib is available and should be used])
1135
1136
1137
1138
1139
1140
1141
    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
1142
1143
        AC_DEFINE(USE_MEDIALIB25, 1,
                  [Define to 1 if medialib 2.5 is available])
1144
1145
1146
1147
1148
    fi
fi
AM_CONDITIONAL(USE_MEDIALIB, test $use_mlib = yes)
AM_CONDITIONAL(USE_MEDIALIB25, test $use_mlib25 = yes)

1149
1150
1151
# 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.)
1152
#
1153
# This code is partially taken from Mesa
1154
#
1155
1156
1157
1158
1159
1160
1161
1162
1163
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
1164

1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
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
1180
1181
      AC_DEFINE(USE_MMX, 1,
                [Define to 1 if XXM is available and should be used])
1182
1183
1184
1185
      AC_MSG_RESULT(yes)
    else
      AC_MSG_RESULT(no)
    fi
Elliot Lee's avatar
Elliot Lee committed
1186
fi
1187

1188
AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)
1189

1190
REBUILD_PNGS=
1191
if test -z "$LIBPNG" && test x"$os_win32" = xno -o x$enable_gdiplus = xno; then
1192
1193
1194
  REBUILD_PNGS=#
fi

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

1197
AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
1198

1199
if test $cross_compiling = yes; then
1200
  AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
1201
1202
  AC_PATH_PROG(GTK_UPDATE_ICON_CACHE, gtk-update-icon-cache, no)
  if test x$GTK_UPDATE_ICON_CACHE = xno; then
1203
    REBUILD_PNGS=#
1204
1205
  fi
fi
1206

1207
if test ! -f $srcdir/gtk/gtkbuiltincache.h && 
1208
1209
   test "x$REBUILD_PNGS" = "x#" ; then
     AC_MSG_ERROR([
1210
*** gtkbuiltincache.h is not in the tree, and cannot be built
1211
*** because you don't have libpng, or (when cross-compiling) you 
1212
*** don't have a prebuilt gtk-update-icon-cache on the build system.])
1213
1214
1215
1216
fi

AC_SUBST(REBUILD_PNGS)

1217
GDK_PIXBUF_PACKAGES="gmodule-no-export-2.0 gobject-2.0 gio-2.0"
1218
GDK_PIXBUF_EXTRA_LIBS="$STATIC_LIB_DEPS $MATH_LIB $MEDIA_LIB"
1219
GDK_PIXBUF_EXTRA_CFLAGS= 
1220
GDK_PIXBUF_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1221
GDK_PIXBUF_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $PNG_DEP_CFLAGS_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS"
1222

1223
1224
1225
########################################
# Windowing system checks
########################################
1226

1227
1228
1229
GDK_PIXBUF_XLIB_PACKAGES=
GDK_PIXBUF_XLIB_EXTRA_CFLAGS=
GDK_PIXBUF_XLIB_EXTRA_LIBS=
1230
1231
	
X_PACKAGES=fontconfig
1232
1233
1234
1235
1236
1237
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=
1238

1239
if test "x$gdktarget" = "xx11"; then
1240
1241
1242
1243
1244
1245
1246
1247
1248
  #
  # 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

1249
  #
1250
  # Check for basic X packages; we use pkg-config if available
1251
  #
1252
  if $PKG_CONFIG --exists x11 xext xrender; then
1253
    have_base_x_pc=true
1254
    X_PACKAGES="$X_PACKAGES x11 xext xrender"
1255
1256
    x_libs="`$PKG_CONFIG --libs x11 xext xrender`"
    X_CFLAGS="`$PKG_CONFIG --cflags x11 xext xrender`"
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
    
    # 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"
1278
    x_libs_for_checks="$X_LIBS -lXext -lXrender -lX11 $X_EXTRA_LIBS"
Elliot Lee's avatar
Elliot Lee committed
1279

1280
1281
    GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
    GDK_PIXBUF_XLIB_EXTRA_LIBS="$X_LIBS -lX11 $X_EXTRA_LIBS"
1282
    GTK_DEP_LIBS_FOR_X="$X_LIBS -lXrender -lX11 $X_EXTRA_LIBS"
1283
1284
  fi

1285
1286
  # Extra libraries found during checks (-lXinerama, etc), not from pkg-config.
  x_extra_libs=
Alex Larsson's avatar
Alex Larsson committed
1287

1288
  gtk_save_cppflags="$CPPFLAGS"
1289
  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
Alex Larsson's avatar
Alex Larsson committed
1290

1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
  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.]))
1301
1302
  AC_CHECK_FUNC(XRenderQueryExtension, :,
                AC_MSG_ERROR([*** libXrender not found. Check 'config.log' for more details.]))
1303

1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
  # 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,
1315
                      [Define if <X11/extensions/XIproto.h> needed for xReply])],
1316
1317
1318
           [AC_MSG_RESULT([unknown])
            AC_MSG_ERROR([xReply type unavailable. X11 is too old])])])

1319
  # Check for XConvertCase, XInternAtoms (X11R6 specific)
1320