| #!/bin/env perl |
| # |
| open FD,"crypto/opensslv.h"; |
| while(<FD>) { |
| 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 <winver.h> |
| |
| 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-2006 The OpenSSL Project. Copyright © 1995-1998 Eric A. Young, Tim J. Hudson. All rights reserved.\\0" |
| //VALUE "LegalTrademarks", "\\0" |
| //VALUE "PrivateBuild", "\\0" |
| //VALUE "SpecialBuild", "\\0" |
| END |
| END |
| BLOCK "VarFileInfo" |
| BEGIN |
| VALUE "Translation", 0x409, 0x4b0 |
| END |
| END |
| ___ |