# # Contains some unsorted druntime utility macros. # # DRUNTIME_WERROR # --------------- # Check to see if -Werror is enabled. AC_DEFUN([DRUNTIME_WERROR], [ AC_ARG_ENABLE(werror, [AS_HELP_STRING([--enable-werror], [turns on -Werror @<:@default=no@:>@])]) WERROR_FLAG="" if test "x$enable_werror" = "xyes"; then WERROR_FLAG="-Werror" fi ]) # DRUNTIME_CONFIGURE # ------------------ # Substitute absolute paths for srcdir and builddir. AC_DEFUN([DRUNTIME_CONFIGURE], [ # These need to be absolute paths, yet at the same time need to # canonicalize only relative paths, because then amd will not unmount # drives. Thus the use of PWDCMD: set it to 'pawd' or 'amq -w' if using amd. libphobos_builddir=`${PWDCMD-pwd}` case $srcdir in [\\/$]* | ?:[\\/]*) libphobos_srcdir=${srcdir} ;; *) libphobos_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;; esac AC_SUBST(libphobos_builddir) AC_SUBST(libphobos_srcdir) ]) # DRUNTIME_MULTILIB # ----------------- # Prepare the multilib_arg variable AC_DEFUN([DRUNTIME_MULTILIB], [ if test ${multilib} = yes; then multilib_arg="--enable-multilib" else multilib_arg= fi ]) # DRUNTIME_INSTALL_DIRECTORIES # ---------------------------- # Setup various install directories for headers. # Add the cross-host option and substitute the libphobos_toolexecdir # libphobos_toolexeclibdir and gdc_include_dir variables. AC_DEFUN([DRUNTIME_INSTALL_DIRECTORIES], [ AC_REQUIRE([AC_PROG_GDC]) AC_MSG_CHECKING([D GCC version]) gcc_version=`eval $get_gcc_base_ver $srcdir/../gcc/BASE-VER` AC_MSG_RESULT($gcc_version) AC_SUBST(gcc_version) AC_ARG_WITH([cross-host], AC_HELP_STRING([--with-cross-host=HOST], [configuring with a cross compiler])) libphobos_toolexecdir=no libphobos_toolexeclibdir=no AC_MSG_CHECKING([for --enable-version-specific-runtime-libs]) AC_ARG_ENABLE([version-specific-runtime-libs], AC_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) GCC_WITH_TOOLEXECLIBDIR # Version-specific runtime libs processing. if test $version_specific_libs = yes; then libphobos_toolexecdir='${libdir}/gcc/${host_alias}' libphobos_toolexeclibdir='${toolexecdir}/${gcc_version}$(MULTISUBDIR)' else # Calculate libphobos_toolexecdir, libphobos_toolexeclibdir # Install a library built with a cross compiler in tooldir, not libdir. if test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then libphobos_toolexecdir='${exec_prefix}/${host_alias}' case ${with_toolexeclibdir} in no) libphobos_toolexeclibdir='${toolexecdir}/lib' ;; *) libphobos_toolexeclibdir=${with_toolexeclibdir} ;; esac else libphobos_toolexecdir='${libdir}/gcc/${host_alias}' libphobos_toolexeclibdir='${libdir}' fi multi_os_directory=`$GDC -print-multi-os-directory` case $multi_os_directory in .) ;; # Avoid trailing /. *) libphobos_toolexeclibdir=${libphobos_toolexeclibdir}/${multi_os_directory} ;; esac fi AC_SUBST(libphobos_toolexecdir) AC_SUBST(libphobos_toolexeclibdir) # Default case for install directory for D sources files. gdc_include_dir='$(libdir)/gcc/${target_alias}/${gcc_version}/include/d' AC_SUBST(gdc_include_dir) ]) # DRUNTIME_SECTION_FLAGS # ---------------------- # Check for -ffunction-sections nad -fdata-sections. AC_DEFUN([DRUNTIME_SECTION_FLAGS], [ WITH_LOCAL_DRUNTIME([ AC_LANG_PUSH([D]) GDCFLAGS="$GDCFLAGS -g -Werror -ffunction-sections -fdata-sections" AC_TRY_COMPILE([int foo; void bar() { }],[return 0;], [ac_fdsections=yes], [ac_fdsections=no]) if test "x$ac_fdsections" = "xyes"; then SECTION_FLAGS='-ffunction-sections -fdata-sections' fi AC_MSG_RESULT($ac_fdsections) AC_LANG_POP([D]) ], [-nophoboslib]) AC_SUBST(SECTION_FLAGS) ])