Previously, sha-x86_64.pl (was sha512-x86_64.pl) was used to generate
both sha256-x86_64.S and sha512-x86_64.S. This required special build
logic in ring.mk and also would have required special logic in the
msbuild project files. This commit adds dedicated perlasm source files
for both, and there's now a 1-to-1 correspondence between perlasm
scripts and output files, which avoids any need for special-case logic
in the build system.
The same goes for sha-armv8.pl (was sha512-armv8.pl).
This commit prepares for the addition of dedicated
sha256-{x86_64,armv8}.pl and sha512-{x86_64,armv8}.pl scripts, in order
to create a 1-to-1 mapping of source .pl scripts to generated
.S assembly language files. This is a separate commit so that git tools
recognize the renames correctly.
Much of the repetitive logic was put into mk/Common.props,
mk/Windows.props, and mk/WindowsTest.props. There is still a lot of
repetitive logic in the test project files that should be moved to
WindowsTest.props in the future. (In fact, it would be better if the
build system were modified in the future to work like CMake does,
(re-)generating the necessary project files during the build.)
Regular (OPENSSL_NO_ASM) mode will come in a later commit.
I've marked the Visual Studio files as eol=crlf in .gitattributes for
now. This should be the least painful option, since it any CRLF
conversion would create problems for for people sharing a source tree
across platforms (e.g. a shared folder in a VM), and because Visual
Studio IDE resets the files back to CR/LF line endings whenever a
change to project or solution settings is made using its GUI. There is
no license comment in these files because Visual Studio strips comments
when changes are made using the GUI.
Travis CI doesn't have a new enough version of CMake readily available,
and I've been wanting to replace the CMake-based build system for other
reasons. This kills the Windows support, but I'm intending to add a
native msbuild build system for Windows soon. Also, this builds in
OPENSSL_NO_ASM mode for now.