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-2014 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], [2]) 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]) XSHAPE_LIBS="-lXext" 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 #include ],[ 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 #include #include ],[ 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 ],[ 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 kstat/solaris AC_CHECK_HEADER(kstat.h, [have_kstat_h=yes],) if test "x$have_kstat_h" = "xyes"; then AC_MSG_CHECKING([for kstat presence]) AC_LANG_SAVE AC_LANG_C AC_TRY_COMPILE([ #include ],[ kstat_named_t k; k.value.ui32; ],[have_kstat=yes],[]) AC_LANG_RESTORE if test "x$have_kstat" = "xyes"; then AC_MSG_RESULT(yes) AC_DEFINE(HAVE_KSTAT, 1, [Define to 1 if you have kstat]) KSTAT_LIBS=" -lkstat" else AC_MSG_RESULT(no) fi 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(XSHAPE_LIBS) AC_SUBST(my_sysconfdir) AC_SUBST(KSTAT_LIBS) 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