summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2016-03-23 19:27:08 +0100
committerRichard Levitte <levitte@openssl.org>2016-03-23 19:58:12 +0100
commitb54e35f6cd9a9de3962daa0112e33bd178c49f6d (patch)
treed40a4132774806924ef8ffbd6b20271329f6caea
parent921de151d2052c794cf6ad82fe76da92717577f7 (diff)
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>
-rw-r--r--Configurations/descrip.mms.tmpl21
-rw-r--r--NOTES.VMS15
2 files changed, 28 insertions, 8 deletions
diff --git a/Configurations/descrip.mms.tmpl b/Configurations/descrip.mms.tmpl
index 32c8d1a3ac..b2ae059468 100644
--- a/Configurations/descrip.mms.tmpl
+++ b/Configurations/descrip.mms.tmpl
@@ -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));" || -
diff --git a/NOTES.VMS b/NOTES.VMS
index 2c7b80b58f..034ecf4c6b 100644
--- a/NOTES.VMS
+++ b/NOTES.VMS
@@ -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
-------------------------