acinclude.m4.in
上传用户:center1979
上传日期:2022-07-26
资源大小:50633k
文件大小:162k
源码类别:

OpenGL

开发平台:

Visual C++

  1.   fi
  2. ])
  3. AC_DEFUN([KDE_CHECK_FOR_BAD_COMPILER],
  4. [
  5.   AC_MSG_CHECKING([whether $CC is blacklisted])
  6.   dnl In theory we have tu run this test against $CC and $CXX
  7.   dnl in C and in C++ mode, because its perfectly legal for
  8.   dnl the user to mix compiler versions, since C has a defined
  9.   dnl ABI. 
  10.   dnl 
  11.   dnl For now, we assume the user is not on crack.
  12.   AC_TRY_COMPILE([
  13. #ifdef __GNUC__
  14. #if __GNUC__ == 4 && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 0
  15. choke me
  16. #endif
  17. #endif
  18. ], ,
  19.   kde_bad_compiler=no, 
  20.   kde_bad_compiler=yes
  21. )
  22.   AC_MSG_RESULT($kde_bad_compiler)
  23. if test "$kde_bad_compiler" = "yes"; then
  24.   AC_MSG_ERROR([
  25. This particular compiler version is blacklisted because it
  26. is known to miscompile KDE. Please use a newer version, or
  27. if that is not yet available, choose an older version. 
  28. Please do not report a bug or bother us reporting this
  29. configure error. We know about it, and we introduced
  30. it by intention to avoid untraceable bugs or crashes in KDE.
  31. ])
  32. fi
  33. ])
  34. AC_DEFUN([KDE_CHECK_FOR_OPT_NOINLINE_MATCH],
  35. [
  36.   AC_CACHE_CHECK([whether system headers can cope with -O2 -fno-inline],
  37.     kde_cv_opt_noinline_match,
  38.   [
  39.   kde_cv_opt_noinline_match=irrelevant
  40.   dnl if we don't use both -O2 and -fno-inline, this check is moot
  41.   if echo "$CFLAGS" | grep -e -O2 >/dev/null 2>/dev/null 
  42.      && echo "$CFLAGS" | grep -e -fno-inline >/dev/null 2>/dev/null ; then
  43.     ac_cflags_save="$CFLAGS"
  44.     CFLAGS="$CFLAGS -D_USE_GNU"
  45.     AC_TRY_LINK([
  46.   #include <string.h>
  47. ], [  const char *pt, *et;
  48.   et = __extension__      ({ char __a0, __a1, __a2;       (__builtin_constant_p (  ";,"  ) && ((size_t)(const void *)((   ";,"   )+ 1) - (size_t)(const void *)(   ";,"   ) == 1)        ? ((__a0 =((__const char  *) (  ";,"  ))[0], __a0 == '')     ? ((void) (  pt ),((void *)0) )        : ((__a1 = ((__const char *) (  ";,"  ))[1], __a1== '')      ? (__extension__ (__builtin_constant_p (  __a0 ) && ( __a0 ) == ''   ? (char *) __rawmemchr (   pt  ,   __a0)       : strchr(   pt  ,   __a0 )))   : ((__a2 = ((__const char *) (  ";,"  ))[2], __a2 == '')      ? __strpbrk_c2 (  pt , __a0, __a1)      :(((__const char *) (  ";,"  ))[3] == ''     ? __strpbrk_c3 (  pt ,__a0, __a1, __a2): strpbrk (  pt ,   ";,"  ))))) : strpbrk (  pt ,  ";,"  )); }) ;
  49. ],
  50.     kde_cv_opt_noinline_match=yes,
  51.     kde_cv_opt_noinline_match=no
  52.     )
  53.     CFLAGS="$ac_cflags_save"
  54.   fi
  55.   ])
  56. ])
  57. dnl AC_VALIDIFY_CXXFLAGS checks for forbidden flags the user may have given
  58. AC_DEFUN([AC_VALIDIFY_CXXFLAGS],
  59. [dnl
  60. if test "x$kde_use_qt_emb" != "xyes"; then
  61.  AC_REMOVE_FORBIDDEN(CXX, [-fno-rtti -rpath])
  62.  AC_REMOVE_FORBIDDEN(CXXFLAGS, [-fno-rtti -rpath])
  63. else
  64.  AC_REMOVE_FORBIDDEN(CXX, [-rpath])
  65.  AC_REMOVE_FORBIDDEN(CXXFLAGS, [-rpath])
  66. fi
  67. ])
  68. AC_DEFUN([AC_CHECK_COMPILERS],
  69. [
  70.   AC_ARG_ENABLE(debug,
  71.         AC_HELP_STRING([--enable-debug=ARG],[enables debug symbols (yes|no|full) [default=no]]),
  72.   [
  73.     case $enableval in
  74.       yes)
  75.         kde_use_debug_code="yes"
  76.         kde_use_debug_define=no
  77.         ;;
  78.       full)
  79.         kde_use_debug_code="full"
  80.         kde_use_debug_define=no
  81.         ;;
  82.       *)
  83.         kde_use_debug_code="no"
  84.         kde_use_debug_define=yes
  85.         ;;
  86.     esac
  87.   ], 
  88.     [kde_use_debug_code="no"
  89.       kde_use_debug_define=no
  90.   ])
  91.   dnl Just for configure --help
  92.   AC_ARG_ENABLE(dummyoption,
  93.         AC_HELP_STRING([--disable-debug],
  94.           [disables debug output and debug symbols [default=no]]),
  95. [],[])
  96.   AC_ARG_ENABLE(strict,
  97. AC_HELP_STRING([--enable-strict],
  98.       [compiles with strict compiler options (may not work!)]),
  99.    [
  100.     if test $enableval = "no"; then
  101.          kde_use_strict_options="no"
  102.        else
  103.          kde_use_strict_options="yes"
  104.     fi
  105.    ], [kde_use_strict_options="no"])
  106.   AC_ARG_ENABLE(warnings,AC_HELP_STRING([--disable-warnings],[disables compilation with -Wall and similar]),
  107.    [
  108.     if test $enableval = "no"; then
  109.          kde_use_warnings="no"
  110.        else
  111.          kde_use_warnings="yes"
  112.     fi
  113.    ], [kde_use_warnings="yes"])
  114.   dnl enable warnings for debug build
  115.   if test "$kde_use_debug_code" != "no"; then
  116.     kde_use_warnings=yes
  117.   fi
  118.   AC_ARG_ENABLE(profile,AC_HELP_STRING([--enable-profile],[creates profiling infos [default=no]]),
  119.     [kde_use_profiling=$enableval],
  120.     [kde_use_profiling="no"]
  121.   )
  122.   dnl this prevents stupid AC_PROG_CC to add "-g" to the default CFLAGS
  123.   CFLAGS=" $CFLAGS"
  124.   AC_PROG_CC 
  125.   AC_PROG_CPP
  126.   if test "$GCC" = "yes"; then
  127.     if test "$kde_use_debug_code" != "no"; then
  128.       if test $kde_use_debug_code = "full"; then
  129.         CFLAGS="-g3 -fno-inline $CFLAGS"
  130.       else
  131.         CFLAGS="-g -O2 -fno-schedule-insns -fno-inline $CFLAGS"
  132.       fi
  133.     else
  134.       CFLAGS="-O2 $CFLAGS"
  135.     fi
  136.   fi
  137.   if test "$kde_use_debug_define" = "yes"; then
  138.     CFLAGS="-DNDEBUG $CFLAGS"
  139.   fi
  140.   case "$host" in
  141.   *-*-sysv4.2uw*) CFLAGS="-D_UNIXWARE $CFLAGS";;
  142.   *-*-sysv5uw7*) CFLAGS="-D_UNIXWARE7 $CFLAGS";;
  143.   esac
  144.   if test -z "$LDFLAGS" && test "$kde_use_debug_code" = "no" && test "$GCC" = "yes"; then
  145.      LDFLAGS=""
  146.   fi
  147.   CXXFLAGS=" $CXXFLAGS"
  148.   AC_PROG_CXX
  149.   KDE_CHECK_FOR_BAD_COMPILER
  150.   if test "$GXX" = "yes" || test "$CXX" = "KCC"; then
  151.     if test "$kde_use_debug_code" != "no"; then
  152.       if test "$CXX" = "KCC"; then
  153.         CXXFLAGS="+K0 -Wall -pedantic -W -Wpointer-arith -Wwrite-strings $CXXFLAGS"
  154.       else
  155.         if test "$kde_use_debug_code" = "full"; then
  156.           CXXFLAGS="-g3 -fno-inline $CXXFLAGS"
  157.         else
  158.           CXXFLAGS="-g -O2 -fno-schedule-insns -fno-inline $CXXFLAGS"
  159.         fi
  160.       fi
  161.       KDE_CHECK_COMPILER_FLAG(fno-builtin,[CXXFLAGS="-fno-builtin $CXXFLAGS"])
  162.       dnl convenience compiler flags
  163.       KDE_CHECK_COMPILER_FLAG(Woverloaded-virtual, [WOVERLOADED_VIRTUAL="-Woverloaded-virtual"], [WOVERLOADED_VRITUAL=""])
  164.       AC_SUBST(WOVERLOADED_VIRTUAL)
  165.     else
  166.       if test "$CXX" = "KCC"; then
  167.         CXXFLAGS="+K3 $CXXFLAGS"
  168.       else
  169.         CXXFLAGS="-O2 $CXXFLAGS"
  170.       fi
  171.     fi
  172.   fi
  173.   if test "$kde_use_debug_define" = "yes"; then
  174.     CXXFLAGS="-DNDEBUG -DNO_DEBUG $CXXFLAGS"
  175.   fi  
  176.   if test "$kde_use_profiling" = "yes"; then
  177.     KDE_CHECK_COMPILER_FLAG(pg,
  178.     [
  179.       CFLAGS="-pg $CFLAGS"
  180.       CXXFLAGS="-pg $CXXFLAGS"
  181.     ])
  182.   fi
  183.   if test "$kde_use_warnings" = "yes"; then
  184.       if test "$GCC" = "yes"; then
  185.         CXXFLAGS="-Wall -W -Wpointer-arith $CXXFLAGS"
  186.         case $host in
  187.           *-*-linux-gnu)
  188.             CFLAGS="-std=iso9899:1990 -W -Wall -Wchar-subscripts -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -D_XOPEN_SOURCE=500 -D_BSD_SOURCE $CFLAGS"
  189.             CXXFLAGS="-ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wchar-subscripts $CXXFLAGS"
  190.             KDE_CHECK_COMPILER_FLAG(Wmissing-format-attribute, [CXXFLAGS="$CXXFLAGS -Wformat-security -Wmissing-format-attribute"])
  191.             KDE_CHECK_C_COMPILER_FLAG(Wmissing-format-attribute, [CFLAGS="$CFLAGS -Wformat-security -Wmissing-format-attribute"])
  192.           ;;
  193.         esac
  194.         KDE_CHECK_COMPILER_FLAG(Wundef,[CXXFLAGS="-Wundef $CXXFLAGS"])
  195.         KDE_CHECK_COMPILER_FLAG(Wno-long-long,[CXXFLAGS="-Wno-long-long $CXXFLAGS"])
  196.         dnl ### FIXME: revert for KDE 4
  197.         KDE_CHECK_COMPILER_FLAG(Wno-non-virtual-dtor,[CXXFLAGS="$CXXFLAGS -Wno-non-virtual-dtor"])
  198.      fi
  199.   fi
  200.   if test "$GXX" = "yes" && test "$kde_use_strict_options" = "yes"; then
  201.     CXXFLAGS="-Wcast-qual -Wshadow -Wcast-align $CXXFLAGS"
  202.   fi
  203.   AC_ARG_ENABLE(pch,
  204.      AC_HELP_STRING([--enable-pch],
  205.                     [enables precompiled header support (currently only KCC or gcc >=3.4+unsermake) [default=no]]),
  206.     [ kde_use_pch=$enableval ],[ kde_use_pch=no ])
  207.  
  208.   HAVE_GCC_VISIBILITY=0
  209.   AC_SUBST([HAVE_GCC_VISIBILITY])
  210.   if test "$GXX" = "yes"; then
  211.     gcc_no_reorder_blocks=NO
  212.     KDE_CHECK_COMPILER_FLAG(fno-reorder-blocks,[gcc_no_reorder_blocks=YES])
  213.     if test $kde_use_debug_code != "no" && 
  214.        test $kde_use_debug_code != "full" && 
  215.        test "YES" = "$gcc_no_reorder_blocks" ; then
  216.           CXXFLAGS="$CXXFLAGS -fno-reorder-blocks"
  217.           CFLAGS="$CFLAGS -fno-reorder-blocks"
  218.     fi
  219.     KDE_CHECK_COMPILER_FLAG(fno-exceptions,[CXXFLAGS="$CXXFLAGS -fno-exceptions"])
  220.     KDE_CHECK_COMPILER_FLAG(fno-check-new, [CXXFLAGS="$CXXFLAGS -fno-check-new"])
  221.     KDE_CHECK_COMPILER_FLAG(fno-common, [CXXFLAGS="$CXXFLAGS -fno-common"])
  222.     KDE_CHECK_COMPILER_FLAG(fexceptions, [USE_EXCEPTIONS="-fexceptions"], USE_EXCEPTIONS= )
  223.     ENABLE_PERMISSIVE_FLAG="-fpermissive"
  224.     if test "$kde_use_pch" = "yes"; then
  225.         AC_MSG_CHECKING(whether gcc supports precompiling c header files)
  226.         echo >conftest.h
  227.         if $CC -x c-header conftest.h >/dev/null 2>/dev/null; then
  228.             kde_gcc_supports_pch=yes
  229.             AC_MSG_RESULT(yes)
  230.         else
  231.             kde_gcc_supports_pch=no
  232.             AC_MSG_RESULT(no)
  233.         fi
  234.         if test "$kde_gcc_supports_pch" = "yes"; then
  235.             AC_MSG_CHECKING(whether gcc supports precompiling c++ header files)
  236.             if $CXX -x c++-header conftest.h >/dev/null 2>/dev/null; then
  237.                 kde_gcc_supports_pch=yes
  238.                 AC_MSG_RESULT(yes)
  239.             else
  240.                 kde_gcc_supports_pch=no
  241.                 AC_MSG_RESULT(no)
  242.             fi
  243.         fi
  244.         rm -f conftest.h conftest.h.gch
  245.     fi
  246.     KDE_CHECK_FOR_OPT_NOINLINE_MATCH
  247.     if test "x$kde_cv_opt_noinline_match" = "xno" ; then
  248.        CFLAGS="`echo "$CFLAGS" | sed "s/ -fno-inline//"`"
  249.     fi
  250.   fi
  251.   AM_CONDITIONAL(unsermake_enable_pch, test "$kde_use_pch" = "yes" && test "$kde_gcc_supports_pch" = "yes")
  252.   if test "$CXX" = "KCC"; then
  253.     dnl unfortunately we currently cannot disable exception support in KCC
  254.     dnl because doing so is binary incompatible and Qt by default links with exceptions :-(
  255.     dnl KDE_CHECK_COMPILER_FLAG(-no_exceptions,[CXXFLAGS="$CXXFLAGS --no_exceptions"])
  256.     dnl KDE_CHECK_COMPILER_FLAG(-exceptions, [USE_EXCEPTIONS="--exceptions"], USE_EXCEPTIONS= )
  257.     if test "$kde_use_pch" = "yes"; then
  258.       dnl TODO: support --pch-dir!
  259.       KDE_CHECK_COMPILER_FLAG(-pch,[CXXFLAGS="$CXXFLAGS --pch"])
  260.       dnl the below works (but the dir must exist), but it's
  261.       dnl useless for a whole package.
  262.       dnl The are precompiled headers for each source file, so when compiling
  263.       dnl from scratch, it doesn't make a difference, and they take up
  264.       dnl around ~5Mb _per_ sourcefile.
  265.       dnl KDE_CHECK_COMPILER_FLAG(-pch_dir /tmp,
  266.       dnl   [CXXFLAGS="$CXXFLAGS --pch_dir `pwd`/pcheaders"])
  267.     fi
  268.     dnl this flag controls inlining. by default KCC inlines in optimisation mode
  269.     dnl all implementations that are defined inside the class {} declaration. 
  270.     dnl because of templates-compatibility with broken gcc compilers, this
  271.     dnl can cause excessive inlining. This flag limits it to a sane level
  272.     KDE_CHECK_COMPILER_FLAG(-inline_keyword_space_time=6,[CXXFLAGS="$CXXFLAGS --inline_keyword_space_time=6"])
  273.     KDE_CHECK_COMPILER_FLAG(-inline_auto_space_time=2,[CXXFLAGS="$CXXFLAGS --inline_auto_space_time=2"])
  274.     KDE_CHECK_COMPILER_FLAG(-inline_implicit_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_implicit_space_time=2.0"])
  275.     KDE_CHECK_COMPILER_FLAG(-inline_generated_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_generated_space_time=2.0"])
  276.     dnl Some source files are shared between multiple executables
  277.     dnl (or libraries) and some of those need template instantiations.
  278.     dnl In that case KCC needs to compile those sources with
  279.     dnl --one_instantiation_per_object.  To make it easy for us we compile
  280.     dnl _all_ objects with that flag (--one_per is a shorthand).
  281.     KDE_CHECK_COMPILER_FLAG(-one_per, [CXXFLAGS="$CXXFLAGS --one_per"])
  282.   fi
  283.   AC_SUBST(USE_EXCEPTIONS)
  284.   dnl obsolete macro - provided to keep things going
  285.   USE_RTTI=
  286.   AC_SUBST(USE_RTTI)
  287.   case "$host" in
  288.       *-*-irix*)  test "$GXX" = yes && CXXFLAGS="-D_LANGUAGE_C_PLUS_PLUS -D__LANGUAGE_C_PLUS_PLUS $CXXFLAGS" ;;
  289.       *-*-sysv4.2uw*) CXXFLAGS="-D_UNIXWARE $CXXFLAGS";;
  290.       *-*-sysv5uw7*) CXXFLAGS="-D_UNIXWARE7 $CXXFLAGS";;
  291.       *-*-solaris*) 
  292.         if test "$GXX" = yes; then
  293.           libstdcpp=`$CXX -print-file-name=libstdc++.so`
  294.           if test ! -f $libstdcpp; then
  295.              AC_MSG_ERROR([You've compiled gcc without --enable-shared. This doesn't work with KDE. Please recompile gcc with --enable-shared to receive a libstdc++.so])
  296.           fi
  297.         fi
  298.         ;;
  299.   esac
  300.   AC_VALIDIFY_CXXFLAGS
  301.   AC_PROG_CXXCPP
  302.   if test "$GCC" = yes; then
  303.      NOOPT_CFLAGS=-O0
  304.   fi
  305.   KDE_CHECK_COMPILER_FLAG(O0,[NOOPT_CXXFLAGS=-O0])
  306.   AC_ARG_ENABLE(coverage,
  307.     AC_HELP_STRING([--enable-coverage],[use gcc coverage testing]), [
  308.       if test "$am_cv_CC_dependencies_compiler_type" = "gcc3"; then
  309.         ac_coverage_compiler="-fprofile-arcs -ftest-coverage"
  310.         ac_coverage_linker="-lgcc"
  311.       elif test "$am_cv_CC_dependencies_compiler_type" = "gcc"; then
  312.         ac_coverage_compiler="-fprofile-arcs -ftest-coverage"
  313.         ac_coverage_linker=""
  314.       else
  315.         AC_MSG_ERROR([coverage with your compiler is not supported])
  316.       fi
  317.       CFLAGS="$CFLAGS $ac_coverage_compiler"
  318.       CXXFLAGS="$CXXFLAGS $ac_coverage_compiler"
  319.       LDFLAGS="$LDFLAGS $ac_coverage_linker"
  320.     ])
  321.   AC_SUBST(NOOPT_CXXFLAGS)
  322.   AC_SUBST(NOOPT_CFLAGS)
  323.   AC_SUBST(ENABLE_PERMISSIVE_FLAG)
  324.   KDE_CHECK_NEW_LDFLAGS
  325.   KDE_CHECK_FINAL
  326.   KDE_CHECK_CLOSURE
  327.   KDE_CHECK_NMCHECK
  328.   ifdef([AM_DEPENDENCIES], AC_REQUIRE([KDE_ADD_DEPENDENCIES]), [])
  329. ])
  330. AC_DEFUN([KDE_CHECK_VISIBILITY_GCC_BUG],
  331.   [
  332.     AC_CACHE_CHECK([for gcc -fvisibility-inlines-hidden bug], kde_cv_val_gcc_visibility_bug,
  333.       [
  334.         AC_LANG_SAVE
  335.         AC_LANG_CPLUSPLUS
  336.         safe_CXXFLAGS=$CXXFLAGS
  337.         safe_LDFLAGS=$LDFLAGS
  338.         CXXFLAGS="$CXXFLAGS -fPIC -fvisibility-inlines-hidden -O0"
  339.         LDFLAGS="$LDFLAGS -shared -fPIC"
  340.         AC_TRY_LINK(
  341.         [
  342.           /* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19664 */
  343.   #include <string>
  344.           int some_function( void ) __attribute__ ((visibility("default")));
  345.           int some_function( void )
  346.           {
  347.     std::string s("blafasel");
  348.             return 0;
  349.           }
  350.         ], [/* elvis is alive */],
  351.         kde_cv_val_gcc_visibility_bug=no, kde_cv_val_gcc_visibility_bug=yes)
  352.         CXXFLAGS=$safe_CXXFLAGS
  353.         LDFLAGS=$safe_LDFLAGS
  354.         AC_LANG_RESTORE
  355.       ]
  356.     )
  357.     if test x$kde_cv_val_gcc_visibility_bug = xno; then
  358.       CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden"
  359.     fi
  360.   ]
  361. )
  362. AC_DEFUN([KDE_ENABLE_HIDDEN_VISIBILITY],
  363. [
  364.   AC_BEFORE([AC_PATH_QT_1_3], [KDE_ENABLE_HIDDEN_VISIBILITY])
  365.   AC_MSG_CHECKING([grepping for visibility push/pop in headers])
  366.   if test "x$GXX" = "xyes"; then
  367.     AC_LANG_SAVE
  368.     AC_LANG_CPLUSPLUS
  369.     AC_EGREP_CPP(
  370.        [GCC visibility push],
  371.        [ #include <exception> 
  372.        ], 
  373.     [
  374.       AC_MSG_RESULT(yes)
  375.       kde_stdc_visibility_patched=yes ],
  376.     [ 
  377.       AC_MSG_RESULT(no)
  378.       AC_MSG_WARN([Your libstdc++ doesn't appear to be patched for 
  379.                    visibility support. Disabling -fvisibility=hidden])
  380.       kde_stdc_visibility_patched=no ])
  381.     AC_LANG_RESTORE
  382.     kde_have_gcc_visibility=no
  383.     KDE_CHECK_COMPILER_FLAG(fvisibility=hidden, 
  384.     [
  385.       kde_have_gcc_visibility=yes
  386.       dnl the whole toolchain is just a mess, gcc is just too buggy
  387.       dnl to handle STL with visibility enabled. Lets reconsider 
  388.       dnl when gcc 4.2 is out or when things get fixed in the compiler.
  389.       dnl Contact mueller@kde.org for details.
  390.       AC_ARG_ENABLE(gcc-hidden-visibility,
  391.         AC_HELP_STRING([--enable-gcc-hidden-visibility],[toolchain hidden visibility [default=no]]),
  392.           [kde_have_gcc_visibility=$enableval],
  393.           [kde_have_gcc_visibility=no])
  394.       AC_CACHE_CHECK([if Qt is patched for -fvisibility], kde_cv_val_qt_gcc_visibility_patched,
  395.         [
  396.           AC_LANG_SAVE
  397.           AC_LANG_CPLUSPLUS
  398.           safe_CXXFLAGS=$CXXFLAGS
  399.           CXXFLAGS="$CXXFLAGS $all_includes"
  400.           AC_TRY_COMPILE(
  401.           [
  402. #include <qglobal.h>
  403. #if Q_EXPORT - 0 != 0
  404. /* if this compiles, then Q_EXPORT is undefined */
  405. /* if Q_EXPORT is nonempty, this will break compilation */
  406. #endif
  407.           ], [/* elvis is alive */],
  408.           kde_cv_val_qt_gcc_visibility_patched=no, kde_cv_val_qt_gcc_visibility_patched=yes)
  409.           CXXFLAGS=$safe_CXXFLAGS
  410.           AC_LANG_RESTORE
  411.         ]
  412.       )
  413.       if test x$kde_have_gcc_visibility = "xyes" && test x$kde_stdc_visibility_patched = "xyes" && test x$kde_cv_val_qt_gcc_visibility_patched = "xyes"; then
  414.         CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
  415.         KDE_CHECK_VISIBILITY_GCC_BUG
  416.         HAVE_GCC_VISIBILITY=1
  417.         AC_DEFINE_UNQUOTED(__KDE_HAVE_GCC_VISIBILITY, "$HAVE_GCC_VISIBILITY", [define to 1 if -fvisibility is supported])
  418.       fi
  419.     ])
  420.   fi
  421. ])
  422. AC_DEFUN([KDE_ADD_DEPENDENCIES],
  423. [
  424.    [A]M_DEPENDENCIES(CC)
  425.    [A]M_DEPENDENCIES(CXX)
  426. ])
  427. dnl just a wrapper to clean up configure.in
  428. AC_DEFUN([KDE_PROG_LIBTOOL],
  429. [
  430. AC_REQUIRE([AC_CHECK_COMPILERS])
  431. AC_REQUIRE([AC_ENABLE_SHARED])
  432. AC_REQUIRE([AC_ENABLE_STATIC])
  433. AC_REQUIRE([AC_LIBTOOL_DLOPEN])
  434. AC_REQUIRE([KDE_CHECK_LIB64])
  435. AC_OBJEXT
  436. AC_EXEEXT
  437. AM_PROG_LIBTOOL
  438. AC_LIBTOOL_CXX
  439. LIBTOOL_SHELL="/bin/sh ./libtool"
  440. #  LIBTOOL="$LIBTOOL --silent"
  441. KDE_PLUGIN="-avoid-version -module -no-undefined $(KDE_NO_UNDEFINED) $(KDE_RPATH) $(KDE_MT_LDFLAGS)"
  442. AC_SUBST(KDE_PLUGIN)
  443. # This hack ensures that libtool creates shared libs for kunittest plugins. By default check_LTLIBRARIES makes static libs.
  444. KDE_CHECK_PLUGIN="$(KDE_PLUGIN) -rpath $(libdir)"
  445. AC_SUBST(KDE_CHECK_PLUGIN)
  446. # we patch configure quite some so we better keep that consistent for incremental runs 
  447. AC_SUBST(AUTOCONF,'$(SHELL) $(top_srcdir)/admin/cvs.sh configure || touch configure')
  448. ])
  449. AC_DEFUN([KDE_CHECK_LIB64],
  450. [
  451.     AC_ARG_ENABLE(libsuffix,
  452.         AC_HELP_STRING([--enable-libsuffix],
  453.             [/lib directory suffix (64,32,none,auto[=default])]),
  454.             kdelibsuff=$enableval, kdelibsuff="auto")
  455.     
  456.     if test "$kdelibsuff" = "auto"; then
  457.     
  458. cat > conftest.c << EOF
  459. #include <stdio.h>
  460. int main() {
  461.  return 0;
  462. }
  463. EOF
  464.         kdelibsuff=`$CC conftest.c -o conftest.out; ldd conftest.out |sed -ne '/libc.so/{
  465.     s,.*/lib([[^/]]*)/.*,1, 
  466.     p 
  467. }'`
  468. rm -rf conftest.*
  469.     fi
  470.     if test "$kdelibsuff" = "no" || test "$kdelibsuff" = "none"; then
  471.        kdelibsuff=
  472.     fi
  473.     if test -z "$kdelibsuff"; then
  474.         AC_MSG_RESULT([not using lib directory suffix])
  475.         AC_DEFINE(KDELIBSUFF, [""], Suffix for lib directories)
  476.     else
  477.         if test "$libdir" = '${exec_prefix}/lib'; then
  478.             libdir="$libdir${kdelibsuff}"
  479.             AC_SUBST([libdir], ["$libdir"])  dnl ugly hack for lib64 platforms
  480.         fi
  481.         AC_DEFINE_UNQUOTED(KDELIBSUFF, ["${kdelibsuff}"], Suffix for lib directories)
  482.         AC_MSG_RESULT([using lib directory suffix $kdelibsuff])
  483.     fi
  484. ])
  485. AC_DEFUN([KDE_CHECK_TYPES],
  486. [  AC_CHECK_SIZEOF(int, 4)dnl
  487.    AC_CHECK_SIZEOF(short)dnl
  488.   AC_CHECK_SIZEOF(long, 4)dnl
  489.   AC_CHECK_SIZEOF(char *, 4)dnl
  490. ])dnl
  491. dnl Not used - kept for compat only?
  492. AC_DEFUN([KDE_DO_IT_ALL],
  493. [
  494. AC_CANONICAL_SYSTEM
  495. AC_ARG_PROGRAM
  496. AM_INIT_AUTOMAKE($1, $2)
  497. AM_DISABLE_LIBRARIES
  498. AC_PREFIX_DEFAULT(${KDEDIR:-/usr/local/kde})
  499. AC_CHECK_COMPILERS
  500. KDE_PROG_LIBTOOL
  501. AM_KDE_WITH_NLS
  502. AC_PATH_KDE
  503. ])
  504. AC_DEFUN([AC_CHECK_RPATH],
  505. [
  506. AC_MSG_CHECKING(for rpath)
  507. AC_ARG_ENABLE(rpath,
  508.       AC_HELP_STRING([--disable-rpath],[do not use the rpath feature of ld]),
  509.       USE_RPATH=$enableval, USE_RPATH=yes)
  510. if test -z "$KDE_RPATH" && test "$USE_RPATH" = "yes"; then
  511.   KDE_RPATH="-R $(libdir)"
  512.   if test "$kde_libraries" != "$libdir"; then
  513.       KDE_RPATH="$KDE_RPATH -R $(kde_libraries)"
  514.   fi
  515.   if test -n "$qt_libraries"; then
  516.     KDE_RPATH="$KDE_RPATH -R $(qt_libraries)"
  517.   fi
  518.   dnl $x_libraries is set to /usr/lib in case
  519.   if test -n "$X_LDFLAGS"; then
  520.     X_RPATH="-R $(x_libraries)"
  521.     KDE_RPATH="$KDE_RPATH $X_RPATH"
  522.   fi
  523.   if test -n "$KDE_EXTRA_RPATH"; then
  524.     KDE_RPATH="$KDE_RPATH $(KDE_EXTRA_RPATH)"
  525.   fi
  526. fi
  527. AC_SUBST(KDE_EXTRA_RPATH)
  528. AC_SUBST(KDE_RPATH)
  529. AC_SUBST(X_RPATH)
  530. AC_MSG_RESULT($USE_RPATH)
  531. ])
  532. dnl Check for the type of the third argument of getsockname
  533. AC_DEFUN([AC_CHECK_SOCKLEN_T],
  534. [
  535.    AC_MSG_CHECKING(for socklen_t)
  536.    AC_CACHE_VAL(kde_cv_socklen_t,
  537.    [
  538.       AC_LANG_PUSH(C++)
  539.       kde_cv_socklen_t=no
  540.       AC_TRY_COMPILE([
  541.          #include <sys/types.h>
  542.          #include <sys/socket.h>
  543.       ],
  544.       [
  545.          socklen_t len;
  546.          getpeername(0,0,&len);
  547.       ],
  548.       [
  549.          kde_cv_socklen_t=yes
  550.          kde_cv_socklen_t_equiv=socklen_t
  551.       ])
  552.       AC_LANG_POP(C++)
  553.    ])
  554.    AC_MSG_RESULT($kde_cv_socklen_t)
  555.    if test $kde_cv_socklen_t = no; then
  556.       AC_MSG_CHECKING([for socklen_t equivalent for socket functions])
  557.       AC_CACHE_VAL(kde_cv_socklen_t_equiv,
  558.       [
  559.          kde_cv_socklen_t_equiv=int
  560.          AC_LANG_PUSH(C++)
  561.          for t in int size_t unsigned long "unsigned long"; do
  562.             AC_TRY_COMPILE([
  563.                #include <sys/types.h>
  564.                #include <sys/socket.h>
  565.             ],
  566.             [
  567.                $t len;
  568.                getpeername(0,0,&len);
  569.             ],
  570.             [
  571.                kde_cv_socklen_t_equiv="$t"
  572.                break
  573.             ])
  574.          done
  575.          AC_LANG_POP(C++)
  576.       ])
  577.       AC_MSG_RESULT($kde_cv_socklen_t_equiv)
  578.    fi
  579.    AC_DEFINE_UNQUOTED(kde_socklen_t, $kde_cv_socklen_t_equiv,
  580.                      [type to use in place of socklen_t if not defined])
  581.    AC_DEFINE_UNQUOTED(ksize_t, $kde_cv_socklen_t_equiv,
  582.                      [type to use in place of socklen_t if not defined (deprecated, use kde_socklen_t)])
  583. ])
  584. dnl This is a merge of some macros out of the gettext aclocal.m4
  585. dnl since we don't need anything, I took the things we need
  586. dnl the copyright for them is:
  587. dnl >
  588. dnl Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
  589. dnl This Makefile.in is free software; the Free Software Foundation
  590. dnl gives unlimited permission to copy and/or distribute it,
  591. dnl with or without modifications, as long as this notice is preserved.
  592. dnl This program is distributed in the hope that it will be useful,
  593. dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
  594. dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
  595. dnl PARTICULAR PURPOSE.
  596. dnl >
  597. dnl for this file it is relicensed under LGPL
  598. AC_DEFUN([AM_KDE_WITH_NLS],
  599.   [
  600.     dnl If we use NLS figure out what method
  601.     AM_PATH_PROG_WITH_TEST_KDE(MSGFMT, msgfmt,
  602.         [test -n "`$ac_dir/$ac_word --version 2>&1 | grep 'GNU gettext'`"], msgfmt)
  603.     AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
  604.      if test -z "`$GMSGFMT --version 2>&1 | grep 'GNU gettext'`"; then
  605.         AC_MSG_RESULT([found msgfmt program is not GNU msgfmt; ignore it])
  606.         GMSGFMT=":"
  607.       fi
  608.       MSGFMT=$GMSGFMT
  609.       AC_SUBST(GMSGFMT)
  610.       AC_SUBST(MSGFMT)
  611.       AM_PATH_PROG_WITH_TEST_KDE(XGETTEXT, xgettext,
  612. [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
  613.       dnl Test whether we really found GNU xgettext.
  614.       if test "$XGETTEXT" != ":"; then
  615. dnl If it is no GNU xgettext we define it as : so that the
  616. dnl Makefiles still can work.
  617. if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
  618.   : ;
  619. else
  620.   AC_MSG_RESULT(
  621.     [found xgettext programs is not GNU xgettext; ignore it])
  622.   XGETTEXT=":"
  623. fi
  624.       fi
  625.      AC_SUBST(XGETTEXT)
  626.   ])
  627. # Search path for a program which passes the given test.
  628. # Ulrich Drepper <drepper@cygnus.com>, 1996.
  629. # Stephan Kulow: I appended a _KDE against name conflicts
  630. dnl AM_PATH_PROG_WITH_TEST_KDE(VARIABLE, PROG-TO-CHECK-FOR,
  631. dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
  632. AC_DEFUN([AM_PATH_PROG_WITH_TEST_KDE],
  633. [# Extract the first word of "$2", so it can be a program name with args.
  634. set dummy $2; ac_word=[$]2
  635. AC_MSG_CHECKING([for $ac_word])
  636. AC_CACHE_VAL(ac_cv_path_$1,
  637. [case "[$]$1" in
  638.   /*)
  639.   ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
  640.   ;;
  641.   *)
  642.   IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
  643.   for ac_dir in ifelse([$5], , $PATH, [$5]); do
  644.     test -z "$ac_dir" && ac_dir=.
  645.     if test -f $ac_dir/$ac_word; then
  646.       if [$3]; then
  647. ac_cv_path_$1="$ac_dir/$ac_word"
  648. break
  649.       fi
  650.     fi
  651.   done
  652.   IFS="$ac_save_ifs"
  653. dnl If no 4th arg is given, leave the cache variable unset,
  654. dnl so AC_PATH_PROGS will keep looking.
  655. ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
  656. ])dnl
  657.   ;;
  658. esac])dnl
  659. $1="$ac_cv_path_$1"
  660. if test -n "[$]$1"; then
  661.   AC_MSG_RESULT([$]$1)
  662. else
  663.   AC_MSG_RESULT(no)
  664. fi
  665. AC_SUBST($1)dnl
  666. ])
  667. # Check whether LC_MESSAGES is available in <locale.h>.
  668. # Ulrich Drepper <drepper@cygnus.com>, 1995.
  669. AC_DEFUN([AM_LC_MESSAGES],
  670.   [if test $ac_cv_header_locale_h = yes; then
  671.     AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
  672.       [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
  673.        am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
  674.     if test $am_cv_val_LC_MESSAGES = yes; then
  675.       AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your locale.h file contains LC_MESSAGES])
  676.     fi
  677.   fi])
  678. dnl From Jim Meyering.
  679. dnl FIXME: migrate into libit.
  680. AC_DEFUN([AM_FUNC_OBSTACK],
  681. [AC_CACHE_CHECK([for obstacks], am_cv_func_obstack,
  682.  [AC_TRY_LINK([#include "obstack.h"],
  683.       [struct obstack *mem;obstack_free(mem,(char *) 0)],
  684.       am_cv_func_obstack=yes,
  685.       am_cv_func_obstack=no)])
  686.  if test $am_cv_func_obstack = yes; then
  687.    AC_DEFINE(HAVE_OBSTACK)
  688.  else
  689.    LIBOBJS="$LIBOBJS obstack.o"
  690.  fi
  691. ])
  692. dnl From Jim Meyering.  Use this if you use the GNU error.[ch].
  693. dnl FIXME: Migrate into libit
  694. AC_DEFUN([AM_FUNC_ERROR_AT_LINE],
  695. [AC_CACHE_CHECK([for error_at_line], am_cv_lib_error_at_line,
  696.  [AC_TRY_LINK([],[error_at_line(0, 0, "", 0, "");],
  697.               am_cv_lib_error_at_line=yes,
  698.       am_cv_lib_error_at_line=no)])
  699.  if test $am_cv_lib_error_at_line = no; then
  700.    LIBOBJS="$LIBOBJS error.o"
  701.  fi
  702.  AC_SUBST(LIBOBJS)dnl
  703. ])
  704. # Macro to add for using GNU gettext.
  705. # Ulrich Drepper <drepper@cygnus.com>, 1995.
  706. # Stephan Kulow: I put a KDE in it to avoid name conflicts
  707. AC_DEFUN([AM_KDE_GNU_GETTEXT],
  708.   [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
  709.    AC_REQUIRE([AC_PROG_RANLIB])dnl
  710.    AC_REQUIRE([AC_HEADER_STDC])dnl
  711.    AC_REQUIRE([AC_TYPE_OFF_T])dnl
  712.    AC_REQUIRE([AC_TYPE_SIZE_T])dnl
  713.    AC_REQUIRE([AC_FUNC_ALLOCA])dnl
  714.    AC_REQUIRE([AC_FUNC_MMAP])dnl
  715.    AC_REQUIRE([AM_KDE_WITH_NLS])dnl
  716.    AC_CHECK_HEADERS([limits.h locale.h nl_types.h string.h values.h alloca.h])
  717.    AC_CHECK_FUNCS([getcwd munmap putenv setlocale strchr strcasecmp 
  718. __argz_count __argz_stringify __argz_next])
  719.    AC_MSG_CHECKING(for stpcpy)
  720.    AC_CACHE_VAL(kde_cv_func_stpcpy,
  721.    [
  722.    kde_safe_cxxflags=$CXXFLAGS
  723.    CXXFLAGS="-Werror"
  724.    AC_LANG_SAVE
  725.    AC_LANG_CPLUSPLUS
  726.    AC_TRY_COMPILE([
  727.    #include <string.h>
  728.    ],
  729.    [
  730.    char buffer[200];
  731.    stpcpy(buffer, buffer);
  732.    ],
  733.    kde_cv_func_stpcpy=yes,
  734.    kde_cv_func_stpcpy=no)
  735.    AC_LANG_RESTORE
  736.    CXXFLAGS=$kde_safe_cxxflags
  737.    ])
  738.    AC_MSG_RESULT($kde_cv_func_stpcpy)
  739.    if eval "test "`echo $kde_cv_func_stpcpy`" = yes"; then
  740.      AC_DEFINE(HAVE_STPCPY, 1, [Define if you have stpcpy])
  741.    fi
  742.    AM_LC_MESSAGES
  743.    if test "x$CATOBJEXT" != "x"; then
  744.      if test "x$ALL_LINGUAS" = "x"; then
  745.        LINGUAS=
  746.      else
  747.        AC_MSG_CHECKING(for catalogs to be installed)
  748.        NEW_LINGUAS=
  749.        for lang in ${LINGUAS=$ALL_LINGUAS}; do
  750.          case "$ALL_LINGUAS" in
  751.           *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
  752.          esac
  753.        done
  754.        LINGUAS=$NEW_LINGUAS
  755.        AC_MSG_RESULT($LINGUAS)
  756.      fi
  757.      dnl Construct list of names of catalog files to be constructed.
  758.      if test -n "$LINGUAS"; then
  759.        for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
  760.      fi
  761.    fi
  762.   ])
  763. AC_DEFUN([AC_HAVE_XPM],
  764.  [AC_REQUIRE_CPP()dnl
  765.   AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
  766.  test -z "$XPM_LDFLAGS" && XPM_LDFLAGS=
  767.  test -z "$XPM_INCLUDE" && XPM_INCLUDE=
  768.  AC_ARG_WITH(xpm,AC_HELP_STRING([--without-xpm],[disable color pixmap XPM tests]),
  769. xpm_test=$withval, xpm_test="yes")
  770.  if test "x$xpm_test" = xno; then
  771.    ac_cv_have_xpm=no
  772.  else
  773.    AC_MSG_CHECKING(for XPM)
  774.    AC_CACHE_VAL(ac_cv_have_xpm,
  775.    [
  776.     ac_save_ldflags="$LDFLAGS"
  777.     ac_save_cflags="$CFLAGS"
  778.     if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
  779.       LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm -lX11 -lXext $LIBZ $LIBSOCKET"
  780.     else
  781.       LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm $LIBZ $LIBSOCKET"
  782.     fi
  783.     CFLAGS="$CFLAGS $X_INCLUDES $USER_INCLUDES"
  784.     test -n "$XPM_INCLUDE" && CFLAGS="-I$XPM_INCLUDE $CFLAGS"
  785.     AC_TRY_LINK([#include <X11/xpm.h>],[],
  786. ac_cv_have_xpm="yes",ac_cv_have_xpm="no")
  787.     LDFLAGS="$ac_save_ldflags"
  788.     CFLAGS="$ac_save_cflags"
  789.    ])dnl
  790.   if test "$ac_cv_have_xpm" = no; then
  791.     AC_MSG_RESULT(no)
  792.     XPM_LDFLAGS=""
  793.     XPMINC=""
  794.     $2
  795.   else
  796.     AC_DEFINE(HAVE_XPM, 1, [Define if you have XPM support])
  797.     if test "$XPM_LDFLAGS" = ""; then
  798.        XPMLIB='-lXpm $(LIB_X11)'
  799.     else
  800.        XPMLIB="-L$XPM_LDFLAGS -lXpm "'$(LIB_X11)'
  801.     fi
  802.     if test "$XPM_INCLUDE" = ""; then
  803.        XPMINC=""
  804.     else
  805.        XPMINC="-I$XPM_INCLUDE"
  806.     fi
  807.     AC_MSG_RESULT(yes)
  808.     $1
  809.   fi
  810.  fi
  811.  AC_SUBST(XPMINC)
  812.  AC_SUBST(XPMLIB)
  813. ])
  814. AC_DEFUN([AC_HAVE_DPMS],
  815.  [AC_REQUIRE_CPP()dnl
  816.   AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
  817.  test -z "$DPMS_LDFLAGS" && DPMS_LDFLAGS=
  818.  test -z "$DPMS_INCLUDE" && DPMS_INCLUDE=
  819.  DPMS_LIB=
  820.  AC_ARG_WITH(dpms,AC_HELP_STRING([--without-dpms],[disable DPMS power saving]),
  821. dpms_test=$withval, dpms_test="yes")
  822.  if test "x$dpms_test" = xno; then
  823.    ac_cv_have_dpms=no
  824.  else
  825.    AC_MSG_CHECKING(for DPMS)
  826.    dnl Note: ac_cv_have_dpms can be no, yes, or -lXdpms.
  827.    dnl 'yes' means DPMS_LIB="", '-lXdpms' means DPMS_LIB="-lXdpms".
  828.    AC_CACHE_VAL(ac_cv_have_dpms,
  829.    [
  830.     if test "x$kde_use_qt_emb" = "xyes" || test "x$kde_use_qt_mac" = "xyes"; then
  831.       AC_MSG_RESULT(no)
  832.       ac_cv_have_dpms="no"
  833.     else
  834.       ac_save_ldflags="$LDFLAGS"
  835.       ac_save_cflags="$CFLAGS"
  836.       ac_save_libs="$LIBS"
  837.       LDFLAGS="$LDFLAGS $DPMS_LDFLAGS $all_libraries"
  838.       LIBS="-lX11 -lXext $LIBSOCKET"
  839.       CFLAGS="$CFLAGS $X_INCLUDES"
  840.       test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS"
  841.       AC_TRY_LINK([
  842.   #include <X11/Xproto.h>
  843.   #include <X11/X.h>
  844.   #include <X11/Xlib.h>
  845.   #include <X11/extensions/dpms.h>
  846.   int foo_test_dpms()
  847.   { return DPMSSetTimeouts( 0, 0, 0, 0 ); }],[],
  848.   ac_cv_have_dpms="yes", [
  849.               LIBS="-lXdpms $LIBS"
  850.               AC_TRY_LINK([
  851.           #include <X11/Xproto.h>
  852.            #include <X11/X.h>
  853.            #include <X11/Xlib.h>
  854.            #include <X11/extensions/dpms.h>
  855.            int foo_test_dpms()
  856.            { return DPMSSetTimeouts( 0, 0, 0, 0 ); }],[],
  857.            [
  858.                   ac_cv_have_dpms="-lXdpms"
  859.                   ],ac_cv_have_dpms="no")
  860.               ])
  861.       LDFLAGS="$ac_save_ldflags"
  862.       CFLAGS="$ac_save_cflags"
  863.       LIBS="$ac_save_libs"
  864.     fi
  865.    ])dnl
  866.   if test "$ac_cv_have_dpms" = no; then
  867.     AC_MSG_RESULT(no)
  868.     DPMS_LDFLAGS=""
  869.     DPMSINC=""
  870.     $2
  871.   else
  872.     AC_DEFINE(HAVE_DPMS, 1, [Define if you have DPMS support])
  873.     if test "$ac_cv_have_dpms" = "-lXdpms"; then
  874.        DPMS_LIB="-lXdpms"
  875.     fi
  876.     if test "$DPMS_LDFLAGS" = ""; then
  877.        DPMSLIB="$DPMS_LIB "'$(LIB_X11)'
  878.     else
  879.        DPMSLIB="$DPMS_LDFLAGS $DPMS_LIB "'$(LIB_X11)'
  880.     fi
  881.     if test "$DPMS_INCLUDE" = ""; then
  882.        DPMSINC=""
  883.     else
  884.        DPMSINC="-I$DPMS_INCLUDE"
  885.     fi
  886.     AC_MSG_RESULT(yes)
  887.     $1
  888.   fi
  889.  fi
  890.  ac_save_cflags="$CFLAGS"
  891.  CFLAGS="$CFLAGS $X_INCLUDES"
  892.  test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS"
  893.  AH_TEMPLATE(HAVE_DPMSCAPABLE_PROTO,
  894.    [Define if you have the DPMSCapable prototype in <X11/extensions/dpms.h>])
  895.  AC_CHECK_DECL(DPMSCapable,
  896.    AC_DEFINE(HAVE_DPMSCAPABLE_PROTO),,
  897.    [#include <X11/Xlib.h>
  898.    #include <X11/extensions/dpms.h>])
  899.  AH_TEMPLATE(HAVE_DPMSINFO_PROTO,
  900.    [Define if you have the DPMSInfo prototype in <X11/extensions/dpms.h>])
  901.  AC_CHECK_DECL(DPMSInfo,
  902.    AC_DEFINE(HAVE_DPMSINFO_PROTO),,
  903.    [#include <X11/Xlib.h>
  904.    #include <X11/extensions/dpms.h>])
  905.  CFLAGS="$ac_save_cflags"
  906.  AC_SUBST(DPMSINC)
  907.  AC_SUBST(DPMSLIB)
  908. ])
  909. AC_DEFUN([AC_HAVE_GL],
  910.  [AC_REQUIRE_CPP()dnl
  911.   AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
  912.  test -z "$GL_LDFLAGS" && GL_LDFLAGS=
  913.  test -z "$GL_INCLUDE" && GL_INCLUDE=
  914.  AC_ARG_WITH(gl,AC_HELP_STRING([--without-gl],[disable 3D GL modes]),
  915. gl_test=$withval, gl_test="yes")
  916.  if test "x$kde_use_qt_emb" = "xyes"; then
  917.    # GL and Qt Embedded is a no-go for now.
  918.    ac_cv_have_gl=no
  919.  elif test "x$gl_test" = xno; then
  920.    ac_cv_have_gl=no
  921.  else
  922.    AC_MSG_CHECKING(for GL)
  923.    AC_CACHE_VAL(ac_cv_have_gl,
  924.    [
  925.     AC_LANG_SAVE
  926.     AC_LANG_CPLUSPLUS
  927.     ac_save_ldflags=$LDFLAGS
  928.     ac_save_cxxflags=$CXXFLAGS
  929.     ac_save_libs=$LIBS
  930.     LDFLAGS="$LDFLAGS $GL_LDFLAGS $X_LDFLAGS $all_libraries"
  931.     LIBS="$LIBS -lGL -lGLU"
  932.     test "x$kde_use_qt_mac" != xyes && test "x$kde_use_qt_emb" != xyes && LIBS="$LIBS -lX11"
  933.     LIBS="$LIBS $LIB_XEXT -lm $LIBSOCKET"
  934.     CXXFLAGS="$CFLAGS $X_INCLUDES"
  935.     test -n "$GL_INCLUDE" && CFLAGS="-I$GL_INCLUDE $CFLAGS"
  936.     AC_TRY_LINK([#include <GL/gl.h>
  937. #include <GL/glu.h>
  938. ], [],
  939. ac_cv_have_gl="yes", ac_cv_have_gl="no")
  940.     AC_LANG_RESTORE
  941.     LDFLAGS=$ac_save_ldflags
  942.     CXXFLAGS=$ac_save_cxxflags
  943.     LIBS=$ac_save_libs
  944.    ])dnl
  945.   if test "$ac_cv_have_gl" = "no"; then
  946.     AC_MSG_RESULT(no)
  947.     GL_LDFLAGS=""
  948.     GLINC=""
  949.     $2
  950.   else
  951.     AC_DEFINE(HAVE_GL, 1, [Defines if you have GL (Mesa, OpenGL, ...)])
  952.     if test "$GL_LDFLAGS" = ""; then
  953.        GLLIB='-lGLU -lGL $(LIB_X11)'
  954.     else
  955.        GLLIB="$GL_LDFLAGS -lGLU -lGL "'$(LIB_X11)'
  956.     fi
  957.     if test "$GL_INCLUDE" = ""; then
  958.        GLINC=""
  959.     else
  960.        GLINC="-I$GL_INCLUDE"
  961.     fi
  962.     AC_MSG_RESULT($ac_cv_have_gl)
  963.     $1
  964.   fi
  965.  fi
  966.  AC_SUBST(GLINC)
  967.  AC_SUBST(GLLIB)
  968. ])
  969.  dnl shadow password and PAM magic - maintained by ossi@kde.org
  970. AC_DEFUN([KDE_PAM], [
  971.   AC_REQUIRE([KDE_CHECK_LIBDL])
  972.   want_pam=
  973.   AC_ARG_WITH(pam,
  974.     AC_HELP_STRING([--with-pam[=ARG]],[enable support for PAM: ARG=[yes|no|service name]]),
  975.     [ if test "x$withval" = "xyes"; then
  976.         want_pam=yes
  977.         pam_service=kde
  978.       elif test "x$withval" = "xno"; then
  979.         want_pam=no
  980.       else
  981.         want_pam=yes
  982.         pam_service=$withval
  983.       fi
  984.     ], [ pam_service=kde ])
  985.   use_pam=
  986.   PAMLIBS=
  987.   if test "x$want_pam" != xno; then
  988.     AC_CHECK_LIB(pam, pam_start, [
  989.       AC_CHECK_HEADER(security/pam_appl.h,
  990.         [ pam_header=security/pam_appl.h ],
  991.         [ AC_CHECK_HEADER(pam/pam_appl.h,
  992.             [ pam_header=pam/pam_appl.h ],
  993.             [
  994.     AC_MSG_WARN([PAM detected, but no headers found!
  995. Make sure you have the necessary development packages installed.])
  996.             ]
  997.           )
  998.         ]
  999.       )
  1000.     ], , $LIBDL)
  1001.     if test -z "$pam_header"; then
  1002.       if test "x$want_pam" = xyes; then
  1003.         AC_MSG_ERROR([--with-pam was specified, but cannot compile with PAM!])
  1004.       fi
  1005.     else
  1006.       AC_DEFINE(HAVE_PAM, 1, [Defines if you have PAM (Pluggable Authentication Modules)])
  1007.       PAMLIBS="$PAM_MISC_LIB -lpam $LIBDL"
  1008.       use_pam=yes
  1009.       dnl darwin claims to be something special
  1010.       if test "$pam_header" = "pam/pam_appl.h"; then
  1011.         AC_DEFINE(HAVE_PAM_PAM_APPL_H, 1, [Define if your PAM headers are in pam/ instead of security/])
  1012.       fi
  1013.       dnl test whether struct pam_message is const (Linux) or not (Sun)
  1014.       AC_MSG_CHECKING(for const pam_message)
  1015.       AC_EGREP_HEADER([struct pam_message], $pam_header,
  1016.         [ AC_EGREP_HEADER([const struct pam_message], $pam_header,
  1017.                           [AC_MSG_RESULT([const: Linux-type PAM])],
  1018.                           [AC_MSG_RESULT([nonconst: Sun-type PAM])
  1019.                           AC_DEFINE(PAM_MESSAGE_NONCONST, 1, [Define if your PAM support takes non-const arguments (Solaris)])]
  1020.                           )],
  1021.         [AC_MSG_RESULT([not found - assume const, Linux-type PAM])])
  1022.     fi
  1023.   fi
  1024.   AC_SUBST(PAMLIBS)
  1025. ])
  1026. dnl DEF_PAM_SERVICE(arg name, full name, define name)
  1027. AC_DEFUN([DEF_PAM_SERVICE], [
  1028.   AC_ARG_WITH($1-pam,
  1029.     AC_HELP_STRING([--with-$1-pam=[val]],[override PAM service from --with-pam for $2]),
  1030.     [ if test "x$use_pam" = xyes; then
  1031.         $3_PAM_SERVICE=$withval
  1032.       else
  1033.         AC_MSG_ERROR([Cannot use use --with-$1-pam, as no PAM was detected.
  1034. You may want to enforce it by using --with-pam.])
  1035.       fi
  1036.     ], 
  1037.     [ if test "x$use_pam" = xyes; then
  1038.         $3_PAM_SERVICE="$pam_service"
  1039.       fi
  1040.     ])
  1041.     if test -n "$$3_PAM_SERVICE"; then
  1042.       AC_MSG_RESULT([The PAM service used by $2 will be $$3_PAM_SERVICE])
  1043.       AC_DEFINE_UNQUOTED($3_PAM_SERVICE, "$$3_PAM_SERVICE", [The PAM service to be used by $2])
  1044.     fi
  1045.     AC_SUBST($3_PAM_SERVICE)
  1046. ])
  1047. AC_DEFUN([KDE_SHADOWPASSWD], [
  1048.   AC_REQUIRE([KDE_PAM])
  1049.   AC_CHECK_LIB(shadow, getspent,
  1050.     [ LIBSHADOW="-lshadow"
  1051.       ac_use_shadow=yes
  1052.     ],
  1053.     [ dnl for UnixWare
  1054.       AC_CHECK_LIB(gen, getspent, 
  1055.         [ LIBGEN="-lgen"
  1056.           ac_use_shadow=yes
  1057.         ], 
  1058.         [ AC_CHECK_FUNC(getspent, 
  1059.             [ ac_use_shadow=yes ],
  1060.             [ ac_use_shadow=no ])
  1061. ])
  1062.     ])
  1063.   AC_SUBST(LIBSHADOW)
  1064.   AC_SUBST(LIBGEN)
  1065.   
  1066.   AC_MSG_CHECKING([for shadow passwords])
  1067.   AC_ARG_WITH(shadow,
  1068.     AC_HELP_STRING([--with-shadow],[If you want shadow password support]),
  1069.     [ if test "x$withval" != "xno"; then
  1070.         use_shadow=yes
  1071.       else
  1072.         use_shadow=no
  1073.       fi
  1074.     ], [
  1075.       use_shadow="$ac_use_shadow"
  1076.     ])
  1077.   if test "x$use_shadow" = xyes; then
  1078.     AC_MSG_RESULT(yes)
  1079.     AC_DEFINE(HAVE_SHADOW, 1, [Define if you use shadow passwords])
  1080.   else
  1081.     AC_MSG_RESULT(no)
  1082.     LIBSHADOW=
  1083.     LIBGEN=
  1084.   fi
  1085.   dnl finally make the relevant binaries setuid root, if we have shadow passwds.
  1086.   dnl this still applies, if we could use it indirectly through pam.
  1087.   if test "x$use_shadow" = xyes || 
  1088.      ( test "x$use_pam" = xyes && test "x$ac_use_shadow" = xyes ); then
  1089.       case $host in
  1090.       *-*-freebsd* | *-*-netbsd* | *-*-openbsd*)
  1091. SETUIDFLAGS="-m 4755 -o root";;
  1092.       *)
  1093. SETUIDFLAGS="-m 4755";;
  1094.       esac
  1095.   fi
  1096.   AC_SUBST(SETUIDFLAGS)
  1097. ])
  1098. AC_DEFUN([KDE_PASSWDLIBS], [
  1099.   AC_REQUIRE([KDE_MISC_TESTS]) dnl for LIBCRYPT
  1100.   AC_REQUIRE([KDE_PAM])
  1101.   AC_REQUIRE([KDE_SHADOWPASSWD])
  1102.   if test "x$use_pam" = "xyes"; then 
  1103.     PASSWDLIBS="$PAMLIBS"
  1104.   else
  1105.     PASSWDLIBS="$LIBCRYPT $LIBSHADOW $LIBGEN"
  1106.   fi
  1107.   dnl FreeBSD uses a shadow-like setup, where /etc/passwd holds the users, but
  1108.   dnl /etc/master.passwd holds the actual passwords.  /etc/master.passwd requires
  1109.   dnl root to read, so kcheckpass needs to be root (even when using pam, since pam
  1110.   dnl may need to read /etc/master.passwd).
  1111.   case $host in
  1112.   *-*-freebsd*)
  1113.     SETUIDFLAGS="-m 4755 -o root"
  1114.     ;;
  1115.   *)
  1116.     ;;
  1117.   esac
  1118.   AC_SUBST(PASSWDLIBS)
  1119. ])
  1120. AC_DEFUN([KDE_CHECK_LIBDL],
  1121. [
  1122. AC_CHECK_LIB(dl, dlopen, [
  1123. LIBDL="-ldl"
  1124. ac_cv_have_dlfcn=yes
  1125. ])
  1126. AC_CHECK_LIB(dld, shl_unload, [
  1127. LIBDL="-ldld"
  1128. ac_cv_have_shload=yes
  1129. ])
  1130. AC_SUBST(LIBDL)
  1131. ])
  1132. AC_DEFUN([KDE_CHECK_DLOPEN],
  1133. [
  1134. KDE_CHECK_LIBDL
  1135. AC_CHECK_HEADERS(dlfcn.h dl.h)
  1136. if test "$ac_cv_header_dlfcn_h" = "no"; then
  1137.   ac_cv_have_dlfcn=no
  1138. fi
  1139. if test "$ac_cv_header_dl_h" = "no"; then
  1140.   ac_cv_have_shload=no
  1141. fi
  1142. dnl XXX why change enable_dlopen? its already set by autoconf's AC_ARG_ENABLE
  1143. dnl (MM)
  1144. AC_ARG_ENABLE(dlopen,
  1145. AC_HELP_STRING([--disable-dlopen],[link statically [default=no]]),
  1146. enable_dlopen=$enableval,
  1147. enable_dlopen=yes)
  1148. # override the user's opinion, if we know it better ;)
  1149. if test "$ac_cv_have_dlfcn" = "no" && test "$ac_cv_have_shload" = "no"; then
  1150.   enable_dlopen=no
  1151. fi
  1152. if test "$ac_cv_have_dlfcn" = "yes"; then
  1153.   AC_DEFINE_UNQUOTED(HAVE_DLFCN, 1, [Define if you have dlfcn])
  1154. fi
  1155. if test "$ac_cv_have_shload" = "yes"; then
  1156.   AC_DEFINE_UNQUOTED(HAVE_SHLOAD, 1, [Define if you have shload])
  1157. fi
  1158. if test "$enable_dlopen" = no ; then
  1159.   test -n "$1" && eval $1
  1160. else
  1161.   test -n "$2" && eval $2
  1162. fi
  1163. ])
  1164. AC_DEFUN([KDE_CHECK_DYNAMIC_LOADING],
  1165. [
  1166. KDE_CHECK_DLOPEN(libtool_enable_shared=yes, libtool_enable_static=no)
  1167. KDE_PROG_LIBTOOL
  1168. AC_MSG_CHECKING([dynamic loading])
  1169. eval "`egrep '^build_libtool_libs=' libtool`"
  1170. if test "$build_libtool_libs" = "yes" && test "$enable_dlopen" = "yes"; then
  1171.   dynamic_loading=yes
  1172.   AC_DEFINE_UNQUOTED(HAVE_DYNAMIC_LOADING)
  1173. else
  1174.   dynamic_loading=no
  1175. fi
  1176. AC_MSG_RESULT($dynamic_loading)
  1177. if test "$dynamic_loading" = "yes"; then
  1178.   $1
  1179. else
  1180.   $2
  1181. fi
  1182. ])
  1183. AC_DEFUN([KDE_ADD_INCLUDES],
  1184. [
  1185. if test -z "$1"; then
  1186.   test_include="Pix.h"
  1187. else
  1188.   test_include="$1"
  1189. fi
  1190. AC_MSG_CHECKING([for libg++ ($test_include)])
  1191. AC_CACHE_VAL(kde_cv_libgpp_includes,
  1192. [
  1193. kde_cv_libgpp_includes=no
  1194.    for ac_dir in               
  1195.                                
  1196.      /usr/include/g++          
  1197.      /usr/include              
  1198.      /usr/unsupported/include  
  1199.      /opt/include              
  1200.      $extra_include            
  1201.      ; 
  1202.    do
  1203.      if test -r "$ac_dir/$test_include"; then
  1204.        kde_cv_libgpp_includes=$ac_dir
  1205.        break
  1206.      fi
  1207.    done
  1208. ])
  1209. AC_MSG_RESULT($kde_cv_libgpp_includes)
  1210. if test "$kde_cv_libgpp_includes" != "no"; then
  1211.   all_includes="-I$kde_cv_libgpp_includes $all_includes $USER_INCLUDES"
  1212. fi
  1213. ])
  1214. ])
  1215. AC_DEFUN([KDE_CHECK_LIBPTHREAD],
  1216. [
  1217.   dnl This code is here specifically to handle the
  1218.   dnl various flavors of threading library on FreeBSD
  1219.   dnl 4-, 5-, and 6-, and the (weird) rules around it.
  1220.   dnl There may be an environment PTHREAD_LIBS that 
  1221.   dnl specifies what to use; otherwise, search for it.
  1222.   dnl -pthread is special cased and unsets LIBPTHREAD
  1223.   dnl below if found.
  1224.   LIBPTHREAD=""
  1225.   if test -n "$PTHREAD_LIBS"; then
  1226.     if test "x$PTHREAD_LIBS" = "x-pthread" ; then
  1227.       LIBPTHREAD="PTHREAD"
  1228.     else
  1229.       PTHREAD_LIBS_save="$PTHREAD_LIBS"
  1230.       PTHREAD_LIBS=`echo "$PTHREAD_LIBS_save" | sed -e 's,^-l,,g'`
  1231.       AC_MSG_CHECKING([for pthread_create in $PTHREAD_LIBS])
  1232.       KDE_CHECK_LIB($PTHREAD_LIBS, pthread_create, [
  1233.           LIBPTHREAD="$PTHREAD_LIBS_save"])
  1234.       PTHREAD_LIBS="$PTHREAD_LIBS_save"
  1235.     fi
  1236.   fi
  1237.   dnl Is this test really needed, in the face of the Tru64 test below?
  1238.   if test -z "$LIBPTHREAD"; then
  1239.     AC_CHECK_LIB(pthread, pthread_create, [LIBPTHREAD="-lpthread"])
  1240.   fi
  1241.   dnl This is a special Tru64 check, see BR 76171 issue #18.
  1242.   if test -z "$LIBPTHREAD" ; then
  1243.     AC_MSG_CHECKING([for pthread_create in -lpthread])
  1244.     kde_safe_libs=$LIBS
  1245.     LIBS="$LIBS -lpthread"
  1246.     AC_TRY_LINK([#include <pthread.h>],[(void)pthread_create(0,0,0,0);],[
  1247.         AC_MSG_RESULT(yes)
  1248.         LIBPTHREAD="-lpthread"],[
  1249. AC_MSG_RESULT(no)])
  1250.     LIBS=$kde_safe_libs
  1251.   fi
  1252.   dnl Un-special-case for FreeBSD.
  1253.   if test "x$LIBPTHREAD" = "xPTHREAD" ; then
  1254.     LIBPTHREAD=""
  1255.   fi
  1256.   AC_SUBST(LIBPTHREAD)
  1257. ])
  1258. AC_DEFUN([KDE_CHECK_PTHREAD_OPTION],
  1259. [
  1260.       USE_THREADS=""
  1261.       if test -z "$LIBPTHREAD"; then
  1262.         KDE_CHECK_COMPILER_FLAG(pthread, [USE_THREADS="-D_THREAD_SAFE -pthread"])
  1263.       fi
  1264.     AH_VERBATIM(__svr_define, [
  1265. #if defined(__SVR4) && !defined(__svr4__)
  1266. #define __svr4__ 1
  1267. #endif
  1268. ])
  1269.     case $host_os in
  1270.   solaris*)
  1271. KDE_CHECK_COMPILER_FLAG(mt, [USE_THREADS="-mt"])
  1272.                 CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_SOLARIS -DSVR4"
  1273.      ;;
  1274.         freebsd*)
  1275.                 CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE $PTHREAD_CFLAGS"
  1276.                 ;;
  1277.         aix*)
  1278.                 CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE"
  1279.                 LIBPTHREAD="$LIBPTHREAD -lc_r"
  1280.                 ;;
  1281.         linux*) CPPFLAGS="$CPPFLAGS -D_REENTRANT"
  1282.                 if test "$CXX" = "KCC"; then
  1283.                   CXXFLAGS="$CXXFLAGS --thread_safe"
  1284.   NOOPT_CXXFLAGS="$NOOPT_CXXFLAGS --thread_safe"
  1285.                 fi
  1286.                 ;;
  1287. *)
  1288. ;;
  1289.     esac
  1290.     AC_SUBST(USE_THREADS)
  1291.     AC_SUBST(LIBPTHREAD)
  1292. ])
  1293. AC_DEFUN([KDE_CHECK_THREADING],
  1294. [
  1295.   AC_REQUIRE([KDE_CHECK_LIBPTHREAD])
  1296.   AC_REQUIRE([KDE_CHECK_PTHREAD_OPTION])
  1297.   dnl default is yes if libpthread is found and no if no libpthread is available
  1298.   if test -z "$LIBPTHREAD"; then
  1299.     if test -z "$USE_THREADS"; then
  1300.       kde_check_threading_default=no
  1301.     else
  1302.       kde_check_threading_default=yes
  1303.     fi
  1304.   else
  1305.     kde_check_threading_default=yes
  1306.   fi
  1307.   AC_ARG_ENABLE(threading,AC_HELP_STRING([--disable-threading],[disables threading even if libpthread found]),
  1308.    kde_use_threading=$enableval, kde_use_threading=$kde_check_threading_default)
  1309.   if test "x$kde_use_threading" = "xyes"; then
  1310.     AC_DEFINE(HAVE_LIBPTHREAD, 1, [Define if you have a working libpthread (will enable threaded code)])
  1311.   fi
  1312. ])
  1313. AC_DEFUN([KDE_TRY_LINK_PYTHON],
  1314. [
  1315. if test "$kde_python_link_found" = no; then
  1316. if test "$1" = normal; then
  1317.   AC_MSG_CHECKING(if a Python application links)
  1318. else
  1319.   AC_MSG_CHECKING(if Python depends on $2)
  1320. fi
  1321. AC_CACHE_VAL(kde_cv_try_link_python_$1,
  1322. [
  1323. kde_save_cflags="$CFLAGS"
  1324. CFLAGS="$CFLAGS $PYTHONINC"
  1325. kde_save_libs="$LIBS"
  1326. LIBS="$LIBS $LIBPYTHON $2 $LIBDL $LIBSOCKET"
  1327. kde_save_ldflags="$LDFLAGS"
  1328. LDFLAGS="$LDFLAGS $PYTHONLIB"
  1329. AC_TRY_LINK(
  1330. [
  1331. #include <Python.h>
  1332. ],[
  1333. PySys_SetArgv(1, 0);
  1334. ],
  1335. [kde_cv_try_link_python_$1=yes],
  1336. [kde_cv_try_link_python_$1=no]
  1337. )
  1338. CFLAGS="$kde_save_cflags"
  1339. LIBS="$kde_save_libs"
  1340. LDFLAGS="$kde_save_ldflags"
  1341. ])
  1342. if test "$kde_cv_try_link_python_$1" = "yes"; then
  1343.   AC_MSG_RESULT(yes)
  1344.   kde_python_link_found=yes
  1345.   if test ! "$1" = normal; then
  1346.     LIBPYTHON="$LIBPYTHON $2"
  1347.   fi
  1348.   $3
  1349. else
  1350.   AC_MSG_RESULT(no)
  1351.   $4
  1352. fi
  1353. fi
  1354. ])
  1355. AC_DEFUN([KDE_CHECK_PYTHON_DIR],
  1356. [
  1357. AC_MSG_CHECKING([for Python directory])
  1358.  
  1359. AC_CACHE_VAL(kde_cv_pythondir,
  1360. [
  1361.   if test -z "$PYTHONDIR"; then
  1362.     kde_cv_pythondir=/usr/local
  1363.   else
  1364.     kde_cv_pythondir="$PYTHONDIR"
  1365.   fi
  1366. ])
  1367.  
  1368. AC_ARG_WITH(pythondir,
  1369. AC_HELP_STRING([--with-pythondir=pythondir],[use python installed in pythondir]),
  1370. [
  1371.   ac_python_dir=$withval
  1372. ], ac_python_dir=$kde_cv_pythondir
  1373. )
  1374.  
  1375. AC_MSG_RESULT($ac_python_dir)
  1376. ])
  1377. AC_DEFUN([KDE_CHECK_PYTHON_INTERN],
  1378. [
  1379. AC_REQUIRE([KDE_CHECK_LIBDL])
  1380. AC_REQUIRE([KDE_CHECK_LIBPTHREAD])
  1381. AC_REQUIRE([KDE_CHECK_PYTHON_DIR])
  1382. if test -z "$1"; then
  1383.   version="1.5"
  1384. else
  1385.   version="$1"
  1386. fi
  1387. AC_MSG_CHECKING([for Python$version])
  1388. python_incdirs="$ac_python_dir/include /usr/include /usr/local/include/ $kde_extra_includes"
  1389. AC_FIND_FILE(Python.h, $python_incdirs, python_incdir)
  1390. if test ! -r $python_incdir/Python.h; then
  1391.   AC_FIND_FILE(python$version/Python.h, $python_incdirs, python_incdir)
  1392.   python_incdir=$python_incdir/python$version
  1393.   if test ! -r $python_incdir/Python.h; then
  1394.     python_incdir=no
  1395.   fi
  1396. fi
  1397. PYTHONINC=-I$python_incdir
  1398. python_libdirs="$ac_python_dir/lib$kdelibsuff /usr/lib$kdelibsuff /usr/local /usr/lib$kdelibsuff $kde_extra_libs"
  1399. AC_FIND_FILE(libpython$version.so, $python_libdirs, python_libdir)
  1400. if test ! -r $python_libdir/libpython$version.so; then
  1401.   AC_FIND_FILE(libpython$version.a, $python_libdirs, python_libdir)
  1402.   if test ! -r $python_libdir/libpython$version.a; then
  1403.     AC_FIND_FILE(python$version/config/libpython$version.a, $python_libdirs, python_libdir)
  1404.     python_libdir=$python_libdir/python$version/config
  1405.     if test ! -r $python_libdir/libpython$version.a; then
  1406.       python_libdir=no
  1407.     fi
  1408.   fi
  1409. fi
  1410. PYTHONLIB=-L$python_libdir
  1411. kde_orig_LIBPYTHON=$LIBPYTHON
  1412. if test -z "$LIBPYTHON"; then
  1413.   LIBPYTHON=-lpython$version
  1414. fi
  1415. AC_FIND_FILE(python$version/copy.py, $python_libdirs, python_moddir)
  1416. python_moddir=$python_moddir/python$version
  1417. if test ! -r $python_moddir/copy.py; then
  1418.   python_moddir=no
  1419. fi
  1420. PYTHONMODDIR=$python_moddir
  1421. AC_MSG_RESULT(header $python_incdir library $python_libdir modules $python_moddir)
  1422. if test x$python_incdir = xno ||  test x$python_libdir = xno ||  test x$python_moddir = xno; then
  1423.    LIBPYTHON=$kde_orig_LIBPYTHON
  1424.    test "x$PYTHONLIB" = "x-Lno" && PYTHONLIB=""
  1425.    test "x$PYTHONINC" = "x-Ino" && PYTHONINC=""
  1426.    $2
  1427. else 
  1428.   dnl Note: this test is very weak
  1429.   kde_python_link_found=no
  1430.   KDE_TRY_LINK_PYTHON(normal)
  1431.   KDE_TRY_LINK_PYTHON(m, -lm)
  1432.   KDE_TRY_LINK_PYTHON(pthread, $LIBPTHREAD)
  1433.   KDE_TRY_LINK_PYTHON(tcl, -ltcl)
  1434.   KDE_TRY_LINK_PYTHON(db2, -ldb2)
  1435.   KDE_TRY_LINK_PYTHON(m_and_thread, [$LIBPTHREAD -lm])
  1436.   KDE_TRY_LINK_PYTHON(m_and_thread_and_util, [$LIBPTHREAD -lm -lutil])
  1437.   KDE_TRY_LINK_PYTHON(m_and_thread_and_db3, [$LIBPTHREAD -lm -ldb-3 -lutil])
  1438.   KDE_TRY_LINK_PYTHON(pthread_and_db3, [$LIBPTHREAD -ldb-3])
  1439.   KDE_TRY_LINK_PYTHON(m_and_thread_and_db, [$LIBPTHREAD -lm -ldb -ltermcap -lutil])
  1440.   KDE_TRY_LINK_PYTHON(pthread_and_dl, [$LIBPTHREAD $LIBDL -lutil -lreadline -lncurses -lm])
  1441.   KDE_TRY_LINK_PYTHON(pthread_and_panel_curses, [$LIBPTHREAD $LIBDL -lm -lpanel -lcurses])
  1442.   KDE_TRY_LINK_PYTHON(m_and_thread_and_db_special, [$LIBPTHREAD -lm -ldb -lutil], [],
  1443. [AC_MSG_WARN([it seems, Python depends on another library.
  1444.     Please set LIBPYTHON to '-lpython$version -lotherlib' before calling configure to fix this
  1445.     and contact the authors to let them know about this problem])
  1446. ])
  1447.   LIBPYTHON="$LIBPYTHON $LIBDL $LIBSOCKET"
  1448.   AC_SUBST(PYTHONINC)
  1449.   AC_SUBST(PYTHONLIB)
  1450.   AC_SUBST(LIBPYTHON)
  1451.   AC_SUBST(PYTHONMODDIR)
  1452.   AC_DEFINE(HAVE_PYTHON, 1, [Define if you have the development files for python])
  1453. fi
  1454. ])
  1455. AC_DEFUN([KDE_CHECK_PYTHON],
  1456. [
  1457.   KDE_CHECK_PYTHON_INTERN("2.6",
  1458.     [KDE_CHECK_PYTHON_INTERN("2.5",
  1459.       [KDE_CHECK_PYTHON_INTERN("2.4",
  1460.         [KDE_CHECK_PYTHON_INTERN("2.3", 
  1461.           [KDE_CHECK_PYTHON_INTERN("2.2", 
  1462.             [KDE_CHECK_PYTHON_INTERN("2.1", 
  1463.               [KDE_CHECK_PYTHON_INTERN("2.0", 
  1464.                 [KDE_CHECK_PYTHON_INTERN($1, $2) ])
  1465.               ])
  1466.             ])
  1467.           ])
  1468.         ])
  1469.       ])
  1470.     ])
  1471. ])
  1472. AC_DEFUN([KDE_CHECK_STL],
  1473. [
  1474.     AC_LANG_SAVE
  1475.     AC_LANG_CPLUSPLUS
  1476.     ac_save_CXXFLAGS="$CXXFLAGS"
  1477.     CXXFLAGS="`echo $CXXFLAGS | sed s/-fno-exceptions//`"
  1478.     AC_MSG_CHECKING([if C++ programs can be compiled])
  1479.     AC_CACHE_VAL(kde_cv_stl_works,
  1480.     [
  1481.       AC_TRY_COMPILE([
  1482. #include <string>
  1483. using namespace std;
  1484. ],[
  1485.   string astring="Hallo Welt.";
  1486.   astring.erase(0, 6); // now astring is "Welt"
  1487.   return 0;
  1488. ], kde_cv_stl_works=yes,
  1489.    kde_cv_stl_works=no)
  1490. ])
  1491.    AC_MSG_RESULT($kde_cv_stl_works)
  1492.    if test "$kde_cv_stl_works" = "yes"; then
  1493.      # back compatible
  1494.  AC_DEFINE_UNQUOTED(HAVE_SGI_STL, 1, [Define if you have a STL implementation by SGI])
  1495.    else
  1496.  AC_MSG_ERROR([Your Installation isn't able to compile simple C++ programs.
  1497. Check config.log for details - if you're using a Linux distribution you might miss
  1498. a package named similar to libstdc++-dev.])
  1499.    fi
  1500.    CXXFLAGS="$ac_save_CXXFLAGS"
  1501.    AC_LANG_RESTORE
  1502. ])
  1503. AC_DEFUN([AC_FIND_QIMGIO],
  1504.    [AC_REQUIRE([AC_FIND_JPEG])
  1505. AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
  1506. AC_MSG_CHECKING([for qimgio])
  1507. AC_CACHE_VAL(ac_cv_lib_qimgio,
  1508. [
  1509. AC_LANG_SAVE
  1510. AC_LANG_CPLUSPLUS
  1511. ac_save_LIBS="$LIBS"
  1512. ac_save_CXXFLAGS="$CXXFLAGS"
  1513. LIBS="$all_libraries -lqimgio -lpng -lz $LIBJPEG $LIBQT"
  1514. CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes"
  1515. AC_TRY_RUN(dnl
  1516. [
  1517. #include <qimageio.h>
  1518. #include <qstring.h>
  1519. int main() {
  1520. QString t = "hallo";
  1521. t.fill('t');
  1522. qInitImageIO();
  1523. }
  1524. ],
  1525.             ac_cv_lib_qimgio=yes,
  1526.             ac_cv_lib_qimgio=no,
  1527.     ac_cv_lib_qimgio=no)
  1528. LIBS="$ac_save_LIBS"
  1529. CXXFLAGS="$ac_save_CXXFLAGS"
  1530. AC_LANG_RESTORE
  1531. ])dnl
  1532. if eval "test "`echo $ac_cv_lib_qimgio`" = yes"; then
  1533.   LIBQIMGIO="-lqimgio -lpng -lz $LIBJPEG"
  1534.   AC_MSG_RESULT(yes)
  1535.   AC_DEFINE_UNQUOTED(HAVE_QIMGIO, 1, [Define if you have the Qt extension qimgio available])
  1536.   AC_SUBST(LIBQIMGIO)
  1537. else
  1538.   AC_MSG_RESULT(not found)
  1539. fi
  1540. ])
  1541. AC_DEFUN([AM_DISABLE_LIBRARIES],
  1542. [
  1543.     AC_PROVIDE([AM_ENABLE_STATIC])
  1544.     AC_PROVIDE([AM_ENABLE_SHARED])
  1545.     enable_static=no
  1546.     enable_shared=yes
  1547. ])
  1548. AC_DEFUN([AC_CHECK_UTMP_FILE],
  1549. [
  1550.     AC_MSG_CHECKING([for utmp file])
  1551.     AC_CACHE_VAL(kde_cv_utmp_file,
  1552.     [
  1553.     kde_cv_utmp_file=no
  1554.     for ac_file in    
  1555.                       
  1556. /var/run/utmp 
  1557. /var/adm/utmp 
  1558. /etc/utmp     
  1559.      ; 
  1560.     do
  1561.      if test -r "$ac_file"; then
  1562.        kde_cv_utmp_file=$ac_file
  1563.        break
  1564.      fi
  1565.     done
  1566.     ])
  1567.     if test "$kde_cv_utmp_file" != "no"; then
  1568. AC_DEFINE_UNQUOTED(UTMP, "$kde_cv_utmp_file", [Define the file for utmp entries])
  1569. $1
  1570. AC_MSG_RESULT($kde_cv_utmp_file)
  1571.     else
  1572.      $2
  1573. AC_MSG_RESULT([non found])
  1574.     fi
  1575. ])
  1576. AC_DEFUN([KDE_CREATE_SUBDIRSLIST],
  1577. [
  1578. DO_NOT_COMPILE="$DO_NOT_COMPILE CVS debian bsd-port admin"
  1579. TOPSUBDIRS=""
  1580. if test ! -s $srcdir/subdirs; then
  1581.   dnl Note: Makefile.common creates subdirs, so this is just a fallback
  1582.   files=`cd $srcdir && ls -1`
  1583.   dirs=`for i in $files; do if test -d $i; then echo $i; fi; done`
  1584.   for i in $dirs; do
  1585.     echo $i >> $srcdir/subdirs
  1586.   done
  1587. fi
  1588. ac_topsubdirs=
  1589. if test -s $srcdir/inst-apps; then
  1590.   ac_topsubdirs="`cat $srcdir/inst-apps`"
  1591. elif test -s $srcdir/subdirs; then
  1592.   ac_topsubdirs="`cat $srcdir/subdirs`"
  1593. fi
  1594. for i in $ac_topsubdirs; do
  1595.   AC_MSG_CHECKING([if $i should be compiled])
  1596.   if test -d $srcdir/$i; then
  1597.     install_it="yes"
  1598.     for j in $DO_NOT_COMPILE; do
  1599.       if test $i = $j; then
  1600.         install_it="no"
  1601.       fi
  1602.     done
  1603.   else
  1604.     install_it="no"
  1605.   fi
  1606.   AC_MSG_RESULT($install_it)
  1607.   vari=`echo $i | sed -e 's,[[-+.@]],_,g'`
  1608.   if test $install_it = "yes"; then
  1609.     TOPSUBDIRS="$TOPSUBDIRS $i"
  1610.     eval "$vari""_SUBDIR_included=yes"
  1611.   else
  1612.     eval "$vari""_SUBDIR_included=no"
  1613.   fi
  1614. done
  1615. AC_SUBST(TOPSUBDIRS)
  1616. ])
  1617. AC_DEFUN([KDE_CHECK_NAMESPACES],
  1618. [
  1619. AC_MSG_CHECKING(whether C++ compiler supports namespaces)
  1620. AC_LANG_SAVE
  1621. AC_LANG_CPLUSPLUS
  1622. AC_TRY_COMPILE([
  1623. ],
  1624. [
  1625. namespace Foo {
  1626.   extern int i;
  1627.   namespace Bar {
  1628.     extern int i;
  1629.   }
  1630. }
  1631. int Foo::i = 0;
  1632. int Foo::Bar::i = 1;
  1633. ],[
  1634.   AC_MSG_RESULT(yes)
  1635.   AC_DEFINE(HAVE_NAMESPACES)
  1636. ], [
  1637. AC_MSG_RESULT(no)
  1638. ])
  1639. AC_LANG_RESTORE
  1640. ])
  1641. dnl ------------------------------------------------------------------------
  1642. dnl Check for S_ISSOCK macro. Doesn't exist on Unix SCO. faure@kde.org
  1643. dnl ------------------------------------------------------------------------
  1644. dnl
  1645. AC_DEFUN([AC_CHECK_S_ISSOCK],
  1646. [
  1647. AC_MSG_CHECKING(for S_ISSOCK)
  1648. AC_CACHE_VAL(ac_cv_have_s_issock,
  1649. [
  1650. AC_TRY_LINK(
  1651. [
  1652. #include <sys/stat.h>
  1653. ],
  1654. [
  1655. struct stat buff;
  1656. int b = S_ISSOCK( buff.st_mode );
  1657. ],
  1658. ac_cv_have_s_issock=yes,
  1659. ac_cv_have_s_issock=no)
  1660. ])
  1661. AC_MSG_RESULT($ac_cv_have_s_issock)
  1662. if test "$ac_cv_have_s_issock" = "yes"; then
  1663.   AC_DEFINE_UNQUOTED(HAVE_S_ISSOCK, 1, [Define if sys/stat.h declares S_ISSOCK.])
  1664. fi
  1665. AH_VERBATIM(_ISSOCK,
  1666. [
  1667. #ifndef HAVE_S_ISSOCK
  1668. #define HAVE_S_ISSOCK
  1669. #define S_ISSOCK(mode) (1==0)
  1670. #endif
  1671. ])
  1672. ])
  1673. dnl ------------------------------------------------------------------------
  1674. dnl Check for MAXPATHLEN macro, defines KDEMAXPATHLEN. faure@kde.org
  1675. dnl ------------------------------------------------------------------------
  1676. dnl
  1677. AC_DEFUN([AC_CHECK_KDEMAXPATHLEN],
  1678. [
  1679. AC_MSG_CHECKING(for MAXPATHLEN)
  1680. AC_CACHE_VAL(ac_cv_maxpathlen,
  1681. [
  1682. cat > conftest.$ac_ext <<EOF
  1683. #ifdef STDC_HEADERS
  1684. # include <stdlib.h>
  1685. #endif
  1686. #include <stdio.h>
  1687. #include <sys/param.h>
  1688. #ifndef MAXPATHLEN
  1689. #define MAXPATHLEN 1024
  1690. #endif
  1691. KDE_HELLO MAXPATHLEN
  1692. EOF
  1693. ac_try="$ac_cpp conftest.$ac_ext 2>/dev/null | grep '^KDE_HELLO' >conftest.out"
  1694. if AC_TRY_EVAL(ac_try) && test -s conftest.out; then
  1695.     ac_cv_maxpathlen=`sed 's#KDE_HELLO ##' conftest.out`
  1696. else
  1697.     ac_cv_maxpathlen=1024
  1698. fi
  1699. rm conftest.*
  1700. ])
  1701. AC_MSG_RESULT($ac_cv_maxpathlen)
  1702. AC_DEFINE_UNQUOTED(KDEMAXPATHLEN,$ac_cv_maxpathlen, [Define a safe value for MAXPATHLEN] )
  1703. ])
  1704. AC_DEFUN([KDE_CHECK_HEADER],
  1705. [
  1706.    kde_safe_cppflags=$CPPFLAGS
  1707.    CPPFLAGS="$CPPFLAGS $all_includes"
  1708.    AC_LANG_SAVE
  1709.    AC_LANG_CPLUSPLUS
  1710.    AC_CHECK_HEADER([$1], [$2], [$3], [$4])
  1711.    AC_LANG_RESTORE
  1712.    CPPFLAGS=$kde_safe_cppflags
  1713. ])
  1714. AC_DEFUN([KDE_CHECK_HEADERS],
  1715. [
  1716.    AH_CHECK_HEADERS([$1])
  1717.    AC_LANG_SAVE
  1718.    kde_safe_cppflags=$CPPFLAGS
  1719.    CPPFLAGS="$CPPFLAGS $all_includes"
  1720.    AC_LANG_CPLUSPLUS
  1721.    AC_CHECK_HEADERS([$1], [$2], [$3], [$4])
  1722.    CPPFLAGS=$kde_safe_cppflags
  1723.    AC_LANG_RESTORE
  1724. ])
  1725. AC_DEFUN([KDE_FAST_CONFIGURE],
  1726. [
  1727.   dnl makes configure fast (needs perl)
  1728.   AC_ARG_ENABLE(fast-perl, AC_HELP_STRING([--disable-fast-perl],[disable fast Makefile generation (needs perl)]),
  1729.       with_fast_perl=$enableval, with_fast_perl=yes)
  1730. ])
  1731. AC_DEFUN([KDE_CONF_FILES],
  1732. [
  1733.   val=
  1734.   if test -f $srcdir/configure.files ; then
  1735.     val=`sed -e 's%^%$(top_srcdir)/%' $srcdir/configure.files`
  1736.   fi
  1737.   CONF_FILES=
  1738.   if test -n "$val" ; then
  1739.     for i in $val ; do
  1740.       CONF_FILES="$CONF_FILES $i"
  1741.     done
  1742.   fi
  1743.   AC_SUBST(CONF_FILES)
  1744. ])dnl
  1745. dnl This sets the prefix, for arts and kdelibs
  1746. dnl Do NOT use in any other module.
  1747. dnl It only looks at --prefix, KDEDIR and falls back to /usr/local/kde
  1748. AC_DEFUN([KDE_SET_PREFIX_CORE],
  1749. [
  1750.   unset CDPATH
  1751.   dnl make $KDEDIR the default for the installation
  1752.   AC_PREFIX_DEFAULT(${KDEDIR:-/usr/local/kde})
  1753.   if test "x$prefix" = "xNONE"; then
  1754.     prefix=$ac_default_prefix
  1755.     ac_configure_args="$ac_configure_args --prefix=$prefix"
  1756.   fi
  1757.   # And delete superfluous '/' to make compares easier
  1758.   prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
  1759.   exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
  1760.   kde_libs_prefix='$(prefix)'
  1761.   kde_libs_htmldir='$(kde_htmldir)'
  1762.   AC_SUBST(kde_libs_prefix)
  1763.   AC_SUBST(kde_libs_htmldir)
  1764.   KDE_FAST_CONFIGURE
  1765.   KDE_CONF_FILES
  1766. ])
  1767. AC_DEFUN([KDE_SET_PREFIX],
  1768. [
  1769.   unset CDPATH
  1770.   dnl We can't give real code to that macro, only a value.
  1771.   dnl It only matters for --help, since we set the prefix in this function anyway.
  1772.   AC_PREFIX_DEFAULT(${KDEDIR:-the kde prefix})
  1773.   KDE_SET_DEFAULT_BINDIRS
  1774.   if test "x$prefix" = "xNONE"; then
  1775.     dnl no prefix given: look for kde-config in the PATH and deduce the prefix from it
  1776.     KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend)
  1777.   else
  1778.     dnl prefix given: look for kde-config, preferrably in prefix, otherwise in PATH
  1779.     kde_save_PATH="$PATH"
  1780.     PATH="$exec_prefix/bin:$prefix/bin:$PATH"
  1781.     KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend)
  1782.     PATH="$kde_save_PATH"
  1783.   fi
  1784.   kde_libs_prefix=`$KDECONFIG --prefix`
  1785.   if test -z "$kde_libs_prefix" || test ! -x "$kde_libs_prefix"; then
  1786.        AC_MSG_ERROR([$KDECONFIG --prefix outputed the non existant prefix '$kde_libs_prefix' for kdelibs.
  1787.                     This means it has been moved since you installed it.
  1788.                     This won't work. Please recompile kdelibs for the new prefix.
  1789.                     ])
  1790.   fi
  1791.   kde_libs_htmldir=`$KDECONFIG --install html --expandvars`
  1792.   AC_MSG_CHECKING([where to install])
  1793.   if test "x$prefix" = "xNONE"; then
  1794.     prefix=$kde_libs_prefix
  1795.     AC_MSG_RESULT([$prefix (as returned by kde-config)])
  1796.   else
  1797.     dnl --prefix was given. Compare prefixes and warn (in configure.in.bot.end) if different
  1798.     given_prefix=$prefix
  1799.     AC_MSG_RESULT([$prefix (as requested)])
  1800.   fi
  1801.   # And delete superfluous '/' to make compares easier
  1802.   prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
  1803.   exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
  1804.   given_prefix=`echo "$given_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
  1805.   AC_SUBST(KDECONFIG)
  1806.   AC_SUBST(kde_libs_prefix)
  1807.   AC_SUBST(kde_libs_htmldir)
  1808.   KDE_FAST_CONFIGURE
  1809.   KDE_CONF_FILES
  1810. ])
  1811. pushdef([AC_PROG_INSTALL],
  1812. [
  1813.   dnl our own version, testing for a -p flag
  1814.   popdef([AC_PROG_INSTALL])
  1815.   dnl as AC_PROG_INSTALL works as it works we first have
  1816.   dnl to save if the user didn't specify INSTALL, as the
  1817.   dnl autoconf one overwrites INSTALL and we have no chance to find
  1818.   dnl out afterwards
  1819.   test -n "$INSTALL" && kde_save_INSTALL_given=$INSTALL
  1820.   test -n "$INSTALL_PROGRAM" && kde_save_INSTALL_PROGRAM_given=$INSTALL_PROGRAM
  1821.   test -n "$INSTALL_SCRIPT" && kde_save_INSTALL_SCRIPT_given=$INSTALL_SCRIPT
  1822.   AC_PROG_INSTALL
  1823.   if test -z "$kde_save_INSTALL_given" ; then
  1824.     # OK, user hasn't given any INSTALL, autoconf found one for us
  1825.     # now we test, if it supports the -p flag
  1826.     AC_MSG_CHECKING(for -p flag to install)
  1827.     rm -f confinst.$$.* > /dev/null 2>&1
  1828.     echo "Testtest" > confinst.$$.orig
  1829.     ac_res=no
  1830.     if ${INSTALL} -p confinst.$$.orig confinst.$$.new > /dev/null 2>&1 ; then
  1831.       if test -f confinst.$$.new ; then
  1832.         # OK, -p seems to do no harm to install
  1833. INSTALL="${INSTALL} -p"
  1834. ac_res=yes
  1835.       fi
  1836.     fi
  1837.     rm -f confinst.$$.*
  1838.     AC_MSG_RESULT($ac_res)
  1839.   fi
  1840.   dnl the following tries to resolve some signs and wonders coming up
  1841.   dnl with different autoconf/automake versions
  1842.   dnl e.g.:
  1843.   dnl  *automake 1.4 install-strip sets A_M_INSTALL_PROGRAM_FLAGS to -s
  1844.   dnl   and has INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(A_M_INSTALL_PROGRAM_FLAGS)
  1845.   dnl   it header-vars.am, so there the actual INSTALL_PROGRAM gets the -s
  1846.   dnl  *automake 1.4a (and above) use INSTALL_STRIP_FLAG and only has
  1847.   dnl   INSTALL_PROGRAM = @INSTALL_PROGRAM@ there, but changes the
  1848.   dnl   install-@DIR@PROGRAMS targets to explicitly use that flag
  1849.   dnl  *autoconf 2.13 is dumb, and thinks it can use INSTALL_PROGRAM as
  1850.   dnl   INSTALL_SCRIPT, which breaks with automake <= 1.4
  1851.   dnl  *autoconf >2.13 (since 10.Apr 1999) has not that failure
  1852.   dnl  *sometimes KDE does not use the install-@DIR@PROGRAM targets from
  1853.   dnl   automake (due to broken Makefile.am or whatever) to install programs,
  1854.   dnl   and so does not see the -s flag in automake > 1.4
  1855.   dnl to clean up that mess we:
  1856.   dnl  +set INSTALL_PROGRAM to use INSTALL_STRIP_FLAG
  1857.   dnl   which cleans KDE's program with automake > 1.4;
  1858.   dnl  +set INSTALL_SCRIPT to only use INSTALL, to clean up autoconf's problems
  1859.   dnl   with automake<=1.4
  1860.   dnl  note that dues to this sometimes two '-s' flags are used (if KDE
  1861.   dnl   properly uses install-@DIR@PROGRAMS, but I don't care
  1862.   dnl
  1863.   dnl And to all this comes, that I even can't write in comments variable
  1864.   dnl  names used by automake, because it is so stupid to think I wanted to
  1865.   dnl  _use_ them, therefor I have written A_M_... instead of AM_
  1866.   dnl hmm, I wanted to say something ... ahh yes: Arghhh.
  1867.   if test -z "$kde_save_INSTALL_PROGRAM_given" ; then
  1868.     INSTALL_PROGRAM='${INSTALL} $(INSTALL_STRIP_FLAG)'
  1869.   fi
  1870.   if test -z "$kde_save_INSTALL_SCRIPT_given" ; then
  1871.     INSTALL_SCRIPT='${INSTALL}'
  1872.   fi
  1873. ])dnl
  1874. AC_DEFUN([KDE_LANG_CPLUSPLUS],
  1875. [AC_LANG_CPLUSPLUS
  1876. ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC'
  1877. pushdef([AC_LANG_CPLUSPLUS], [popdef([AC_LANG_CPLUSPLUS]) KDE_LANG_CPLUSPLUS])
  1878. ])
  1879. pushdef([AC_LANG_CPLUSPLUS],
  1880. [popdef([AC_LANG_CPLUSPLUS])
  1881. KDE_LANG_CPLUSPLUS
  1882. ])
  1883. AC_DEFUN([KDE_CHECK_LONG_LONG],
  1884. [
  1885. AC_MSG_CHECKING(for long long)
  1886. AC_CACHE_VAL(kde_cv_c_long_long,
  1887. [
  1888.   AC_LANG_SAVE
  1889.   AC_LANG_CPLUSPLUS
  1890.   AC_TRY_LINK([], [
  1891.   long long foo = 0;
  1892.   foo = foo+1;
  1893.   ],
  1894.   kde_cv_c_long_long=yes, kde_cv_c_long_long=no)
  1895.   AC_LANG_RESTORE
  1896. ])
  1897. AC_MSG_RESULT($kde_cv_c_long_long)
  1898. if test "$kde_cv_c_long_long" = yes; then
  1899.    AC_DEFINE(HAVE_LONG_LONG, 1, [Define if you have long long as datatype])
  1900. fi
  1901. ])
  1902. AC_DEFUN([KDE_CHECK_LIB],
  1903. [
  1904.      kde_save_LDFLAGS="$LDFLAGS"
  1905.      dnl AC_CHECK_LIB modifies LIBS, so save it here
  1906.      kde_save_LIBS="$LIBS"
  1907.      LDFLAGS="$LDFLAGS $all_libraries"
  1908.      case $host_os in
  1909.       aix*) LDFLAGS="-brtl $LDFLAGS"
  1910. test "$GCC" = yes && LDFLAGS="-Wl,$LDFLAGS"
  1911. ;;
  1912.      esac
  1913.      AC_CHECK_LIB($1, $2, $3, $4, $5)
  1914.      LDFLAGS="$kde_save_LDFLAGS"
  1915.      LIBS="$kde_save_LIBS"
  1916. ])
  1917. AC_DEFUN([KDE_JAVA_PREFIX],
  1918. [
  1919. dir=`dirname "$1"`
  1920. base=`basename "$1"`
  1921. list=`ls -1 $dir 2> /dev/null`
  1922. for entry in $list; do 
  1923. if test -d $dir/$entry/bin; then
  1924. case $entry in
  1925.    $base)
  1926. javadirs="$javadirs $dir/$entry/bin"
  1927. ;;
  1928. esac
  1929. elif test -d $dir/$entry/jre/bin; then
  1930. case $entry in
  1931.    $base)
  1932. javadirs="$javadirs $dir/$entry/jre/bin"
  1933. ;;
  1934. esac
  1935. fi
  1936. done
  1937. ])
  1938. dnl KDE_CHEC_JAVA_DIR(onlyjre)
  1939. AC_DEFUN([KDE_CHECK_JAVA_DIR],
  1940. [
  1941. AC_ARG_WITH(java,
  1942. AC_HELP_STRING([--with-java=javadir],[use java installed in javadir, --without-java disables]),
  1943. [  ac_java_dir=$withval
  1944. ], ac_java_dir=""
  1945. )
  1946. AC_MSG_CHECKING([for Java])
  1947. dnl at this point ac_java_dir is either a dir, 'no' to disable, or '' to say look in $PATH
  1948. if test "x$ac_java_dir" = "xno"; then
  1949.    kde_java_bindir=no
  1950.    kde_java_includedir=no
  1951.    kde_java_libjvmdir=no
  1952.    kde_java_libgcjdir=no
  1953.    kde_java_libhpidir=no
  1954. else
  1955.   if test "x$ac_java_dir" = "x"; then
  1956.      
  1957.      
  1958.       dnl No option set -> collect list of candidate paths
  1959.       if test -n "$JAVA_HOME"; then
  1960.         KDE_JAVA_PREFIX($JAVA_HOME)
  1961.       fi
  1962.       KDE_JAVA_PREFIX(/usr/j2se)
  1963.       KDE_JAVA_PREFIX(/usr/lib/j2se)
  1964.       KDE_JAVA_PREFIX(/usr/j*dk*)
  1965.       KDE_JAVA_PREFIX(/usr/lib/j*dk*)
  1966.       KDE_JAVA_PREFIX(/opt/j*sdk*)
  1967.       KDE_JAVA_PREFIX(/usr/lib/java*)
  1968.       KDE_JAVA_PREFIX(/usr/java*)
  1969.       KDE_JAVA_PREFIX(/usr/java/j*dk*)
  1970.       KDE_JAVA_PREFIX(/usr/java/j*re*)
  1971.       KDE_JAVA_PREFIX(/usr/lib/SunJava2*)
  1972.       KDE_JAVA_PREFIX(/usr/lib/SunJava*)
  1973.       KDE_JAVA_PREFIX(/usr/lib/IBMJava2*)
  1974.       KDE_JAVA_PREFIX(/usr/lib/IBMJava*)
  1975.       KDE_JAVA_PREFIX(/opt/java*)
  1976.       kde_cv_path="NONE"
  1977.       kde_save_IFS=$IFS
  1978.       IFS=':'
  1979.       for dir in $PATH; do
  1980.   if test -d "$dir"; then
  1981.       javadirs="$javadirs $dir"
  1982.   fi
  1983.       done
  1984.       IFS=$kde_save_IFS
  1985.       jredirs=
  1986.       dnl Now javadirs contains a list of paths that exist, all ending with bin/
  1987.       for dir in $javadirs; do
  1988.           dnl Check for the java executable
  1989.   if test -x "$dir/java"; then
  1990.       sane_path=$(cd $dir; /bin/pwd)
  1991.       dnl And also check for a libjvm.so somewhere under there
  1992.       dnl Since we have to go to the parent dir, /usr/bin is excluded, /usr is too big.
  1993.               if test "$sane_path" != "/usr/bin"; then
  1994.                   libjvmdir=`find $dir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1`
  1995.   if test ! -f $libjvmdir/libjvm.so; then continue; fi
  1996.   jredirs="$jredirs $dir"
  1997.       fi
  1998.   fi
  1999.       done
  2000.       dnl Now jredirs contains a reduced list, of paths where both java and ../**/libjvm.so was found
  2001.       JAVAC=
  2002.       JAVA=
  2003.       kde_java_bindir=no
  2004.       for dir in $jredirs; do
  2005.   JAVA="$dir/java"
  2006.   kde_java_bindir=$dir
  2007.   if test -x "$dir/javac"; then
  2008. JAVAC="$dir/javac"
  2009.                 break
  2010.   fi
  2011.       done
  2012.       if test -n "$JAVAC"; then
  2013.           dnl this substitution might not work - well, we test for jni.h below
  2014.           kde_java_includedir=`echo $JAVAC | sed -e 's,bin/javac$,include/,'`
  2015.       else
  2016.           kde_java_includedir=no
  2017.       fi
  2018.   else
  2019.     dnl config option set
  2020.     kde_java_bindir=$ac_java_dir/bin
  2021.     if test -x $ac_java_dir/bin/java && test ! -x $ac_java_dir/bin/javac; then
  2022. kde_java_includedir=no
  2023.     else
  2024.         kde_java_includedir=$ac_java_dir/include
  2025.     fi
  2026.   fi
  2027. fi
  2028. dnl At this point kde_java_bindir and kde_java_includedir are either set or "no"
  2029. if test "x$kde_java_bindir" != "xno"; then
  2030.   dnl Look for libjvm.so
  2031.   kde_java_libjvmdir=`find $kde_java_bindir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1`
  2032.   dnl Look for libgcj.so
  2033.   kde_java_libgcjdir=`find $kde_java_bindir/.. -name libgcj.so | sed 's,libgcj.so,,'|head -n 1`
  2034.   dnl Look for libhpi.so and avoid green threads
  2035.   kde_java_libhpidir=`find $kde_java_bindir/.. -name libhpi.so | grep -v green | sed 's,libhpi.so,,' | head -n 1`
  2036.   dnl Now check everything's fine under there
  2037.   dnl the include dir is our flag for having the JDK
  2038.   if test -d "$kde_java_includedir"; then
  2039.     if test ! -x "$kde_java_bindir/javac"; then
  2040.       AC_MSG_ERROR([javac not found under $kde_java_bindir - it seems you passed a wrong --with-java.])
  2041.     fi
  2042.     if test ! -x "$kde_java_bindir/javah"; then
  2043.       AC_MSG_ERROR([javah not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.])
  2044.     fi
  2045.     if test ! -x "$kde_java_bindir/jar"; then
  2046.       AC_MSG_ERROR([jar not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.])
  2047.     fi
  2048.     if test ! -r "$kde_java_includedir/jni.h"; then
  2049.       AC_MSG_ERROR([jni.h not found under $kde_java_includedir. Use --with-java or --without-java.])
  2050.     fi
  2051.     jni_includes="-I$kde_java_includedir"
  2052.     dnl Strange thing, jni.h requires jni_md.h which is under genunix here..
  2053.     dnl and under linux here.. 
  2054.     
  2055.     dnl not needed for gcj
  2056.     if test "x$kde_java_libgcjdir" = "x"; then 
  2057.       test -d "$kde_java_includedir/linux" && jni_includes="$jni_includes -I$kde_java_includedir/linux"
  2058.       test -d "$kde_java_includedir/solaris" && jni_includes="$jni_includes -I$kde_java_includedir/solaris"
  2059.       test -d "$kde_java_includedir/genunix" && jni_includes="$jni_includes -I$kde_java_includedir/genunix"
  2060.     fi
  2061.   else
  2062.     JAVAC=
  2063.     jni_includes=
  2064.   fi
  2065.   if test "x$kde_java_libgcjdir" = "x"; then 
  2066.      if test ! -r "$kde_java_libjvmdir/libjvm.so"; then
  2067.         AC_MSG_ERROR([libjvm.so not found under $kde_java_libjvmdir. Use --without-java.])
  2068.      fi 
  2069.   else
  2070.      if test ! -r "$kde_java_libgcjdir/libgcj.so"; then
  2071.         AC_MSG_ERROR([libgcj.so not found under $kde_java_libgcjdir. Use --without-java.])
  2072.      fi 
  2073.   fi
  2074.   if test ! -x "$kde_java_bindir/java"; then
  2075.       AC_MSG_ERROR([java not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.])
  2076.   fi
  2077.   dnl not needed for gcj compile
  2078.   if test "x$kde_java_libgcjdir" = "x"; then 
  2079.       if test ! -r "$kde_java_libhpidir/libhpi.so"; then
  2080.         AC_MSG_ERROR([libhpi.so not found under $kde_java_libhpidir. Use --without-java.])
  2081.       fi
  2082.   fi
  2083.   if test -n "$jni_includes"; then
  2084.     dnl Check for JNI version
  2085.     AC_LANG_SAVE
  2086.     AC_LANG_CPLUSPLUS
  2087.     ac_cxxflags_safe="$CXXFLAGS"
  2088.     CXXFLAGS="$CXXFLAGS $all_includes $jni_includes"
  2089.     AC_TRY_COMPILE([
  2090.   #include <jni.h>
  2091.       ],
  2092.       [
  2093.   #ifndef JNI_VERSION_1_2
  2094.   Syntax Error
  2095.   #endif
  2096.       ],[ kde_jni_works=yes ],
  2097.       [ kde_jni_works=no ])
  2098.     if test $kde_jni_works = no; then
  2099.       AC_MSG_ERROR([Incorrect version of $kde_java_includedir/jni.h.
  2100.     You need to have Java Development Kit (JDK) version 1.2. 
  2101.     Use --with-java to specify another location.
  2102.     Use --without-java to configure without java support.
  2103.     Or download a newer JDK and try again. 
  2104.     See e.g. http://java.sun.com/products/jdk/1.2 ])
  2105.     fi
  2106.     CXXFLAGS="$ac_cxxflags_safe"    
  2107.     AC_LANG_RESTORE
  2108.     dnl All tests ok, inform and subst the variables
  2109.     JAVAC=$kde_java_bindir/javac
  2110.     JAVAH=$kde_java_bindir/javah
  2111.     JAR=$kde_java_bindir/jar
  2112.     AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is])
  2113.     if test "x$kde_java_libgcjdir" = "x"; then 
  2114.       JVMLIBS="-L$kde_java_libjvmdir -ljvm -L$kde_java_libhpidir -lhpi"
  2115.     else
  2116.       JVMLIBS="-L$kde_java_libgcjdir -lgcj"
  2117.     fi
  2118.     AC_MSG_RESULT([java JDK in $kde_java_bindir])
  2119.   else
  2120.       AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is])
  2121.       AC_MSG_RESULT([java JRE in $kde_java_bindir])
  2122.   fi
  2123. elif test -d "/Library/Java/Home"; then
  2124.   kde_java_bindir="/Library/Java/Home/bin"
  2125.   jni_includes="-I/Library/Java/Home/include"
  2126.   JAVAC=$kde_java_bindir/javac
  2127.   JAVAH=$kde_java_bindir/javah
  2128.   JAR=$kde_java_bindir/jar
  2129.   JVMLIBS="-Wl,-framework,JavaVM"
  2130.   AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is])
  2131.   AC_MSG_RESULT([Apple Java Framework])
  2132. else
  2133.   AC_MSG_RESULT([none found])
  2134. fi
  2135. AC_SUBST(JAVAC)
  2136. AC_SUBST(JAVAH)
  2137. AC_SUBST(JAR)
  2138. AC_SUBST(JVMLIBS)
  2139. AC_SUBST(jni_includes)
  2140. # for backward compat
  2141. kde_cv_java_includedir=$kde_java_includedir
  2142. kde_cv_java_bindir=$kde_java_bindir
  2143. ])
  2144. dnl this is a redefinition of autoconf 2.5x's AC_FOREACH.
  2145. dnl When the argument list becomes big, as in KDE for AC_OUTPUT in
  2146. dnl big packages, m4_foreach is dog-slow.  So use our own version of
  2147. dnl it.  (matz@kde.org)
  2148. m4_define([mm_foreach],
  2149. [m4_pushdef([$1])_mm_foreach($@)m4_popdef([$1])])
  2150. m4_define([mm_car], [[$1]])
  2151. m4_define([mm_car2], [[$@]])
  2152. m4_define([_mm_foreach],
  2153. [m4_if(m4_quote($2), [], [],
  2154.        [m4_define([$1], mm_car($2))$3[]_mm_foreach([$1],
  2155.                                                    mm_car2(m4_shift($2)),
  2156.                                                    [$3])])])
  2157. m4_define([AC_FOREACH],
  2158. [mm_foreach([$1], m4_split(m4_normalize([$2])), [$3])])
  2159. AC_DEFUN([KDE_NEED_FLEX],
  2160. [
  2161. kde_libs_safe=$LIBS
  2162. LIBS="$LIBS $USER_LDFLAGS"
  2163. AM_PROG_LEX
  2164. LIBS=$kde_libs_safe
  2165. if test -z "$LEXLIB"; then
  2166.     AC_MSG_ERROR([You need to have flex installed.])
  2167. fi
  2168. AC_SUBST(LEXLIB)
  2169. ])
  2170. AC_DEFUN([AC_PATH_QTOPIA],
  2171. [
  2172.   dnl TODO: use AC_CACHE_VAL
  2173.   if test -z "$1"; then
  2174.     qtopia_minver_maj=1
  2175.     qtopia_minver_min=5
  2176.     qtopia_minver_pat=0
  2177.   else
  2178.     qtopia_minver_maj=`echo "$1" | sed -e "s/^(.*)..*..*$/1/"`
  2179.     qtopia_minver_min=`echo "$1" | sed -e "s/^.*.(.*)..*$/1/"`
  2180.     qtopia_minver_pat=`echo "$1" | sed -e "s/^.*..*.(.*)$/1/"`
  2181.   fi
  2182.   qtopia_minver="$qtopia_minver_maj$qtopia_minver_min$qtopia_minver_pat"
  2183.   qtopia_minverstr="$qtopia_minver_maj.$qtopia_minver_min.$qtopia_minver_pat"
  2184.   AC_REQUIRE([AC_PATH_QT])
  2185.   AC_MSG_CHECKING([for Qtopia])
  2186.   LIB_QTOPIA="-lqpe"
  2187.   AC_SUBST(LIB_QTOPIA)
  2188.   kde_qtopia_dirs="$QPEDIR /opt/Qtopia"
  2189.   ac_qtopia_incdir=NO
  2190.   AC_ARG_WITH(qtopia-dir,
  2191.               AC_HELP_STRING([--with-qtopia-dir=DIR],[where the root of Qtopia is installed]),
  2192.               [  ac_qtopia_incdir="$withval"/include] ) 
  2193.   
  2194.   qtopia_incdirs=""
  2195.   for dir in $kde_qtopia_dirs; do
  2196.     qtopia_incdirs="$qtopia_incdirs $dir/include"
  2197.   done
  2198.   if test ! "$ac_qtopia_incdir" = "NO"; then
  2199.     qtopia_incdirs="$ac_qtopia_incdir $qtopia_incdirs"
  2200.   fi
  2201.   qtopia_incdir=""
  2202.   AC_FIND_FILE(qpe/qpeapplication.h, $qtopia_incdirs, qtopia_incdir)
  2203.   ac_qtopia_incdir="$qtopia_incdir"
  2204.   if test -z "$qtopia_incdir"; then
  2205.     AC_MSG_ERROR([Cannot find Qtopia headers. Please check your installation.])
  2206.   fi
  2207.   qtopia_ver_maj=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION "(.*)..*..*".*,1,p'`;
  2208.   qtopia_ver_min=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION ".*.(.*)..*".*,1,p'`;
  2209.   qtopia_ver_pat=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION ".*..*.(.*)".*,1,p'`;
  2210.   qtopia_ver="$qtopia_ver_maj$qtopia_ver_min$qtopia_ver_pat"
  2211.   qtopia_verstr="$qtopia_ver_maj.$qtopia_ver_min.$qtopia_ver_pat"
  2212.   if test "$qtopia_ver" -lt "$qtopia_minver"; then
  2213.     AC_MSG_ERROR([found Qtopia version $qtopia_verstr but version $qtopia_minverstr
  2214. is required.])
  2215.   fi
  2216.   AC_LANG_SAVE
  2217.   AC_LANG_CPLUSPLUS
  2218.   ac_cxxflags_safe="$CXXFLAGS"
  2219.   ac_ldflags_safe="$LDFLAGS"
  2220.   ac_libs_safe="$LIBS"
  2221.   CXXFLAGS="$CXXFLAGS -I$qtopia_incdir $all_includes"
  2222.   LDFLAGS="$LDFLAGS $QT_LDFLAGS $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS"
  2223.   LIBS="$LIBS $LIB_QTOPIA $LIBQT"
  2224.   cat > conftest.$ac_ext <<EOF
  2225. #include "confdefs.h"
  2226. #include <qpe/qpeapplication.h>
  2227. #include <qpe/version.h>
  2228. int main( int argc, char **argv )
  2229. {
  2230.     QPEApplication app( argc, argv );
  2231.     return 0;
  2232. }
  2233. EOF
  2234.   if AC_TRY_EVAL(ac_link) && test -s conftest; then
  2235.     rm -f conftest*
  2236.   else
  2237.     rm -f conftest*
  2238.     AC_MSG_ERROR([Cannot link small Qtopia Application. For more details look at
  2239. the end of config.log])
  2240.   fi
  2241.   CXXFLAGS="$ac_cxxflags_safe"
  2242.   LDFLAGS="$ac_ldflags_safe"
  2243.   LIBS="$ac_libs_safe"
  2244.   AC_LANG_RESTORE
  2245.   QTOPIA_INCLUDES="-I$qtopia_incdir"
  2246.   AC_SUBST(QTOPIA_INCLUDES)
  2247.   AC_MSG_RESULT([found version $qtopia_verstr with headers at $qtopia_incdir])
  2248. ])
  2249. AC_DEFUN([KDE_INIT_DOXYGEN],
  2250. [
  2251. AC_MSG_CHECKING([for Qt docs])
  2252. kde_qtdir=
  2253. if test "${with_qt_dir+set}" = set; then
  2254.   kde_qtdir="$with_qt_dir"
  2255. fi
  2256. 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)
  2257. AC_MSG_RESULT($QTDOCDIR)
  2258. AC_SUBST(QTDOCDIR)
  2259. KDE_FIND_PATH(dot, DOT, [], [])
  2260. if test -n "$DOT"; then
  2261.   KDE_HAVE_DOT="YES"
  2262. else
  2263.   KDE_HAVE_DOT="NO"
  2264. fi
  2265. AC_SUBST(KDE_HAVE_DOT)
  2266. KDE_FIND_PATH(doxygen, DOXYGEN, [], [])
  2267. AC_SUBST(DOXYGEN)
  2268. DOXYGEN_PROJECT_NAME="$1"
  2269. DOXYGEN_PROJECT_NUMBER="$2"
  2270. AC_SUBST(DOXYGEN_PROJECT_NAME)
  2271. AC_SUBST(DOXYGEN_PROJECT_NUMBER)
  2272. KDE_HAS_DOXYGEN=no
  2273. if test -n "$DOXYGEN" && test -x "$DOXYGEN" && test -f $QTDOCDIR/qsql.html; then
  2274.   KDE_HAS_DOXYGEN=yes
  2275. fi
  2276. AC_SUBST(KDE_HAS_DOXYGEN)
  2277. ])
  2278. AC_DEFUN([AC_FIND_BZIP2],
  2279. [
  2280. AC_MSG_CHECKING([for bzDecompress in libbz2])
  2281. AC_CACHE_VAL(ac_cv_lib_bzip2,
  2282. [
  2283. AC_LANG_SAVE
  2284. AC_LANG_CPLUSPLUS
  2285. kde_save_LIBS="$LIBS"
  2286. LIBS="$all_libraries $USER_LDFLAGS -lbz2 $LIBSOCKET"
  2287. kde_save_CXXFLAGS="$CXXFLAGS"
  2288. CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES"
  2289. AC_TRY_LINK(dnl
  2290. [
  2291. #define BZ_NO_STDIO
  2292. #include<bzlib.h>
  2293. ],
  2294.             [ bz_stream s; (void) bzDecompress(&s); ],
  2295.             eval "ac_cv_lib_bzip2='-lbz2'",
  2296.             eval "ac_cv_lib_bzip2=no")
  2297. LIBS="$kde_save_LIBS"
  2298. CXXFLAGS="$kde_save_CXXFLAGS"
  2299. AC_LANG_RESTORE
  2300. ])dnl
  2301. AC_MSG_RESULT($ac_cv_lib_bzip2)
  2302. if test ! "$ac_cv_lib_bzip2" = no; then
  2303.   BZIP2DIR=bzip2
  2304.   LIBBZ2="$ac_cv_lib_bzip2"
  2305.   AC_SUBST(LIBBZ2)
  2306. else
  2307.    cxx_shared_flag=
  2308.    ld_shared_flag=
  2309.    KDE_CHECK_COMPILER_FLAG(shared, [
  2310. ld_shared_flag="-shared"
  2311.    ])
  2312.    KDE_CHECK_COMPILER_FLAG(fPIC, [
  2313.         cxx_shared_flag="-fPIC"
  2314.    ])
  2315.    AC_MSG_CHECKING([for BZ2_bzDecompress in (shared) libbz2])
  2316.    AC_CACHE_VAL(ac_cv_lib_bzip2_prefix,
  2317.    [
  2318.    AC_LANG_SAVE
  2319.    AC_LANG_CPLUSPLUS
  2320.    kde_save_LIBS="$LIBS"
  2321.    LIBS="$all_libraries $USER_LDFLAGS $ld_shared_flag -lbz2 $LIBSOCKET"
  2322.    kde_save_CXXFLAGS="$CXXFLAGS"
  2323.    CXXFLAGS="$CFLAGS $cxx_shared_flag $all_includes $USER_INCLUDES"
  2324.    AC_TRY_LINK(dnl
  2325.    [
  2326.    #define BZ_NO_STDIO
  2327.    #include<bzlib.h>
  2328.    ],
  2329.                [ bz_stream s; (void) BZ2_bzDecompress(&s); ],
  2330.                eval "ac_cv_lib_bzip2_prefix='-lbz2'",
  2331.                eval "ac_cv_lib_bzip2_prefix=no")
  2332.    LIBS="$kde_save_LIBS"
  2333.    CXXFLAGS="$kde_save_CXXFLAGS"
  2334.    AC_LANG_RESTORE
  2335.    ])dnl
  2336.    AC_MSG_RESULT($ac_cv_lib_bzip2_prefix)
  2337.    
  2338.    if test ! "$ac_cv_lib_bzip2_prefix" = no; then
  2339.      BZIP2DIR=bzip2
  2340.     
  2341.      LIBBZ2="$ac_cv_lib_bzip2_prefix"
  2342.      AC_SUBST(LIBBZ2)
  2343.      AC_DEFINE(NEED_BZ2_PREFIX, 1, [Define if the libbz2 functions need the BZ2_ prefix])
  2344.    dnl else, we just ignore this
  2345.    fi
  2346. fi
  2347. AM_CONDITIONAL(include_BZIP2, test -n "$BZIP2DIR")
  2348. ])
  2349. dnl ------------------------------------------------------------------------
  2350. dnl Try to find the SSL headers and libraries.
  2351. dnl $(SSL_LDFLAGS) will be -Lsslliblocation (if needed)
  2352. dnl and $(SSL_INCLUDES) will be -Isslhdrlocation (if needed)
  2353. dnl ------------------------------------------------------------------------
  2354. dnl
  2355. AC_DEFUN([KDE_CHECK_SSL],
  2356. [
  2357. LIBSSL="-lssl -lcrypto"
  2358. AC_REQUIRE([KDE_CHECK_LIB64])
  2359. ac_ssl_includes=NO ac_ssl_libraries=NO
  2360. ssl_libraries=""
  2361. ssl_includes=""
  2362. AC_ARG_WITH(ssl-dir,
  2363.     AC_HELP_STRING([--with-ssl-dir=DIR],[where the root of OpenSSL is installed]),
  2364.     [  ac_ssl_includes="$withval"/include
  2365.        ac_ssl_libraries="$withval"/lib$kdelibsuff
  2366.     ])
  2367. want_ssl=yes
  2368. AC_ARG_WITH(ssl,
  2369.     AC_HELP_STRING([--without-ssl],[disable SSL checks]),
  2370.     [want_ssl=$withval])
  2371. if test $want_ssl = yes; then
  2372. AC_MSG_CHECKING(for OpenSSL)
  2373. AC_CACHE_VAL(ac_cv_have_ssl,
  2374. [#try to guess OpenSSL locations
  2375.   
  2376.   ssl_incdirs="/usr/include /usr/local/include /usr/ssl/include /usr/local/ssl/include $prefix/include $kde_extra_includes"
  2377.   ssl_incdirs="$ac_ssl_includes $ssl_incdirs"
  2378.   AC_FIND_FILE(openssl/ssl.h, $ssl_incdirs, ssl_incdir)
  2379.   ac_ssl_includes="$ssl_incdir"
  2380.   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"
  2381.   if test ! "$ac_ssl_libraries" = "NO"; then
  2382.     ssl_libdirs="$ac_ssl_libraries $ssl_libdirs"
  2383.   fi
  2384.   test=NONE
  2385.   ssl_libdir=NONE
  2386.   for dir in $ssl_libdirs; do
  2387.     try="ls -1 $dir/libssl*"
  2388.     if test=`eval $try 2> /dev/null`; then ssl_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi
  2389.   done
  2390.   ac_ssl_libraries="$ssl_libdir"
  2391.   ac_ldflags_safe="$LDFLAGS"
  2392.   ac_libs_safe="$LIBS"
  2393.   LDFLAGS="$LDFLAGS -L$ssl_libdir $all_libraries"
  2394.   LIBS="$LIBS $LIBSSL -lRSAglue -lrsaref"
  2395.   AC_TRY_LINK(,void RSAPrivateEncrypt(void);RSAPrivateEncrypt();,
  2396.   ac_ssl_rsaref="yes"
  2397.   ,
  2398.   ac_ssl_rsaref="no"
  2399.   )
  2400.   LDFLAGS="$ac_ldflags_safe"
  2401.   LIBS="$ac_libs_safe"
  2402.   if test "$ac_ssl_includes" = NO || test "$ac_ssl_libraries" = NO; then
  2403.     have_ssl=no
  2404.   else
  2405.     have_ssl=yes;
  2406.   fi
  2407.   ])
  2408.   eval "$ac_cv_have_ssl"
  2409.   AC_MSG_RESULT([libraries $ac_ssl_libraries, headers $ac_ssl_includes])
  2410.   AC_MSG_CHECKING([whether OpenSSL uses rsaref])
  2411.   AC_MSG_RESULT($ac_ssl_rsaref)
  2412.   AC_MSG_CHECKING([for easter eggs])
  2413.   AC_MSG_RESULT([none found])
  2414. else
  2415.   have_ssl=no
  2416. fi
  2417. if test "$have_ssl" = yes; then
  2418.   AC_MSG_CHECKING(for OpenSSL version)
  2419.   dnl Check for SSL version
  2420.   AC_CACHE_VAL(ac_cv_ssl_version,
  2421.   [
  2422.     cat >conftest.$ac_ext <<EOF
  2423. #include <openssl/opensslv.h>
  2424. #include <stdio.h>
  2425.     int main() {
  2426.  
  2427. #ifndef OPENSSL_VERSION_NUMBER
  2428.       printf("ssl_version=\"error\"n");
  2429. #else
  2430.       if (OPENSSL_VERSION_NUMBER < 0x00906000)
  2431.         printf("ssl_version=\"old\"n");
  2432.       else
  2433.         printf("ssl_version=\"ok\"n");
  2434. #endif
  2435.      return (0);
  2436.     }
  2437. EOF
  2438.     ac_save_CPPFLAGS=$CPPFLAGS
  2439.     if test "$ac_ssl_includes" != "/usr/include"; then
  2440.         CPPFLAGS="$CPPFLAGS -I$ac_ssl_includes"
  2441.     fi
  2442.     if AC_TRY_EVAL(ac_link); then 
  2443.       if eval `./conftest 2>&5`; then
  2444.         if test $ssl_version = error; then
  2445.           AC_MSG_ERROR([$ssl_incdir/openssl/opensslv.h doesn't define OPENSSL_VERSION_NUMBER !])
  2446.         else
  2447.           if test $ssl_version = old; then
  2448.             AC_MSG_WARN([OpenSSL version too old. Upgrade to 0.9.6 at least, see http://www.openssl.org. SSL support disabled.])
  2449.             have_ssl=no
  2450.           fi
  2451.         fi
  2452.         ac_cv_ssl_version="ssl_version=$ssl_version"
  2453.       else
  2454.         AC_MSG_ERROR([Your system couldn't run a small SSL test program.
  2455.         Check config.log, and if you can't figure it out, send a mail to 
  2456.         David Faure <faure@kde.org>, attaching your config.log])
  2457.       fi
  2458.     else
  2459.       AC_MSG_ERROR([Your system couldn't link a small SSL test program.
  2460.       Check config.log, and if you can't figure it out, send a mail to 
  2461.       David Faure <faure@kde.org>, attaching your config.log])
  2462.     fi 
  2463.     CPPFLAGS=$ac_save_CPPFLAGS
  2464.   ])
  2465.   eval "$ac_cv_ssl_version"
  2466.   AC_MSG_RESULT($ssl_version)
  2467. fi
  2468. if test "$have_ssl" != yes; then
  2469.   LIBSSL="";
  2470. else
  2471.   AC_DEFINE(HAVE_SSL, 1, [If we are going to use OpenSSL])
  2472.   ac_cv_have_ssl="have_ssl=yes 
  2473.     ac_ssl_includes=$ac_ssl_includes ac_ssl_libraries=$ac_ssl_libraries ac_ssl_rsaref=$ac_ssl_rsaref"
  2474.   
  2475.   
  2476.   ssl_libraries="$ac_ssl_libraries"
  2477.   ssl_includes="$ac_ssl_includes"
  2478.   if test "$ac_ssl_rsaref" = yes; then
  2479.     LIBSSL="-lssl -lcrypto -lRSAglue -lrsaref" 
  2480.   fi
  2481.   if test $ssl_version = "old"; then
  2482.     AC_DEFINE(HAVE_OLD_SSL_API, 1, [Define if you have OpenSSL < 0.9.6])
  2483.   fi
  2484. fi
  2485. SSL_INCLUDES=
  2486. if test "$ssl_includes" = "/usr/include"; then
  2487.   if test -f /usr/kerberos/include/krb5.h; then
  2488. SSL_INCLUDES="-I/usr/kerberos/include"
  2489.   fi
  2490. elif test  "$ssl_includes" != "/usr/local/include" && test -n "$ssl_includes"; then
  2491.   SSL_INCLUDES="-I$ssl_includes"
  2492. fi
  2493. if test "$ssl_libraries" = "/usr/lib" || test "$ssl_libraries" = "/usr/local/lib" || test -z "$ssl_libraries" || test "$ssl_libraries" = "NONE"; then
  2494.  SSL_LDFLAGS=""
  2495. else
  2496.  SSL_LDFLAGS="-L$ssl_libraries -R$ssl_libraries"
  2497. fi
  2498. AC_SUBST(SSL_INCLUDES)
  2499. AC_SUBST(SSL_LDFLAGS)
  2500. AC_SUBST(LIBSSL)
  2501. ])
  2502. AC_DEFUN([KDE_CHECK_STRLCPY],
  2503. [
  2504.   AC_REQUIRE([AC_CHECK_STRLCAT])
  2505.   AC_REQUIRE([AC_CHECK_STRLCPY])
  2506.   AC_CHECK_SIZEOF(size_t)
  2507.   AC_CHECK_SIZEOF(unsigned long)
  2508.   AC_MSG_CHECKING([sizeof size_t == sizeof unsigned long])
  2509.   AC_TRY_COMPILE(,[
  2510.     #if SIZEOF_SIZE_T != SIZEOF_UNSIGNED_LONG
  2511.        choke me
  2512.     #endif
  2513.     ],AC_MSG_RESULT([yes]),[
  2514.       AC_MSG_RESULT(no)
  2515.       AC_MSG_ERROR([
  2516.        Apparently on your system our assumption sizeof size_t == sizeof unsigned long 
  2517.        does not apply. Please mail kde-devel@kde.org with a description of your system!
  2518.       ])
  2519.   ])
  2520. ])
  2521. AC_DEFUN([KDE_CHECK_BINUTILS],
  2522. [
  2523.   AC_MSG_CHECKING([if ld supports unversioned version maps])
  2524.   kde_save_LDFLAGS="$LDFLAGS"
  2525.   LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
  2526.   echo "{ local: extern "C++" { foo }; };" > conftest.map
  2527.   AC_TRY_LINK([int foo;],
  2528. [
  2529. #ifdef __INTEL_COMPILER
  2530. icc apparently does not support libtools version-info and version-script
  2531. at the same time. Dunno where the bug is, but until somebody figured out,
  2532. better disable the optional version scripts.
  2533. #endif
  2534.   foo = 42;
  2535. ], kde_supports_versionmaps=yes, kde_supports_versionmaps=no)
  2536.   LDFLAGS="$kde_save_LDFLAGS"
  2537.   rm -f conftest.map
  2538.   AM_CONDITIONAL(include_VERSION_SCRIPT, 
  2539.     [test "$kde_supports_versionmaps" = "yes" && test "$kde_use_debug_code" = "no"])
  2540.   AC_MSG_RESULT($kde_supports_versionmaps)
  2541. ])
  2542. AC_DEFUN([AM_PROG_OBJC],[
  2543. AC_CHECK_PROGS(OBJC, gcc, gcc)
  2544. test -z "$OBJC" && AC_MSG_ERROR([no acceptable objective-c gcc found in $PATH])
  2545. if test "x${OBJCFLAGS-unset}" = xunset; then
  2546.    OBJCFLAGS="-g -O2"
  2547. fi
  2548. AC_SUBST(OBJCFLAGS)
  2549. _AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES(OBJC)])
  2550. ])
  2551. AC_DEFUN([KDE_CHECK_PERL],
  2552. [
  2553. KDE_FIND_PATH(perl, PERL, [$bindir $exec_prefix/bin $prefix/bin], [
  2554.     AC_MSG_ERROR([No Perl found in your $PATH.
  2555. We need perl to generate some code.])
  2556. ])
  2557.     AC_SUBST(PERL)
  2558. ])
  2559. AC_DEFUN([KDE_CHECK_LARGEFILE],
  2560. [
  2561. AC_SYS_LARGEFILE
  2562. if test "$ac_cv_sys_file_offset_bits" != no; then
  2563.   CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
  2564. fi
  2565. if test "x$ac_cv_sys_large_files" != "xno"; then
  2566.   CPPFLAGS="$CPPFLAGS -D_LARGE_FILES=1"
  2567. fi
  2568. ])
  2569. dnl A small extension to PKG_CHECK_MODULES (defined in pkg.m4.in)
  2570. dnl which allows to search for libs that get installed into the KDE prefix.
  2571. dnl
  2572. dnl Syntax:  KDE_PKG_CHECK_MODULES(KSTUFF, libkexif >= 0.2 glib = 1.3.4, action-if, action-not)
  2573. dnl defines KSTUFF_LIBS, KSTUFF_CFLAGS, see pkg-config man page
  2574. dnl also defines KSTUFF_PKG_ERRORS on error
  2575. AC_DEFUN([KDE_PKG_CHECK_MODULES], [
  2576.    PKG_CONFIG_PATH="$prefix/lib${kdelibsuff}/pkgconfig:$PKG_CONFIG_PATH"
  2577.    if test "$prefix" != "$kde_libs_prefix"; then
  2578.        PKG_CONFIG_PATH="$kde_libs_prefix/lib${kdelibsuff}/pkgconfig:$PKG_CONFIG_PATH"
  2579.    fi
  2580.    export PKG_CONFIG_PATH
  2581.    PKG_CHECK_MODULES([$1],[$2],[$3],[$4])
  2582. ])
  2583. dnl Check for PIE support in the compiler and linker
  2584. AC_DEFUN([KDE_CHECK_PIE_SUPPORT],
  2585. [
  2586.   AC_CACHE_CHECK([for PIE support], kde_cv_val_pie_support,
  2587.   [
  2588.     AC_LANG_SAVE
  2589.     AC_LANG_CPLUSPLUS
  2590.     safe_CXXFLAGS=$CXXFLAGS
  2591.     safe_LDFLAGS=$LDFLAGS
  2592.     CXXFLAGS="$CXXFLAGS -fPIE"
  2593.     LDFLAGS="$LDFLAGS -pie"
  2594.     AC_TRY_LINK([int foo;], [], [kde_cv_val_pie_support=yes], [kde_cv_val_pie_support=no])
  2595.     CXXFLAGS=$safe_CXXFLAGS
  2596.     LDFLAGS=$safe_LDFLAGS
  2597.     AC_LANG_RESTORE
  2598.   ])
  2599.   AC_MSG_CHECKING(if enabling -pie/fPIE support)
  2600.   AC_ARG_ENABLE(pie,
  2601.     AC_HELP_STRING([--enable-pie],[platform supports PIE linking [default=detect]]),
  2602.       [kde_has_pie_support=$enableval],
  2603.       [kde_has_pie_support=detect])
  2604.   if test "$kde_has_pie_support" = "detect"; then
  2605.     kde_has_pie_support=$kde_cv_val_pie_support
  2606.   fi
  2607.   AC_MSG_RESULT([$kde_has_pie_support])
  2608.   KDE_USE_FPIE=""
  2609.   KDE_USE_PIE=""
  2610.   AC_SUBST([KDE_USE_FPIE])
  2611.   AC_SUBST([KDE_USE_PIE])
  2612.   if test "$kde_has_pie_support" = "yes"; then
  2613.     KDE_USE_FPIE="-fPIE"
  2614.     KDE_USE_PIE="-pie"
  2615.   fi
  2616. ])