X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;ds=sidebyside;f=configure.in;h=80998124a8aa206ab025e173dc3c722501a28a75;hb=dabb02d2822d9c8ecf67642a7d9d06b358d39247;hp=f5ca2b3e409ca244de7345fb5f7f3f1adefd5b4e;hpb=30e8968f3b8a82229b87a8789dcbd7b462189611;p=~andy%2Fgtk diff --git a/configure.in b/configure.in index f5ca2b3e4..80998124a 100644 --- a/configure.in +++ b/configure.in @@ -1,11 +1,49 @@ # Process this file with autoconf to produce a configure script. AC_INIT(gdk/gdktypes.h) -# Configure glib -AC_CONFIG_SUBDIRS(glib) +# Save this value here, since automake will set cflags later +cflags_set=${CFLAGS+set} + +# 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=7 +GTK_INTERFACE_AGE=0 +GTK_BINARY_AGE=0 +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+ + +# Save this value here, since automake will set cflags later +cflags_set=${CFLAGS+set} dnl Initialize automake stuff -AM_INIT_AUTOMAKE(gtk+, 971201) +AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define) # Specify a configuration file AM_CONFIG_HEADER(config.h) @@ -20,53 +58,172 @@ AC_CANONICAL_HOST AC_ARG_ENABLE(shm, [ --enable-shm support shared memory if available [default=yes]], echo $enable_shm, enable_shm="yes") -AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [default=no]], -if test "x$enable_debug" = "xyes"; then - DEBUGFLAG="-g" -fi) +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 ]) +AC_ARG_WITH(xinput, [ --with-xinput=[no/gxi/xfree] support XInput ]) +AC_ARG_WITH(threads, [ --with-threads=[posix] support threading ]) -if test -n "$DEBUGFLAG"; then - test "${CFLAGS+set}" = set || CFLAGS="$DEBUGFLAG" +if test "x$enable_debug" = "xyes"; then + test "$cflags_set" = set || CFLAGS="$CFLAGS -g" + GTK_DEBUG_FLAGS="-DG_ENABLE_DEBUG" else - CFLAGS="$CFLAGS -DNDEBUG" + if test "x$enable_debug" = "xno"; then + GTK_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DGTK_NO_CHECK_CASTS" + else + 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="de pt" +AM_GNU_GETTEXT_GTK +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.6,, + AC_MSG_ERROR([ +*** GLIB 1.1.6 or better is required. The latest version of GLIB +*** is always available from ftp://ftp.gtk.org.]), + gmodule gthread) + + glib_cflags=$GLIB_CFLAGS + 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` + glib_libs=`$GLIB_CONFIG --libs` + + 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_SUBST(glib_cflags) +AC_SUBST(glib_libs) + # Find the X11 include and library directories AC_PATH_X AC_PATH_XTRA @@ -78,16 +235,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" @@ -95,7 +294,7 @@ x_ldflags="$X_LDFLAGS $X_LIBS" # set up things for XInput -if test "x$with_xinput" = "xgxi -o x$with_xinput" = "xyes"; then +if test "x$with_xinput" = "xgxi" || test "x$with_xinput" = "xyes"; then AC_DEFINE(XINPUT_GXI) xinput_progs=gxid x_libs="-lXi $x_libs" @@ -106,6 +305,8 @@ else AC_DEFINE(XINPUT_NONE) fi +CFLAGS="$saved_cflags" +LDFLAGS="$saved_ldflags" AC_SUBST(x_cflags) AC_SUBST(x_includes) @@ -113,49 +314,14 @@ AC_SUBST(x_ldflags) AC_SUBST(x_libs) AC_SUBST(xinput_progs) -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_ext_lib" = "xyes"; then + if test "x$no_xext_lib" = "xyes"; then AC_MSG_RESULT(no) no_xshm=yes else @@ -169,61 +335,25 @@ 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 +# Check if X_LOCALE definition is necessary + +AC_MSG_CHECKING(need -DX_LOCALE) + +AC_TRY_RUN([ +#include +#include int main () { - Display *display; - - return 0; - - display->resource_base; + return setlocale (LC_ALL, "${with_locale}") == NULL; }], -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) - -# Look for wide string functions in wchar.h or wcstr.h - -AC_MSG_CHECKING(for or ) -AC_TRY_CPP([#include ], gtk_ok=yes, gtk_ok=no) -if test $gtk_ok = no; then - AC_TRY_CPP([#include ], gtk_ok=yes, gtk_ok=no) - if test $gtk_ok = no; then - need_x_locale=yes - fi -fi - -AC_MSG_RESULT($gtk_ok) +need_x_locale=no, +need_x_locale=yes) +AC_MSG_RESULT($need_x_locale) -# Check if X_LOCALE definition is necessary - -AC_MSG_CHECKING(need -DX_LOCALE) -if test x$need_x_locale = xyes; then - AC_MSG_RESULT([yes (C library doesn't include wide string functions)]) -else - AC_TRY_RUN([ - #include - #include - - int - main () - { - return setlocale (LC_ALL, "${with_locale}") == NULL; - }], - need_x_locale=no, - need_x_locale=yes) - AC_MSG_RESULT($need_x_locale) -fi if test $need_x_locale = yes; then - CFLAGS="$CFLAGS -DX_LOCALE" + GTK_LOCALE_CFLAGS="-DX_LOCALE" fi # Checks for header files. @@ -234,21 +364,95 @@ AC_C_CONST # 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+.xconfig docs/Makefile gdk/Makefile gtk/Makefile) +# 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_SUBST(GTK_THREAD_FLAGS) + +AC_OUTPUT([ +Makefile +gtk-config +po/Makefile.in +docs/Makefile +gdk/Makefile +gtk/Makefile +gtk/gtkfeatures.h +], [chmod +x gtk-config])