summaryrefslogtreecommitdiff
path: root/Configure
Commit message (Collapse)AuthorAgeFilesLines
* Simplify the processing of skipped source directoriesRichard Levitte2018-11-051-36/+27
| | | | | | | | | | | | | We kept a number of arrays of directory names to keep track of exactly which directories to look for build.info. Some of these had the extra function to hold the directories to actually build. With the added SUBDIRS keyword, these arrays are no longer needed. The logic for skipping certain directories needs to be kept, though. That is now very much simplified, and is made opportunistic. Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7558)
* Collapse different classes of macro databasesRichard Levitte2018-11-051-11/+9
| | | | | | | | | | | | We have $config{openssl_algorithm_defines}, $config{openssl_other_defines} and $config{openssl_thread_defines}. These are treated exactly the same in include/openssl/opensslconf.h.in, so having them separated into three different databases isn't necessary, the reason for the separation being long gone. Therefore, we collapse them into one and the same, $config{openssl_feature_defines}. Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7558)
* Build: make it possibly to specify subdirs in build.infoRichard Levitte2018-11-051-22/+15
| | | | | | | | | | | | This adds a keyword SUBDIRS for build.info, to be used like this: SUBDIRS=foo bar This tells Configure that it should look for 'build.info' in the relative subdirectories 'foo' and 'bar' as well. Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7558)
* Build: make it possible to assign macro definitions for specific outputsRichard Levitte2018-11-051-0/+31
| | | | | | | | Sometimes, some specific program or object file might need an extra macro definition of its own. This allows that to be easily done. Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/7553)
* GMAC implementationPauli2018-11-051-1/+1
| | | | | | | Remove GMAC demo program because it has been superceded by the EVP MAC one Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7548)
* Configure: ensure empty arrays aren't created inadvertentlyRichard Levitte2018-11-011-1/+1
| | | | | | | | | | | Just refering to a hash table element as an array reference will automatically create that element. Avoid that by defaulting to a separate empty array reference. Fixes #7543 Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7544)
* Configuration: when building the dirinfo structure, include shared_sourcesRichard Levitte2018-10-311-0/+36
| | | | | | | | | | | This makes sure that any resulting directory target in the build files also depend on object files meant for shared libraries. As a side effect, we move the production of the dirinfo structure from common.tmpl to Configure, to make it easier to check the result. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7452)
* Configure: Improve warning if no random seed source was configuredDr. Matthias St. Pierre2018-10-281-6/+11
| | | | | | | | | The new Configure summary box (41349b5e6db) now hides the warning about the missing seed source (2805ee1e095) too much. To make it more visible again, add warning markers. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7509)
* Configure: Reword the summary outputDr. Matthias St. Pierre2018-10-261-3/+9
| | | | | | | | | | | | | | | | In commit 820e414d2830 (pr #5247) the summary output of the Configure command was optimized towards instructing people how to create issue reports. It turned out that the wording of this message can confuse new OpenSSL users and make them think that they are seeing an error message. This commit makes the summary output start with a success to prevent a misunderstanding. Also it gives more hints to new OpenSSL users. Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7499)
* Configure: use correct variable to infer the .ld file locationRichard Levitte2018-10-051-1/+1
| | | | | | | | We didn't notice the error because it all happened in the top directory. Now that we use .ld files in subdirectories, the bug became apparent. Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7347)
* Refactor linker script generationRichard Levitte2018-10-011-8/+11
| | | | | | | | | | | | | | | | | | | | | | | The generation of linker scripts was badly balanced, as all sorts of platform dependent stuff went into the top build.info, when that part should really be made as simply and generic as possible. Therefore, we move a lot of the "magic" to the build files templates, since they are the place for platform dependent things. What remains is to parametrize just enough in the build.info file to generate the linker scripts correctly for each associated library. "linker script" is a term usually reserved for certain Unix linkers. However, we only use them to say what symbols should be exported, so we use the term loosely for all platforms. The internal extension is '.ld', and is changed by the build file templates as appropriate for each target platform. Note that this adds extra meaning to the value of the shared_target attribute. Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7333)
* Configure: Name object files according to the product they are part ofRichard Levitte2018-09-121-10/+112
| | | | | | | | | | | | | | | | | | | | | | | | | This will allow to have different object files for different products, even if they share the same source code, and possibly different builds for those different object files. For example, one can have something like this: SOURCES[libfoo]=cookie.c INCLUDES[libfoo]=include/foo SOURCES[libbar]=cookie.c INCLUDES[libbar]=include/bar This would mean that the object files and libraries would be build somewhat like this: $(CC) -Iinclude/foo -o libfoo-lib-cookie.o cookie.c $(AR) $(ARFLAGS) libfoo.a libfoo-lib-cookie.o $(CC) -Iinclude/bar -o libbar-lib-cookie.o cookie.c $(AR) $(ARFLAGS) libbar.a libbar-lib-cookie.o Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7159)
* Configure: DON'T trickle down includes from products to sourcesRichard Levitte2018-09-121-21/+3
| | | | | | | | | | Instead, use the include settings from the products later in the process, making it possible to have different includes for two different libraries that share the same source code. Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7159)
* Configure: don't probe for --noexecstack assembler option on Darwin.Andy Polyakov2018-08-181-2/+2
| | | | | | | The option has no meaning on Darwin, but it can bail out in combination with -fembed-bitcode or -no-integrated-as... Reviewed-by: Richard Levitte <levitte@openssl.org>
* Configure: warn when 'none' is the chosen seed sourceRichard Levitte2018-08-161-3/+12
| | | | | | | Fixes #6980 Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/6981)
* Turn on TLSv1.3 downgrade protection by defaultMatt Caswell2018-08-151-2/+0
| | | | | | Reviewed-by: Ben Kaduk <kaduk@mit.edu> Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6741)
* Check early that the config target exists and isn't a templateRichard Levitte2018-08-071-2/+3
| | | | | Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6885)
* Configure death handler: instead of printing directly, amend the messageRichard Levitte2018-07-241-3/+6
| | | | | | | | This is done by calling die again, just make sure to reset the __DIE__ handler first. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6776)
* Configure death handler: remember to call original death handlerRichard Levitte2018-07-241-0/+1
| | | | | Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6776)
* Configure death handler: bail out early when run in eval blockRichard Levitte2018-07-241-0/+1
| | | | | Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6776)
* Configure: print generic advice when dyingRichard Levitte2018-07-241-0/+18
| | | | | | | | | | | On the same note, change the 'NASM not found' message to give specific advice on how to handle the failure. Fixes #6765 Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6771)
* Configure: Display error/warning on deprecated/unsupported options after loopRichard Levitte2018-07-221-13/+13
| | | | | | | Fixes #6755 Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6759)
* Keep supporting the env / make variable PERLRichard Levitte2018-07-091-6/+5
| | | | | | | | | | | OpenSSL 1.1.0 supports the use of this environment variable for passing to the build files. For the sake of backward compatibility, we keep it. Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/6668)
* Configure,util/shlib_wrap.sh: harmonize -Wl and -rpath handling.Andy Polyakov2018-06-221-6/+6
| | | | | Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6515)
* Configure: allow some file extensions to be overridden by target config.Andy Polyakov2018-06-221-2/+3
| | | | | Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6487)
* Add -Wstrict-prototypes option to --strict-warningsBernd Edlinger2018-06-211-0/+1
| | | | | | | | [extended tests] Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6542)
* Configure: add shared() to facilitate shared-specific flags.Andy Polyakov2018-06-131-1/+4
| | | | | | | | This allows to specify flags specific to shared build, e.g. 'bin_lflags => shared("-Wl,-bsvr4")'. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6453)
* Configure: fix Mac OS X builds that still require makedependTodd Short2018-05-051-2/+4
| | | | | | | | | | | Earlier Apple Xcode compilers, e.g. one targeting Mac OS X 10.7, don't support dependency generation and one still has to use makedepend. It's unclear when it was fixed, but all clang-based Apple compilers seem to support -M options. Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6169)
* Configure: pass more suitable argument to compiler_predefined().Andy Polyakov2018-05-051-9/+8
| | | | | Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6174)
* Configure: move --noexecstack probe to Configure.Andy Polyakov2018-05-051-5/+21
| | | | | | | | config probe doesn't work in cross-compile scenarios or with clang. In addition consolidate -Qunused-arguments handling. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6174)
* Configure: add $target{keccak1600_asm_src}.Andy Polyakov2018-04-231-0/+3
| | | | | Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6042)
* Add a config option to disable automatic config loadingBernd Edlinger2018-04-171-1/+2
| | | | | | | ./config no-autoload-config Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5959)
* Configuration: Simplify generating list of generated files in build file ↵Richard Levitte2018-04-111-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | templates Computing the value of the GENERATED variable in the build file templates is somewhat overcomplicated, and because of possible duplication errors, changes are potentially error prone. Looking more closely at how this list is determined, it can be observed that the exact list of files to check is consistently available in all the values found in the %unified_info tables 'depends', 'sources' and 'shared_sources', and all that's needed is to filter those values so only those present as keys in the 'generate' table are left. This computation is also common for all build files, so due to its apparent complexity, we move it to common0.tmpl, with the result left in a global variable (@generated), to be consumed by all build file templates. common0.tmpl is included among the files to process when creating build files, but unlike common.tmpl, it comes first of all. Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5930)
* Fix minor typo in comment in ConfigureDaniel Bevenius2018-03-311-1/+1
| | | | | | Reviewed-by: Kurt Roeckx <kurt@roeckx.be> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5825)
* Remove -Wmisleading-indentation from gcc devteam warning optionsBernd Edlinger2018-03-311-1/+0
| | | | | | | because this one is enabled by default anyways Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5817)
* Configure: harmonize syntax.Andy Polyakov2018-03-291-7/+7
| | | | | Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5770)
* Configure: make LIST command work with dynamic 15-android.conf.Andy Polyakov2018-03-271-4/+8
| | | | | | | | This is quick-n-dirty ad-hoc solution, the problem asks for more elegant one... Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5755)
* Move the handling of dso_scheme to dso_conf.hRichard Levitte2018-03-231-23/+0
| | | | | | | | | | | The macros resulting from the dso_scheme attribute were defined for libraries only, but there's a test program that uses the macros as well. The easier way is to move the handling of this macro to crypto/include/internal/dso_conf.h and having the modules that need it include it. Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5733)
* Fix resource filesRich Salz2018-03-221-0/+7
| | | | | | | | | Add it to apps as well as libraries. Fix the copyright year generation. Thanks to user RTT for pointing this out. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5704)
* Fix no-sm3 (and no-sm2)Todd Short2018-03-191-0/+1
| | | | | | Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5677)
* Fix no-ecMatt Caswell2018-03-191-1/+1
| | | | | Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5673)
* Fix no-sm2Matt Caswell2018-03-191-0/+1
| | | | | Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5673)
* Add SM2 signature and ECIES schemesJack Lloyd2018-03-191-1/+1
| | | | | | Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/4793)
* Configure: pass -no-integrated-as.Andy Polyakov2018-03-191-1/+3
| | | | | | | | Occasionally you have to pass -no-integrated-as to clang, but we consider any -no-option as no-option. Don't touch -no-integrated-as. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5613)
* Configure: maintain compability with pre-"make variables" ConfigureRichard Levitte2018-03-161-7/+9
| | | | | | | | | | There were a few environment variables that we supported in earlier Configure versions which got transfered to the %user table. This change makes sure that we still support them, by simply pre-populating the corresponding %user entries with those environment values. Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5641)
* Configure: Don't fail if there were "make variables" set in envRichard Levitte2018-03-161-19/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The original intent was that if someone had a "make variable" set in any kind of way, be it as an environment variable or as an argument to Configure, we wouldn't allow compiler or linker flags as arguments as well. That made both of these configurations equivalently impossible: ./Configure target CFLAGS=-foo -lextra CFLAGS=-foo ./Configure target -lextra While this makes things look nice and consistent, real world use makes this hard, as many projects where OpenSSL is a component also set these variables for other components that use GNU autotools. Therefore, we need to adapt our Configure accordingly. By consequence, the two Configure lines above will not be equivalent any more: ./Configure target CFLAGS=-foo -lextra This command line will still fail, because the "make variable" was given as a command line argument. This cannot be a mistake and is therefore not allowed. CFLAGS=-foo ./Configure target -lextra This command line will work, but because there is a linker flag as a command line argument, the environment (i.e. CFLAGS) is ignored. That isn't quite consistent with the previous command, but is the old Configure behavior, before the support for "make variables" was added, and is therefore the backward compatible behavior. Fixes google/oss-fuzz#1244 Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5641)
* Configure: allow to enable afalgeng if target does not start with LinuxSebastian Andrzej Siewior2018-03-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | The Debian build system uses a `debian' target which sets CFLAGS and then we have for instance debian-amd64 which inherits from linux-x86_64 and debian [0]. So far so good. Unless there are different suggestions how to do this, I would keep it. However since the target name does not start with `linux', the build system does not enable the afalg engine. So in order to get enabled, I added a `enable => [ "afalgeng" ],' to the generic linux config which sets it explicit (as suggested by Richard Levitte). Having this set, we can check for it instead matching the target name. [0] https://sources.debian.org/src/openssl/1.1.0g-2/Configurations/20-debian.conf/ Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5169)
* Configure: catch the build tree configdata.pmRichard Levitte2018-03-101-13/+10
| | | | | | | | | | | | There are things depending on configdata.pm. However, it's perfectly possible that there is one in the source directory from a previous build, and that might disrupt an out of source build. To avoid this conflict, make sure never to use the source tree configdata.pm in that case, i.e. make the hard assumption that it's a generated file in the build tree, which it is. Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5546)
* Configure: don't mangle the directory again when checking DEPEND inclusionRichard Levitte2018-03-101-10/+6
| | | | | | | | | | | | When generating the correct inclusion directory for DEPEND, we mangled it to be relative to the build or the source directory. However, the value we handle already come with a correct directory, so we only need to use it as is. Fixes #5543 Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5546)
* Configure et al: Move the definition of library only flagsRichard Levitte2018-03-091-29/+29
| | | | | | | | | | | | | | We're currently using the attributes 'defines', 'cppflags', 'cflags' etc quite liberally, with no regard for where that ends up. Quite a few of those flags are actually only relevant for the libraries (mostly libcrypto), so it's safe to say that those could be applied to the libraries only. So, we move some of those flags to 'lib_defines', 'lib_cppflags', 'lib_cflags', etc. Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5560)