dejagnu
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

patch for gfortran


From: Tom Tromey
Subject: patch for gfortran
Date: Tue, 28 Jun 2011 12:55:44 -0600
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

Right now dejagnu supports g77 for compiling Fortran.
This is rather old -- last shipped in GCC 3.4, I believe.

This patch adds F90 support.

I wasn't sure which doc file I should update, so I didn't.
Let me know and I will correct it.

Tom

diff --git a/ChangeLog b/ChangeLog
index 92ea733..3cb7640 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2011-06-28  Tom Tromey  <address@hidden>
+
+       * lib/target.exp (default_target_compile): Handle f90.
+       (default_target_compile): Likewise.
+       * lib/libgloss.exp (find_gfortran): New proc.
+
 2011-04-12  Ben Elliston  <address@hidden>
 
        * config/vxworks.exp (vxworks_file): Use "file delete", not "exec
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 == "" } {



reply via email to

[Prev in Thread] Current Thread [Next in Thread]