]> Pileus Git - ~andy/gtk/blobdiff - configure.in
Updates.
[~andy/gtk] / configure.in
index 59370a7ae95d4ba8ae19954d1d1a26ddb796197e..051877e2a13626c5d12e062fd963974baaf059f4 100644 (file)
@@ -53,10 +53,12 @@ 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`
 AC_SUBST(LT_RELEASE)
 AC_SUBST(LT_CURRENT)
 AC_SUBST(LT_REVISION)
 AC_SUBST(LT_AGE)
+AC_SUBST(LT_CURRENT_MINUS_AGE)
 
 # Define a string for the earliest version that this release has
 # binary compatibility with. This is used for module locations.
@@ -100,6 +102,7 @@ AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define)
 AM_CONFIG_HEADER(config.h)
 
 dnl Initialize libtool
+AC_LIBTOOL_WIN32_DLL
 AM_PROG_LIBTOOL
 
 dnl Set AS and ASFLAGS so that automake 1.5 will be happy
@@ -113,6 +116,35 @@ AM_MAINTAINER_MODE
 
 AC_CANONICAL_HOST
 
+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")
+
+AC_MSG_CHECKING([for native Win32])
+case "$host" in
+  *-*-mingw*)
+    os_win32=yes
+    ;;
+  *)
+    os_win32=no
+    ;;
+esac
+AC_MSG_RESULT([$os_win32])
+AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
+
+if test "$os_win32" = "yes"; then
+  AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
+fi
+AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
+
 dnl figure debugging default, prior to $ac_help setup
 dnl
 GLIB_AC_DIVERT_BEFORE_HELP([
@@ -139,18 +171,29 @@ AC_ARG_ENABLE(rebuilds, [  --disable-rebuilds      disable all source autogenera
 
 AC_ARG_WITH(xinput, [  --with-xinput=[no/gxi/xfree] support XInput ])
 
-gdktarget=x11
-gdktargetlib=libgdk-x11-1.3.la
-gtktargetlib=libgtk-x11-1.3.la
-AC_ARG_WITH(gdktarget, [  --with-gdktarget=[x11/linux-fb] select GDK target [default=x11] ],
+AC_ARG_WITH(wintab, [  --with-wintab=DIRECTORY  use Wintab API with win32 backend])
+
+if test "$platform_win32" = yes; then
+  gdktarget=win32
+else
+  gdktarget=x11
+fi
+
+AC_ARG_WITH(gdktarget, [  --with-gdktarget=[x11/linux-fb/win32] select GDK target [default=$gdktarget]],
        gdktarget=$with_gdktarget)
 
 AC_SUBST(gdktarget)
 case $gdktarget in
-  x11|linux-fb) ;;
-  *) AC_MSG_ERROR([Invalid target for GDK: use x11 or linux-fb.]);;
+  x11|linux-fb|win32) ;;
+  *) AC_MSG_ERROR([Invalid target for GDK: use x11, linux-fb or win32.]);;
 esac
 
+gdktargetlib=libgdk-$gdktarget-1.3.la
+gtktargetlib=libgtk-$gdktarget-1.3.la
+
+AC_SUBST(gdktargetlib)
+AC_SUBST(gtktargetlib)
+
 AC_ARG_ENABLE(shadowfb, [  --disable-shadowfb      disable shadowfb support for linux-fb],,enable_shadowfb=yes)
 
 AC_ARG_ENABLE(fbmanager, [  --enable-fbmanager      enable framebuffer manager support (GtkFB)],enable_fbmanager=yes,enable_fbmanager=no)
@@ -197,6 +240,13 @@ if test "x$GCC" = "xyes"; then
     *) CFLAGS="$CFLAGS -pedantic" ;;
     esac
   fi
+
+  if test "$os_win32" = "yes"; then
+    case "$CC $CFLAGS " in
+    *[[\ \     ]]-fnative-struct[[\ \  ]]*) ;;
+    *) CFLAGS="$CFLAGS -fnative-struct" ;;
+    esac
+  fi
 fi
 changequote([,])dnl
 
@@ -211,9 +261,14 @@ ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
 ## annoying to construct
 PKG_CHECK_MODULES(BASE_DEPENDENCIES, glib-2.0 >= $GLIB_REQUIRED_VERSION atk >= $ATK_REQUIRED_VERSION pango >= $PANGO_REQUIRED_VERSION)
 
-# libtool option to control which symbols are exported
-# right now, symbols starting with _ are not exported
-LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[[^_]].*"'
+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
 AC_SUBST(LIBTOOL_EXPORT_OPTIONS)
 
 # define a MAINT-like variable REBUILD which is set if Perl
@@ -325,6 +380,29 @@ AC_CHECK_HEADERS(dirent.h, AC_DEFINE(HAVE_DIRENT_H))
 AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H))
 AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H))
 AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H))
+AC_CHECK_HEADERS(winsock.h, AC_DEFINE(HAVE_WINSOCK_H))
+AC_CHECK_HEADERS(dimm.h, AC_DEFINE(HAVE_DIMM_H))
+
+if test ${with_wintab+set} = set && test $with_wintab != no; then
+  AC_MSG_CHECKING([for wintab.h])
+  saved_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -I$with_wintab/include"
+  AC_TRY_COMPILE([#include <windows.h>
+#include <wintab.h>], 
+   [],
+   [AC_MSG_RESULT(yes)
+    AC_CHECK_FILE([$with_wintab/lib/i386/wntab32x.lib],
+      [have_wintab=yes
+       AC_DEFINE(HAVE_WINTAB)
+       WINTAB_LIB="$with_wintab/lib/i386/wntab32x.lib"
+       AC_SUBST(WINTAB_LIB)],
+      [have_wintab=no])
+    ],
+   [AC_MSG_RESULT(no)
+    have_wintab=no])
+  CFLAGS="$saved_cflags"
+fi
+AM_CONDITIONAL(HAVE_WINTAB, test x$have_wintab = xyes)
 
 saved_cflags="$CFLAGS"
 saved_ldflags="$LDFLAGS"
@@ -461,18 +539,18 @@ fi
 dnl Test for libtiff
   if test -z "$LIBTIFF"; then
     AC_CHECK_LIB(tiff, TIFFReadScanline,
-      AC_CHECK_HEADER(tiffio.h,
+      [AC_CHECK_HEADER(tiffio.h,
         TIFF='tiff'; LIBTIFF='-ltiff',
-        AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***)),
-      AC_CHECK_LIB(tiff, TIFFWriteScanline,
-        AC_CHECK_HEADER(tiffio.h,
+        AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
+      [AC_CHECK_LIB(tiff, TIFFWriteScanline,
+        [AC_CHECK_HEADER(tiffio.h,
           TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz',
-          AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***)),
-        AC_CHECK_LIB(tiff34, TIFFFlushData,
-          AC_CHECK_HEADER(tiffio.h,
+          AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
+        [AC_CHECK_LIB(tiff34, TIFFFlushData,
+          [AC_CHECK_HEADER(tiffio.h,
             TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
-            AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***)),
-        AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF library not found) ***), -ljpeg -lz -lm), -ljpeg -lz -lm), -lm)
+            AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
+        AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF library not found) ***), -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm)
   fi
 
 dnl Test for libjpeg
@@ -505,9 +583,9 @@ dnl Test for libjpeg
 dnl Test for libpng
   if test -z "$LIBPNG"; then
     AC_CHECK_LIB(png, png_read_info,
-      AC_CHECK_HEADER(png.h,
+      [AC_CHECK_HEADER(png.h,
         png_ok=yes,
-        png_ok=no),
+        png_ok=no)],
       AC_MSG_WARN(*** PNG loader will not be built (PNG library not found) ***), -lz -lm)
     if test "$png_ok" = yes; then
       AC_MSG_CHECKING([for png_structp in png.h])
@@ -828,15 +906,28 @@ if test "x$gdktarget" = "xx11"; then
   GDK_EXTRA_CFLAGS=
   GDK_EXTRA_LIBS="$x_extra_libs"
 
-  # these are already defined above
-  #gdktargetlib = "libgdk-x11-1.3.la"
-  #gtktargetlib = "libgtk-x11-1.3.la"
-
   AM_CONDITIONAL(USE_X11, true)
 else
   AM_CONDITIONAL(USE_X11, false)
 fi
 
+if test "x$gdktarget" = "xwin32"; then
+  # We start off with the libraries from Pango
+
+  ## be sure we also have Pango built with win32 support
+  PANGO_PACKAGES="pangowin32"
+
+  if test x$have_wintab = xyes; then
+    GDK_WIN32_EXTRA_CFLAGS="-I $with_wintab/include"
+    AC_SUBST(GDK_WIN32_EXTRA_CFLAGS)
+  fi
+
+  GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -user32 -limm32 -lshell32 -lole32 -luuid"
+  AM_CONDITIONAL(USE_WIN32, true)
+else
+  AM_CONDITIONAL(USE_WIN32, false)
+fi
+
 AC_SUBST(xinput_progs)
 
 GDK_PIXBUF_XLIB_PACKAGES=
@@ -850,9 +941,6 @@ AC_SUBST(GDK_PIXBUF_XLIB_DEP_LIBS)
 AC_SUBST(GDK_PIXBUF_XLIB_DEP_CFLAGS)
 
 if test "x$gdktarget" = "xlinux-fb"; then
-  gdktargetlib="libgdk-linux-fb-1.3.la"
-  gtktargetlib="libgtk-linux-fb-1.3.la"
-
   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
   if test x$FREETYPE_CONFIG = xno ; then
     AC_MSG_ERROR([*** freetype-config not found])
@@ -882,9 +970,6 @@ else
   AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
 fi
 
-AC_SUBST(gdktargetlib)
-AC_SUBST(gtktargetlib)
-
 #
 # Pick correct Pango packages to use
 #
@@ -895,6 +980,8 @@ if test "x$gdktarget" = "xx11"; then
         else
             PANGO_PACKAGES=pangox
         fi
+elif test "x$gdktarget" = "xwin32"; then
+        PANGO_PACKAGES=pangowin32
 elif test "x$gdktarget" = "xlinux-fb"; then
         PANGO_PACKAGES=pangoft2
 else
@@ -1099,6 +1186,9 @@ esac
 if test "x$gdktarget" = "xx11" ; then
   gdk_windowing='
 #define GDK_WINDOWING_X11'
+elif test "x$gdktarget" = "xwin32" ; then
+  gdk_windowing='
+#define GDK_WINDOWING_WIN32'
 elif test "x$gdktarget" = "xlinux-fb" ; then
   gdk_windowing='
 #define GDK_WINDOWING_FB
@@ -1126,6 +1216,7 @@ AM_CONDITIONAL(HAVE_SGML2HTML, ! test x$SGML2HTML = xno)
 
 AC_OUTPUT([
 config.h.win32
+gtk-zip.sh
 gtk+.spec
 Makefile
 gdk-pixbuf-2.0.pc