VMS: rather use a quick file comparison than DIFF
authorRichard Levitte <levitte@openssl.org>
Fri, 19 Feb 2016 01:35:33 +0000 (02:35 +0100)
committerRichard Levitte <levitte@openssl.org>
Fri, 19 Feb 2016 07:58:09 +0000 (08:58 +0100)
VMS DIFF tries to calculate all the differences, which is slower than
just reading the files and stopping at the first difference.  The
latter doesn't exist as a command, so the problem is solved with perl
and File::Compare (has been in core perl since very early version 5).

Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
Configurations/descrip.mms.tmpl

index cdfeb77..dd00fd3 100644 (file)
@@ -260,10 +260,10 @@ descrip.mms : FORCE
                 < descrip.mms > descrip.mms-new
         @ OPEN/APPEND DESCRIP descrip.mms-new
         @ WRITE DESCRIP "# DO NOT DELETE THIS LINE -- make depend depends on it."
-        @ {- join("\n\t", map { "IF F\$SEARCH(\"$_\") .NES. \"\" THEN TYPE $_ /OUTPUT=DESCRIP:" } @deps); -}
+        {- join("\n\t", map { "\@ IF F\$SEARCH(\"$_\") .NES. \"\" THEN TYPE $_ /OUTPUT=DESCRIP:" } @deps); -}
         @ CLOSE DESCRIP
-        @ DIFF/OUTPUT=NLA0: descrip.mms,descrip.mms-new
-        @ IF $SEVERITY .EQ. 3 THEN RENAME descrip.mms-new descrip.mms
+        @ PIPE ( $(PERL) -e "use File::Compare qw/compare_text/; my $x = compare_text(""descrip.mms"",""descrip.mms-new""); exit(0x10000000 + ($x == 0));" || -
+                 RENAME descrip.mms-new descrip.mms )
         @ IF F$SEARCH("descrip.mms-new") .NES. "" THEN DELETE descrip.mms-new;*
         -@ SPAWN/OUTPUT=NLA0: PURGE/NOLOG descrip.mms