package F77Conf; # a minimal hardcoded config designed for debian so that we don't need # ExtUtils::F77 when building PDL print "Config ",__PACKAGE__->config(),"\n"; print "Compiler ",__PACKAGE__->compiler(),"\n"; print "Runtime ",__PACKAGE__->runtime(),"\n"; print "Trail_ ",__PACKAGE__->trail_() ? "yes" : "no", "\n"; print "Cflags ",__PACKAGE__->cflags(),"\n"; sub config { return 'debian'; } sub runtime { my $libpath = `gfortran -print-libgcc-file-name`; $libpath =~ s/libgcc[.]a$//; chomp $libpath; my $ldflags = ''; $ldflags .= $ENV{LDFLAGS} if (defined $ENV{LDFLAGS}); $ldflags .= " -L$libpath -lgcc -lgfortran"; return($ldflags); } sub trail_ { return 1; } sub compiler { return 'gfortran'; } sub cflags { my $fflags = ''; $fflags = $ENV{FFLAGS} if (defined $ENV{FFLAGS}); $fflags.=' -fPIC'; return($fflags); } sub testcompiler { my ($this) = @_; my $file = "/tmp/testf77$$"; my $ret; open(OUT,">$file.f"); print OUT " print *, 'Hello World'\n"; print OUT " end\n"; close(OUT); print "Compiling the test Fortran program...\n"; my ($compiler,$cflags) = ($this->compiler,$this->cflags); system "$compiler $cflags $file.f -o ${file}_exe"; print "Executing the test program...\n"; if (`${file}_exe` ne " Hello World\n") { print "Test of Fortran Compiler FAILED. \n"; print "Do not know how to compile Fortran on your system\n"; $ret=0; } else{ print "Congratulations you seem to have a working f77!\n"; $ret=1; } unlink("${file}_exe"); unlink("$file.f"); unlink("$file.o") if -e "$file.o"; return $ret; } 1;