diff configure.ac @ 2970:83c17a84bc27

Update the configure scripts with the latest autotools. configure.in is now configure.ac. AC_DEFINE() now requires additional parameters. Use AX_CXX_COMPILE_STDCXX to determine the C++11 options. AX_CXX_COMPILE_STDCXX requires the autoconf-archive package. autoreconf created a new install-sh script. Remove the old install.sh script, which is now ancient.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Mon, 20 Mar 2023 22:49:06 +0000
parents
children d84182f0054e
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/configure.ac	Mon Mar 20 22:49:06 2023 +0000
@@ -0,0 +1,373 @@
+AC_INIT([dwindows],[3.3])
+AC_CONFIG_HEADERS([dwconfig.h])
+
+TARGET="dwindows"
+TARGET2="dwcompat"
+AC_SUBST(TARGET)
+AC_SUBST(TARGET2)
+
+AC_DEFUN([AC_DATAROOTDIR_CHECKED])
+
+DW_DIR=gtk3
+DW_SRC=dw.c
+DW_DEFINE=__UNIX__
+SHAREDFLAG=-shared
+SOSUFFIX=so
+LIBSUFFIX=a
+LIBPREFIX=lib
+INSTALL_TEST="installdwtest"
+INCLUDES="-I."
+
+AC_PROG_CC
+AC_PROG_CXX
+AX_CXX_COMPILE_STDCXX(11,,optional)
+
+AC_CHECK_PROG(MAKE, gmake, gmake)
+if test x"$MAKE" = x; then
+   AC_CHECK_PROG(MAKE, make, make)
+fi
+if test -d .svn; then 
+   AC_CHECK_PROG(SVNVERSION, svnversion, svnversion)
+fi
+if test x"$SVNVERSION" = x; then
+   SVNVERSION=0
+else
+   SVNVERSION="\` $SVNVERSION -n . | cut -d \":\" -f 1 | tr -d MS \`"
+fi
+
+AC_PROG_INSTALL
+
+AC_SUBST(MAKE)
+
+dnl Checks for system
+AC_CANONICAL_TARGET
+
+dnl ---------------------- check for '--with-dwcompat' switch -----------------
+AC_ARG_WITH(dwcompat,
+   [  --with-dwcompat         specify this to build the optional dwcompat library],
+   [with_dwcompat=$withval],
+   [with_dwcompat=no],
+)
+
+dnl ---------------------- check for '--with-gtk2' switch -----------------
+AC_ARG_WITH(gtk2,
+   [  --with-gtk2             specify this to build with GTK+ 2.x if available],
+   [with_gtk2=$withval],
+   [with_gtk2=no],
+)
+
+dnl ---------------------- check for '--with-gtk4' switch -----------------
+AC_ARG_WITH(gtk4,
+   [  --with-gtk4             specify this to build with GTK+ 4.x if available],
+   [with_gtk4=$withval],
+   [with_gtk4=no],
+)
+
+dnl ---------------------- check for '--with-deprecated' switch -----------------
+AC_ARG_WITH(deprecated,
+   [  --with-deprecated       specify this to build with deprecated functions],
+   [with_deprecated=$withval],
+   [with_deprecated=no],
+)
+
+dnl ---------------------- check for '--with-arch' switch -----------------
+AC_ARG_WITH(arch,
+   [  --with-arch             specify MacOS architecture: one of modern, classic, 32bit, intel, arm, powerpc],
+   [with_arch=$withval],
+   [with_arch=no],
+)
+
+dnl ---------------------- check for '--with-sdk' switch -----------------
+AC_ARG_WITH(sdk,
+   [  --with-sdk              specify this to build with an alternate MacOS SDK location],
+   [with_sdk=$withval],
+   [with_sdk=no],
+)
+
+dnl ---------------------- check for '--with-minver' switch -----------------
+AC_ARG_WITH(minver,
+   [  --with-minver           specify this to build with a minimum MacOS version],
+   [with_minver=$withval],
+   [with_minver=no],
+)
+
+AC_HEADER_DIRENT
+AC_CHECK_HEADERS(unistd.h)
+AC_CHECK_HEADERS(sys/stat.h)
+
+AC_CHECK_FUNCS(pipe, AC_DEFINE(HAVE_PIPE,1,Determine whether we have the pipe function))
+AC_CHECK_FUNCS(vsnprintf, AC_DEFINE(HAVE_VSNPRINTF,1,Determine whether we have the vsnprintf function))
+
+AC_CHECK_FUNCS(connect)
+if test x"$ac_cv_func_connect" = x"no"; then
+   if test -z "$libsocket"; then
+      AC_CHECK_LIB(socket, socket, LIBS="$LIBS -lsocket",)
+   fi
+
+   dnl this is for isc.  need the nsl_s library as well.
+   if test -z "$libinet"; then
+      AC_CHECK_LIB(inet, socket, libnsl=1; LIBS="$LIBS -linet -lnsl_s",)
+   fi
+
+   if test -z "$libnsl"; then
+      AC_CHECK_LIB(nsl, gethostname, LIBS="$LIBS -lnsl",)
+   fi
+fi
+
+AC_CHECK_LIB(sun, getpwnam, LIBS="$LIBS -lsun",)
+AC_CHECK_LIB(dgc, inet_addr, LIBS="$LIBS -ldgc",)
+AC_CHECK_LIB(resolv, gethostbyname, LIBS="$LIBS -lresolv",)
+AC_CHECK_LIB(m, atan2, LIBS="$LIBS -lm",)
+
+build_gtk="yes"
+check_pthreads="yes"
+PLATLIBS=""
+SONAME=""
+PLATCCFLAGS="-g -O2 -fPIC -Wall"
+ARFLAGS="cqs"
+ARCH=""
+
+case "$target" in
+   *cygwin*)
+   ;;
+   *mingw32)
+      AC_DEFINE(DW_USE_GTK,1,Uses GTK but not on X11 or Wayland)
+   ;;
+   *linux*)
+      SONAME="-Wl,-soname,lib$TARGET.so.\$(DW_MAJOR_VERSION)"
+   ;;
+   *apple-darwin*)
+      case "$with_arch" in
+         no)
+            ARCH=""
+            ;;
+         classic)
+            ARCH="-arch ppc -arch x86_64 -arch i386"
+            ;;
+         32bit)
+            ARCH="-arch ppc -arch i386"
+            ;;
+         intel)
+            ARCH="-arch i386 -arch x86_64"
+            ;;
+         powerpc)
+            ARCH="-arch ppc -arch ppc64"
+            ;;
+         arm)
+            ARCH="-arch arm64"
+            ;;
+         modern)
+            ARCH="-arch x86_64 -arch arm64"
+            ;;
+         *)
+            ARCH="-arch $with_arch"
+            ;;
+      esac
+      case "$with_sdk" in
+         no)
+            ;;
+         *)
+            CC="$CC -isysroot$with_sdk"
+            ;;
+      esac
+      case "$with_minver" in
+         no)
+            ;;
+         *)
+            CFLAGS="$CFLAGS -mmacosx-version-min=$with_minver"
+            LIBS="$LIBS -mmacosx-version-min=$with_minver"
+            ;;
+      esac
+      SHAREDFLAG="-dynamiclib -flat_namespace -undefined suppress -headerpad_max_install_names"
+      SOSUFFIX=dylib
+      DW_DIR=mac
+      DW_SRC=dw.m
+      DW_DEFINE=__MAC__
+      LIBS="$LIBS -framework Cocoa -framework WebKit"
+      save_libs="$LIBS"
+      LIBS="$LIBS -weak_framework UserNotifications"
+      INSTALL_TEST=""
+      AC_CHECK_FUNC(exit, , [LIBS="$save_libs"])
+      build_gtk="no"
+   ;;
+   *)
+   ;;
+esac
+
+dnl ---------------------- default targets to build -----------------
+if test $with_dwcompat = yes; then
+   COMPAT_OBJECT="dwcompat.o"
+   INSTALL_COMPAT="installdwcompat"
+   SYSCONF_LINK_TARGET_SHARED2="lib$TARGET2.$SOSUFFIX.\$(DW_MAJOR_VERSION).\$(DW_MINOR_VERSION)"
+else
+   COMPAT_OBJECT=""
+   INSTALL_COMPAT=""
+   SYSCONF_LINK_TARGET_SHARED2=""
+fi
+SYSCONF_LINK_TARGET_SHARED="lib$TARGET.$SOSUFFIX.\$(DW_MAJOR_VERSION).\$(DW_MINOR_VERSION)"
+SYSCONF_LINK_TARGET_STATIC="lib$TARGET.a"
+
+TARGETS="$SYSCONF_LINK_TARGET_SHARED $SYSCONF_LINK_TARGET_SHARED2"
+
+if test $build_gtk = "yes"; then
+   AC_PATH_XTRA
+   LIBS="$LIBS $X_LIBS -lX11"
+   AC_CHECK_PROG(PKG_CFG, pkg-config, pkg-config)
+   if test x"$PKG_CFG" != x; then
+      # Figure out the best available GTK packages...
+      # Preference order GTK3>GTK4>GTK2, WebKit2>WebKit1.1>WebKit1.0>WebKit
+      GTK_LIBS=""
+      GTK_PACKAGES=""
+      WEBKIT_PKG=""
+      WEBKIT_ALT_PKG=""      
+      if test $with_gtk4 = "yes"; then
+         # First try the X11 version so we can call Xlib directly 
+         # to fill in the holes not available with Wayland
+         GTK_PACKAGES="gtk4-x11"
+         GTK_LIBS=`$PKG_CFG --silence-errors --libs $GTK_PACKAGES`
+         if test x"$GTK_LIBS" = x; then 
+            GTK_PACKAGES="gtk4"
+            GTK_LIBS=`$PKG_CFG --silence-errors --libs $GTK_PACKAGES`
+         fi
+         if test x"$GTK_LIBS" != x; then 
+            DW_DIR=gtk4
+            # WebKit2GTK built for GTK4 becomes 5.0
+            WEBKIT_PKG="webkit2gtk-5.0"
+         fi
+      else
+         # Put the GTK2 test here since --with-gtk2 is mutually
+         # exclusive with --with-gtk4
+         if test $with_gtk2 = "yes"; then
+            GTK_PACKAGES="gtk+-2.0 gthread-2.0"
+            GTK_LIBS=`$PKG_CFG --silence-errors --libs $GTK_PACKAGES`
+            if test x"$GTK_LIBS" != x; then 
+               DW_DIR=gtk
+               WEBKIT_PKG="webkit-1.1"
+               WEBKIT_ALT_PKG="webkit-1.0"
+            fi
+         fi
+      fi
+      # We did not successfully find a GTK installation after
+      # handling --with-gtk2 and --with-gtk4 so try GTK3
+      if test x"$GTK_LIBS" = x; then
+         # GTK3 Defaults section
+         GTK_PACKAGES="gtk+-3.0"
+         GTK_LIBS=`$PKG_CFG --silence-errors --libs $GTK_PACKAGES`     
+         WEBKIT_PKG="webkit2gtk-4.0"
+         WEBKIT_ALT_PKG="webkitgtk-3.0"
+      fi
+      echo "checking for GTK version: $DW_DIR"
+      # Test for the preferred WebKit package
+      WEBKIT_LIBS=`$PKG_CFG --silence-errors --libs $WEBKIT_PKG`
+      if test x"$WEBKIT_LIBS" = x; then
+         # Preferred package is not available, try the alternate if defined
+         if test x"$WEBKIT_ALT_PKG" != x; then
+            WEBKIT_LIBS=`$PKG_CFG --silence-errors --libs $WEBKIT_ALT_PKG`
+            if test x"$WEBKIT_LIBS" != x; then
+               WEBKIT_PKG=$WEBKIT_ALT_PKG
+            fi
+         fi
+      fi
+      echo "checking for WebKit package: $WEBKIT_PKG"
+      WEBKIT_CFLAGS=`$PKG_CFG --silence-errors --cflags $WEBKIT_PKG`
+      # If we got a WebKit package that might work... 
+      # Add defintitions necessary for the correct code paths      
+      if test x"$WEBKIT_LIBS" != x; then
+         if test "$WEBKIT_PKG" = "webkit-1.0"; then
+            AC_DEFINE(USE_WEBKIT10,1,Uses WebKit 1.0)
+         fi
+         if test "$WEBKIT_PKG" = "webkit-1.1"; then
+            AC_DEFINE(USE_WEBKIT11,1,Uses WebKit 1.1)
+         fi
+         if test "$WEBKIT_PKG" = "webkit2gtk-4.0"; then
+            AC_DEFINE(USE_WEBKIT2,1,Uses WebKit 2)
+         fi
+      fi
+      if test x"$RPATH" != x; then
+         RPATH="-Wl,-R$RPATH"
+      fi
+   fi
+
+   GTK_CFLAGS=`$PKG_CFG --cflags $GTK_PACKAGES`
+   GTK_LIBS=`$PKG_CFG --libs $GTK_PACKAGES`
+   PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.32.0], [DW_GRESOURCE="enabled"], [CFLAGS="$CFLAGS -DDW_INCLUDE_DEPRECATED_RESOURCES=1"])
+fi
+
+if test $check_pthreads = "yes"; then
+   AC_CHECK_HEADER(pthread.h,,AC_MSG_ERROR([pthread header not found. Dynamic Windows cannot build without it.]))
+   AC_CHECK_LIB(pthread,
+                pthread_attr_init,
+                PTHREAD_LIBS="-lpthread",
+                AC_CHECK_LIB(pthreads,
+                             pthread_attr_init,
+                             PTHREAD_LIBS="-lpthreads",
+                             AC_CHECK_LIB(c_r,
+                                          pthread_attr_init,
+                                          PTHREAD_LIBS="-lc_r",
+                                          AC_CHECK_LIB(c,
+                                                       pthread_attr_init,
+                                                       PTHREAD_LIBS="-lc",
+                                                       AC_MSG_ERROR(pthread library not found. dwindows cannot build without it.)
+                                                      )
+                                         )
+                            )
+               )
+fi
+
+CFLAGS="$CFLAGS $GTK_CFLAGS $GDK_IMLIB_FLAGS $WEBKIT_CFLAGS"
+
+if test $with_deprecated = yes; then
+   CFLAGS="$CFLAGS -DDW_INCLUDE_DEPRECATED"
+fi
+if test x"$WEBKIT_LIBS" != x; then
+   WEBKIT_LIB=`$PKG_CFG --silence-errors --libs-only-l $WEBKIT_PKG | cut -b 3-`
+   AC_CHECK_LIB($WEBKIT_LIB,webkit_web_view_new,AC_DEFINE(USE_WEBKIT,1,Uses some flavor of WebKit),)
+fi
+
+LIBS="$RPATH $LIBS $GTK_LIBS $PTHREAD_LIBS $GDK_IMLIB_LIBS $WEBKIT_LIBS $PLATLIBS"
+
+AC_CHECK_FUNCS(ubuntu_overlay_scrollbar_set_enabled, AC_DEFINE(HAVE_OVERLAY_SCROLLBARS,1,Define if we have Ubuntu overlay scrollbars))
+AC_CHECK_FUNCS(ubuntu_gtk_set_use_overlay_scrollbar, AC_DEFINE(HAVE_OVERLAY_SCROLLBARS2,1,Define if we have Ubuntu overlay scrollbars))
+
+RM="rm -f"
+LN="ln -s"
+CP="cp"
+MV="mv"
+MKDIR="mkdir"
+
+AC_SUBST(SYSCONF_LINK_TARGET_SHARED)
+AC_SUBST(SYSCONF_LINK_TARGET_SHARED2)
+AC_SUBST(SYSCONF_LINK_TARGET_STATIC)
+
+AC_SUBST(INCLUDES)
+AC_SUBST(PLATCCFLAGS)
+AC_SUBST(ARFLAGS)
+AC_SUBST(RM)
+AC_SUBST(LN)
+AC_SUBST(CP)
+AC_SUBST(MV)
+AC_SUBST(MKDIR)
+AC_SUBST(SHAREDFLAG)
+AC_SUBST(SOSUFFIX)
+AC_SUBST(LIBSUFFIX)
+AC_SUBST(LIBPREFIX)
+AC_SUBST(SONAME)
+AC_SUBST(TARGETS)
+
+AC_SUBST(DW_SRC)
+AC_SUBST(DW_DIR)
+AC_SUBST(DW_DEFINE)
+AC_SUBST(DW_GRESOURCE)
+AC_SUBST(BROWSER_OBJECT)
+AC_SUBST(COMPAT_OBJECT)
+AC_SUBST(INSTALL_COMPAT)
+AC_SUBST(INSTALL_TEST)
+
+AC_SUBST(ARCH)
+
+AC_CONFIG_FILES([
+Makefile
+dwindows1.pc
+dwindows-config1
+org.dbsoft.dwindows.dwtest.desktop ])
+AC_OUTPUT