1#!/bin/env perl
2#
3open FD,"crypto/opensslv.h";
4while(<FD>) {
5    if (/OPENSSL_VERSION_NUMBER\s+(0x[0-9a-f]+)/i) {
6	$ver = hex($1);
7	$v1 = ($ver>>28);
8	$v2 = ($ver>>20)&0xff;
9	$v3 = ($ver>>12)&0xff;
10	$v4 = ($ver>> 4)&0xff;
11	$beta = $ver&0xf;
12	$version = "$v1.$v2.$v3";
13	if ($beta==0xf)	{ $version .= chr(ord('a')+$v4-1) if ($v4);	}
14	elsif ($beta==0){ $version .= "-dev";				}
15	else		{ $version .= "-beta$beta";			}
16	last;
17    }
18}
19close(FD);
20
21$filename = $ARGV[0]; $filename =~ /(.*)\.([^.]+)$/;
22$basename = $1;
23$extname  = $2;
24
25if ($extname =~ /dll/i)	{ $description = "OpenSSL shared library"; }
26else			{ $description = "OpenSSL application";    }
27
28print <<___;
29#include <winver.h>
30
31LANGUAGE 0x09,0x01
32
331 VERSIONINFO
34  FILEVERSION $v1,$v2,$v3,$v4
35  PRODUCTVERSION $v1,$v2,$v3,$v4
36  FILEFLAGSMASK 0x3fL
37#ifdef _DEBUG
38  FILEFLAGS 0x01L
39#else
40  FILEFLAGS 0x00L
41#endif
42  FILEOS VOS__WINDOWS32
43  FILETYPE VFT_DLL
44  FILESUBTYPE 0x0L
45BEGIN
46    BLOCK "StringFileInfo"
47    BEGIN
48        BLOCK "040904b0"
49        BEGIN
50            // Required:
51            VALUE "CompanyName", "The OpenSSL Project, http://www.openssl.org/\\0"
52            VALUE "FileDescription", "$description\\0"
53            VALUE "FileVersion", "$version\\0"
54            VALUE "InternalName", "$basename\\0"
55            VALUE "OriginalFilename", "$filename\\0"
56            VALUE "ProductName", "The OpenSSL Toolkit\\0"
57            VALUE "ProductVersion", "$version\\0"
58            // Optional:
59            //VALUE "Comments", "\\0"
60            VALUE "LegalCopyright", "Copyright © 1998-2006 The OpenSSL Project. Copyright © 1995-1998 Eric A. Young, Tim J. Hudson. All rights reserved.\\0"
61            //VALUE "LegalTrademarks", "\\0"
62            //VALUE "PrivateBuild", "\\0"
63            //VALUE "SpecialBuild", "\\0"
64        END
65    END
66    BLOCK "VarFileInfo"
67    BEGIN
68        VALUE "Translation", 0x409, 0x4b0
69    END
70END
71___
72