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