CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.

| Download

GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it

Views: 418346
dnl ##
dnl ## Process this file with autoconf to produce a configure script.
dnl ##
AC_PREREQ([2.68])
AC_INIT([ANU p-Quotient Program], m4_esyscmd([tr -d '\n' < VERSION]), [https://github.com/gap-packages/anupq/issues], [anupq], [http://gap-packages.github.io/anupq/])
AC_CONFIG_SRCDIR([src/pquotient.c])
AC_CONFIG_HEADER(include/config.h:include/config.hin)
AC_CONFIG_AUX_DIR(cnf)
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([1.11 -Wall foreign subdir-objects])
AM_SILENT_RULES([yes])

dnl ##
dnl ## C is the language
dnl ##
AC_LANG([C])

dnl ##
dnl ## Checks for programs.
dnl ##
AC_PROG_AWK
AC_PROG_CC
AC_PROG_MAKE_SET
AC_PROG_MKDIR_P
AC_PROG_SED

dnl ##
dnl ## Checks for system header files.
dnl ##
AC_CHECK_HEADERS([stdlib.h string.h sys/time.h])


dnl ##
dnl ## Locate the GAP root dir
dnl ##
AC_FIND_GAP


dnl
dnl anupq require a 32bit compiler, so force that.
dnl
dnl Note that using -m32 like this is of course not universally portable;
dnl but for now, all systems and compilers I know and care about do support it.
dnl If this causes problems for you, please report them via the issue tracker,
dnl including information about your operating system and compiler.
dnl
CFLAGS="$CFLAGS -m32"
LDFLAGS="$LDFLAGS -m32"


dnl ##
dnl ## Check for GMP
dnl ## If the user specified a specific GMP, try to use that.
dnl ## Otherwise, first try to use the GMP provided by GAP, or
dnl ## any GMP version installed globally by the user.
dnl ##

GMP_CPPFLAGS=
GMP_LIBS=

AC_ARG_WITH([gmp],
	[AS_HELP_STRING([--with-gmp=PATH],
	  [ Use GMP library.
        If the argument you supply is "yes" or <empty>, then the version of GMP bundled with GAP will be used (default).
        If the argument is "system" that means the library is reachable with the standard
        search path "/usr" or "/usr/local".
        Otherwise you give the <path> to the directory which contains the library.
        [[default=yes]]
    ])],
  [], [ with_gmp=yes ]
)

if test "x$with_gmp" = "xno" ; then
	AC_MSG_NOTICE([Building without GMP support])
elif test "x$with_gmp" = "xsystem" ; then
	# Try using system GMP
	GMP_CPPFLAGS=""
	GMP_LIBS="-lgmp"
else
	# Try using static linked GMP in the specified location
	if test "x$with_gmp" = "xyes" ; then
		# Try to use GAP's GMP, if available
		# first for GAP <= 4.8 ...
		GMP_HOME="$GAPROOT/bin/$GAPARCH/extern/gmp"
		# ... then for GAP >= 4.9
		if ! test -d "$GMP_HOME" ; then
			GMP_HOME="$GAPROOT/extern/install/gmp"
		fi
	else
		GMP_HOME="$with_gmp"
	fi;
	if test -d ${GMP_HOME}/include && test -d ${GMP_HOME}/lib ; then
		GMP_CPPFLAGS="-I${GMP_HOME}/include"
		# gross hack follows
		if test -r "${GMP_HOME}/lib/libgmp.a" ; then
			GMP_LIBS="${GMP_HOME}/lib/libgmp.a"
		elif test -r "${GMP_HOME}/lib/libgmp.dylib" ; then
			GMP_LIBS="${GMP_HOME}/lib/libgmp.dylib"
		elif test -r "${GMP_HOME}/lib/libgmp.so" ; then
			GMP_LIBS="${GMP_HOME}/lib/libgmp.so"
		else
			# generic fallback -- unfortunately, this does not ensure that we
			# link against exactly that version of libgmp
			GMP_LIBS="-L${GMP_HOME}/lib -lgmp"
		fi
	elif test "x$with_gmp" = "xyes" ; then
		# fallback to trying system wide GMP
		GMP_CPPFLAGS=""
		GMP_LIBS="-lgmp"
	else
		AC_MSG_ERROR([Could not locate libgmp.a in the specified location])
	fi
fi;

have_gmp=no
if test "x$with_gmp" != xno; then
	pq_save_CPPFLAGS="$CPPFLAGS"
	CPPFLAGS="$CPPFLAGS $GMP_CPPFLAGS"
	pq_save_LIBS="$LIBS"
	LIBS="$LIBS $GMP_LIBS"

	AC_CHECK_HEADER( [gmp.h],
		[
		# TODO: Disable linker check for now: It causes problems on Linux, because
		# libgmp.a is in the linker command line before the test C file. On the long
		# run, this should be re-enabled, though perhaps in a different form.
		AC_MSG_CHECKING([whether linking against GMP works])
		AC_TRY_LINK(
			[#include <gmp.h>],
			[__gmpz_init(0);],
			[have_gmp=yes],
			[]
			)
		AC_MSG_RESULT([$have_gmp])
		],
		[]
		)

	# restore FLAGS
	CPPFLAGS="$pq_save_CPPFLAGS"
	LIBS="$pq_save_LIBS"

fi;

if test "x$have_gmp" = xyes; then
	AC_DEFINE(HAVE_GMP, 1, [Define if GMP is installed and usable])
else
GMP_CPPFLAGS=""
GMP_LIBS=""
fi

AC_SUBST(GMP_CPPFLAGS)
AC_SUBST(GMP_LIBS)

dnl ##
dnl ## Checks for library functions.
dnl ##
AC_FUNC_MALLOC
AC_FUNC_REALLOC
AC_FUNC_FORK
AC_HEADER_SYS_WAIT
AC_CHECK_FUNCS([gethostname waitpid wait4 strftime])

AC_SEARCH_LIBS([log10], [m], [], [
  AC_MSG_ERROR([unable to find the log10() function])
])


# hack for testPq:
GAP_EXEC=gap
AC_SUBST(GAP_EXEC)


dnl ##
dnl ## Finally, generate the Makefiles and output everything
dnl ##
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([testPq], [chmod +x testPq])
AC_OUTPUT