]> Pileus Git - ~andy/gtk/blob - configure.in
version bump to 1.1.1, binary age 0, interface age 0. GLib version 1.1.1
[~andy/gtk] / configure.in
1 # Process this file with autoconf to produce a configure script.
2 AC_INIT(gdk/gdktypes.h)
3
4 # Save this value here, since automake will set cflags later
5 cflags_set=${CFLAGS+set}
6
7 # Making releases:
8 #   GTK_MICRO_VERSION += 1;
9 #   GTK_INTERFACE_AGE += 1;
10 #   GTK_BINARY_AGE += 1;
11 # if any functions have been added, set GTK_INTERFACE_AGE to 0.
12 # if backwards compatibility has been broken,
13 # set GTK_BINARY_AGE and GTK_INTERFACE_AGE to 0.
14 #
15 GTK_MAJOR_VERSION=1
16 GTK_MINOR_VERSION=1
17 GTK_MICRO_VERSION=1
18 GTK_INTERFACE_AGE=0
19 GTK_BINARY_AGE=0
20 GTK_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$GTK_MICRO_VERSION
21 AC_SUBST(GTK_MAJOR_VERSION)
22 AC_SUBST(GTK_MINOR_VERSION)
23 AC_SUBST(GTK_MICRO_VERSION)
24 AC_SUBST(GTK_INTERFACE_AGE)
25 AC_SUBST(GTK_BINARY_AGE)
26 AC_SUBST(GTK_VERSION)
27
28 # libtool versioning
29 LT_RELEASE=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION
30 LT_CURRENT=`expr $GTK_MICRO_VERSION - $GTK_INTERFACE_AGE`
31 LT_REVISION=$GTK_INTERFACE_AGE
32 LT_AGE=`expr $GTK_BINARY_AGE - $GTK_INTERFACE_AGE`
33 AC_SUBST(LT_RELEASE)
34 AC_SUBST(LT_CURRENT)
35 AC_SUBST(LT_REVISION)
36 AC_SUBST(LT_AGE)
37
38 # For automake.
39 VERSION=$GTK_VERSION
40 PACKAGE=gtk+
41
42 # Save this value here, since automake will set cflags later
43 cflags_set=${CFLAGS+set}
44
45 dnl Initialize automake stuff
46 AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define)
47
48 # Specify a configuration file
49 AM_CONFIG_HEADER(config.h)
50
51 dnl Initialize libtool
52 AM_PROG_LIBTOOL
53
54 dnl Initialize maintainer mode
55 AM_MAINTAINER_MODE
56
57 AC_CANONICAL_HOST
58
59 AC_ARG_ENABLE(shm, [  --enable-shm            support shared memory if available [default=yes]],
60                    echo $enable_shm, enable_shm="yes")
61 AC_ARG_ENABLE(debug, [  --enable-debug=[no/minimum/yes] turn on debugging [default=minimum]],,enable_debug=minimum)
62 AC_ARG_ENABLE(ansi, [  --enable-ansi           turn on strict ansi [default=no]],
63                     , enable_ansi=no)
64 AC_ARG_WITH(glib, [  --with-glib=DIR         Use uninstalled copy of glib])
65 AC_ARG_ENABLE(xim, [  --enable-xim            support XIM [default=yes]],
66                         echo $enable_xim, enable_xim="yes")
67 AC_ARG_WITH(locale, [  --with-locale=LOCALE    locale name you want to use ])
68
69 AC_ARG_WITH(xinput, [  --with-xinput=[no/gxi/xfree] support XInput ])
70 AC_ARG_WITH(threads, [  --with-threads=[posix] support threading ])
71
72 if test "x$enable_debug" = "xyes"; then
73   test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
74   CFLAGS="$CFLAGS -DG_ENABLE_DEBUG"
75 else
76   if test "x$enable_debug" = "xno"; then
77     CFLAGS="$CFLAGS -DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DGTK_NO_CHECK_CASTS"
78   else
79     CFLAGS="$CFLAGS -DGTK_NO_CHECK_CASTS"
80   fi
81 fi
82
83 AC_DEFINE_UNQUOTED(GTK_COMPILED_WITH_DEBUGGING, "${enable_debug}")
84
85 # Build time sanity check...
86 AM_SANITY_CHECK
87
88 # Checks for programs.
89 AC_PROG_CC
90 AM_PROG_CC_STDC
91 AC_PROG_INSTALL
92 AC_PROG_MAKE_SET
93
94 if test "x$GCC" = "xyes"; then
95   if test -z "`echo "$CFLAGS" | grep "\-Wall" 2> /dev/null`" ; then
96     CFLAGS="$CFLAGS -Wall"
97   fi
98
99   if test "x$enable_ansi" = "xyes"; then
100     if test -z "`echo "$CFLAGS" | grep "\-ansi" 2> /dev/null`" ; then
101       CFLAGS="$CFLAGS -ansi"
102     fi
103
104     if test -z "`echo "$CFLAGS" | grep "\-pedantic" 2> /dev/null`" ; then
105       CFLAGS="$CFLAGS -pedantic"
106     fi
107   fi
108 fi
109
110 AC_MSG_CHECKING([For extra flags to get ANSI library prototypes])
111 gtk_save_LDFLAGS=$LDFLAGS
112 LIBS="$LIBS -lm"
113 AC_TRY_RUN([#include <math.h>
114              int main (void) { return (log(1) != log(1.)); }],
115      AC_MSG_RESULT(none needed),
116      gtk_save_CFLAGS=$CFLAGS
117      CFLAGS="$CFLAGS -std1"
118      AC_TRY_RUN([#include <math.h>
119                  int main (void) { return (log(1) != log(1.)); }],
120          AC_MSG_RESULT(-std1),
121          AC_MSG_RESULT()
122          CFLAGS=$gtk_save_CFLAGS
123          AC_MSG_WARN(
124                 [No ANSI prototypes found in library. (-std1 didn't work.)])
125      )
126 )
127 LIBS=$gtk_save_LIBS
128
129 if test "x$enable_xim" = "xyes"; then
130   CFLAGS="$CFLAGS -DUSE_XIM"
131 fi
132
133 if test x$with_glib = xyes ; then
134   AC_MSG_ERROR([
135 *** Directory must be specified for --with-glib])
136 fi
137
138 if test x$with_glib = x ; then 
139   # Look for separately installed glib
140
141   AM_PATH_GLIB(1.1.1,,
142     AC_MSG_ERROR([
143 *** GLIB 1.1.1 or better is required. The latest version of GLIB
144 *** is always available from ftp://ftp.gtk.org.]))
145
146   glib_cflags=$GLIB_CFLAGS
147   glib_libs=$GLIB_LIBS
148 else
149   # Use uninstalled glib (assume they got the version right)
150
151   if test -x $with_glib/glib-config ; then 
152     :
153   else
154     AC_MSG_ERROR([GLIB directory ($with_glib) not present or not configured])
155   fi
156
157   # For use in gtk-config
158   glib_cflags=`$with_glib/glib-config --cflags`
159   glib_libs=`$with_glib/glib-config --libs`
160
161   glib_release=`$with_glib/glib-config --version | sed 's%\\.[[0-9]]*$%%'`
162
163   # canonicalize relative paths
164   case $with_glib in 
165     /*)
166       glib_dir=$with_glib
167       ;;
168     *)
169       glib_dir="\$(top_builddir)/$with_glib"
170       ;;
171   esac
172
173   GLIB_CFLAGS="-I$glib_dir"
174   GLIB_LIBS=$glib_dir/libglib-$glib_release.la
175
176   AC_SUBST(GLIB_CFLAGS)
177   AC_SUBST(GLIB_LIBS)
178 fi
179
180 AC_SUBST(glib_cflags)
181 AC_SUBST(glib_libs)
182
183 # Find the X11 include and library directories
184 AC_PATH_X
185 AC_PATH_XTRA
186
187 if test "x$x_includes" = "x"; then
188   x_includes="/usr/include"
189 fi
190
191 saved_cflags="$CFLAGS"
192 saved_ldflags="$LDFLAGS"
193
194 CFLAGS="$CFLAGS $X_CFLAGS"
195 LDFLAGS="$LDFLAGS $X_LDFLAGS $X_LIBS"
196
197 if test "x$no_x" = "xyes"; then 
198   AC_MSG_ERROR([
199 *** X libraries or include files not found. Check 'config.log' for 
200 *** more details.])
201 fi
202
203 # Checks for libraries.
204 # Check for the X11 library
205 AC_CHECK_LIB(X11, XOpenDisplay, x_libs="-lX11 $X_EXTRA_LIBS", 
206   AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]),
207   $X_EXTRA_LIBS)
208
209 if test "x$enable_shm" = "xyes"; then
210   # Check for the Xext library (needed for XShm extention)
211   AC_CHECK_LIB(Xext, XShmAttach, 
212       x_libs="-lXext $x_libs", 
213       # On AIX, it is in XextSam instead, but we still need -lXext
214       AC_CHECK_LIB(XextSam, XShmAttach, 
215           x_libs="-lXextSam -lXext $x_libs", 
216           no_xext_lib=yes, $x_libs),
217       $x_libs)
218 fi
219
220 # Check for shaped window extension
221
222 AC_CHECK_LIB(Xext, XShapeCombineMask,
223       if test -z "`echo $x_libs | grep "\-lXext" 2> /dev/null`"; then
224            x_libs="-lXext $x_libs"
225       fi
226       AC_DEFINE(HAVE_SHAPE_EXT),
227       ,
228       $x_libs)
229
230 # Check for XConvertCase (X11R6 specific)
231
232 AC_CHECK_LIB(X11, XConvertCase,
233       AC_DEFINE(HAVE_XCONVERTCASE),
234       ,
235       $x_libs)
236
237 x_cflags="$X_CFLAGS"
238 x_ldflags="$X_LDFLAGS $X_LIBS"
239
240 # set up things for XInput
241
242 if test "x$with_xinput" = "xgxi" || test "x$with_xinput" = "xyes"; then
243   AC_DEFINE(XINPUT_GXI)
244   xinput_progs=gxid
245   x_libs="-lXi $x_libs"
246 elif test "x$with_xinput" = "xxfree"; then
247   AC_DEFINE(XINPUT_XFREE)
248   x_libs="-lXi $x_libs"
249 else
250   AC_DEFINE(XINPUT_NONE)
251 fi
252
253 # Threads
254
255 if test "x$with_threads" = "xposix" || test "x$with_threads" = "xyes"; then
256   AC_CHECK_LIB(pthread, pthread_attr_init, 
257     AC_DEFINE(USE_PTHREADS)
258     x_libs="$x_libs -lpthread"
259     CFLAGS="$CFLAGS -D_REENTRANT") 
260 fi
261
262 AC_SUBST(x_cflags)
263 AC_SUBST(x_includes)
264 AC_SUBST(x_ldflags)
265 AC_SUBST(x_libs)
266 AC_SUBST(xinput_progs)
267
268 CFLAGS="$saved_cflags"
269 LDFLAGS="$saved_ldflags"
270
271 if test "x$enable_shm" = "xyes"; then
272   # Check for shared memory
273   AC_CHECK_HEADER(sys/ipc.h, AC_DEFINE(HAVE_IPC_H), no_sys_ipc=yes)
274   AC_CHECK_HEADER(sys/shm.h, AC_DEFINE(HAVE_SHM_H), no_sys_shm=yes)
275
276   # Check whether shmctl IPC_RMID allowes subsequent attaches
277   if test "$ac_cv_header_sys_shm_h" = "yes"; then
278     AC_MSG_CHECKING(whether shmctl IPC_RMID allowes subsequent attaches)
279     AC_TRY_RUN([
280           #include <sys/types.h>
281           #include <sys/ipc.h>
282           #include <sys/shm.h>
283           int main()
284           {
285             int id;
286             char *shmaddr;
287           id = shmget (IPC_PRIVATE, 4, IPC_CREAT | 0777);
288           if (id == -1)
289             exit (2);
290             shmaddr = shmat (id, 0, 0);
291             shmctl (id, IPC_RMID, 0);
292             if ((char*) shmat (id, 0, 0) == (char*) -1)
293             {
294               shmdt (shmaddr);
295               exit (1);
296             }
297             shmdt (shmaddr);
298             shmdt (shmaddr);
299             exit (0);
300           }
301       ],
302       AC_DEFINE(IPC_RMID_DEFERRED_RELEASE)
303         AC_MSG_RESULT(yes),
304       AC_MSG_RESULT(no),
305       AC_MSG_RESULT(assuming no))
306   fi
307
308   # Check for the X shared memory extension header file
309   AC_MSG_CHECKING(X11/extensions/XShm.h)
310   if test "x$no_xext_lib" = "xyes"; then
311     AC_MSG_RESULT(no)
312     no_xshm=yes
313   else
314     if test -f "$x_includes/X11/extensions/XShm.h"; then
315       AC_MSG_RESULT(yes)
316       AC_DEFINE(HAVE_XSHM_H)
317     else
318       AC_MSG_RESULT(no)
319       no_xshm=yes
320     fi
321   fi
322 fi
323
324 # Check for private display resource base variable
325 AC_MSG_CHECKING(resource base field in XDisplay)
326 AC_CACHE_VAL(gtk_cv_display_resource_base,
327 [AC_TRY_RUN([
328 #define XLIB_ILLEGAL_ACCESS
329 #include <X11/Xlib.h>
330
331 int
332 main ()
333 {
334   Display *display;
335
336   return 0;
337
338   display->resource_base;
339 }],
340 gtk_cv_display_resource_base="resource_base",
341 gtk_cv_display_resource_base="private3")])
342 AC_MSG_RESULT($gtk_cv_display_resource_base)
343 AC_DEFINE_UNQUOTED(RESOURCE_BASE, gdk_display->$gtk_cv_display_resource_base)
344
345 # Check if X_LOCALE definition is necessary
346
347 AC_MSG_CHECKING(need -DX_LOCALE)
348
349 AC_TRY_RUN([
350 #include <stdio.h>
351 #include <locale.h>
352
353 int
354 main ()
355 {
356   return setlocale (LC_ALL, "${with_locale}") == NULL;
357 }],
358 need_x_locale=no,
359 need_x_locale=yes)
360 AC_MSG_RESULT($need_x_locale)
361
362 if test $need_x_locale = yes; then
363   CFLAGS="$CFLAGS -DX_LOCALE"
364 fi
365
366 # Checks for header files.
367 AC_HEADER_STDC
368
369 # Checks for typedefs, structures, and compiler characteristics.
370 AC_C_CONST
371
372 # Checks for endianness (needed by GdkRgb).
373 AC_C_BIGENDIAN
374
375 # Checks for library functions.
376 AC_TYPE_SIGNAL
377 AC_FUNC_MMAP
378
379 # Check if <sys/select.h> needs to be included for fd_set
380 AC_MSG_CHECKING([for fd_set])
381 AC_TRY_COMPILE([#include <sys/types.h>],
382         [fd_set readMask, writeMask;], gtk_ok=yes, gtk_ok=no)
383 if test $gtk_ok = yes; then
384     AC_MSG_RESULT([yes, found in sys/types.h])
385 else
386     AC_HEADER_EGREP(fd_mask, sys/select.h, gtk_ok=yes)
387     if test $gtk_ok = yes; then
388         AC_DEFINE(HAVE_SYS_SELECT_H)
389         AC_MSG_RESULT([yes, found in sys/select.h])
390     else
391         AC_DEFINE(NO_FD_SET)
392         AC_MSG_RESULT(no)
393     fi
394 fi
395
396 AC_OUTPUT([
397 Makefile
398 gtk-config
399 docs/Makefile
400 gdk/Makefile
401 gtk/Makefile
402 gtk/gtkfeatures.h
403 ], [chmod +x gtk-config])