util/fipslink.pl: allow for single-step link.
[openssl.git] / util / fipsas.pl
index 49cf564e5ce70e3d2d9202b0931ec0edd6bd7fdb..1694c59a411fc52582574f262c2e902c3606d241 100644 (file)
@@ -8,6 +8,9 @@ my @ARGS = @ARGV;
 
 my $top = shift @ARGS;
 my $target = shift @ARGS;
+my $tmptarg = $target;
+
+$tmptarg =~ s/\.[^\\\/\.]+$/.tmp/;
 
 my $runasm = 1;
 
@@ -17,12 +20,9 @@ if ($ARGS[0] eq "norunasm")
        shift @ARGS;
        }
 
-# HACK to disable operation if no OPENSSL_FIPSSYMS option.
-# will go away when tested more fully.
-
 my $enabled = 0;
 
-foreach (@ARGS) { $enabled = 1 if /-DOPENSSL_FIPSSYMS/ ; }
+$enabled = 1 if $ENV{FIPSCANISTERINTERNAL} eq "y";
 
 if ($enabled == 0 && $runasm)
        {
@@ -51,12 +51,16 @@ while (<IN>)
 
 my ($from, $to);
 
+#delete any temp file lying around
+
+unlink $tmptarg;
+
 #rename target temporarily
-rename($target, "tmptarg.s") || die "Can't rename $target\n";
+rename($target, $tmptarg) || die "Can't rename $target";
 
 #edit target
-open IN,"tmptarg.s";
-open OUT, ">$target";
+open(IN,$tmptarg) || die "Can't open temporary file";
+open(OUT, ">$target") || die "Can't open output file $target";
 
 while (<IN>)
 {
@@ -78,16 +82,12 @@ if ($runasm)
 
        # restore target
        unlink $target;
-       rename "tmptarg.s", $target;
+       rename $tmptarg, $target;
 
        die "Error executing assembler!" if $rv != 0;
        }
 else
        {
        # Don't care about target
-       unlink "tmptarg.s";
+       unlink $tmptarg;
        }
-
-
-
-