# Configure script for libgcobol. # Adapted by James K. Lowden from configure script for libalg68. # This file is part of GCC. # GCC is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # GCC 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 General Public License for more details. # You should have received a copy of the GNU General Public License # along with GCC; see the file COPYING3. If not see # . # Configure looks for the existence of this file to auto-config each language. # We define several parameters used by configure: # Process this file with autoreconf to produce a configure script. AC_INIT(package-unused, version-unused,,libgcobol) AC_CONFIG_SRCDIR(Makefile.am) AC_CONFIG_HEADER(config.h) # Do not delete or change the following two lines. For why, see # http://gcc.gnu.org/ml/libstdc++/2003-07/msg00451.html AC_CANONICAL_SYSTEM ACX_NONCANONICAL_TARGET AM_ENABLE_MULTILIB(, ..) target_alias=${target_alias-$host_alias} AC_SUBST(target_alias) AM_MAINTAINER_MODE AM_INIT_AUTOMAKE([1.15.1 no-define foreign no-dist -Wall -Wno-portability]) AC_MSG_CHECKING([for --enable-libgcobol]) AC_ARG_ENABLE(libgcobol, [AS_HELP_STRING([--enable-libgcobol], [Enable libgcobol])]) AC_MSG_RESULT($enable_libgcobol) AC_MSG_CHECKING([for --enable-version-specific-runtime-libs]) AC_ARG_ENABLE(version-specific-runtime-libs, AS_HELP_STRING([--enable-version-specific-runtime-libs], [Specify that runtime libraries should be installed in a compiler-specific directory]), [case "$enableval" in yes) version_specific_libs=yes ;; no) version_specific_libs=no ;; *) AC_MSG_ERROR([Unknown argument to enable/disable version-specific libs]);; esac], [version_specific_libs=no]) AC_MSG_RESULT($version_specific_libs) # This works around the fact that libtool configuration may change LD # for this particular configuration, but some shells, instead of # keeping the changes in LD private, export them just because LD is # exported. ORIGINAL_LD_FOR_MULTILIBS=$LD GCC_NO_EXECUTABLES AC_USE_SYSTEM_EXTENSIONS # Find other programs we need. AC_CHECK_TOOL(AR, ar) AC_CHECK_TOOL(NM, nm) AC_CHECK_TOOL(RANLIB, ranlib, ranlib-not-found-in-path-error) AC_PROG_MAKE_SET AC_PROG_INSTALL AM_PROG_LIBTOOL LT_INIT AC_LIBTOOL_DLOPEN LT_LIB_M AM_CONDITIONAL([ENABLE_DARWIN_AT_RPATH], [test x$enable_darwin_at_rpath = xyes]) AC_SUBST(enable_shared) AC_SUBST(enable_static) # This library is written in C++ and needs to link with the C++ runtime. AC_LANG([C++]) # We must force CC/CXX to /not/ be precious variables; otherwise # the wrong, non-multilib-adjusted value will be used in multilibs. # As a side effect, we have to subst CFLAGS ourselves. m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS]) m4_define([_AC_ARG_VAR_PRECIOUS],[]) AC_PROG_CXX m4_rename_force([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) AC_SUBST(CXXFLAGS) GCC_WITH_TOOLEXECLIBDIR # Calculate toolexeclibdir # Also toolexecdir, though it's only used in toolexeclibdir case ${version_specific_libs} in yes) # Need the gcc compiler version to know where to install libraries # and header files if --enable-version-specific-runtime-libs option # is selected. toolexecdir='$(libdir)/gcc/$(target_noncanonical)' toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)' ;; no) if test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then # Install a library built with a cross compiler in tooldir, not libdir. toolexecdir='$(exec_prefix)/$(target_noncanonical)' toolexeclibdir='$(toolexecdir)/lib' else toolexecdir='$(libdir)/gcc-lib/$(target_noncanonical)' toolexeclibdir='$(libdir)' fi multi_os_directory=`$CC -print-multi-os-directory` case $multi_os_directory in .) ;; # Avoid trailing /. *) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;; esac ;; esac AC_SUBST(toolexecdir) AC_SUBST(toolexeclibdir) # For iconv support. AM_ICONV # Checks for header files. AC_CHECK_HEADERS(malloc.h) AC_CHECK_SIZEOF([void *]) # Get target configury. unset LIBGCOBOL_SUPPORTED . ${srcdir}/configure.tgt # Decide if it's usable. case $LIBGCOBOL_SUPPORTED:$enable_libgcobol in *:no) use_libgcobol=no ;; *:yes) use_libgcobol=yes ;; yes:*) use_libgcobol=yes ;; *:*) use_libgcobol=no ;; esac # ----------------- # __int128 support # ----------------- AC_CACHE_CHECK([whether __int128 is supported], [libgcobol_cv_have_int128], [GCC_TRY_COMPILE_OR_LINK([ __int128 foo (__int128 ) { __int128 aaa; return (__int128) aaa; } __int128 bar (__int128 ) { __int128 aaa; return (__int128) aaa; } ],[ foo (1); bar (1); ],[ libgcobol_cv_have_int128=yes ],[ libgcobol_cv_have_int128=no ])]) AM_CONDITIONAL(BUILD_LIBGCOBOL, [test "x$use_libgcobol" = xyes && test "x$libgcobol_cv_have_int128" = xyes]) # Check if functions are available in libc before adding extra libs. AC_SEARCH_LIBS([malloc], [c]) AC_SEARCH_LIBS([clock_gettime], [c rt]) # libgcobol soname version LIBGCOBOL_VERSION=1:0:0 AC_SUBST(LIBGCOBOL_VERSION) ## added, currently unused. # VERSION_SUFFIX=$(echo $LIBGCOBOL_VERSION | tr ':' '.' ) # AC_SUBST(VERSION_SUFFIX) ## end added extra_ldflags_libgcobol= case $host in *-*-darwin*) extra_ldflags_libgcobol=-Wl,-U,___cobol_main ;; *) ;; esac AC_SUBST(extra_ldflags_libgcobol) AC_CHECK_HEADERS_ONCE(floatingpoint.h ieeefp.h fenv.h fptrap.h \ complex.h stdlib.h errno.h) # Look for a way to represent the program name # First, check the GLIBC case AC_CHECK_DECLS([program_invocation_short_name], , ,[ #if HAVE_ERRNO_H # define _GNU_SOURCE # include #endif ]) # Check an alternate AC_CHECK_FUNCS_ONCE(getprogname) # These are GLIBC AC_CHECK_FUNCS_ONCE(random_r srandom_r initstate_r setstate_r) # Some functions we check to figure out if the libc Float128 support # is adequate. # These are C23. AC_CHECK_FUNCS_ONCE(strfromf32 strfromf64) # These are GLIBC. AC_CHECK_FUNCS_ONCE(strtof128 strfromf128) # We need to make sure to check libc before adding libm. libgcobol_have_sinf128=no AC_SEARCH_LIBS([sinf128], [c m], libgcobol_have_sinf128=yes) libgcobol_have_cacosf128=no AC_SEARCH_LIBS([cacosf128], [c m], libgcobol_have_cacosf128=yes) # These are libxml2. AC_CHECK_LIB(xml2, xmlSAXUserParseMemory, [LIBS="-lxml2 $LIBS" AC_DEFINE(HAVE_SAX_XML_PARSER, 1, [Define to 1 if you have the `xmlSAXUserParseMemory' function.])]) AC_CHECK_LIB(xml2, xmlParseChunk, [LIBS="-lxml2 $LIBS" AC_DEFINE(HAVE_SAX_XML_PARSER, 1, [Define to 1 if you have the `xmlParseChunk' function.])]) # Copied from gcc/configure.ac. 2025-06-05 R.J.Dubner # At least for glibc, clock_gettime is in librt. But don't pull that # in if it still doesn't give us the function we want. ac_cv_func_clock_gettime=no if test $ac_cv_func_clock_gettime = no; then AC_CHECK_LIB(rt, clock_gettime, [LIBS="-lrt $LIBS" AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [Define to 1 if you have the `clock_gettime' function.])]) fi have_iec_60559_libc_support=no if test "x$ac_cv_func_strtof128$ac_cv_func_strfromf128" = xyesyes \ && test "x$libgcobol_have_sinf128$libgcobol_have_cacosf128" = xyesyes; then have_iec_60559_libc_support=yes fi # Check whether libquadmath should be used AC_ARG_ENABLE(libquadmath, AS_HELP_STRING([--disable-libquadmath], [disable libquadmath support for libgcobol]), ENABLE_LIBQUADMATH_SUPPORT=$enableval, if test "x$have_iec_60559_libc_support" = xyes; then ENABLE_LIBQUADMATH_SUPPORT=default else ENABLE_LIBQUADMATH_SUPPORT=yes fi) enable_libquadmath_support= if test "${ENABLE_LIBQUADMATH_SUPPORT}" = "no" ; then enable_libquadmath_support=no elif test "${ENABLE_LIBQUADMATH_SUPPORT}" = "default" ; then enable_libquadmath_support=default fi LIBGCOBOL_CHECK_FLOAT128 # struct tm tm_zone is a POSIX.1-2024 addition. AC_CHECK_MEMBERS([struct tm.tm_zone],,,[#include ]) if test "${multilib}" = "yes"; then multilib_arg="--enable-multilib" else multilib_arg= fi # Determine what GCC version number to use in filesystem paths. GCC_BASE_VER # Add dependencies for libgcobol.spec file, this might be excessive - since # the spec file might not use all of them. SPEC_LIBGCOBOL_DEPS="$LIBS" AC_SUBST(SPEC_LIBGCOBOL_DEPS) AC_CONFIG_FILES([ Makefile libgcobol.spec ]) AC_MSG_NOTICE([libgcobol has been configured.]) AC_OUTPUT