#! /usr/bin/env perl # Copyright 2006-2016 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 use lib "."; use configdata; use File::Spec::Functions; my $versionfile = catfile($config{sourcedir},"include/openssl/opensslv.h"); open FD, $versionfile or die "Couldn't open include/openssl/opensslv.h: $!\n"; while() { if (/OPENSSL_VERSION_NUMBER\s+(0x[0-9a-f]+)/i) { $ver = hex($1); $v1 = ($ver>>28); $v2 = ($ver>>20)&0xff; $v3 = ($ver>>12)&0xff; $v4 = ($ver>> 4)&0xff; $beta = $ver&0xf; $version = "$v1.$v2.$v3"; if ($beta==0xf) { $version .= chr(ord('a')+$v4-1) if ($v4); } elsif ($beta==0){ $version .= "-dev"; } else { $version .= "-beta$beta"; } last; } } close(FD); $filename = $ARGV[0]; $filename =~ /(.*)\.([^.]+)$/; $basename = $1; $extname = $2; if ($extname =~ /dll/i) { $description = "OpenSSL shared library"; } else { $description = "OpenSSL application"; } print <<___; #include LANGUAGE 0x09,0x01 1 VERSIONINFO FILEVERSION $v1,$v2,$v3,$v4 PRODUCTVERSION $v1,$v2,$v3,$v4 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x01L #else FILEFLAGS 0x00L #endif FILEOS VOS__WINDOWS32 FILETYPE VFT_DLL FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904b0" BEGIN // Required: VALUE "CompanyName", "The OpenSSL Project, http://www.openssl.org/\\0" VALUE "FileDescription", "$description\\0" VALUE "FileVersion", "$version\\0" VALUE "InternalName", "$basename\\0" VALUE "OriginalFilename", "$filename\\0" VALUE "ProductName", "The OpenSSL Toolkit\\0" VALUE "ProductVersion", "$version\\0" // Optional: //VALUE "Comments", "\\0" VALUE "LegalCopyright", "Copyright 1998-2016 The OpenSSL Authors. All rights reserved.\\0" //VALUE "LegalTrademarks", "\\0" //VALUE "PrivateBuild", "\\0" //VALUE "SpecialBuild", "\\0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 0x4b0 END END ___