view configure.in @ 2114:251d050d306b

Change dw_notification_new() to take an image path instead of an in-memory HPIXMAP. After examining all the platforms, several require the image to be on disk. It is easier to specify the path and load it on platforms requiring it in memory than to save it to disk on platforms that require it on disk. Currently it does not automatically pick an extension like some other functions, may need to add that feature here too soon. Only tested on Windows in this commit.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Tue, 23 Jun 2020 07:48:29 +0000
parents 37ce3e22ee1a
children 17f5c1c199b4
line wrap: on
line source

AC_INIT(winmain.c)
AC_CONFIG_HEADER(config.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

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_SYSTEM

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-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 architecture: one of all, 32bit, 64bit, intel, ppc, ppc64, x86_64, i386],
   [with_arch=$withval],
   [with_arch=no],
)

AC_HEADER_STDC
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"

case "$target" in
   *cygwin*)
   ;;
   *mingw32)
      AC_DEFINE(DW_USE_GTK)
   ;;
   *linux*)
      SONAME="-Wl,-soname,lib$TARGET.so.\$(DW_MAJOR_VERSION)"
   ;;
   *apple-darwin*)
      case "$with_arch" in
         no)
            ARCH=""
            ;;
         all)
            ARCH="-arch ppc -arch ppc64 -arch x86_64 -arch i386"
            ;;
         32bit)
            ARCH="-arch ppc -arch i386"
            ;;
         64bit)
            ARCH="-arch ppc64 -arch x86_64"
            ;;
         intel)
            ARCH="-arch i386 -arch x86_64"
            ;;
         powerpc)
            ARCH="-arch ppc -arch ppc64"
            ;;
         *)
            ARCH="-arch $with_arch"
            ;;
      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 -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
      GTK_LIBS=""
      if test $with_gtk2 = "yes"; then
         GTK_PACKAGES="gtk+-2.0 gthread-2.0"
         GTK_LIBS=`$PKG_CFG --silence-errors --libs $GTK_PACKAGES`
      fi
      WEBKIT_PKG="webkit2gtk-4.0"
      if test x"$GTK_LIBS" = x; then
         GTK_PACKAGES="gtk+-3.0"
         GTK_LIBS=`$PKG_CFG --silence-errors --libs $GTK_PACKAGES`
      else
         DW_DIR=gtk
         WEBKIT_PKG="webkit-1.1"
      fi
      # test for webkit2gtk or webkitgtk packages
      WEBKIT_CFLAGS=`$PKG_CFG --silence-errors --cflags $WEBKIT_PKG`
      if test x"$WEBKIT_CFLAGS" = x; then
         # no webkit2gtk-4.0 or webkitgtk-1.1
         if test $DW_DIR = "gtk"; then
            WEBKIT_PKG="webkit-1.0"
            WEBKIT_CFLAGS=`$PKG_CFG --silence-errors --cflags $WEBKIT_PKG`
            if test x"$WEBKIT_CFLAGS" = x; then
               WEBKIT_PKG="WebKitGtk"
               WEBKIT_CFLAGS=`$PKG_CFG --silence-errors --cflags $WEBKIT_PKG`
               if test x"$WEBKIT_CFLAGS" = x; then
                  WEBKIT_LIBS=`$PKG_CFG --silence-errors --libs $WEBKIT_PKG`
               fi
            else
               AC_DEFINE(USE_WEBKIT10)
               WEBKIT_LIBS=`$PKG_CFG --silence-errors --libs $WEBKIT_PKG`
            fi
         else
            WEBKIT_PKG="webkitgtk-3.0"
            WEBKIT_CFLAGS=`$PKG_CFG --silence-errors --cflags $WEBKIT_PKG`
            if test x"$WEBKIT_CFLAGS" = x; then
               WEBKIT_PKG="webkitgtk-1.0"
               WEBKIT_CFLAGS=`$PKG_CFG --silence-errors --cflags $WEBKIT_PKG`
               if test x"$WEBKIT_CFLAGS" = x; then
                  AC_DEFINE(USE_WEBKIT10)
                  WEBKIT_LIBS=`$PKG_CFG --silence-errors --libs $WEBKIT_PKG`
               fi
            else
               AC_DEFINE(USE_WEBKIT11)
               WEBKIT_LIBS=`$PKG_CFG --silence-errors --libs $WEBKIT_PKG`
            fi
         fi
      else
         WEBKIT_LIBS=`$PKG_CFG --silence-errors --libs $WEBKIT_PKG`
         if test $with_gtk2 = "yes"; then
            AC_DEFINE(USE_WEBKIT11)
         else            
            AC_DEFINE(USE_WEBKIT2)
         fi
      fi
      if test x"$RPATH" != x; then
         RPATH="-Wl,-R$RPATH"
      fi
   fi

   if test x"$GTK_LIBS" = x; then
      AM_PATH_GLIB(1.2.0,,AC_MSG_ERROR(AC_MSG_ERROR(Cannot find GLIB: Is glib-config in path?)))
      AM_PATH_GTK(1.2.0,,AC_MSG_ERROR(AC_MSG_ERROR(Cannot find GTK: Is gtk-config in path?)), gthread)
      AM_PATH_GDK_IMLIB(1.9.4, AC_DEFINE(USE_IMLIB), AC_MSG_ERROR(IMLIB not found or too old. Dynamic Windows cannot build without it.))
   else
      GTK_CFLAGS=`$PKG_CFG --cflags $GTK_PACKAGES`
      GTK_LIBS=`$PKG_CFG --libs $GTK_PACKAGES`
   fi
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),)
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(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