1 | #! /usr/bin/env perl
|
---|
2 | # Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved.
|
---|
3 | #
|
---|
4 | # Licensed under the OpenSSL license (the "License"). You may not use
|
---|
5 | # this file except in compliance with the License. You can obtain a copy
|
---|
6 | # in the file LICENSE in the source distribution or at
|
---|
7 | # https://www.openssl.org/source/license.html
|
---|
8 |
|
---|
9 | use strict;
|
---|
10 | use warnings;
|
---|
11 | use lib ".";
|
---|
12 | use configdata;
|
---|
13 | use File::Spec::Functions;
|
---|
14 |
|
---|
15 | my $versionfile = catfile( $config{sourcedir}, "include/openssl/opensslv.h" );
|
---|
16 |
|
---|
17 | my ( $ver, $v1, $v2, $v3, $v4, $beta, $version );
|
---|
18 |
|
---|
19 | open FD, $versionfile or die "Couldn't open include/openssl/opensslv.h: $!\n";
|
---|
20 | while (<FD>) {
|
---|
21 | if (/OPENSSL_VERSION_NUMBER\s+(0x[0-9a-f]+)/i) {
|
---|
22 | $ver = hex($1);
|
---|
23 | $v1 = ( $ver >> 28 );
|
---|
24 | $v2 = ( $ver >> 20 ) & 0xff;
|
---|
25 | $v3 = ( $ver >> 12 ) & 0xff;
|
---|
26 | $v4 = ( $ver >> 4 ) & 0xff;
|
---|
27 | $beta = $ver & 0xf;
|
---|
28 | $version = "$v1.$v2.$v3";
|
---|
29 | if ( $beta == 0xf ) {
|
---|
30 | $version .= chr( ord('a') + $v4 - 1 ) if ($v4);
|
---|
31 | } elsif ( $beta == 0 ) {
|
---|
32 | $version .= "-dev";
|
---|
33 | } else {
|
---|
34 | $version .= "-beta$beta";
|
---|
35 | }
|
---|
36 | last;
|
---|
37 | }
|
---|
38 | }
|
---|
39 | close(FD);
|
---|
40 |
|
---|
41 | my $filename = $ARGV[0];
|
---|
42 | my $description = "OpenSSL library";
|
---|
43 | my $vft = "VFT_DLL";
|
---|
44 | if ( $filename =~ /openssl/i ) {
|
---|
45 | $description = "OpenSSL application";
|
---|
46 | $vft = "VFT_APP";
|
---|
47 | }
|
---|
48 |
|
---|
49 | my $YEAR = [localtime()]->[5] + 1900;
|
---|
50 | print <<___;
|
---|
51 | #include <winver.h>
|
---|
52 |
|
---|
53 | LANGUAGE 0x09,0x01
|
---|
54 |
|
---|
55 | 1 VERSIONINFO
|
---|
56 | FILEVERSION $v1,$v2,$v3,$v4
|
---|
57 | PRODUCTVERSION $v1,$v2,$v3,$v4
|
---|
58 | FILEFLAGSMASK 0x3fL
|
---|
59 | #ifdef _DEBUG
|
---|
60 | FILEFLAGS 0x01L
|
---|
61 | #else
|
---|
62 | FILEFLAGS 0x00L
|
---|
63 | #endif
|
---|
64 | FILEOS VOS__WINDOWS32
|
---|
65 | FILETYPE $vft
|
---|
66 | FILESUBTYPE 0x0L
|
---|
67 | BEGIN
|
---|
68 | BLOCK "StringFileInfo"
|
---|
69 | BEGIN
|
---|
70 | BLOCK "040904b0"
|
---|
71 | BEGIN
|
---|
72 | // Required:
|
---|
73 | VALUE "CompanyName", "The OpenSSL Project, https://www.openssl.org/\\0"
|
---|
74 | VALUE "FileDescription", "$description\\0"
|
---|
75 | VALUE "FileVersion", "$version\\0"
|
---|
76 | VALUE "InternalName", "$filename\\0"
|
---|
77 | VALUE "OriginalFilename", "$filename\\0"
|
---|
78 | VALUE "ProductName", "The OpenSSL Toolkit\\0"
|
---|
79 | VALUE "ProductVersion", "$version\\0"
|
---|
80 | // Optional:
|
---|
81 | //VALUE "Comments", "\\0"
|
---|
82 | VALUE "LegalCopyright", "Copyright 1998-$YEAR The OpenSSL Authors. All rights reserved.\\0"
|
---|
83 | //VALUE "LegalTrademarks", "\\0"
|
---|
84 | //VALUE "PrivateBuild", "\\0"
|
---|
85 | //VALUE "SpecialBuild", "\\0"
|
---|
86 | END
|
---|
87 | END
|
---|
88 | BLOCK "VarFileInfo"
|
---|
89 | BEGIN
|
---|
90 | VALUE "Translation", 0x409, 0x4b0
|
---|
91 | END
|
---|
92 | END
|
---|
93 | ___
|
---|