aboutsummaryrefslogtreecommitdiffstats
path: root/Configure
Commit message (Collapse)AuthorAgeFilesLines
* Fix build on MacOS.Ben Laurie2015-05-011-2/+19
| | | | Reviewed-by: Andy Polyakov
* Engage ec/asm/ecp_nistz256-sparcv9 module.Andy Polyakov2015-04-211-0/+1
| | | | | Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org>
* Configure: Engage ecp_nistz256-armv8 module.Andy Polyakov2015-04-201-0/+1
| | | | Reviewed-by: Richard Levitte <levitte@openssl.org>
* Configure: engage ARMv8 Montgomery multiplication module.Andy Polyakov2015-04-201-0/+1
| | | | Reviewed-by: Rich Salz <rsalz@openssl.org>
* Use -Wall -Wextra with clangEmilia Kasper2015-04-171-1/+1
| | | | | | | 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>
* Add -Wtype-limits to strict warnings.Dr. Stephen Henson2015-04-151-1/+1
| | | | Reviewed-by: Rich Salz <rsalz@openssl.org>
* Appease clang -Wgnu-statement-expressionRichard Levitte2015-04-041-1/+1
| | | | | | | | | | | 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>
* Stop symlinking, move files to intended directoryRichard Levitte2015-03-311-17/+11
| | | | | | | | | | | | | 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>
* Engage vpaes-armv8 module.Andy Polyakov2015-03-281-1/+1
| | | | Reviewed-by: Richard Levitte <levitte@openssl.org>
* Configure: remove unused variables.Andy Polyakov2015-03-281-31/+0
| | | | Reviewed-by: Richard Levitte <levitte@openssl.org>
* Add -DDEBUG_UNUSED to --strict-warningsMatt Caswell2015-03-231-1/+1
| | | | | | | | 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>
* Refer to $table{$target} rather than $table{$t}.Richard Levitte2015-03-221-35/+35
| | | | | | | Using $t is an artifact from the earlier changes in Configure and was unfortunately forgotten as is. Reviewed-by: Stephen Henson <steve@openssl.org>
* If the target is an old style debug- target, it will not have debugging ↵Richard Levitte2015-03-191-0/+1
| | | | | | [cl]flags Reviewed-by: Stephen Henson <steve@openssl.org>
* Configure: fold related configurations more aggressively and clean-up.Andy Polyakov2015-03-181-77/+13
| | | | Reviewed-by: Richard Levitte <levitte@openssl.org>
* Correct the request of debug buildsRichard Levitte2015-03-171-6/+19
| | | | | | | | | | | | | | | | | ./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>
* Change all the main configurations to the new format.Richard Levitte2015-03-161-9/+55
| | | | | | As part of this, remove some levitte examples that never were relevant. Reviewed-by: Andy Polyakov <appro@openssl.org>
* Rethink templates.Richard Levitte2015-03-161-117/+159
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Add base template processing.Richard Levitte2015-03-161-1/+274
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Add template reference processing.Richard Levitte2015-03-161-0/+30
| | | | | | | | | | | | | | | | | 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>
* Rewrite Configure to handle the target values as hash tables.Richard Levitte2015-03-161-120/+431
| | | | | | | | | | | | | | | | | | 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>
* Move Configurations* out of the way and rename them.Richard Levitte2015-03-111-2/+2
| | | | | | | | | | | | | | | | | | | | | | 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>
* Move build config table to separate files.Rich Salz2015-02-241-475/+34
| | | | | | | | | | | | | | | 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>
* Restore -DTERMIO/-DTERMIOS on Windows platforms.Richard Levitte2015-02-221-4/+4
| | | | | | | | | | | 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>
* Assume TERMIOS is default, remove TERMIO on all Linux.Richard Levitte2015-02-211-64/+64
| | | | | | | | | | | 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>
* Engage ecp_nistz256-armv4 module.Andy Polyakov2015-02-111-1/+1
| | | | Reviewed-by: Emilia Käsper <emilia@openssl.org>
* Configure: disable warning C4090 in Windows builds.Andy Polyakov2015-02-101-6/+11
| | | | Reviewed-by: Matt Caswell <matt@openssl.org>
* Remove -DOPENSSL_NO_DEPRECATED from --strict-warnings flags.Matt Caswell2015-02-101-1/+1
| | | | | | | | 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>
* Engage ecp_nistz256-x86 module.Andy Polyakov2015-02-091-1/+1
| | | | Reviewed-by: Emilia Käsper <emilia@openssl.org>
* fix windows buildDr. Stephen Henson2015-02-041-0/+1
| | | | Reviewed-by: Richard Levitte <levitte@openssl.org>
* More unused FIPS module code.Dr. Stephen Henson2015-02-041-33/+1
| | | | | | | Remove fips_algvs.c Remove unused fips module build code from Configure and Makefile.org Reviewed-by: Tim Hudson <tjh@openssl.org>
* Build correctly for me on FreeBSD 10.Ben Laurie2015-01-301-1/+1
| | | | | | Reviewed-by: Rich Salz Don't debug.
* Configure: addendum to OPENSSL_NO_[RMD160|RIPEMD] harmonization.Andy Polyakov2015-01-271-0/+4
| | | | Reviewed-by: Rich Salz <rsalz@openssl.org>
* ifdef cleanup part 3: OPENSSL_SYSNAMERich Salz2015-01-231-14/+14
| | | | | | | | 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>
* Add assembly support to ios64-cross.Andy Polyakov2015-01-231-1/+1
| | | | | | Fix typos in ios64-cross config line. Reviewed-by: Tim Hudson <tjh@openssl.org>
* Drop redundant and outdated __CYGWIN32__ tests.Corinna Vinschen2015-01-221-5/+2
| | | | | | | | | 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>
* RT3548: Remove some unsupported platforms.Rich Salz2015-01-121-36/+0
| | | | | | | | | 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>
* Add a clang build target for linux-x86_64Emilia Kasper2015-01-051-1/+4
| | | | | | | | 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>
* Remove inconsistency in ARM support.Andy Polyakov2015-01-041-2/+28
| | | | | | | | | 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>
* RT3548: Remove unsupported platformsRich Salz2014-12-281-5/+0
| | | | | | | | 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>
* RT3548: unsupported platformsRich Salz2014-12-251-6/+0
| | | | | | | This commit removes Sinix/ReliantUNIX RM400 (And a missed piece of BEOS fluff) Reviewed-by: Richard Levitte <levitte@openssl.org>
* RT3548: Remvoe unsupported platformsRich Salz2014-12-211-4/+0
| | | | | | This commit removes SunOS (a sentimental favorite of mine). Reviewed-by: Richard Levitte <levitte@openssl.org>
* Made it an error to define OPENSSL_USE_DEPRECATED if OpenSSL has been builtMatt Caswell2014-12-181-2/+5
| | | | | | with OPENSSL_NO_DEPRECATED defined Reviewed-by: Rich Salz <rsalz@openssl.org>
* Turn on OPENSSL_NO_DEPRECATED by default.Matt Caswell2014-12-181-1/+5
| | | | | | | | | | | | | 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>
* RT3548: Remove some obsolete platformsRich Salz2014-12-181-3/+0
| | | | | | This commit removes Sony NEWS4 Reviewed-by: Richard Levitte <levitte@openssl.org>
* Remove fipscanister from Configure, delete fips directoryDr. Stephen Henson2014-12-081-98/+4
| | | | Reviewed-by: Tim Hudson <tjh@openssl.org>
* Remove SSLv2 supportKurt Roeckx2014-12-041-7/+0
| | | | | | The only support for SSLv2 left is receiving a SSLv2 compatible client hello. Reviewed-by: Richard Levitte <levitte@openssl.org>
* New option no-ssl3-method which removes SSLv3_*methodDr. Stephen Henson2014-11-191-0/+5
| | | | | | | | | | | 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>
* {,darwin64-}debug-test-64-clang Configure targetsMike Bland2014-11-161-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Configure: add ios64 target.Andy Polyakov2014-10-231-1/+16
| | | | Reviewed-by: Steve Marquess <marquess@openssl.org>
* RT3544: Must update TABLE after Configure changeRich Salz2014-09-251-0/+2
| | | | | | Also add comment to Configure reminding people to do that. Reviewed-by: Andy Polyakov <appro@openssl.org>