* Makefile.def (host_modules, dependencies): Add accel-gcc entries.
(flags_to_pass): Add accel_target_alias).
* Makefile.tpl (accel_target_alias, accel_target_vendor,
accel_target_os, accel_target): New variables.
(configure-[+prefix+][+module+]): Special case accel-gcc module.
* configure.ac (host_tools): Add accel-gcc.
(ENABLE_ACCELERATOR handling): Set skipdirs and
accel_target_noncanonical, then use ACX_CANONICAL_ACCEL_TARGET.
* configure: Regenerate.
* Makefile.in: Regenerate.
config/
* acx.m4 (ACX_CANONICAL_ACCEL_TARGET): New macro.
===================================================================
@@ -141,7 +141,7 @@ host_libs="intl libiberty opcodes bfd re
# binutils, gas and ld appear in that order because it makes sense to run
# "make check" in that particular order.
# If --enable-gold is used, "gold" may replace "ld".
-host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gprof etc expect dejagnu m4 utils guile fastjar gnattools"
+host_tools="texinfo flex bison binutils gas ld fixincludes accel-gcc gcc cgen sid sim gdb gprof etc expect dejagnu m4 utils guile fastjar gnattools"
# libgcj represents the runtime libraries only used by gcj.
libgcj="target-libffi \
@@ -297,15 +297,26 @@ AC_ARG_ENABLE(accelerator,
[build accelerator @<:@ARG={no,device-triplet}@:>@])],
ENABLE_ACCELERATOR=$enableval,
ENABLE_ACCELERATOR=no)
+accel_target_noncanonical=NONE
case "${ENABLE_ACCELERATOR}" in
- yes) AC_MSG_ERROR([--enable-accelerators must name accelerator]) ;;
- no) ;;
- nvptx)
- # validate target ok here?
- ;;
- *) AC_MSG_ERROR([unrecognized accelerator]) ;;
+ yes)
+ AC_MSG_ERROR([--enable-accelerators must name accelerator])
+ skipdirs="${skipdirs} accel-gcc"
+ ;;
+ no)
+ skipdirs="${skipdirs} accel-gcc"
+ ;;
+ nvptx*)
+ accel_target_noncanonical="${ENABLE_ACCELERATOR}"
+ ;;
+ *)
+ AC_MSG_ERROR([unrecognized accelerator])
+ skipdirs="${skipdirs} accel-gcc"
+ ;;
esac
+ACX_CANONICAL_ACCEL_TARGET
+
# Handle --enable-gold, --enable-ld.
# --disable-gold [--enable-ld]
# Build only ld. Default option.
@@ -2139,7 +2150,15 @@ done
configdirs_all="$configdirs"
configdirs=
for i in ${configdirs_all} ; do
- if test -f ${srcdir}/$i/configure ; then
+ case $i in
+ accel-gcc)
+ confsrcdir=gcc
+ ;;
+ *)
+ confsrcdir=$i
+ ;;
+ esac
+ if test -f ${srcdir}/${confsrcdir}/configure ; then
configdirs="${configdirs} $i"
fi
done
@@ -3148,7 +3167,6 @@ case " $configdirs " in
;;
esac
-
# Host tools.
NCN_STRICT_CHECK_TOOLS(AR, ar)
NCN_STRICT_CHECK_TOOLS(AS, as)
===================================================================
@@ -61,6 +61,36 @@ AC_DEFUN([ACX_NONCANONICAL_TARGET],
AC_SUBST(target_noncanonical)
]) []dnl # ACX_NONCANONICAL_TARGET
+AC_DEFUN(ACX_CANONICAL_ACCEL_TARGET,
+[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+AC_MSG_CHECKING(accelerator target system type)
+
+dnl Set accel_target_alias.
+accel_target_alias=$accel_target_noncanonical
+case "$accel_target_alias" in
+NONE)
+ accel_target=NONE
+ ;;
+*)
+ accel_target=`$ac_config_sub $accel_target_alias`
+ ;;
+esac
+
+dnl Set the other accel_target vars.
+changequote(<<, >>)dnl
+accel_target_cpu=`echo $accel_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+accel_target_vendor=`echo $accel_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+accel_target_os=`echo $accel_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+changequote([, ])dnl
+AC_MSG_RESULT($accel_target)
+AC_SUBST(accel_target_noncanonical)dnl
+AC_SUBST(accel_target)dnl
+AC_SUBST(accel_target_alias)dnl
+AC_SUBST(accel_target_cpu)dnl
+AC_SUBST(accel_target_vendor)dnl
+AC_SUBST(accel_target_os)dnl
+])
+
dnl ####
dnl # GCC_TOPLEV_SUBDIRS
dnl # GCC & friends build 'build', 'host', and 'target' tools. These must
===================================================================
@@ -45,6 +45,7 @@ host_modules= { module= flex; no_check_c
host_modules= { module= gas; bootstrap=true; };
host_modules= { module= gcc; bootstrap=true;
extra_make_flags="$(EXTRA_GCC_FLAGS)"; };
+host_modules= { module= accel-gcc; actual_module=gcc; };
host_modules= { module= gmp; lib_path=.libs; bootstrap=true;
extra_configure_flags='--disable-shared';
no_install= true;
@@ -211,6 +212,7 @@ flags_to_pass = { flag= sysconfdir ; };
flags_to_pass = { flag= tooldir ; };
flags_to_pass = { flag= build_tooldir ; };
flags_to_pass = { flag= target_alias ; };
+flags_to_pass = { flag= accel_target_alias ; };
// Build tools
flags_to_pass = { flag= AWK ; };
@@ -307,6 +309,7 @@ dependencies = { module=all-gcc; on=all-
dependencies = { module=all-gcc; on=all-mpfr; };
dependencies = { module=all-gcc; on=all-mpc; };
dependencies = { module=all-gcc; on=all-cloog; };
+dependencies = { module=all-gcc; on=all-accel-gcc; };
dependencies = { module=all-gcc; on=all-build-texinfo; };
dependencies = { module=all-gcc; on=all-build-bison; };
dependencies = { module=all-gcc; on=all-build-flex; };
@@ -319,6 +322,24 @@ dependencies = { module=all-gcc; on=all-
dependencies = { module=all-gcc; on=all-libiberty; };
dependencies = { module=all-gcc; on=all-fixincludes; };
dependencies = { module=all-gcc; on=all-lto-plugin; };
+dependencies = { module=all-accel-gcc; on=all-libiberty; hard=true; };
+dependencies = { module=all-accel-gcc; on=all-intl; };
+dependencies = { module=all-accel-gcc; on=all-mpfr; };
+dependencies = { module=all-accel-gcc; on=all-mpc; };
+dependencies = { module=all-accel-gcc; on=all-cloog; };
+dependencies = { module=all-accel-gcc; on=all-accel-gcc; };
+dependencies = { module=all-accel-gcc; on=all-build-texinfo; };
+dependencies = { module=all-accel-gcc; on=all-build-bison; };
+dependencies = { module=all-accel-gcc; on=all-build-flex; };
+dependencies = { module=all-accel-gcc; on=all-build-libiberty; };
+dependencies = { module=all-accel-gcc; on=all-build-fixincludes; };
+dependencies = { module=all-accel-gcc; on=all-zlib; };
+dependencies = { module=all-accel-gcc; on=all-libbacktrace; hard=true; };
+dependencies = { module=all-accel-gcc; on=all-libcpp; hard=true; };
+dependencies = { module=all-accel-gcc; on=all-libdecnumber; hard=true; };
+dependencies = { module=all-accel-gcc; on=all-libiberty; };
+dependencies = { module=all-accel-gcc; on=all-fixincludes; };
+dependencies = { module=all-accel-gcc; on=all-lto-plugin; };
dependencies = { module=info-gcc; on=all-build-libiberty; };
dependencies = { module=dvi-gcc; on=all-build-libiberty; };
dependencies = { module=pdf-gcc; on=all-build-libiberty; };
===================================================================
@@ -49,6 +49,10 @@ target_alias=@target_noncanonical@
target_vendor=@target_vendor@
target_os=@target_os@
target=@target@
+accel_target_alias=@accel_target_noncanonical@
+accel_target_vendor=@accel_target_vendor@
+accel_target_os=@accel_target_os@
+accel_target=@accel_target@
program_transform_name = @program_transform_name@
@@ -996,18 +1000,23 @@ configure-[+prefix+][+module+]: [+ IF bo
$(SHELL) $(srcdir)/mkinstalldirs [+subdir+]/[+module+] ; \
[+exports+] [+extra_exports+] \
echo Configuring in [+subdir+]/[+module+]; \
+ [+ IF (= (get "module") "accel-gcc") +] \
+ this_target="$(accel_target_alias)"; \
+ [+ ELSE +] \
+ this_target="[+target_alias+]"; \
+ [+ ENDIF +] \
cd "[+subdir+]/[+module+]" || exit 1; \
case $(srcdir) in \
/* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
- *) topdir=`echo [+subdir+]/[+module+]/ | \
+ *) topdir=`echo [+subdir+]/[+? actual_module (get "actual_module") (get "module")+]/ | \
sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
esac; \
- srcdiroption="--srcdir=$${topdir}/[+module+]"; \
- libsrcdir="$$s/[+module+]"; \
+ srcdiroption="--srcdir=$${topdir}/[+? actual_module (get "actual_module") (get "module")+]"; \
+ libsrcdir="$$s/[+? actual_module (get "actual_module") (get "module")+]"; \
[+ IF no-config-site +]rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file [+ ENDIF +]$(SHELL) $${libsrcdir}/configure \
[+args+] --build=${build_alias} --host=[+host_alias+] \
- --target=[+target_alias+] $${srcdiroption} [+extra_configure_flags+] \
+ --target=$${this_target} $${srcdiroption} [+extra_configure_flags+] \
|| exit 1
@endif [+prefix+][+module+]
@@ -1085,7 +1094,7 @@ all-[+prefix+][+module+]: configure-[+pr
[+exports+] [+extra_exports+] \
(cd [+subdir+]/[+module+] && \
$(MAKE) $(BASE_FLAGS_TO_PASS) [+args+] [+stage1_args+] [+extra_make_flags+] \
- $(TARGET-[+prefix+][+module+]))
+ $(TARGET-[+prefix+][+? actual_module (get "actual_module") (get "module")+]))
@endif [+prefix+][+module+]
[+ IF bootstrap +]