xref: /freebsd/crypto/openssl/util/mkrc.pl (revision e0c4386e7e71d93b0edc0c8fa156263fc4a8b0b6)
1*e0c4386eSCy Schubert#! /usr/bin/env perl
2*e0c4386eSCy Schubert# Copyright 2006-2020 The OpenSSL Project Authors. All Rights Reserved.
3*e0c4386eSCy Schubert#
4*e0c4386eSCy Schubert# Licensed under the Apache License 2.0 (the "License").  You may not use
5*e0c4386eSCy Schubert# this file except in compliance with the License.  You can obtain a copy
6*e0c4386eSCy Schubert# in the file LICENSE in the source distribution or at
7*e0c4386eSCy Schubert# https://www.openssl.org/source/license.html
8*e0c4386eSCy Schubert
9*e0c4386eSCy Schubertuse strict;
10*e0c4386eSCy Schubertuse warnings;
11*e0c4386eSCy Schubertuse lib ".";
12*e0c4386eSCy Schubertuse configdata;
13*e0c4386eSCy Schubert
14*e0c4386eSCy Schubertmy $cversion = "$config{version}";
15*e0c4386eSCy Schubertmy $version = "$config{full_version}";
16*e0c4386eSCy Schubert
17*e0c4386eSCy Schubert# RC syntax for versions uses commas as separators, rather than period,
18*e0c4386eSCy Schubert# and it must have exactly 4 numbers (16-bit integers).
19*e0c4386eSCy Schubertmy @vernums = ( split(/\./, $cversion), 0, 0, 0, 0 );
20*e0c4386eSCy Schubert$cversion = join(',', @vernums[0..3]);
21*e0c4386eSCy Schubert
22*e0c4386eSCy Schubertmy $filename = $ARGV[0];
23*e0c4386eSCy Schubertmy $description = "OpenSSL library";
24*e0c4386eSCy Schubertmy $vft = "VFT_DLL";
25*e0c4386eSCy Schubertif ( $filename =~ /openssl/i ) {
26*e0c4386eSCy Schubert    $description = "OpenSSL application";
27*e0c4386eSCy Schubert    $vft = "VFT_APP";
28*e0c4386eSCy Schubert}
29*e0c4386eSCy Schubert
30*e0c4386eSCy Schubertmy $YEAR = [gmtime($ENV{SOURCE_DATE_EPOCH} || time())]->[5] + 1900;
31*e0c4386eSCy Schubertprint <<___;
32*e0c4386eSCy Schubert#include <winver.h>
33*e0c4386eSCy Schubert
34*e0c4386eSCy SchubertLANGUAGE 0x09,0x01
35*e0c4386eSCy Schubert
36*e0c4386eSCy Schubert1 VERSIONINFO
37*e0c4386eSCy Schubert  FILEVERSION $cversion
38*e0c4386eSCy Schubert  PRODUCTVERSION $cversion
39*e0c4386eSCy Schubert  FILEFLAGSMASK 0x3fL
40*e0c4386eSCy Schubert#ifdef _DEBUG
41*e0c4386eSCy Schubert  FILEFLAGS 0x01L
42*e0c4386eSCy Schubert#else
43*e0c4386eSCy Schubert  FILEFLAGS 0x00L
44*e0c4386eSCy Schubert#endif
45*e0c4386eSCy Schubert  FILEOS VOS__WINDOWS32
46*e0c4386eSCy Schubert  FILETYPE $vft
47*e0c4386eSCy Schubert  FILESUBTYPE 0x0L
48*e0c4386eSCy SchubertBEGIN
49*e0c4386eSCy Schubert    BLOCK "StringFileInfo"
50*e0c4386eSCy Schubert    BEGIN
51*e0c4386eSCy Schubert        BLOCK "040904b0"
52*e0c4386eSCy Schubert        BEGIN
53*e0c4386eSCy Schubert            // Required:
54*e0c4386eSCy Schubert            VALUE "CompanyName", "The OpenSSL Project, https://www.openssl.org/\\0"
55*e0c4386eSCy Schubert            VALUE "FileDescription", "$description\\0"
56*e0c4386eSCy Schubert            VALUE "FileVersion", "$version\\0"
57*e0c4386eSCy Schubert            VALUE "InternalName", "$filename\\0"
58*e0c4386eSCy Schubert            VALUE "OriginalFilename", "$filename\\0"
59*e0c4386eSCy Schubert            VALUE "ProductName", "The OpenSSL Toolkit\\0"
60*e0c4386eSCy Schubert            VALUE "ProductVersion", "$version\\0"
61*e0c4386eSCy Schubert            // Optional:
62*e0c4386eSCy Schubert            //VALUE "Comments", "\\0"
63*e0c4386eSCy Schubert            VALUE "LegalCopyright", "Copyright 1998-$YEAR The OpenSSL Authors. All rights reserved.\\0"
64*e0c4386eSCy Schubert            //VALUE "LegalTrademarks", "\\0"
65*e0c4386eSCy Schubert            //VALUE "PrivateBuild", "\\0"
66*e0c4386eSCy Schubert            //VALUE "SpecialBuild", "\\0"
67*e0c4386eSCy Schubert        END
68*e0c4386eSCy Schubert    END
69*e0c4386eSCy Schubert    BLOCK "VarFileInfo"
70*e0c4386eSCy Schubert    BEGIN
71*e0c4386eSCy Schubert        VALUE "Translation", 0x409, 0x4b0
72*e0c4386eSCy Schubert    END
73*e0c4386eSCy SchubertEND
74*e0c4386eSCy Schubert___
75