Mercurial > hg > easyhg-kdiff3
diff kdiff3/admin/acinclude.m4.in @ 14:415083d043f3
KDiff3 version 0.9.70
author | joachim99 |
---|---|
date | Mon, 06 Oct 2003 19:19:11 +0000 |
parents | 53b8ecbce0cb |
children | efe33e938730 |
line wrap: on
line diff
--- a/kdiff3/admin/acinclude.m4.in Mon Oct 06 19:12:57 2003 +0000 +++ b/kdiff3/admin/acinclude.m4.in Mon Oct 06 19:19:11 2003 +0000 @@ -21,28 +21,19 @@ dnl IMPORTANT NOTE: dnl Please do not modify this file unless you expect your modifications to be -dnl carried into every other module in the repository. If you decide that you -dnl really want to modify it, contact coolo@kde.org mentioning that you have -dnl and that the modified file should be committed to every module. +dnl carried into every other module in the repository. dnl dnl Single-module modifications are best placed in configure.in for kdelibs dnl and kdebase or configure.in.in if present. -dnl ------------------------------------------------------------------------ -dnl Forward compatibility macros (make autoconf 2.13 look like 2.50), -dnl thanks to Raja R Harinath. -dnl ------------------------------------------------------------------------ -dnl -ifdef([_AC_PATH_X_XMKMF],[], - [AC_DEFUN([_AC_PATH_X_XMKMF],[AC_PATH_X_XMKMF])]) -ifdef([AC_OUTPUT_SUBDIRS],[], - [AC_DEFUN([AC_OUTPUT_SUBDIRS],[subdirs=$1; _AC_OUTPUT_SUBDIRS])]) - # KDE_PATH_X_DIRECT dnl Internal subroutine of AC_PATH_X. dnl Set ac_x_includes and/or ac_x_libraries. AC_DEFUN(KDE_PATH_X_DIRECT, -[if test "$ac_x_includes" = NO; then +[ +AC_REQUIRE([KDE_CHECK_LIB64]) + +if test "$ac_x_includes" = NO; then # Guess where to find include files, by looking for this one X11 .h file. test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h @@ -112,41 +103,41 @@ [LIBS="$ac_save_LIBS" # First see if replacing the include by lib works. # Check X11 before X11Rn because it is often a symlink to the current release. -for ac_dir in `echo "$ac_x_includes" | sed s/include/lib/` \ - /usr/X11/lib \ - /usr/X11R6/lib \ - /usr/X11R5/lib \ - /usr/X11R4/lib \ - \ - /usr/lib/X11 \ - /usr/lib/X11R6 \ - /usr/lib/X11R5 \ - /usr/lib/X11R4 \ - \ - /usr/local/X11/lib \ - /usr/local/X11R6/lib \ - /usr/local/X11R5/lib \ - /usr/local/X11R4/lib \ - \ - /usr/local/lib/X11 \ - /usr/local/lib/X11R6 \ - /usr/local/lib/X11R5 \ - /usr/local/lib/X11R4 \ - \ - /usr/X386/lib \ - /usr/x386/lib \ - /usr/XFree86/lib/X11 \ - \ - /usr/lib \ - /usr/local/lib \ - /usr/unsupported/lib \ - /usr/athena/lib \ - /usr/local/x11r5/lib \ - /usr/lpp/Xamples/lib \ - /lib/usr/lib/X11 \ - \ - /usr/openwin/lib \ - /usr/openwin/share/lib \ +for ac_dir in `echo "$ac_x_includes" | sed s/include/lib${kdelibsuff}/` \ + /usr/X11/lib${kdelibsuff} \ + /usr/X11R6/lib${kdelibsuff} \ + /usr/X11R5/lib${kdelibsuff} \ + /usr/X11R4/lib${kdelibsuff} \ + \ + /usr/lib${kdelibsuff}/X11 \ + /usr/lib${kdelibsuff}/X11R6 \ + /usr/lib${kdelibsuff}/X11R5 \ + /usr/lib${kdelibsuff}/X11R4 \ + \ + /usr/local/X11/lib${kdelibsuff} \ + /usr/local/X11R6/lib${kdelibsuff} \ + /usr/local/X11R5/lib${kdelibsuff} \ + /usr/local/X11R4/lib${kdelibsuff} \ + \ + /usr/local/lib${kdelibsuff}/X11 \ + /usr/local/lib${kdelibsuff}/X11R6 \ + /usr/local/lib${kdelibsuff}/X11R5 \ + /usr/local/lib${kdelibsuff}/X11R4 \ + \ + /usr/X386/lib${kdelibsuff} \ + /usr/x386/lib${kdelibsuff} \ + /usr/XFree86/lib${kdelibsuff}/X11 \ + \ + /usr/lib${kdelibsuff} \ + /usr/local/lib${kdelibsuff} \ + /usr/unsupported/lib${kdelibsuff} \ + /usr/athena/lib${kdelibsuff} \ + /usr/local/x11r5/lib${kdelibsuff} \ + /usr/lpp/Xamples/lib${kdelibsuff} \ + /lib/usr/lib${kdelibsuff}/X11 \ + \ + /usr/openwin/lib${kdelibsuff} \ + /usr/openwin/share/lib${kdelibsuff} \ ; \ do dnl Don't even attempt the hair of trying to link an X program! @@ -261,6 +252,37 @@ ]) ]) + +AC_DEFUN(KDE_CHECK_UIC_FLAG, +[ + AC_MSG_CHECKING([whether uic supports -$1 ]) + kde_cache=`echo $1 | sed 'y% .=/+-%____p_%'` + AC_CACHE_VAL(kde_cv_prog_uic_$kde_cache, + [ + cat >conftest.ui <<EOT + <!DOCTYPE UI><UI version="3" stdsetdef="1"></UI> +EOT + ac_uic_testrun="$UIC_PATH -$1 $2 conftest.ui >/dev/null" + if AC_TRY_EVAL(ac_uic_testrun); then + eval "kde_cv_prog_uic_$kde_cache=yes" + else + eval "kde_cv_prog_uic_$kde_cache=no" + fi + rm -f conftest* + ]) + + if eval "test \"`echo '$kde_cv_prog_uic_'$kde_cache`\" = yes"; then + AC_MSG_RESULT([yes]) + : + $3 + else + AC_MSG_RESULT([no]) + : + $4 + fi +]) + + dnl ------------------------------------------------------------------------ dnl Find the meta object compiler and the ui compiler in the PATH, dnl in $QTDIR/bin, and some more usual places @@ -279,10 +301,21 @@ KDE_FIND_PATH(moc, MOC, [$qt_bindirs], [KDE_MOC_ERROR_MESSAGE]) if test -z "$UIC_NOT_NEEDED"; then - KDE_FIND_PATH(uic, UIC, [$qt_bindirs], [UIC=""]) - if test -z "$UIC" ; then + KDE_FIND_PATH(uic, UIC_PATH, [$qt_bindirs], [UIC_PATH=""]) + if test -z "$UIC_PATH" ; then KDE_UIC_ERROR_MESSAGE exit 1 + elif test $kde_qtver = 3; then + KDE_CHECK_UIC_FLAG(L,[/nonexistant],ac_uic_supports_libpath=yes,ac_uic_supports_libpath=no) + KDE_CHECK_UIC_FLAG(nounload,,ac_uic_supports_nounload=yes,ac_uic_supports_nounload=no) + + UIC=$UIC_PATH + if test x$ac_uic_supports_libpath = xyes; then + UIC="$UIC -L \$(kde_widgetdir)" + fi + if test x$ac_uic_supports_nounload = xyes; then + UIC="$UIC -nounload" + fi fi else UIC="echo uic not available: " @@ -366,8 +399,10 @@ kde_servicesdir=\"$kde_servicesdir\" \ kde_servicetypesdir=\"$kde_servicetypesdir\" \ kde_moduledir=\"$kde_moduledir\" \ - kde_styledir=\"$kde_styledir\" \ + kde_styledir=\"$kde_styledir\" \ kde_widgetdir=\"$kde_widgetdir\" \ + xdg_appsdir=\"$xdg_appsdir\" \ + xdg_directorydir=\"$xdg_directorydir\" \ kde_result=$1" ]) @@ -422,16 +457,22 @@ fi if test -z "$kde_moduledir"; then if test "$kde_qtver" = "2"; then - kde_moduledir='\${exec_prefix}/lib/kde2' + kde_moduledir='\${libdir}/kde2' else - kde_moduledir='\${exec_prefix}/lib/kde3' + kde_moduledir='\${libdir}/kde3' fi fi if test -z "$kde_styledir"; then - kde_styledir='\${exec_prefix}/lib/kde3/plugins/styles' + kde_styledir='\${libdir}/kde3/plugins/styles' fi if test -z "$kde_widgetdir"; then - kde_widgetdir='\${exec_prefix}/lib/kde3/plugins/designer' + kde_widgetdir='\${libdir}/kde3/plugins/designer' + fi + if test -z "$xdg_appsdir"; then + xdg_appsdir='\${datadir}/applications' + fi + if test -z "$xdg_directorydir"; then + xdg_directorydir='\${datadir}/desktop-directories' fi KDE_SET_PATHS(defaults) @@ -457,7 +498,8 @@ test -z "$kde_wallpaperdir" || test -z "$kde_templatesdir" || test -z "$kde_bindir" || test -z "$kde_servicesdir" || test -z "$kde_servicetypesdir" || test -z "$kde_moduledir" || - test -z "$kde_styledir" || test -z "kde_widgetdir" + test -z "$kde_styledir" || test -z "kde_widgetdir" || + test -z "$xdg_appsdir" || test -z "xdg_directorydir" test "x$kde_have_all_paths" != "xyes"; then kde_have_all_paths=no fi @@ -470,10 +512,24 @@ ]) ]) +AC_DEFUN(KDE_MISSING_ARTS_ERROR, +[ + AC_MSG_ERROR([The important program $1 was not found! +Please check whether you installed aRts correctly. +]) +]) + AC_DEFUN(KDE_SUBST_PROGRAMS, [ + AC_ARG_WITH(arts, + [ --without-arts build without aRts [default=detect] ], + [build_arts=$withval], + [build_arts=yes] + ) + AM_CONDITIONAL(include_ARTS, test "$build_arts" != "no") kde_default_bindirs="/usr/bin /usr/local/bin /opt/local/bin /usr/X11R6/bin /opt/kde/bin /opt/kde3/bin /usr/kde/bin /usr/local/kde/bin" + test -n "$KDEDIR" && kde_default_bindirs="$KDEDIR/bin $kde_default_bindirs" if test -n "$KDEDIRS"; then kde_save_IFS=$IFS IFS=: @@ -485,11 +541,13 @@ kde_default_bindirs="$exec_prefix/bin $prefix/bin $kde_default_bindirs" KDE_FIND_PATH(dcopidl, DCOPIDL, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl)]) KDE_FIND_PATH(dcopidl2cpp, DCOPIDL2CPP, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl2cpp)]) - KDE_FIND_PATH(mcopidl, MCOPIDL, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(mcopidl)]) - KDE_FIND_PATH(artsc-config, ARTSCCONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(artsc-config)]) + if test "$build_arts" != "no"; then + KDE_FIND_PATH(mcopidl, MCOPIDL, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(mcopidl)]) + KDE_FIND_PATH(artsc-config, ARTSCCONFIG, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(artsc-config)]) + fi KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs]) KDE_FIND_PATH(meinproc, MEINPROC, [$kde_default_bindirs]) - + if test -n "$MEINPROC" && test ! "$MEINPROC" = "compiled"; then kde_sharedirs="/usr/share/kde /usr/local/share /usr/share /opt/kde3/share /opt/kde/share $prefix/share" test -n "$KDEDIR" && kde_sharedirs="$KDEDIR/share $kde_sharedirs" @@ -508,6 +566,7 @@ AC_SUBST(MCOPIDL) AC_SUBST(ARTSCCONFIG) AC_SUBST(KDECONFIG) + AC_SUBST(BROCKENBORING) AC_SUBST(MEINPROC) AC_SUBST(KDE_XSL_STYLESHEET) @@ -552,6 +611,7 @@ kde_have_all_paths= kde_styledir= kde_widgetdir= + xdg_appsdir = xdg_directorydir= KDE_SET_DEFAULT_PATHS($1) eval "$kde_cv_all_paths" KDE_CHECK_PATHS_FOR_COMPLETENESS @@ -587,11 +647,15 @@ AC_SUBST(kde_mimedir) AC_SUBST(kde_wallpaperdir) AC_SUBST(kde_bindir) +dnl X Desktop Group standards +AC_SUBST(xdg_appsdir) +AC_SUBST(xdg_directorydir) dnl for KDE 2 AC_SUBST(kde_templatesdir) AC_SUBST(kde_servicesdir) AC_SUBST(kde_servicetypesdir) AC_SUBST(kde_moduledir) +AC_SUBST(kdeinitdir, '$(kde_moduledir)') AC_SUBST(kde_styledir) AC_SUBST(kde_widgetdir) if test "$kde_qtver" = 1; then @@ -652,27 +716,23 @@ AC_CHECK_FUNC(shmat, , AC_CHECK_LIB(ipc, shmat, X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc")) - # Solaris 2.6 and others need -lresolv for res_init - AC_CHECK_FUNCS(res_init, , [ - kde_libs_safe="$LIBS" - LIBS="$LIBS $X_EXTRA_LIBS -lresolv" - AC_TRY_LINK( -[ -#include <resolv.h> -], -[ -res_init(); -], - LIBRESOLV="-lresolv" - X_EXTRA_LIBS="$X_EXTRA_LIBS $LIBRESOLV" - AC_DEFINE(HAVE_RES_INIT, 1, [Define if you have the res_init function]) - ) - LIBS=$kde_libs_safe + # more headers that need to be explicitly included on darwin + AC_CHECK_HEADERS(sys/types.h stdint.h) + + # darwin requires a poll emulation library + AC_CHECK_LIB(poll, poll, LIB_POLL="-lpoll") + + # CoreAudio framework + AC_CHECK_HEADER(CoreAudio/CoreAudio.h, [ + AC_DEFINE(HAVE_COREAUDIO, 1, [Define if you have the CoreAudio API]) + FRAMEWORK_COREAUDIO="-Xlinker -framework -Xlinker CoreAudio" ]) + AC_CHECK_RES_INIT + AC_SUBST(LIB_POLL) + AC_SUBST(FRAMEWORK_COREAUDIO) LIBSOCKET="$X_EXTRA_LIBS" AC_SUBST(LIBSOCKET) - AC_SUBST(LIBRESOLV) AC_SUBST(X_EXTRA_LIBS) AC_CHECK_LIB(ucb, killpg, [LIBUCB="-lucb"]) dnl for Solaris2.4 AC_SUBST(LIBUCB) @@ -688,6 +748,58 @@ KDE_CHECK_TYPES KDE_CHECK_LIBDL + KDE_CHECK_STRLCPY + +# darwin needs this to initialize the environment +AC_CHECK_HEADERS(crt_externs.h) +AC_CHECK_FUNC(_NSGetEnviron, [AC_DEFINE(HAVE_NSGETENVIRON, 1, [Define if your system needs _NSGetEnviron to set up the environment])]) + +AH_VERBATIM(_DARWIN_ENVIRON, +[ +#if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H) +# include <sys/time.h> +# include <crt_externs.h> +# define environ (*_NSGetEnviron()) +#endif +]) + +AH_VERBATIM(_AIX_STRINGS_H_BZERO, +[ +/* + * AIX defines FD_SET in terms of bzero, but fails to include <strings.h> + * that defines bzero. + */ + +#if defined(_AIX) +#include <strings.h> +#endif +]) + +AC_CHECK_FUNCS([vsnprintf snprintf]) + +AH_VERBATIM(_TRU64,[ +/* + * On HP-UX, the declaration of vsnprintf() is needed every time ! + */ + +#if !defined(HAVE_VSNPRINTF) || defined(hpux) +#if __STDC__ +#include <stdarg.h> +#include <stdlib.h> +#else +#include <varargs.h> +#endif +#ifdef __cplusplus +extern "C" +#endif +int vsnprintf(char *str, size_t n, char const *fmt, va_list ap); +#ifdef __cplusplus +extern "C" +#endif +int snprintf(char *str, size_t n, char const *fmt, ...); +#endif +]) + ]) dnl ------------------------------------------------------------------------ @@ -698,6 +810,7 @@ AC_DEFUN(K_PATH_X, [ AC_REQUIRE([KDE_MISC_TESTS])dnl +AC_REQUIRE([KDE_CHECK_LIB64]) AC_ARG_ENABLE( embedded, @@ -708,12 +821,19 @@ AC_ARG_ENABLE( qtopia, - [ --enable-qtopia link to Qt-embedded, link to the Qtopia Environment], + [ --enable-qtopia link to Qt-embedded, link to the Qtopia Environment], kde_use_qt_emb_palm=$enableval, kde_use_qt_emb_palm=no ) -if test "$kde_use_qt_emb" = "no"; then +AC_ARG_ENABLE( + mac, + [ --enable-mac link to Qt/Mac (don't use X)], + kde_use_qt_mac=$enableval, + kde_use_qt_mac=no +) + +if test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no"; then AC_MSG_CHECKING(for X) AC_LANG_SAVE @@ -755,7 +875,7 @@ ac_x_includes="." fi if test -z "$ac_x_libraries"; then - ac_x_libraries="/usr/lib" + ac_x_libraries="/usr/lib${kdelibsuff}" fi esac #from now on we use our own again @@ -811,11 +931,6 @@ all_includes="$X_INCLUDES" all_libraries="$X_LDFLAGS" -AC_SUBST(X_INCLUDES) -AC_SUBST(X_LDFLAGS) -AC_SUBST(x_libraries) -AC_SUBST(x_includes) - # Check for libraries that X11R6 Xt/Xaw programs need. ac_save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $X_LDFLAGS" @@ -827,13 +942,9 @@ # --interran@uluru.Stanford.EDU, kb@cs.umb.edu. AC_CHECK_LIB(ICE, IceConnectionNumber, [LIBSM="-lSM -lICE"], , $X_EXTRA_LIBS) -AC_SUBST(LIBSM) LDFLAGS="$ac_save_LDFLAGS" -AC_SUBST(X_PRE_LIBS) - LIB_X11='-lX11 $(LIBSOCKET)' -AC_SUBST(LIB_X11) AC_MSG_CHECKING(for libXext) AC_CACHE_VAL(kde_cv_have_libXext, @@ -855,11 +966,11 @@ ], kde_cv_have_libXext=yes, kde_cv_have_libXext=no - ) +) LDFLAGS=$kde_ldflags_safe LIBS=$kde_libs_safe - ]) +]) AC_MSG_RESULT($kde_cv_have_libXext) @@ -869,82 +980,49 @@ them either.]) fi -AC_MSG_CHECKING(for Xinerama) - - AC_ARG_WITH(xinerama, - [ --with-xinerama enable support for Xinerama ], - [ - no_xinerama=no - ], [ - no_xinerama=yes - ] -) - -kde_save_LDFLAGS="$LDFLAGS" -kde_save_CFLAGS="$CFLAGS" -kde_save_LIBS="$LIBS" -LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS" -CFLAGS="$CFLAGS -I$x_includes" -LIBS="-lXinerama -lXext" - -if test "x$no_xinerama" = "xno"; then - - AC_CACHE_VAL(ac_cv_have_xinerama, - [ - AC_TRY_LINK([#include <X11/Xlib.h> - #include <X11/extensions/Xinerama.h>], - [XineramaIsActive(NULL);], - [ac_cv_have_xinerama="yes"], - [ac_cv_have_xinerama="no"]) - ]) -else - ac_cv_have_xinerama=no; -fi - -AC_MSG_RESULT($ac_cv_have_xinerama) - -LIBXINERAMA="" - -if test "$ac_cv_have_xinerama" = "yes"; then - AC_DEFINE(HAVE_XINERAMA, 1, [Define if you want Xinerama support]) - LIBXINERAMA="-lXinerama" -fi - -AC_SUBST(LIBXINERAMA) - -LDFLAGS="$kde_save_LDFLAGS" -CFLAGS="$kde_save_CFLAGS" -LIBS="$kde_save_LIBS" - LIB_XEXT="-lXext" QTE_NORTTI="" -else +elif test "$kde_use_qt_emb" = "yes"; then dnl We're using QT Embedded - CXXFLAGS="$CXXFLAGS -fno-rtti -DQWS" - CFLAGS="$CFLAGS -DQWS" - LDFLAGS="$LDFLAGS -DQWS" + CPPFLAGS=-DQWS + CXXFLAGS="$CXXFLAGS -fno-rtti" QTE_NORTTI="-fno-rtti -DQWS" X_PRE_LIBS="" LIB_X11="" LIB_XEXT="" + LIB_XRENDER="" LIBSM="" X_INCLUDES="" X_LDFLAGS="" x_includes="" x_libraries="" - AC_SUBST(X_PRE_LIBS) - AC_SUBST(LIB_X11) - AC_SUBST(LIBSM) - AC_SUBST(X_INCLUDES) - AC_SUBST(X_LDFLAGS) - AC_SUBST(x_includes) - AC_SUBST(x_libraries) +elif test "$kde_use_qt_mac" = "yes"; then + dnl We're using QT/Mac (I use QT_MAC so that qglobal.h doesn't *have* to + dnl be included to get the information) --Sam + CXXFLAGS="$CXXFLAGS -DQT_MAC -no-cpp-precomp" + CFLAGS="$CFLAGS -DQT_MAC -no-cpp-precomp" + X_PRE_LIBS="" + LIB_X11="" + LIB_XEXT="" + LIB_XRENDER="" + LIBSM="" + X_INCLUDES="" + X_LDFLAGS="" + x_includes="" + x_libraries="" fi +AC_SUBST(X_PRE_LIBS) +AC_SUBST(LIB_X11) +AC_SUBST(LIB_XRENDER) +AC_SUBST(LIBSM) +AC_SUBST(X_INCLUDES) +AC_SUBST(X_LDFLAGS) +AC_SUBST(x_includes) +AC_SUBST(x_libraries) AC_SUBST(QTE_NORTTI) AC_SUBST(LIB_XEXT) - AC_LANG_RESTORE ]) @@ -966,7 +1044,9 @@ if test $kde_qtsubver -gt 0; then cat >> conftest.$ac_ext <<EOF -#include <qiconview.h> +#if QT_VERSION < 210 +#error 1 +#endif EOF fi fi @@ -993,8 +1073,6 @@ EOF if test $kde_qtsubver -gt 0; then cat >> conftest.$ac_ext <<EOF - QIconView iv(0); - iv.setWordWrapIconText(false); QString s; s.setLatin1("Elvis is alive", 14); EOF @@ -1015,11 +1093,12 @@ AC_DEFUN(KDE_USE_QT, [ if test -z "$1"; then + # Current default Qt version: 3.1 kde_qtver=3 kde_qtsubver=1 else kde_qtsubver=`echo "$1" | sed -e 's#[0-9][0-9]*\.\([0-9][0-9]*\).*#\1#'` - # following is the check if subversion isnīt found in passed argument + # following is the check if subversion isnt found in passed argument if test "$kde_qtsubver" = "$1"; then kde_qtsubver=1 fi @@ -1038,7 +1117,11 @@ fi fi if test "$kde_qtver" = "3"; then - kde_qt_minversion=">= Qt 3.0.1" + if test $kde_qtsubver -gt 0; then + kde_qt_minversion=">= Qt 3.1 (20021021)" + else + kde_qt_minversion=">= Qt 3.0" + fi fi if test "$kde_qtver" = "1"; then kde_qt_minversion=">= 1.42 and < 2.0" @@ -1049,7 +1132,11 @@ if test -z "$3"; then if test $kde_qtver = 3; then - kde_qt_verstring="QT_VERSION >= 301" + if test $kde_qtsubver -gt 0; then + kde_qt_verstring="QT_VERSION >= 0x030100" + else + kde_qt_verstring="QT_VERSION >= 300" + fi fi if test $kde_qtver = 2; then if test $kde_qtsubver -gt 0; then @@ -1066,7 +1153,7 @@ fi if test $kde_qtver = 3; then - kde_qt_dirs="$QTDIR /usr/lib/qt3 /usr/lib/qt" + kde_qt_dirs="$QTDIR /usr/lib/qt3 /usr/lib/qt /usr/share/qt3" fi if test $kde_qtver = 2; then kde_qt_dirs="$QTDIR /usr/lib/qt2 /usr/lib/qt" @@ -1092,7 +1179,7 @@ CXXFLAGS="$CXXFLAGS -I$qt_includes" LDFLAGS="$LDFLAGS $X_LDFLAGS" -if test "x$kde_use_qt_emb" != "xyes"; then +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then LIBS="$LIBQT -lXext -lX11 $LIBSOCKET" else LIBS="$LIBQT $LIBSOCKET" @@ -1143,6 +1230,7 @@ [ AC_REQUIRE([K_PATH_X]) AC_REQUIRE([KDE_USE_QT]) +AC_REQUIRE([KDE_CHECK_LIB64]) dnl ------------------------------------------------------------------------ dnl Add configure flag to enable linking to MT version of Qt library. @@ -1258,7 +1346,7 @@ AC_MSG_CHECKING([for Qt]) -if test "x$kde_use_qt_emb" != "xyes"; then +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then LIBQT="$LIBQT $X_PRE_LIBS -lXext -lX11 $LIBSM $LIBSOCKET" fi ac_qt_includes=NO ac_qt_libraries=NO ac_qt_bindir=NO @@ -1267,7 +1355,7 @@ AC_ARG_WITH(qt-dir, [ --with-qt-dir=DIR where the root of Qt is installed ], [ ac_qt_includes="$withval"/include - ac_qt_libraries="$withval"/lib + ac_qt_libraries="$withval"/lib${kdelibsuff} ac_qt_bindir="$withval"/bin ]) @@ -1292,7 +1380,7 @@ for dir in $kde_qt_dirs; do qt_incdirs="$qt_incdirs $dir/include $dir" done -qt_incdirs="$QTINC $qt_incdirs /usr/local/qt/include /usr/include/qt /usr/include /usr/X11R6/include/X11/qt /usr/X11R6/include/qt /usr/X11R6/include/qt2 $x_includes" +qt_incdirs="$QTINC $qt_incdirs /usr/local/qt/include /usr/include/qt /usr/include /usr/X11R6/include/X11/qt /usr/X11R6/include/qt /usr/X11R6/include/qt2 /usr/include/qt3 $x_includes" if test ! "$ac_qt_includes" = "NO"; then qt_incdirs="$ac_qt_includes $qt_incdirs" fi @@ -1308,7 +1396,7 @@ qt_libdirs="" for dir in $kde_qt_dirs; do - qt_libdirs="$qt_libdirs $dir/lib $dir" + qt_libdirs="$qt_libdirs $dir/lib${kdelibsuff} $dir" done qt_libdirs="$QTLIB $qt_libdirs /usr/X11R6/lib /usr/lib /usr/local/qt/lib $x_libraries" if test ! "$ac_qt_libraries" = "NO"; then @@ -1322,6 +1410,12 @@ if test -n "`$try 2> /dev/null`"; then qt_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi done fi +for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do + if test -e "$a"; then + LIBQT="$LIBQT ${kde_int_qt}_incremental" + break + fi +done ac_qt_libraries="$qt_libdir" @@ -1417,12 +1511,20 @@ AC_SUBST(QT_LDFLAGS) AC_PATH_QT_MOC_UIC -if test "x$kde_use_qt_emb" != "xyes"; then -LIB_QT="$kde_int_qt "'$(LIBPNG) $(LIBJPEG) -lXext $(LIB_X11) $(LIBSM)' +KDE_CHECK_QT_JPEG + +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG) -lXext $(LIB_X11) $(LIBSM)' else -LIB_QT="$kde_int_qt "'$(LIBPNG) $(LIBJPEG)' +LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG)' fi test -z "$KDE_MT_LIBS" || LIB_QT="$LIB_QT $KDE_MT_LIBS" +for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do + if test -e "$a"; then + LIB_QT="$LIB_QT ${kde_int_qt}_incremental" + break + fi +done AC_SUBST(LIB_QT) AC_SUBST(LIB_QPE) @@ -1435,12 +1537,56 @@ AC_PATH_QT_1_3 ]) +AC_DEFUN(KDE_CHECK_UIC_PLUGINS, +[ +AC_REQUIRE([AC_PATH_QT_MOC_UIC]) + +if test x$ac_uic_supports_libpath = xyes; then + +AC_MSG_CHECKING([if UIC has KDE plugins available]) +AC_CACHE_VAL(kde_cv_uic_plugins, +[ +cat > actest.ui << EOF +<!DOCTYPE UI><UI version="3.0" stdsetdef="1"> +<class>NewConnectionDialog</class> +<widget class="QDialog"> + <widget class="KLineEdit"> + <property name="name"> + <cstring>testInput</cstring> + </property> + </widget> +</widget> +</UI> +EOF + + + +kde_cv_uic_plugins=no +kde_line="$UIC_PATH -L $kde_widgetdir" +if test x$ac_uic_supports_nounload = xyes; then + kde_line="$kde_line -nounload" +fi +kde_line="$kde_line -impl actest.h actest.ui > actest.cpp" +if AC_TRY_EVAL(kde_line); then + if test -f actest.cpp && grep klineedit actest.cpp > /dev/null; then + kde_cv_uic_plugins=yes + fi +fi +rm -f actest.ui actest.cpp +]) + +AC_MSG_RESULT([$kde_cv_uic_plugins]) +if test "$kde_cv_uic_plugins" != yes; then + AC_MSG_ERROR([you need to install kdelibs first.]) +fi +fi +]) + AC_DEFUN(KDE_CHECK_FINAL, [ AC_ARG_ENABLE(final, [ --enable-final build size optimized apps (experimental - needs lots of memory)], kde_use_final=$enableval, kde_use_final=no) - KDE_COMPILER_REPO if test "x$kde_use_final" = "xyes"; then KDE_USE_FINAL_TRUE="" KDE_USE_FINAL_FALSE="#" @@ -1450,10 +1596,14 @@ fi AC_SUBST(KDE_USE_FINAL_TRUE) AC_SUBST(KDE_USE_FINAL_FALSE) - +]) + +AC_DEFUN(KDE_CHECK_CLOSURE, +[ AC_ARG_ENABLE(closure, [ --disable-closure don't delay template instantiation], kde_use_closure=$enableval, kde_use_closure=yes) + KDE_NO_UNDEFINED="" if test "x$kde_use_closure" = "xyes"; then KDE_USE_CLOSURE_TRUE="" KDE_USE_CLOSURE_FALSE="#" @@ -1461,11 +1611,34 @@ else KDE_USE_CLOSURE_TRUE="#" KDE_USE_CLOSURE_FALSE="" + KDE_CHECK_COMPILER_FLAG([Wl,--no-undefined], + [KDE_CHECK_COMPILER_FLAG([Wl,--allow-shlib-undefined], + [KDE_NO_UNDEFINED="-Wl,--no-undefined -Wl,--allow-shlib-undefined"], + [KDE_NO_UNDEFINED=""])], + [KDE_NO_UNDEFINED=""]) fi AC_SUBST(KDE_USE_CLOSURE_TRUE) AC_SUBST(KDE_USE_CLOSURE_FALSE) + AC_SUBST(KDE_NO_UNDEFINED) ]) +AC_DEFUN(KDE_CHECK_NMCHECK, +[ + AC_ARG_ENABLE(nmcheck, [ --enable-nmcheck enable automatic namespace cleanness check], + kde_use_nmcheck=$enableval, kde_use_nmcheck=no) + + if test "$kde_use_nmcheck" = "yes"; then + KDE_USE_NMCHECK_TRUE="" + KDE_USE_NMCHECK_FALSE="#" + else + KDE_USE_NMCHECK_TRUE="#" + KDE_USE_NMCHECK_FALSE="" + fi + AC_SUBST(KDE_USE_NMCHECK_TRUE) + AC_SUBST(KDE_USE_NMCHECK_FALSE) +]) + + dnl ------------------------------------------------------------------------ dnl Now, the same with KDE dnl $(KDE_LDFLAGS) will be the kdeliblocation (if needed) @@ -1476,6 +1649,8 @@ [ AC_PREREQ([2.13]) AC_REQUIRE([AC_PATH_QT])dnl +AC_REQUIRE([KDE_CHECK_LIB64]) + AC_CHECK_RPATH AC_MSG_CHECKING([for KDE]) @@ -1484,11 +1659,14 @@ ac_kde_includes=$prefix/include if test "${exec_prefix}" != NONE; then - kde_libraries=${exec_prefix}/lib - ac_kde_libraries=$exec_prefix/lib + kde_libraries=${libdir} + ac_kde_libraries=$libdir + if test "$ac_kde_libraries" = '${exec_prefix}/lib'${kdelibsuff}; then + ac_kde_libraries=$exec_prefix/lib${kdelibsuff} + fi else - kde_libraries=${prefix}/lib - ac_kde_libraries=$prefix/lib + kde_libraries=${prefix}/lib${kdelibsuff} + ac_kde_libraries=$prefix/lib${kdelibsuff} fi else ac_kde_includes= @@ -1522,20 +1700,34 @@ So, check this please and use another prefix!]) fi -kde_libdirs="/usr/lib/kde/lib /usr/local/kde/lib /usr/kde/lib /usr/lib/kde /usr/lib/kde3 /usr/lib /usr/X11R6/lib /usr/local/lib /opt/kde3/lib /opt/kde/lib /usr/X11R6/kde/lib" -test -n "$KDEDIR" && kde_libdirs="$KDEDIR/lib $KDEDIR $kde_libdirs" -kde_libdirs="$ac_kde_libraries $kde_libdirs" +kde_libdirs="/usr/lib/kde/lib${kdelibsuff} /usr/local/kde/lib${kdelibsuff} /usr/kde/lib${kdelibsuff} /usr/lib${kdelibsuff}/kde /usr/lib${kdelibsuff}/kde3 /usr/lib${kdelibsuff} /usr/X11R6/lib${kdelibsuff} /usr/local/lib${kdelibsuff} /opt/kde3/lib${kdelibsuff} /opt/kde/lib${kdelibsuff} /usr/X11R6/kde/lib${kdelibsuff}" +test -n "$KDEDIR" && kde_libdirs="$KDEDIR/lib${kdelibsuff} $KDEDIR $kde_libdirs" +kde_libdirs="$ac_kde_libraries $libdir $kde_libdirs" AC_FIND_FILE($kde_check_lib, $kde_libdirs, kde_libdir) ac_kde_libraries="$kde_libdir" +kde_widgetdir=NO +dnl this might be somewhere else +AC_FIND_FILE("kde3/plugins/designer/kdewidgets.la", $kde_libdirs, kde_widgetdir) + if test -n "$ac_kde_libraries" && test ! -r "$ac_kde_libraries/$kde_check_lib"; then AC_MSG_ERROR([ in the prefix, you've chosen, are no KDE libraries installed. This will fail. So, check this please and use another prefix!]) fi -ac_kde_libraries="$kde_libdir" - -if test "$ac_kde_includes" = NO || test "$ac_kde_libraries" = NO; then + +if test -n "$kde_widgetdir" && test ! -r "$kde_widgetdir/kde3/plugins/designer/kdewidgets.la"; then +AC_MSG_ERROR([ +I can't find the designer plugins. These are required and should have been installed +by kdelibs]) +fi + +if test -n "$kde_widgetdir"; then + kde_widgetdir="$kde_widgetdir/kde3/plugins/designer" +fi + + +if test "$ac_kde_includes" = NO || test "$ac_kde_libraries" = NO || test "$kde_widgetdir" = NO; then ac_cv_have_kde="have_kde=no" else ac_cv_have_kde="have_kde=yes \ @@ -1565,7 +1757,7 @@ AC_MSG_RESULT([will be installed in $ac_kde_prefix and $ac_kde_exec_prefix]) fi - kde_libraries="${ac_kde_exec_prefix}/lib" + kde_libraries="${libdir}" kde_includes=${ac_kde_prefix}/include else @@ -1585,6 +1777,8 @@ KDE_INCLUDES="-I$kde_includes" all_includes="$KDE_INCLUDES $all_includes" fi + +KDE_DEFAULT_CXXFLAGS="-DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION" KDE_LDFLAGS="-L$kde_libraries" if test ! "$kde_libraries" = "$x_libraries" && test ! "$kde_libraries" = "$qt_libraries" ; then @@ -1601,7 +1795,15 @@ AC_SUBST(all_includes) AC_SUBST(all_libraries) +if test -z "$1"; then +KDE_CHECK_UIC_PLUGINS +fi + +ac_kde_libraries="$kde_libdir" + AC_SUBST(AUTODIRS) + + ]) AC_DEFUN(KDE_CHECK_EXTRA_LIBS, @@ -1692,6 +1894,8 @@ printf("kde_moduledir=\\"/tmp/dummy\\"\n"); printf("kde_styledir=\\"/tmp/dummy\\"\n"); printf("kde_widgetdir=\\"/tmp/dummy\\"\n"); + printf("xdg_appsdir=\\"/tmp/dummy\\"\n"); + printf("xdg_directorydir=\\"/tmp/dummy\\"\n"); return 0; } EOF @@ -1733,7 +1937,7 @@ LDFLAGS=$kde_ldflags_safe LIBS=$kde_libs_safe - kde_cxxflags_safe="$CXXFLAGS" + CXXFLAGS=$kde_cxxflags_safe ]) AC_MSG_RESULT($kde_cv_have_kdeqtaddon) @@ -1751,6 +1955,7 @@ AC_REQUIRE([AC_FIND_TIFF]) AC_REQUIRE([AC_FIND_JPEG]) AC_REQUIRE([AC_FIND_PNG]) + AC_REQUIRE([AC_FIND_JASPER]) AC_REQUIRE([KDE_CREATE_LIBS_ALIASES]) if test "$1" = "existance"; then @@ -1781,63 +1986,37 @@ AC_REQUIRE([K_PATH_X]) if test $kde_qtver = 3; then - LIB_KDECORE='-lkdecore' - AC_SUBST(LIB_KDECORE) - LIB_KDEUI='-lkdeui' - AC_SUBST(LIB_KDEUI) - LIB_KIO='-lkio' - AC_SUBST(LIB_KIO) - LIB_SMB='-lsmb' - AC_SUBST(LIB_SMB) - LIB_KAB='-lkab' - AC_SUBST(LIB_KAB) - LIB_KHTML='-lkhtml' - AC_SUBST(LIB_KHTML) - LIB_KSPELL='-lkspell' - AC_SUBST(LIB_KSPELL) - LIB_KPARTS='-lkparts' - AC_SUBST(LIB_KPARTS) - LIB_KDEPRINT='-lkdeprint' - AC_SUBST(LIB_KDEPRINT) + AC_SUBST(LIB_KDECORE, "-lkdecore") + AC_SUBST(LIB_KDEUI, "-lkdeui") + AC_SUBST(LIB_KIO, "-lkio") + AC_SUBST(LIB_SMB, "-lsmb") + AC_SUBST(LIB_KAB, "-lkab") + AC_SUBST(LIB_KABC, "-lkabc") + AC_SUBST(LIB_KHTML, "-lkhtml") + AC_SUBST(LIB_KSPELL, "-lkspell") + AC_SUBST(LIB_KPARTS, "-lkparts") + AC_SUBST(LIB_KDEPRINT, "-lkdeprint") # these are for backward compatibility - LIB_KSYCOCA='-lkio' - AC_SUBST(LIB_KSYCOCA) - LIB_KFILE='-lkio' - AC_SUBST(LIB_KFILE) + AC_SUBST(LIB_KSYCOCA, "-lkio") + AC_SUBST(LIB_KFILE, "-lkio") elif test $kde_qtver = 2; then - LIB_KDECORE='-lkdecore' - AC_SUBST(LIB_KDECORE) - LIB_KDEUI='-lkdeui' - AC_SUBST(LIB_KDEUI) - LIB_KIO='-lkio' - AC_SUBST(LIB_KIO) - LIB_KSYCOCA='-lksycoca' - AC_SUBST(LIB_KSYCOCA) - LIB_SMB='-lsmb' - AC_SUBST(LIB_SMB) - LIB_KFILE='-lkfile' - AC_SUBST(LIB_KFILE) - LIB_KAB='-lkab' - AC_SUBST(LIB_KAB) - LIB_KHTML='-lkhtml' - AC_SUBST(LIB_KHTML) - LIB_KSPELL='-lkspell' - AC_SUBST(LIB_KSPELL) - LIB_KPARTS='-lkparts' - AC_SUBST(LIB_KPARTS) - LIB_KDEPRINT='-lkdeprint' - AC_SUBST(LIB_KDEPRINT) + AC_SUBST(LIB_KDECORE, "-lkdecore") + AC_SUBST(LIB_KDEUI, "-lkdeui") + AC_SUBST(LIB_KIO, "-lkio") + AC_SUBST(LIB_KSYCOCA, "-lksycoca") + AC_SUBST(LIB_SMB, "-lsmb") + AC_SUBST(LIB_KFILE, "-lkfile") + AC_SUBST(LIB_KAB, "-lkab") + AC_SUBST(LIB_KHTML, "-lkhtml") + AC_SUBST(LIB_KSPELL, "-lkspell") + AC_SUBST(LIB_KPARTS, "-lkparts") + AC_SUBST(LIB_KDEPRINT, "-lkdeprint") else - LIB_KDECORE='-lkdecore -lXext $(LIB_QT)' - AC_SUBST(LIB_KDECORE) - LIB_KDEUI='-lkdeui $(LIB_KDECORE)' - AC_SUBST(LIB_KDEUI) - LIB_KFM='-lkfm $(LIB_KDECORE)' - AC_SUBST(LIB_KFM) - LIB_KFILE='-lkfile $(LIB_KFM) $(LIB_KDEUI)' - AC_SUBST(LIB_KFILE) - LIB_KAB='-lkab $(LIB_KIMGIO) $(LIB_KDECORE)' - AC_SUBST(LIB_KAB) + AC_SUBST(LIB_KDECORE, "-lkdecore -lXext $(LIB_QT)") + AC_SUBST(LIB_KDEUI, "-lkdeui $(LIB_KDECORE)") + AC_SUBST(LIB_KFM, "-lkfm $(LIB_KDECORE)") + AC_SUBST(LIB_KFILE, "-lkfile $(LIB_KFM) $(LIB_KDEUI)") + AC_SUBST(LIB_KAB, "-lkab $(LIB_KIMGIO) $(LIB_KDECORE)") fi ]) @@ -1865,203 +2044,294 @@ KDE_CREATE_LIBS_ALIASES ]) -dnl obsolete -AC_DEFUN(AC_CHECK_SETENV, +dnl KDE_CHECK_FUNC_EXT(<func>, [headers], [sample-use], [C prototype], [autoheader define], [call if found]) +AC_DEFUN(KDE_CHECK_FUNC_EXT, [ - AC_OBSOLETE([$0], [; instead use AC_CHECK_FUNCS([setenv unsetenv])])dnl - AC_CHECK_FUNCS([setenv unsetenv]) -]) - -AC_DEFUN(AC_CHECK_GETDOMAINNAME, -[ -AC_MSG_CHECKING(for getdomainname) -AC_CACHE_VAL(ac_cv_func_getdomainname, +AC_MSG_CHECKING(for $1) +AC_CACHE_VAL(kde_cv_func_$1, [ AC_LANG_SAVE AC_LANG_CPLUSPLUS save_CXXFLAGS="$CXXFLAGS" kde_safe_LIBS="$LIBS" LIBS="$LIBS $X_EXTRA_LIBS" -if test "$GCC" = "yes"; then +if test "$GXX" = "yes"; then CXXFLAGS="$CXXFLAGS -pedantic-errors" fi AC_TRY_COMPILE([ +$2 +], +[ +$3 +], +kde_cv_func_$1=yes, +kde_cv_func_$1=no) +CXXFLAGS="$save_CXXFLAGS" +LIBS="$kde_safe_LIBS" +AC_LANG_RESTORE +]) + +AC_MSG_RESULT($kde_cv_func_$1) + +AC_MSG_CHECKING([if $1 needs custom prototype]) +AC_CACHE_VAL(kde_cv_proto_$1, +[ +if test "x$kde_cv_func_$1" = xyes; then + kde_cv_proto_$1=no +else + case "$1" in + setenv|unsetenv|usleep|random|srandom|seteuid|mkstemps|mkstemp|revoke|vsnprintf|strlcpy|strlcat) + kde_cv_proto_$1="yes - in libkdefakes" + ;; + *) + kde_cv_proto_$1=unknown + ;; + esac +fi + +if test "x$kde_cv_proto_$1" = xunknown; then + +AC_LANG_SAVE +AC_LANG_CPLUSPLUS + kde_safe_libs=$LIBS + LIBS="$LIBS $X_EXTRA_LIBS" + AC_TRY_LINK([ +$2 + +extern "C" $4; +], +[ +$3 +], +[ kde_cv_func_$1=yes + kde_cv_proto_$1=yes ], + [kde_cv_proto_$1="$1 unavailable"] +) +LIBS=$kde_safe_libs +AC_LANG_RESTORE +fi +]) +AC_MSG_RESULT($kde_cv_proto_$1) + +if test "x$kde_cv_func_$1" = xyes; then + AC_DEFINE(HAVE_$5, 1, [Define if you have $1]) + $6 +fi +if test "x$kde_cv_proto_$1" = xno; then + AC_DEFINE(HAVE_$5_PROTO, 1, + [Define if you have the $1 prototype]) +fi + +AH_VERBATIM([_HAVE_$5_PROTO], +[ +#if !defined(HAVE_$5_PROTO) +#ifdef __cplusplus +extern "C" +#endif +$4; +#endif +]) +]) + +AC_DEFUN(AC_CHECK_SETENV, +[ + KDE_CHECK_FUNC_EXT(setenv, [ +#include <stdlib.h> +], + [setenv("VAR", "VALUE", 1);], + [int setenv (const char *, const char *, int)], + [SETENV]) +]) + +AC_DEFUN(AC_CHECK_UNSETENV, +[ + KDE_CHECK_FUNC_EXT(unsetenv, [ +#include <stdlib.h> +], + [unsetenv("VAR");], + [void unsetenv (const char *)], + [UNSETENV]) +]) + +AC_DEFUN(AC_CHECK_GETDOMAINNAME, +[ + KDE_CHECK_FUNC_EXT(getdomainname, [ +#include <stdlib.h> +#include <unistd.h> +], + [ +char buffer[200]; +getdomainname(buffer, 200); +], + [int getdomainname (char *, size_t)], + [GETDOMAINNAME]) +]) + +AC_DEFUN(AC_CHECK_GETHOSTNAME, +[ + KDE_CHECK_FUNC_EXT(gethostname, [ +#include <stdlib.h> +#include <unistd.h> +], + [ +char buffer[200]; +gethostname(buffer, 200); +], + [int gethostname (char *, unsigned int)], + [GETHOSTNAME]) +]) + +AC_DEFUN(AC_CHECK_USLEEP, +[ + KDE_CHECK_FUNC_EXT(usleep, [ +#include <unistd.h> +], + [ +usleep(200); +], + [int usleep (unsigned int)], + [USLEEP]) +]) + + +AC_DEFUN(AC_CHECK_RANDOM, +[ + KDE_CHECK_FUNC_EXT(random, [ +#include <stdlib.h> +], + [ +random(); +], + [long int random(void)], + [RANDOM]) + + KDE_CHECK_FUNC_EXT(srandom, [ +#include <stdlib.h> +], + [ +srandom(27); +], + [void srandom(unsigned int)], + [SRANDOM]) + +]) + +AC_DEFUN(AC_CHECK_INITGROUPS, +[ + KDE_CHECK_FUNC_EXT(initgroups, [ +#include <sys/types.h> +#include <unistd.h> +#include <grp.h> +], + [ +char buffer[200]; +initgroups(buffer, 27); +], + [int initgroups(const char *, gid_t)], + [INITGROUPS]) +]) + +AC_DEFUN(AC_CHECK_MKSTEMPS, +[ + KDE_CHECK_FUNC_EXT(mkstemps, [ #include <stdlib.h> #include <unistd.h> ], + [ +mkstemps("/tmp/aaaXXXXXX", 6); +], + [int mkstemps(char *, int)], + [MKSTEMPS]) +]) + +AC_DEFUN(AC_CHECK_MKDTEMP, [ -char buffer[200]; -getdomainname(buffer, 200); -], -ac_cv_func_getdomainname=yes, -ac_cv_func_getdomainname=no) -CXXFLAGS="$save_CXXFLAGS" -LIBS=$kde_safe_LIBS -AC_LANG_RESTORE -]) -AC_MSG_RESULT($ac_cv_func_getdomainname) - -AC_MSG_CHECKING([if getdomainname needs custom prototype]) -AC_CACHE_VAL(ac_cv_proto_getdomainname, -[ -AC_LANG_SAVE -AC_LANG_CPLUSPLUS -if eval "test \"`echo $ac_cv_func_getdomainname`\" = yes"; then - ac_cv_proto_getdomainname=no -else - kde_safe_libs=$LIBS - LIBS="$LIBS $X_EXTRA_LIBS" - AC_TRY_LINK([ -#include <stdlib.h> -#include <unistd.h> - -extern "C" int getdomainname (char *, int); -], -[ -char buffer[200]; -getdomainname(buffer, 200); -], - ac_cv_func_getdomainname=yes - ac_cv_proto_getdomainname=yes, - AC_MSG_RESULT([fatal error]) - AC_MSG_ERROR([getdomainname unavailable])) -fi -LIBS=$kde_safe_libs -AC_LANG_RESTORE -]) -AC_MSG_RESULT($ac_cv_proto_getdomainname) - -if eval "test \"`echo $ac_cv_func_getdomainname`\" = yes"; then - AC_DEFINE(HAVE_GETDOMAINNAME, 1, [Define if you have getdomainname]) -fi -if eval "test \"`echo $ac_cv_proto_getdomainname`\" = no"; then - AC_DEFINE(HAVE_GETDOMAINNAME_PROTO, 1, - [Define if you have getdomainname prototype]) -fi - -]) - -AC_DEFUN(AC_CHECK_GETHOSTNAME, -[ - -AC_MSG_CHECKING([for gethostname]) -AC_CACHE_VAL(ac_cv_func_gethostname, -[ -AC_LANG_SAVE -AC_LANG_CPLUSPLUS -save_CXXFLAGS="$CXXFLAGS" -if test "$GCC" = "yes"; then -CXXFLAGS="$CXXFLAGS -pedantic-errors" -fi -AC_TRY_LINK([ + KDE_CHECK_FUNC_EXT(mkdtemp, [ #include <stdlib.h> #include <unistd.h> ], + [ +mkdtemp("/tmp/aaaXXXXXX"); +], + [char *mkdtemp(char *)], + [MKDTEMP]) +]) + + +AC_DEFUN(AC_CHECK_RES_INIT, [ -char buffer[200]; -gethostname(buffer, 200); + AC_MSG_CHECKING([if res_init needs -lresolv]) + kde_libs_safe="$LIBS" + LIBS="$LIBS $X_EXTRA_LIBS -lresolv" + AC_TRY_LINK( + [ +#include <sys/types.h> +#include <netinet/in.h> +#include <arpa/nameser.h> +#include <resolv.h> + ], + [ + res_init(); + ], + [ + LIBRESOLV="-lresolv" + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_RES_INIT, 1, [Define if you have the res_init function]) + ], + [ AC_MSG_RESULT(no) ] + ) + LIBS=$kde_libs_safe + AC_SUBST(LIBRESOLV) + + AC_MSG_CHECKING([if res_init is available]) + AC_TRY_COMPILE( + [ +#include <sys/types.h> +#include <netinet/in.h> +#include <arpa/nameser.h> +#include <resolv.h> + ], + [ + res_init(); + ], + [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_RES_INIT, 1, [Define if you have the res_init function]) + ], + [ AC_MSG_RESULT(no) ] + ) +]) + +AC_DEFUN(AC_CHECK_STRLCPY, +[ + KDE_CHECK_FUNC_EXT(strlcpy, [ +#include <string.h> ], -ac_cv_func_gethostname=yes, -ac_cv_func_gethostname=no) -CXXFLAGS="$save_CXXFLAGS" -AC_LANG_RESTORE +[ char buf[20]; + strlcpy(buf, "KDE function test", sizeof(buf)); +], + [unsigned long strlcpy(char*, const char*, unsigned long)], + [STRLCPY]) ]) -AC_MSG_RESULT($ac_cv_func_gethostname) - -AC_MSG_CHECKING([if gethostname needs custom prototype]) -AC_CACHE_VAL(ac_cv_proto_gethostname, + +AC_DEFUN(AC_CHECK_STRLCAT, [ -AC_LANG_SAVE -AC_LANG_CPLUSPLUS -if eval "test \"`echo $ac_cv_func_gethostname`\" = yes"; then - ac_cv_proto_gethostname=no -else - AC_TRY_LINK([ -#include <stdlib.h> -#include <unistd.h> - -extern "C" int gethostname (char *, int); + KDE_CHECK_FUNC_EXT(strlcat, [ +#include <string.h> ], -[ -char buffer[200]; -gethostname(buffer, 200); +[ char buf[20]; + buf[0]='\0'; + strlcat(buf, "KDE function test", sizeof(buf)); ], - ac_cv_func_gethostname=yes - ac_cv_proto_gethostname=yes, - AC_MSG_RESULT([fatal error]) - AC_MSG_ERROR(gethostname unavailable)) -fi -AC_LANG_RESTORE -]) -AC_MSG_RESULT($ac_cv_proto_gethostname) - -if eval "test \"`echo $ac_cv_proto_gethostname`\" = no"; then - AC_DEFINE(HAVE_GETHOSTNAME_PROTO, 1, - [Define if you have gethostname prototype]) -fi -if eval "test \"`echo $ac_cv_func_gethostname`\" = yes"; then - AC_DEFINE(HAVE_GETHOSTNAME, 1, [Define if you have gethostname]) -fi -]) - -AC_DEFUN(AC_CHECK_USLEEP, -[ -AC_MSG_CHECKING([for usleep]) -AC_CACHE_VAL(ac_cv_func_usleep, -[ -AC_LANG_SAVE -AC_LANG_CPLUSPLUS -ac_libs_safe="$LIBS" -LIBS="$LIBS $LIBUCB" -AC_TRY_LINK([ -#include <stdlib.h> -#include <unistd.h> -], -[ -usleep(200); -], -ac_cv_func_usleep=yes, -ac_cv_func_usleep=no) -LIBS="$ac_libs_safe" -AC_LANG_RESTORE -]) -AC_MSG_RESULT($ac_cv_func_usleep) -if eval "test \"`echo $ac_cv_func_usleep`\" = yes"; then - AC_DEFINE(HAVE_USLEEP, 1, [Define if you have the usleep function]) -fi -]) - -AC_DEFUN(AC_CHECK_RANDOM, -[ -AC_MSG_CHECKING([for random]) -AC_CACHE_VAL(ac_cv_func_random, -[ -AC_LANG_SAVE -AC_LANG_CPLUSPLUS -ac_libs_safe="$LIBS" -LIBS="$LIBS $LIBUCB" -AC_TRY_LINK([ -#include <stdlib.h> -], -[ -random(); -], -ac_cv_func_random=yes, -ac_cv_func_random=no) -LIBS="$ac_libs_safe" -AC_LANG_RESTORE -]) -AC_MSG_RESULT($ac_cv_func_random) -if eval "test \"`echo $ac_cv_func_random`\" = yes"; then - AC_DEFINE(HAVE_RANDOM, 1, [Define if you have random]) -fi + [unsigned long strlcat(char*, const char*, unsigned long)], + [STRLCAT]) ]) AC_DEFUN(AC_FIND_GIF, [AC_MSG_CHECKING([for giflib]) AC_CACHE_VAL(ac_cv_lib_gif, [ac_save_LIBS="$LIBS" -if test "x$kde_use_qt_emb" != "xyes"; then +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then LIBS="$all_libraries -lgif -lX11 $LIBSOCKET" else LIBS="$all_libraries -lgif" @@ -2147,7 +2417,7 @@ dnl then search the headers (can't use simply AC_TRY_xxx, as jpeglib.h dnl requires system dependent includes loaded before it) -jpeg_incdirs="/usr/include /usr/local/include $kde_extra_includes" +jpeg_incdirs="$includedir /usr/include /usr/local/include $kde_extra_includes" AC_FIND_FILE(jpeglib.h, $jpeg_incdirs, jpeg_incdir) test "x$jpeg_incdir" = xNO && jpeg_incdir= @@ -2174,6 +2444,53 @@ fi AC_SUBST(LIBJPEG) +AH_VERBATIM(_AC_CHECK_JPEG, +[/* + * jpeg.h needs HAVE_BOOLEAN, when the system uses boolean in system + * headers and I'm too lazy to write a configure test as long as only + * unixware is related + */ +#ifdef _UNIXWARE +#define HAVE_BOOLEAN +#endif +]) +]) + +AC_DEFUN(KDE_CHECK_QT_JPEG, +[ +if test -n "$LIBJPEG"; then +AC_MSG_CHECKING([if Qt needs $LIBJPEG]) +AC_CACHE_VAL(kde_cv_qt_jpeg, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +ac_save_LIBS="$LIBS" +LIBS="$all_libraries $USER_LDFLAGS $LIBQT" +LIBS=`echo $LIBS | sed "s/$LIBJPEG//"` +ac_save_CXXFLAGS="$CXXFLAGS" +CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES" +AC_TRY_LINK( +[#include <qapplication.h>], + [ + int argc; + char** argv; + QApplication app(argc, argv);], + eval "kde_cv_qt_jpeg=no", + eval "kde_cv_qt_jpeg=yes") +LIBS="$ac_save_LIBS" +CXXFLAGS="$ac_save_CXXFLAGS" +AC_LANG_RESTORE +fi +]) + +if eval "test ! \"`echo $kde_cv_qt_jpeg`\" = no"; then + AC_MSG_RESULT(yes) + LIBJPEG_QT='$(LIBJPEG)' +else + AC_MSG_RESULT(no) + LIBJPEG_QT= +fi + ]) AC_DEFUN(AC_FIND_ZLIB, @@ -2191,7 +2508,14 @@ [ #include<zlib.h> ], - [return (zlibVersion() == ZLIB_VERSION); ], +[ + char buf[42]; + gzFile f = (gzFile) 0; + /* this would segfault.. but we only link, don't run */ + (void) gzgets(f, buf, sizeof(buf)); + + return (zlibVersion() == ZLIB_VERSION); +], eval "ac_cv_lib_z='-lz'", eval "ac_cv_lib_z=no") LIBS="$kde_save_LIBS" @@ -2200,13 +2524,16 @@ if test ! "$ac_cv_lib_z" = no; then AC_DEFINE_UNQUOTED(HAVE_LIBZ, 1, [Define if you have libz]) LIBZ="$ac_cv_lib_z" - AC_SUBST(LIBZ) AC_MSG_RESULT($ac_cv_lib_z) else - AC_MSG_ERROR(not found. Check your installation and look into config.log) + AC_MSG_ERROR(not found. + Possibly configure picks up an outdated version + installed by XFree86. Remove it from your system. + + Check your installation and look into config.log) LIBZ="" - AC_SUBST(LIBZ) fi +AC_SUBST(LIBZ) ]) AC_DEFUN(KDE_TRY_TIFFLIB, @@ -2218,7 +2545,7 @@ AC_LANG_SAVE AC_LANG_CPLUSPLUS kde_save_LIBS="$LIBS" -if test "x$kde_use_qt_emb" != "xyes"; then +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lX11 $LIBSOCKET -lm" else LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lm" @@ -2277,7 +2604,7 @@ AC_CACHE_VAL(ac_cv_lib_png, [ kde_save_LIBS="$LIBS" -if test "x$kde_use_qt_emb" != "xyes"; then +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm -lX11 $LIBSOCKET" else LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm" @@ -2312,6 +2639,43 @@ fi ]) + +AC_DEFUN(AC_FIND_JASPER, +[ +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) +AC_REQUIRE([AC_FIND_JPEG]) +AC_MSG_CHECKING([for jasper]) +AC_CACHE_VAL(ac_cv_jasper, +[ +kde_save_LIBS="$LIBS" +LIBS="$LIBS $all_libraries $USER_LDFLAGS -ljasper $LIBJPEG -lm" +kde_save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" +AC_LANG_C +AC_TRY_LINK(dnl + [ + #include<jasper/jasper.h> + ], + [ + return( jas_init() ); + ], + eval "ac_cv_jasper='-ljasper $LIBJPEG -lm'", + eval "ac_cv_jasper=no" +) +LIBS="$kde_save_LIBS" +CFLAGS="$kde_save_CFLAGS" +])dnl +if eval "test ! \"`echo $ac_cv_jasper`\" = no"; then + AC_DEFINE_UNQUOTED(HAVE_JASPER, 1, [Define if you have jasper]) + LIB_JASPER="$ac_cv_jasper" + AC_MSG_RESULT($ac_cv_jasper) +else + AC_MSG_RESULT(no) + LIB_JASPER="" +fi +AC_SUBST(LIB_JASPER) +]) + AC_DEFUN(AC_CHECK_BOOL, [ AC_DEFINE_UNQUOTED(HAVE_BOOL, 1, [You _must_ have bool]) @@ -2347,8 +2711,8 @@ AC_DEFUN(KDE_CHECK_COMPILER_FLAG, [ -AC_MSG_CHECKING(whether $CXX supports -$1) -kde_cache=`echo $1 | sed 'y% .=/+-%____p_%'` +AC_MSG_CHECKING([whether $CXX supports -$1]) +kde_cache=`echo $1 | sed 'y% .=/+-,%____p__%'` AC_CACHE_VAL(kde_cv_prog_cxx_$kde_cache, [ AC_LANG_SAVE @@ -2440,14 +2804,14 @@ fi ], [kde_use_strict_options="no"]) - AC_ARG_ENABLE(warnings,[ --enable-warnings compiles with -Wall and similiar], + AC_ARG_ENABLE(warnings,[ --disable-warnings disables compilation with -Wall and similiar], [ if test $enableval = "no"; then kde_use_warnings="no" else kde_use_warnings="yes" fi - ], [kde_use_warnings="no"]) + ], [kde_use_warnings="yes"]) dnl enable warnings for debug build if test "$kde_use_debug_code" != "no"; then @@ -2469,7 +2833,7 @@ if test "$GCC" = "yes"; then if test "$kde_use_debug_code" != "no"; then if test $kde_use_debug_code = "full"; then - CFLAGS="-g3 $CFLAGS" + CFLAGS="-g3 -fno-inline $CFLAGS" else CFLAGS="-g -O2 $CFLAGS" fi @@ -2499,10 +2863,10 @@ if test "$GXX" = "yes" || test "$CXX" = "KCC"; then if test "$kde_use_debug_code" != "no"; then if test "$CXX" = "KCC"; then - CXXFLAGS="+K0 -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings $CXXFLAGS" + CXXFLAGS="+K0 -Wall -pedantic -W -Wpointer-arith -Wwrite-strings $CXXFLAGS" else if test "$kde_use_debug_code" = "full"; then - CXXFLAGS="-g3 $CXXFLAGS" + CXXFLAGS="-g3 -fno-inline $CXXFLAGS" else CXXFLAGS="-g -O2 $CXXFLAGS" fi @@ -2537,25 +2901,26 @@ if test "$GCC" = "yes"; then case $host in *-*-linux-gnu) - CFLAGS="-ansi -W -Wall -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -D_XOPEN_SOURCE=500 -D_BSD_SOURCE $CFLAGS" - CXXFLAGS="-ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion $CXXFLAGS" + CFLAGS="-ansi -W -Wall -pedantic -Wchar-subscripts -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -D_XOPEN_SOURCE=500 -D_BSD_SOURCE $CFLAGS" + CXXFLAGS="-ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts $CXXFLAGS" + KDE_CHECK_COMPILER_FLAG(Wmissing-format-attribute, [CXXFLAGS="$CXXFLAGS -Wformat-security -Wmissing-format-attribute"; CFLAGS="$CFLAGS -Wformat-security -Wmissing-format-attribute"]) ;; esac - CXXFLAGS="-Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings $CXXFLAGS" + CXXFLAGS="-Wall -pedantic -W -Wpointer-arith -Wwrite-strings $CXXFLAGS" KDE_CHECK_COMPILER_FLAG(Wundef,[CXXFLAGS="-Wundef $CXXFLAGS"]) - KDE_CHECK_COMPILER_FLAG(Wbad-function-cast,[CXXFLAGS="-Wbad-function-cast $CXXFLAGS"]) KDE_CHECK_COMPILER_FLAG(Wno-long-long,[CXXFLAGS="-Wno-long-long $CXXFLAGS"]) KDE_CHECK_COMPILER_FLAG(Wnon-virtual-dtor,[CXXFLAGS="-Wnon-virtual-dtor $CXXFLAGS"]) fi fi - if test "$GCC" = "yes" && test "$kde_use_strict_options" = "yes"; then + if test "$GXX" = "yes" && test "$kde_use_strict_options" = "yes"; then CXXFLAGS="-Wcast-qual -Wshadow -Wcast-align $CXXFLAGS" fi if test "$GXX" = "yes"; then KDE_CHECK_COMPILER_FLAG(fno-exceptions,[CXXFLAGS="$CXXFLAGS -fno-exceptions"]) KDE_CHECK_COMPILER_FLAG(fno-check-new, [CXXFLAGS="$CXXFLAGS -fno-check-new"]) + KDE_CHECK_COMPILER_FLAG(fno-common, [CXXFLAGS="$CXXFLAGS -fno-common"]) KDE_CHECK_COMPILER_FLAG(fexceptions, [USE_EXCEPTIONS="-fexceptions"], USE_EXCEPTIONS= ) fi if test "$CXX" = "KCC"; then @@ -2618,53 +2983,19 @@ AC_PROG_CXXCPP - # the following is to allow programs, that are known to - # have problems when compiled with -O2 - if test -n "$CXXFLAGS"; then - kde_safe_IFS=$IFS - IFS=" " - NOOPT_CXXFLAGS="" - for i in $CXXFLAGS; do - case $i in - -O*) - ;; - *) - NOOPT_CXXFLAGS="$NOOPT_CXXFLAGS $i" - ;; - esac - done - IFS=$kde_safe_IFS + if test "$GCC" = yes; then + NOOPT_CFLAGS=-O0 fi - - if test -n "$CFLAGS"; then - kde_safe_IFS=$IFS - IFS=" " - NOOPT_CFLAGS="" - for i in $CFLAGS; do - case $i in - -O*) - ;; - *) - NOOPT_CFLAGS="$NOOPT_CFLAGS $i" - ;; - esac - done - IFS=$kde_safe_IFS - fi - - if test "x$kde_use_qt_emb" = "xyes"; then - NOOPT_CXXFLAGS="$NOOPT_CXXFLAGS -fno-rtti -DQWS" - fi + KDE_CHECK_COMPILER_FLAG(O0,[NOOPT_CXXFLAGS=-O0]) AC_SUBST(NOOPT_CXXFLAGS) AC_SUBST(NOOPT_CFLAGS) KDE_CHECK_FINAL + KDE_CHECK_CLOSURE + KDE_CHECK_NMCHECK ifdef([AM_DEPENDENCIES], AC_REQUIRE([KDE_ADD_DEPENDENCIES]), []) - - KDE_CXXFLAGS= - AC_SUBST(KDE_CXXFLAGS) ]) AC_DEFUN(KDE_ADD_DEPENDENCIES, @@ -2681,6 +3012,7 @@ AC_REQUIRE([AC_ENABLE_STATIC]) AC_REQUIRE([AC_LIBTOOL_DLOPEN]) +AC_REQUIRE([KDE_CHECK_LIB64]) AC_LANG_SAVE AC_LANG_C @@ -2693,15 +3025,52 @@ LIBTOOL_SHELL="/bin/sh ./libtool" # LIBTOOL="$LIBTOOL --silent" -KDE_PLUGIN="-avoid-version -module -no-undefined \$(KDE_RPATH) \$(KDE_MT_LDFLAGS)" +KDE_PLUGIN="-avoid-version -module -no-undefined \$(KDE_NO_UNDEFINED) \$(KDE_RPATH) \$(KDE_MT_LDFLAGS)" AC_SUBST(KDE_PLUGIN) + +AC_ARG_ENABLE(objprelink, [ --enable-objprelink prelink apps using objprelink (obsolete)], + kde_use_objprelink=$enableval, kde_use_objprelink=no) + if test "x$kde_use_objprelink" = "xyes"; then + AC_MSG_WARN([ +------------------------------------------------------------ +Configuration option --enable-objprelink is no longer useful. +See http:://objprelink.sourceforge.net for details: +1- Recent binutils are fast enough to do without objprelink. +2- Newer versions of objprelink do not need this option. +------------------------------------------------------------ +]) + fi +]) + +AC_DEFUN(KDE_CHECK_LIB64, +[ + kdelibsuff=none + AC_ARG_ENABLE(libsuffix, + AC_HELP_STRING([--enable-libsuffix], + [/lib directory suffix (64,32,none[=default])]), + kdelibsuff=$enableval) + # TODO: add an auto case that compiles a little C app to check + # where the glibc is + if test "$kdelibsuff" = "none"; then + kdelibsuff= + fi + if test -z "$kdelibsuff"; then + AC_MSG_RESULT([not using lib directory suffix]) + AC_DEFINE(KDELIBSUFF, [""], Suffix for lib directories) + else + if test "$libdir" = '${exec_prefix}/lib'; then + libdir="$libdir${kdelibsuff}" + AC_SUBST([libdir], ["$libdir"]) dnl ugly hack for lib64 platforms + fi + AC_DEFINE_UNQUOTED(KDELIBSUFF, ["\"${kdelibsuff}\""], Suffix for lib directories) + AC_MSG_RESULT([using lib directory suffix $kdelibsuff]) + fi ]) AC_DEFUN(KDE_CHECK_TYPES, [ AC_CHECK_SIZEOF(int, 4)dnl AC_CHECK_SIZEOF(long, 4)dnl AC_CHECK_SIZEOF(char *, 4)dnl - AC_CHECK_SIZEOF(char, 1)dnl ])dnl AC_DEFUN(KDE_DO_IT_ALL, @@ -2733,7 +3102,8 @@ fi dnl $x_libraries is set to /usr/lib in case if test -n "$X_LDFLAGS"; then - KDE_RPATH="$KDE_RPATH -R \$(x_libraries)" + X_RPATH="-R \$(x_libraries)" + KDE_RPATH="$KDE_RPATH $X_RPATH" fi if test -n "$KDE_EXTRA_RPATH"; then KDE_RPATH="$KDE_RPATH \$(KDE_EXTRA_RPATH)" @@ -2741,6 +3111,7 @@ fi AC_SUBST(KDE_EXTRA_RPATH) AC_SUBST(KDE_RPATH) +AC_SUBST(X_RPATH) AC_MSG_RESULT($USE_RPATH) ]) @@ -2937,15 +3308,15 @@ AC_REQUIRE([AC_FUNC_ALLOCA])dnl AC_REQUIRE([AC_FUNC_MMAP])dnl AC_REQUIRE([AM_KDE_WITH_NLS])dnl - AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h string.h values.h alloca.h]) - AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \ + AC_CHECK_HEADERS([limits.h locale.h nl_types.h string.h values.h alloca.h]) + AC_CHECK_FUNCS([getcwd munmap putenv setlocale strchr strcasecmp \ __argz_count __argz_stringify __argz_next]) AC_MSG_CHECKING(for stpcpy) AC_CACHE_VAL(kde_cv_func_stpcpy, [ kde_safe_cxxflags=$CXXFLAGS - CXXFLAGS="-Wmissing-prototypes -Werror" + CXXFLAGS="-Werror" AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_TRY_COMPILE([ @@ -3008,7 +3379,7 @@ AC_LANG_C ac_save_ldflags="$LDFLAGS" ac_save_cflags="$CFLAGS" - if test "x$kde_use_qt_emb" != "xyes"; then + if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm -lX11 -lXext $LIBZ $LIBSOCKET" else LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm $LIBZ $LIBSOCKET" @@ -3064,7 +3435,7 @@ dnl 'yes' means DPMS_LIB="", '-lXdpms' means DPMS_LIB="-lXdpms". AC_CACHE_VAL(ac_cv_have_dpms, [ - if test "x$kde_use_qt_emb" = "xyes"; then + if test "x$kde_use_qt_emb" = "xyes" || test "x$kde_use_qt_mac" = "xyes"; then AC_MSG_RESULT(no) ac_cv_have_dpms="no" else @@ -3152,31 +3523,33 @@ AC_MSG_CHECKING(for GL) AC_CACHE_VAL(ac_cv_have_gl, [ - AC_LANG_C + AC_LANG_SAVE + AC_LANG_CPLUSPLUS ac_save_ldflags="$LDFLAGS" - ac_save_cflags="$CFLAGS" + ac_save_cxxflags="$CXXFLAGS" LDFLAGS="$LDFLAGS $GL_LDFLAGS $X_LDFLAGS $all_libraries -lMesaGL -lMesaGLU" - test "x$kde_use_qt_emb" != xyes && LDFLAGS="$LDFLAGS -lX11" + test "x$kde_use_qt_mac" != xyes && test "x$kde_use_qt_emb" != xyes && LDFLAGS="$LDFLAGS -lX11" LDFLAGS="$LDFLAGS $LIB_XEXT -lm $LIBSOCKET" - CFLAGS="$CFLAGS $X_INCLUDES" + CXXFLAGS="$CFLAGS $X_INCLUDES" test -n "$GL_INCLUDE" && CFLAGS="-I$GL_INCLUDE $CFLAGS" AC_TRY_LINK([#include <GL/gl.h> #include <GL/glu.h> ], [], ac_cv_have_gl="mesa", ac_cv_have_gl="no") if test "x$ac_cv_have_gl" = "xno"; then - LDFLAGS="$ac_save_ldflags $X_LDFLAGS $GL_LDFLAGS $all_libraries -lGL -lGLU" - test "x$kde_use_qt_emb" != xyes && LDFLAGS="$LDFLAGS -lX11" + LDFLAGS="$ac_save_ldflags $X_LDFLAGS $GL_LDFLAGS $all_libraries -lGLU -lGL" + test "x$kde_use_qt_mac" != xyes && test "x$kde_use_qt_emb" != xyes && LDFLAGS="$LDFLAGS -lX11" LDFLAGS="$LDFLAGS $LIB_XEXT -lm $LIBSOCKET" - CFLAGS="$ac_save_cflags $X_INCLUDES" + CXXFLAGS="$ac_save_cflags $X_INCLUDES" test -n "$GL_INCLUDE" && CFLAGS="-I$GL_INCLUDE $CFLAGS" AC_TRY_LINK([#include <GL/gl.h> #include <GL/glu.h> ], [], ac_cv_have_gl="yes", ac_cv_have_gl="no") fi + AC_LANG_RESTORE LDFLAGS="$ac_save_ldflags" - CFLAGS="$ac_save_cflags" + CXXFLAGS="$ac_save_cxxflags" ])dnl if test "$ac_cv_have_gl" = "no"; then @@ -3188,15 +3561,15 @@ AC_DEFINE(HAVE_GL, 1, [Defines if you have GL (Mesa, OpenGL, ...)]) if test "$GL_LDFLAGS" = ""; then if test "$ac_cv_have_gl" = "mesa"; then - GLLIB='-lMesaGL -lMesaGLU $(LIB_X11)' + GLLIB='-lMesaGLU -lMesaGL $(LIB_X11)' else - GLLIB='-lGL -lGLU $(LIB_X11)' + GLLIB='-lGLU -lGL $(LIB_X11)' fi else if test "$ac_cv_have_gl" = "mesa"; then - GLLIB="$GL_LDFLAGS -lMesaGL -lMesaGLU "'$(LIB_X11)' + GLLIB="$GL_LDFLAGS -lMesaGLU -lMesaGL "'$(LIB_X11)' else - GLLIB="$GL_LDFLAGS -lGL -lGLU "'$(LIB_X11)' + GLLIB="$GL_LDFLAGS -lGLU -lGL "'$(LIB_X11)' fi fi if test "$GL_INCLUDE" = ""; then @@ -3234,15 +3607,24 @@ AC_CACHE_VAL(ac_cv_path_pam, [ use_pam=no AC_CHECK_LIB(pam, pam_start, - [ AC_CHECK_HEADER(security/pam_appl.h, - [ use_pam=yes - pam_service=kde ]) + [ use_pam=yes + pam_service=kde ], , $LIBDL) - ac_cv_path_pam="use_pam=$use_pam pam_service=$pam_service" ]) ]) eval "$ac_cv_path_pam" + pam_header= + + AC_CHECK_HEADER(security/pam_appl.h, + [ pam_header="security/pam_appl.h" + ], + [ AC_CHECK_HEADER(pam/pam_appl.h, + [ pam_header="pam/pam_appl.h" + ], [ use_pam=no + ]) + ]) + AC_MSG_CHECKING(for PAM) if test "x$use_pam" = xno; then AC_MSG_RESULT(no) @@ -3254,8 +3636,8 @@ dnl test whether struct pam_message is const (Linux) or not (Sun) AC_MSG_CHECKING(for const pam_message) - AC_EGREP_HEADER([struct pam_message], security/pam_appl.h, - [ AC_EGREP_HEADER([const struct pam_message], security/pam_appl.h, + AC_EGREP_HEADER([struct pam_message], $pam_header, + [ AC_EGREP_HEADER([const struct pam_message], $pam_header, [AC_MSG_RESULT([const: Linux-type PAM])], [AC_MSG_RESULT([nonconst: Sun-type PAM]) AC_DEFINE(PAM_MESSAGE_NONCONST, 1, [Define if your PAM support takes non-const arguments (Solaris)])] @@ -3644,7 +4026,7 @@ if test "$kde_use_kernthreads" = "yes"; then ac_save_CXXFLAGS="$CXXFLAGS" - ac_save_CFLAGS="$CXXFLAGS" + ac_save_CFLAGS="$CFLAGS" CXXFLAGS="-I/usr/local/include/pthread/linuxthreads $CXXFLAGS" CFLAGS="-I/usr/local/include/pthread/linuxthreads $CFLAGS" AC_CHECK_HEADERS(pthread/linuxthreads/pthread.h) @@ -3668,6 +4050,11 @@ fi fi + AH_VERBATIM(__svr_define, [ +#if defined(__SVR4) && !defined(__svr4__) +#define __svr4__ 1 +#endif +]) case $host_os in solaris*) KDE_CHECK_COMPILER_FLAG(mt, [USE_THREADS="-mt"]) @@ -3861,9 +4248,10 @@ KDE_TRY_LINK_PYTHON(pthread_and_db3, [$LIBPTHREAD -ldb-3]) KDE_TRY_LINK_PYTHON(m_and_thread_and_db, [$LIBPTHREAD -lm -ldb -ltermcap -lutil]) KDE_TRY_LINK_PYTHON(pthread_and_dl, [$LIBPTHREAD $LIBDL -lutil -lreadline -lncurses -lm]) + KDE_TRY_LINK_PYTHON(pthread_and_panel_curses, [$LIBPTHREAD $LIBDL -lm -lpanel -lcurses]) KDE_TRY_LINK_PYTHON(m_and_thread_and_db_special, [$LIBPTHREAD -lm -ldb -lutil], [], [AC_MSG_WARN([it seems, Python depends on another library. - Pleae set LIBPYTHON to '-lpython$version -lotherlib' before calling configure to fix this + Please set LIBPYTHON to '-lpython$version -lotherlib' before calling configure to fix this and contact the authors to let them know about this problem]) ]) @@ -3880,9 +4268,14 @@ AC_DEFUN(KDE_CHECK_PYTHON, [ - KDE_CHECK_PYTHON_INTERN("2.1", [KDE_CHECK_PYTHON_INTERN("2.0", - [ KDE_CHECK_PYTHON_INTERN($1, $2) ]) - ]) + KDE_CHECK_PYTHON_INTERN("2.3", + [KDE_CHECK_PYTHON_INTERN("2.2", + [KDE_CHECK_PYTHON_INTERN("2.1", + [KDE_CHECK_PYTHON_INTERN("2.0", + [KDE_CHECK_PYTHON_INTERN($1, $2) ]) + ]) + ]) + ]) ]) AC_DEFUN(KDE_CHECK_STL_SGI, @@ -4086,8 +4479,12 @@ install_it="no" fi AC_MSG_RESULT($install_it) + vari=`echo $i | sed -e 's,[[-+.]],_,g'` if test $install_it = "yes"; then TOPSUBDIRS="$TOPSUBDIRS $i" + eval "$vari""_SUBDIR_included=yes" + else + eval "$vari""_SUBDIR_included=no" fi done @@ -4152,6 +4549,15 @@ if test "$ac_cv_have_s_issock" = "yes"; then AC_DEFINE_UNQUOTED(HAVE_S_ISSOCK, 1, [Define if sys/stat.h declares S_ISSOCK.]) fi + +AH_VERBATIM(_ISSOCK, +[ +#ifndef HAVE_S_ISSOCK +#define HAVE_S_ISSOCK +#define S_ISSOCK(mode) (1==0) +#endif +]) + ]) dnl ------------------------------------------------------------------------ @@ -4193,45 +4599,25 @@ AC_DEFINE_UNQUOTED(KDEMAXPATHLEN,$ac_cv_maxpathlen, [Define a safe value for MAXPATHLEN] ) ]) -dnl ------------------------------------------------------------------------- -dnl See if the compiler supports a template repository bero@redhat.de -dnl ------------------------------------------------------------------------- -AC_DEFUN(KDE_COMPILER_REPO, -[ - REPO="" - NOREPO="" - - KDE_CHECK_COMPILER_FLAG(frepo, - [ - REPO="-frepo" - NOREPO="-fno-repo" - ]) - - if test -z "$REPO"; then - KDE_CHECK_COMPILER_FLAG(instances=explicit, - [ - REPO="-instances=explicit" - NOREPO="-instances=extern" - ]) - fi - - if test -n "$REPO"; then - AC_DEFINE_UNQUOTED(HAVE_TEMPLATE_REPOSITORY, 1, - [C++ compiler supports template repository]) - $1 - fi - - AC_SUBST(REPO) - AC_SUBST(NOREPO) -]) - AC_DEFUN(KDE_CHECK_HEADER, [ AC_LANG_SAVE kde_safe_cppflags=$CPPFLAGS CPPFLAGS="$CPPFLAGS $all_includes" AC_LANG_CPLUSPLUS - AC_CHECK_HEADER($1, $2, $3) + AC_CHECK_HEADER($1, $2, $3, $4) + CPPFLAGS=$kde_safe_cppflags + AC_LANG_RESTORE +]) + +AC_DEFUN(KDE_CHECK_HEADERS, +[ + AH_CHECK_HEADERS([$1]) + AC_LANG_SAVE + kde_safe_cppflags=$CPPFLAGS + CPPFLAGS="$CPPFLAGS $all_includes" + AC_LANG_CPLUSPLUS + AC_CHECK_HEADERS([$1], [$2], [$3], [$4]) CPPFLAGS=$kde_safe_cppflags AC_LANG_RESTORE ]) @@ -4266,8 +4652,11 @@ if test "x$prefix" = "xNONE"; then prefix=$ac_default_prefix - ac_configure_args="$ac_configure_args --prefix $prefix" + ac_configure_args="$ac_configure_args --prefix=$prefix" fi + # And delete superflous '/' to make compares easier + prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` KDE_FAST_CONFIGURE KDE_CONF_FILES ]) @@ -4371,63 +4760,45 @@ AC_DEFUN(KDE_CHECK_LIB, [ + kde_save_LDFLAGS="$LDFLAGS" + dnl AC_CHECK_LIB modifies LIBS, so save it here kde_save_LIBS="$LIBS" - LIBS="$LIBS $all_libraries" + LDFLAGS="$LDFLAGS $all_libraries" case $host_os in - aix*) LIBS="-brtl $LIBS" - test "$GCC" = yes && LIBS="-Wl,$LIBS" + aix*) LDFLAGS="-brtl $LDFLAGS" + test "$GCC" = yes && LDFLAGS="-Wl,$LDFLAGS" ;; esac AC_CHECK_LIB($1, $2, $3, $4, $5) + LDFLAGS="$kde_save_LDFLAGS" LIBS="$kde_save_LIBS" ]) - - - -AC_DEFUN(KDE_CHECK_INITGROUPS, -[ - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_CHECK_FUNCS(initgroups) - if test "x$ac_cv_func_initgroups" = "xyes"; then - case $host_os in - aix*) AC_LANG_SAVE - AC_LANG_CPLUSPLUS - AC_MSG_CHECKING([for initgroups prototype]) - AC_CACHE_VAL(kde_cv_check_initgroups_proto, - [ AC_TRY_COMPILE( - [ #include <grp.h> - ], - [ char buffer[10]; - gid_t id; - int x = initgroups(buffer,id); - ], - kde_cv_check_initgroups_proto=yes, - kde_cv_check_initgroups_proto=no) - ]) - AC_MSG_RESULT($kde_cv_check_initgroups_proto) - AC_LANG_RESTORE - ;; - *) - kde_cv_check_initgroups_proto=yes - ;; - esac - else - kde_cv_check_initgroups_proto=no - fi - if test "x$kde_cv_check_initgroups_proto" = "xyes"; then - kde_check_initgroups_proto=1 - else - kde_check_initgroups_proto=0 - fi - AC_DEFINE_UNQUOTED(HAVE_INITGROUPS_PROTO,$kde_check_initgroups_proto, - [initgroups may exist but not its prototype (e.g. AIX<4.3.3:8)]) +AC_DEFUN(KDE_JAVA_PREFIX, +[ + dir=`dirname "$1"` + base=`basename "$1"` + list=`ls -1 $dir 2> /dev/null` + for entry in $list; do + if test -d $dir/$entry/bin; then + case $entry in + $base) + javadirs="$javadirs $dir/$entry/bin" + ;; + esac + elif test -d $dir/$entry/jre/bin; then + case $entry in + $base) + javadirs="$javadirs $dir/$entry/jre/bin" + ;; + esac + fi + done ]) - +dnl KDE_CHEC_JAVA_DIR(onlyjre) AC_DEFUN(KDE_CHECK_JAVA_DIR, [ -AC_MSG_CHECKING([for Java directory]) AC_ARG_WITH(java, [ --with-java=javadir use java installed in javadir, --without-java disables ], @@ -4435,111 +4806,195 @@ ], ac_java_dir="" ) +AC_MSG_CHECKING([for Java]) + dnl at this point ac_java_dir is either a dir, 'no' to disable, or '' to say look in $PATH -if test "x$ac_java_dir" = xno; then - kde_cv_java_bindir=no - kde_cv_java_includedir=no +if test "x$ac_java_dir" = "xno"; then + kde_java_bindir=no + kde_java_includedir=no kde_java_libjvmdir=no kde_java_libhpidir=no else - if test "x$ac_java_dir" = x; then - dnl No option set -> look in $PATH - AC_CACHE_VAL(kde_cv_java_bindir, - [ - dnl First look for javac in $PATH. If not found we'll look at the option. - KDE_FIND_PATH(javac, JAVAC, [], []) + if test "x$ac_java_dir" = "x"; then + + + dnl No option set -> look in $PATH + KDE_JAVA_PREFIX(/usr/j2se) + KDE_JAVA_PREFIX(/usr/j*dk*) + KDE_JAVA_PREFIX(/usr/lib/j*dk*) + KDE_JAVA_PREFIX(/opt/j*sdk*) + KDE_JAVA_PREFIX(/usr/lib/java*) + KDE_JAVA_PREFIX(/usr/java*) + KDE_JAVA_PREFIX(/usr/java/j*dk*) + KDE_JAVA_PREFIX(/usr/java/j*re*) + KDE_JAVA_PREFIX(/usr/lib/SunJava2*) + KDE_JAVA_PREFIX(/usr/lib/SunJava*) + KDE_JAVA_PREFIX(/usr/lib/IBMJava2*) + KDE_JAVA_PREFIX(/usr/lib/IBMJava*) + KDE_JAVA_PREFIX(/opt/java*) + + kde_cv_path="NONE" + kde_save_IFS=$IFS + IFS=':' + for dir in $PATH; do + javadirs="$javadirs $dir" + done + IFS=$kde_save_IFS + jredirs= + + for dir in $javadirs; do + if test ! -d $dir; then break; fi + if test -x "$dir/java"; then + libjvmdir=`find $dir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1` + if test ! -f $libjvmdir/libjvm.so; then continue; fi + jredirs="$jredirs $dir" + fi + done + + JAVAC= + JAVA= + kde_java_bindir=no + for dir in $jredirs; do + JAVA="$dir/java" + kde_java_bindir=$dir + if test -x "$dir/javac"; then + JAVAC="$dir/javac" + break + fi + done + if test -n "$JAVAC"; then - kde_cv_java_bindir=`echo $JAVAC | sed -e 's,/javac$,/,'` dnl this substitution might not work - well, we test for jni.h below - kde_cv_java_includedir=`echo $kde_cv_java_bindir | sed -e 's,bin/$,include/,'` + kde_java_includedir=`echo $JAVAC | sed -e 's,bin/javac$,include/,'` else - kde_cv_java_bindir=no + kde_java_includedir=no fi - ]) else dnl config option set - kde_cv_java_bindir=$ac_java_dir/bin - kde_cv_java_includedir=$ac_java_dir/include + kde_java_bindir=$ac_java_dir/bin + if test -x $ac_java_dir/bin/java && test ! -x $ac_java_dir/bin/javac; then + kde_java_includedir=no + else + kde_java_includedir=$ac_java_dir/include + fi fi fi -dnl At this point kde_cv_java_bindir and kde_cv_java_includedir are either set or "no" -if test ! "x$kde_cv_java_bindir" = xno; then +dnl At this point kde_java_bindir and kde_java_includedir are either set or "no" +if test "x$kde_java_bindir" != "xno"; then dnl Look for libjvm.so - kde_java_libjvmdir=`find $kde_cv_java_bindir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1` + kde_java_libjvmdir=`find $kde_java_bindir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1` dnl Look for libhpi.so and avoid green threads - kde_java_libhpidir=`find $kde_cv_java_bindir/.. -name libhpi.so | grep -v green | sed 's,libhpi.so,,'` + kde_java_libhpidir=`find $kde_java_bindir/.. -name libhpi.so | grep -v green | sed 's,libhpi.so,,' | head -n 1` dnl Now check everything's fine under there - - if test ! -x "$kde_cv_java_bindir/javac"; then - AC_MSG_ERROR([javac not found under $kde_cv_java_bindir - it seems you passed a wrong --with-java.]) + dnl the include dir is our flag for having the JDK + if test -d "$kde_java_includedir"; then + if test ! -x "$kde_java_bindir/javac"; then + AC_MSG_ERROR([javac not found under $kde_java_bindir - it seems you passed a wrong --with-java.]) + fi + if test ! -x "$kde_java_bindir/javah"; then + AC_MSG_ERROR([javah not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.]) + fi + if test ! -x "$kde_java_bindir/jar"; then + AC_MSG_ERROR([jar not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.]) + fi + if test ! -r "$kde_java_includedir/jni.h"; then + AC_MSG_ERROR([jni.h not found under $kde_java_includedir. Use --with-java or --without-java.]) + fi + + jni_includes="-I$kde_java_includedir" + dnl Strange thing, jni.h requires jni_md.h which is under genunix here.. + dnl and under linux here.. + test -d "$kde_java_includedir/linux" && jni_includes="$jni_includes -I$kde_java_includedir/linux" + test -d "$kde_java_includedir/solaris" && jni_includes="$jni_includes -I$kde_java_includedir/solaris" + test -d "$kde_java_includedir/genunix" && jni_includes="$jni_includes -I$kde_java_includedir/genunix" + + else + JAVAC= + jni_includes= fi - if test ! -x "$kde_cv_java_bindir/javah"; then - AC_MSG_ERROR([javah not found under $kde_cv_java_bindir. javac was found though! Use --with-java or --without-java.]) + + if test ! -r "$kde_java_libjvmdir/libjvm.so"; then + AC_MSG_ERROR([libjvm.so not found under $kde_java_libjvmdir. Use --without-java.]) + fi + + if test ! -x "$kde_java_bindir/java"; then + AC_MSG_ERROR([java not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.]) fi - if test ! -x "$kde_cv_java_bindir/jar"; then - AC_MSG_ERROR([jar not found under $kde_cv_java_bindir. javac was found though! Use --with-java or --without-java.]) - fi - if test ! -r "$kde_cv_java_includedir/jni.h"; then - AC_MSG_ERROR([jni.h not found under $kde_cv_java_includedir. Use --with-java or --without-java.]) - fi - if test ! -r "$kde_java_libjvmdir/libjvm.so"; then - AC_MSG_ERROR([libjvm.so not found under $kde_java_libjvmdir. Use --without-java.]) - fi + if test ! -r "$kde_java_libhpidir/libhpi.so"; then AC_MSG_ERROR([libhpi.so not found under $kde_java_libhpidir. Use --without-java.]) fi - jni_includes="-I$kde_cv_java_includedir" - dnl Strange thing, jni.h requires jni_md.h which is under genunix here.. - dnl and under linux here.. - test -d "$kde_cv_java_includedir/linux" && jni_includes="$jni_includes -I$kde_cv_java_includedir/linux" - test -d "$kde_cv_java_includedir/genunix" && jni_includes="$jni_includes -I$kde_cv_java_includedir/genunix" - - dnl Check for JNI version - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - ac_cxxflags_safe="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS $all_includes $jni_includes" - - AC_TRY_COMPILE([ -#include <jni.h> - ], - [ -#ifndef JNI_VERSION_1_2 -Syntax Error -#endif - ],[ kde_jni_works=yes ], - [ kde_jni_works=no ]) - - if test $kde_jni_works = no; then - AC_MSG_ERROR([Incorrect version of $kde_cv_java_includedir/jni.h. - You need to have Java Development Kit (JDK) version 1.2. - - Use --with-java to specify another location. - Use --without-java to configure without java support. - Or download a newer JDK and try again. - See e.g. http://java.sun.com/products/jdk/1.2 ]) + if test -n "$jni_includes"; then + dnl Check for JNI version + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + ac_cxxflags_safe="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS $all_includes $jni_includes" + + AC_TRY_COMPILE([ + #include <jni.h> + ], + [ + #ifndef JNI_VERSION_1_2 + Syntax Error + #endif + ],[ kde_jni_works=yes ], + [ kde_jni_works=no ]) + + if test $kde_jni_works = no; then + AC_MSG_ERROR([Incorrect version of $kde_java_includedir/jni.h. + You need to have Java Development Kit (JDK) version 1.2. + + Use --with-java to specify another location. + Use --without-java to configure without java support. + Or download a newer JDK and try again. + See e.g. http://java.sun.com/products/jdk/1.2 ]) + fi + + CXXFLAGS="$ac_cxxflags_safe" + AC_LANG_RESTORE + + dnl All tests ok, inform and subst the variables + + JAVAC=$kde_java_bindir/javac + JAVAH=$kde_java_bindir/javah + JAR=$kde_java_bindir/jar + AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is]) + JVMLIBS="-L$kde_java_libjvmdir -ljvm -L$kde_java_libhpidir -lhpi" + AC_MSG_RESULT([java JDK in $kde_java_bindir]) + + else + AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is]) + AC_MSG_RESULT([java JRE in $kde_java_bindir]) fi - - CXXFLAGS="$ac_cxxflags_safe" - AC_LANG_RESTORE - - dnl All tests ok, inform and subst the variables - AC_MSG_RESULT([javac/javah/jar in $kde_cv_java_bindir, jni.h in $kde_cv_java_includedir]) - - JAVAC=$kde_cv_java_bindir/javac - AC_SUBST(JAVAC) - JAVAH=$kde_cv_java_bindir/javah - AC_SUBST(JAVAH) - JAR=$kde_cv_java_bindir/jar - AC_SUBST(JAR) - AC_SUBST(jni_includes) - JVMLIBS="-L$kde_java_libjvmdir -ljvm -L$kde_cv_java_libhpidir -lhpi" - AC_SUBST(JVMLIBS) +elif test -d "/Library/Java/Home"; then + kde_java_bindir="/Library/Java/Home/bin" + jni_includes="-I/Library/Java/Home/include" + + JAVAC=$kde_java_bindir/javac + JAVAH=$kde_java_bindir/javah + JAR=$kde_java_bindir/jar + JVMLIBS="-Xlinker -framework -Xlinker JavaVM" + + AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is]) + AC_MSG_RESULT([Apple Java Framework]) +else + AC_MSG_RESULT([none found]) fi + +AC_SUBST(JAVAC) +AC_SUBST(JAVAH) +AC_SUBST(JAR) +AC_SUBST(JVMLIBS) +AC_SUBST(jni_includes) + +# for backward compat +kde_cv_java_includedir=$kde_java_includedir +kde_cv_java_bindir=$kde_java_bindir ]) dnl this is a redefinition of autoconf 2.5x's AC_FOREACH. @@ -4552,15 +5007,18 @@ m4_define([mm_car2], [[$@]]) m4_define([_mm_foreach], [m4_if(m4_quote($2), [], [], - [m4_define([$1], [mm_car($2)])$3[]_mm_foreach([$1], - mm_car2(m4_shift($2)), - [$3])])]) + [m4_define([$1], mm_car($2))$3[]_mm_foreach([$1], + mm_car2(m4_shift($2)), + [$3])])]) m4_define([AC_FOREACH], [mm_foreach([$1], m4_split(m4_normalize([$2])), [$3])]) AC_DEFUN(KDE_NEED_FLEX, [ -AC_REQUIRE([AM_PROG_LEX]) +kde_libs_safe=$LIBS +LIBS="$LIBS $USER_LDFLAGS" +AM_PROG_LEX +LIBS=$kde_libs_safe if test -z "$LEXLIB"; then AC_MSG_ERROR([You need to have flex installed.]) fi @@ -4670,3 +5128,366 @@ AC_MSG_RESULT([found version $qtopia_verstr with headers at $qtopia_incdir]) ]) + +AC_DEFUN(KDE_INIT_DOXYGEN, +[ +AC_MSG_CHECKING([for Qt docs]) +kde_qtdir= +if test "${with_qt_dir+set}" = set; then + kde_qtdir="$with_qt_dir" +fi + +AC_FIND_FILE(qsql.html, [ $kde_qtdir/doc/html $QTDIR/doc/html /usr/share/doc/packages/qt3/html /usr/lib/qt/doc /usr/lib/qt3/doc /usr/lib/qt3/doc/html /usr/doc/qt3/html /usr/doc/qt3 /usr/share/doc/qt3-doc /usr/share/qt3/doc/html /usr/X11R6/share/doc/qt/html ], QTDOCDIR) +AC_MSG_RESULT($QTDOCDIR) + +AC_SUBST(QTDOCDIR) + +KDE_FIND_PATH(dot, DOT, [], []) +if test -n "$DOT"; then + KDE_HAVE_DOT="YES" +else + KDE_HAVE_DOT="NO" +fi +AC_SUBST(KDE_HAVE_DOT) +KDE_FIND_PATH(doxygen, DOXYGEN, [], []) +AC_SUBST(DOXYGEN) + +DOXYGEN_PROJECT_NAME="$1" +DOXYGEN_PROJECT_NUMBER="$2" +AC_SUBST(DOXYGEN_PROJECT_NAME) +AC_SUBST(DOXYGEN_PROJECT_NUMBER) + +KDE_HAS_DOXYGEN=no +if test -n "$DOXYGEN" && test -x "$DOXYGEN" && test -f $QTDOCDIR/qsql.html; then + KDE_HAS_DOXYGEN=yes +fi +AC_SUBST(KDE_HAS_DOXYGEN) + +]) + + +AC_DEFUN(AC_FIND_BZIP2, +[ +AC_MSG_CHECKING([for bzDecompress in libbz2]) +AC_CACHE_VAL(ac_cv_lib_bzip2, +[ +AC_LANG_C +kde_save_LIBS="$LIBS" +LIBS="$all_libraries $USER_LDFLAGS -lbz2 $LIBSOCKET" +kde_save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" +AC_TRY_LINK(dnl +[ +#define BZ_NO_STDIO +#include<bzlib.h> +], + [ bz_stream s; (void) bzDecompress(&s); ], + eval "ac_cv_lib_bzip2='-lbz2'", + eval "ac_cv_lib_bzip2=no") +LIBS="$kde_save_LIBS" +CFLAGS="$kde_save_CFLAGS" +])dnl +AC_MSG_RESULT($ac_cv_lib_bzip2) + +if test ! "$ac_cv_lib_bzip2" = no; then + BZIP2DIR=bzip2 + + LIBBZ2="$ac_cv_lib_bzip2" + AC_SUBST(LIBBZ2) + +else + + cxx_shared_flag= + ld_shared_flag= + KDE_CHECK_COMPILER_FLAG(shared, [ + ld_shared_flag="-shared" + ]) + KDE_CHECK_COMPILER_FLAG(fPIC, [ + cxx_shared_flag="-fPIC" + ]) + + AC_MSG_CHECKING([for BZ2_bzDecompress in (shared) libbz2]) + AC_CACHE_VAL(ac_cv_lib_bzip2_prefix, + [ + AC_LANG_CPLUSPLUS + kde_save_LIBS="$LIBS" + LIBS="$all_libraries $USER_LDFLAGS $ld_shared_flag -lbz2 $LIBSOCKET" + kde_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CFLAGS $cxx_shared_flag $all_includes $USER_INCLUDES" + + AC_TRY_LINK(dnl + [ + #define BZ_NO_STDIO + #include<bzlib.h> + ], + [ bz_stream s; (void) BZ2_bzDecompress(&s); ], + eval "ac_cv_lib_bzip2_prefix='-lbz2'", + eval "ac_cv_lib_bzip2_prefix=no") + LIBS="$kde_save_LIBS" + CXXFLAGS="$kde_save_CXXFLAGS" + ])dnl + + AC_MSG_RESULT($ac_cv_lib_bzip2_prefix) + + + + if test ! "$ac_cv_lib_bzip2_prefix" = no; then + BZIP2DIR=bzip2 + + LIBBZ2="$ac_cv_lib_bzip2_prefix" + AC_SUBST(LIBBZ2) + + AC_DEFINE(NEED_BZ2_PREFIX, 1, [Define if the libbz2 functions need the BZ2_ prefix]) + dnl else, we just ignore this + fi + +fi +AM_CONDITIONAL(include_BZIP2, test -n "$BZIP2DIR") +]) + +dnl ------------------------------------------------------------------------ +dnl Try to find the SSL headers and libraries. +dnl $(SSL_LDFLAGS) will be -Lsslliblocation (if needed) +dnl and $(SSL_INCLUDES) will be -Isslhdrlocation (if needed) +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN(KDE_CHECK_SSL, +[ +LIBSSL="-lssl -lcrypto" +AC_REQUIRE([KDE_CHECK_LIB64]) + +ac_ssl_includes=NO ac_ssl_libraries=NO +ssl_libraries="" +ssl_includes="" +AC_ARG_WITH(ssl-dir, + [ --with-ssl-dir=DIR where the root of OpenSSL is installed], + [ ac_ssl_includes="$withval"/include + ac_ssl_libraries="$withval"/lib$kdelibsuff + ]) + +want_ssl=yes +AC_ARG_WITH(ssl, + [ --without-ssl disable SSL checks], + [want_ssl=$withval]) + +if test $want_ssl = yes; then + +AC_MSG_CHECKING(for OpenSSL) + +AC_CACHE_VAL(ac_cv_have_ssl, +[#try to guess OpenSSL locations + + ssl_incdirs="/usr/include /usr/local/include /usr/ssl/include /usr/local/ssl/include $prefix/include $kde_extra_includes" + ssl_incdirs="$ac_ssl_includes $ssl_incdirs" + AC_FIND_FILE(openssl/ssl.h, $ssl_incdirs, ssl_incdir) + ac_ssl_includes="$ssl_incdir" + + ssl_libdirs="/usr/lib$kdelibsuff /usr/local/lib$kdelibsuff /usr/ssl/lib$kdelibsuff /usr/local/ssl/lib$kdelibsuff $libdir $prefix/lib$kdelibsuff $exec_prefix/lib$kdelibsuff $kde_extra_libs" + if test ! "$ac_ssl_libraries" = "NO"; then + ssl_libdirs="$ac_ssl_libraries $ssl_libdirs" + fi + + test=NONE + ssl_libdir=NONE + for dir in $ssl_libdirs; do + try="ls -1 $dir/libssl*" + if test=`eval $try 2> /dev/null`; then ssl_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi + done + + ac_ssl_libraries="$ssl_libdir" + + AC_LANG_SAVE + AC_LANG_C + + ac_cflags_safe="$CFLAGS" + ac_ldflags_safe="$LDFLAGS" + ac_libs_safe="$LIBS" + + CFLAGS="$CFLAGS -I$ssl_incdir $all_includes" + LDFLAGS="$LDFLAGS -L$ssl_libdir $all_libraries" + LIBS="$LIBS $LIBSSL -lRSAglue -lrsaref" + + AC_TRY_LINK(,void RSAPrivateEncrypt(void);RSAPrivateEncrypt();, + ac_ssl_rsaref="yes" + , + ac_ssl_rsaref="no" + ) + + CFLAGS="$ac_cflags_safe" + LDFLAGS="$ac_ldflags_safe" + LIBS="$ac_libs_safe" + + AC_LANG_RESTORE + + if test "$ac_ssl_includes" = NO || test "$ac_ssl_libraries" = NO; then + have_ssl=no + else + have_ssl=yes; + fi + + ]) + + eval "$ac_cv_have_ssl" + + AC_MSG_RESULT([libraries $ac_ssl_libraries, headers $ac_ssl_includes]) + + AC_MSG_CHECKING([whether OpenSSL uses rsaref]) + AC_MSG_RESULT($ac_ssl_rsaref) + + AC_MSG_CHECKING([for easter eggs]) + AC_MSG_RESULT([none found]) + +else + have_ssl=no +fi + +if test "$have_ssl" = yes; then + AC_MSG_CHECKING(for OpenSSL version) + dnl Check for SSL version + AC_CACHE_VAL(ac_cv_ssl_version, + [ + AC_LANG_SAVE + AC_LANG_C + + cat >conftest.$ac_ext <<EOF +#include <openssl/opensslv.h> +#include <stdio.h> + int main() { + +#ifndef OPENSSL_VERSION_NUMBER + printf("ssl_version=\\"error\\"\n"); +#else + if (OPENSSL_VERSION_NUMBER < 0x00906000) + printf("ssl_version=\\"old\\"\n"); + else + printf("ssl_version=\\"ok\\"\n"); +#endif + return (0); + } +EOF + + ac_compile='${CC-gcc} $CFLAGS -I$ac_ssl_includes conftest.$ac_ext -o conftest' + if AC_TRY_EVAL(ac_compile); then + + if eval `./conftest 2>&5`; then + if test $ssl_version = error; then + AC_MSG_ERROR([$ssl_incdir/openssl/opensslv.h doesn't define OPENSSL_VERSION_NUMBER !]) + else + if test $ssl_version = old; then + AC_MSG_WARN([OpenSSL version too old. Upgrade to 0.9.6 at least, see http://www.openssl.org. SSL support disabled.]) + have_ssl=no + fi + fi + ac_cv_ssl_version="ssl_version=$ssl_version" + else + AC_MSG_ERROR([Your system couldn't run a small SSL test program. + Check config.log, and if you can't figure it out, send a mail to + David Faure <faure@kde.org>, attaching your config.log]) + fi + + else + AC_MSG_ERROR([Your system couldn't link a small SSL test program. + Check config.log, and if you can't figure it out, send a mail to + David Faure <faure@kde.org>, attaching your config.log]) + fi + + AC_LANG_RESTORE + + ]) + + eval "$ac_cv_ssl_version" + AC_MSG_RESULT($ssl_version) +fi + +if test "$have_ssl" != yes; then + LIBSSL=""; +else + AC_DEFINE(HAVE_SSL, 1, [If we are going to use OpenSSL]) + ac_cv_have_ssl="have_ssl=yes \ + ac_ssl_includes=$ac_ssl_includes ac_ssl_libraries=$ac_ssl_libraries ac_ssl_rsaref=$ac_ssl_rsaref" + + + ssl_libraries="$ac_ssl_libraries" + ssl_includes="$ac_ssl_includes" + + if test "$ac_ssl_rsaref" = yes; then + LIBSSL="-lssl -lcrypto -lRSAglue -lrsaref" + fi + + if test $ssl_version = "old"; then + AC_DEFINE(HAVE_OLD_SSL_API, 1, [Define if you have OpenSSL < 0.9.6]) + fi +fi + +if test "$ssl_includes" = "/usr/include" || test "$ssl_includes" = "/usr/local/include" || test -z "$ssl_includes"; then + SSL_INCLUDES=""; +else + SSL_INCLUDES="-I$ssl_includes" +fi + +if test "$ssl_libraries" = "/usr/lib" || test "$ssl_libraries" = "/usr/local/lib" || test -z "$ssl_libraries"; then + SSL_LDFLAGS="" +else + SSL_LDFLAGS="-L$ssl_libraries -R$ssl_libraries" +fi + +AC_SUBST(SSL_INCLUDES) +AC_SUBST(SSL_LDFLAGS) +AC_SUBST(LIBSSL) +]) + +AC_DEFUN(KDE_CHECK_STRLCPY, +[ + AC_REQUIRE([AC_CHECK_STRLCAT]) + AC_REQUIRE([AC_CHECK_STRLCPY]) + AC_CHECK_SIZEOF(size_t) + AC_CHECK_SIZEOF(unsigned long) + + AC_MSG_CHECKING([sizeof size_t == sizeof unsigned long]) + AC_TRY_COMPILE(,[ + #if SIZEOF_SIZE_T != SIZEOF_UNSIGNED_LONG + choke me + #endif + ],AC_MSG_RESULT([yes]),[ + AC_MSG_RESULT(no) + AC_MSG_ERROR([ + Apparently on your system our assumption sizeof size_t == sizeof unsigned long + does not apply. Please mail kde-devel@kde.org with a description of your system! + ]) + ]) +]) + +AC_DEFUN(KDE_CHECK_BINUTILS, +[ + AC_MSG_CHECKING([if ld supports unversioned version maps]) + + kde_save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map" + echo "{ local: extern \"C++\" { foo }; };" > conftest.map + AC_TRY_LINK([int foo;], +[ +#ifdef __INTEL_COMPILER +icc apparently does not support libtools version-info and version-script +at the same time. Dunno where the bug is, but until somebody figured out, +better disable the optional version scripts. +#endif + + foo = 42; +], kde_supports_versionmaps=yes, kde_supports_versionmaps=no) + LDFLAGS="$kde_save_LDFLAGS" + rm -f conftest.map + AM_CONDITIONAL(include_VERSION_SCRIPT, + [test "$kde_supports_versionmaps" = "yes" && test "$kde_use_debug_code" = "no"]) + + AC_MSG_RESULT($kde_supports_versionmaps) +]) + +AC_DEFUN([AM_PROG_OBJC],[ +AC_CHECK_PROGS(OBJC, gcc, gcc) +test -z "$OBJC" && AC_MSG_ERROR([no acceptable objective-c gcc found in \$PATH]) +if test "x${OBJCFLAGS-unset}" = xunset; then + OBJCFLAGS="-g -O2" +fi +AC_SUBST(OBJCFLAGS) +_AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES(OBJC)]) +])