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 81# Calculate toolexeclibdir 82# Also toolexecdir, though it's only used in toolexeclibdir 83case ${version_specific_libs} in 84 yes) 85 # Need the gcc compiler version to know where to install libraries 86 # and header files if --enable-version-specific-runtime-libs option 87 # is selected. 88 toolexecdir='$(libdir)/gcc/$(target_alias)' 89 toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)' 90 ;; 91 no) 92 if test -n "$with_cross_host" && 93 test x"$with_cross_host" != x"no"; then 94 # Install a library built with a cross compiler in tooldir, not libdir. 95 toolexecdir='$(exec_prefix)/$(target_alias)' 96 toolexeclibdir='$(toolexecdir)/lib' 97 else 98 toolexecdir='$(libdir)/gcc-lib/$(target_alias)' 99 toolexeclibdir='$(libdir)' 100 fi 101 multi_os_directory=`$CC -print-multi-os-directory` 102 case $multi_os_directory in 103 .) ;; # Avoid trailing /. 104 *) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;; 105 esac 106 ;; 107esac 108AC_SUBST(toolexecdir) 109AC_SUBST(toolexeclibdir) 110 111AC_GNU_SOURCE 112AC_CHECK_FUNCS([__secure_getenv]) 113 114AC_GNU_SOURCE 115AC_CHECK_FUNCS([secure_getenv]) 116 117AC_CHECK_FUNCS([getexecname __fortify_fail]) 118 119# Check for programs. 120m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS]) 121m4_define([_AC_ARG_VAR_PRECIOUS],[]) 122AC_PROG_CC 123AC_PROG_CXX 124m4_rename_force([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) 125 126AM_PROG_CC_C_O 127 128AC_SUBST(CFLAGS) 129AC_SUBST(CXXFLAGS) 130 131# Newer automakes demand CCAS and CCASFLAGS. 132: ${CCAS='$(CC)'} 133: ${CCASFLAGS='$(CFLAGS)'} 134AC_SUBST(CCAS) 135AC_SUBST(CCASFLAGS) 136 137AC_CHECK_TOOL(AS, as) 138AC_CHECK_TOOL(AR, ar) 139AC_CHECK_TOOL(RANLIB, ranlib, :) 140 141# Configure libtool 142AC_LIBTOOL_DLOPEN 143AM_PROG_LIBTOOL 144ACX_LT_HOST_FLAGS 145AC_SUBST(enable_shared) 146AC_SUBST(enable_static) 147 148# For libtool versioning info, format is CURRENT:REVISION:AGE 149libtool_VERSION=1:0:0 150AC_SUBST(libtool_VERSION) 151 152XCFLAGS="-D_GNU_SOURCE -Wall -Wextra -fno-exceptions" 153 154# Add CET specific flags if Intel CET is enabled. 155GCC_CET_FLAGS(CET_FLAGS) 156XCFLAGS="$XCFLAGS $CET_FLAGS" 157 158AC_SUBST(XCFLAGS) 159 160if test "${multilib}" = "yes"; then 161 multilib_arg="--enable-multilib" 162else 163 multilib_arg= 164fi 165 166AC_CONFIG_FILES([Makefile]) 167 168if test "x$VTV_SUPPORTED" = "xyes"; then 169 AC_CONFIG_FILES(AC_FOREACH([DIR], [testsuite], [DIR/Makefile ]), 170 [cat > vpsed$$ << \_EOF 171s!`test -f '$<' || echo '$(srcdir)/'`!! 172_EOF 173 sed -f vpsed$$ $ac_file > tmp$$ 174 mv tmp$$ $ac_file 175 rm vpsed$$ 176 echo 'MULTISUBDIR =' >> $ac_file 177 ml_norecursion=yes 178 . ${multi_basedir}/config-ml.in 179 AS_UNSET([ml_norecursion]) 180]) 181fi 182 183case "$target_os" in 184 cygwin*|mingw32*) 185 vtv_cygmin="yes" 186 ;; 187 *) 188 vtv_cygmin="no" 189 ;; 190esac 191 192AM_CONDITIONAL(VTV_CYGMIN, test $vtv_cygmin = yes) 193 194AC_CHECK_FUNCS([_obstack_begin]) 195AM_CONDITIONAL(VTV_NO_OBSTACK, test $ac_cv_func__obstack_begin = no) 196 197# Determine what GCC version number to use in filesystem paths. 198GCC_BASE_VER 199 200AC_OUTPUT 201