aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Elliston <bje@gnu.org>2011-06-30 09:38:10 +1000
committerBen Elliston <bje@gnu.org>2011-06-30 09:38:10 +1000
commit6a76be5ff4edc64adc6478f8403a07a5dcd1e30f (patch)
tree8f0a35544d0a5d64fdd925a9baf0ffb01ddc5c48
parentbc123e2c554cc4e62a4ed46fbafb92a95a58819f (diff)
downloaddejagnu-6a76be5ff4edc64adc6478f8403a07a5dcd1e30f.zip
dejagnu-6a76be5ff4edc64adc6478f8403a07a5dcd1e30f.tar.gz
dejagnu-6a76be5ff4edc64adc6478f8403a07a5dcd1e30f.tar.bz2
2011-06-30 Tom Tromey <tromey@redhat.com>
* doc/ref.xml: Document find_gfortran. * doc/dejagnu.texi: Regenerate. * lib/target.exp (default_target_compile): Handle f90. (default_target_compile): Likewise. * lib/libgloss.exp (find_gfortran): New proc.
-rw-r--r--ChangeLog8
-rw-r--r--doc/dejagnu.texi14
-rw-r--r--doc/ref.xml13
-rw-r--r--lib/libgloss.exp21
-rw-r--r--lib/target.exp21
5 files changed, 73 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 2b5d566..3866395 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2011-06-30 Tom Tromey <tromey@redhat.com>
+
+ * doc/ref.xml: Document find_gfortran.
+ * doc/dejagnu.texi: Regenerate.
+ * lib/target.exp (default_target_compile): Handle f90.
+ (default_target_compile): Likewise.
+ * lib/libgloss.exp (find_gfortran): New proc.
+
2011-06-30 Ben Elliston <bje@gnu.org>
* Makefile.am (all-local): New rule.
diff --git a/doc/dejagnu.texi b/doc/dejagnu.texi
index 904cb99..3d616c5 100644
--- a/doc/dejagnu.texi
+++ b/doc/dejagnu.texi
@@ -6548,6 +6548,7 @@ executable image for an embedded systems.
* Find_gcj Procedure: find_gcj procedure.
* Find_g++ Procedure: find_g++ procedure.
* Find_g77 Procedure: find_g77 procedure.
+* Find_gfortran Procedure: find_gfortran procedure.
* Process_multilib_options Procedure: process_multilib_options procedure.
* Add_multilib_option Procedure: add_multilib_option procedure.
* Find_gas Procedure: find_gas procedure.
@@ -6752,7 +6753,7 @@ executable image for an embedded systems.
@t{@b{find_g++}(@i{});}
@end quotation
-@node find_g77 procedure, process_multilib_options procedure, find_g++ procedure, Libgloss
+@node find_g77 procedure, find_gfortran procedure, find_g++ procedure, Libgloss
@subsubsection Find_g77 Procedure
@@ -6761,7 +6762,16 @@ executable image for an embedded systems.
@t{@b{find_g77}(@i{});}
@end quotation
-@node process_multilib_options procedure, add_multilib_option procedure, find_g77 procedure, Libgloss
+@node find_gfortran procedure, process_multilib_options procedure, find_g77 procedure, Libgloss
+@subsubsection Find_gfortran Procedure
+
+
+@quotation
+
+@t{@b{find_gfortran}(@i{});}
+@end quotation
+
+@node process_multilib_options procedure, add_multilib_option procedure, find_gfortran procedure, Libgloss
@subsubsection Process_multilib_options Procedure
diff --git a/doc/ref.xml b/doc/ref.xml
index 570fbc0..b54d2ff 100644
--- a/doc/ref.xml
+++ b/doc/ref.xml
@@ -4146,6 +4146,19 @@
</funcsynopsis>
</sect4>
+ <sect4 id="findgfortran" xreflabel="find_gfortran procedure">
+ <title>Find_gfortran Procedure</title>
+
+ <para></para>
+
+ <funcsynopsis role="tcl">
+ <funcprototype>
+ <funcdef><function>find_gfortran</function></funcdef>
+ <paramdef><parameter></parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </sect4>
+
<sect4 id="processmultiliboptions" xreflabel="process_multilib_options
procedure">
<title>Process_multilib_options Procedure</title>
diff --git a/lib/libgloss.exp b/lib/libgloss.exp
index e651eb6..77150cb 100644
--- a/lib/libgloss.exp
+++ b/lib/libgloss.exp
@@ -1,5 +1,5 @@
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-# 2002, 2003, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# 2002, 2003, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
#
# This file is part of DejaGnu.
#
@@ -702,6 +702,25 @@ proc find_g77 {} {
return $CC
}
+proc find_gfortran {} {
+ global tool_root_dir
+
+ if {![is_remote host]} {
+ set file [lookfor_file $tool_root_dir gfortran]
+ if { $file == "" } {
+ set file [lookfor_file $tool_root_dir gcc/gfortran]
+ }
+ if { $file != "" } {
+ set CC "$file -B[file dirname $file]/"
+ } else {
+ set CC [transform gfortran]
+ }
+ } else {
+ set CC [transform gfortran]
+ }
+ return $CC
+}
+
proc find_gnatmake {} {
global tool_root_dir
diff --git a/lib/target.exp b/lib/target.exp
index c9fde2c..ec9fff2 100644
--- a/lib/target.exp
+++ b/lib/target.exp
@@ -1,5 +1,5 @@
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-# 2002, 2003, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# 2002, 2003, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
#
# This file is part of DejaGnu.
#
@@ -367,6 +367,18 @@ proc default_target_compile {source destfile type options} {
}
}
+ if { $i == "f90" } {
+ set compiler_type "f90"
+ if {[board_info $dest exists f90flags]} {
+ append add_flags " [target_info f90flags]"
+ }
+ if {[board_info $dest exists f90compiler]} {
+ set compiler [target_info f90compiler]
+ } else {
+ set compiler [find_gfortran]
+ }
+ }
+
if {[regexp "^dest=" $i]} {
regsub "^dest=" $i "" tmp
if {[board_info $tmp exists name]} {
@@ -420,6 +432,7 @@ proc default_target_compile {source destfile type options} {
global CC_FOR_TARGET
global CXX_FOR_TARGET
global F77_FOR_TARGET
+ global F90_FOR_TARGET
global GNATMAKE_FOR_TARGET
if {[info exists GNATMAKE_FOR_TARGET]} {
@@ -446,6 +459,12 @@ proc default_target_compile {source destfile type options} {
}
}
+ if {[info exists F90_FOR_TARGET]} {
+ if { $compiler_type == "f90" } {
+ set compiler $F90_FOR_TARGET
+ }
+ }
+
if { $compiler == "" } {
set compiler [board_info $dest compiler]
if { $compiler == "" } {