Browse Source

VMS: compensate for command line length limits with a logical name

Sometimes, you might end up with a rather long compile line due to
excessively long /INCLUDE directories.  Compensate for it by making
a temporary logical name with them and using said logical name as
/INCLUDE argument.

A note was added to NOTES.VMS regarding these limitations.

Reviewed-by: Rich Salz <rsalz@openssl.org>
master
Richard Levitte 6 years ago
parent
commit
b54e35f6cd
2 changed files with 28 additions and 8 deletions
  1. +15
    -6
      Configurations/descrip.mms.tmpl
  2. +13
    -2
      NOTES.VMS

+ 15
- 6
Configurations/descrip.mms.tmpl View File

@ -448,12 +448,19 @@ EOF
my $srcs =
join(", ",
map { abs2rel(rel2abs($_), rel2abs($forward)) } @{$args{srcs}});
my $incs =
"/INCLUDE=(".join(",",
map {
file_name_is_absolute($_)
? $_ : catdir($backward,$_)
} @{$args{incs}}).")";
my $incs_on = "\@ !";
my $incs_off = "\@ !";
my $incs = "";
if (@{$args{incs}}) {
$incs_on =
"DEFINE tmp_includes "
.join(",-\n\t\t\t", map {
file_name_is_absolute($_)
? $_ : catdir($backward,$_)
} @{$args{incs}});
$incs_off = "DEASSIGN tmp_includes";
$incs = " /INCLUDE=(tmp_includes:)";
}
my $before = $unified_info{before}->{$obj.".OBJ"} || "\@ !";
my $after = $unified_info{after}->{$obj.".OBJ"} || "\@ !";
my $depbuild = $disabled{makedepend} ? ""
@ -463,7 +470,9 @@ EOF
$obj.OBJ : $deps
${before}
SET DEFAULT $forward
$incs_on
\$(CC) \$(CFLAGS)${incs}${depbuild} /OBJECT=${objd}${objn}.OBJ /REPOSITORY=$backward $srcs
$incs_off
SET DEFAULT $backward
${after}
\@ PIPE ( \$(PERL) -e "use File::Compare qw/compare_text/; my \$x = compare_text(""$obj.MMS"",""$obj.tmp-MMS""); exit(0x10000000 + (\$x == 0));" || -


+ 13
- 2
NOTES.VMS View File

@ -5,8 +5,8 @@
Requirement details
-------------------
In addition to the requirements listed in INSTALL, these are required
as well:
In addition to the requirements and instructions listed in INSTALL,
this are required as well:
* At least ODS-5 disk organization for source and build.
Installation can be done on any existing disk organization.
@ -22,6 +22,17 @@
a different ANSI C compiler may require some work.
About MMS and DCL
-----------------
MMS has certain limitations when it comes to line length, and DCL has
certain limitations when it comes to total command length. We do
what we can to mitigate, but there is the possibility that it's not
enough. Should you run into issues, a very simple solution is to set
yourself up a few logical names for the directory trees you're going
to use.
Checking the distribution
-------------------------


Loading…
Cancel
Save