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.
tdelibs/tdecore/malloc/configure.in.in

135 lines
4.1 KiB

dnl --enable-fast-malloc - depends on $KDE_MALLOC
dnl --disable-fast-malloc - disabled
dnl --enable-fast-malloc=full - enabled always
dnl
dnl gcc3.0 needs -finline-limit=100000 (large num)
kde_fast_malloc=
AC_ARG_ENABLE(fast-malloc,
[ --enable-fast-malloc Use own malloc implementation : yes,no,full,debug],
[
if test "$enableval" = "full"; then
kde_fast_malloc=full
elif test "$enableval" = "yes"; then
kde_fast_malloc=yes
elif test "$enableval" = "debug"; then
kde_fast_malloc=debug
else
kde_fast_malloc=no
fi
],
[
kde_fast_malloc=notgiven
])
dnl gcc needed for __inline__
if test "$kde_fast_malloc" != "no"; then
if test "$GCC" != "yes"; then
if test "$kde_fast_malloc" = "notgiven"; then
kde_fast_malloc=no
else
AC_MSG_ERROR([Fast malloc needs GCC.])
kde_fast_malloc=no
fi
fi
fi
if test "$kde_fast_malloc" != "no"; then
dnl platforms for which there's a spinlock implementation
case $target_cpu in
i?86)
AC_DEFINE(KDE_MALLOC_X86, 1, [The platform is x86])
;;
*)
if test "$kde_fast_malloc" = "notgiven"; then
kde_fast_malloc=no
else
AC_MSG_ERROR([Fast malloc is not supported on this platform (missing spinlock implementation).])
fi
;;
esac
dnl warn on untested platforms
case $target_os in
linux*) ;;
freebsd*) ;;
*)
if test "$kde_fast_malloc" = "notgiven"; then
kde_fast_malloc=no
else
AC_MSG_WARN([Fast malloc is not tested on this platform. The build may fail or the executables may crash.])
fi
;;
esac
fi
if test "$kde_fast_malloc" = "yes" -o "$kde_fast_malloc" = "notgiven" -o "$kde_fast_malloc" = "debug"; then
dnl $KDE_MALLOC needs glibc (__libc_malloc etc.)
AC_CACHE_CHECK([if the libc is glibc],kde_cv_libc_glibc,
[AC_TRY_COMPILE(
[#include<stdlib.h>],
[
#ifndef __GLIBC__
error no glibc
#endif
],
[kde_cv_libc_glibc=yes],
[kde_cv_libc_glibc=no])
])
if test "$kde_cv_libc_glibc" = "yes"; then
AC_DEFINE(KDE_MALLOC_GLIBC, 1, [The libc used is glibc])
else
if test "$kde_fast_malloc" = "notgiven"; then
kde_fast_malloc=notgiven_full
elif test "$enableval" = "debug"; then
AC_MSG_WARN([This libc is not supported for fast malloc. Runtime disabling won't work.])
kde_fast_malloc=debug_full
else
AC_MSG_ERROR([This libc is not supported for fast malloc. Either use --enable-fast-malloc=full, or don't use it at all.])
fi
fi
fi
if test "$kde_fast_malloc" = "notgiven"; then
#kde_fast_malloc=yes
kde_fast_malloc=no
fi
if test "$kde_fast_malloc" = "notgiven_full"; then
if test "$kde_use_debug_code" = "no"; then
#kde_fast_malloc=full
kde_fast_malloc=no
else
kde_fast_malloc=no
fi
fi
AC_MSG_CHECKING(whether to enable fast malloc)
if test "$kde_fast_malloc" = "yes"; then
AC_MSG_RESULT(yes)
elif test "$kde_fast_malloc" = "full"; then
AC_MSG_RESULT([yes(full)])
elif test "$kde_fast_malloc" = "debug"; then
AC_MSG_RESULT([yes(debug)])
elif test "$kde_fast_malloc" = "debug_full"; then
AC_MSG_RESULT([yes(full+debug)])
else
AC_MSG_RESULT(no)
fi
if test "$kde_fast_malloc" != "no"; then
AC_DEFINE(KDE_MALLOC, 1, [Use own malloc implementation])
fi
if test "$kde_fast_malloc" = "debug" -o "$kde_fast_malloc" = "debug_full"; then
AC_DEFINE(KDE_MALLOC_DEBUG, 1, [Enable debugging in fast malloc])
fi
if test "$kde_fast_malloc" = "full" -o "$kde_fast_malloc" = "debug_full"; then
AC_DEFINE(KDE_MALLOC_FULL, 1, [Make alloc as fast as possible])
fi
dnl -finline-limit=<large num> is needed for gcc3 in order to inline large functions
KDE_CHECK_COMPILER_FLAG(finline-limit=100000,
[KDE_FORCE_INLINE="-finline-limit=100000"],
[KDE_FORCE_INLINE= ])
AC_SUBST(KDE_FORCE_INLINE)