Configure: make --strict-warnings a regular user provided compiler option
[openssl.git] / crypto / objects / obj_dat.pl
index 947cceed1db641e85d2966a1a2b1658e7059a2a9..24f09b49e5e64a83579a95ae7a560521df70c4e4 100644 (file)
@@ -1,7 +1,7 @@
 #! /usr/bin/env perl
-# Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
+# Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
 #
-# Licensed under the OpenSSL license (the "License").  You may not use
+# Licensed under the Apache License 2.0 (the "License").  You may not use
 # this file except in compliance with the License.  You can obtain a copy
 # in the file LICENSE in the source distribution or at
 # https://www.openssl.org/source/license.html
@@ -36,6 +36,10 @@ sub der_it
     return $ret;
 }
 
+# Output year depends on the year of the script and the input file.
+my $YEAR = [localtime([stat($0)]->[9])]->[5] + 1900;
+my $iYEAR = [localtime([stat($ARGV[0])]->[9])]->[5] + 1900;
+$YEAR = $iYEAR if $iYEAR > $YEAR;
 
 # Read input, parse all #define's into OID name and value.
 # Populate %ln and %sn with long and short names (%dupln and %dupsn)
@@ -148,14 +152,13 @@ for (my $i = 0; $i < $n; $i++) {
 }
 
 # Finally ready to generate the output.
-open(OUT, ">$ARGV[1]") || die "Can't open output file $ARGV[1], $!";
-print OUT <<'EOF';
+print <<"EOF";
 /*
  * WARNING: do not edit!
  * Generated by crypto/objects/obj_dat.pl
  *
- * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
- * Licensed under the OpenSSL license (the "License").  You may not use
+ * Copyright 1995-$YEAR The OpenSSL Project Authors. All Rights Reserved.
+ * Licensed under the Apache License 2.0 (the "License").  You may not use
  * this file except in compliance with the License.  You can obtain a copy
  * in the file LICENSE in the source distribution or at
  * https://www.openssl.org/source/license.html
@@ -163,44 +166,44 @@ print OUT <<'EOF';
 
 EOF
 
-print OUT "/* Serialized OID's */\n";
-printf OUT "static const unsigned char so[%d] = {\n", $lvalues + 1;
-print OUT @lvalues;
-print OUT "};\n\n";
+print "/* Serialized OID's */\n";
+printf "static const unsigned char so[%d] = {\n", $lvalues + 1;
+print @lvalues;
+print "};\n\n";
 
-printf OUT "#define NUM_NID %d\n", $n;
-printf OUT "static const ASN1_OBJECT nid_objs[NUM_NID] = {\n";
-print OUT @out;
-print  OUT "};\n\n";
+printf "#define NUM_NID %d\n", $n;
+printf "static const ASN1_OBJECT nid_objs[NUM_NID] = {\n";
+print @out;
+print  "};\n\n";
 
 {
     no warnings "uninitialized";
     @a = grep(defined $sn{$nid{$_}}, 0 .. $n);
 }
-printf OUT "#define NUM_SN %d\n", $#a + 1;
-printf OUT "static const unsigned int sn_objs[NUM_SN] = {\n";
+printf "#define NUM_SN %d\n", $#a + 1;
+printf "static const unsigned int sn_objs[NUM_SN] = {\n";
 foreach (sort { $sn{$nid{$a}} cmp $sn{$nid{$b}} } @a) {
-    printf OUT "    %4d,    /* \"$sn{$nid{$_}}\" */\n", $_;
+    printf "    %4d,    /* \"$sn{$nid{$_}}\" */\n", $_;
 }
-print  OUT "};\n\n";
+print  "};\n\n";
 
 {
     no warnings "uninitialized";
     @a = grep(defined $ln{$nid{$_}}, 0 .. $n);
 }
-printf OUT "#define NUM_LN %d\n", $#a + 1;
-printf OUT "static const unsigned int ln_objs[NUM_LN] = {\n";
+printf "#define NUM_LN %d\n", $#a + 1;
+printf "static const unsigned int ln_objs[NUM_LN] = {\n";
 foreach (sort { $ln{$nid{$a}} cmp $ln{$nid{$b}} } @a) {
-    printf OUT "    %4d,    /* \"$ln{$nid{$_}}\" */\n", $_;
+    printf "    %4d,    /* \"$ln{$nid{$_}}\" */\n", $_;
 }
-print  OUT "};\n\n";
+print  "};\n\n";
 
 {
     no warnings "uninitialized";
     @a = grep(defined $obj{$nid{$_}}, 0 .. $n);
 }
-printf OUT "#define NUM_OBJ %d\n", $#a + 1;
-printf OUT "static const unsigned int obj_objs[NUM_OBJ] = {\n";
+printf "#define NUM_OBJ %d\n", $#a + 1;
+printf "static const unsigned int obj_objs[NUM_OBJ] = {\n";
 
 # Compare DER; prefer shorter; if some length, use the "smaller" encoding.
 sub obj_cmp
@@ -220,8 +223,6 @@ foreach (sort obj_cmp @a) {
     my $v = $objd{$m};
     $v =~ s/L//g;
     $v =~ s/,/ /g;
-    printf OUT "    %4d,    /* %-32s %s */\n", $_, $m, $v;
+    printf "    %4d,    /* %-32s %s */\n", $_, $m, $v;
 }
-print  OUT "};\n";
-
-close OUT;
+print  "};\n";