summaryrefslogtreecommitdiffstats
path: root/Configure
AgeCommit message (Collapse)Author
2016-02-14Make the use of mdebug backtrace a separate optionRichard Levitte
To force it on anyone using --strict-warnings was the wrong move, as this is an option best left to those who know what they're doing. Use with care! Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-02-13Reformat warn variables for easier editing.Rich Salz
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-02-13Rethink the method to place user cflags lastRichard Levitte
The previous method had some unfortunate consequences with --strict-warnings. To counteract, revert part of the previous change and move down the block of code that adds the user cflags and defines. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-12Rename INSTALL_PREFIX to DESTDIR, remove option --install_prefixRichard Levitte
INSTALL_PREFIX is a confusing name, as there's also --prefix. Instead, tag along with the rest of the open source world and adopt the Makefile variable DESTDIR to designate the desired staging directory. The Configure option --install_prefix is removed, the only way to designate a staging directory is with the Makefile variable (this is also implemented for VMS' descrip.mms et al). Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-12Put user flags last for priority.Rich Salz
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-02-12Remove last chompsRichard Levitte
In the previous commit to change all chomp to a more flexible regexp, Configure was forgotten. This completes the change. Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-02-11Remove TLS heartbeat, disable DTLS heartbeatRich Salz
To enable heartbeats for DTLS, configure with enable-heartbeats. Heartbeats for TLS have been completely removed. This addresses RT 3647 Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-02-11Move to REF_DEBUG, for consistency.Rich Salz
Add utility macros REF_ASSERT_NOT and REF_PRINT_COUNT This is also RT 4181 Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-02-11Add support for shared_rcflag, useful for windres (Cygwin and Mingw)Richard Levitte
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-11Modernise the mingw cflags and ldflagsRichard Levitte
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-11Unified build: Keep track of generated header filesRichard Levitte
If someone runs a mixed unixmake / unified environment (the unified build tree would obviously be out of the source tree), the unified build will pick up on the unixmake crypto/buildinf.h because of assumptions made around this sort of declaration (found in crypto/build.info): DEPENDS[cversion.o]=buildinf.h The assumption was that if such a header could be found in the source tree, that was the one to depend on, otherwise it would assume it should be in the build tree. This change makes sure that sort of mix-up won't happen again. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-11Remove the "make depend" messageRichard Levitte
It's not necessary for a pristine source, and a developer that makes changes usually knows what to do. Also, there was this mechanism that would do a "make depend" automatically which hasn't been used for so many years. Removed as well. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-10Produce buildinf.h on Windows the same way as on UnixRichard Levitte
Because ENGINESDIR and OPENSSLDIR typically contains backslashes, they need to be escaped just right. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-10unified build scheme: Try to nudge users to try the "unified" buildRichard Levitte
This commit SHALL be reverted before final release. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-10Configure et al: move the installation directory logic to MakefilesRichard Levitte
The logic to figure out the combinations of --prefix and --openssldir has stayed in Configure so far, with Unix paths as defaults. However, since we're making Configure increasingly platform agnostic, these defaults need to change and adapt to the platform, along with the logic to combine them. The easiest to provide for this is to move the logic and the defaults away from Configure and into the build files. This also means that the definition of the macros ENGINESDIR and OPENSSLDIR move away from include/openssl/opensslconf.h and into the build files. Makefile.in is adapted accordingly. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-10Configure et al: treat C defines separatelyRichard Levitte
With some compilers, C macros are defined differently on the command line than on Unix. It could be that the flad to define them isn't -D, it could also be that they need to be grouped together and not be mixed in with the other compiler flags (that's how it's done on VMS, for example). On Unix family platform configurations, we can continue to have macro definitions mixed in with the rest of the flags, so the changes in Configurations/*.conf are kept to an absolute minimum. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-10Remove store.Rich Salz
Rebased and merged by me, with Ben's approval. Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Ben Laurie <ben@openssl.org>
2016-02-10Make the processing of build.info files more aware of absolute dirsRichard Levitte
There were cases where some input was absolute, and concatenating it to the diretory to the source or build top could fail spectacularly. Let's check the input first to see if it's absolute. And while we're on the subject of checking if a file or dir spec is absolute using file_name_is_absolute() has its own quirks on VMS, where a logical name is considered absolute under most circumstances. This is perfectly correct from a VMS point of view, but when parsing the build.info files, we want single word file or directory names to only be checked syntactically. A function isabsolute() that does the right thing is the solution. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-09GH649: Fix: version32.rc was not created on WindowsMat
version32.rc was not created on Windows. The if condition has been corrected. Signed-off-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Tim Hudson <tjh@openssl.org>
2016-02-09Add an OPENSSL_NO_AUTOERRINIT optionMatt Caswell
This option disables automatic loading of the crypto/ssl error strings in order to keep statically linked executable file size down Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-02-09Provide framework for auto initialise/deinitialise of the libraryMatt Caswell
This commit provides the basis and core code for an auto initialisation and deinitialisation framework for libcrypto and libssl. The intention is to remove the need (in many circumstances) to call explicit initialise and deinitialise functions. Explicit initialisation will still be an option, and if non-default initialisation is needed then it will be required. Similarly for de-initialisation (although this will be a lot easier since it will bring all de-initialisation into a single function). Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-02-09Use rel2abs() on VMS, rather than realpath()Richard Levitte
It seems realpath() is quite buggy on VMS, or will at least give quite surprising results. On the other hand, realpath() is the better on Unix to clean out clutter like foo/../bar on Unix. So we make out own function to get the absolute directory for a given input, and use rel2abs() or realpath() depending on the platform Configure runs on. Issue reported by Steven M. Schweda <sms@antinode.info> Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-02-09unified build scheme: add and document the "unified" driving engineRichard Levitte
common.tmpl will be used together with the template build file, and is the engine that connects the information gathered from all the build.info files with making the build file itself. This file expects there to be a template section in the build file template that defines a number perl functions designed to return strings with appropriate lines for the build system at hand. The exact functions, what they can expect as arguments and what output they're expected to produce is documented in Configurations/README. Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
2016-02-08Use File::Path::mkpath rather than File::Path::make_pathRichard Levitte
File::Path::make_path didn't show up before File::Path 2.06 / perl v5.10.1. Because we're trying to stay compatible with perl v5.10.0 and up, it's better to use the legacy interface. Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-02-06Enhance and clear the support of linker flagsRichard Levitte
Some time ago, we had a ex_libs configuration setting that could be divided into lflags and ex_libs. These got divided in two settings, lflags and ex_libs, and the former was interpreted to be general linking flags. Unfortunately, that conclusion wasn't entirely accurate. Most of those linking were meant to end up in a very precise position on the linking command line, just before the spec of libraries the linking depends on. Back to the drawing board, we're diving things further, now having lflags, which are linking flags that aren't depending on command line position, plib_lflags, which are linking flags that should show up just before the spec of libraries to depend on, and finally ex_libs, which is the spec of extra libraries to depend on. Also, documentation is changed in Configurations/README. This was previously forgotten. Reviewed-by: Kurt Roeckx <kurt@openssl.org>
2016-02-04Add option to disable asyncTodd Short
Add no-async option to Configure that forces ASYNC_NULL. Related to RT1979 An embedded system or replacement C library (e.g. musl or uClibc) may not support the *context APIs that are needed for async operation. Compiles with musl. Ran unit tests, async tests skipped as expected. Signed-off-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org>
2016-02-04If egd is disabled by default, it should be possible to enableRichard Levitte
Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-02-03[Configure] Make --with-zlib-* work with configdata.pmMichael Lee
Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-02-02Use a simpler method to build a glob than splitpath and catpathRichard Levitte
It turns out that the combination splitpath() could return an empty string for the directory part. This doesn't play well with catdir(). Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-01Better check for gcc/clangRich Salz
Iteratively improved with Richard and Andy. Reviewed-by: Andy Polyakov <appro@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-02-01unified build scheme: a first introductionRichard Levitte
The "unified" build scheme revolves around small information files, build.info, which each describe their own bit of everything that needs to be built, using a mini-language described in Configurations/README. The information in build.info file contain references to source files and final result. Object files are not mentioned at all, they are simply from source files. Because of this, all the *_obj items in Configurations/*.conf are renamed to *_asm_src and the files listed in the values are change from object files to their corresponding source files. For the sake of the other build schemes, Configure generates corresponding *_obj entries in %target. Furthermore, the "unified" build scheme supports having a build directory tree separate from the source directry tree. All paths in a build.info file is assumed to be relative to its location, either within the source tree or within the build tree. Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-01-31Configure: restore original logic for -DWHIRLPOOL_ASM.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-01-31Remove the extra checks for Intel's C compilerRichard Levitte
When the target is {something}-icc, we're doing some extra checks of the icc compiler. However, all such targets were cleaned away in March 2015, so this Configure section is dead code. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-31Don't go into dotted directories when copying Makefile.in to MakefileRichard Levitte
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-30Move more BN internals to bn_lcl.hRich Salz
There was an unused macro in ssl_locl.h that used an internal type, so I removed it. Move bio_st from bio.h to ossl_type.h Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-01-30Configure: Clarify the handling of $thread_cflagsRichard Levitte
Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
2016-01-29Missed rc2_int from before.Rich Salz
Also remove $Makefile variable :) Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-01-29Templatize util/domdRich Salz
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-01-29Configure et al: split up the lflags configuration item into twoRichard Levitte
The lflags configuration had a weird syntax with a % as separator. If it was present, whatever came before ended up as PEX_LIBS in Makefile (usually, this is LDFLAGS), while whatever came after ended up as EX_LIBS. This change splits that item into lflags and ex_libs, making their use more explicit. Also, PEX_LIBS in all the Makefiles are renamed to LDFLAGS. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-29Revert "Don't replace cflags with thread_cflags, only append the latter"Richard Levitte
This reverts commit a450326ee040c6cbb262debdb1ed731e6700e1e0. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-29Don't replace cflags with thread_cflags, only append the latterRichard Levitte
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-29Remove x86_gcc_des,x86_gcc_optsRich Salz
This is a followin from !1738, we no longer need those variables. Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-01-28Missed part of b4f35eRich Salz
Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-01-27Remove EIGHT_BIT and SIXTEEN_BITRich Salz
Also cleaned up bn_prime.pl to current coding style. Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-01-27Remove outdated legacy crypto optionsRich Salz
Many options for supporting optimizations for legacy crypto on legacy platforms have been removed. This simplifies the source code and does not really penalize anyone. DES_PTR (always on) DES_RISC1, DES_RISC2 (always off) DES_INT (always 'unsigned int') DES_UNROLL (always on) BF_PTR (always on) BF_PTR2 (removed) MD2_CHAR, MD2_LONG (always 'unsigned char') IDEA_SHORT, IDEA_LONG (always 'unsigned int') RC2_SHORT, RC2_LONG (always 'unsigned int') RC4_LONG (only int and char (for assembler) are supported) RC4_CHUNK (always long), RC_CHUNK_LL (removed) RC4_INDEX (always on) And also make D_ENCRYPT macro more clear (@appro) This is done in consultation with Andy. Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-01-27Fix check of what makedepprog should beRichard Levitte
A mistake was made and the setting of this config variable got reverted to an older behavior. This restores the latest. Reviewed-by: Emilia Käsper <emilia@openssl.org>
2016-01-26SHARED_LIBS_LINK_EXTS is no longer used, remove it completelyRichard Levitte
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-26Use Configure's @disablables and %disabled through configdata.pmRichard Levitte
Enhances the routines in OpenSSL::Test::Utils for checking disabled stuff to get their information directly from Configure instead of 'openssl list -disabled'. Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
2016-01-25Small cleanups in ConfigureRichard Levitte
- Small rearrangement of the TABLE and HASH printouts, and adding printout of the "build_scheme" item - Renamed "engines_obj" to "padlock_obj" - Moved the runs of dofile down... it didn't quite make sense to have that in the middle of a printout Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-25Generate warning textRichard Levitte
Now that we're using templates, we should warn people not to edit the resulting file. We do it through util/dofile.pl, which is enhanced with an option to tell what file it was called from. We also change the calls so the template files are on the command line instead of being redirected through standard input. That way, we can display something like this (example taken from include/openssl/opensslconf.h): /* WARNING: do not edit! */ /* Generated by Configure from include/openssl/opensslconf.h.in */ Reviewed-by: Rich Salz <rsalz@openssl.org>