blob: 66da30e98ec853a178fef58ff2ba9903aa2e6748 [file] [log] [blame]
# klibc.m4 serial 99
## Copyright (C) 1995-2003 Free Software Foundation, Inc.
## This file is free software, distributed under the terms of the GNU
## General Public License. As a special exception to the GNU General
## Public License, this file may be distributed as part of a program
## that contains a configuration script generated by Autoconf, under
## the same distribution terms as the rest of that program.
##
## This file can can be used in projects which are not available under
## the GNU General Public License or the GNU Library General Public
## License but which still want to provide support for the GNU gettext
## functionality.
## Please note that the actual code of the KLIBC Library is partly covered
## by the GNU Library General Public License, and party copyrighted by the
## Regents of The University of California, and the rest is covered by a
## MIT style license.
# Authors:
# Martin Schlemmer <azarah@nosferatu.za.org>, 2005.
# AC_CHECK_KLIBC
# --------------
# Check if the user wants KLIBC support enabled. If so, set KLIBC=yes and
# fill in KLIBC_PREFIX, KLIBC_BINDIR, KLIBC_SBINDIR, KLIBC_LIBDIR and
# KLIBC_INCLUDEDIR. CC is also set to the proper klcc executable.
# NOTE: This should be called before AC_PROG_CC, and before header, function
# or type checks.
AC_DEFUN([AC_CHECK_KLIBC],
[AC_BEFORE([$0], [AC_PROG_CC])
AC_REQUIRE([AC_CANONICAL_HOST])
AC_ARG_ENABLE([klibc],
[AS_HELP_STRING([--enable-klibc],
[Enable linking to klibc [no]. You need at
least klibc-1.0 or later for this. Set KLCC
to the absolute file name of klcc if not in
the PATH])],
[KLIBC=$enableval], [KLIBC=no])
AC_ARG_ENABLE([klibc-layout],
[AS_HELP_STRING([--enable-klibc-layout],
[Enable installing binaries, libraries and
headers into the klibc prefix [yes] ])],
[if test "X$KLIBC" != Xno; then
KLIBC_LAYOUT=$enableval
else
KLIBC_LAYOUT=no
fi],
[if test "X$KLIBC" != Xno; then
KLIBC_LAYOUT=yes
else
KLIBC_LAYOUT=no
fi])
if test "X$KLIBC" != Xno; then
# Basic cross compiling support. I do not think it is wise to use
# AC_CHECK_TOOL, because if we are cross compiling, we do not want
# just 'klcc' to be returned ...
if test "${host_alias}" != "${build_alias}"; then
AC_CHECK_PROGS([KLCC], [${host_alias}-klcc], [no])
else
AC_CHECK_PROGS([KLCC], [klcc], [no])
fi
if test "X$KLCC" = Xno; then
AC_MSG_ERROR([cannot find klibc frontend 'klcc'!])
fi
CC="$KLCC"
CFLAGS="-Os"
KLIBC_KCROSS="$($KLCC -print-klibc-kcross 2>/dev/null)"
KLIBC_PREFIX="$($KLCC -print-klibc-prefix 2>/dev/null)"
KLIBC_BIN_DIR="$($KLCC -print-klibc-bindir 2>/dev/null)"
KLIBC_SBIN_DIR="${KLIBC_PREFIX}/${KLIBC_KCROSS}sbin"
KLIBC_LIB_DIR="$($KLCC -print-klibc-libdir 2>/dev/null)"
KLIBC_INCLUDE_DIR="$($KLCC -print-klibc-includedir 2>/dev/null)"
if test "X$KLIBC_LAYOUT" != Xno; then
prefix="$KLIBC_PREFIX"
bindir="$KLIBC_BIN_DIR"
sbindir="$KLIBC_SBIN_DIR"
libdir="$KLIBC_LIB_DIR"
includedir="$KLIBC_INCLUDE_DIR"
fi
# At least KLIBC_LIB_DIR should be valid, else klibc is too old or
# something went wrong
if test ! -d "$KLIBC_LIB_DIR"; then
AC_MSG_ERROR([your klibc installation is too old or not functional!])
fi
fi
AC_SUBST(KLIBC)
])# AC_CHECK_KLIBC