mirror of
https://review.haiku-os.org/buildtools
synced 2025-01-31 10:34:41 +01:00
87b935d29c
Mostly bug fixes, see mpc/NEWS
238 lines
6.0 KiB
Plaintext
238 lines
6.0 KiB
Plaintext
# mpc.m4
|
|
#
|
|
# Copyright (C) 2008, 2009, 2010, 2011, 2012, 2014 INRIA
|
|
#
|
|
# This file is part of GNU MPC.
|
|
#
|
|
# GNU MPC is free software; you can redistribute it and/or modify it under
|
|
# the terms of the GNU Lesser General Public License as published by the
|
|
# Free Software Foundation; either version 3 of the License, or (at your
|
|
# option) any later version.
|
|
#
|
|
# GNU MPC is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
|
|
# more details.
|
|
#
|
|
# You should have received a copy of the GNU Lesser General Public License
|
|
# along with this program. If not, see http://www.gnu.org/licenses/ .
|
|
|
|
|
|
#
|
|
# SYNOPSIS
|
|
#
|
|
#
|
|
# MPC_COMPLEX_H
|
|
#
|
|
# DESCRIPTION
|
|
#
|
|
# Check whether complex.h is usable; if yes, define HAVE_COMPLEX_H.
|
|
#
|
|
AC_DEFUN([MPC_COMPLEX_H], [
|
|
AC_CHECK_HEADER(
|
|
[complex.h],
|
|
[
|
|
m4_define(
|
|
[MPC_CONFTEST],
|
|
[
|
|
AC_LANG_PROGRAM(
|
|
[[#include <complex.h>]],
|
|
[[complex double x = 1.0 + 2.0 * I; return (creal (x) + cimag (x));]]
|
|
)
|
|
]
|
|
)
|
|
|
|
AC_SEARCH_LIBS([creal], [m])
|
|
# needed on Solaris
|
|
AC_MSG_CHECKING([whether creal, cimag and I can be used])
|
|
AC_LINK_IFELSE(
|
|
[MPC_CONFTEST],
|
|
[
|
|
AC_MSG_RESULT([yes])
|
|
AC_DEFINE([HAVE_COMPLEX_H], [1], [complex.h present and usable])
|
|
],
|
|
[
|
|
AC_MSG_RESULT([no, build without support for C complex numbers])
|
|
]
|
|
)
|
|
]
|
|
)
|
|
])
|
|
|
|
|
|
#
|
|
# SYNOPSIS
|
|
#
|
|
#
|
|
# MPC_C_CHECK_FLAG([FLAG,ACCUMULATOR])
|
|
#
|
|
# DESCRIPTION
|
|
#
|
|
# Checks if the C compiler accepts the flag FLAG
|
|
# If yes, adds it to CFLAGS.
|
|
|
|
AC_DEFUN([MPC_C_CHECK_FLAG], [
|
|
AX_C_CHECK_FLAG($1,,,[CFLAGS="$CFLAGS $1"])
|
|
])
|
|
|
|
|
|
#
|
|
# SYNOPSIS
|
|
#
|
|
#
|
|
# MPC_C_CHECK_WARNINGFLAGS
|
|
#
|
|
# DESCRIPTION
|
|
#
|
|
# For development version only: Checks if gcc accepts warning flags.
|
|
# Adds accepted ones to CFLAGS.
|
|
#
|
|
AC_DEFUN([MPC_C_CHECK_WARNINGCFLAGS], [
|
|
AC_REQUIRE([AC_PROG_GREP])
|
|
if echo $VERSION | grep -c dev >/dev/null 2>&1 ; then
|
|
if test "x$GCC" = "xyes" -a "x$compiler" != "xicc"; then
|
|
# enable -Werror for myself (Andreas Enge)
|
|
if test "x$USER" = "xenge"; then
|
|
MPC_C_CHECK_FLAG(-Werror)
|
|
fi
|
|
MPC_C_CHECK_FLAG(-g)
|
|
MPC_C_CHECK_FLAG(-std=c99)
|
|
MPC_C_CHECK_FLAG(-Wno-long-long)
|
|
MPC_C_CHECK_FLAG(-Wall)
|
|
MPC_C_CHECK_FLAG(-Wextra)
|
|
MPC_C_CHECK_FLAG(-Wdeclaration-after-statement)
|
|
MPC_C_CHECK_FLAG(-Wshadow)
|
|
MPC_C_CHECK_FLAG(-Wstrict-prototypes)
|
|
MPC_C_CHECK_FLAG(-Wmissing-prototypes)
|
|
MPC_C_CHECK_FLAG(-Wno-unused-value)
|
|
MPC_C_CHECK_FLAG(-Wlogical-op)
|
|
fi
|
|
fi
|
|
])
|
|
|
|
|
|
#
|
|
# SYNOPSIS
|
|
#
|
|
#
|
|
# MPC_GMP_CC_CFLAGS
|
|
#
|
|
# DESCRIPTION
|
|
#
|
|
# Checks if CC and CFLAGS can be extracted from gmp.h
|
|
# essentially copied from mpfr
|
|
#
|
|
AC_DEFUN([MPC_GMP_CC_CFLAGS], [
|
|
AC_MSG_CHECKING(for CC and CFLAGS in gmp.h)
|
|
GMP_CC=
|
|
GMP_CFLAGS=
|
|
# AC_PROG_CPP triggers the search for a C compiler; use hack instead
|
|
for cpp in "$CPP" cpp "gcc -E" /lib/cpp "cc -E" "c99 -E"
|
|
do
|
|
echo foo > conftest.c
|
|
if $cpp $CPPFLAGS conftest.c > /dev/null 2> /dev/null ; then
|
|
# Get CC
|
|
echo "#include \"gmp.h\"" > conftest.c
|
|
echo "MPFR_OPTION __GMP_CC" >> conftest.c
|
|
GMP_CC=`$cpp $CPPFLAGS conftest.c 2> /dev/null | $EGREP MPFR_OPTION | $SED -e 's/MPFR_OPTION //g;s/ *" *//g'`
|
|
# Get CFLAGS
|
|
echo "#include \"gmp.h\"" > conftest.c
|
|
echo "MPFR_OPTION __GMP_CFLAGS" >> conftest.c
|
|
GMP_CFLAGS=`$cpp $CPPFLAGS conftest.c 2> /dev/null | $EGREP MPFR_OPTION | $SED -e 's/MPFR_OPTION //g;s/ *" *//g'`
|
|
break
|
|
fi
|
|
done
|
|
|
|
if test -z "$GMP_CC$GMP_CFLAGS" ; then
|
|
AC_MSG_RESULT(no)
|
|
else
|
|
AC_MSG_RESULT(yes [CC=$GMP_CC CFLAGS=$GMP_CFLAGS])
|
|
# Check for validity of CC and CFLAGS obtained from gmp.h
|
|
AC_MSG_CHECKING(for CC=$GMP_CC and CFLAGS=$GMP_CFLAGS)
|
|
echo "int main (void) { return 0; }" > conftest.c
|
|
if $GMP_CC $GMP_CFLAGS -o conftest conftest.c 2> /dev/null ; then
|
|
AC_MSG_RESULT(yes)
|
|
CC=$GMP_CC
|
|
CFLAGS=$GMP_CFLAGS
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
fi
|
|
|
|
rm -f conftest*
|
|
])
|
|
|
|
|
|
#
|
|
# SYNOPSIS
|
|
#
|
|
#
|
|
# MPC_WINDOWS
|
|
#
|
|
# DESCRIPTION
|
|
#
|
|
# Additional checks on windows
|
|
# libtool requires "-no-undefined" for win32 dll
|
|
# It also disables the tests involving the linking with LIBGMP if DLL
|
|
#
|
|
AC_DEFUN([MPC_WINDOWS], [
|
|
if test "$enable_shared" = yes; then
|
|
MPC_LDFLAGS="$MPC_LDFLAGS -no-undefined"
|
|
AC_MSG_CHECKING(for DLL/static gmp)
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
|
#include "gmp.h"
|
|
#if !__GMP_LIBGMP_DLL
|
|
#error
|
|
error
|
|
#endif
|
|
]], [[]])],[AC_MSG_RESULT(DLL)],[
|
|
AC_MSG_RESULT(static)
|
|
AC_MSG_ERROR([gmp is not available as a DLL: use --enable-static --disable-shared]) ])
|
|
AC_MSG_CHECKING(for DLL/static mpfr)
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
|
#include "mpfr.h"
|
|
#if !__GMP_LIBGMP_DLL
|
|
#error
|
|
error
|
|
#endif
|
|
]], [[]])],[AC_MSG_RESULT(DLL)],[
|
|
AC_MSG_RESULT(static)
|
|
AC_MSG_ERROR([mpfr is not available as a DLL: use --enable-static --disable-shared]) ])
|
|
else
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
|
#include "gmp.h"
|
|
#if __GMP_LIBGMP_DLL
|
|
#error
|
|
error
|
|
#endif
|
|
]], [[]])],[AC_MSG_RESULT(static)],[
|
|
AC_MSG_RESULT(DLL)
|
|
AC_MSG_ERROR([gmp is only available as a DLL: use --disable-static --enable-shared]) ])
|
|
fi
|
|
;;
|
|
])
|
|
|
|
|
|
#
|
|
# SYNOPSIS
|
|
#
|
|
#
|
|
# MPC_GITVERSION
|
|
#
|
|
# DESCRIPTION
|
|
#
|
|
# If current version string contains "dev", substitutes the short git hash
|
|
# into GITVERSION
|
|
#
|
|
AC_DEFUN([MPC_GITVERSION], [
|
|
if echo $VERSION | grep -c dev >/dev/null 2>&1 ; then
|
|
AC_CHECK_PROG([HASGIT], [git], [yes], [no])
|
|
AS_IF([test "x$HASGIT" = "xyes"], [
|
|
AC_MSG_CHECKING([for current git version])
|
|
GITVERSION=esyscmd([git rev-parse --short HEAD])
|
|
AC_SUBST([GITVERSION])
|
|
AC_MSG_RESULT([$GITVERSION])
|
|
])
|
|
fi
|
|
])
|