summaryrefslogtreecommitdiffstats
path: root/Configure
AgeCommit message (Collapse)Author
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>
2014-11-19New option no-ssl3-method which removes SSLv3_*methodDr. Stephen Henson
When no-ssl3 is set only make SSLv3 disabled by default. Retain -ssl3 options for s_client/s_server/ssltest. When no-ssl3-method is set SSLv3_*method() is removed and all -ssl3 options. We should document this somewhere, e.g. wiki, FAQ or manual page. Reviewed-by: Emilia Käsper <emilia@openssl.org>
2014-11-16{,darwin64-}debug-test-64-clang Configure targetsMike Bland
These are based on debug-ben-debug-64-clang and is intended to produce consistent settings for folks involved in the unit testing effort detailed at: http://wiki.openssl.org/index.php/Unit_Testing -fsanitize has been removed from the set of clang flags for now. Apparently clang 3.1, which ships with FreeBSD 9.1, completely ignores -fsanitize. Clang 3.3, which ships with FreeBSD 9.2, compiles with it, but fails to link due to the absence of libasan: http://lists.freebsd.org/pipermail/freebsd-hackers/2013-December/043995.html https://www.mail-archive.com/cfe-commits@cs.uiuc.edu/msg92260.html http://reviews.llvm.org/D2644 We need -Wno-error=unused-const-variable because of this error: .../crypto/ec/ec_lib.c:74:19: error: unused variable 'EC_version' [-Werror,-Wunused-const-variable] static const char EC_version[] = "EC" OPENSSL_VERSION_PTEXT; Change-Id: I2cba53537137186114c083049ea1233550a741f9 Signed-off-by: Mike Bland <mbland@acm.org> Signed-off-by: Geoff Thorpe <geoff@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org>
2014-10-23Configure: add ios64 target.Andy Polyakov
Reviewed-by: Steve Marquess <marquess@openssl.org>
2014-09-25RT3544: Must update TABLE after Configure changeRich Salz
Also add comment to Configure reminding people to do that. Reviewed-by: Andy Polyakov <appro@openssl.org>
2014-09-24RT3544: Remove MWERKS supportRich Salz
The following #ifdef tests were all removed: __MWERKS__ MAC_OS_pre_X MAC_OS_GUSI_SOURCE MAC_OS_pre_X OPENSSL_SYS_MACINTOSH_CLASSIC OPENSSL_SYS_MACOSX_RHAPSODY Reviewed-by: Andy Polyakov <appro@openssl.org>
2014-09-12Configure: engage ECP_NISTZ256.Andy Polyakov
RT: 3149 Reviewed-by: Rich Salz <rsalz@openssl.org>
2014-08-30Configure: add configuration for crypto/ec/asm extensions.Andy Polyakov
Reviewed-by: Rich Salz <rsalz@openssl.org>
2014-08-27RT2308: Add extern "C" { ... } wrapperRich Salz
Add the wrapper to all public header files (Configure generates one). Don't bother for those that are just lists of #define's that do renaming. Reviewed-by: Tim Hudson <tjh@openssl.org>
2014-08-12PR 719: Configure not exiting with child statusnnposter@users.sourceforge.net
If subcommand fails, just die. Reviewed-by: Kurt Roeckx <kurt@roeckx.be>
2014-08-01Update $default_depflags to match current defaults.Bodo Moeller
2014-07-24Add conditional unit testing interface.Dr. Stephen Henson
Don't call internal functions directly call them through SSL_test_functions(). This also makes unit testing work on Windows and platforms that don't export internal functions from shared libraries. By default unit testing is not enabled: it requires the compile time option "enable-unit-test". Reviewed-by: Geoff Thorpe <geoff@openssl.org>
2014-07-20Engage GHASH for PowerISA 2.0.7.Andy Polyakov
[and split ppccap.c to ppccap.c and ppc_arch.h] Reviewed-by: Kurt Roeckx <kurt@openssl.org> Reviewed-by: Tim Hudson <tjh@openssl.org>
2014-07-16Revert "Engage GHASH for PowerISA 2.07."Andy Polyakov
This reverts commit 14aaf883d93fb2e321ef1fe25f687fb7b62ef8fe.
2014-07-16Engage GHASH for PowerISA 2.07.Andy Polyakov