diff options
Diffstat (limited to 'src/configure.in')
-rw-r--r-- | src/configure.in | 258 |
1 files changed, 255 insertions, 3 deletions
diff --git a/src/configure.in b/src/configure.in index 2c23e0611..1ebf82c18 100644 --- a/src/configure.in +++ b/src/configure.in @@ -982,7 +982,7 @@ test "x$with_x" = xno -a "x$BEOS" != "xyes" -a "x$MACOSX" != "xyes" -a "x$QNX" ! AC_MSG_CHECKING(--enable-gui argument) AC_ARG_ENABLE(gui, - [ --enable-gui[=OPTS] X11 GUI [default=auto] [OPTS=auto/no/gtk/gtk2/gnome/gnome2/motif/athena/neXtaw/beos/photon/carbon]], , enable_gui="auto") + [ --enable-gui[=OPTS] X11 GUI [default=auto] [OPTS=auto/no/gtk/gtk2/gnome/gnome2/kde/motif/athena/neXtaw/beos/photon/carbon]], , enable_gui="auto") dnl Canonicalize the --enable-gui= argument so that it can be easily compared. dnl Do not use character classes for portability with old tools. @@ -1039,7 +1039,6 @@ elif test "x$MACOSX" = "xyes" -a "x$with_x" = "xno" ; then else - case "$enable_gui_canon" in no|none) AC_MSG_RESULT(no GUI support) ;; yes|""|auto) AC_MSG_RESULT(yes/auto - automatic GUI support) @@ -1050,6 +1049,8 @@ else SKIP_ATHENA= SKIP_NEXTAW= SKIP_CARBON=;; + kde|Kde|KDE) AC_MSG_RESULT(KDE 2.x or 3.x GUI support) + SKIP_KDE=;; gtk) AC_MSG_RESULT(GTK+ 1.x GUI support) SKIP_GTK=;; gtk2) AC_MSG_RESULT(GTK+ 2.x GUI support) @@ -1073,6 +1074,17 @@ else fi +if test "x$SKIP_KDE" != "xYES" -a "$enable_gui_canon" != "kde"; then + AC_MSG_CHECKING(whether or not to look for KDE) + AC_ARG_ENABLE(kde-check, + [ --enable-kde-check If auto-select GUI, check for KDE [default=no]], + ,enable_kde_check="no") + AC_MSG_RESULT($enable_kde_check); + if test "x$enable_kde_check" = "xno"; then + SKIP_KDE=YES + fi +fi + if test "x$SKIP_GTK" != "xYES" -a "$enable_gui_canon" != "gtk" -a "$enable_gui_canon" != "gtk2"; then AC_MSG_CHECKING(whether or not to look for GTK) AC_ARG_ENABLE(gtk-check, @@ -1153,6 +1165,247 @@ if test "x$SKIP_CARBON" != "xYES" -a "$enable_gui_canon" != "carbon"; then fi fi +dnl --------------------------------------------------------------------------- +dnl we use the kde-config script included in KDE since 2.x to check which +dnl version of KDE, we'll use. We'll use additional args in configure to +dnl obtain the QT directory (includes and libs) as qt does not give any +dnl config script ! (shame on the trolls ! ;p) +dnl --------------------------------------------------------------------------- + +if test -z "$SKIP_KDE"; then +dnl ------------------ +dnl now, take care of QT +dnl ----------------- +AC_ARG_WITH(qt-dir, + [ --with-qt-dir=DIR Specify prefix of QT files], + [ + ROOTQT="$withval" + MOC="$withval"/bin/moc + QT_INCLUDES="$withval"/include + QT_LIBS="$withval"/lib + ]) + +if test "x$ROOTQT" = "x"; then + if test -z "$QTDIR"; then + dnl Find the Qt directory by looking for the "moc" program. + dnl It's better than nothing. + AC_PATH_PROG(MOC, moc, no) + if text"x$MOC" = "x"; then + AC_MSG_ERROR(could not find Qt directory) + else + ROOTQT=`echo $MOC | sed 's+/bin/moc++'` + fi + else + ROOTQT="$QTDIR" + fi +fi +MOC="$ROOTQT"/bin/moc +QT_INCLUDES="$ROOTQT"/include +QT_LIBS="$ROOTQT"/lib + +AC_ARG_WITH(qt-includes, + [ --with-qt-includes=DIR Specify location of Qt headers], + [QT_INCLUDES="$withval"] + ) + +AC_ARG_WITH(qt-libraries, + [ --with-qt-libs=DIR Specify location of Qt libraries], + [QT_LIBS="$withval"] + ) + +if test "x$QT_LIBS" = "x" ; then + QT_LIBS="$ROOTQT"/lib +fi +if test "x$QT_INCLUDES" = "x" ; then + QT_INCLUDES="$ROOTQT"/include +fi +dnl we should get QT's version from here and compare with what kde-config +dnl says + +AC_MSG_CHECKING(whether or not to use a KDE Toolbar in KVim) +AC_ARG_ENABLE(kde-toolbar, + [ --enable-kde-toolbar if KDE GUI is selected, enable a KDE-look toolbar [default=no]], + , enable_kde_toolbar="no") +if test "x$enable_kde_toolbar" != "xno"; then + AC_DEFINE(FEAT_KDETOOLBAR) +fi +AC_MSG_RESULT($enable_kde_toolbar); +fi + +dnl ------------------- +dnl so, first, look up at the kde-config script +dnl ------------------ + +if test -z "$SKIP_KDE"; then +AC_DEFUN(AM_PATH_KDE, +[ + if test "X$KDE_CONFIG" != "X"; then + min_kde_version=ifelse([$1], ,2.0,[$1]) + AC_MSG_CHECKING(for KDE version >= $min_kde_version) + no_kde="" + if test "$KDE_CONFIG" = "no" ; then + no_kde=yes + else + KDE_PREFIX=`$KDE_CONFIG $kde_config_args --prefix` + if test "x$KDE_LIBS" = "x"; then + KDE_LIBS="$KDE_PREFIX/lib" + fi + if test "x$KDE_INCLUDES" = "x"; then + KDE_INCLUDES="$KDE_PREFIX/include" + fi + kde_major_version=`$KDE_CONFIG --version | grep KDE | \ +sed 's/KDE:\ //' | sed 's/\([[0-9]]*\).\([[0-9]]*.*\)/\1/'` + kde_minor_version=`$KDE_CONFIG --version | grep KDE | \ +sed 's/KDE:\ //' | sed 's/\([[0-9]]*\).\([[0-9]]*.*\)/\2/'` + + qt_major_version=`$KDE_CONFIG --version | grep Qt | sed -e \ +'s/Qt:\ //' | sed 's/\([[0-9]]*\).\([[0-9]]*.*\)/\1/'` + qt_minor_version=`$KDE_CONFIG --version | grep Qt | sed -e \ +'s/Qt:\ //' | sed 's/\([[0-9]]*\).\([[0-9]]*.*\)/\2/'` + + dnl maybe in a near future we'll get these ones : QT_PREFIX, QT_LIBS, + dnl QT_INCLUDES + dnl but for now we need configure options to get them ... + if test "x$enable-kdetest" = "xyes" ; then + ac_save_LIBS="$LIBS" + LIBS="$LIBS $KDE_LIBS" + + dnl fake test + AC_TRY_RUN([ +#include <stdio.h> +int +main() +{ return 0; } + ],, no_kde=yes,[echo $ac_n "cross compiling KDE ? ? how can i remove that ? :)"]) + LIBS="$ac_save_LIBS" + fi + fi + if test "x$no_kde" = x ; then + AC_MSG_RESULT(found KDE $kde_major_version.$kde_minor_version) + ifelse([$2], , :, [$2]) + else + AC_MSG_RESULT(no) + KDE_LIBS="" + ifelse([$3], , :, [$3]) + fi +else + AC_MSG_RESULT(no) + KDE_LIBS="" + ifelse([$3], , :, [$3]) +fi +AC_SUBST(KDE_LIBS) +AC_SUBST(KDE_INCLUDES) +AC_SUBST(KDE_PREFIX) +]) + +dnl Check all the KDE stuff +AC_MSG_CHECKING(--disable-rpath argument) +AC_ARG_ENABLE(rpath, + [ --disable-rpath Disable rpath.], + , enable_rpath="yes") +if test "$enable_rpath" = "yes"; then + AC_MSG_RESULT(no) +else + AC_MSG_RESULT(yes) +fi + +AC_MSG_CHECKING(--with-kde-prefix argument) +AC_ARG_WITH(kde-prefix,[ --with-kde-prefix=PFX Prefix where KDE is installed (optional)],kde_config_prefix="$withval"; +AC_MSG_RESULT($kde_config_prefix), kde_config_prefix="";AC_MSG_RESULT(no)) + +AC_ARG_WITH(kde-includes, + [ --with-kde-includes=DIR Specify location of KDE headers], + [KDE_INCLUDES="$withval"] + ) + +AC_ARG_WITH(kde-libraries, + [ --with-kde-libs=DIR Specify location of KDE libraries], + [KDE_LIBS="$withval"] + ) + +AC_MSG_CHECKING(--disable-kdetest argument) +AC_ARG_ENABLE(kdetest, + [ --disable-kdetest Do not try to compile and run a test KDE program], + enable_kdetest=yes) + +if test "x$enable_kdetest" = "xyes" ; then + AC_MSG_RESULT(kde test enabled) +else + AC_MSG_RESULT(kde test disabled) +fi + +if test "x$kde_config_prefix" != "x" ; then + kde_config_args="" + KDE_CONFIG=$kde_config_prefix/bin/kde-config +fi + +if test "X$KDE_CONFIG" = "X"; then + AC_PATH_PROG(KDE_CONFIG, kde-config, no) +else + AC_MSG_RESULT(Using KDE configuration program $KDE_CONFIG) +fi + +if test "X$KDE_CONFIG" != "X" ; then + AM_PATH_KDE(2.0.0, + [GUI_LIB_LOC="-L$KDE_LIBS -lkdeui -lkdecore -lDCOP" + GUI_INC_LOC="-I$KDE_INCLUDES" + KDEDIR="$KDE_PREFIX"], ) + if test "x$KDE_PREFIX" != "x"; then + AC_MSG_CHECKING(for QT version $qt_major_version.x) + if test "x$ROOTQT" != "x" ; then + GUI_INC_LOC="-I$QT_INCLUDES $GUI_INC_LOC" + if test $qt_major_version -lt 2; then + AC_MSG_ERROR(Your QT version is prior to 2.0; KDE 2.x and 3.x require at least QT 2) + fi + dnl hack for FreeBSD + if test "`(uname) 2>/dev/null`" = "FreeBSD"; then + CFLAGS="$CFLAGS -D_THREAD_SAFE" + CXXFLAGS="$CXXFLAGS -D_THREAD_SAFE" + GUI_LIB_LOC="$GUI_LIB_LOC -pthread" + LIBS="$LIBS -pthread" + fi + + dnl check the version + if test "x$enable_rpath" = "xyes"; then + if test $qt_major_version = 2; then + GUI_LIB_LOC="-L$KDE_LIBS -lkfile -L$QT_LIBS -lqt $GUI_LIB_LOC \ +-Wl,--rpath -Wl,$KDE_LIBS -Wl,--rpath -Wl,$QT_LIBS" + else + GUI_LIB_LOC="-L$KDE_LIBS -lkio -L$QT_LIBS -lqt-mt $GUI_LIB_LOC \ +-Wl,--rpath -Wl,$KDE_LIBS -Wl,--rpath -Wl,$QT_LIBS" + fi + else + if test $qt_major_version = 2; then + GUI_LIB_LOC="-L$KDE_LIBS -lkfile -L$QT_LIBS -lqt $GUI_LIB_LOC" + else + GUI_LIB_LOC="-L$KDE_LIBS -lkio -L$QT_LIBS -lqt-mt $GUI_LIB_LOC" + fi + fi + + dnl Remove "-I/usr/include " from GUI_* + GUI_INC_LOC="`echo $GUI_INC_LOC\ | sed 's%-I/usr/include %%'`" +dnl GUI_LIB_LOC="`echo $GUI_LIB_LOC\ | sed 's% -L/usr/lib%%'`" + + AC_MSG_RESULT(found $qt_major_version.$qt_minor_version in $ROOTQT) + SKIP_GTK=YES + SKIP_ATHENA=YES + SKIP_MOTIF=YES + GUITYPE=KDE + AC_SUBST(KDE_PREFIX) + AC_SUBST(QT_LIBS) + AC_SUBST(QT_INCLUDES) + AC_SUBST(ROOTQT) + AC_SUBST(MOC) + AC_DEFINE(FEAT_GUI_KDE) + else + AC_MSG_ERROR(Detected QT version mismatched) + fi + else + AC_MSG_ERROR(Could not find KDE installation prefix) + fi +fi +fi + if test "x$MACOSX" = "xyes" -a -z "$SKIP_CARBON" -a "x$CARBON" = "xyes"; then AC_MSG_CHECKING(for Carbon GUI) dnl already did this @@ -1170,7 +1423,6 @@ if test "x$MACOSX" = "xyes" -a -z "$SKIP_CARBON" -a "x$CARBON" = "xyes"; then SKIP_CARBON=YES fi - dnl dnl Get the cflags and libraries from the gtk-config script dnl |