summaryrefslogtreecommitdiffstats
path: root/Configure
AgeCommit message (Collapse)Author
2015-08-02Add -Wconditional-uninitialized to clang strict warnings.Ben Laurie
Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-08-02Build with --strict-warnings on FreeBSD.Ben Laurie
Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-05-22Remove support for OPENSSL_NO_TLSEXTMatt Caswell
Given the pervasive nature of TLS extensions it is inadvisable to run OpenSSL without support for them. It also means that maintaining the OPENSSL_NO_TLSEXT option within the code is very invasive (and probably not well tested). Therefore it is being removed. Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-05-13Remove remaining Kerberos referencesMatt Caswell
Following on from the removal of libcrypto and libssl support for Kerberos this commit removes all remaining references to Kerberos. Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-05-01Fix build on MacOS.Ben Laurie
Reviewed-by: Andy Polyakov
2015-04-21Engage ec/asm/ecp_nistz256-sparcv9 module.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-04-20Configure: Engage ecp_nistz256-armv8 module.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-04-20Configure: engage ARMv8 Montgomery multiplication module.Andy Polyakov
Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-04-17Use -Wall -Wextra with clangEmilia Kasper
The disabled set of -Weverything is hard to maintain across versions. Use -Wall -Wextra but also document other useful warnings that currently trigger. Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-04-15Add -Wtype-limits to strict warnings.Dr. Stephen Henson
Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-04-04Appease clang -Wgnu-statement-expressionRichard Levitte
We use GNU statement expressions in crypto/md32_common.h, surrounded by checks that GNU C is indeed used to compile. It seems that clang, at least on Linux, pretends to be GNU C, therefore finds the statement expressions and then warns about them. The solution is to have clang be quiet about it. Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-03-31Stop symlinking, move files to intended directoryRichard Levitte
Rather than making include/openssl/foo.h a symlink to crypto/foo/foo.h, this change moves the file to include/openssl/foo.h once and for all. Likewise, move crypto/foo/footest.c to test/footest.c, instead of symlinking it there. Originally-by: Geoff Thorpe <geoff@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-03-28Engage vpaes-armv8 module.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-28Configure: remove unused variables.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-23Add -DDEBUG_UNUSED to --strict-warningsMatt Caswell
In order to receive warnings on unused function return values the flag -DDEBUG_UNUSED must be passed to the compiler. This change adds that for the --strict-warnings Configure option. Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-22Refer to $table{$target} rather than $table{$t}.Richard Levitte
Using $t is an artifact from the earlier changes in Configure and was unfortunately forgotten as is. Reviewed-by: Stephen Henson <steve@openssl.org>
2015-03-19If the target is an old style debug- target, it will not have debugging ↵Richard Levitte
[cl]flags Reviewed-by: Stephen Henson <steve@openssl.org>
2015-03-18Configure: fold related configurations more aggressively and clean-up.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-17Correct the request of debug buildsRichard Levitte
./config would translate -d into having the target get a 'debug-' prefix, and then run './Configure LIST' to find out if such a debugging target exists or not. With the recent changes, the separate 'debug-foo' targets are disappearing, and we're giving the normal targets debugging capabilities instead. Unfortunately, './config' wasn't changed to match this new behavior. This change introduces the arguments '--debug' and '--release' - the latter just for orthogonality - to ./Configure, and ./config now treats -d by adding '--debug' to the options for ./Configure. Reviewed-by: Matt Caswell <matt@openssl.org>
2015-03-16Change all the main configurations to the new format.Richard Levitte
As part of this, remove some levitte examples that never were relevant. Reviewed-by: Andy Polyakov <appro@openssl.org>
2015-03-16Rethink templates.Richard Levitte
Because base templates express inheritance of values, the attribute is renamed to 'inherit_from', and texts about this talk about 'inheritance(s)' rather than base templates. As they were previously implemented, base templates that were listed together would override one another, the first one acting as defaults for the next and so on. However, it was pointed out that a strength of inheritance would be to base configurations on several templates - for example one for CPU, one for operating system and one for compiler - and that requires a different way of combining those templates. With this change, inherited values from several inheritances are concatenated by default (keep on reading). Also, in-string templates with the double-curly syntax are removed, replaced with the possibility to have a configuration value be a coderef (i.e. a 'sub { /* your code goes here */ }') that gets the list of values from all inheritances as the list @_. The result of executing such a coderef on a list of values is assumed to become a string. ANY OTHER FORM OF VALUE WILL CURRENTLY BREAK. As a matter of fact, an attribute in the current config with no value is assumed to have this coderef as value: sub { join(' ', @_) } While we're at it, rename debug-[cl]flags to debug_[cl]flags and nodebug-[cl]flags to release_[cl]flags. Reviewed-by: Andy Polyakov <appro@openssl.org>
2015-03-16Add base template processing.Richard Levitte
Base templates are templates that are used to inherit from. They can loosely be compared with parent class inheritance in object orientation. They can be used for the same purpose as the variables with multi-field strings are used in old-style string configurations. Base templates are declared with the base_templates configuration attribute, like so: "example_target" => { base_templates => [ "x86_asm", ... ] ... } Note: The value of base_templates MUST be an array reference (an array enclosed in square brackets). Any configuration target can be used as a base template by another. It is also possible to have a target that's a pure template and not meant to be used directly as a configuration target. Such a target is marked with the template configuration attribute, like so: "example_template" => { template => 1, cc => "mycc", ... }, As part of this commit, all variables with multi-field strings have been translated to pure templates. The variables currently remain since we can't expect people to shift to hash table configurations immediately. Reviewed-by: Andy Polyakov <appro@openssl.org>
2015-03-16Add template reference processing.Richard Levitte
Template references are words with double brackets, and refer to the same field in the target pointed at the the double bracketed word. For example, if a target's configuration has the following entry: 'cflags' => '-DFOO {{x86_debug}}' ... then {{x86_debug}} will be replaced with the 'cflags' value from target 'x86_debug'. Note: template references are resolved recursively, and circular references are not allowed Reviewed-by: Andy Polyakov <appro@openssl.org>
2015-03-16Rewrite Configure to handle the target values as hash tables.Richard Levitte
The reasoning is that configuration strings are hard to read and error prone, and that a better way would be for them to be key => value hashes. Configure is made to be able to handle target configuration values as a string as well as a hash. It also does the best it can to combine a "debug-foo" target with a "foo" target, given that they are similar except for the cflags and lflags values. The latter are spliced into options that are common for "debug-foo" and "foo", options that exist only with "debug-foo" and options that exist only with "foo", and make them into combinable attributes that holds common cflags, extra cflags for debuggin and extra cflags for non-debugging configurations. The next step is to make it possible to have template configurations. Reviewed-by: Andy Polyakov <appro@openssl.org>
2015-03-11Move Configurations* out of the way and rename them.Richard Levitte
Configure would load the glob "Configurations*". The problem with this is that it also loads all kinds of backups of those configurations that some editors do, like emacs' classic 'Configurations~'. The solution is to give them an extension, such as '.conf', and make sure to end the glob with that. Also, because 'Configurations.conf' makes for a silly name, and because a possibly large number of configurations will become clutter, move them to a subdirectory 'Configurations/', and rename them to something more expressive, as well as something that sets up some form of sorting order. Thus: Configurations -> Configurations/10-main.conf Configurations.team -> Configurations/90-team.conf Finally, make sure that Configure sorts the list of files that 'glob' produces, and adapt Makefile.org. Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-02-24Move build config table to separate files.Rich Salz
Move the build configuration table into separate files. The Configurations file is standard configs, and Configurations.team is for openssl-team members. Any other file, Configurations*, found in the same directory as the Configure script, is loaded. To add another file, use --config=FILE flags (which should probably be an absolute path). Written by Stefen Eissing <stefan.eissing@greenbytes.de> and Rich Salz <rsalz@openssl.org>, contributed by Akamai Technologies. Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-02-22Restore -DTERMIO/-DTERMIOS on Windows platforms.Richard Levitte
The previous defaulting to TERMIOS took away -DTERMIOS / -DTERMIO a bit too enthusiastically. Windows/DOSish platforms of all sorts get identified as OPENSSL_SYS_MSDOS, and they get a different treatment altogether UNLESS -DTERMIO or -DTERMIOS is explicitely given with the configuration. The answer is to restore those macro definitions for the affected configuration targets. Reviewed-by: Tim Hudson <tjh@openssl.org>
2015-02-21Assume TERMIOS is default, remove TERMIO on all Linux.Richard Levitte
The rationale for this move is that TERMIOS is default, supported by POSIX-1.2001, and most definitely on Linux. For a few other systems, TERMIO may still be the termnial interface of preference, so we keep -DTERMIO on those in Configure. crypto/ui/ui_openssl.c is simplified in this regard, and will define TERMIOS for all systems except a select few exceptions. Reviewed-by: Matt Caswell <matt@openssl.org>
2015-02-11Engage ecp_nistz256-armv4 module.Andy Polyakov
Reviewed-by: Emilia Käsper <emilia@openssl.org>
2015-02-10Configure: disable warning C4090 in Windows builds.Andy Polyakov
Reviewed-by: Matt Caswell <matt@openssl.org>
2015-02-10Remove -DOPENSSL_NO_DEPRECATED from --strict-warnings flags.Matt Caswell
In master OPENSSL_NO_DEPRECATED is the default anyway. By including it in --strict-warnings as well this means you cannot combine enable-deprecated with --strict-warnings. Reviewed-by: Tim Hudson <tjh@openssl.org>
2015-02-09Engage ecp_nistz256-x86 module.Andy Polyakov
Reviewed-by: Emilia Käsper <emilia@openssl.org>
2015-02-04fix windows buildDr. Stephen Henson
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-02-04More unused FIPS module code.Dr. Stephen Henson
Remove fips_algvs.c Remove unused fips module build code from Configure and Makefile.org Reviewed-by: Tim Hudson <tjh@openssl.org>
2015-01-30Build correctly for me on FreeBSD 10.Ben Laurie
Reviewed-by: Rich Salz Don't debug.
2015-01-27Configure: addendum to OPENSSL_NO_[RMD160|RIPEMD] harmonization.Andy Polyakov
Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-01-23ifdef cleanup part 3: OPENSSL_SYSNAMERich Salz
Rename OPENSSL_SYSNAME_xxx to OPENSSL_SYS_xxx Remove MS_STATIC; it's a relic from platforms <32 bits. Reviewed-by: Andy Polyakov <appro@openssl.org> Reviewed-by: Tim Hudson <tjh@openssl.org>
2015-01-23Add assembly support to ios64-cross.Andy Polyakov
Fix typos in ios64-cross config line. Reviewed-by: Tim Hudson <tjh@openssl.org>
2015-01-22Drop redundant and outdated __CYGWIN32__ tests.Corinna Vinschen
Change OPENSSL_SYSNAME_CYGWIN32 to OPENSSL_SYSNAME_CYGWIN. Drop outdated Cygwin targets. RT#3605 Signed-off-by: Corinna Vinschen <vinschen@redhat.com> Reviewed-by: Tim Hudson <tjh@openssl.org>
2015-01-12RT3548: Remove some unsupported platforms.Rich Salz
This commit removes NCR, Tandem, Cray. Regenerates TABLE. Removes another missing BEOS fluff. The last platform remaining on this ticket is WIN16. Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-01-05Add a clang build target for linux-x86_64Emilia Kasper
This change documents the world as-is, by turning all warnings on, and then turning warnings that trigger off again. Reviewed-by: Andy Polyakov <appro@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-01-04Remove inconsistency in ARM support.Andy Polyakov
This facilitates "universal" builds, ones that target multiple architectures, e.g. ARMv5 through ARMv7. See commentary in Configure for details. Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Matt Caswell <matt@openssl.org>
2014-12-28RT3548: Remove unsupported platformsRich Salz
This commit removes DG-UX. It also flushes out some left-behinds in config. And regenerates TABLE from Configure (hadn't been done in awhile). Reviewed-by: Richard Levitte <levitte@openssl.org>
2014-12-25RT3548: unsupported platformsRich Salz
This commit removes Sinix/ReliantUNIX RM400 (And a missed piece of BEOS fluff) Reviewed-by: Richard Levitte <levitte@openssl.org>
2014-12-21RT3548: Remvoe unsupported platformsRich Salz
This commit removes SunOS (a sentimental favorite of mine). Reviewed-by: Richard Levitte <levitte@openssl.org>
2014-12-18Made it an error to define OPENSSL_USE_DEPRECATED if OpenSSL has been builtMatt Caswell
with OPENSSL_NO_DEPRECATED defined Reviewed-by: Rich Salz <rsalz@openssl.org>
2014-12-18Turn on OPENSSL_NO_DEPRECATED by default.Matt Caswell
Also introduce OPENSSL_USE_DEPRECATED. If OPENSSL_NO_DEPRECATED is defined at config stage then OPENSSL_USE_DEPRECATED has no effect - deprecated functions are not available. If OPENSSL_NO_DEPRECATED is not defined at config stage then applications must define OPENSSL_USE_DEPRECATED in order to access deprecated functions. Also introduce compiler warnings for gcc for applications using deprecated functions Reviewed-by: Rich Salz <rsalz@openssl.org>
2014-12-18RT3548: Remove some obsolete platformsRich Salz
This commit removes Sony NEWS4 Reviewed-by: Richard Levitte <levitte@openssl.org>
2014-12-08Remove fipscanister from Configure, delete fips directoryDr. Stephen Henson
Reviewed-by: Tim Hudson <tjh@openssl.org>
2014-12-04Remove SSLv2 supportKurt Roeckx
The only support for SSLv2 left is receiving a SSLv2 compatible client hello. Reviewed-by: Richard Levitte <levitte@openssl.org>