You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
11920 lines
366 KiB
11920 lines
366 KiB
## -*- autoconf -*- |
|
|
|
dnl This file is part of the KDE libraries/packages |
|
dnl Copyright (C) 1997 Janos Farkas (chexum@shadow.banki.hu) |
|
dnl (C) 1997,98,99 Stephan Kulow (coolo@kde.org) |
|
|
|
dnl This file is free software; you can redistribute it and/or |
|
dnl modify it under the terms of the GNU Library General Public |
|
dnl License as published by the Free Software Foundation; either |
|
dnl version 2 of the License, or (at your option) any later version. |
|
|
|
dnl This library is distributed in the hope that it will be useful, |
|
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
dnl Library General Public License for more details. |
|
|
|
dnl You should have received a copy of the GNU Library General Public License |
|
dnl along with this library; see the file COPYING.LIB. If not, write to |
|
dnl the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
|
dnl Boston, MA 02110-1301, USA. |
|
|
|
dnl IMPORTANT NOTE: |
|
dnl Please do not modify this file unless you expect your modifications to be |
|
dnl carried into every other module in the repository. |
|
dnl |
|
dnl Single-module modifications are best placed in configure.in for tdelibs |
|
dnl and tdebase or configure.in.in if present. |
|
|
|
# KDE_PATH_X_DIRECT |
|
dnl Internal subroutine of AC_PATH_X. |
|
dnl Set ac_x_includes and/or ac_x_libraries. |
|
AC_DEFUN([KDE_PATH_X_DIRECT], |
|
[ |
|
AC_REQUIRE([KDE_CHECK_LIB64]) |
|
|
|
if test "$ac_x_includes" = NO; then |
|
# Guess where to find include files, by looking for this one X11 .h file. |
|
test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h |
|
|
|
# First, try using that file with no special directory specified. |
|
AC_TRY_CPP([#include <$x_direct_test_include>], |
|
[# We can compile using X headers with no special include directory. |
|
ac_x_includes=], |
|
[# Look for the header file in a standard set of common directories. |
|
# Check X11 before X11Rn because it is often a symlink to the current release. |
|
for ac_dir in \ |
|
/usr/X11/include \ |
|
/usr/X11R6/include \ |
|
/usr/X11R5/include \ |
|
/usr/X11R4/include \ |
|
\ |
|
/usr/include/X11 \ |
|
/usr/include/X11R6 \ |
|
/usr/include/X11R5 \ |
|
/usr/include/X11R4 \ |
|
\ |
|
/usr/local/X11/include \ |
|
/usr/local/X11R6/include \ |
|
/usr/local/X11R5/include \ |
|
/usr/local/X11R4/include \ |
|
\ |
|
/usr/local/include/X11 \ |
|
/usr/local/include/X11R6 \ |
|
/usr/local/include/X11R5 \ |
|
/usr/local/include/X11R4 \ |
|
\ |
|
/usr/X386/include \ |
|
/usr/x386/include \ |
|
/usr/XFree86/include/X11 \ |
|
\ |
|
/usr/include \ |
|
/usr/local/include \ |
|
/usr/unsupported/include \ |
|
/usr/athena/include \ |
|
/usr/local/x11r5/include \ |
|
/usr/lpp/Xamples/include \ |
|
\ |
|
/usr/openwin/include \ |
|
/usr/openwin/share/include \ |
|
; \ |
|
do |
|
if test -r "$ac_dir/$x_direct_test_include"; then |
|
ac_x_includes=$ac_dir |
|
break |
|
fi |
|
done]) |
|
fi # $ac_x_includes = NO |
|
|
|
if test "$ac_x_libraries" = NO; then |
|
# Check for the libraries. |
|
|
|
test -z "$x_direct_test_library" && x_direct_test_library=Xt |
|
test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc |
|
|
|
# See if we find them without any special options. |
|
# Don't add to $LIBS permanently. |
|
ac_save_LIBS="$LIBS" |
|
LIBS="-l$x_direct_test_library $LIBS" |
|
AC_TRY_LINK([#include <X11/Intrinsic.h>], [${x_direct_test_function}(1)], |
|
[LIBS="$ac_save_LIBS" |
|
# We can link X programs with no special library path. |
|
ac_x_libraries=], |
|
[LIBS="$ac_save_LIBS" |
|
# First see if replacing the include by lib works. |
|
# Check X11 before X11Rn because it is often a symlink to the current release. |
|
for ac_dir in `echo "$ac_x_includes" | sed s/include/lib${tdelibsuff}/` \ |
|
/usr/X11/lib${tdelibsuff} \ |
|
/usr/X11R6/lib${tdelibsuff} \ |
|
/usr/X11R5/lib${tdelibsuff} \ |
|
/usr/X11R4/lib${tdelibsuff} \ |
|
\ |
|
/usr/lib${tdelibsuff}/X11 \ |
|
/usr/lib${tdelibsuff}/X11R6 \ |
|
/usr/lib${tdelibsuff}/X11R5 \ |
|
/usr/lib${tdelibsuff}/X11R4 \ |
|
\ |
|
/usr/local/X11/lib${tdelibsuff} \ |
|
/usr/local/X11R6/lib${tdelibsuff} \ |
|
/usr/local/X11R5/lib${tdelibsuff} \ |
|
/usr/local/X11R4/lib${tdelibsuff} \ |
|
\ |
|
/usr/local/lib${tdelibsuff}/X11 \ |
|
/usr/local/lib${tdelibsuff}/X11R6 \ |
|
/usr/local/lib${tdelibsuff}/X11R5 \ |
|
/usr/local/lib${tdelibsuff}/X11R4 \ |
|
\ |
|
/usr/X386/lib${tdelibsuff} \ |
|
/usr/x386/lib${tdelibsuff} \ |
|
/usr/XFree86/lib${tdelibsuff}/X11 \ |
|
\ |
|
/usr/lib${tdelibsuff} \ |
|
/usr/local/lib${tdelibsuff} \ |
|
/usr/unsupported/lib${tdelibsuff} \ |
|
/usr/athena/lib${tdelibsuff} \ |
|
/usr/local/x11r5/lib${tdelibsuff} \ |
|
/usr/lpp/Xamples/lib${tdelibsuff} \ |
|
/lib/usr/lib${tdelibsuff}/X11 \ |
|
\ |
|
/usr/openwin/lib${tdelibsuff} \ |
|
/usr/openwin/share/lib${tdelibsuff} \ |
|
; \ |
|
do |
|
dnl Don't even attempt the hair of trying to link an X program! |
|
for ac_extension in a so sl; do |
|
if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then |
|
ac_x_libraries=$ac_dir |
|
break 2 |
|
fi |
|
done |
|
done]) |
|
fi # $ac_x_libraries = NO |
|
]) |
|
|
|
|
|
dnl ------------------------------------------------------------------------ |
|
dnl Find a file (or one of more files in a list of dirs) |
|
dnl ------------------------------------------------------------------------ |
|
dnl |
|
AC_DEFUN([AC_FIND_FILE], |
|
[ |
|
$3=NO |
|
for i in $2; |
|
do |
|
for j in $1; |
|
do |
|
echo "configure: __oline__: $i/$j" >&AC_FD_CC |
|
if test -r "$i/$j"; then |
|
echo "taking that" >&AC_FD_CC |
|
$3=$i |
|
break 2 |
|
fi |
|
done |
|
done |
|
]) |
|
|
|
dnl KDE_FIND_PATH(program-name, variable-name, list-of-dirs, |
|
dnl if-not-found, test-parameter, prepend-path) |
|
dnl |
|
dnl Look for program-name in list-of-dirs+$PATH. |
|
dnl If prepend-path is set, look in $PATH+list-of-dirs instead. |
|
dnl If found, $variable-name is set. If not, if-not-found is evaluated. |
|
dnl test-parameter: if set, the program is executed with this arg, |
|
dnl and only a successful exit code is required. |
|
AC_DEFUN([KDE_FIND_PATH], |
|
[ |
|
AC_MSG_CHECKING([for $1]) |
|
if test -n "$$2"; then |
|
kde_cv_path="$$2"; |
|
else |
|
kde_cache=`echo $1 | sed 'y%./+-%__p_%'` |
|
|
|
AC_CACHE_VAL(kde_cv_path_$kde_cache, |
|
[ |
|
kde_cv_path="NONE" |
|
kde_save_IFS=$IFS |
|
IFS=':' |
|
dirs="" |
|
for dir in $PATH; do |
|
dirs="$dirs $dir" |
|
done |
|
if test -z "$6"; then dnl Append dirs in PATH (default) |
|
dirs="$3 $dirs" |
|
else dnl Prepend dirs in PATH (if 6th arg is set) |
|
dirs="$dirs $3" |
|
fi |
|
IFS=$kde_save_IFS |
|
|
|
for dir in $dirs; do |
|
if test -x "$dir/$1"; then |
|
if test -n "$5" |
|
then |
|
evalstr="$dir/$1 $5 2>&1 " |
|
if eval $evalstr; then |
|
kde_cv_path="$dir/$1" |
|
break |
|
fi |
|
else |
|
kde_cv_path="$dir/$1" |
|
break |
|
fi |
|
fi |
|
done |
|
|
|
eval "kde_cv_path_$kde_cache=$kde_cv_path" |
|
|
|
]) |
|
|
|
eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\"" |
|
|
|
fi |
|
|
|
if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then |
|
AC_MSG_RESULT(not found) |
|
$4 |
|
else |
|
AC_MSG_RESULT($kde_cv_path) |
|
$2=$kde_cv_path |
|
|
|
fi |
|
]) |
|
|
|
AC_DEFUN([KDE_MOC_ERROR_MESSAGE], |
|
[ |
|
AC_MSG_ERROR([No Qt meta object compiler (moc) found! |
|
Please check whether you installed Qt correctly. |
|
You need to have a running moc binary. |
|
configure tried to run $ac_cv_path_moc and the test didn't |
|
succeed. If configure shouldn't have tried this one, set |
|
the environment variable MOC to the right one before running |
|
configure. |
|
]) |
|
]) |
|
|
|
AC_DEFUN([KDE_UIC_ERROR_MESSAGE], |
|
[ |
|
AC_MSG_WARN([No Qt ui compiler (uic) found! |
|
Please check whether you installed Qt correctly. |
|
You need to have a running uic binary. |
|
configure tried to run $ac_cv_path_uic and the test didn't |
|
succeed. If configure shouldn't have tried this one, set |
|
the environment variable UIC to the right one before running |
|
configure. |
|
]) |
|
]) |
|
|
|
|
|
AC_DEFUN([KDE_CHECK_UIC_FLAG], |
|
[ |
|
AC_MSG_CHECKING([whether uic supports -$1 ]) |
|
kde_cache=`echo $1 | sed 'y% .=/+-%____p_%'` |
|
AC_CACHE_VAL(kde_cv_prog_uic_$kde_cache, |
|
[ |
|
cat >conftest.ui <<EOT |
|
<!DOCTYPE UI><UI version="3" stdsetdef="1"></UI> |
|
EOT |
|
ac_uic_testrun="$UIC_PATH -$1 $2 conftest.ui >/dev/null" |
|
if AC_TRY_EVAL(ac_uic_testrun); then |
|
eval "kde_cv_prog_uic_$kde_cache=yes" |
|
else |
|
eval "kde_cv_prog_uic_$kde_cache=no" |
|
fi |
|
rm -f conftest* |
|
]) |
|
|
|
if eval "test \"`echo '$kde_cv_prog_uic_'$kde_cache`\" = yes"; then |
|
AC_MSG_RESULT([yes]) |
|
: |
|
$3 |
|
else |
|
AC_MSG_RESULT([no]) |
|
: |
|
$4 |
|
fi |
|
]) |
|
|
|
|
|
dnl ------------------------------------------------------------------------ |
|
dnl Find the meta object compiler and the ui compiler in the PATH, |
|
dnl in $QTDIR/bin, and some more usual places |
|
dnl ------------------------------------------------------------------------ |
|
dnl |
|
AC_DEFUN([AC_PATH_QT_MOC_UIC], |
|
[ |
|
AC_REQUIRE([KDE_CHECK_PERL]) |
|
qt_bindirs="" |
|
for dir in $kde_qt_dirs; do |
|
qt_bindirs="$qt_bindirs $dir/bin $dir/src/moc" |
|
done |
|
qt_bindirs="$qt_bindirs /usr/bin /usr/X11R6/bin /usr/local/qt/bin" |
|
if test ! "$ac_qt_bindir" = "NO"; then |
|
qt_bindirs="$ac_qt_bindir $qt_bindirs" |
|
fi |
|
|
|
KDE_FIND_PATH(moc, MOC, [$qt_bindirs], [KDE_MOC_ERROR_MESSAGE]) |
|
if test -z "$UIC_NOT_NEEDED"; then |
|
KDE_FIND_PATH(uic, UIC_PATH, [$qt_bindirs], [UIC_PATH=""]) |
|
if test -z "$UIC_PATH" ; then |
|
KDE_UIC_ERROR_MESSAGE |
|
exit 1 |
|
else |
|
UIC=$UIC_PATH |
|
|
|
if test $kde_qtver = 3; then |
|
KDE_CHECK_UIC_FLAG(L,[/nonexistent],ac_uic_supports_libpath=yes,ac_uic_supports_libpath=no) |
|
KDE_CHECK_UIC_FLAG(nounload,,ac_uic_supports_nounload=yes,ac_uic_supports_nounload=no) |
|
|
|
if test x$ac_uic_supports_libpath = xyes; then |
|
UIC="$UIC -L \$(kde_widgetdir)" |
|
fi |
|
if test x$ac_uic_supports_nounload = xyes; then |
|
UIC="$UIC -nounload" |
|
fi |
|
fi |
|
fi |
|
else |
|
UIC="echo uic not available: " |
|
fi |
|
|
|
AC_SUBST(MOC) |
|
AC_SUBST(UIC) |
|
|
|
UIC_TR="i18n" |
|
if test $kde_qtver = 3; then |
|
UIC_TR="tr2i18n" |
|
fi |
|
|
|
AC_SUBST(UIC_TR) |
|
]) |
|
|
|
AC_DEFUN([KDE_1_CHECK_PATHS], |
|
[ |
|
KDE_1_CHECK_PATH_HEADERS |
|
|
|
KDE_TEST_RPATH= |
|
|
|
if test -n "$USE_RPATH"; then |
|
|
|
if test -n "$kde_libraries"; then |
|
KDE_TEST_RPATH="-R $kde_libraries" |
|
fi |
|
|
|
if test -n "$qt_libraries"; then |
|
KDE_TEST_RPATH="$KDE_TEST_RPATH -R $qt_libraries" |
|
fi |
|
|
|
if test -n "$x_libraries"; then |
|
KDE_TEST_RPATH="$KDE_TEST_RPATH -R $x_libraries" |
|
fi |
|
|
|
KDE_TEST_RPATH="$KDE_TEST_RPATH $KDE_EXTRA_RPATH" |
|
fi |
|
|
|
AC_MSG_CHECKING([for KDE libraries installed]) |
|
ac_link='$LIBTOOL_SHELL --silent --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS $all_libraries conftest.$ac_ext $LIBS -ltdecore $LIBQT $KDE_TEST_RPATH 1>&5' |
|
|
|
if AC_TRY_EVAL(ac_link) && test -s conftest; then |
|
AC_MSG_RESULT(yes) |
|
else |
|
AC_MSG_ERROR([your system fails at linking a small KDE application! |
|
Check, if your compiler is installed correctly and if you have used the |
|
same compiler to compile Qt and tdelibs as you did use now. |
|
For more details about this problem, look at the end of config.log.]) |
|
fi |
|
|
|
if eval `TDEDIR= ./conftest 2>&5`; then |
|
kde_result=done |
|
else |
|
kde_result=problems |
|
fi |
|
|
|
TDEDIR= ./conftest 2> /dev/null >&5 # make an echo for config.log |
|
kde_have_all_paths=yes |
|
|
|
KDE_SET_PATHS($kde_result) |
|
|
|
]) |
|
|
|
AC_DEFUN([KDE_SET_PATHS], |
|
[ |
|
kde_cv_all_paths="kde_have_all_paths=\"yes\" \ |
|
kde_htmldir=\"$kde_htmldir\" \ |
|
kde_appsdir=\"$kde_appsdir\" \ |
|
kde_icondir=\"$kde_icondir\" \ |
|
kde_sounddir=\"$kde_sounddir\" \ |
|
kde_datadir=\"$kde_datadir\" \ |
|
kde_locale=\"$kde_locale\" \ |
|
kde_cgidir=\"$kde_cgidir\" \ |
|
kde_confdir=\"$kde_confdir\" \ |
|
kde_kcfgdir=\"$kde_kcfgdir\" \ |
|
kde_mimedir=\"$kde_mimedir\" \ |
|
kde_toolbardir=\"$kde_toolbardir\" \ |
|
kde_wallpaperdir=\"$kde_wallpaperdir\" \ |
|
kde_templatesdir=\"$kde_templatesdir\" \ |
|
kde_bindir=\"$kde_bindir\" \ |
|
kde_servicesdir=\"$kde_servicesdir\" \ |
|
kde_servicetypesdir=\"$kde_servicetypesdir\" \ |
|
kde_moduledir=\"$kde_moduledir\" \ |
|
kde_styledir=\"$kde_styledir\" \ |
|
kde_widgetdir=\"$kde_widgetdir\" \ |
|
xdg_appsdir=\"$xdg_appsdir\" \ |
|
xdg_menudir=\"$xdg_menudir\" \ |
|
xdg_directorydir=\"$xdg_directorydir\" \ |
|
kde_result=$1" |
|
]) |
|
|
|
AC_DEFUN([KDE_SET_DEFAULT_PATHS], |
|
[ |
|
if test "$1" = "default"; then |
|
|
|
if test -z "$kde_htmldir"; then |
|
kde_htmldir='\${datadir}/doc/tde/HTML' |
|
fi |
|
if test -z "$kde_appsdir"; then |
|
kde_appsdir='\${datadir}/applnk' |
|
fi |
|
if test -z "$kde_icondir"; then |
|
kde_icondir='\${datadir}/icons' |
|
fi |
|
if test -z "$kde_sounddir"; then |
|
kde_sounddir='\${datadir}/sounds' |
|
fi |
|
if test -z "$kde_datadir"; then |
|
kde_datadir='\${datadir}/apps' |
|
fi |
|
if test -z "$kde_locale"; then |
|
kde_locale='\${datadir}/locale' |
|
fi |
|
if test -z "$kde_cgidir"; then |
|
kde_cgidir='\${exec_prefix}/cgi-bin' |
|
fi |
|
if test -z "$kde_confdir"; then |
|
kde_confdir='\${datadir}/config' |
|
fi |
|
if test -z "$kde_kcfgdir"; then |
|
kde_kcfgdir='\${datadir}/config.kcfg' |
|
fi |
|
if test -z "$kde_mimedir"; then |
|
kde_mimedir='\${datadir}/mimelnk' |
|
fi |
|
if test -z "$kde_toolbardir"; then |
|
kde_toolbardir='\${datadir}/toolbar' |
|
fi |
|
if test -z "$kde_wallpaperdir"; then |
|
kde_wallpaperdir='\${datadir}/wallpapers' |
|
fi |
|
if test -z "$kde_templatesdir"; then |
|
kde_templatesdir='\${datadir}/templates' |
|
fi |
|
if test -z "$kde_bindir"; then |
|
kde_bindir='\${exec_prefix}/bin' |
|
fi |
|
if test -z "$kde_servicesdir"; then |
|
kde_servicesdir='\${datadir}/services' |
|
fi |
|
if test -z "$kde_servicetypesdir"; then |
|
kde_servicetypesdir='\${datadir}/servicetypes' |
|
fi |
|
if test -z "$kde_moduledir"; then |
|
if test "$kde_qtver" = "2"; then |
|
kde_moduledir='\${libdir}/kde2' |
|
else |
|
kde_moduledir='\${libdir}/trinity' |
|
fi |
|
fi |
|
if test -z "$kde_styledir"; then |
|
kde_styledir='\${libdir}/trinity/plugins/styles' |
|
fi |
|
if test -z "$kde_widgetdir"; then |
|
kde_widgetdir='\${libdir}/trinity/plugins/designer' |
|
fi |
|
if test -z "$xdg_appsdir"; then |
|
xdg_appsdir='\${datadir}/applications/tde' |
|
fi |
|
if test -z "$xdg_menudir"; then |
|
xdg_menudir='\${sysconfdir}/xdg/menus' |
|
fi |
|
if test -z "$xdg_directorydir"; then |
|
xdg_directorydir='\${datadir}/desktop-directories' |
|
fi |
|
|
|
KDE_SET_PATHS(defaults) |
|
|
|
else |
|
|
|
if test $kde_qtver = 1; then |
|
AC_MSG_RESULT([compiling]) |
|
KDE_1_CHECK_PATHS |
|
else |
|
AC_MSG_ERROR([path checking not yet supported for KDE 2]) |
|
fi |
|
|
|
fi |
|
]) |
|
|
|
AC_DEFUN([KDE_CHECK_PATHS_FOR_COMPLETENESS], |
|
[ if test -z "$kde_htmldir" || test -z "$kde_appsdir" || |
|
test -z "$kde_icondir" || test -z "$kde_sounddir" || |
|
test -z "$kde_datadir" || test -z "$kde_locale" || |
|
test -z "$kde_cgidir" || test -z "$kde_confdir" || |
|
test -z "$kde_kcfgdir" || |
|
test -z "$kde_mimedir" || test -z "$kde_toolbardir" || |
|
test -z "$kde_wallpaperdir" || test -z "$kde_templatesdir" || |
|
test -z "$kde_bindir" || test -z "$kde_servicesdir" || |
|
test -z "$kde_servicetypesdir" || test -z "$kde_moduledir" || |
|
test -z "$kde_styledir" || test -z "kde_widgetdir" || |
|
test -z "$xdg_appsdir" || test -z "$xdg_menudir" || test -z "$xdg_directorydir" || |
|
test "x$kde_have_all_paths" != "xyes"; then |
|
kde_have_all_paths=no |
|
fi |
|
]) |
|
|
|
AC_DEFUN([KDE_MISSING_PROG_ERROR], |
|
[ |
|
AC_MSG_ERROR([The important program $1 was not found! |
|
Please check whether you installed KDE correctly. |
|
]) |
|
]) |
|
|
|
AC_DEFUN([KDE_MISSING_ARTS_ERROR], |
|
[ |
|
AC_MSG_ERROR([The important program $1 was not found! |
|
Please check whether you installed aRts correctly or use |
|
--without-arts to compile without aRts support (this will remove functionality). |
|
]) |
|
]) |
|
|
|
AC_DEFUN([KDE_SET_DEFAULT_BINDIRS], |
|
[ |
|
kde_default_bindirs="/usr/bin /usr/local/bin /opt/local/bin /usr/X11R6/bin /opt/kde/bin /opt/trinity/bin /usr/kde/bin /usr/local/kde/bin" |
|
test -n "$TDEDIR" && kde_default_bindirs="$TDEDIR/bin $kde_default_bindirs" |
|
if test -n "$TDEDIRS"; then |
|
kde_save_IFS=$IFS |
|
IFS=: |
|
for dir in $TDEDIRS; do |
|
kde_default_bindirs="$dir/bin $kde_default_bindirs " |
|
done |
|
IFS=$kde_save_IFS |
|
fi |
|
]) |
|
|
|
AC_DEFUN([KDE_SUBST_PROGRAMS], |
|
[ |
|
AC_ARG_WITH(arts, |
|
AC_HELP_STRING([--without-arts],[build without aRts [default=no]]), |
|
[build_arts=$withval], |
|
[build_arts=yes] |
|
) |
|
AM_CONDITIONAL(include_ARTS, test "$build_arts" '!=' "no") |
|
if test "$build_arts" = "no"; then |
|
AC_DEFINE(WITHOUT_ARTS, 1, [Defined if compiling without arts]) |
|
fi |
|
|
|
KDE_SET_DEFAULT_BINDIRS |
|
kde_default_bindirs="$exec_prefix/bin $prefix/bin $kde_libs_prefix/bin $kde_default_bindirs" |
|
KDE_FIND_PATH(dcopidl, DCOPIDL, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl)]) |
|
KDE_FIND_PATH(dcopidl2cpp, DCOPIDL2CPP, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl2cpp)]) |
|
if test "$build_arts" '!=' "no"; then |
|
KDE_FIND_PATH(mcopidl, MCOPIDL, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(mcopidl)]) |
|
KDE_FIND_PATH(artsc-config, ARTSCCONFIG, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(artsc-config)]) |
|
fi |
|
KDE_FIND_PATH(meinproc, MEINPROC, [$kde_default_bindirs]) |
|
|
|
trinity2ornewer=1 |
|
trinity3ornewer=1 |
|
if test -n "$kde_qtver" && test "$kde_qtver" -lt 3; then |
|
trinity2ornewer= |
|
trinity3ornewer= |
|
else |
|
if test "$kde_qtver" = "3"; then |
|
if test "$kde_qtsubver" -le 1; then |
|
trinity2ornewer= |
|
fi |
|
if test "$kde_qtsubver" -le 2; then |
|
trinity3ornewer= |
|
fi |
|
if test "$KDECONFIG" != "compiled"; then |
|
if test `$KDECONFIG --version | grep KDE | sed 's/KDE: \(...\).*/\1/'` = 3.2; then |
|
trinity3ornewer= |
|
fi |
|
fi |
|
fi |
|
fi |
|
|
|
if test -n "$trinity2ornewer"; then |
|
KDE_FIND_PATH(tdeconfig_compiler, KCONFIG_COMPILER, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(tdeconfig_compiler)]) |
|
KDE_FIND_PATH(dcopidlng, DCOPIDLNG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidlng)]) |
|
fi |
|
if test -n "$trinity3ornewer"; then |
|
KDE_FIND_PATH(makekdewidgets, MAKEKDEWIDGETS, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(makekdewidgets)]) |
|
AC_SUBST(MAKEKDEWIDGETS) |
|
fi |
|
KDE_FIND_PATH(xmllint, XMLLINT, [${prefix}/bin ${exec_prefix}/bin], [XMLLINT=""]) |
|
|
|
if test -n "$MEINPROC" -a "$MEINPROC" != "compiled"; then |
|
kde_sharedirs="/usr/share/kde /usr/local/share /usr/share /opt/trinity/share /opt/kde/share $prefix/share" |
|
test -n "$TDEDIR" && kde_sharedirs="$TDEDIR/share $kde_sharedirs" |
|
AC_FIND_FILE(apps/ksgmltools2/customization/kde-chunk.xsl, $kde_sharedirs, KDE_XSL_STYLESHEET) |
|
if test "$KDE_XSL_STYLESHEET" = "NO"; then |
|
KDE_XSL_STYLESHEET="" |
|
else |
|
KDE_XSL_STYLESHEET="$KDE_XSL_STYLESHEET/apps/ksgmltools2/customization/kde-chunk.xsl" |
|
fi |
|
fi |
|
|
|
DCOP_DEPENDENCIES='$(DCOPIDL)' |
|
if test -n "$trinity2ornewer"; then |
|
KCFG_DEPENDENCIES='$(KCONFIG_COMPILER)' |
|
DCOP_DEPENDENCIES='$(DCOPIDL) $(DCOPIDLNG)' |
|
AC_SUBST(KCONFIG_COMPILER) |
|
AC_SUBST(KCFG_DEPENDENCIES) |
|
AC_SUBST(DCOPIDLNG) |
|
fi |
|
AC_SUBST(DCOPIDL) |
|
AC_SUBST(DCOPIDL2CPP) |
|
AC_SUBST(DCOP_DEPENDENCIES) |
|
AC_SUBST(MCOPIDL) |
|
AC_SUBST(ARTSCCONFIG) |
|
AC_SUBST(MEINPROC) |
|
AC_SUBST(KDE_XSL_STYLESHEET) |
|
AC_SUBST(XMLLINT) |
|
])dnl |
|
|
|
AC_DEFUN([AC_CREATE_KFSSTND], |
|
[ |
|
AC_REQUIRE([AC_CHECK_RPATH]) |
|
|
|
AC_MSG_CHECKING([for KDE paths]) |
|
kde_result="" |
|
kde_cached_paths=yes |
|
AC_CACHE_VAL(kde_cv_all_paths, |
|
[ |
|
KDE_SET_DEFAULT_PATHS($1) |
|
kde_cached_paths=no |
|
]) |
|
eval "$kde_cv_all_paths" |
|
KDE_CHECK_PATHS_FOR_COMPLETENESS |
|
if test "$kde_have_all_paths" = "no" && test "$kde_cached_paths" = "yes"; then |
|
# wrong values were cached, may be, we can set better ones |
|
kde_result= |
|
kde_htmldir= kde_appsdir= kde_icondir= kde_sounddir= |
|
kde_datadir= kde_locale= kde_cgidir= kde_confdir= kde_kcfgdir= |
|
kde_mimedir= kde_toolbardir= kde_wallpaperdir= kde_templatesdir= |
|
kde_bindir= kde_servicesdir= kde_servicetypesdir= kde_moduledir= |
|
kde_have_all_paths= |
|
kde_styledir= |
|
kde_widgetdir= |
|
xdg_appsdir = xdg_menudir= xdg_directorydir= |
|
KDE_SET_DEFAULT_PATHS($1) |
|
eval "$kde_cv_all_paths" |
|
KDE_CHECK_PATHS_FOR_COMPLETENESS |
|
kde_result="$kde_result (cache overridden)" |
|
fi |
|
if test "$kde_have_all_paths" = "no"; then |
|
AC_MSG_ERROR([configure could not run a little KDE program to test the environment. |
|
Since it had compiled and linked before, it must be a strange problem on your system. |
|
Look at config.log for details. If you are not able to fix this, look at |
|
http://www.kde.org/faq/installation.html or any www.kde.org mirror. |
|
(If you're using an egcs version on Linux, you may update binutils!) |
|
]) |
|
else |
|
rm -f conftest* |
|
AC_MSG_RESULT($kde_result) |
|
fi |
|
|
|
bindir=$kde_bindir |
|
|
|
KDE_SUBST_PROGRAMS |
|
|
|
]) |
|
|
|
AC_DEFUN([AC_SUBST_KFSSTND], |
|
[ |
|
AC_SUBST(kde_htmldir) |
|
AC_SUBST(kde_appsdir) |
|
AC_SUBST(kde_icondir) |
|
AC_SUBST(kde_sounddir) |
|
AC_SUBST(kde_datadir) |
|
AC_SUBST(kde_locale) |
|
AC_SUBST(kde_confdir) |
|
AC_SUBST(kde_kcfgdir) |
|
AC_SUBST(kde_mimedir) |
|
AC_SUBST(kde_wallpaperdir) |
|
AC_SUBST(kde_bindir) |
|
dnl X Desktop Group standards |
|
AC_SUBST(xdg_appsdir) |
|
AC_SUBST(xdg_menudir) |
|
AC_SUBST(xdg_directorydir) |
|
dnl for KDE 2 |
|
AC_SUBST(kde_templatesdir) |
|
AC_SUBST(kde_servicesdir) |
|
AC_SUBST(kde_servicetypesdir) |
|
AC_SUBST(kde_moduledir) |
|
AC_SUBST(tdeinitdir, '$(kde_moduledir)') |
|
AC_SUBST(kde_styledir) |
|
AC_SUBST(kde_widgetdir) |
|
if test "$kde_qtver" = 1; then |
|
kde_minidir="$kde_icondir/mini" |
|
else |
|
# for KDE 1 - this breaks KDE2 apps using minidir, but |
|
# that's the plan ;-/ |
|
kde_minidir="/dev/null" |
|
fi |
|
dnl AC_SUBST(kde_minidir) |
|
dnl AC_SUBST(kde_cgidir) |
|
dnl AC_SUBST(kde_toolbardir) |
|
]) |
|
|
|
AC_DEFUN([KDE_MISC_TESTS], |
|
[ |
|
dnl Checks for libraries. |
|
AC_CHECK_LIB(util, main, [LIBUTIL="-lutil"]) dnl for *BSD |
|
AC_SUBST(LIBUTIL) |
|
AC_CHECK_LIB(compat, main, [LIBCOMPAT="-lcompat"]) dnl for *BSD |
|
AC_SUBST(LIBCOMPAT) |
|
kde_have_crypt= |
|
AC_CHECK_LIB(crypt, crypt, [LIBCRYPT="-lcrypt"; kde_have_crypt=yes], |
|
AC_CHECK_LIB(c, crypt, [kde_have_crypt=yes], [ |
|
AC_MSG_WARN([you have no crypt in either libcrypt or libc. |
|
You should install libcrypt from another source or configure with PAM |
|
support]) |
|
kde_have_crypt=no |
|
])) |
|
AC_SUBST(LIBCRYPT) |
|
if test $kde_have_crypt = yes; then |
|
AC_DEFINE_UNQUOTED(HAVE_CRYPT, 1, [Defines if your system has the crypt function]) |
|
fi |
|
AC_CHECK_SOCKLEN_T |
|
AC_CHECK_LIB(dnet, dnet_ntoa, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"]) |
|
if test $ac_cv_lib_dnet_dnet_ntoa = no; then |
|
AC_CHECK_LIB(dnet_stub, dnet_ntoa, |
|
[X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"]) |
|
fi |
|
AC_CHECK_FUNC(inet_ntoa) |
|
if test $ac_cv_func_inet_ntoa = no; then |
|
AC_CHECK_LIB(nsl, inet_ntoa, X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl") |
|
fi |
|
AC_CHECK_FUNC(connect) |
|
if test $ac_cv_func_connect = no; then |
|
AC_CHECK_LIB(socket, connect, X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS", , |
|
$X_EXTRA_LIBS) |
|
fi |
|
|
|
AC_CHECK_FUNC(remove) |
|
if test $ac_cv_func_remove = no; then |
|
AC_CHECK_LIB(posix, remove, X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix") |
|
fi |
|
|
|
# BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. |
|
AC_CHECK_FUNC(shmat, , |
|
AC_CHECK_LIB(ipc, shmat, X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc")) |
|
|
|
# more headers that need to be explicitly included on darwin |
|
AC_CHECK_HEADERS(sys/types.h stdint.h) |
|
|
|
# sys/bitypes.h is needed for uint32_t and friends on Tru64 |
|
AC_CHECK_HEADERS(sys/bitypes.h) |
|
|
|
# darwin requires a poll emulation library |
|
AC_CHECK_LIB(poll, poll, LIB_POLL="-lpoll") |
|
|
|
# for some image handling on Mac OS X |
|
AC_CHECK_HEADERS(Carbon/Carbon.h) |
|
|
|
# CoreAudio framework |
|
AC_CHECK_HEADER(CoreAudio/CoreAudio.h, [ |
|
AC_DEFINE(HAVE_COREAUDIO, 1, [Define if you have the CoreAudio API]) |
|
FRAMEWORK_COREAUDIO="-Wl,-framework,CoreAudio" |
|
]) |
|
|
|
AC_CHECK_RES_INIT |
|
AC_SUBST(LIB_POLL) |
|
AC_SUBST(FRAMEWORK_COREAUDIO) |
|
LIBSOCKET="$X_EXTRA_LIBS" |
|
AC_SUBST(LIBSOCKET) |
|
AC_SUBST(X_EXTRA_LIBS) |
|
AC_CHECK_LIB(ucb, killpg, [LIBUCB="-lucb"]) dnl for Solaris2.4 |
|
AC_SUBST(LIBUCB) |
|
|
|
case $host in dnl this *is* LynxOS specific |
|
*-*-lynxos* ) |
|
AC_MSG_CHECKING([LynxOS header file wrappers]) |
|
[CFLAGS="$CFLAGS -D__NO_INCLUDE_WARN__"] |
|
AC_MSG_RESULT(disabled) |
|
AC_CHECK_LIB(bsd, gethostbyname, [LIBSOCKET="-lbsd"]) dnl for LynxOS |
|
;; |
|
esac |
|
|
|
KDE_CHECK_TYPES |
|
KDE_CHECK_LIBDL |
|
KDE_CHECK_STRLCPY |
|
KDE_CHECK_PIE_SUPPORT |
|
|
|
# darwin needs this to initialize the environment |
|
AC_CHECK_HEADERS(crt_externs.h) |
|
AC_CHECK_FUNC(_NSGetEnviron, [AC_DEFINE(HAVE_NSGETENVIRON, 1, [Define if your system needs _NSGetEnviron to set up the environment])]) |
|
|
|
AH_VERBATIM(_DARWIN_ENVIRON, |
|
[ |
|
#if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H) |
|
# include <sys/time.h> |
|
# include <crt_externs.h> |
|
# define environ (*_NSGetEnviron()) |
|
#endif |
|
]) |
|
|
|
AH_VERBATIM(_AIX_STRINGS_H_BZERO, |
|
[ |
|
/* |
|
* AIX defines FD_SET in terms of bzero, but fails to include <strings.h> |
|
* that defines bzero. |
|
*/ |
|
|
|
#if defined(_AIX) |
|
#include <strings.h> |
|
#endif |
|
]) |
|
|
|
AC_CHECK_FUNCS([vsnprintf snprintf]) |
|
|
|
AH_VERBATIM(_TRU64,[ |
|
/* |
|
* On HP-UX, the declaration of vsnprintf() is needed every time ! |
|
*/ |
|
|
|
#if !defined(HAVE_VSNPRINTF) || defined(hpux) |
|
#if __STDC__ |
|
#include <stdarg.h> |
|
#include <stdlib.h> |
|
#else |
|
#include <varargs.h> |
|
#endif |
|
#ifdef __cplusplus |
|
extern "C" |
|
#endif |
|
int vsnprintf(char *str, size_t n, char const *fmt, va_list ap); |
|
#ifdef __cplusplus |
|
extern "C" |
|
#endif |
|
int snprintf(char *str, size_t n, char const *fmt, ...); |
|
#endif |
|
]) |
|
|
|
]) |
|
|
|
dnl ------------------------------------------------------------------------ |
|
dnl Find the header files and libraries for X-Windows. Extended the |
|
dnl macro AC_PATH_X |
|
dnl ------------------------------------------------------------------------ |
|
dnl |
|
AC_DEFUN([K_PATH_X], |
|
[ |
|
AC_REQUIRE([KDE_MISC_TESTS])dnl |
|
AC_REQUIRE([KDE_CHECK_LIB64]) |
|
|
|
AC_ARG_ENABLE( |
|
embedded, |
|
AC_HELP_STRING([--enable-embedded],[link to Qt-embedded, don't use X]), |
|
kde_use_qt_emb=$enableval, |
|
kde_use_qt_emb=no |
|
) |
|
|
|
AC_ARG_ENABLE( |
|
qtopia, |
|
AC_HELP_STRING([--enable-qtopia],[link to Qt-embedded, link to the Qtopia Environment]), |
|
kde_use_qt_emb_palm=$enableval, |
|
kde_use_qt_emb_palm=no |
|
) |
|
|
|
AC_ARG_ENABLE( |
|
mac, |
|
AC_HELP_STRING([--enable-mac],[link to Qt/Mac (don't use X)]), |
|
kde_use_qt_mac=$enableval, |
|
kde_use_qt_mac=no |
|
) |
|
|
|
# used to disable x11-specific stuff on special platforms |
|
AM_CONDITIONAL(include_x11, test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no") |
|
|
|
if test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no"; then |
|
|
|
AC_MSG_CHECKING(for X) |
|
|
|
AC_CACHE_VAL(kde_cv_have_x, |
|
[# One or both of the vars are not set, and there is no cached value. |
|
if test "{$x_includes+set}" = set || test "$x_includes" = NONE; then |
|
kde_x_includes=NO |
|
else |
|
kde_x_includes=$x_includes |
|
fi |
|
if test "{$x_libraries+set}" = set || test "$x_libraries" = NONE; then |
|
kde_x_libraries=NO |
|
else |
|
kde_x_libraries=$x_libraries |
|
fi |
|
|
|
# below we use the standard autoconf calls |
|
ac_x_libraries=$kde_x_libraries |
|
ac_x_includes=$kde_x_includes |
|
|
|
KDE_PATH_X_DIRECT |
|
dnl AC_PATH_X_XMKMF picks /usr/lib as the path for the X libraries. |
|
dnl Unfortunately, if compiling with the N32 ABI, this is not the correct |
|
dnl location. The correct location is /usr/lib32 or an undefined value |
|
dnl (the linker is smart enough to pick the correct default library). |
|
dnl Things work just fine if you use just AC_PATH_X_DIRECT. |
|
dnl Solaris has a similar problem. AC_PATH_X_XMKMF forces x_includes to |
|
dnl /usr/openwin/include, which doesn't work. /usr/include does work, so |
|
dnl x_includes should be left alone. |
|
case "$host" in |
|
mips-sgi-irix6*) |
|
;; |
|
*-*-solaris*) |
|
;; |
|
*) |
|
_AC_PATH_X_XMKMF |
|
if test -z "$ac_x_includes"; then |
|
ac_x_includes="." |
|
fi |
|
if test -z "$ac_x_libraries"; then |
|
ac_x_libraries="/usr/lib${tdelibsuff}" |
|
fi |
|
esac |
|
#from now on we use our own again |
|
|
|
# when the user already gave --x-includes, we ignore |
|
# what the standard autoconf macros told us. |
|
if test "$kde_x_includes" = NO; then |
|
kde_x_includes=$ac_x_includes |
|
fi |
|
|
|
# for --x-libraries too |
|
if test "$kde_x_libraries" = NO; then |
|
kde_x_libraries=$ac_x_libraries |
|
fi |
|
|
|
if test "$kde_x_includes" = NO; then |
|
AC_MSG_ERROR([Can't find X includes. Please check your installation and add the correct paths!]) |
|
fi |
|
|
|
if test "$kde_x_libraries" = NO; then |
|
AC_MSG_ERROR([Can't find X libraries. Please check your installation and add the correct paths!]) |
|
fi |
|
|
|
# Record where we found X for the cache. |
|
kde_cv_have_x="have_x=yes \ |
|
kde_x_includes=$kde_x_includes kde_x_libraries=$kde_x_libraries" |
|
])dnl |
|
|
|
eval "$kde_cv_have_x" |
|
|
|
if test "$have_x" != yes; then |
|
AC_MSG_RESULT($have_x) |
|
no_x=yes |
|
else |
|
AC_MSG_RESULT([libraries $kde_x_libraries, headers $kde_x_includes]) |
|
fi |
|
|
|
if test -z "$kde_x_includes" || test "x$kde_x_includes" = xNONE; then |
|
X_INCLUDES="" |
|
x_includes="."; dnl better than nothing :- |
|
else |
|
x_includes=$kde_x_includes |
|
X_INCLUDES="-I$x_includes" |
|
fi |
|
|
|
if test -z "$kde_x_libraries" || test "x$kde_x_libraries" = xNONE || test "$kde_x_libraries" = "/usr/lib"; then |
|
X_LDFLAGS="" |
|
x_libraries="/usr/lib"; dnl better than nothing :- |
|
else |
|
x_libraries=$kde_x_libraries |
|
X_LDFLAGS="-L$x_libraries" |
|
fi |
|
all_includes="$X_INCLUDES" |
|
all_libraries="$X_LDFLAGS $LDFLAGS_AS_NEEDED $LDFLAGS_NEW_DTAGS" |
|
|
|
# Check for libraries that X11R6 Xt/Xaw programs need. |
|
ac_save_LDFLAGS="$LDFLAGS" |
|
LDFLAGS="$LDFLAGS $X_LDFLAGS" |
|
# SM needs ICE to (dynamically) link under SunOS 4.x (so we have to |
|
# check for ICE first), but we must link in the order -lSM -lICE or |
|
# we get undefined symbols. So assume we have SM if we have ICE. |
|
# These have to be linked with before -lX11, unlike the other |
|
# libraries we check for below, so use a different variable. |
|
# --interran@uluru.Stanford.EDU, kb@cs.umb.edu. |
|
AC_CHECK_LIB(ICE, IceConnectionNumber, |
|
[LIBSM="-lSM -lICE"], , $X_EXTRA_LIBS) |
|
LDFLAGS="$ac_save_LDFLAGS" |
|
|
|
LIB_X11='-lX11 $(LIBSOCKET)' |
|
|
|
AC_MSG_CHECKING(for libXext) |
|
AC_CACHE_VAL(kde_cv_have_libXext, |
|
[ |
|
kde_ldflags_safe="$LDFLAGS" |
|
kde_libs_safe="$LIBS" |
|
|
|
LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS" |
|
LIBS="-lXext -lX11 $LIBSOCKET" |
|
|
|
AC_TRY_LINK([ |
|
#include <stdio.h> |
|
#ifdef STDC_HEADERS |
|
# include <stdlib.h> |
|
#endif |
|
], |
|
[ |
|
printf("hello Xext\n"); |
|
], |
|
kde_cv_have_libXext=yes, |
|
kde_cv_have_libXext=no |
|
) |
|
|
|
LDFLAGS=$kde_ldflags_safe |
|
LIBS=$kde_libs_safe |
|
]) |
|
|
|
AC_MSG_RESULT($kde_cv_have_libXext) |
|
|
|
if test "$kde_cv_have_libXext" = "no"; then |
|
AC_MSG_ERROR([We need a working libXext to proceed. Since configure |
|
can't find it itself, we stop here assuming that make wouldn't find |
|
them either.]) |
|
fi |
|
|
|
LIB_XEXT="-lXext" |
|
QTE_NORTTI="" |
|
|
|
elif test "$kde_use_qt_emb" = "yes"; then |
|
dnl We're using QT Embedded |
|
CPPFLAGS=-DQWS |
|
CXXFLAGS="$CXXFLAGS -fno-rtti" |
|
QTE_NORTTI="-fno-rtti -DQWS" |
|
X_PRE_LIBS="" |
|
LIB_X11="" |
|
LIB_XEXT="" |
|
LIB_XRENDER="" |
|
LIBSM="" |
|
X_INCLUDES="" |
|
X_LDFLAGS="" |
|
x_includes="" |
|
x_libraries="" |
|
elif test "$kde_use_qt_mac" = "yes"; then |
|
dnl We're using QT/Mac (I use QT_MAC so that qglobal.h doesn't *have* to |
|
dnl be included to get the information) --Sam |
|
CXXFLAGS="$CXXFLAGS -DQT_MAC -no-cpp-precomp" |
|
CFLAGS="$CFLAGS -DQT_MAC -no-cpp-precomp" |
|
X_PRE_LIBS="" |
|
LIB_X11="" |
|
LIB_XEXT="" |
|
LIB_XRENDER="" |
|
LIBSM="" |
|
X_INCLUDES="" |
|
X_LDFLAGS="" |
|
x_includes="" |
|
x_libraries="" |
|
fi |
|
AC_SUBST(X_PRE_LIBS) |
|
AC_SUBST(LIB_X11) |
|
AC_SUBST(LIB_XRENDER) |
|
AC_SUBST(LIBSM) |
|
AC_SUBST(X_INCLUDES) |
|
AC_SUBST(X_LDFLAGS) |
|
AC_SUBST(x_includes) |
|
AC_SUBST(x_libraries) |
|
AC_SUBST(QTE_NORTTI) |
|
AC_SUBST(LIB_XEXT) |
|
|
|
]) |
|
|
|
AC_DEFUN([KDE_PRINT_QT_PROGRAM], |
|
[ |
|
AC_REQUIRE([KDE_USE_QT]) |
|
cat > conftest.$ac_ext <<EOF |
|
#include "confdefs.h" |
|
#include <qglobal.h> |
|
#include <qapplication.h> |
|
EOF |
|
if test "$kde_qtver" = "2"; then |
|
cat >> conftest.$ac_ext <<EOF |
|
#include <qevent.h> |
|
#include <qstring.h> |
|
#include <qstyle.h> |
|
EOF |
|
|
|
if test $kde_qtsubver -gt 0; then |
|
cat >> conftest.$ac_ext <<EOF |
|
#if TQT_VERSION < 210 |
|
#error 1 |
|
#endif |
|
EOF |
|
fi |
|
fi |
|
|
|
if test "$kde_qtver" = "3"; then |
|
cat >> conftest.$ac_ext <<EOF |
|
#include <qcursor.h> |
|
#include <qstylefactory.h> |
|
#include <private/qucomextra_p.h> |
|
EOF |
|
fi |
|
|
|
echo "#if ! ($kde_qt_verstring)" >> conftest.$ac_ext |
|
cat >> conftest.$ac_ext <<EOF |
|
#error 1 |
|
#endif |
|
|
|
int main() { |
|
EOF |
|
if test "$kde_qtver" = "2"; then |
|
cat >> conftest.$ac_ext <<EOF |
|
QStringList *t = new QStringList(); |
|
Q_UNUSED(t); |
|
EOF |
|
if test $kde_qtsubver -gt 0; then |
|
cat >> conftest.$ac_ext <<EOF |
|
QString s; |
|
s.setLatin1("Elvis is alive", 14); |
|
EOF |
|
fi |
|
fi |
|
if test "$kde_qtver" = "3"; then |
|
cat >> conftest.$ac_ext <<EOF |
|
(void)QStyleFactory::create(QString::null); |
|
QCursor c(Qt::WhatsThisCursor); |
|
EOF |
|
fi |
|
cat >> conftest.$ac_ext <<EOF |
|
return 0; |
|
} |
|
EOF |
|
]) |
|
|
|
AC_DEFUN([KDE_USE_QT], |
|
[ |
|
if test -z "$1"; then |
|
# Current default Qt version: 3.3 |
|
kde_qtver=3 |
|
kde_qtsubver=3 |
|
else |
|
kde_qtsubver=`echo "$1" | sed -e 's#[0-9][0-9]*\.\([0-9][0-9]*\).*#\1#'` |
|
# following is the check if subversion isnt found in passed argument |
|
if test "$kde_qtsubver" = "$1"; then |
|
kde_qtsubver=1 |
|
fi |
|
kde_qtver=`echo "$1" | sed -e 's#^\([0-9][0-9]*\)\..*#\1#'` |
|
if test "$kde_qtver" = "1"; then |
|
kde_qtsubver=42 |
|
fi |
|
fi |
|
|
|
if test -z "$2"; then |
|
if test "$kde_qtver" = "2"; then |
|
if test $kde_qtsubver -gt 0; then |
|
kde_qt_minversion=">= Qt 2.2.2" |
|
else |
|
kde_qt_minversion=">= Qt 2.0.2" |
|
fi |
|
fi |
|
if test "$kde_qtver" = "3"; then |
|
if test $kde_qtsubver -gt 0; then |
|
if test $kde_qtsubver -gt 1; then |
|
if test $kde_qtsubver -gt 2; then |
|
kde_qt_minversion=">= Qt 3.3 and < 4.0" |
|
else |
|
kde_qt_minversion=">= Qt 3.2 and < 4.0" |
|
fi |
|
else |
|
kde_qt_minversion=">= Qt 3.1 (20021021) and < 4.0" |
|
fi |
|
else |
|
kde_qt_minversion=">= Qt 3.0 and < 4.0" |
|
fi |
|
fi |
|
if test "$kde_qtver" = "1"; then |
|
kde_qt_minversion=">= 1.42 and < 2.0" |
|
fi |
|
else |
|
kde_qt_minversion="$2" |
|
fi |
|
|
|
if test -z "$3"; then |
|
if test $kde_qtver = 3; then |
|
if test $kde_qtsubver -gt 0; then |
|
kde_qt_verstring="TQT_VERSION >= 0x03@VER@00 && TQT_VERSION < 0x040000" |
|
qtsubver=`echo "00$kde_qtsubver" | sed -e 's,.*\(..\)$,\1,'` |
|
kde_qt_verstring=`echo $kde_qt_verstring | sed -e "s,@VER@,$qtsubver,"` |
|
else |
|
kde_qt_verstring="TQT_VERSION >= 300 && TQT_VERSION < 0x040000" |
|
fi |
|
fi |
|
if test $kde_qtver = 2; then |
|
if test $kde_qtsubver -gt 0; then |
|
kde_qt_verstring="TQT_VERSION >= 222" |
|
else |
|
kde_qt_verstring="TQT_VERSION >= 200" |
|
fi |
|
fi |
|
if test $kde_qtver = 1; then |
|
kde_qt_verstring="TQT_VERSION >= 142 && TQT_VERSION < 200" |
|
fi |
|
else |
|
kde_qt_verstring="$3" |
|
fi |
|
|
|
if test $kde_qtver = 4; then |
|
kde_qt_dirs="$QTDIR /usr/lib/qt4 /usr/lib/qt /usr/share/qt4" |
|
fi |
|
if test $kde_qtver = 3; then |
|
kde_qt_dirs="$QTDIR /usr/lib/qt3 /usr/lib/qt /usr/share/qt3" |
|
fi |
|
if test $kde_qtver = 2; then |
|
kde_qt_dirs="$QTDIR /usr/lib/qt2 /usr/lib/qt" |
|
fi |
|
if test $kde_qtver = 1; then |
|
kde_qt_dirs="$QTDIR /usr/lib/qt" |
|
fi |
|
]) |
|
|
|
AC_DEFUN([KDE_CHECK_QT_DIRECT], |
|
[ |
|
AC_REQUIRE([KDE_USE_QT]) |
|
AC_MSG_CHECKING([if Qt compiles without flags]) |
|
AC_CACHE_VAL(kde_cv_qt_direct, |
|
[ |
|
AC_LANG_SAVE |
|
AC_LANG_CPLUSPLUS |
|
ac_LD_LIBRARY_PATH_safe=$LD_LIBRARY_PATH |
|
ac_LIBRARY_PATH="$LIBRARY_PATH" |
|
ac_cxxflags_safe="$CXXFLAGS" |
|
ac_ldflags_safe="$LDFLAGS" |
|
ac_libs_safe="$LIBS" |
|
|
|
CXXFLAGS="$CXXFLAGS -I$qt_includes" |
|
LDFLAGS="$LDFLAGS $X_LDFLAGS" |
|
if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then |
|
LIBS="$LIBQT -lXext -lX11 $LIBSOCKET" |
|
else |
|
LIBS="$LIBQT $LIBSOCKET" |
|
fi |
|
LD_LIBRARY_PATH= |
|
export LD_LIBRARY_PATH |
|
LIBRARY_PATH= |
|
export LIBRARY_PATH |
|
|
|
KDE_PRINT_QT_PROGRAM |
|
|
|
if AC_TRY_EVAL(ac_link) && test -s conftest; then |
|
kde_cv_qt_direct="yes" |
|
else |
|
kde_cv_qt_direct="no" |
|
echo "configure: failed program was:" >&AC_FD_CC |
|
cat conftest.$ac_ext >&AC_FD_CC |
|
fi |
|
|
|
rm -f conftest* |
|
CXXFLAGS="$ac_cxxflags_safe" |
|
LDFLAGS="$ac_ldflags_safe" |
|
LIBS="$ac_libs_safe" |
|
|
|
LD_LIBRARY_PATH="$ac_LD_LIBRARY_PATH_safe" |
|
export LD_LIBRARY_PATH |
|
LIBRARY_PATH="$ac_LIBRARY_PATH" |
|
export LIBRARY_PATH |
|
AC_LANG_RESTORE |
|
]) |
|
|
|
if test "$kde_cv_qt_direct" = "yes"; then |
|
AC_MSG_RESULT(yes) |
|
$1 |
|
else |
|
AC_MSG_RESULT(no) |
|
$2 |
|
fi |
|
]) |
|
|
|
dnl ------------------------------------------------------------------------ |
|
dnl Try to find the Qt headers and libraries. |
|
dnl $(QT_LDFLAGS) will be -Lqtliblocation (if needed) |
|
dnl and $(QT_INCLUDES) will be -Iqthdrlocation (if needed) |
|
dnl ------------------------------------------------------------------------ |
|
dnl |
|
AC_DEFUN([AC_PATH_QT_1_3], |
|
[ |
|
AC_REQUIRE([K_PATH_X]) |
|
AC_REQUIRE([KDE_USE_QT]) |
|
AC_REQUIRE([KDE_CHECK_LIB64]) |
|
|
|
dnl ------------------------------------------------------------------------ |
|
dnl Add configure flag to enable linking to MT version of Qt library. |
|
dnl ------------------------------------------------------------------------ |
|
|
|
AC_ARG_ENABLE( |
|
mt, |
|
AC_HELP_STRING([--disable-mt],[link to non-threaded Qt (deprecated)]), |
|
kde_use_qt_mt=$enableval, |
|
[ |
|
if test $kde_qtver = 3; then |
|
kde_use_qt_mt=yes |
|
else |
|
kde_use_qt_mt=no |
|
fi |
|
] |
|
) |
|
|
|
USING_QT_MT="" |
|
|
|
dnl ------------------------------------------------------------------------ |
|
dnl If we not get --disable-qt-mt then adjust some vars for the host. |
|
dnl ------------------------------------------------------------------------ |
|
|
|
KDE_MT_LDFLAGS= |
|
KDE_MT_LIBS= |
|
if test "x$kde_use_qt_mt" = "xyes"; then |
|
KDE_CHECK_THREADING |
|
if test "x$kde_use_threading" = "xyes"; then |
|
CPPFLAGS="$USE_THREADS -DQT_THREAD_SUPPORT $CPPFLAGS" |
|
KDE_MT_LDFLAGS="$USE_THREADS" |
|
KDE_MT_LIBS="$LIBPTHREAD" |
|
else |
|
kde_use_qt_mt=no |
|
fi |
|
fi |
|
AC_SUBST(KDE_MT_LDFLAGS) |
|
AC_SUBST(KDE_MT_LIBS) |
|
|
|
kde_qt_was_given=yes |
|
|
|
dnl ------------------------------------------------------------------------ |
|
dnl If we haven't been told how to link to Qt, we work it out for ourselves. |
|
dnl ------------------------------------------------------------------------ |
|
if test -z "$LIBQT_GLOB"; then |
|
if test "x$kde_use_qt_emb" = "xyes"; then |
|
LIBQT_GLOB="libqte.*" |
|
else |
|
LIBQT_GLOB="libqt.*" |
|
fi |
|
fi |
|
|
|
dnl ------------------------------------------------------------ |
|
dnl If we got --enable-embedded then adjust the Qt library name. |
|
dnl ------------------------------------------------------------ |
|
if test "x$kde_use_qt_emb" = "xyes"; then |
|
qtlib="qte" |
|
else |
|
qtlib="qt" |
|
fi |
|
|
|
kde_int_qt="-l$qtlib" |
|
|
|
if test -z "$LIBQPE"; then |
|
dnl ------------------------------------------------------------ |
|
dnl If we got --enable-palmtop then add -lqpe to the link line |
|
dnl ------------------------------------------------------------ |
|
if test "x$kde_use_qt_emb" = "xyes"; then |
|
if test "x$kde_use_qt_emb_palm" = "xyes"; then |
|
LIB_QPE="-lqpe" |
|
else |
|
LIB_QPE="" |
|
fi |
|
else |
|
LIB_QPE="" |
|
fi |
|
fi |
|
|
|
dnl ------------------------------------------------------------------------ |
|
dnl If we got --enable-qt-mt then adjust the Qt library name for the host. |
|
dnl ------------------------------------------------------------------------ |
|
|
|
if test "x$kde_use_qt_mt" = "xyes"; then |
|
LIBQT="-l$qtlib-mt" |
|
kde_int_qt="-l$qtlib-mt" |
|
LIBQT_GLOB="lib$qtlib-mt.*" |
|
USING_QT_MT="using -mt" |
|
else |
|
LIBQT="-l$qtlib" |
|
fi |
|
|
|
if test $kde_qtver != 1; then |
|
|
|
AC_REQUIRE([AC_FIND_PNG]) |
|
AC_REQUIRE([AC_FIND_JPEG]) |
|
LIBQT="$LIBQT $LIBPNG $LIBJPEG" |
|
fi |
|
|
|
if test $kde_qtver = 3; then |
|
AC_REQUIRE([KDE_CHECK_LIBDL]) |
|
LIBQT="$LIBQT $LIBDL" |
|
fi |
|
|
|
AC_MSG_CHECKING([for Qt]) |
|
|
|
if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then |
|
LIBQT="$LIBQT $X_PRE_LIBS -lXext -lX11 $LIBSM $LIBSOCKET" |
|
fi |
|
ac_qt_includes=NO ac_qt_libraries=NO ac_qt_bindir=NO |
|
qt_libraries="" |
|
qt_includes="" |
|
AC_ARG_WITH(qt-dir, |
|
AC_HELP_STRING([--with-qt-dir=DIR],[where the root of Qt is installed ]), |
|
[ ac_qt_includes="$withval"/include |
|
ac_qt_libraries="$withval"/lib${tdelibsuff} |
|
ac_qt_bindir="$withval"/bin |
|
]) |
|
|
|
AC_ARG_WITH(qt-includes, |
|
AC_HELP_STRING([--with-qt-includes=DIR],[where the Qt includes are. ]), |
|
[ |
|
ac_qt_includes="$withval" |
|
]) |
|
|
|
kde_qt_libs_given=no |
|
|
|
AC_ARG_WITH(qt-libraries, |
|
AC_HELP_STRING([--with-qt-libraries=DIR],[where the Qt library is installed.]), |
|
[ ac_qt_libraries="$withval" |
|
kde_qt_libs_given=yes |
|
]) |
|
|
|
AC_CACHE_VAL(ac_cv_have_qt, |
|
[#try to guess Qt locations |
|
|
|
qt_incdirs="" |
|
for dir in $kde_qt_dirs; do |
|
qt_incdirs="$qt_incdirs $dir/include $dir" |
|
done |
|
qt_incdirs="$QTINC $qt_incdirs /usr/local/qt/include /usr/include/qt /usr/include /usr/X11R6/include/X11/qt /usr/X11R6/include/qt /usr/X11R6/include/qt2 /usr/include/qt3 $x_includes" |
|
if test ! "$ac_qt_includes" = "NO"; then |
|
qt_incdirs="$ac_qt_includes $qt_incdirs" |
|
fi |
|
|
|
if test "$kde_qtver" != "1"; then |
|
kde_qt_header=qstyle.h |
|
else |
|
kde_qt_header=qglobal.h |
|
fi |
|
|
|
AC_FIND_FILE($kde_qt_header, $qt_incdirs, qt_incdir) |
|
ac_qt_includes="$qt_incdir" |
|
|
|
qt_libdirs="" |
|
for dir in $kde_qt_dirs; do |
|
qt_libdirs="$qt_libdirs $dir/lib${tdelibsuff} $dir" |
|
done |
|
qt_libdirs="$QTLIB $qt_libdirs /usr/X11R6/lib /usr/lib /usr/local/qt/lib $x_libraries" |
|
if test ! "$ac_qt_libraries" = "NO"; then |
|
qt_libdir=$ac_qt_libraries |
|
else |
|
qt_libdirs="$ac_qt_libraries $qt_libdirs" |
|
# if the Qt was given, the chance is too big that libqt.* doesn't exist |
|
qt_libdir=NONE |
|
for dir in $qt_libdirs; do |
|
try="ls -1 $dir/${LIBQT_GLOB}" |
|
if test -n "`$try 2> /dev/null`"; then qt_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi |
|
done |
|
fi |
|
for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do |
|
if test -e "$a"; then |
|
LIBQT="$LIBQT ${kde_int_qt}_incremental" |
|
break |
|
fi |
|
done |
|
|
|
ac_qt_libraries="$qt_libdir" |
|
|
|
AC_LANG_SAVE |
|
AC_LANG_CPLUSPLUS |
|
|
|
ac_cxxflags_safe="$CXXFLAGS" |
|
ac_ldflags_safe="$LDFLAGS" |
|
ac_libs_safe="$LIBS" |
|
|
|
CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes" |
|
LDFLAGS="$LDFLAGS -L$qt_libdir $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS" |
|
LIBS="$LIBS $LIBQT $KDE_MT_LIBS" |
|
|
|
KDE_PRINT_QT_PROGRAM |
|
|
|
if AC_TRY_EVAL(ac_link) && test -s conftest; then |
|
rm -f conftest* |
|
else |
|
echo "configure: failed program was:" >&AC_FD_CC |
|
cat conftest.$ac_ext >&AC_FD_CC |
|
ac_qt_libraries="NO" |
|
fi |
|
rm -f conftest* |
|
CXXFLAGS="$ac_cxxflags_safe" |
|
LDFLAGS="$ac_ldflags_safe" |
|
LIBS="$ac_libs_safe" |
|
|
|
AC_LANG_RESTORE |
|
if test "$ac_qt_includes" = NO || test "$ac_qt_libraries" = NO; then |
|
ac_cv_have_qt="have_qt=no" |
|
ac_qt_notfound="" |
|
missing_qt_mt="" |
|
if test "$ac_qt_includes" = NO; then |
|
if test "$ac_qt_libraries" = NO; then |
|
ac_qt_notfound="(headers and libraries)"; |
|
else |
|
ac_qt_notfound="(headers)"; |
|
fi |
|
else |
|
if test "x$kde_use_qt_mt" = "xyes"; then |
|
missing_qt_mt=" |
|
Make sure that you have compiled Qt with thread support!" |
|
ac_qt_notfound="(library $qtlib-mt)"; |
|
else |
|
ac_qt_notfound="(library $qtlib)"; |
|
fi |
|
fi |
|
|
|
AC_MSG_ERROR([Qt ($kde_qt_minversion) $ac_qt_notfound not found. Please check your installation! |
|
For more details about this problem, look at the end of config.log.$missing_qt_mt]) |
|
else |
|
have_qt="yes" |
|
fi |
|
]) |
|
|
|
eval "$ac_cv_have_qt" |
|
|
|
if test "$have_qt" != yes; then |
|
AC_MSG_RESULT([$have_qt]); |
|
else |
|
ac_cv_have_qt="have_qt=yes \ |
|
ac_qt_includes=$ac_qt_includes ac_qt_libraries=$ac_qt_libraries" |
|
AC_MSG_RESULT([libraries $ac_qt_libraries, headers $ac_qt_includes $USING_QT_MT]) |
|
|
|
qt_libraries="$ac_qt_libraries" |
|
qt_includes="$ac_qt_includes" |
|
fi |
|
|
|
if test ! "$kde_qt_libs_given" = "yes" && test ! "$kde_qtver" = 3; then |
|
KDE_CHECK_QT_DIRECT(qt_libraries= ,[]) |
|
fi |
|
|
|
AC_SUBST(qt_libraries) |
|
AC_SUBST(qt_includes) |
|
|
|
if test "$qt_includes" = "$x_includes" || test -z "$qt_includes"; then |
|
QT_INCLUDES="" |
|
else |
|
QT_INCLUDES="-I$qt_includes" |
|
all_includes="$QT_INCLUDES $all_includes" |
|
fi |
|
|
|
if test "$qt_libraries" = "$x_libraries" || test -z "$qt_libraries"; then |
|
QT_LDFLAGS="" |
|
else |
|
QT_LDFLAGS="-L$qt_libraries" |
|
all_libraries="$QT_LDFLAGS $all_libraries" |
|
fi |
|
test -z "$KDE_MT_LDFLAGS" || all_libraries="$all_libraries $KDE_MT_LDFLAGS" |
|
|
|
AC_SUBST(QT_INCLUDES) |
|
AC_SUBST(QT_LDFLAGS) |
|
AC_PATH_QT_MOC_UIC |
|
|
|
KDE_CHECK_QT_JPEG |
|
|
|
if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then |
|
LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG) -lXext $(LIB_X11) $(LIBSM)' |
|
else |
|
LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG)' |
|
fi |
|
test -z "$KDE_MT_LIBS" || LIB_QT="$LIB_QT $KDE_MT_LIBS" |
|
for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do |
|
if test -e "$a"; then |
|
LIB_QT="$LIB_QT ${kde_int_qt}_incremental" |
|
break |
|
fi |
|
done |
|
|
|
AC_SUBST(LIB_QT) |
|
AC_SUBST(LIB_QPE) |
|
|
|
AC_SUBST(kde_qtver) |
|
]) |
|
|
|
AC_DEFUN([AC_PATH_QT], |
|
[ |
|
AC_PATH_QT_1_3 |
|
]) |
|
|
|
AC_DEFUN([KDE_CHECK_UIC_PLUGINS], |
|
[ |
|
AC_REQUIRE([AC_PATH_QT_MOC_UIC]) |
|
|
|
if test x$ac_uic_supports_libpath = xyes; then |
|
|
|
AC_MSG_CHECKING([if UIC has KDE plugins available]) |
|
AC_CACHE_VAL(kde_cv_uic_plugins, |
|
[ |
|
cat > actest.ui << EOF |
|
<!DOCTYPE UI><UI version="3.0" stdsetdef="1"> |
|
<class>NewConnectionDialog</class> |
|
<widget class="QDialog"> |
|
<widget class="KLineEdit"> |
|
<property name="name"> |
|
<cstring>testInput</cstring> |
|
</property> |
|
</widget> |
|
</widget> |
|
</UI> |
|
EOF |
|
|
|
|
|
|
|
kde_cv_uic_plugins=no |
|
kde_line="$UIC_PATH -L $kde_widgetdir" |
|
if test x$ac_uic_supports_nounload = xyes; then |
|
kde_line="$kde_line -nounload" |
|
fi |
|
kde_line="$kde_line -impl actest.h actest.ui > actest.cpp" |
|
if AC_TRY_EVAL(kde_line); then |
|
# if you're trying to debug this check and think it's incorrect, |
|
# better check your installation. The check _is_ correct - your |
|
# installation is not. |
|
if test -f actest.cpp && grep klineedit actest.cpp > /dev/null; then |
|
kde_cv_uic_plugins=yes |
|
fi |
|
fi |
|
rm -f actest.ui actest.cpp |
|
]) |
|
|
|
AC_MSG_RESULT([$kde_cv_uic_plugins]) |
|
if test "$kde_cv_uic_plugins" != yes; then |
|
AC_MSG_ERROR([ |
|
you need to install tdelibs first. |
|
|
|
If you did install tdelibs, then the Qt version that is picked up by |
|
this configure is not the same version you used to compile tdelibs. |
|
The Qt Plugin installed by tdelibs is *ONLY* loadable if it is the |
|
_same Qt version_, compiled with the _same compiler_ and the same Qt |
|
configuration settings. |
|
]) |
|
fi |
|
fi |
|
]) |
|
|
|
AC_DEFUN([KDE_CHECK_FINAL], |
|
[ |
|
AC_ARG_ENABLE(final, |
|
AC_HELP_STRING([--enable-final], |
|
[build size optimized apps (experimental - needs lots of memory)]), |
|
kde_use_final=$enableval, kde_use_final=no) |
|
|
|
if test "x$kde_use_final" = "xyes"; then |
|
KDE_USE_FINAL_TRUE="" |
|
KDE_USE_FINAL_FALSE="#" |
|
else |
|
KDE_USE_FINAL_TRUE="#" |
|
KDE_USE_FINAL_FALSE="" |
|
fi |
|
AC_SUBST(KDE_USE_FINAL_TRUE) |
|
AC_SUBST(KDE_USE_FINAL_FALSE) |
|
]) |
|
|
|
AC_DEFUN([KDE_CHECK_CLOSURE], |
|
[ |
|
AC_ARG_ENABLE(closure, |
|
AC_HELP_STRING([--enable-closure],[delay template instantiation]), |
|
kde_use_closure=$enableval, kde_use_closure=no) |
|
|
|
KDE_NO_UNDEFINED="" |
|
if test "x$kde_use_closure" = "xyes"; then |
|
KDE_USE_CLOSURE_TRUE="" |
|
KDE_USE_CLOSURE_FALSE="#" |
|
# CXXFLAGS="$CXXFLAGS $REPO" |
|
else |
|
KDE_USE_CLOSURE_TRUE="#" |
|
KDE_USE_CLOSURE_FALSE="" |
|
KDE_NO_UNDEFINED="" |
|
case $host in |
|
*-*-linux-gnu) |
|
KDE_CHECK_COMPILER_FLAG([Wl,--no-undefined], |
|
[KDE_CHECK_COMPILER_FLAG([Wl,--allow-shlib-undefined], |
|
[KDE_NO_UNDEFINED="-Wl,--no-undefined -Wl,--allow-shlib-undefined"], |
|
[KDE_NO_UNDEFINED=""])], |
|
[KDE_NO_UNDEFINED=""]) |
|
;; |
|
esac |
|
fi |
|
AC_SUBST(KDE_USE_CLOSURE_TRUE) |
|
AC_SUBST(KDE_USE_CLOSURE_FALSE) |
|
AC_SUBST(KDE_NO_UNDEFINED) |
|
]) |
|
|
|
dnl Check if the linker supports --enable-new-dtags and --as-needed |
|
AC_DEFUN([KDE_CHECK_NEW_LDFLAGS], |
|
[ |
|
AC_ARG_ENABLE(new_ldflags, |
|
AC_HELP_STRING([--enable-new-ldflags], |
|
[enable the new linker flags]), |
|
kde_use_new_ldflags=$enableval, |
|
kde_use_new_ldflags=no) |
|
|
|
LDFLAGS_AS_NEEDED="" |
|
LDFLAGS_NEW_DTAGS="" |
|
if test "x$kde_use_new_ldflags" = "xyes"; then |
|
LDFLAGS_NEW_DTAGS="" |
|
KDE_CHECK_COMPILER_FLAG([Wl,--enable-new-dtags], |
|
[LDFLAGS_NEW_DTAGS="-Wl,--enable-new-dtags"],) |
|
|
|
KDE_CHECK_COMPILER_FLAG([Wl,--as-needed], |
|
[LDFLAGS_AS_NEEDED="-Wl,--as-needed"],) |
|
fi |
|
AC_SUBST(LDFLAGS_AS_NEEDED) |
|
AC_SUBST(LDFLAGS_NEW_DTAGS) |
|
]) |
|
|
|
AC_DEFUN([KDE_CHECK_NMCHECK], |
|
[ |
|
AC_ARG_ENABLE(nmcheck,AC_HELP_STRING([--enable-nmcheck],[enable automatic namespace cleanness check]), |
|
kde_use_nmcheck=$enableval, kde_use_nmcheck=no) |
|
|
|
if test "$kde_use_nmcheck" = "yes"; then |
|
KDE_USE_NMCHECK_TRUE="" |
|
KDE_USE_NMCHECK_FALSE="#" |
|
else |
|
KDE_USE_NMCHECK_TRUE="#" |
|
KDE_USE_NMCHECK_FALSE="" |
|
fi |
|
AC_SUBST(KDE_USE_NMCHECK_TRUE) |
|
AC_SUBST(KDE_USE_NMCHECK_FALSE) |
|
]) |
|
|
|
AC_DEFUN([KDE_EXPAND_MAKEVAR], [ |
|
savex=$exec_prefix |
|
test "x$exec_prefix" = xNONE && exec_prefix=$prefix |
|
tmp=$$2 |
|
while $1=`eval echo "$tmp"`; test "x$$1" != "x$tmp"; do tmp=$$1; done |
|
exec_prefix=$savex |
|
]) |
|
|
|
dnl ------------------------------------------------------------------------ |
|
dnl Now, the same with KDE |
|
dnl $(KDE_LDFLAGS) will be the kdeliblocation (if needed) |
|
dnl and $(kde_includes) will be the kdehdrlocation (if needed) |
|
dnl ------------------------------------------------------------------------ |
|
dnl |
|
AC_DEFUN([AC_BASE_PATH_KDE], |
|
[ |
|
AC_REQUIRE([KDE_CHECK_STL]) |
|
AC_REQUIRE([AC_PATH_QT])dnl |
|
AC_REQUIRE([KDE_CHECK_LIB64]) |
|
|
|
AC_CHECK_RPATH |
|
AC_MSG_CHECKING([for KDE]) |
|
|
|
if test "${prefix}" != NONE; then |
|
kde_includes=${includedir} |
|
KDE_EXPAND_MAKEVAR(ac_kde_includes, includedir) |
|
|
|
kde_libraries=${libdir} |
|
KDE_EXPAND_MAKEVAR(ac_kde_libraries, libdir) |
|
|
|
else |
|
ac_kde_includes= |
|
ac_kde_libraries= |
|
kde_libraries="" |
|
kde_includes="" |
|
fi |
|
|
|
AC_CACHE_VAL(ac_cv_have_kde, |
|
[#try to guess kde locations |
|
|
|
if test "$kde_qtver" = 1; then |
|
kde_check_header="ksock.h" |
|
kde_check_lib="libtdecore.la" |
|
else |
|
kde_check_header="ksharedptr.h" |
|
kde_check_lib="libtdeio.la" |
|
fi |
|
|
|
if test -z "$1"; then |
|
|
|
kde_incdirs="$kde_libs_prefix/include /usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/tde /usr/include /opt/trinity/include /opt/kde/include $x_includes $qt_includes" |
|
test -n "$TDEDIR" && kde_incdirs="$TDEDIR/include $TDEDIR/include/tde $TDEDIR $kde_incdirs" |
|
kde_incdirs="$ac_kde_includes $kde_incdirs" |
|
AC_FIND_FILE($kde_check_header, $kde_incdirs, kde_incdir) |
|
ac_kde_includes="$kde_incdir" |
|
|
|
if test -n "$ac_kde_includes" && test ! -r "$ac_kde_includes/$kde_check_header"; then |
|
AC_MSG_ERROR([ |
|
in the prefix, you've chosen, are no KDE headers installed. This will fail. |
|
So, check this please and use another prefix!]) |
|
fi |
|
|
|
kde_libdirs="$kde_libs_prefix/lib${tdelibsuff} /usr/lib/kde/lib${tdelibsuff} /usr/local/kde/lib${tdelibsuff} /usr/kde/lib${tdelibsuff} /usr/lib${tdelibsuff}/kde /usr/lib${tdelibsuff}/trinity /usr/lib${tdelibsuff} /usr/X11R6/lib${tdelibsuff} /usr/local/lib${tdelibsuff} /opt/trinity/lib${tdelibsuff} /opt/kde/lib${tdelibsuff} /usr/X11R6/kde/lib${tdelibsuff}" |
|
test -n "$TDEDIR" && kde_libdirs="$TDEDIR/lib${tdelibsuff} $TDEDIR $kde_libdirs" |
|
kde_libdirs="$ac_kde_libraries $libdir $kde_libdirs" |
|
AC_FIND_FILE($kde_check_lib, $kde_libdirs, kde_libdir) |
|
ac_kde_libraries="$kde_libdir" |
|
|
|
kde_widgetdir=NO |
|
dnl this might be somewhere else |
|
AC_FIND_FILE("trinity/plugins/designer/kdewidgets.la", $kde_libdirs, kde_widgetdir) |
|
|
|
if test -n "$ac_kde_libraries" && test ! -r "$ac_kde_libraries/$kde_check_lib"; then |
|
AC_MSG_ERROR([ |
|
in the prefix, you've chosen, are no KDE libraries installed. This will fail. |
|
So, check this please and use another prefix!]) |
|
fi |
|
|
|
if test -n "$kde_widgetdir" && test ! -r "$kde_widgetdir/trinity/plugins/designer/kdewidgets.la"; then |
|
AC_MSG_ERROR([ |
|
I can't find the designer plugins. These are required and should have been installed |
|
by tdelibs]) |
|
fi |
|
|
|
if test -n "$kde_widgetdir"; then |
|
kde_widgetdir="$kde_widgetdir/trinity/plugins/designer" |
|
fi |
|
|
|
|
|
if test "$ac_kde_includes" = NO || test "$ac_kde_libraries" = NO || test "$kde_widgetdir" = NO; then |
|
ac_cv_have_kde="have_kde=no" |
|
else |
|
ac_cv_have_kde="have_kde=yes \ |
|
ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries" |
|
fi |
|
|
|
else dnl test -z $1, e.g. from tdelibs |
|
|
|
ac_cv_have_kde="have_kde=no" |
|
|
|
fi |
|
])dnl |
|
|
|
eval "$ac_cv_have_kde" |
|
|
|
if test "$have_kde" != "yes"; then |
|
if test "${prefix}" = NONE; then |
|
ac_kde_prefix="$ac_default_prefix" |
|
else |
|
ac_kde_prefix="$prefix" |
|
fi |
|
if test "$exec_prefix" = NONE; then |
|
ac_kde_exec_prefix="$ac_kde_prefix" |
|
AC_MSG_RESULT([will be installed in $ac_kde_prefix]) |
|
else |
|
ac_kde_exec_prefix="$exec_prefix" |
|
AC_MSG_RESULT([will be installed in $ac_kde_prefix and $ac_kde_exec_prefix]) |
|
fi |
|
|
|
kde_libraries="${libdir}" |
|
kde_includes="${includedir}" |
|
|
|
else |
|
ac_cv_have_kde="have_kde=yes \ |
|
ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries" |
|
AC_MSG_RESULT([libraries $ac_kde_libraries, headers $ac_kde_includes]) |
|
|
|
kde_libraries="$ac_kde_libraries" |
|
kde_includes="$ac_kde_includes" |
|
fi |
|
AC_SUBST(kde_libraries) |
|
AC_SUBST(kde_includes) |
|
|
|
if test "$kde_includes" = "$x_includes" || test "$kde_includes" = "$qt_includes" || test "$kde_includes" = "/usr/include"; then |
|
KDE_INCLUDES="" |
|
else |
|
KDE_INCLUDES="-I$kde_includes" |
|
all_includes="$KDE_INCLUDES $all_includes" |
|
fi |
|
|
|
KDE_DEFAULT_CXXFLAGS="-DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION" |
|
|
|
KDE_LDFLAGS="-L$kde_libraries" |
|
if test ! "$kde_libraries" = "$x_libraries" && test ! "$kde_libraries" = "$qt_libraries" ; then |
|
all_libraries="$KDE_LDFLAGS $all_libraries" |
|
fi |
|
|
|
AC_SUBST(KDE_LDFLAGS) |
|
AC_SUBST(KDE_INCLUDES) |
|
|
|
AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) |
|
|
|
all_libraries="$all_libraries $USER_LDFLAGS" |
|
all_includes="$all_includes $USER_INCLUDES" |
|
AC_SUBST(all_includes) |
|
AC_SUBST(all_libraries) |
|
|
|
if test -z "$1"; then |
|
KDE_CHECK_UIC_PLUGINS |
|
fi |
|
|
|
ac_kde_libraries="$kde_libdir" |
|
|
|
AC_SUBST(AUTODIRS) |
|
|
|
|
|
]) |
|
|
|
AC_DEFUN([KDE_CHECK_EXTRA_LIBS], |
|
[ |
|
AC_MSG_CHECKING(for extra includes) |
|
AC_ARG_WITH(extra-includes,AC_HELP_STRING([--with-extra-includes=DIR],[adds non standard include paths]), |
|
kde_use_extra_includes="$withval", |
|
kde_use_extra_includes=NONE |
|
) |
|
kde_extra_includes= |
|
if test -n "$kde_use_extra_includes" && \ |
|
test "$kde_use_extra_includes" != "NONE"; then |
|
|
|
ac_save_ifs=$IFS |
|
IFS=':' |
|
for dir in $kde_use_extra_includes; do |
|
kde_extra_includes="$kde_extra_includes $dir" |
|
USER_INCLUDES="$USER_INCLUDES -I$dir" |
|
done |
|
IFS=$ac_save_ifs |
|
kde_use_extra_includes="added" |
|
else |
|
kde_use_extra_includes="no" |
|
fi |
|
AC_SUBST(USER_INCLUDES) |
|
|
|
AC_MSG_RESULT($kde_use_extra_includes) |
|
|
|
kde_extra_libs= |
|
AC_MSG_CHECKING(for extra libs) |
|
AC_ARG_WITH(extra-libs,AC_HELP_STRING([--with-extra-libs=DIR],[adds non standard library paths]), |
|
kde_use_extra_libs=$withval, |
|
kde_use_extra_libs=NONE |
|
) |
|
if test -n "$kde_use_extra_libs" && \ |
|
test "$kde_use_extra_libs" != "NONE"; then |
|
|
|
ac_save_ifs=$IFS |
|
IFS=':' |
|
for dir in $kde_use_extra_libs; do |
|
kde_extra_libs="$kde_extra_libs $dir" |
|
KDE_EXTRA_RPATH="$KDE_EXTRA_RPATH -R $dir" |
|
USER_LDFLAGS="$USER_LDFLAGS -L$dir" |
|
done |
|
IFS=$ac_save_ifs |
|
kde_use_extra_libs="added" |
|
else |
|
kde_use_extra_libs="no" |
|
fi |
|
|
|
AC_SUBST(USER_LDFLAGS) |
|
|
|
AC_MSG_RESULT($kde_use_extra_libs) |
|
|
|
]) |
|
|
|
AC_DEFUN([KDE_1_CHECK_PATH_HEADERS], |
|
[ |
|
AC_MSG_CHECKING([for KDE headers installed]) |
|
AC_LANG_SAVE |
|
AC_LANG_CPLUSPLUS |
|
cat > conftest.$ac_ext <<EOF |
|
#ifdef STDC_HEADERS |
|
# include <stdlib.h> |
|
#endif |
|
#include <stdio.h> |
|
#include "confdefs.h" |
|
#include <kapp.h> |
|
|
|
int main() { |
|
printf("kde_htmldir=\\"%s\\"\n", TDEApplication::kde_htmldir().data()); |
|
printf("kde_appsdir=\\"%s\\"\n", TDEApplication::kde_appsdir().data()); |
|
printf("kde_icondir=\\"%s\\"\n", TDEApplication::kde_icondir().data()); |
|
printf("kde_sounddir=\\"%s\\"\n", TDEApplication::kde_sounddir().data()); |
|
printf("kde_datadir=\\"%s\\"\n", TDEApplication::kde_datadir().data()); |
|
printf("kde_locale=\\"%s\\"\n", TDEApplication::kde_localedir().data()); |
|
printf("kde_cgidir=\\"%s\\"\n", TDEApplication::kde_cgidir().data()); |
|
printf("kde_confdir=\\"%s\\"\n", TDEApplication::kde_configdir().data()); |
|
printf("kde_mimedir=\\"%s\\"\n", TDEApplication::kde_mimedir().data()); |
|
printf("kde_toolbardir=\\"%s\\"\n", TDEApplication::kde_toolbardir().data()); |
|
printf("kde_wallpaperdir=\\"%s\\"\n", |
|
TDEApplication::kde_wallpaperdir().data()); |
|
printf("kde_bindir=\\"%s\\"\n", TDEApplication::kde_bindir().data()); |
|
printf("kde_partsdir=\\"%s\\"\n", TDEApplication::kde_partsdir().data()); |
|
printf("kde_servicesdir=\\"/tmp/dummy\\"\n"); |
|
printf("kde_servicetypesdir=\\"/tmp/dummy\\"\n"); |
|
printf("kde_moduledir=\\"/tmp/dummy\\"\n"); |
|
printf("kde_styledir=\\"/tmp/dummy\\"\n"); |
|
printf("kde_widgetdir=\\"/tmp/dummy\\"\n"); |
|
printf("xdg_appsdir=\\"/tmp/dummy\\"\n"); |
|
printf("xdg_menudir=\\"/tmp/dummy\\"\n"); |
|
printf("xdg_directorydir=\\"/tmp/dummy\\"\n"); |
|
printf("kde_kcfgdir=\\"/tmp/dummy\\"\n"); |
|
return 0; |
|
} |
|
EOF |
|
|
|
ac_save_CPPFLAGS=$CPPFLAGS |
|
CPPFLAGS="$all_includes $CPPFLAGS" |
|
if AC_TRY_EVAL(ac_compile); then |
|
AC_MSG_RESULT(yes) |
|
else |
|
AC_MSG_ERROR([your system is not able to compile a small KDE application! |
|
Check, if you installed the KDE header files correctly. |
|
For more details about this problem, look at the end of config.log.]) |
|
fi |
|
CPPFLAGS=$ac_save_CPPFLAGS |
|
|
|
AC_LANG_RESTORE |
|
]) |
|
|
|
AC_DEFUN([KDE_CHECK_KDEQTADDON], |
|
[ |
|
AC_MSG_CHECKING(for kde-qt-addon) |
|
AC_CACHE_VAL(kde_cv_have_kdeqtaddon, |
|
[ |
|
kde_ldflags_safe="$LDFLAGS" |
|
kde_libs_safe="$LIBS" |
|
kde_cxxflags_safe="$CXXFLAGS" |
|
|
|
LIBS="-lkde-qt-addon $LIBQT $LIBS" |
|
CXXFLAGS="$CXXFLAGS -I$prefix/include -I$prefix/include/tde $all_includes" |
|
LDFLAGS="$LDFLAGS $all_libraries $USER_LDFLAGS" |
|
|
|
AC_TRY_LINK([ |
|
#include <qdom.h> |
|
], |
|
[ |
|
QDomDocument doc; |
|
], |
|
kde_cv_have_kdeqtaddon=yes, |
|
kde_cv_have_kdeqtaddon=no |
|
) |
|
|
|
LDFLAGS=$kde_ldflags_safe |
|
LIBS=$kde_libs_safe |
|
CXXFLAGS=$kde_cxxflags_safe |
|
]) |
|
|
|
AC_MSG_RESULT($kde_cv_have_kdeqtaddon) |
|
|
|
if test "$kde_cv_have_kdeqtaddon" = "no"; then |
|
AC_MSG_ERROR([Can't find libkde-qt-addon. You need to install it first. |
|
It is a separate package (and CVS module) named kde-qt-addon.]) |
|
fi |
|
]) |
|
|
|
AC_DEFUN([KDE_CREATE_LIBS_ALIASES], |
|
[ |
|
AC_REQUIRE([KDE_MISC_TESTS]) |
|
AC_REQUIRE([KDE_CHECK_LIBDL]) |
|
AC_REQUIRE([K_PATH_X]) |
|
|
|
if test $kde_qtver = 3; then |
|
case $host in |
|
*cygwin*) lib_kded="-ltdeinit_kded" ;; |
|
*) lib_kded="" ;; |
|
esac |
|
AC_SUBST(LIB_KDED, $lib_kded) |
|
AC_SUBST(LIB_TDECORE, "-ltdecore") |
|
AC_SUBST(LIB_TDEUI, "-ltdeui") |
|
AC_SUBST(LIB_KIO, "-lkio") |
|
AC_SUBST(LIB_KJS, "-lkjs") |
|
AC_SUBST(LIB_SMB, "-lsmb") |
|
AC_SUBST(LIB_KAB, "-lkab") |
|
AC_SUBST(LIB_KABC, "-lkabc") |
|
AC_SUBST(LIB_KHTML, "-ltdehtml") |
|
AC_SUBST(LIB_KSPELL, "-ltdespell") |
|
AC_SUBST(LIB_KPARTS, "-ltdeparts") |
|
AC_SUBST(LIB_TDEPRINT, "-ltdeprint") |
|
AC_SUBST(LIB_KUTILS, "-ltdeutils") |
|
AC_SUBST(LIB_TDEPIM, "-ltdepim") |
|
AC_SUBST(LIB_KIMPROXY, "-ltdeimproxy") |
|
AC_SUBST(LIB_KNEWSTUFF, "-lknewstuff") |
|
AC_SUBST(LIB_KDNSSD, "-ltdednssd") |
|
AC_SUBST(LIB_KUNITTEST, "-ltdeunittest") |
|
# these are for backward compatibility |
|
AC_SUBST(LIB_KSYCOCA, "-lkio") |
|
AC_SUBST(LIB_KFILE, "-lkio") |
|
elif test $kde_qtver = 2; then |
|
AC_SUBST(LIB_TDECORE, "-ltdecore") |
|
AC_SUBST(LIB_TDEUI, "-ltdeui") |
|
AC_SUBST(LIB_KIO, "-lkio") |
|
AC_SUBST(LIB_KSYCOCA, "-ltdesycoca") |
|
AC_SUBST(LIB_SMB, "-lsmb") |
|
AC_SUBST(LIB_KFILE, "-ltdefile") |
|
AC_SUBST(LIB_KAB, "-lkab") |
|
AC_SUBST(LIB_KHTML, "-ltdehtml") |
|
AC_SUBST(LIB_KSPELL, "-ltdespell") |
|
AC_SUBST(LIB_KPARTS, "-ltdeparts") |
|
AC_SUBST(LIB_TDEPRINT, "-ltdeprint") |
|
else |
|
AC_SUBST(LIB_TDECORE, "-ltdecore -lXext $(LIB_QT)") |
|
AC_SUBST(LIB_TDEUI, "-ltdeui $(LIB_TDECORE)") |
|
AC_SUBST(LIB_KFM, "-lkfm $(LIB_TDECORE)") |
|
AC_SUBST(LIB_KFILE, "-ltdefile $(LIB_KFM) $(LIB_TDEUI)") |
|
AC_SUBST(LIB_KAB, "-lkab $(LIB_KIMGIO) $(LIB_TDECORE)") |
|
fi |
|
]) |
|
|
|
AC_DEFUN([AC_PATH_KDE], |
|
[ |
|
AC_BASE_PATH_KDE |
|
AC_ARG_ENABLE(path-check,AC_HELP_STRING([--disable-path-check],[don't try to find out, where to install]), |
|
[ |
|
if test "$enableval" = "no"; |
|
then ac_use_path_checking="default" |
|
else ac_use_path_checking="" |
|
fi |
|
], |
|
[ |
|
if test "$kde_qtver" = 1; |
|
then ac_use_path_checking="" |
|
else ac_use_path_checking="default" |
|
fi |
|
] |
|
) |
|
|
|
AC_CREATE_KFSSTND($ac_use_path_checking) |
|
|
|
AC_SUBST_KFSSTND |
|
KDE_CREATE_LIBS_ALIASES |
|
]) |
|
|
|
dnl KDE_CHECK_FUNC_EXT(<func>, [headers], [sample-use], [C prototype], [autoheader define], [call if found]) |
|
AC_DEFUN([KDE_CHECK_FUNC_EXT], |
|
[ |
|
AC_MSG_CHECKING(for $1) |
|
AC_CACHE_VAL(kde_cv_func_$1, |
|
[ |
|
AC_LANG_SAVE |
|
AC_LANG_CPLUSPLUS |
|
save_CXXFLAGS="$CXXFLAGS" |
|
kde_safe_LIBS="$LIBS" |
|
LIBS="$LIBS $X_EXTRA_LIBS" |
|
if test "$GXX" = "yes"; then |
|
CXXFLAGS="$CXXFLAGS -pedantic-errors" |
|
fi |
|
AC_TRY_COMPILE([ |
|
$2 |
|
], |
|
[ |
|
$3 |
|
], |
|
kde_cv_func_$1=yes, |
|
kde_cv_func_$1=no) |
|
CXXFLAGS="$save_CXXFLAGS" |
|
LIBS="$kde_safe_LIBS" |
|
AC_LANG_RESTORE |
|
]) |
|
|
|
AC_MSG_RESULT($kde_cv_func_$1) |
|
|
|
AC_MSG_CHECKING([if $1 needs custom prototype]) |
|
AC_CACHE_VAL(kde_cv_proto_$1, |
|
[ |
|
if test "x$kde_cv_func_$1" = xyes; then |
|
kde_cv_proto_$1=no |
|
else |
|
case "$1" in |
|
setenv|unsetenv|usleep|random|srandom|seteuid|mkstemps|mkstemp|revoke|vsnprintf|strlcpy|strlcat) |
|
kde_cv_proto_$1="yes - in libtdefakes" |
|
;; |
|
*) |
|
kde_cv_proto_$1=unknown |
|
;; |
|
esac |
|
fi |
|
|
|
if test "x$kde_cv_proto_$1" = xunknown; then |
|
|
|
AC_LANG_SAVE |
|
AC_LANG_CPLUSPLUS |
|
kde_safe_libs=$LIBS |
|
LIBS="$LIBS $X_EXTRA_LIBS" |
|
AC_TRY_LINK([ |
|
$2 |
|
|
|
extern "C" $4; |
|
], |
|
[ |
|
$3 |
|
], |
|
[ kde_cv_func_$1=yes |
|
kde_cv_proto_$1=yes ], |
|
[kde_cv_proto_$1="$1 unavailable"] |
|
) |
|
LIBS=$kde_safe_libs |
|
AC_LANG_RESTORE |
|
fi |
|
]) |
|
AC_MSG_RESULT($kde_cv_proto_$1) |
|
|
|
if test "x$kde_cv_func_$1" = xyes; then |
|
AC_DEFINE(HAVE_$5, 1, [Define if you have $1]) |
|
$6 |
|
fi |
|
if test "x$kde_cv_proto_$1" = xno; then |
|
AC_DEFINE(HAVE_$5_PROTO, 1, |
|
[Define if you have the $1 prototype]) |
|
fi |
|
|
|
AH_VERBATIM([_HAVE_$5_PROTO], |
|
[ |
|
#if !defined(HAVE_$5_PROTO) |
|
#ifdef __cplusplus |
|
extern "C" { |
|
#endif |
|
$4; |
|
#ifdef __cplusplus |
|
} |
|
#endif |
|
#endif |
|
]) |
|
]) |
|
|
|
AC_DEFUN([AC_CHECK_SETENV], |
|
[ |
|
KDE_CHECK_FUNC_EXT(setenv, [ |
|
#include <stdlib.h> |
|
], |
|
[setenv("VAR", "VALUE", 1);], |
|
[int setenv (const char *, const char *, int)], |
|
[SETENV]) |
|
]) |
|
|
|
AC_DEFUN([AC_CHECK_UNSETENV], |
|
[ |
|
KDE_CHECK_FUNC_EXT(unsetenv, [ |
|
#include <stdlib.h> |
|
], |
|
[unsetenv("VAR");], |
|
[void unsetenv (const char *)], |
|
[UNSETENV]) |
|
]) |
|
|
|
AC_DEFUN([AC_CHECK_GETDOMAINNAME], |
|
[ |
|
KDE_CHECK_FUNC_EXT(getdomainname, [ |
|
#include <stdlib.h> |
|
#include <unistd.h> |
|
#include <netdb.h> |
|
], |
|
[ |
|
char buffer[200]; |
|
getdomainname(buffer, 200); |
|
], |
|
[#include <sys/types.h> |
|
int getdomainname (char *, size_t)], |
|
[GETDOMAINNAME]) |
|
]) |
|
|
|
AC_DEFUN([AC_CHECK_GETHOSTNAME], |
|
[ |
|
KDE_CHECK_FUNC_EXT(gethostname, [ |
|
#include <stdlib.h> |
|
#include <unistd.h> |
|
], |
|
[ |
|
char buffer[200]; |
|
gethostname(buffer, 200); |
|
], |
|
[int gethostname (char *, unsigned int)], |
|
[GETHOSTNAME]) |
|
]) |
|
|
|
AC_DEFUN([AC_CHECK_USLEEP], |
|
[ |
|
KDE_CHECK_FUNC_EXT(usleep, [ |
|
#include <unistd.h> |
|
], |
|
[ |
|
usleep(200); |
|
], |
|
[int usleep (unsigned int)], |
|
[USLEEP]) |
|
]) |
|
|
|
|
|
AC_DEFUN([AC_CHECK_RANDOM], |
|
[ |
|
KDE_CHECK_FUNC_EXT(random, [ |
|
#include <stdlib.h> |
|
], |
|
[ |
|
random(); |
|
], |
|
[long int random(void)], |
|
[RANDOM]) |
|
|
|
KDE_CHECK_FUNC_EXT(srandom, [ |
|
#include <stdlib.h> |
|
], |
|
[ |
|
srandom(27); |
|
], |
|
[void srandom(unsigned int)], |
|
[SRANDOM]) |
|
|
|
]) |
|
|
|
AC_DEFUN([AC_CHECK_INITGROUPS], |
|
[ |
|
KDE_CHECK_FUNC_EXT(initgroups, [ |
|
#include <sys/types.h> |
|
#include <unistd.h> |
|
#include <grp.h> |
|
], |
|
[ |
|
char buffer[200]; |
|
initgroups(buffer, 27); |
|
], |
|
[int initgroups(const char *, gid_t)], |
|
[INITGROUPS]) |
|
]) |
|
|
|
AC_DEFUN([AC_CHECK_MKSTEMPS], |
|
[ |
|
KDE_CHECK_FUNC_EXT(mkstemps, [ |
|
#include <stdlib.h> |
|
#include <unistd.h> |
|
], |
|
[ |
|
mkstemps("/tmp/aaaXXXXXX", 6); |
|
], |
|
[int mkstemps(char *, int)], |
|
[MKSTEMPS]) |
|
]) |
|
|
|
AC_DEFUN([AC_CHECK_MKSTEMP], |
|
[ |
|
KDE_CHECK_FUNC_EXT(mkstemp, [ |
|
#include <stdlib.h> |
|
#include <unistd.h> |
|
], |
|
[ |
|
mkstemp("/tmp/aaaXXXXXX"); |
|
], |
|
[int mkstemp(char *)], |
|
[MKSTEMP]) |
|
]) |
|
|
|
AC_DEFUN([AC_CHECK_MKDTEMP], |
|
[ |
|
KDE_CHECK_FUNC_EXT(mkdtemp, [ |
|
#include <stdlib.h> |
|
#include <unistd.h> |
|
], |
|
[ |
|
mkdtemp("/tmp/aaaXXXXXX"); |
|
], |
|
[char *mkdtemp(char *)], |
|
[MKDTEMP]) |
|
]) |
|
|
|
|
|
AC_DEFUN([AC_CHECK_RES_INIT], |
|
[ |
|
AC_MSG_CHECKING([if res_init needs -lresolv]) |
|
kde_libs_safe="$LIBS" |
|
LIBS="$LIBS $X_EXTRA_LIBS -lresolv" |
|
AC_TRY_LINK( |
|
[ |
|
#include <sys/types.h> |
|
#include <netinet/in.h> |
|
#include <arpa/nameser.h> |
|
#include <resolv.h> |
|
], |
|
[ |
|
res_init(); |
|
], |
|
[ |
|
LIBRESOLV="-lresolv" |
|
AC_MSG_RESULT(yes) |
|
AC_DEFINE(HAVE_RES_INIT, 1, [Define if you have the res_init function]) |
|
], |
|
[ AC_MSG_RESULT(no) ] |
|
) |
|
LIBS=$kde_libs_safe |
|
AC_SUBST(LIBRESOLV) |
|
|
|
KDE_CHECK_FUNC_EXT(res_init, |
|
[ |
|
#include <sys/types.h> |
|
#include <netinet/in.h> |
|
#include <arpa/nameser.h> |
|
#include <resolv.h> |
|
], |
|
[res_init()], |
|
[int res_init(void)], |
|
[RES_INIT]) |
|
]) |
|
|
|
AC_DEFUN([AC_CHECK_STRLCPY], |
|
[ |
|
KDE_CHECK_FUNC_EXT(strlcpy, [ |
|
#include <string.h> |
|
], |
|
[ char buf[20]; |
|
strlcpy(buf, "KDE function test", sizeof(buf)); |
|
], |
|
[unsigned long strlcpy(char*, const char*, unsigned long)], |
|
[STRLCPY]) |
|
]) |
|
|
|
AC_DEFUN([AC_CHECK_STRLCAT], |
|
[ |
|
KDE_CHECK_FUNC_EXT(strlcat, [ |
|
#include <string.h> |
|
], |
|
[ char buf[20]; |
|
buf[0]='\0'; |
|
strlcat(buf, "KDE function test", sizeof(buf)); |
|
], |
|
[unsigned long strlcat(char*, const char*, unsigned long)], |
|
[STRLCAT]) |
|
]) |
|
|
|
AC_DEFUN([AC_CHECK_RES_QUERY], |
|
[ |
|
KDE_CHECK_FUNC_EXT(res_query, [ |
|
#include <sys/types.h> |
|
#include <netinet/in.h> |
|
#include <arpa/nameser.h> |
|
#include <resolv.h> |
|
#include <netdb.h> |
|
], |
|
[ |
|
res_query(NULL, 0, 0, NULL, 0); |
|
], |
|
[int res_query(const char *, int, int, unsigned char *, int)], |
|
[RES_QUERY]) |
|
]) |
|
|
|
AC_DEFUN([AC_CHECK_DN_SKIPNAME], |
|
[ |
|
KDE_CHECK_FUNC_EXT(dn_skipname, [ |
|
#include <sys/types.h> |
|
#include <netinet/in.h> |
|
#include <arpa/nameser.h> |
|
#include <resolv.h> |
|
], |
|
[ |
|
dn_skipname (NULL, NULL); |
|
], |
|
[int dn_skipname (unsigned char *, unsigned char *)], |
|
[DN_SKIPNAME]) |
|
]) |
|
|
|
|
|
AC_DEFUN([AC_FIND_GIF], |
|
[AC_MSG_CHECKING([for giflib]) |
|
AC_CACHE_VAL(ac_cv_lib_gif, |
|
[ac_save_LIBS="$LIBS" |
|
if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then |
|
LIBS="$all_libraries -lgif -lX11 $LIBSOCKET" |
|
else |
|
LIBS="$all_libraries -lgif" |
|
fi |
|
AC_TRY_LINK(dnl |
|
[ |
|
#ifdef __cplusplus |
|
extern "C" { |
|
#endif |
|
int GifLastError(void); |
|
#ifdef __cplusplus |
|
} |
|
#endif |
|
/* We use char because int might match the return type of a gcc2 |
|
builtin and then its argument prototype would still apply. */ |
|
], |
|
[return GifLastError();], |
|
eval "ac_cv_lib_gif=yes", |
|
eval "ac_cv_lib_gif=no") |
|
LIBS="$ac_save_LIBS" |
|
])dnl |
|
if eval "test \"`echo $ac_cv_lib_gif`\" = yes"; then |
|
AC_MSG_RESULT(yes) |
|
AC_DEFINE_UNQUOTED(HAVE_LIBGIF, 1, [Define if you have libgif]) |
|
else |
|
AC_MSG_ERROR(You need giflib30. Please install the tdesupport package) |
|
fi |
|
]) |
|
|
|
AC_DEFUN([KDE_FIND_JPEG_HELPER], |
|
[ |
|
AC_MSG_CHECKING([for libjpeg$2]) |
|
AC_CACHE_VAL(ac_cv_lib_jpeg_$1, |
|
[ |
|
ac_save_LIBS="$LIBS" |
|
LIBS="$all_libraries $USER_LDFLAGS -ljpeg$2 -lm" |
|
ac_save_CFLAGS="$CFLAGS" |
|
CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" |
|
AC_TRY_LINK( |
|
[ |
|
#ifdef __cplusplus |
|
extern "C" { |
|
#endif |
|
void jpeg_CreateDecompress(); |
|
#ifdef __cplusplus |
|
} |
|
#endif |
|
], |
|
[jpeg_CreateDecompress();], |
|
eval "ac_cv_lib_jpeg_$1=-ljpeg$2", |
|
eval "ac_cv_lib_jpeg_$1=no") |
|
LIBS="$ac_save_LIBS" |
|
CFLAGS="$ac_save_CFLAGS" |
|
]) |
|
|
|
if eval "test ! \"`echo $ac_cv_lib_jpeg_$1`\" = no"; then |
|
LIBJPEG="$ac_cv_lib_jpeg_$1" |
|
AC_MSG_RESULT($ac_cv_lib_jpeg_$1) |
|
else |
|
AC_MSG_RESULT(no) |
|
$3 |
|
fi |
|
|
|
]) |
|
|
|
AC_DEFUN([AC_FIND_JPEG], |
|
[ |
|
dnl first look for libraries |
|
KDE_FIND_JPEG_HELPER(6b, 6b, |
|
KDE_FIND_JPEG_HELPER(normal, [], |
|
[ |
|
LIBJPEG= |
|
] |
|
) |
|
) |
|
|
|
dnl then search the headers (can't use simply AC_TRY_xxx, as jpeglib.h |
|
dnl requires system dependent includes loaded before it) |
|
jpeg_incdirs="$includedir /usr/include /usr/local/include $kde_extra_includes" |
|
AC_FIND_FILE(jpeglib.h, $jpeg_incdirs, jpeg_incdir) |
|
test "x$jpeg_incdir" = xNO && jpeg_incdir= |
|
|
|
dnl if headers _and_ libraries are missing, this is no error, and we |
|
dnl continue with a warning (the user will get no jpeg support in tdehtml) |
|
dnl if only one is missing, it means a configuration error, but we still |
|
dnl only warn |
|
if test -n "$jpeg_incdir" && test -n "$LIBJPEG" ; then |
|
AC_DEFINE_UNQUOTED(HAVE_LIBJPEG, 1, [Define if you have libjpeg]) |
|
else |
|
if test -n "$jpeg_incdir" || test -n "$LIBJPEG" ; then |
|
AC_MSG_WARN([ |
|
There is an installation error in jpeg support. You seem to have only one |
|
of either the headers _or_ the libraries installed. You may need to either |
|
provide correct --with-extra-... options, or the development package of |
|
libjpeg6b. You can get a source package of libjpeg from http://www.ijg.org/ |
|
Disabling JPEG support. |
|
]) |
|
else |
|
AC_MSG_WARN([libjpeg not found. disable JPEG support.]) |
|
fi |
|
jpeg_incdir= |
|
LIBJPEG= |
|
fi |
|
|
|
AC_SUBST(LIBJPEG) |
|
AH_VERBATIM(_AC_CHECK_JPEG, |
|
[/* |
|
* jpeg.h needs HAVE_BOOLEAN, when the system uses boolean in system |
|
* headers and I'm too lazy to write a configure test as long as only |
|
* unixware is related |
|
*/ |
|
#ifdef _UNIXWARE |
|
#define HAVE_BOOLEAN |
|
#endif |
|
]) |
|
]) |
|
|
|
AC_DEFUN([KDE_CHECK_QT_JPEG], |
|
[ |
|
if test -n "$LIBJPEG"; then |
|
AC_MSG_CHECKING([if Qt needs $LIBJPEG]) |
|
AC_CACHE_VAL(kde_cv_qt_jpeg, |
|
[ |
|
AC_LANG_SAVE |
|
AC_LANG_CPLUSPLUS |
|
ac_save_LIBS="$LIBS" |
|
LIBS="$all_libraries $USER_LDFLAGS $LIBQT" |
|
LIBS=`echo $LIBS | sed "s/$LIBJPEG//"` |
|
ac_save_CXXFLAGS="$CXXFLAGS" |
|
CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES" |
|
AC_TRY_LINK( |
|
[#include <qapplication.h>], |
|
[ |
|
int argc; |
|
char** argv; |
|
QApplication app(argc, argv);], |
|
eval "kde_cv_qt_jpeg=no", |
|
eval "kde_cv_qt_jpeg=yes") |
|
LIBS="$ac_save_LIBS" |
|
CXXFLAGS="$ac_save_CXXFLAGS" |
|
AC_LANG_RESTORE |
|
fi |
|
]) |
|
|
|
if eval "test ! \"`echo $kde_cv_qt_jpeg`\" = no"; then |
|
AC_MSG_RESULT(yes) |
|
LIBJPEG_QT='$(LIBJPEG)' |
|
else |
|
AC_MSG_RESULT(no) |
|
LIBJPEG_QT= |
|
fi |
|
|
|
]) |
|
|
|
AC_DEFUN([AC_FIND_ZLIB], |
|
[ |
|
AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) |
|
AC_MSG_CHECKING([for libz]) |
|
AC_CACHE_VAL(ac_cv_lib_z, |
|
[ |
|
kde_save_LIBS="$LIBS" |
|
LIBS="$all_libraries $USER_LDFLAGS -lz $LIBSOCKET" |
|
kde_save_CFLAGS="$CFLAGS" |
|
CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" |
|
AC_TRY_LINK(dnl |
|
[ |
|
#include<zlib.h> |
|
], |
|
[ |
|
char buf[42]; |
|
gzFile f = (gzFile) 0; |
|
/* this would segfault.. but we only link, don't run */ |
|
(void) gzgets(f, buf, sizeof(buf)); |
|
|
|
return (zlibVersion() == ZLIB_VERSION); |
|
], |
|
eval "ac_cv_lib_z='-lz'", |
|
eval "ac_cv_lib_z=no") |
|
LIBS="$kde_save_LIBS" |
|
CFLAGS="$kde_save_CFLAGS" |
|
])dnl |
|
if test ! "$ac_cv_lib_z" = no; then |
|
AC_DEFINE_UNQUOTED(HAVE_LIBZ, 1, [Define if you have libz]) |
|
LIBZ="$ac_cv_lib_z" |
|
AC_MSG_RESULT($ac_cv_lib_z) |
|
else |
|
AC_MSG_ERROR(not found. |
|
Possibly configure picks up an outdated version |
|
installed by XFree86. Remove it from your system. |
|
|
|
Check your installation and look into config.log) |
|
LIBZ="" |
|
fi |
|
AC_SUBST(LIBZ) |
|
]) |
|
|
|
AC_DEFUN([KDE_TRY_TIFFLIB], |
|
[ |
|
AC_MSG_CHECKING([for libtiff $1]) |
|
|
|
AC_CACHE_VAL(kde_cv_libtiff_$1, |
|
[ |
|
AC_LANG_SAVE |
|
AC_LANG_CPLUSPLUS |
|
kde_save_LIBS="$LIBS" |
|
if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then |
|
LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lX11 $LIBSOCKET -lm" |
|
else |
|
LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lm" |
|
fi |
|
kde_save_CXXFLAGS="$CXXFLAGS" |
|
CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES" |
|
|
|
AC_TRY_LINK(dnl |
|
[ |
|
#include<tiffio.h> |
|
], |
|
[return (TIFFOpen( "", "r") == 0); ], |
|
[ |
|
kde_cv_libtiff_$1="-l$1 $LIBJPEG $LIBZ" |
|
], [ |
|
kde_cv_libtiff_$1=no |
|
]) |
|
|
|
LIBS="$kde_save_LIBS" |
|
CXXFLAGS="$kde_save_CXXFLAGS" |
|
AC_LANG_RESTORE |
|
]) |
|
|
|
if test "$kde_cv_libtiff_$1" = "no"; then |
|
AC_MSG_RESULT(no) |
|
LIBTIFF="" |
|
$3 |
|
else |
|
LIBTIFF="$kde_cv_libtiff_$1" |
|
AC_MSG_RESULT(yes) |
|
AC_DEFINE_UNQUOTED(HAVE_LIBTIFF, 1, [Define if you have libtiff]) |
|
$2 |
|
fi |
|
|
|
]) |
|
|
|
AC_DEFUN([AC_FIND_TIFF], |
|
[ |
|
AC_REQUIRE([K_PATH_X]) |
|
AC_REQUIRE([AC_FIND_ZLIB]) |
|
AC_REQUIRE([AC_FIND_JPEG]) |
|
AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) |
|
|
|
KDE_TRY_TIFFLIB(tiff, [], |
|
KDE_TRY_TIFFLIB(tiff34)) |
|
|
|
AC_SUBST(LIBTIFF) |
|
]) |
|
|
|
AC_DEFUN([KDE_FIND_LIBEXR], |
|
[ |
|
AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) |
|
AC_REQUIRE([AC_FIND_ZLIB]) |
|
AC_CACHE_VAL(ac_cv_libexr, |
|
[ |
|
if test -z "$PKG_CONFIG"; then |
|
AC_PATH_PROG(PKG_CONFIG, pkg-config, no) |
|
fi |
|
|
|
AC_MSG_CHECKING([for OpenEXR libraries]) |
|
|
|
if test "$PKG_CONFIG" = "no" ; then |
|
AC_MSG_RESULT(no) |
|
echo "*** The pkg-config script could not be found. Make sure it is" |
|
echo "*** in your path, or set the PKG_CONFIG environment variable" |
|
echo "*** to the full path to pkg-config." |
|
echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." |
|
else |
|
if !(`$PKG_CONFIG --exists OpenEXR`) ; then |
|
AC_MSG_RESULT(no) |
|
EXRSTATUS=no |
|
else |
|
if !(`$PKG_CONFIG --atleast-version="1.1.1" OpenEXR`) ; then |
|
AC_MSG_RESULT(no) |
|
EXRSTATUS=old |
|
else |
|
kde_save_LIBS="$LIBS" |
|
LIBS="$LIBS $all_libraries $USER_LDFLAGS `pkg-config --libs OpenEXR` $LIBZ" |
|
AC_LANG_SAVE |
|
AC_LANG_CPLUSPLUS |
|
kde_save_CXXFLAGS="$CXXFLAGS" |
|
EXR_FLAGS=`$PKG_CONFIG --cflags OpenEXR` |
|
CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES $EXR_FLAGS" |
|
|
|
AC_TRY_LINK(dnl |
|
[ |
|
#include <ImfRgbaFile.h> |
|
], |
|
[ |
|
using namespace Imf; |
|
RgbaInputFile file ("dummy"); |
|
return 0; |
|
], |
|
eval "ac_cv_libexr='`pkg-config --libs OpenEXR`'", |
|
eval "ac_cv_libexr=no" |
|
) |
|
LIBS="$kde_save_LIBS" |
|
CXXFLAGS="$kde_save_CXXFLAGS" |
|
AC_LANG_RESTORE |
|
])dnl |
|
if eval "test ! \"`echo $ac_cv_libexr`\" = no"; then |
|
AC_DEFINE_UNQUOTED(HAVE_EXR, 1, [Define if you have OpenEXR]) |
|
LIB_EXR="$ac_cv_libexr" |
|
AC_MSG_RESULT($ac_cv_libexr) |
|
else |
|
AC_MSG_RESULT(no) |
|
LIB_EXR="" |
|
fi |
|
fi |
|
fi |
|
fi |
|
AC_SUBST(LIB_EXR) |
|
AC_SUBST(EXR_FLAGS) |
|
]) |
|
|
|
|
|
|
|
AC_DEFUN([AC_FIND_PNG], |
|
[ |
|
AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) |
|
AC_REQUIRE([AC_FIND_ZLIB]) |
|
AC_MSG_CHECKING([for libpng]) |
|
AC_CACHE_VAL(ac_cv_lib_png, |
|
[ |
|
kde_save_LIBS="$LIBS" |
|
if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then |
|
LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm -lX11 $LIBSOCKET" |
|
else |
|
LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm" |
|
fi |
|
kde_save_CFLAGS="$CFLAGS" |
|
CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" |
|
|
|
AC_TRY_LINK(dnl |
|
[ |
|
#include<png.h> |
|
], |
|
[ |
|
png_structp png_ptr = png_create_read_struct( /* image ptr */ |
|
PNG_LIBPNG_VER_STRING, 0, 0, 0 ); |
|
return( png_ptr != 0 ); |
|
], |
|
eval "ac_cv_lib_png='-lpng $LIBZ -lm'", |
|
eval "ac_cv_lib_png=no" |
|
) |
|
LIBS="$kde_save_LIBS" |
|
CFLAGS="$kde_save_CFLAGS" |
|
])dnl |
|
if eval "test ! \"`echo $ac_cv_lib_png`\" = no"; then |
|
AC_DEFINE_UNQUOTED(HAVE_LIBPNG, 1, [Define if you have libpng]) |
|
LIBPNG="$ac_cv_lib_png" |
|
AC_SUBST(LIBPNG) |
|
AC_MSG_RESULT($ac_cv_lib_png) |
|
else |
|
AC_MSG_RESULT(no) |
|
LIBPNG="" |
|
AC_SUBST(LIBPNG) |
|
fi |
|
]) |
|
|
|
|
|
AC_DEFUN([AC_FIND_JASPER], |
|
[ |
|
AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) |
|
AC_REQUIRE([AC_FIND_JPEG]) |
|
AC_MSG_CHECKING([for jasper]) |
|
AC_CACHE_VAL(ac_cv_jasper, |
|
[ |
|
kde_save_LIBS="$LIBS" |
|
LIBS="$LIBS $all_libraries $USER_LDFLAGS -ljasper $LIBJPEG -lm" |
|
kde_save_CFLAGS="$CFLAGS" |
|
CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" |
|
|
|
AC_TRY_LINK(dnl |
|
[ |
|
#include<jasper/jasper.h> |
|
], |
|
[ |
|
return( jas_init() ); |
|
], |
|
eval "ac_cv_jasper='-ljasper $LIBJPEG -lm'", |
|
eval "ac_cv_jasper=no" |
|
) |
|
LIBS="$kde_save_LIBS" |
|
CFLAGS="$kde_save_CFLAGS" |
|
])dnl |
|
if eval "test ! \"`echo $ac_cv_jasper`\" = no"; then |
|
AC_DEFINE_UNQUOTED(HAVE_JASPER, 1, [Define if you have jasper]) |
|
LIB_JASPER="$ac_cv_jasper" |
|
AC_MSG_RESULT($ac_cv_jasper) |
|
else |
|
AC_MSG_RESULT(no) |
|
LIB_JASPER="" |
|
fi |
|
AC_SUBST(LIB_JASPER) |
|
]) |
|
|
|
AC_DEFUN([AC_CHECK_BOOL], |
|
[ |
|
AC_DEFINE_UNQUOTED(HAVE_BOOL, 1, [You _must_ have bool]) |
|
]) |
|
|
|
AC_DEFUN([AC_CHECK_GNU_EXTENSIONS], |
|
[ |
|
AC_MSG_CHECKING(if you need GNU extensions) |
|
AC_CACHE_VAL(ac_cv_gnu_extensions, |
|
[ |
|
cat > conftest.c << EOF |
|
#include <features.h> |
|
|
|
#ifdef __GNU_LIBRARY__ |
|
yes |
|
#endif |
|
EOF |
|
|
|
if (eval "$ac_cpp conftest.c") 2>&5 | |
|
egrep "yes" >/dev/null 2>&1; then |
|
rm -rf conftest* |
|
ac_cv_gnu_extensions=yes |
|
else |
|
ac_cv_gnu_extensions=no |
|
fi |
|
]) |
|
|
|
AC_MSG_RESULT($ac_cv_gnu_extensions) |
|
if test "$ac_cv_gnu_extensions" = "yes"; then |
|
AC_DEFINE_UNQUOTED(_GNU_SOURCE, 1, [Define if you need to use the GNU extensions]) |
|
fi |
|
]) |
|
|
|
AC_DEFUN([KDE_CHECK_COMPILER_FLAG], |
|
[ |
|
AC_MSG_CHECKING([whether $CXX supports -$1]) |
|
kde_cache=`echo $1 | sed 'y% .=/+-,%____p__%'` |
|
AC_CACHE_VAL(kde_cv_prog_cxx_$kde_cache, |
|
[ |
|
AC_LANG_SAVE |
|
AC_LANG_CPLUSPLUS |
|
save_CXXFLAGS="$CXXFLAGS" |
|
CXXFLAGS="$CXXFLAGS -$1" |
|
AC_TRY_LINK([],[ return 0; ], [eval "kde_cv_prog_cxx_$kde_cache=yes"], []) |
|
CXXFLAGS="$save_CXXFLAGS" |
|
AC_LANG_RESTORE |
|
]) |
|
if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then |
|
AC_MSG_RESULT(yes) |
|
: |
|
$2 |
|
else |
|
AC_MSG_RESULT(no) |
|
: |
|
$3 |
|
fi |
|
]) |
|
|
|
AC_DEFUN([KDE_CHECK_C_COMPILER_FLAG], |
|
[ |
|
AC_MSG_CHECKING([whether $CC supports -$1]) |
|
kde_cache=`echo $1 | sed 'y% .=/+-,%____p__%'` |
|
AC_CACHE_VAL(kde_cv_prog_cc_$kde_cache, |
|
[ |
|
AC_LANG_SAVE |
|
AC_LANG_C |
|
save_CFLAGS="$CFLAGS" |
|
CFLAGS="$CFLAGS -$1" |
|
AC_TRY_LINK([],[ return 0; ], [eval "kde_cv_prog_cc_$kde_cache=yes"], []) |
|
CFLAGS="$save_CFLAGS" |
|
AC_LANG_RESTORE |
|
]) |
|
if eval "test \"`echo '$kde_cv_prog_cc_'$kde_cache`\" = yes"; then |
|
AC_MSG_RESULT(yes) |
|
: |
|
$2 |
|
else |
|
AC_MSG_RESULT(no) |
|
: |
|
$3 |
|
fi |
|
]) |
|
|
|
|
|
dnl AC_REMOVE_FORBIDDEN removes forbidden arguments from variables |
|
dnl use: AC_REMOVE_FORBIDDEN(CC, [-forbid -bad-option whatever]) |
|
dnl it's all white-space separated |
|
AC_DEFUN([AC_REMOVE_FORBIDDEN], |
|
[ __val=$$1 |
|
__forbid=" $2 " |
|
if test -n "$__val"; then |
|
__new="" |
|
ac_save_IFS=$IFS |
|
IFS=" " |
|
for i in $__val; do |
|
case "$__forbid" in |
|
*" $i "*) AC_MSG_WARN([found forbidden $i in $1, removing it]) ;; |
|
*) # Careful to not add spaces, where there were none, because otherwise |
|
# libtool gets confused, if we change e.g. CXX |
|
if test -z "$__new" ; then __new=$i ; else __new="$__new $i" ; fi ;; |
|
esac |
|
done |
|
IFS=$ac_save_IFS |
|
$1=$__new |
|
fi |
|
]) |
|
|
|
|
|
AC_DEFUN([KDE_CHECK_FOR_BAD_COMPILER], |
|
[ |
|
AC_MSG_CHECKING([whether $CC is blacklisted]) |
|
|
|
dnl In theory we have tu run this test against $CC and $CXX |
|
dnl in C and in C++ mode, because its perfectly legal for |
|
dnl the user to mix compiler versions, since C has a defined |
|
dnl ABI. |
|
dnl |
|
dnl For now, we assume the user is not on crack. |
|
|
|
AC_TRY_COMPILE([ |
|
#ifdef __GNUC__ |
|
#if __GNUC__ == 4 && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 0 |
|
choke me |
|
#endif |
|
#endif |
|
], , |
|
kde_bad_compiler=no, |
|
kde_bad_compiler=yes |
|
) |
|
|
|
AC_MSG_RESULT($kde_bad_compiler) |
|
|
|
if test "$kde_bad_compiler" = "yes"; then |
|
AC_MSG_ERROR([ |
|
|
|
This particular compiler version is blacklisted because it |
|
is known to miscompile KDE. Please use a newer version, or |
|
if that is not yet available, choose an older version. |
|
|
|
Please do not report a bug or bother us reporting this |
|
configure error. We know about it, and we introduced |
|
it by intention to avoid untraceable bugs or crashes in KDE. |
|
|
|
]) |
|
fi |
|
|
|
]) |
|
|
|
|
|
AC_DEFUN([KDE_CHECK_FOR_OPT_NOINLINE_MATCH], |
|
[ |
|
AC_CACHE_CHECK([whether system headers can cope with -O2 -fno-inline], |
|
kde_cv_opt_noinline_match, |
|
[ |
|
kde_cv_opt_noinline_match=irrelevant |
|
dnl if we don't use both -O2 and -fno-inline, this check is moot |
|
if echo "$CFLAGS" | grep -e -O2 >/dev/null 2>/dev/null \ |
|
&& echo "$CFLAGS" | grep -e -fno-inline >/dev/null 2>/dev/null ; then |
|
|
|
ac_cflags_save="$CFLAGS" |
|
CFLAGS="$CFLAGS -D_USE_GNU" |
|
|
|
AC_TRY_LINK([ |
|
#include <string.h> |
|
], [ const char *pt, *et; |
|
et = __extension__ ({ char __a0, __a1, __a2; (__builtin_constant_p ( ";," ) && ((size_t)(const void *)(( ";," )+ 1) - (size_t)(const void *)( ";," ) == 1) ? ((__a0 =((__const char *) ( ";," ))[0], __a0 == '\0') ? ((void) ( pt ),((void *)0) ) : ((__a1 = ((__const char *) ( ";," ))[1], __a1== '\0') ? (__extension__ (__builtin_constant_p ( __a0 ) && ( __a0 ) == '\0' ? (char *) __rawmemchr ( pt , __a0) : strchr( pt , __a0 ))) : ((__a2 = ((__const char *) ( ";," ))[2], __a2 == '\0') ? __strpbrk_c2 ( pt , __a0, __a1) :(((__const char *) ( ";," ))[3] == '\0' ? __strpbrk_c3 ( pt ,__a0, __a1, __a2): strpbrk ( pt , ";," ))))) : strpbrk ( pt , ";," )); }) ; |
|
], |
|
kde_cv_opt_noinline_match=yes, |
|
kde_cv_opt_noinline_match=no |
|
) |
|
|
|
CFLAGS="$ac_cflags_save" |
|
fi |
|
]) |
|
]) |
|
|
|
|
|
dnl AC_VALIDIFY_CXXFLAGS checks for forbidden flags the user may have given |
|
AC_DEFUN([AC_VALIDIFY_CXXFLAGS], |
|
[dnl |
|
if test "x$kde_use_qt_emb" != "xyes"; then |
|
AC_REMOVE_FORBIDDEN(CXX, [-fno-rtti -rpath]) |
|
AC_REMOVE_FORBIDDEN(CXXFLAGS, [-fno-rtti -rpath]) |
|
else |
|
AC_REMOVE_FORBIDDEN(CXX, [-rpath]) |
|
AC_REMOVE_FORBIDDEN(CXXFLAGS, [-rpath]) |
|
fi |
|
]) |
|
|
|
AC_DEFUN([AC_CHECK_COMPILERS], |
|
[ |
|
AC_ARG_ENABLE(debug, |
|
AC_HELP_STRING([--enable-debug=ARG],[enables debug symbols (yes|no|full) [default=no]]), |
|
[ |
|
case $enableval in |
|
yes) |
|
kde_use_debug_code="yes" |
|
kde_use_debug_define=no |
|
;; |
|
full) |
|
kde_use_debug_code="full" |
|
kde_use_debug_define=no |
|
;; |
|
*) |
|
kde_use_debug_code="no" |
|
kde_use_debug_define=yes |
|
;; |
|
esac |
|
], |
|
[kde_use_debug_code="no" |
|
kde_use_debug_define=no |
|
]) |
|
|
|
dnl Just for configure --help |
|
AC_ARG_ENABLE(dummyoption, |
|
AC_HELP_STRING([--disable-debug], |
|
[disables debug output and debug symbols [default=no]]), |
|
[],[]) |
|
|
|
AC_ARG_ENABLE(strict, |
|
AC_HELP_STRING([--enable-strict], |
|
[compiles with strict compiler options (may not work!)]), |
|
[ |
|
if test $enableval = "no"; then |
|
kde_use_strict_options="no" |
|
else |
|
kde_use_strict_options="yes" |
|
fi |
|
], [kde_use_strict_options="no"]) |
|
|
|
AC_ARG_ENABLE(warnings,AC_HELP_STRING([--disable-warnings],[disables compilation with -Wall and similar]), |
|
[ |
|
if test $enableval = "no"; then |
|
kde_use_warnings="no" |
|
else |
|
kde_use_warnings="yes" |
|
fi |
|
], [kde_use_warnings="yes"]) |
|
|
|
dnl enable warnings for debug build |
|
if test "$kde_use_debug_code" != "no"; then |
|
kde_use_warnings=yes |
|
fi |
|
|
|
AC_ARG_ENABLE(profile,AC_HELP_STRING([--enable-profile],[creates profiling infos [default=no]]), |
|
[kde_use_profiling=$enableval], |
|
[kde_use_profiling="no"] |
|
) |
|
|
|
dnl this prevents stupid AC_PROG_CC to add "-g" to the default CFLAGS |
|
CFLAGS=" $CFLAGS" |
|
|
|
AC_PROG_CC |
|
|
|
AC_PROG_CPP |
|
|
|
if test "$GCC" = "yes"; then |
|
if test "$kde_use_debug_code" != "no"; then |
|
if test $kde_use_debug_code = "full"; then |
|
CFLAGS="-g3 -fno-inline $CFLAGS" |
|
else |
|
CFLAGS="-g -O2 -fno-schedule-insns -fno-inline $CFLAGS" |
|
fi |
|
else |
|
CFLAGS="-O2 $CFLAGS" |
|
fi |
|
fi |
|
|
|
if test "$kde_use_debug_define" = "yes"; then |
|
CFLAGS="-DNDEBUG $CFLAGS" |
|
fi |
|
|
|
|
|
case "$host" in |
|
*-*-sysv4.2uw*) CFLAGS="-D_UNIXWARE $CFLAGS";; |
|
*-*-sysv5uw7*) CFLAGS="-D_UNIXWARE7 $CFLAGS";; |
|
esac |
|
|
|
if test -z "$LDFLAGS" && test "$kde_use_debug_code" = "no" && test "$GCC" = "yes"; then |
|
LDFLAGS="" |
|
fi |
|
|
|
CXXFLAGS=" $CXXFLAGS" |
|
|
|
AC_PROG_CXX |
|
|
|
KDE_CHECK_FOR_BAD_COMPILER |
|
|
|
if test "$GXX" = "yes" || test "$CXX" = "KCC"; then |
|
if test "$kde_use_debug_code" != "no"; then |
|
if test "$CXX" = "KCC"; then |
|
CXXFLAGS="+K0 -Wall -pedantic -W -Wpointer-arith -Wwrite-strings $CXXFLAGS" |
|
else |
|
if test "$kde_use_debug_code" = "full"; then |
|
CXXFLAGS="-g3 -fno-inline $CXXFLAGS" |
|
else |
|
CXXFLAGS="-g -O2 -fno-schedule-insns -fno-inline $CXXFLAGS" |
|
fi |
|
fi |
|
KDE_CHECK_COMPILER_FLAG(fno-builtin,[CXXFLAGS="-fno-builtin $CXXFLAGS"]) |
|
|
|
dnl convenience compiler flags |
|
KDE_CHECK_COMPILER_FLAG(Woverloaded-virtual, [WOVERLOADED_VIRTUAL="-Woverloaded-virtual"], [WOVERLOADED_VRITUAL=""]) |
|
AC_SUBST(WOVERLOADED_VIRTUAL) |
|
else |
|
if test "$CXX" = "KCC"; then |
|
CXXFLAGS="+K3 $CXXFLAGS" |
|
else |
|
CXXFLAGS="-O2 $CXXFLAGS" |
|
fi |
|
fi |
|
fi |
|
|
|
if test "$kde_use_debug_define" = "yes"; then |
|
CXXFLAGS="-DNDEBUG -DNO_DEBUG $CXXFLAGS" |
|
fi |
|
|
|
if test "$kde_use_profiling" = "yes"; then |
|
KDE_CHECK_COMPILER_FLAG(pg, |
|
[ |
|
CFLAGS="-pg $CFLAGS" |
|
CXXFLAGS="-pg $CXXFLAGS" |
|
]) |
|
fi |
|
|
|
if test "$kde_use_warnings" = "yes"; then |
|
if test "$GCC" = "yes"; then |
|
CXXFLAGS="-Wall -W -Wpointer-arith $CXXFLAGS" |
|
case $host in |
|
*-*-linux-gnu) |
|
CFLAGS="-std=iso9899:1990 -W -Wall -Wchar-subscripts -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -D_XOPEN_SOURCE=500 -D_BSD_SOURCE $CFLAGS" |
|
CXXFLAGS="-ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wchar-subscripts $CXXFLAGS" |
|
KDE_CHECK_COMPILER_FLAG(Wmissing-format-attribute, [CXXFLAGS="$CXXFLAGS -Wformat-security -Wmissing-format-attribute"]) |
|
KDE_CHECK_C_COMPILER_FLAG(Wmissing-format-attribute, [CFLAGS="$CFLAGS -Wformat-security -Wmissing-format-attribute"]) |
|
;; |
|
esac |
|
KDE_CHECK_COMPILER_FLAG(Wundef,[CXXFLAGS="-Wundef $CXXFLAGS"]) |
|
KDE_CHECK_COMPILER_FLAG(Wno-long-long,[CXXFLAGS="-Wno-long-long $CXXFLAGS"]) |
|
dnl ### FIXME: revert for KDE 4 |
|
KDE_CHECK_COMPILER_FLAG(Wno-non-virtual-dtor,[CXXFLAGS="$CXXFLAGS -Wno-non-virtual-dtor"]) |
|
fi |
|
fi |
|
|
|
if test "$GXX" = "yes" && test "$kde_use_strict_options" = "yes"; then |
|
CXXFLAGS="-Wcast-qual -Wshadow -Wcast-align $CXXFLAGS" |
|
fi |
|
|
|
AC_ARG_ENABLE(pch, |
|
AC_HELP_STRING([--enable-pch], |
|
[enables precompiled header support (currently only KCC or gcc >=3.4+unsermake) [default=no]]), |
|
[ kde_use_pch=$enableval ],[ kde_use_pch=no ]) |
|
|
|
HAVE_GCC_VISIBILITY=0 |
|
AC_SUBST([HAVE_GCC_VISIBILITY]) |
|
|
|
if test "$GXX" = "yes"; then |
|
gcc_no_reorder_blocks=NO |
|
KDE_CHECK_COMPILER_FLAG(fno-reorder-blocks,[gcc_no_reorder_blocks=YES]) |
|
if test $kde_use_debug_code != "no" && \ |
|
test $kde_use_debug_code != "full" && \ |
|
test "YES" = "$gcc_no_reorder_blocks" ; then |
|
CXXFLAGS="$CXXFLAGS -fno-reorder-blocks" |
|
CFLAGS="$CFLAGS -fno-reorder-blocks" |
|
fi |
|
KDE_CHECK_COMPILER_FLAG(fno-exceptions,[CXXFLAGS="$CXXFLAGS -fno-exceptions"]) |
|
KDE_CHECK_COMPILER_FLAG(fno-check-new, [CXXFLAGS="$CXXFLAGS -fno-check-new"]) |
|
KDE_CHECK_COMPILER_FLAG(fno-common, [CXXFLAGS="$CXXFLAGS -fno-common"]) |
|
KDE_CHECK_COMPILER_FLAG(fexceptions, [USE_EXCEPTIONS="-fexceptions"], USE_EXCEPTIONS= ) |
|
ENABLE_PERMISSIVE_FLAG="-fpermissive" |
|
|
|
if test "$kde_use_pch" = "yes"; then |
|
AC_MSG_CHECKING(whether gcc supports precompiling c header files) |
|
echo >conftest.h |
|
if $CC -x c-header conftest.h >/dev/null 2>/dev/null; then |
|
kde_gcc_supports_pch=yes |
|
AC_MSG_RESULT(yes) |
|
else |
|
kde_gcc_supports_pch=no |
|
AC_MSG_RESULT(no) |
|
fi |
|
if test "$kde_gcc_supports_pch" = "yes"; then |
|
AC_MSG_CHECKING(whether gcc supports precompiling c++ header files) |
|
if $CXX -x c++-header conftest.h >/dev/null 2>/dev/null; then |
|
kde_gcc_supports_pch=yes |
|
AC_MSG_RESULT(yes) |
|
else |
|
kde_gcc_supports_pch=no |
|
AC_MSG_RESULT(no) |
|
fi |
|
fi |
|
rm -f conftest.h conftest.h.gch |
|
fi |
|
|
|
KDE_CHECK_FOR_OPT_NOINLINE_MATCH |
|
if test "x$kde_cv_opt_noinline_match" = "xno" ; then |
|
CFLAGS="`echo "$CFLAGS" | sed "s/ -fno-inline//"`" |
|
fi |
|
fi |
|
AM_CONDITIONAL(unsermake_enable_pch, test "$kde_use_pch" = "yes" && test "$kde_gcc_supports_pch" = "yes") |
|
if test "$CXX" = "KCC"; then |
|
dnl unfortunately we currently cannot disable exception support in KCC |
|
dnl because doing so is binary incompatible and Qt by default links with exceptions :-( |
|
dnl KDE_CHECK_COMPILER_FLAG(-no_exceptions,[CXXFLAGS="$CXXFLAGS --no_exceptions"]) |
|
dnl KDE_CHECK_COMPILER_FLAG(-exceptions, [USE_EXCEPTIONS="--exceptions"], USE_EXCEPTIONS= ) |
|
|
|
if test "$kde_use_pch" = "yes"; then |
|
dnl TODO: support --pch-dir! |
|
KDE_CHECK_COMPILER_FLAG(-pch,[CXXFLAGS="$CXXFLAGS --pch"]) |
|
dnl the below works (but the dir must exist), but it's |
|
dnl useless for a whole package. |
|
dnl The are precompiled headers for each source file, so when compiling |
|
dnl from scratch, it doesn't make a difference, and they take up |
|
dnl around ~5Mb _per_ sourcefile. |
|
dnl KDE_CHECK_COMPILER_FLAG(-pch_dir /tmp, |
|
dnl [CXXFLAGS="$CXXFLAGS --pch_dir `pwd`/pcheaders"]) |
|
fi |
|
dnl this flag controls inlining. by default KCC inlines in optimisation mode |
|
dnl all implementations that are defined inside the class {} declaration. |
|
dnl because of templates-compatibility with broken gcc compilers, this |
|
dnl can cause excessive inlining. This flag limits it to a sane level |
|
KDE_CHECK_COMPILER_FLAG(-inline_keyword_space_time=6,[CXXFLAGS="$CXXFLAGS --inline_keyword_space_time=6"]) |
|
KDE_CHECK_COMPILER_FLAG(-inline_auto_space_time=2,[CXXFLAGS="$CXXFLAGS --inline_auto_space_time=2"]) |
|
KDE_CHECK_COMPILER_FLAG(-inline_implicit_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_implicit_space_time=2.0"]) |
|
KDE_CHECK_COMPILER_FLAG(-inline_generated_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_generated_space_time=2.0"]) |
|
dnl Some source files are shared between multiple executables |
|
dnl (or libraries) and some of those need template instantiations. |
|
dnl In that case KCC needs to compile those sources with |
|
dnl --one_instantiation_per_object. To make it easy for us we compile |
|
dnl _all_ objects with that flag (--one_per is a shorthand). |
|
KDE_CHECK_COMPILER_FLAG(-one_per, [CXXFLAGS="$CXXFLAGS --one_per"]) |
|
fi |
|
AC_SUBST(USE_EXCEPTIONS) |
|
dnl obsolete macro - provided to keep things going |
|
USE_RTTI= |
|
AC_SUBST(USE_RTTI) |
|
|
|
case "$host" in |
|
*-*-irix*) test "$GXX" = yes && CXXFLAGS="-D_LANGUAGE_C_PLUS_PLUS -D__LANGUAGE_C_PLUS_PLUS $CXXFLAGS" ;; |
|
*-*-sysv4.2uw*) CXXFLAGS="-D_UNIXWARE $CXXFLAGS";; |
|
*-*-sysv5uw7*) CXXFLAGS="-D_UNIXWARE7 $CXXFLAGS";; |
|
*-*-solaris*) |
|
if test "$GXX" = yes; then |
|
libstdcpp=`$CXX -print-file-name=libstdc++.so` |
|
if test ! -f $libstdcpp; then |
|
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]) |
|
fi |
|
fi |
|
;; |
|
esac |
|
|
|
AC_VALIDIFY_CXXFLAGS |
|
|
|
AC_PROG_CXXCPP |
|
|
|
if test "$GCC" = yes; then |
|
NOOPT_CFLAGS=-O0 |
|
fi |
|
KDE_CHECK_COMPILER_FLAG(O0,[NOOPT_CXXFLAGS=-O0]) |
|
|
|
AC_ARG_ENABLE(coverage, |
|
AC_HELP_STRING([--enable-coverage],[use gcc coverage testing]), [ |
|
if test "$am_cv_CC_dependencies_compiler_type" = "gcc3"; then |
|
ac_coverage_compiler="-fprofile-arcs -ftest-coverage" |
|
ac_coverage_linker="-lgcc" |
|
elif test "$am_cv_CC_dependencies_compiler_type" = "gcc"; then |
|
ac_coverage_compiler="-fprofile-arcs -ftest-coverage" |
|
ac_coverage_linker="" |
|
else |
|
AC_MSG_ERROR([coverage with your compiler is not supported]) |
|
fi |
|
CFLAGS="$CFLAGS $ac_coverage_compiler" |
|
CXXFLAGS="$CXXFLAGS $ac_coverage_compiler" |
|
LDFLAGS="$LDFLAGS $ac_coverage_linker" |
|
]) |
|
|
|
AC_SUBST(NOOPT_CXXFLAGS) |
|
AC_SUBST(NOOPT_CFLAGS) |
|
AC_SUBST(ENABLE_PERMISSIVE_FLAG) |
|
|
|
KDE_CHECK_NEW_LDFLAGS |
|
KDE_CHECK_FINAL |
|
KDE_CHECK_CLOSURE |
|
KDE_CHECK_NMCHECK |
|
|
|
ifdef([AM_DEPENDENCIES], AC_REQUIRE([KDE_ADD_DEPENDENCIES]), []) |
|
]) |
|
|
|
AC_DEFUN([KDE_CHECK_VISIBILITY_GCC_BUG], |
|
[ |
|
AC_CACHE_CHECK([for gcc -fvisibility-inlines-hidden bug], kde_cv_val_gcc_visibility_bug, |
|
[ |
|
AC_LANG_SAVE |
|
AC_LANG_CPLUSPLUS |
|
|
|
safe_CXXFLAGS=$CXXFLAGS |
|
safe_LDFLAGS=$LDFLAGS |
|
CXXFLAGS="$CXXFLAGS -fPIC -fvisibility-inlines-hidden -O0" |
|
LDFLAGS="$LDFLAGS -shared -fPIC" |
|
|
|
AC_TRY_LINK( |
|
[ |
|
/* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19664 */ |
|
#include <string> |
|
int some_function( void ) __attribute__ ((visibility("default"))); |
|
int some_function( void ) |
|
{ |
|
std::string s("blafasel"); |
|
return 0; |
|
} |
|
], [/* elvis is alive */], |
|
kde_cv_val_gcc_visibility_bug=no, kde_cv_val_gcc_visibility_bug=yes) |
|
|
|
CXXFLAGS=$safe_CXXFLAGS |
|
LDFLAGS=$safe_LDFLAGS |
|
AC_LANG_RESTORE |
|
] |
|
) |
|
|
|
if test x$kde_cv_val_gcc_visibility_bug = xno; then |
|
CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden" |
|
fi |
|
] |
|
) |
|
|
|
AC_DEFUN([KDE_ENABLE_HIDDEN_VISIBILITY], |
|
[ |
|
AC_BEFORE([AC_PATH_QT_1_3], [KDE_ENABLE_HIDDEN_VISIBILITY]) |
|
|
|
AC_MSG_CHECKING([grepping for visibility push/pop in headers]) |
|
|
|
if test "x$GXX" = "xyes"; then |
|
AC_LANG_SAVE |
|
AC_LANG_CPLUSPLUS |
|
AC_EGREP_CPP( |
|
[GCC visibility push], |
|
[ #include <exception> |
|
], |
|
[ |
|
AC_MSG_RESULT(yes) |
|
kde_stdc_visibility_patched=yes ], |
|
[ |
|
AC_MSG_RESULT(no) |
|
AC_MSG_WARN([Your libstdc++ doesn't appear to be patched for |
|
visibility support. Disabling -fvisibility=hidden]) |
|
|
|
kde_stdc_visibility_patched=no ]) |
|
|
|
AC_LANG_RESTORE |
|
|
|
kde_have_gcc_visibility=no |
|
KDE_CHECK_COMPILER_FLAG(fvisibility=hidden, |
|
[ |
|
kde_have_gcc_visibility=yes |
|
dnl the whole toolchain is just a mess, gcc is just too buggy |
|
dnl to handle STL with visibility enabled. Lets reconsider |
|
dnl when gcc 4.2 is out or when things get fixed in the compiler. |
|
dnl Contact mueller@kde.org for details. |
|
AC_ARG_ENABLE(gcc-hidden-visibility, |
|
AC_HELP_STRING([--enable-gcc-hidden-visibility],[toolchain hidden visibility [default=no]]), |
|
[kde_have_gcc_visibility=$enableval], |
|
[kde_have_gcc_visibility=no]) |
|
|
|
AC_CACHE_CHECK([if Qt is patched for -fvisibility], kde_cv_val_qt_gcc_visibility_patched, |
|
[ |
|
AC_LANG_SAVE |
|
AC_LANG_CPLUSPLUS |
|
|
<