Blame configure.ac

Packit 82cdb4
AC_PREREQ(2.53)
Packit 82cdb4
AC_INIT([libmatchbox], 1.9, [mallum@handhelds.org])
Packit 82cdb4
AC_CONFIG_SRCDIR([libmb/mbtray.c])
Packit 82cdb4
Packit 82cdb4
AC_CONFIG_AUX_DIR(.)
Packit 82cdb4
AM_INIT_AUTOMAKE()
Packit 82cdb4
AM_CONFIG_HEADER([config.h])
Packit 82cdb4
Packit 82cdb4
# Checks for programs.
Packit 82cdb4
AC_GNU_SOURCE
Packit 82cdb4
AC_PROG_CC
Packit 82cdb4
AC_PROG_LIBTOOL
Packit 82cdb4
Packit 82cdb4
SUPPORTS_PNG=0
Packit 82cdb4
SUPPORTS_JPEG=0
Packit 82cdb4
SUPPORTS_XFT=0
Packit 82cdb4
SUPPORTS_PANGO=0
Packit 82cdb4
SUPPORTS_XSETTINGS=0
Packit 82cdb4
Packit 82cdb4
dnl ----- Args -------------------------------------------------------------
Packit 82cdb4
Packit 82cdb4
AC_ARG_ENABLE(xft,
Packit 82cdb4
  [  --disable-xft           disable xft (anti-aliased) support, [default=no]],
Packit 82cdb4
  enable_xft=$enableval, enable_xft=yes)
Packit 82cdb4
Packit 82cdb4
AC_ARG_ENABLE(pango,
Packit 82cdb4
  [  --enable-pango          enable Pango support.],
Packit 82cdb4
  enable_pango=$enableval, enable_pango=no)
Packit 82cdb4
Packit 82cdb4
AC_ARG_ENABLE(jpeg,
Packit 82cdb4
  [  --enable-jpeg           enable jpeg image support.],
Packit 82cdb4
  enable_jpeg=$enableval, enable_jpeg=no)
Packit 82cdb4
Packit 82cdb4
AC_ARG_ENABLE(png,
Packit 82cdb4
  [  --disable-png           disable png support [default=no]],
Packit 82cdb4
     enable_png=$enableval, enable_png=yes )
Packit 82cdb4
Packit 82cdb4
AC_ARG_ENABLE(doxygen-docs,     
Packit 82cdb4
  [  --enable-doxygen-docs   build DOXYGEN API documentation (requires Doxygen)], 
Packit 82cdb4
     enable_doxygen_docs=$enableval,enable_doxygen_docs=no)
Packit 82cdb4
Packit 82cdb4
AC_ARG_ENABLE(xsettings,
Packit 82cdb4
  [  --enable-xsettings      enable xsettings client support],
Packit 82cdb4
     enable_xsettings=$enableval, enable_xsettings=no )
Packit 82cdb4
Packit 82cdb4
AC_ARG_WITH(xsettings-includes,    
Packit 82cdb4
  [  --with-xsettings-includes=DIR Use xsettings-client includes in DIR],
Packit 82cdb4
 
Packit 82cdb4
	   xsettings_includes=$withval, xsettings_includes=yes)
Packit 82cdb4
Packit 82cdb4
AC_ARG_WITH(xsettings-lib,         
Packit 82cdb4
  [  --with-xsettings-lib=DIR      Use xsettings-client library in DIR], 
Packit 82cdb4
	   xsettings_lib=$withval, xsettings_lib=yes)
Packit 82cdb4
Packit 82cdb4
AC_ARG_ENABLE(debug,
Packit 82cdb4
  [  --enable-debug          enable debug ( verbose ) build],
Packit 82cdb4
     enable_debug=$enableval, enable_debug=no )
Packit 82cdb4
Packit 82cdb4
AC_ARG_ENABLE(gcov,
Packit 82cdb4
  [  --enable-gcov           enable gcov coverage ( testing only ) build],
Packit 82cdb4
     enable_gcov=$enableval, enable_gcov=no )
Packit 82cdb4
Packit 82cdb4
AC_ARG_ENABLE(gprof,
Packit 82cdb4
  [  --enable-gprof          enable gprof profiler ( testing only ) build],
Packit 82cdb4
     enable_gprof=$enableval, enable_gprof=no )
Packit 82cdb4
Packit 82cdb4
AC_ARG_ENABLE(unit-tests,
Packit 82cdb4
  [  --enable-unit-tests          enable unit tests ( Requires check )],
Packit 82cdb4
     enable_unit_tests=$enableval, enable_unit_tests=no )
Packit 82cdb4
Packit 82cdb4
Packit 82cdb4
Packit 82cdb4
if test x$enable_pango = xyes; then
Packit 82cdb4
   enable_xft=no
Packit 82cdb4
fi
Packit 82cdb4
Packit 82cdb4
dnl ------ Check for X Stuff ------------------------------------------------
Packit 82cdb4
Packit 82cdb4
PKG_CHECK_MODULES(X11, x11, [have_libx11pc="yes"], [have_libx11pc="no"])
Packit 82cdb4
Packit 82cdb4
if test $have_libx11pc = yes; then
Packit 82cdb4
   xft_pkg=
Packit 82cdb4
   if test x$enable_xft != xno; then
Packit 82cdb4
      xft_pkg=xft
Packit 82cdb4
      SUPPORTS_XFT=1
Packit 82cdb4
      AC_DEFINE(USE_XFT, [1], [Use Xft])	
Packit 82cdb4
   fi
Packit 82cdb4
# XXX : xau is missing from x11.pc - workaround is too add here 
Packit 82cdb4
   PKG_CHECK_MODULES(XLIBS, x11 xext  $xft_pkg)
Packit 82cdb4
   XLIBS_REQUIRED="x11 xext"
Packit 82cdb4
else
Packit 82cdb4
Packit 82cdb4
AC_PATH_XTRA
Packit 82cdb4
if test x"$no_x" = x"yes"; then
Packit 82cdb4
    AC_MSG_ERROR([*** Required X11 Headers and libraries not found.***])
Packit 82cdb4
fi
Packit 82cdb4
Packit 82cdb4
XFT_LIBS=
Packit 82cdb4
XFT_CFLAGS=
Packit 82cdb4
 
Packit 82cdb4
# FIXME: Should check for shm 
Packit 82cdb4
Packit 82cdb4
if test x$enable_xft != xno; then
Packit 82cdb4
  AC_MSG_CHECKING([for xft])
Packit 82cdb4
  if test x$PKG_CONFIG != xno && $PKG_CONFIG --exists xft; then 
Packit 82cdb4
    XFT_CFLAGS="`pkg-config --cflags xft`"
Packit 82cdb4
    XFT_LIBS="`pkg-config --libs xft`"
Packit 82cdb4
    AC_DEFINE(USE_XFT, [1], [Use Xft])
Packit 82cdb4
    SUPPORTS_XFT=1
Packit 82cdb4
    AC_MSG_RESULT(yes)
Packit 82cdb4
  else
Packit 82cdb4
Packit 82cdb4
    AC_PATH_PROG(XFT_CONFIG, xft-config, no)
Packit 82cdb4
    
Packit 82cdb4
    if test x$XFT_CONFIG = xno; then
Packit 82cdb4
      AC_MSG_RESULT(no)
Packit 82cdb4
      AC_MSG_WARN([*** Cannot find Xft librarys, disabling support])
Packit 82cdb4
      enable_xft = no
Packit 82cdb4
    else
Packit 82cdb4
      XFT_CFLAGS="`xft-config --cflags`"
Packit 82cdb4
      XFT_LIBS="`xft-config --libs`"
Packit 82cdb4
      AC_DEFINE(USE_XFT, [1], [Use Xft])
Packit 82cdb4
      SUPPORTS_XFT=1    
Packit 82cdb4
      AC_MSG_RESULT(yes)
Packit 82cdb4
    fi
Packit 82cdb4
  fi
Packit 82cdb4
fi
Packit 82cdb4
Packit 82cdb4
XLIBS_CFLAGS="$XLIBS_CLAGS $XFT_CFLAGS"
Packit 82cdb4
XLIBS_LIBS="$X_LIBS $XFT_LIBS -lX11 -lXext"
Packit 82cdb4
Packit 82cdb4
MB_EXTRA_LIBS="$MB_EXTRA_LIBS $XLIBS_LIBS"
Packit 82cdb4
Packit 82cdb4
fi
Packit 82cdb4
Packit 82cdb4
# do this here for freetype include
Packit 82cdb4
MB_EXTRA_CFLAGS="$MB_EXTRA_CFLAGS $XLIBS_CFLAGS"
Packit 82cdb4
Packit 82cdb4
Packit 82cdb4
dnl ------ Check for Pango ---------------------------------------------------
Packit 82cdb4
Packit 82cdb4
if test x$enable_pango != xno; then
Packit 82cdb4
  PKG_CHECK_MODULES(PANGO, pango pangoxft, [have_pango="yes"], [have_pango="no"])
Packit 82cdb4
  if test x$have_pango=xyes; then
Packit 82cdb4
    AC_DEFINE(USE_PANGO, [1], [Use Pango])
Packit 82cdb4
    SUPPORTS_PANGO=1
Packit 82cdb4
    PANGO_REQUIRED="pango pangoxft"
Packit 82cdb4
  else
Packit 82cdb4
    AC_MSG_WARN([*** Cannot find pango, disabling support])
Packit 82cdb4
    enable_pango=no
Packit 82cdb4
  fi
Packit 82cdb4
fi
Packit 82cdb4
Packit 82cdb4
Packit 82cdb4
dnl ------ Check for PNG ---------------------------------------------------
Packit 82cdb4
Packit 82cdb4
if test x$enable_png != xno; then
Packit Service 6982ec
  AC_MSG_CHECKING(for libpng)
Packit Service 6982ec
  if test x$PKG_CONFIG != xno && $PKG_CONFIG --exists libpng; then 
Packit 82cdb4
        AC_MSG_RESULT(yes)
Packit Service 6982ec
        PNG_LIBS=`$PKG_CONFIG --libs libpng`
Packit Service 6982ec
	PNG_CFLAGS=`$PKG_CONFIG --cflags libpng`
Packit 82cdb4
        AC_DEFINE(USE_PNG, [1], [Use Png])
Packit 82cdb4
	SUPPORTS_PNG=1
Packit Service 6982ec
	PNG_REQUIRED="libpng"
Packit 82cdb4
  else
Packit 82cdb4
	AC_MSG_RESULT(no)
Packit 82cdb4
        # AC_CHECK_HEADERS(png.h, [ have_png_h="yes" ], [ have_png_h="no" ] )
Packit 82cdb4
        AC_CHECK_LIB([png], [png_create_read_struct], [have_png="yes"], [have_png="no"])
Packit 82cdb4
Packit 82cdb4
        if test x$have_png=xyes && test x$have_png_h=xyes; then 
Packit 82cdb4
            AC_DEFINE(USE_PNG, [1], [Use Png])
Packit 82cdb4
	    SUPPORTS_PNG=1
Packit 82cdb4
            PNG_LIBS="-lpng -lz"
Packit 82cdb4
            MB_EXTRA_LIBS="$MB_EXTRA_LIBS $XLIBS_LIBS $PNG_LIBS"
Packit 82cdb4
        else
Packit 82cdb4
	    AC_MSG_WARN([*** Cannot find PNG, disabling support])
Packit 82cdb4
            enable_png=no
Packit 82cdb4
	fi
Packit 82cdb4
  fi
Packit 82cdb4
fi
Packit 82cdb4
Packit 82cdb4
Packit 82cdb4
dnl ------ Check for JPEG ---------------------------------------------------
Packit 82cdb4
Packit 82cdb4
if test x$enable_jpeg != xno; then
Packit 82cdb4
  # AC_CHECK_HEADERS(jpeglib.h, [ have_jpg_h="yes" ], [ have_jpg_h="no" ] )
Packit 82cdb4
  AC_CHECK_LIB([jpeg], [jpeg_read_header], [have_jpg="yes"], [have_jpg="no"])
Packit 82cdb4
Packit 82cdb4
  if test x$have_jpg=xyes && test x$have_jpg_h=xyes; then 
Packit 82cdb4
        AC_DEFINE(USE_JPG, [1], [Use JPEG])
Packit 82cdb4
	SUPPORTS_JPEG=1
Packit 82cdb4
	JPEG_LIBS="-ljpeg"
Packit 82cdb4
        MB_EXTRA_LIBS="$MB_EXTRA_LIBS -ljpeg"
Packit 82cdb4
  else
Packit 82cdb4
	AC_MSG_WARN([*** Cannot find libjpeg, disabling support])
Packit 82cdb4
        enable_jpeg=no
Packit 82cdb4
  fi
Packit 82cdb4
fi
Packit 82cdb4
Packit 82cdb4
Packit 82cdb4
dnl ------ Check for XSettings ----------------------------------------------
Packit 82cdb4
Packit 82cdb4
if test x$enable_xsettings != xno; then
Packit 82cdb4
Packit 82cdb4
  AC_MSG_CHECKING([for xsettings])
Packit 82cdb4
Packit 82cdb4
  case "$xsettings_includes" in
Packit 82cdb4
    yes|no)
Packit 82cdb4
	XSET_CFLAGS=""
Packit 82cdb4
	;;
Packit 82cdb4
    *)
Packit 82cdb4
	XSET_CFLAGS="-I$xsettings_includes"
Packit 82cdb4
	;;
Packit 82cdb4
  esac
Packit 82cdb4
	
Packit 82cdb4
  case "$xsettings_lib" in
Packit 82cdb4
    yes)
Packit 82cdb4
	XSET_LIBS="-lXsettings-client"
Packit 82cdb4
	;;
Packit 82cdb4
    *)
Packit 82cdb4
	XSET_LIBS="-L$xsettings_lib -lXsettings-client"
Packit 82cdb4
	;;
Packit 82cdb4
   esac
Packit 82cdb4
Packit 82cdb4
   xsetsaved_CPPFLAGS="$CPPFLAGS"
Packit 82cdb4
   CPPFLAGS="$CPPFLAGS $XSET_CFLAGS $XLIBS_CFLAGS"
Packit 82cdb4
   xsetsaved_LIBS="$LIBS"
Packit 82cdb4
   LIBS="$LIBS $XSET_LIBS $XLIBS_LIBS"
Packit 82cdb4
Packit 82cdb4
   AC_CHECK_HEADER(xsettings-client.h, [ have_xset_h="yes" ], [ have_xset_h="no" ] )
Packit 82cdb4
Packit 82cdb4
   if test x$have_xset_h = xno; then
Packit 82cdb4
      AC_MSG_ERROR([cannot find Xsettings-client headers])
Packit 82cdb4
   fi
Packit 82cdb4
Packit 82cdb4
   AC_CHECK_LIB([Xsettings-client], [xsettings_client_new], 
Packit 82cdb4
                [have_xset_libs="yes"], [ have_xset_libs="no"])
Packit 82cdb4
Packit 82cdb4
   if test x$have_xset_libs = x"no"; then	
Packit 82cdb4
      AC_MSG_ERROR([cannot find Xsettings-client headers])
Packit 82cdb4
   fi
Packit 82cdb4
   	
Packit 82cdb4
   CPPFLAGS="$saved_CPPFLAGS"
Packit 82cdb4
   LIBS="$saved_LIBS"
Packit 82cdb4
Packit 82cdb4
   MB_EXTRA_LIBS="$MB_EXTRA_LIBS $XSET_LIBS"	
Packit 82cdb4
   MB_EXTRA_CFLAGS="$MB_EXTRA_CFLAGS $XSET_CFLAGS"	
Packit 82cdb4
Packit 82cdb4
   AC_DEFINE(USE_XSETTINGS, [1], [Use XSettings Client])
Packit 82cdb4
Packit 82cdb4
   AC_MSG_RESULT([yes])
Packit 82cdb4
fi
Packit 82cdb4
Packit 82cdb4
Packit 82cdb4
dnl ------ Debug -----------------------------------------------------------
Packit 82cdb4
Packit 82cdb4
if test x$enable_debug != xno; then
Packit 82cdb4
  XLIBS_CFLAGS="-DDEBUG $XLIBS_CFLAGS"	
Packit 82cdb4
fi
Packit 82cdb4
Packit 82cdb4
Packit 82cdb4
dnl ------ Doxygen docs ----------------------------------------------------
Packit 82cdb4
Packit 82cdb4
if test x$enable_doxygen_docs = xyes ; then
Packit 82cdb4
Packit 82cdb4
  AC_PATH_PROG(DOXYGEN, doxygen, no)
Packit 82cdb4
Packit 82cdb4
  AC_MSG_CHECKING([whether to build Doxygen documentation])
Packit 82cdb4
Packit 82cdb4
  if test x$DOXYGEN = xno ; then
Packit 82cdb4
    have_doxygen=no
Packit 82cdb4
  else
Packit 82cdb4
    have_doxygen=yes
Packit 82cdb4
  fi
Packit 82cdb4
Packit 82cdb4
  if test x$have_doxygen = xno; then
Packit 82cdb4
    AC_MSG_ERROR([Building Doxygen docs explicitly required, but Doxygen not found])
Packit 82cdb4
  fi
Packit 82cdb4
Packit 82cdb4
Packit 82cdb4
  AC_MSG_RESULT(yes)
Packit 82cdb4
Packit 82cdb4
fi
Packit 82cdb4
Packit 82cdb4
AM_CONDITIONAL(HAVE_DOXYGEN, test x$enable_doxygen_docs = xyes)	
Packit 82cdb4
Packit 82cdb4
dnl ------ GCC flags --------------------------------------------------------
Packit 82cdb4
Packit 82cdb4
if test "x$GCC" = "xyes"; then
Packit 82cdb4
Packit 82cdb4
   if test x$enable_gprof = xyes; then
Packit 82cdb4
         GCC_WARNINGS="$GCC_WARNINGS -pg"
Packit 82cdb4
	 AC_MSG_RESULT([Enabling gprof Support.])	
Packit 82cdb4
   fi	 
Packit 82cdb4
Packit 82cdb4
   if test x$enable_gcov = xyes; then
Packit 82cdb4
         GCC_WARNINGS="$GCC_WARNINGS -fprofile-arcs -ftest-coverage"
Packit 82cdb4
	 AC_MSG_RESULT([Enabling gcov Support.])	
Packit 82cdb4
   fi	 
Packit 82cdb4
Packit 82cdb4
   GCC_WARNINGS="-g -Wall -fno-strict-aliasing $GCC_WARNINGS"
Packit 82cdb4
Packit 82cdb4
else
Packit 82cdb4
   if test x$enable_gprof = xyes; then
Packit 82cdb4
      AC_MSG_WARN([*** Need gcc compiler for gprof support])
Packit 82cdb4
   fi
Packit 82cdb4
Packit 82cdb4
   if test x$enable_gcov = xyes; then
Packit 82cdb4
      AC_MSG_WARN([*** Need gcc compiler for gcov support])
Packit 82cdb4
   fi
Packit 82cdb4
fi
Packit 82cdb4
Packit 82cdb4
dnl ------ 'check' for unit tests -------------------------------------------
Packit 82cdb4
Packit 82cdb4
have_check=no
Packit 82cdb4
Packit 82cdb4
if test x$enable_unit_tests = xyes; then
Packit 82cdb4
  AM_PATH_CHECK(,have_check=yes, have_check=no)
Packit 82cdb4
fi
Packit 82cdb4
Packit 82cdb4
AM_CONDITIONAL(HAVE_CHECK, test x$have_check = xyes)
Packit 82cdb4
Packit 82cdb4
dnl ------ Substitute in found libs, clags to Makefiles etc -----------------
Packit 82cdb4
Packit 82cdb4
AC_SUBST(XLIBS_CFLAGS)
Packit 82cdb4
AC_SUBST(XLIBS_LIBS)
Packit 82cdb4
AC_SUBST(PANGO_CFLAGS)
Packit 82cdb4
AC_SUBST(PANGO_LIBS)
Packit 82cdb4
AC_SUBST(PNG_CFLAGS)
Packit 82cdb4
AC_SUBST(PNG_LIBS)
Packit 82cdb4
AC_SUBST(JPEG_LIBS)
Packit 82cdb4
AC_SUBST(GCC_WARNINGS)
Packit 82cdb4
Packit 82cdb4
AC_SUBST(XSET_LIBS)
Packit 82cdb4
AC_SUBST(XSET_CFLAGS)
Packit 82cdb4
Packit 82cdb4
AC_SUBST(MB_EXTRA_LIBS)
Packit 82cdb4
AC_SUBST(MB_EXTRA_CFLAGS)
Packit 82cdb4
AC_SUBST(XLIBS_REQUIRED)
Packit 82cdb4
AC_SUBST(PANGO_REQUIRED)
Packit 82cdb4
AC_SUBST(PNG_REQUIRED)
Packit 82cdb4
Packit 82cdb4
dnl ------ Below used for mbconfig.h ----------------------------------------
Packit 82cdb4
Packit 82cdb4
AC_SUBST(SUPPORTS_PNG)
Packit 82cdb4
AC_SUBST(SUPPORTS_JPEG)
Packit 82cdb4
AC_SUBST(SUPPORTS_XFT)
Packit 82cdb4
AC_SUBST(SUPPORTS_PANGO)
Packit 82cdb4
Packit 82cdb4
dnl ------ 'Built in' checks ------------------------------------------------ 
Packit 82cdb4
Packit 82cdb4
AC_HEADER_DIRENT
Packit 82cdb4
AC_HEADER_STDC
Packit 82cdb4
AC_HEADER_SYS_WAIT
Packit 82cdb4
AC_CHECK_HEADERS([langinfo.h locale.h stdlib.h string.h sys/time.h unistd.h])
Packit 82cdb4
Packit 82cdb4
# Checks for typedefs, structures, and compiler characteristics.
Packit 82cdb4
AC_C_CONST
Packit 82cdb4
AC_TYPE_PID_T
Packit 82cdb4
AC_TYPE_SIZE_T
Packit 82cdb4
AC_HEADER_TIME
Packit 82cdb4
Packit 82cdb4
# Checks for library functions.
Packit 82cdb4
AC_FUNC_ALLOCA
Packit 82cdb4
AC_FUNC_CLOSEDIR_VOID
Packit 82cdb4
AC_FUNC_LSTAT
Packit 82cdb4
AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
Packit 82cdb4
AC_FUNC_SELECT_ARGTYPES
Packit 82cdb4
AC_FUNC_STAT
Packit 82cdb4
AC_FUNC_STRCOLL
Packit 82cdb4
AC_CHECK_FUNCS([memset select setlocale strcasecmp strchr strdup strncasecmp strstr])
Packit 82cdb4
Packit 82cdb4
AC_C_BIGENDIAN
Packit 82cdb4
Packit 82cdb4
AC_OUTPUT([
Packit 82cdb4
Makefile
Packit 82cdb4
libmb.pc
Packit 82cdb4
libmb/Makefile
Packit 82cdb4
libmb/mbconfig.h
Packit 82cdb4
doc/Doxyfile
Packit 82cdb4
doc/Makefile
Packit 82cdb4
tests/Makefile
Packit 82cdb4
tests/menu/Makefile
Packit 82cdb4
])
Packit 82cdb4
Packit 82cdb4
dnl ==========================================================================
Packit 82cdb4
echo "
Packit 82cdb4
                    LibMatchbox $VERSION
Packit 82cdb4
                  ======================
Packit 82cdb4
Packit 82cdb4
        prefix:                 ${prefix}
Packit 82cdb4
        source code location:   ${srcdir}
Packit 82cdb4
Packit 82cdb4
        Building with Debug:                ${enable_debug}
Packit 82cdb4
        Building with gcov:                 ${enable_gcov}
Packit 82cdb4
        Building with gprof:                ${enable_gprof}
Packit 82cdb4
	Building unit tests:                ${have_check}
Packit 82cdb4
Packit 82cdb4
        Building with Xft:                  ${enable_xft}
Packit 82cdb4
        Building with Pango:                ${enable_pango}
Packit 82cdb4
        Building with PNG:                  ${enable_png}
Packit 82cdb4
        Building with JPG:                  ${enable_jpeg}
Packit 82cdb4
        Building with XSettings:            ${enable_xsettings}
Packit 82cdb4
        Building with API Documentation:    ${enable_doxygen_docs}
Packit 82cdb4
Packit 82cdb4
"