URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [gdb-7.1/] [gdb/] [testsuite/] [lib/] [pascal.exp] - Rev 227
Compare with Previous | Blame | View Log
# Copyright 2007, 2008, 2009, 2010 Free Software Foundation, Inc.## This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 3 of the License, or# (at your option) any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program. If not, see <http://www.gnu.org/licenses/>.load_lib libgloss.expset pascal_init_done 0# This procedure looks for a suitable pascal compiler# For now only GNU pascal compiler and Free Pascal compiler# are searched.# First, environment variable GPC is checked# if present, GPC compiler is assumed to be the value of# that environment variable.# Second, environment variable FPC is checked# if present, Free Pascal compiler is assumed to be the value of# that environment variable.# Third, gpc executable is searched using `which gpc`# Lastly, fpc executable is searched using `which fpc`# Using environment variable allows to force# which compiler is used in testsuiteproc pascal_init {} {global pascal_init_doneglobal pascal_compiler_is_gpcglobal pascal_compiler_is_fpcglobal gpc_compilerglobal fpc_compilerglobal envif { $pascal_init_done == 1 } {return}set pascal_compiler_is_gpc 0set pascal_compiler_is_fpc 0set gpc_compiler [transform gpc]set fpc_compiler [transform fpc]if ![is_remote host] {if { [info exists env(GPC)] } {set pascal_compiler_is_gpc 1set gpc_compiler $env(GPC)verbose -log "Assuming GNU Pascal ($gpc_compiler)"} elseif { [info exists env(FPC)] } {set pascal_compiler_is_fpc 1set fpc_compiler $env(FPC)verbose -log "Assuming Free Pascal ($fpc_compiler)"} elseif { [which $gpc_compiler] != 0 } {set pascal_compiler_is_gpc 1verbose -log "GNU Pascal compiler found"} elseif { [which $fpc_compiler] != 0 } {set pascal_compiler_is_fpc 1verbose -log "Free Pascal compiler found"}}set pascal_init_done 1}proc gpc_compile {source dest type options} {global gpc_compilerset add_flags ""if {$type == "object"} {append add_flags " -c"}if { $type == "preprocess" } {append add_flags " -E"}if { $type == "assembly" } {append add_flags " -S"}foreach i $options {if { $i == "debug" } {if [board_info $dest exists debug_flags] {append add_flags " [board_info $dest debug_flags]";} else {append add_flags " -g"}}}set result [remote_exec host $gpc_compiler "-o $dest --automake $add_flags $source"]return $result}proc fpc_compile {source dest type options} {global fpc_compilerset add_flags ""if {$type == "object"} {append add_flags " -Cn"}if { $type == "preprocess" } {return "Free Pascal can not preprocess"}if { $type == "assembly" } {append add_flags " -al"}foreach i $options {if { $i == "debug" } {if [board_info $dest exists debug_flags] {append add_flags " [board_info $dest debug_flags]";} else {append add_flags " -g"}}}set result [remote_exec host $fpc_compiler "-o$dest $add_flags $source"]return $result}proc gdb_compile_pascal {source dest type options} {global pascal_init_doneglobal pascal_compiler_is_gpcglobal pascal_compiler_is_fpcif { $pascal_init_done == 0 } {pascal_init}if { $pascal_compiler_is_fpc == 1 } {set result [fpc_compile $source $dest $type $options]} elseif { $pascal_compiler_is_gpc == 1 } {set result [gpc_compile $source $dest $type $options]} else {unsupported "No pascal compiler found"return "No pascal compiler. Compilation failed."}if ![file exists $dest] {unsupported "Pascal compilation failed: $result"return "Pascal compilation failed."}}
