411 Commits

Author SHA1 Message Date
Brian Smith
375e02bc73 Generate static library on non-Windows platforms too. 2015-08-26 21:18:22 -07:00
Brian Smith
5007fb3af0 Revert some MSVC 2015 compat changes; disable some warnings in MSVC 2015.
The change to add explicitly-deleted constructors and assignemnt
operators in aead_test.cc and digest_test.cc broke GCC 4.8 builds.
Those changes were made to prevent MSVC from issuing these warnings:

  * C4623: default constructor was implicitly defined as deleted
           because a base class default constructor is inaccessible or
	   deleted.
  * C4626: assignment operator was implicitly defined as deleted
           because a base class assignment operator is inaccessible or
	   deleted.
  * C5027: move assignment operator was implicitly defined as deleted
           because a base class move assignment operator is inaccessible
	   or deleted.

All of these warnigns are just "Warning: we didn't do something
impossible in violation of the C++ language semantics" so they are safe
to disable. Even without considering the GCC 4.8 breakage, this is a
better fix.
2015-08-26 21:18:21 -07:00
Brian Smith
3685ef6d97 Improve Visual Studio 2015 Compatibility.
* Silence some warnings about things that MSVC 2015 warns about that
  MSVC 2013 didn't.

* Change the solution so that it opens in Visual Studio 2015 if Visual
  Studio 2015 is installed.

* Change ToolsVersion to 14.0 in the project files so that Visual
  Studio 2015 does not put a warning in the build log about the version
  being 12.0. This means that Visual Studio 2013 will have a warning,
  but the warning is harmless, and if we have to choose, it's better
  for VS 2013 to warn than VS 2015 to warn, in the long term. See
  https://github.com/Microsoft/msbuild/issues/52#issuecomment-88674094.

* Build with the VS 2013 XP-compatible toolchain if using Visual Studio
  2013 (including its msbuild); Otherwise build with the Visual Studio
  2015 XP-compatible toolchain. See
  https://social.msdn.microsoft.com/Forums/vstudio/en-US/ \
    d06c3741-c637-4627-9b1a-1e068803a067/ \
    setting-platformtoolset-value-based-on-vs-version.
2015-08-26 21:18:21 -07:00
Brian Smith
fd669003ff Remove BER support. 2015-08-26 21:18:20 -07:00
Brian Smith
72e2935ff2 Create a 1-to-1 mapping of perlasm scripts to outputs.
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).
2015-08-26 21:18:20 -07:00
Brian Smith
1dd9cd171c Rename sha512-{x86_64,armv8}.pl to sha-{x86_64,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.
2015-08-26 21:18:19 -07:00
Brian Smith
e78f56048f Add Visual Studio solution, OPENSSL_NO_ASM only for now.
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.
2015-08-26 21:18:19 -07:00
Brian Smith
f14ed7cf27 Work around problem retrieving the clang 3.7 package in Travis CI. 2015-08-26 21:18:18 -07:00
Brian Smith
e6059c0ace Build assembly language code. 2015-08-26 21:18:17 -07:00
Brian Smith
d484b6680e Add ARCH variable to build system. 2015-08-26 21:18:17 -07:00
Brian Smith
13baebc3b5 Replace CMake with GNU Make and add Travis CI integration.
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.
2015-08-26 21:18:16 -07:00