# | Line 21 | Line 21 | |
---|---|---|
21 | # Filename : $RCSfile: filepp,v $ | |
22 | # Author : $Author: tim $ | |
23 | # Maintainer : Darren Miller: darren@cabaret.demon.co.uk | |
24 | < | # File version : $Revision: 1.2 $ |
25 | < | # Last changed : $Date: 2004-10-02 04:40:48 $ |
24 | > | # File version : $Revision: 1.3 $ |
25 | > | # Last changed : $Date: 2004-10-06 22:19:33 $ |
26 | # Description : Main program | |
27 | # Licence : GNU copyleft | |
28 | # | |
# | Line 296 | Line 296 | my %f90ModList = (); | |
296 | # | |
297 | my %f90ModList = (); | |
298 | ||
299 | < | # |
299 | > | # suffix of fortran object file |
300 | my $objExt = '.o'; | |
301 | + | |
302 | + | # suffix of fortran 90 module |
303 | + | my $modSuffix = "mod"; |
304 | + | |
305 | + | # case of basename of fortran 90 module |
306 | + | my $modBasenameCase = "lower"; |
307 | ############################################################################## | |
308 | # SetDebug - controls debugging level | |
309 | ############################################################################## | |
# | Line 2438 | Line 2444 | sub Module{ | |
2444 | if ($modulename !~ /^procedure/){ | |
2445 | ||
2446 | $modulename =~ s/\s+$//; | |
2447 | < | $parsedModList{uc($modulename) . ".mod"} = Filepp::GetDefine('__FILE__'); |
2447 | > | $parsedModList{GetModBasename($modulename) . "." . $modSuffix} |
2448 | > | = Filepp::GetDefine('__FILE__'); |
2449 | ||
2450 | #$modulefile = Filepp::GetDefine('__BASE_FILE__'); | |
2451 | #print $modulefile; | |
# | Line 2462 | Line 2469 | sub Use{ | |
2469 | $f90module =~ s/\s+$//; | |
2470 | $f90module = uc($f90module); | |
2471 | ||
2472 | < | print " " . $objDir . $f90module . '.mod \\', "\n"; |
2466 | < | #addModule($f90module); |
2472 | > | print " " . $objDir . GetModBasename($f90module) . "." . $modSuffix . "\\\n"; |
2473 | } | |
2474 | ||
2475 | ############################################################################## | |
# | Line 2502 | Line 2508 | sub AddModule { | |
2508 | ||
2509 | } | |
2510 | ||
2511 | < | |
2511 | > | ############################################################################## |
2512 | > | # Generate rules for fortran 90 module |
2513 | > | ############################################################################## |
2514 | sub printModule { | |
2515 | my $modname; | |
2516 | my $objname; | |
# | Line 2513 | Line 2521 | sub printModule { | |
2521 | } | |
2522 | } | |
2523 | ||
2524 | + | ############################################################################## |
2525 | + | # Get the object file name |
2526 | + | ############################################################################## |
2527 | sub GetObjFile { | |
2528 | use File::Basename; | |
2529 | my $fullname = shift; | |
# | Line 2521 | Line 2532 | sub GetObjFile { | |
2532 | my $suffix; | |
2533 | ($filename, $dir, $suffix) = fileparse($fullname, '\.[^.]*'); | |
2534 | return $filename . $objExt; | |
2535 | + | } |
2536 | + | |
2537 | + | ############################################################################## |
2538 | + | # Get the base name of fortran 90 module |
2539 | + | ############################################################################## |
2540 | + | sub GetModBasename { |
2541 | + | my $modname = shift; |
2542 | + | |
2543 | + | if ($modBasenameCase eq "lower") { |
2544 | + | $modname = lc($modname); |
2545 | + | |
2546 | + | } elsif ($modBasenameCase eq "upper") { |
2547 | + | $modname = uc($modname); |
2548 | + | } elsif ($modBasenameCase eq "mixed") { |
2549 | + | $modname = ucfirst(lc($modname)); |
2550 | + | } |
2551 | + | |
2552 | + | return $modname; |
2553 | } | |
2554 | + | |
2555 | ############################################################################## | |
2556 | # Main routine | |
2557 | ############################################################################## | |
# | Line 2717 | Line 2747 | while($ARGV[$i]) { | |
2747 | } | |
2748 | UseModule($ARGV[++$i]); | |
2749 | } | |
2750 | < | |
2750 | > | |
2751 | > | #case of basename of fortran module |
2752 | > | elsif($ARGV[$i] eq "-mc") { |
2753 | > | my $tempVar = lc($ARGV[++$i]); |
2754 | > | if ($modBasenameCase ne 'lower' && $modBasenameCase ne 'upper' |
2755 | > | && $modBasenameCase ne 'mixed'){ |
2756 | > | Error("Valid argument for `-om' are lower, upper or mixed"); |
2757 | > | } |
2758 | > | $modBasenameCase = $tempVar; |
2759 | > | } |
2760 | > | |
2761 | > | #the suffix of fortran module |
2762 | > | elsif($ARGV[$i] eq "-ms") { |
2763 | > | $modSuffix = $ARGV[++$i]; |
2764 | > | } |
2765 | > | |
2766 | # set macro prefix | |
2767 | elsif($ARGV[$i] eq "-mp") { | |
2768 | if($i+1 >= $argc) { | |
# | Line 2735 | Line 2780 | while($ARGV[$i]) { | |
2780 | # module files will be built in a separate directory from the sources. | |
2781 | elsif($ARGV[$i] eq "-od") { | |
2782 | $objDir = $ARGV[++$i]; | |
2783 | < | } |
2783 | > | } |
2784 | > | |
2785 | # turn on overwrite mode | |
2786 | elsif($ARGV[$i] eq "-ov") { | |
2787 | $overwrite = 1; |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |