X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=util%2Fmkerr.pl;h=7d0797859fc997b12ed4ace583f2fd38e8b42d8b;hp=fd5e774e74b669102fda0e1fb0ef40220d9974e2;hb=8162f6f58aa784e242941d1168fb8fc0618cf0a2;hpb=e0a651945cb5a70a2abd9902c0fd3e9759d35867 diff --git a/util/mkerr.pl b/util/mkerr.pl index fd5e774e74..7d0797859f 100644 --- a/util/mkerr.pl +++ b/util/mkerr.pl @@ -7,7 +7,6 @@ # https://www.openssl.org/source/license.html my $config = "crypto/err/openssl.ec"; -my $hprefix = "openssl/"; my $debug = 0; my $unref = 0; my $rebuild = 0; @@ -16,6 +15,8 @@ my $recurse = 0; my $reindex = 0; my $dowrite = 0; my $staticloader = ""; +my @t = localtime(); +my $YEAR = @t[5] + 1900; my $pack_errcode; my $load_errcode; @@ -68,6 +69,8 @@ Options: -hprefix P Prepend the filenames in generated #include
statements with prefix P. Default: 'openssl/' (without the quotes, naturally) + NOTE: not used any more because our include directory + structure has changed. -debug Turn on debugging verbose output on stderr. @@ -171,8 +174,8 @@ close IN; while (($hdr, $lib) = each %libinc) { next if($hdr eq "NONE"); - print STDERR "Scanning header file $hdr\n" if $debug; - my $line = "", $def= "", $linenr = 0, $gotfile = 0; + print STDERR "Scanning header file $hdr\n" if $debug; + my $line = "", $def= "", $linenr = 0, $gotfile = 0, $cpp = 0; if (open(IN, "<$hdr")) { $gotfile = 1; while() { @@ -407,17 +410,24 @@ foreach $lib (keys %csrc) # Rewrite the header file + $cpp = 0; + $cplusplus = 0; if (open(IN, "<$hfile")) { # Copy across the old file while() { + $cplusplus = $cpp if /^#.*ifdef.*cplusplus/; + $cpp++ if /^#\s*if/; + $cpp-- if /^#\s*endif/; push @out, $_; last if (/BEGIN ERROR CODES/); } close IN; } else { + $cpp = 1; + $cplusplus = 1; push @out, "/*\n", -" * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.\n", +" * Copyright 1995-$YEAR The OpenSSL Project Authors. All Rights Reserved.\n", " *\n", " * Licensed under the OpenSSL license (the \"License\"). You may not use\n", " * this file except in compliance with the License. You can obtain a copy\n", @@ -426,11 +436,11 @@ foreach $lib (keys %csrc) " */\n", "\n", "#ifndef HEADER_${lib}_ERR_H\n", -"#define HEADER_${lib}_ERR_H\n", +"# define HEADER_${lib}_ERR_H\n", "\n", -"#ifdef __cplusplus\n", +"# ifdef __cplusplus\n", "extern \"C\" {\n", -"#endif\n", +"# endif\n", "\n", "/* BEGIN ERROR CODES */\n"; } @@ -443,6 +453,7 @@ foreach $lib (keys %csrc) * The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */ + EOF if($static) { print OUT <<"EOF"; @@ -503,11 +514,17 @@ EOF } print OUT <<"EOF"; -#ifdef __cplusplus -} -#endif -#endif EOF + do { + if ($cplusplus == $cpp) { + print OUT "#", " "x$cpp, "ifdef __cplusplus\n"; + print OUT "}\n"; + print OUT "#", " "x$cpp, "endif\n"; + } + if ($cpp-- > 0) { + print OUT "#", " "x$cpp, "endif\n"; + } + } while ($cpp); close OUT; # Rewrite the C source file containing the error details. @@ -539,8 +556,13 @@ EOF my $hincf; if($static) { - $hfile =~ /([^\/]+)$/; - $hincf = "<${hprefix}$1>"; + $hincf = $hfile; + $hincf =~ s|.*include/||; + if ($hincf =~ m|^openssl/|) { + $hincf = "<${hincf}>"; + } else { + $hincf = "\"${hincf}\""; + } } else { $hincf = "\"$hfile\""; } @@ -564,18 +586,13 @@ EOF print OUT <<"EOF"; /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Generated by util/mkerr.pl DO NOT EDIT + * Copyright 1995-$YEAR The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (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 -*/ - -/* - * NOTE: this file was auto generated by the mkerr.pl script: any changes - * made to it will be overwritten when the script next updates this file, - * only reason strings will be preserved. */ #include @@ -599,7 +616,7 @@ EOF $fn = $ftrans{$fn}; } # print OUT "{ERR_PACK($pack_errcode,$i,0),\t\"$fn\"},\n"; - if(length($i) + length($fn) > 58) { + if(length($i) + length($fn) > 57) { print OUT " {ERR_FUNC($i),\n \"$fn\"},\n"; } else { print OUT " {ERR_FUNC($i), \"$fn\"},\n"; @@ -622,7 +639,7 @@ EOF $rn = $1; $rn =~ tr/_[A-Z]/ [a-z]/; } - if(length($i) + length($rn) > 56) { + if(length($i) + length($rn) > 55) { print OUT " {${rstr},\n \"$rn\"},\n"; } else { print OUT " {${rstr}, \"$rn\"},\n";