|
65 | 65 | my $exclude_list; |
66 | 66 |
|
67 | 67 | # Minimum versions |
68 | | -my $ompi_automake_version = "1.13.4"; |
69 | | -my $ompi_autoconf_version = "2.69"; |
70 | | -my $ompi_libtool_version = "2.4.2"; |
| 68 | +my $ompi_automake_version; |
| 69 | +my $ompi_autoconf_version; |
| 70 | +my $ompi_libtool_version; |
71 | 71 |
|
72 | 72 | # Search paths |
73 | 73 | my $ompi_autoconf_search = "autoconf"; |
@@ -1081,6 +1081,60 @@ sub patch_autotools_output { |
1081 | 1081 | unlink("configure.patched"); |
1082 | 1082 | } |
1083 | 1083 |
|
| 1084 | +sub export_version { |
| 1085 | + my ($name,$version) = @_; |
| 1086 | + $version =~ s/[^a-zA-Z0-9,.]//g; |
| 1087 | + my @version_splits = split(/\./,$version); |
| 1088 | + my $hex = sprintf("0x%04x%02x%02x", $version_splits[0], $version_splits[1], $version_splits[2]); |
| 1089 | + $m4 .= "m4_define([OMPI_${name}_MIN_VERSION], [$version])\n"; |
| 1090 | + $m4 .= "m4_define([OMPI_${name}_NUMERIC_MIN_VERSION], [$hex])\n"; |
| 1091 | +} |
| 1092 | + |
| 1093 | +sub get_and_define_min_versions() { |
| 1094 | + |
| 1095 | + open(IN, "VERSION") || my_die "Can't open VERSION"; |
| 1096 | + while (<IN>) { |
| 1097 | + my $line = $_; |
| 1098 | + my @fields = split(/=/,$line); |
| 1099 | + if ($fields[0] eq "automake_min_version") { |
| 1100 | + if ($fields[1] ne "\n") { |
| 1101 | + $ompi_automake_version = $fields[1]; |
| 1102 | + } |
| 1103 | + } |
| 1104 | + elsif($fields[0] eq "autoconf_min_version") { |
| 1105 | + if ($fields[1] ne "\n") { |
| 1106 | + $ompi_autoconf_version = $fields[1]; |
| 1107 | + } |
| 1108 | + } |
| 1109 | + elsif($fields[0] eq "libtool_min_version") { |
| 1110 | + if ($fields[1] ne "\n") { |
| 1111 | + $ompi_libtool_version = $fields[1]; |
| 1112 | + } |
| 1113 | + } |
| 1114 | + elsif($fields[0] eq "pmix_min_version") { |
| 1115 | + if ($fields[1] ne "\n") { |
| 1116 | + export_version("PMIX", $fields[1]); |
| 1117 | + } |
| 1118 | + } |
| 1119 | + elsif($fields[0] eq "prte_min_version") { |
| 1120 | + if ($fields[1] ne "\n") { |
| 1121 | + export_version("PRTE", $fields[1]); |
| 1122 | + } |
| 1123 | + } |
| 1124 | + elsif($fields[0] eq "hwloc_min_version") { |
| 1125 | + if ($fields[1] ne "\n") { |
| 1126 | + export_version("HWLOC", $fields[1]); |
| 1127 | + } |
| 1128 | + } |
| 1129 | + elsif($fields[0] eq "event_min_version") { |
| 1130 | + if ($fields[1] ne "\n") { |
| 1131 | + export_version("EVENT", $fields[1]); |
| 1132 | + } |
| 1133 | + } |
| 1134 | + } |
| 1135 | + close(IN); |
| 1136 | +} |
| 1137 | + |
1084 | 1138 | sub in_tarball { |
1085 | 1139 | my $tarball = 0; |
1086 | 1140 | open(IN, "VERSION") || my_die "Can't open VERSION"; |
@@ -1311,6 +1365,8 @@ sub replace_config_sub_guess { |
1311 | 1365 |
|
1312 | 1366 | $step. Checking tool versions\n\n"; |
1313 | 1367 |
|
| 1368 | +get_and_define_min_versions(); |
| 1369 | + |
1314 | 1370 | # Check the autotools revision levels |
1315 | 1371 | &find_and_check("autoconf", $ompi_autoconf_search, $ompi_autoconf_version); |
1316 | 1372 | &find_and_check("libtool", $ompi_libtoolize_search, $ompi_libtool_version); |
|
0 commit comments