1# -*- Autoconf -*- 2# Process this file with autoconf to produce a configure script. 3 4AC_INIT([GNU Vtable Verification Runtime Library], 1.0,,[libvtv]) 5#AC_INIT(package-unused, version-unused, libvtv) 6AC_CONFIG_SRCDIR([vtv_rts.h]) 7 8AM_ENABLE_MULTILIB(, ..) 9 10# ------- 11# Options 12# ------- 13AC_MSG_CHECKING([for --enable-version-specific-runtime-libs]) 14AC_ARG_ENABLE(version-specific-runtime-libs, 15[ --enable-version-specific-runtime-libs Specify that runtime libraries should be installed in a compiler-specific directory ], 16[case "$enableval" in 17 yes) version_specific_libs=yes ;; 18 no) version_specific_libs=no ;; 19 *) AC_MSG_ERROR([Unknown argument to enable/disable version-specific libs]);; 20 esac], 21[version_specific_libs=no]) 22AC_MSG_RESULT($version_specific_libs) 23 24# Do not delete or change the following two lines. For why, see 25# http://gcc.gnu.org/ml/libstdc++/2003-07/msg00451.html 26AC_CANONICAL_SYSTEM 27target_alias=${target_alias-$host_alias} 28AC_SUBST(target_alias) 29GCC_LIBSTDCXX_RAW_CXX_FLAGS 30 31AC_USE_SYSTEM_EXTENSIONS 32 33# Use same top-level configure hooks in libgcc/libstdc++/libvtv. 34AC_MSG_CHECKING([for --enable-vtable-verify]) 35AC_ARG_ENABLE(vtable-verify, 36[ --enable-vtable-verify Enable vtable verification feature ], 37[case "$enableval" in 38 yes) enable_vtable_verify=yes ;; 39 no) enable_vtable_verify=no ;; 40 *) enable_vtable_verify=no;; 41 esac], 42[enable_vtable_verify=no]) 43AC_MSG_RESULT($enable_vtable_verify) 44 45# See if supported. 46unset VTV_SUPPORTED 47AC_MSG_CHECKING([for host support for vtable verification]) 48. ${srcdir}/configure.tgt 49case ${host} in 50 *-*-solaris2*) 51 # libvtv requires init priority support, which depends on the linker 52 # used on Solaris. 53 AC_CACHE_CHECK(for init priority support, libvtv_cv_init_priority, [ 54 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(, 55 [[void ip (void) __attribute__ ((constructor (1)));]])], 56 [libgcc_cv_init_priority=yes],[libgcc_cv_init_priority=no])]) 57 if test x$libvtv_cv_init_priority = xno; then 58 VTV_SUPPORTED=no 59 fi 60 # FIXME: Maybe check for dl_iterate_phdr, too? Should be covered by 61 # configure.tgt restricting to libvtv to Solaris 11+. 62 ;; 63esac 64AC_MSG_RESULT($VTV_SUPPORTED) 65 66# Decide if it's usable. 67use_vtable_verify=no 68if test "x$VTV_SUPPORTED" = "xyes"; then 69 if test "x$enable_vtable_verify" = "xyes"; then 70 use_vtable_verify=yes 71 AC_MSG_NOTICE(using vtable verification) 72 fi 73fi 74AM_CONDITIONAL(ENABLE_VTABLE_VERIFY, test $use_vtable_verify = yes) 75 76AM_INIT_AUTOMAKE(foreign no-dist) 77AM_MAINTAINER_MODE 78 79LIBVTV_CONFIGURE 80 81GCC_WITH_TOOLEXECLIBDIR 82 83# Calculate toolexeclibdir 84# Also toolexecdir, though it's only used in toolexeclibdir 85case ${version_specific_libs} in 86 yes) 87 # Need the gcc compiler version to know where to install libraries 88 # and header files if --enable-version-specific-runtime-libs option 89 # is selected. 90 toolexecdir='$(libdir)/gcc/$(target_alias)' 91 toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)' 92 ;; 93 no) 94 if test -n "$with_cross_host" && 95 test x"$with_cross_host" != x"no"; then 96 # Install a library built with a cross compiler in tooldir, not libdir. 97 toolexecdir='$(exec_prefix)/$(target_alias)' 98 case ${with_toolexeclibdir} in 99 no) 100 toolexeclibdir='$(toolexecdir)/lib' 101 ;; 102 *) 103 toolexeclibdir=${with_toolexeclibdir} 104 ;; 105 esac 106 else 107 toolexecdir='$(libdir)/gcc-lib/$(target_alias)' 108 toolexeclibdir='$(libdir)' 109 fi 110 multi_os_directory=`$CC -print-multi-os-directory` 111 case $multi_os_directory in 112 .) ;; # Avoid trailing /. 113 *) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;; 114 esac 115 ;; 116esac 117AC_SUBST(toolexecdir) 118AC_SUBST(toolexeclibdir) 119 120AC_GNU_SOURCE 121AC_CHECK_FUNCS([__secure_getenv]) 122 123AC_GNU_SOURCE 124AC_CHECK_FUNCS([secure_getenv]) 125 126AC_CHECK_FUNCS([getexecname __fortify_fail]) 127 128# Check for programs. 129m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS]) 130m4_define([_AC_ARG_VAR_PRECIOUS],[]) 131AC_PROG_CC 132AC_PROG_CXX 133m4_rename_force([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) 134 135AM_PROG_CC_C_O 136 137AC_SUBST(CFLAGS) 138AC_SUBST(CXXFLAGS) 139 140# Newer automakes demand CCAS and CCASFLAGS. 141: ${CCAS='$(CC)'} 142: ${CCASFLAGS='$(CFLAGS)'} 143AC_SUBST(CCAS) 144AC_SUBST(CCASFLAGS) 145 146AC_CHECK_TOOL(AS, as) 147AC_CHECK_TOOL(AR, ar) 148AC_CHECK_TOOL(RANLIB, ranlib, :) 149 150# Configure libtool 151AC_LIBTOOL_DLOPEN 152AM_PROG_LIBTOOL 153ACX_LT_HOST_FLAGS 154AC_SUBST(enable_shared) 155AC_SUBST(enable_static) 156 157# For libtool versioning info, format is CURRENT:REVISION:AGE 158libtool_VERSION=1:0:0 159AC_SUBST(libtool_VERSION) 160 161XCFLAGS="-D_GNU_SOURCE -Wall -Wextra -fno-exceptions" 162 163# Add CET specific flags if Intel CET is enabled. 164GCC_CET_FLAGS(CET_FLAGS) 165XCFLAGS="$XCFLAGS $CET_FLAGS" 166 167AC_SUBST(XCFLAGS) 168 169if test "${multilib}" = "yes"; then 170 multilib_arg="--enable-multilib" 171else 172 multilib_arg= 173fi 174 175AC_CONFIG_FILES([Makefile]) 176 177if test "x$VTV_SUPPORTED" = "xyes"; then 178 AC_CONFIG_FILES(AC_FOREACH([DIR], [testsuite], [DIR/Makefile ]), 179 [cat > vpsed$$ << \_EOF 180s!`test -f '$<' || echo '$(srcdir)/'`!! 181_EOF 182 sed -f vpsed$$ $ac_file > tmp$$ 183 mv tmp$$ $ac_file 184 rm vpsed$$ 185 echo 'MULTISUBDIR =' >> $ac_file 186 ml_norecursion=yes 187 . ${multi_basedir}/config-ml.in 188 AS_UNSET([ml_norecursion]) 189]) 190fi 191 192case "$target_os" in 193 cygwin*|mingw32*) 194 vtv_cygmin="yes" 195 ;; 196 *) 197 vtv_cygmin="no" 198 ;; 199esac 200 201AM_CONDITIONAL(VTV_CYGMIN, test $vtv_cygmin = yes) 202 203AC_CHECK_FUNCS([_obstack_begin]) 204AM_CONDITIONAL(VTV_NO_OBSTACK, test $ac_cv_func__obstack_begin = no) 205 206# Determine what GCC version number to use in filesystem paths. 207GCC_BASE_VER 208 209AC_OUTPUT 210