X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=configure.in;h=b466a21707de82fcfdf7f8350c3f453682319fab;hb=38e44202bddba6e54568839fc104bb885c6deb89;hp=b7bd5dc52280feb3d7b6e863c9f7d307dd88af41;hpb=928028595464f11f07efa01aaf88f33aa5bf281d;p=~andy%2Fgtk diff --git a/configure.in b/configure.in index b7bd5dc52..b466a2170 100644 --- a/configure.in +++ b/configure.in @@ -4,18 +4,41 @@ AC_INIT(gdk/gdktypes.h) # Save this value here, since automake will set cflags later cflags_set=${CFLAGS+set} -GTK_MAJOR_VERSION=0 -GTK_MINOR_VERSION=99 -GTK_MICRO_VERSION=6 +# 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. +# +GTK_MAJOR_VERSION=1 +GTK_MINOR_VERSION=1 +GTK_MICRO_VERSION=12 +GTK_INTERFACE_AGE=1 +GTK_BINARY_AGE=1 GTK_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$GTK_MICRO_VERSION +AC_SUBST(GTK_MAJOR_VERSION) +AC_SUBST(GTK_MINOR_VERSION) +AC_SUBST(GTK_MICRO_VERSION) +AC_SUBST(GTK_INTERFACE_AGE) +AC_SUBST(GTK_BINARY_AGE) +AC_SUBST(GTK_VERSION) + +# libtool versioning +LT_RELEASE=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION +LT_CURRENT=`expr $GTK_MICRO_VERSION - $GTK_INTERFACE_AGE` +LT_REVISION=$GTK_INTERFACE_AGE +LT_AGE=`expr $GTK_BINARY_AGE - $GTK_INTERFACE_AGE` +AC_SUBST(LT_RELEASE) +AC_SUBST(LT_CURRENT) +AC_SUBST(LT_REVISION) +AC_SUBST(LT_AGE) # For automake. VERSION=$GTK_VERSION PACKAGE=gtk+ -# Configure glib -AC_CONFIG_SUBDIRS(glib) - # Save this value here, since automake will set cflags later cflags_set=${CFLAGS+set} @@ -38,56 +61,169 @@ AC_ARG_ENABLE(shm, [ --enable-shm support shared memory if available AC_ARG_ENABLE(debug, [ --enable-debug=[no/minimum/yes] turn on debugging [default=minimum]],,enable_debug=minimum) AC_ARG_ENABLE(ansi, [ --enable-ansi turn on strict ansi [default=no]], , enable_ansi=no) +AC_ARG_WITH(glib, [ --with-glib=DIR Use uninstalled copy of glib]) AC_ARG_ENABLE(xim, [ --enable-xim support XIM [default=yes]], - echo $enable_xim, enable_xim="yes") + , enable_xim="yes") AC_ARG_WITH(locale, [ --with-locale=LOCALE locale name you want to use ]) AC_ARG_WITH(xinput, [ --with-xinput=[no/gxi/xfree] support XInput ]) if test "x$enable_debug" = "xyes"; then - test "$cflags_set" = set || CFLAGS="-g" - CFLAGS="$CFLAGS -DG_ENABLE_DEBUG" + test "$cflags_set" = set || CFLAGS="$CFLAGS -g" + GTK_DEBUG_FLAGS="-DG_ENABLE_DEBUG" else if test "x$enable_debug" = "xno"; then - CFLAGS="$CFLAGS -DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DGTK_NO_CHECK_CASTS" + GTK_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DGTK_NO_CHECK_CASTS" else - CFLAGS="$CFLAGS -DGTK_NO_CHECK_CASTS" + GTK_DEBUG_FLAGS="-DGTK_NO_CHECK_CASTS" fi fi +AC_DEFINE_UNQUOTED(GTK_COMPILED_WITH_DEBUGGING, "${enable_debug}") + # Build time sanity check... AM_SANITY_CHECK # Checks for programs. AC_PROG_CC +AC_ISC_POSIX AM_PROG_CC_STDC AC_PROG_INSTALL AC_PROG_MAKE_SET +changequote(,)dnl if test "x$GCC" = "xyes"; then - if test -z "`echo "$CFLAGS" | grep "\-Wall" 2> /dev/null`" ; then - CFLAGS="$CFLAGS -Wall" - fi + case " $CFLAGS " in + *[\ \ ]-Wall[\ \ ]*) ;; + *) CFLAGS="$CFLAGS -Wall" ;; + esac if test "x$enable_ansi" = "xyes"; then - if test -z "`echo "$CFLAGS" | grep "\-ansi" 2> /dev/null`" ; then - CFLAGS="$CFLAGS -ansi" - fi + case " $CFLAGS " in + *[\ \ ]-ansi[\ \ ]*) ;; + *) CFLAGS="$CFLAGS -ansi" ;; + esac + + case " $CFLAGS " in + *[\ \ ]-pedantic[\ \ ]*) ;; + *) CFLAGS="$CFLAGS -pedantic" ;; + esac + fi +fi +changequote([,])dnl - if test -z "`echo "$CFLAGS" | grep "\-pedantic" 2> /dev/null`" ; then - CFLAGS="$CFLAGS -pedantic" - fi +# define a MAINT-like variable REBUILD which is set if Perl +# and awk are found, so autogenerated sources can be rebuilt + +AC_PROG_AWK +AC_CHECK_PROGS(PERL, perl5 perl) + +# We would like indent, but don't require it. +AC_CHECK_PROG(INDENT, indent, indent) + +REBUILD=\# +if test -n "$PERL" && perl -v | grep 'version 5.' > /dev/null ; then + if test -n "$AWK" ; then + REBUILD= fi fi +AC_SUBST(REBUILD) + +# i18n stuff +ALL_LINGUAS="cs de es fr it ja ko nl no pl pt sv" +AM_GTK_GNU_GETTEXT +AC_CHECK_FUNC(gettext, + , + AC_CHECK_LIB(intl, gettext) +) + +dnl The DU4 header files don't provide library prototypes unless +dnl -std1 is given to the native cc. +AC_MSG_CHECKING([for extra flags to get ANSI library prototypes]) + +gtk_save_LIBS=$LIBS +LIBS="$LIBS -lm" +AC_TRY_RUN([#include + int main (void) { return (log(1) != log(1.)); }], + AC_MSG_RESULT(none needed), + gtk_save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -std1" + AC_TRY_RUN([#include + int main (void) { return (log(1) != log(1.)); }], + AC_MSG_RESULT(-std1), + AC_MSG_RESULT() + CFLAGS=$gtk_save_CFLAGS + AC_MSG_WARN( + [No ANSI prototypes found in library. (-std1 didn't work.)]) + ) +) +LIBS=$gtk_save_LIBS + +dnl NeXTStep cc seems to need this +AC_MSG_CHECKING([for extra flags for POSIX compliance]) +AC_TRY_COMPILE([#include ], [DIR *dir;], + AC_MSG_RESULT(none needed), + gtk_save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -posix" + AC_TRY_COMPILE([#include ], [DIR *dir;], + AC_MSG_RESULT(-posix), + AC_MSG_RESULT() + CFLAGS=$gtk_save_CFLAGS + AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)]))) + +if test x$with_glib = xyes ; then + AC_MSG_ERROR([ +*** Directory must be specified for --with-glib]) +fi -if test "x$enable_xim" = "xyes"; then - CFLAGS="$CFLAGS -DUSE_XIM" +if test x$with_glib = x ; then + # Look for separately installed glib + + AM_PATH_GLIB(1.1.12,, + AC_MSG_ERROR([ +*** GLIB 1.1.12 or better is required. The latest version of GLIB +*** is always available from ftp://ftp.gtk.org.]), + gmodule gthread) + + # we do not want to make all gtk progs to link to thread libraries. + glib_cflags=`$GLIB_CONFIG glib gmodule --cflags` + glib_libs=`$GLIB_CONFIG glib gmodule --libs` + GLIB_LIBS="$glib_libs" +else + # Use uninstalled glib (assume they got the version right) + + GLIB_CONFIG=$with_glib/glib-config + if test -x $GLIB_CONFIG ; then + : + else + AC_MSG_ERROR([GLIB directory ($with_glib) not present or not configured]) + fi + + # For use in gtk-config + glib_cflags=`$GLIB_CONFIG --cflags gmodule` + glib_libs=`$GLIB_CONFIG --libs gmodule` + + glib_release=`$GLIB_CONFIG --version | sed 's%\\.[[0-9]]*$%%'` + + # canonicalize relative paths + case $with_glib in + /*) + glib_dir=$with_glib + ;; + *) + glib_dir="\$(top_builddir)/$with_glib" + ;; + esac + + GLIB_CFLAGS="-I$glib_dir" + GLIB_LIBS=$glib_dir/libglib-$glib_release.la + + AC_SUBST(GLIB_CFLAGS) + AC_SUBST(GLIB_LIBS) fi -AC_DEFINE_UNQUOTED(GTK_MAJOR_VERSION, $GTK_MAJOR_VERSION) -AC_DEFINE_UNQUOTED(GTK_MINOR_VERSION, $GTK_MINOR_VERSION) -AC_DEFINE_UNQUOTED(GTK_MICRO_VERSION, $GTK_MICRO_VERSION) -AC_DEFINE_UNQUOTED(GTK_VERSION, "$GTK_VERSION") +AC_SUBST(glib_cflags) +AC_SUBST(glib_libs) # Find the X11 include and library directories AC_PATH_X @@ -100,16 +236,58 @@ fi saved_cflags="$CFLAGS" saved_ldflags="$LDFLAGS" -CFLAGS="$X_CFLAGS" -LDFLAGS="$X_LDFLAGS $X_LIBS" +CFLAGS="$CFLAGS $X_CFLAGS" +LDFLAGS="$LDFLAGS $X_LDFLAGS $X_LIBS" + +if test "x$no_x" = "xyes"; then + AC_MSG_ERROR([ +*** X libraries or include files not found. Check 'config.log' for +*** more details.]) +fi # Checks for libraries. # Check for the X11 library -AC_CHECK_LIB(X11, XOpenDisplay, x_libs="-lX11 $X_EXTRA_LIBS", no_x11_lib=yes, $X_EXTRA_LIBS) +AC_CHECK_LIB(X11, XOpenDisplay, x_libs="-lX11 $X_EXTRA_LIBS", + AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]), + $X_EXTRA_LIBS) if test "x$enable_shm" = "xyes"; then # Check for the Xext library (needed for XShm extention) - AC_CHECK_LIB(Xext, XShmAttach, x_libs="-lXext $x_libs", no_xext_lib=yes, $x_libs) + AC_CHECK_LIB(Xext, XShmAttach, + x_libs="-lXext $x_libs", + # On AIX, it is in XextSam instead, but we still need -lXext + AC_CHECK_LIB(XextSam, XShmAttach, + x_libs="-lXextSam -lXext $x_libs", + no_xext_lib=yes, $x_libs), + $x_libs) +fi + +# Check for shaped window extension + +AC_CHECK_LIB(Xext, XShapeCombineMask, + if test -z "`echo $x_libs | grep "\-lXext" 2> /dev/null`"; then + x_libs="-lXext $x_libs" + fi + AC_DEFINE(HAVE_SHAPE_EXT), + , + $x_libs) + +# Check for XConvertCase (X11R6 specific) + +AC_CHECK_LIB(X11, XConvertCase, + AC_DEFINE(HAVE_XCONVERTCASE), + , + $x_libs) + +# Check for XIM support. + +AC_CHECK_LIB(X11, XUnregisterIMInstantiateCallback, + : , + enable_xim=no, + $x_libs) + +if test "x$enable_xim" = "xyes"; then + GTK_XIM_FLAGS="-DUSE_XIM" fi x_cflags="$X_CFLAGS" @@ -128,53 +306,20 @@ else AC_DEFINE(XINPUT_NONE) fi +CFLAGS="$saved_cflags" +LDFLAGS="$saved_ldflags" + AC_SUBST(x_cflags) AC_SUBST(x_includes) AC_SUBST(x_ldflags) AC_SUBST(x_libs) AC_SUBST(xinput_progs) -AC_SUBST(GTK_VERSION) - -CFLAGS="$saved_cflags" -LDFLAGS="$saved_ldflags" 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 whether shmctl IPC_RMID allowes subsequent attaches - if test "$ac_cv_header_sys_shm_h" = "yes"; then - AC_MSG_CHECKING(whether shmctl IPC_RMID allowes subsequent attaches) - AC_TRY_RUN([ - #include - #include - #include - int main() - { - int id; - char *shmaddr; - id = shmget (IPC_PRIVATE, 4, IPC_CREAT | 0777); - if (id == -1) - exit (2); - shmaddr = shmat (id, 0, 0); - shmctl (id, IPC_RMID, 0); - if ((char*) shmat (id, 0, 0) == (char*) -1) - { - shmdt (shmaddr); - exit (1); - } - shmdt (shmaddr); - shmdt (shmaddr); - exit (0); - } - ], - AC_DEFINE(IPC_RMID_DEFERRED_RELEASE) - AC_MSG_RESULT(yes), - AC_MSG_RESULT(no), - AC_MSG_RESULT(assuming no)) - fi - # Check for the X shared memory extension header file AC_MSG_CHECKING(X11/extensions/XShm.h) if test "x$no_xext_lib" = "xyes"; then @@ -191,27 +336,6 @@ if test "x$enable_shm" = "xyes"; then fi fi -# Check for private display resource base variable -AC_MSG_CHECKING(resource base field in XDisplay) -AC_CACHE_VAL(gtk_cv_display_resource_base, -[AC_TRY_RUN([ -#define XLIB_ILLEGAL_ACCESS -#include - -int -main () -{ - Display *display; - - return 0; - - display->resource_base; -}], -gtk_cv_display_resource_base="resource_base", -gtk_cv_display_resource_base="private3")]) -AC_MSG_RESULT($gtk_cv_display_resource_base) -AC_DEFINE_UNQUOTED(RESOURCE_BASE, gdk_display->$gtk_cv_display_resource_base) - # Check if X_LOCALE definition is necessary AC_MSG_CHECKING(need -DX_LOCALE) @@ -230,7 +354,7 @@ need_x_locale=yes) AC_MSG_RESULT($need_x_locale) if test $need_x_locale = yes; then - CFLAGS="$CFLAGS -DX_LOCALE" + GTK_LOCALE_CFLAGS="-DX_LOCALE" fi # Checks for header files. @@ -238,27 +362,97 @@ AC_HEADER_STDC # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST -AC_C_INLINE # Checks for library functions. AC_TYPE_SIGNAL AC_FUNC_MMAP -# Check for sys/select.h - -AC_MSG_CHECKING([fd_set and sys/select]) +# Check if needs to be included for fd_set +AC_MSG_CHECKING([for fd_set]) AC_TRY_COMPILE([#include ], [fd_set readMask, writeMask;], gtk_ok=yes, gtk_ok=no) -if test $gtk_ok = no; then +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 + +# Duplicate `widechar' tests from `glib'. +# Check for wchar.h +if test x = y; then + # will not be executed + # hack so as not to update `acconfig.h' + AC_CHECK_HEADERS(wchar.h wctype.h) + AC_CHECK_FUNCS(broken_wctype) +fi + +AC_MSG_CHECKING(for wchar.h) +AC_TRY_CPP([#include ], gtk_ok=yes, gtk_ok=no) +if test $gtk_ok = yes; then + ac_kludge=HAVE_WCHAR_H + AC_DEFINE($ac_kludge) +fi AC_MSG_RESULT($gtk_ok) -if test $gtk_ok = no; then - AC_DEFINE(NO_FD_SET) + +# Check for wctype.h (for iswalnum) + +AC_MSG_CHECKING(for wctype.h) +AC_TRY_CPP([#include ], gtk_ok=yes, gtk_ok=no) +if test $gtk_ok = yes; then + ac_kludge=HAVE_WCTYPE_H + AC_DEFINE($ac_kludge) fi +AC_MSG_RESULT($gtk_ok) -AC_OUTPUT([Makefile gtk-config docs/Makefile gdk/Makefile gtk/Makefile], - [chmod +x gtk-config]) +# in Solaris 2.5, `iswalnum' is in -lw +GDK_WLIBS= +AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum,GDK_WLIBS=-lw)]) + +# The following is necessary for Linux libc-5.4.38 +oLIBS="$LIBS" +LIBS="$LIBS $GDK_WLIBS" +AC_MSG_CHECKING(if iswalnum() and friends are properly defined) +AC_TRY_LINK([#include ],[ +#if (defined(HAVE_WCTYPE_H) || defined(HAVE_WCHAR_H)) +# ifdef HAVE_WCTYPE_H +# include +# else +# ifdef HAVE_WCHAR_H +# include +# endif +# endif +#else +# define iswalnum(c) ((wchar_t)(c) <= 0xFF && isalnum(c)) +#endif +iswalnum((wchar_t) 0); +], gtk_ok=yes, gtk_ok=no) +LIBS="$oLIBS" + +if test $gtk_ok = no; then + ac_kludge=HAVE_BROKEN_WCTYPE + AC_DEFINE($ac_kludge) + GDK_WLIBS= +fi +AC_MSG_RESULT($gtk_ok) +AC_SUBST(GDK_WLIBS) + +AC_SUBST(GTK_DEBUG_FLAGS) +AC_SUBST(GTK_XIM_FLAGS) +AC_SUBST(GTK_LOCALE_FLAGS) + +AC_OUTPUT([ +Makefile +gtk-config +po/Makefile.in +docs/Makefile +gdk/Makefile +gtk/Makefile +gtk/gtkfeatures.h +], [chmod +x gtk-config])