ede/configure.in

294 lines
8.7 KiB
Plaintext

dnl
dnl $Id: configure.in 1719 2006-08-15 08:56:42Z karijes $
dnl
dnl Part of Equinox Desktop Environment (EDE).
dnl Copyright (c) 2000-2012 EDE Authors.
dnl
dnl This program is licenced under terms of the
dnl GNU General Public Licence version 2 or newer.
dnl See COPYING for details.
m4_define([ede_major_version], [2])
m4_define([ede_minor_version], [1])
m4_define([ede_patch_version], [0])
m4_define([ede_version], [ede_major_version.ede_minor_version.ede_patch_version])
AC_PREREQ(2.13)
AC_INIT(EDE, ede_version, [karijes@users.sourceforge.net])
AC_CONFIG_SRCDIR(COPYING)
AC_CONFIG_HEADER(config.h:config.h.in)
dnl PACKAGE_VERSION is filled from AC_INIT
EDE_VERSION=$PACKAGE_VERSION
if test "$prefix" = NONE; then
EDE_INSTALL_DIR="/usr/local"
else
EDE_INSTALL_DIR="$prefix"
fi
AC_DEFINE_UNQUOTED(PREFIX, "$EDE_INSTALL_DIR", [Default installation place])
EDE_OPTIM_FLAGS=""
EDE_DEBUG_FLAGS=""
AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug], [turn on debugging support (default=no)]),, enable_debug=no)
AC_ARG_ENABLE(profile, AC_HELP_STRING([--enable-profile], [turn on profiling support (default=no)]),, enable_profile=no)
AC_ARG_ENABLE(shape, AC_HELP_STRING([--enable-shape], [enable XShape extension (default=yes)]),, enable_shape=yes)
AC_ARG_ENABLE(composite, AC_HELP_STRING([--enable-composite], [enable XComposite extension (default=yes)]),, enable_composite=yes)
AC_ARG_ENABLE(hal, AC_HELP_STRING([--enable-hal], [enable HAL support (default=yes)]),, enable_hal=yes)
dnl set 'with_fltk_path'
AC_ARG_WITH(fltk_path, AC_HELP_STRING([--with-fltk-path=[DIR]], [alternative directory where FLTK is installed]))
dnl set 'with_edelib_path'
AC_ARG_WITH(edelib_path, AC_HELP_STRING([--with-edelib-path=[DIR]], [alternative directory where edelib is installed]))
AC_PROG_CXX
AC_PROG_CPP
EDE_PROG_JAM
AC_PATH_PROG(MSGFMT, msgfmt)
AC_PATH_PROG(XGETTEXT, xgettext)
AC_PATH_PROG(GDB, gdb)
AC_PATH_PROG(PYTHON, python)
dnl X_CFLAGS, X_PRE_LIBS, X_LIBS, X_EXTRA_LIBS are replaced iff are X on nonstandard paths
AC_PATH_XTRA
AC_HEADER_STDC
dnl for xmlrpc-c
AC_CHECK_FUNC(pselect, AC_DEFINE(HAVE_PSELECT, 1, [Define to 1 if you have pselect()]))
AC_CHECK_FUNC(setgroups, AC_DEFINE(HAVE_SETGROUPS, 1, [Define to 1 if you have setgroups()]))
AC_CHECK_FUNC(asprintf, AC_DEFINE(HAVE_ASPRINTF, 1, [Define to 1 if you have asprintf()]))
AC_CHECK_FUNC(setenv, AC_DEFINE(HAVE_SETENV, 1, [Define to 1 if you have setenv()]))
AC_CHECK_FUNC(wcsncmp, AC_DEFINE(HAVE_WCSNCMP, 1, [Define to 1 if you have wcsncmp()]))
AC_CHECK_FUNC(gettimeofday, AC_DEFINE(HAVE_GETTIMEOFDAY, 1, [Define to 1 if you have gettimeofday()]))
AC_CHECK_FUNC(localtime_r, AC_DEFINE(HAVE_LOCALTIME_R, 1, [Define to 1 if you have localtime_r()]))
AC_CHECK_FUNC(gmtime_r, AC_DEFINE(HAVE_GMTIME_R, 1, [Define to 1 if you have gmtime_r()]))
AC_CHECK_FUNC(strcasecmp, AC_DEFINE(HAVE_STRCASECMP, 1, [Define to 1 if you have strcasecmp()]))
if test "$enable_profile" = "yes"; then
enable_debug=yes
fi
if test "$enable_debug" = "yes"; then
EDE_DEBUG_FLAGS="$EDE_DEBUG_FLAGS -g3 -D_DEBUG -DDEBUG"
EDE_OPTIM_FLAGS=""
fi
if test "$enable_profile" = "yes"; then
EDE_DEBUG_FLAGS="$EDE_DEBUG_FLAGS -pg"
fi
if test "$enable_shape" = "yes"; then
AC_CHECK_HEADER(X11/extensions/shape.h, [have_xshape_h=yes],)
if test "$have_xshape_h" = "yes"; then
AC_CHECK_LIB(Xext, XShapeInputSelected, [have_xshape=yes],,$X_LIBS)
fi
if test "$have_xshape" = "yes"; then
AC_DEFINE(HAVE_SHAPE, 1, [Define to 1 if you have XShape extension])
fi
fi
if test "$enable_composite" = "yes"; then
PKG_CHECK_MODULES(COMPOSITE, [xcomposite, xdamage, xext], [have_xcomposite=yes], [have_composite=no])
if test "$have_xcomposite" = "yes"; then
AC_DEFINE(HAVE_COMPOSITE, 1, [Define to 1 if you have Xcomposite extension])
fi
fi
if test "$enable_hal" = "yes"; then
PKG_CHECK_MODULES(HAL, [hal, hal-storage], [have_hal=yes], [have_hal=no])
if test "$have_hal" = "yes"; then
AC_DEFINE(HAVE_HAL, 1, [Define to 1 if you have HAL libraries])
fi
fi
PKG_CHECK_MODULES(LIBSTARTUP_NOTIFICATION, [libstartup-notification-1.0],
[have_libstartup_notification=yes], [have_libstartup_notification=no])
if test "$have_libstartup_notification" = "yes"; then
AC_DEFINE(HAVE_LIBSTARTUP_NOTIFICATION, 1, [Define to 1 if you have libstartup-notification libraries])
else
AC_MSG_RESULT(no)
fi
if test -n "$with_edelib_path"; then
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$with_edelib_path/lib/pkgconfig"
fi
PKG_CHECK_MODULES(EDELIB, [edelib],, [have_edelib=no])
if test "$have_edelib" = "no"; then
AC_MSG_ERROR(edelib not found! You must install it first)
fi
PKG_CHECK_MODULES(EDELIB_GUI, [edelib-gui],, [have_edelib_gui=no])
if test "$have_edelib_gui" = "no"; then
AC_MSG_ERROR(edelib-gui not found! You must install it first)
fi
PKG_CHECK_MODULES(EDELIB_GUI_NO_IMAGES, [edelib-gui-no-images],, [have_edelib_gui_no_images=no])
if test "$have_edelib_gui_no_images" = "no"; then
AC_MSG_ERROR(edelib-gui (without images) not found! You must install it first)
fi
PKG_CHECK_MODULES(EDELIB_DBUS, [edelib-dbus],, [have_edelib_dbus=no])
if test "$have_edelib_dbus" = "no"; then
AC_MSG_RESULT(edelib is compiled without DBus so EDE will be compiled without DBus support)
fi
dnl find edelib documentation
EDELIB_API_INDEX=`$PKG_CONFIG --variable=edelibdocdir edelib`
EDELIB_API_INDEX="$EDELIB_API_INDEX/html/index.html"
if test "x$with_fltk_path" = "x"; then
AC_PATH_PROG(FLTK_CONFIG, fltk-config)
else
AC_PATH_PROG(FLTK_CONFIG, fltk-config,, "$with_fltk_path/bin")
fi
if test -n "$FLTK_CONFIG"; then
fltk_version=`$FLTK_CONFIG --version`
AC_MSG_CHECKING([for FLTK version >= 1.1.7])
case "$fltk_version" in ["1.1."[789]])
AC_MSG_RESULT(yes)
;;
["1.1.10"])
AC_MSG_RESULT(yes)
;;
dnl check for FLTK 1.3.x branch
["1.3."[0123456789]])
AC_MSG_RESULT(yes)
;;
*)
AC_MSG_ERROR([Looks like you have an older FLTK version ($fltk_version). Required is >= 1.1.7])
esac
dnl remove -Wno-non-virtual-dtor from flags (also, on NetBSD they added -O2 flag; stupid)
FLTK_CFLAGS=`$FLTK_CONFIG --cxxflags | sed -e 's/-Wno-non-virtual-dtor//' | sed -e 's/-O[1-3]//g'`
dnl remove -lsupc++ so we can chose what to use
FLTK_LIBS_NOIMAGES=`$FLTK_CONFIG --ldflags | sed -e 's/-lsupc++//g'`
FLTK_LIBS=`$FLTK_CONFIG --use-images --ldflags | sed -e 's/-lsupc++//g'`
else
AC_MSG_ERROR([You don't have FLTK installed. To compile EDE, you will need it.])
fi
EDE_CHECK_LIBXPM
if test "$have_libxpm" = "yes"; then
FLTK_LIBS="$FLTK_LIBS $LIBXPM_LIBS"
FLTK_LIBS_NOIMAGES="$FLTK_LIBS_NOIMAGES $LIBXPM_LIBS"
fi
EDE_CHECK_STATFS
EDE_LARGEFILE
AC_PATH_PROG(CURL_CONFIG, curl-config)
if test -n "$CURL_CONFIG"; then
CURL_CFLAGS=`$CURL_CONFIG --cflags`
CURL_LIBS=`$CURL_CONFIG --libs`
AC_DEFINE(HAVE_CURL, 1, [Define to 1 if you have curl library])
AC_LANG_SAVE
AC_LANG_C
AC_TRY_COMPILE([
#include <curl/curl.h>
#include <curl/types.h>
],[
CURL *curl;
curl = curl_easy_init();
],[have_curltypes_h=yes],[])
AC_LANG_RESTORE
if test "$have_curltype_h" = "yes"; then
AC_DEFINE(HAVE_CURLTYPES_H, 1, [Define to 1 if you have curl/types.h file])
fi
fi
dnl emits PTHREAD_CFLAGS and PTHREAD_LIBS
ACX_PTHREAD
AC_MSG_CHECKING([for XKB extension files])
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $X_CFLAGS"
LIBS="$LIBS $X_LIBS $X_EXTRA_LIBS -lxkbfile"
AC_LANG_SAVE
AC_LANG_C
AC_TRY_LINK([
#include <stdio.h>
#include <X11/XKBlib.h>
#include <X11/extensions/XKBrules.h>
],[
FILE *fd = fopen("/some/file", "r");
XkbRF_RulesPtr ptr;
XkbRF_LoadRules(fd, ptr);
],[have_xkbrules=yes],[])
AC_LANG_RESTORE
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
if test "$have_xkbrules" = "yes"; then
AC_DEFINE(HAVE_XKBRULES, 1, [Define to 1 if you have XKB extension])
XKB_LIBS="$X_LIBS -lxkbfile"
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
dnl this check is stolen from xmlrpc-c which is borrowed from Python 1.5.2.
AC_MSG_CHECKING([whether va_list is an array])
AC_TRY_COMPILE([
#include <stdarg.h>
],[
va_list list1, list2; list1 = list2;
],, va_list_is_array=yes)
if test "x$va_list_is_array" = "xyes"; then
AC_DEFINE(VA_LIST_IS_ARRAY, 1, [Define to 1 if your va_list is array])
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
dnl pekwm specific macros
EDE_CHECK_PEKWM_DEPENDENCIES
dnl expand variables before EDE_INIT_JAM convert them to jam variables
EDE_EXPAND(sysconfdir, "NONE", my_sysconfdir)
EDE_INIT_JAM
AC_SUBST(EDE_VERSION)
AC_SUBST(EDE_OPTIM_FLAGS)
AC_SUBST(EDE_DEBUG_FLAGS)
AC_SUBST(FLTK_CFLAGS)
AC_SUBST(FLTK_LIBS)
AC_SUBST(FLTK_LIBS_NOIMAGES)
AC_SUBST(EDELIB_API_INDEX)
AC_SUBST(CURL_CFLAGS)
AC_SUBST(CURL_LIBS)
AC_SUBST(LARGEFILE)
AC_SUBST(XKB_LIBS)
AC_SUBST(my_sysconfdir)
AC_SUBST(PEKWM_CXXFLAGS)
AC_SUBST(PEKWM_LIBS)
AC_OUTPUT([
Jamconfig
tools/l10n-prepare.sh
data/startede
data/ede.desktop
doc/index.txt
services/org.equinoxproject.Launch.service
])
chmod +x tools/l10n-prepare.sh
chmod +x data/startede