aboutsummaryrefslogtreecommitdiffstats
path: root/configure.py
Commit message (Collapse)AuthorAgeFilesLines
* Move gen_bakefile IO call to end of mainJack Lloyd2016-11-151-9/+10
| | | | | | Previously ran inside of BuildConfigurationInformation's constructor [ci skip]
* fix: bakefile not created when specifying "--with-bakefile"Daniel Neus2016-11-081-0/+4
| | | | somehow missed this in PR #360
* Merge GH #710 Allow custom EC curve to be specified at build timeJack Lloyd2016-11-041-1/+33
|\
| * Add an in-house EC curve for TLS at compile-timeRené Korthaus2016-11-031-1/+33
| | | | | | | | | | | | One additional, application-specific curve can be added at compile time, using the new configure.py --house-curve=curve.pem,funky311,1.2.3.4,FEFF.
* | Disable compression module if no compression library support enabled.Jack Lloyd2016-11-041-0/+8
|/ | | | | Otherwise user is given a compression.h header that seems functional but does nothing at all because make_compressor never returns anything.
* Add new configure argument --optimize-for-sizeJack Lloyd2016-11-031-1/+13
| | | | | | | | | | | Uses -Os for GCC/Clang/ICC, /O1 for MSVC. Might be used in the future to control compile time features also (eg using a large precomputed table, vs not). Does not have any influence on module selection, just informs the build that a smaller binary is preferable. [ci skip]
* Move ISA optimized versions under the main algo dirJack Lloyd2016-11-031-4/+5
| | | | | | | | Previously it made sense for them to be in distinct dirs because they were standalone. However with #580 that is no longer the case, so move them to subdirs. Configure knows that anything underneath a directory has a dependency on the parent dir, so update info.txt files accordingly to remove explicit dependencies where set.
* Add support to output bakefilesDaniel Neus2016-11-021-0/+86
| | | | Bakefile is a tool which can be used to create Visual Studio or Xcode project files
* Move license and news to top level directoryJack Lloyd2016-10-311-2/+2
| | | | | These files are important so make them easy to find for someone unpacking the tarball for the first time.
* Fix for amalgamation buildJack Lloyd2016-10-311-0/+2
|
* Fix configure when building outside of main source dirJack Lloyd2016-10-311-3/+12
| | | | | When configuring from fuzzer dir, object files would get names starting with '..'
* Import fuzzer driversJack Lloyd2016-10-301-4/+9
| | | | | | | | | | | Originally from https://github.com/randombit/botan-fuzzers but merging to the main tree (without the corpus files, since I suspect the corpus files in that repo are not useful anymore) Adds --unsafe-fuzzer-mode which can be used to selectively disable cryptographic checks which get in the way of fuzzer testing. This setting is reflected in build.h and in the version string. Right now it doesn't actually disable anything.
* configure: A missing file should be an errorJack Lloyd2016-10-181-1/+1
|
* Merge GH #665 Add IncludeOS target, make filesystem/threads optionalJack Lloyd2016-10-171-0/+10
|\
| * Add ISA annotations to functions using SIMD, AES, etcJack Lloyd2016-10-141-0/+10
| | | | | | | | | | | | | | | | Also emit `#pragma GCC target` in the ISA specific amalgamation files. This allows compiling without any special compiler flags, at least with GCC 6.2 and Clang 3.8. The ISA annotations are ignored in MSVC, which just emits whatever instruction the intrinsic requires.
| * configure - Better handling of filesystem feature bitJack Lloyd2016-10-121-5/+0
| |
| * Add IncludeOS target. Make filesystem support optional.Jack Lloyd2016-10-101-0/+5
| |
* | configure: Sort the generated makefile lists [ci skip]Jack Lloyd2016-10-111-0/+1
|/
* Simplify amalgamation generationSimon Warta2016-09-041-8/+15
|
* Check for non-existent modules in policy files.Jack Lloyd2016-09-011-1/+18
| | | | | | Fix policy files. GH #614
* Travis CI additions and cleanupJack Lloyd2016-08-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Convert Travis build configuration to a single var instead of 4 tuple. Makes it much easier to review the builds in the Travis web UI. Adds sanitizer builds for Clang on both Linux and OS X. Clang is a different compiler from GCC and its sanitizers may catch things GCC does not. I have no idea if Apple's Clang has some magic sanitizer sauce stock LLVM does not, so maybe sanitizer build on OS X can be skipped. Adds Linux cross compile targets for ARM32, ARM64, PPC64, and MinGW x86 using the cross compiler available in Trusty. All of them build and are set up to run through qemu/wine. All of the tests currently fail and so are marked as expected fail in the Travis matrix. The ARM test runs seem to have thread problems; ARM32 thread creation just fails with an exception, as if pthreads was disabled. All other tests pass ok for ARM32. On Aarch64, it looks like there is a hard crash the first time the library tries creating a thread. Both of these might be due to statically linking the binary? I have been unable to convince Ubuntu's qemu-ppc64 to execute binaries compiled by Ubuntu's ppc64 cross compiler. I'm downloading an Ubuntu ISO to try this in a VM. Running under Wine exposes several issues, both in Wine and Botan. Many functions are stubs and it appears that entropy collection fails as a result. This triggers a bug in the FFI tests which causes a crash there. A pox on time zones; _mkgmtime is a MSVC extension and is not available on MinGW GCC. Add a last resort call that just uses the localzone variant instead. Adds valgrind target, remove a bogus poison in pubkey.cpp (it was effectively asserting that all of RSA was const time which is sadly not true at all). Moves -Wshadow to maintainer mode for GCC - GCC 4.8 has a noisy variant of -Wshadow which warns if a parameter masks a function name, but this comes up all the time in constructors. Later GCCs no longer warn about this (even with -Wshadow), so the warnings are never fixed, but they cause noise in CI output and hide interesting warnings like warning: vec_lvsl is deprecated for little endian; use assignment for unaligned loads and stores [-Wdeprecated] __vector unsigned char perm = vec_lvsl(0, static_cast<u32bit*>(nullptr));
* Merge GH #584 Changes to support Windows debuggingJack Lloyd2016-08-171-4/+9
|\
| * No PDB output for CLI and testsDaniel Neus2016-08-161-4/+9
| | | | | | | | | | | | Fixes GH #432 : Previously the Botan CLI PDB file has overwritten the Botan lib PDB file. Furthermore the output filename of the lib is changed to botand in debug mode.
* | Remove template sources: user, hostname, timestampSimon Warta2016-08-171-13/+1
|/
* Make the header intersect checks a little more succint.Jack Lloyd2016-08-121-15/+8
| | | | Make an invalid config (conflicting header types) a hard error, and stop the build.
* Headers can be marked as external by using `<header:external>` in info.txt.Daniel Neus2016-08-121-7/+30
| | | | | | | These headers are copied/linked into build_dir/include/external This has the advantage that external includes can be taken as they are, they haven't to be modified. Fixes amalgamation build with enabled pkcs#11 module
* include external PKCS#11 headers into botanDaniel Neus2016-07-261-1/+1
|
* Merge asm into single mp_madd.h and mp_asmi.h filesJack Lloyd2016-07-211-27/+15
| | | | | | | Avoids some cut and paste, also removes the need for special logic in configure.py for handling mp module specially. Merge SIMD classes into a single type SIMD_4x32
* coverage should be checked without optimizationsDaniel Neus2016-07-141-0/+3
|
* Merge GH #507 Add PKCS #11 support. Previous merge 360a3a5 missed later commitsJack Lloyd2016-07-041-25/+11
|\
| * improve with_external_includedir handling in configure.pyDaniel Neus2016-06-281-25/+11
| |
* | Merge GH #523 fixes for OpenBSD compilationJack Lloyd2016-07-041-0/+8
|\ \
| * | Do not attempt to use avx2 on OpenBSDLauri Nurmi2016-07-031-0/+2
| | | | | | | | | | | | The assembler shipping with current OpenBSD (5.9) does not support avx2
| * | Adjust GCC binary name on OpenBSDLauri Nurmi2016-07-031-0/+6
| | | | | | | | | | | | The binary name for a sufficiently new GCC is 'eg++' on OpenBSD
* | | Merge GH #507 Add PKCS #11 supportJack Lloyd2016-07-041-11/+28
|\ \ \ | | |/ | |/|
| * | add --with-external-includedir to configure.pyDaniel Neus2016-06-171-11/+28
| | |
* | | Guess the compiler to be clang on FreeBSDLauri Nurmi2016-07-021-1/+1
| |/ |/| | | | | FreeBSD 10 comes with clang installed by default, and no gcc
* | Fix configure with compilers that don't set an explicit binary linkerJack Lloyd2016-06-171-4/+3
|/ | | | | | command. This broke Sun Studio among others. Reported by Jeffrey Walton. [ci skip]
* Fixed shared library behaviour on Darwin/OS X.Alastair Houghton2016-04-071-2/+9
|
* Merge GH #446 add --module-policy optionJack Lloyd2016-03-061-60/+85
|\
| * Add option --module-policyJack Lloyd2016-03-061-60/+85
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A module policy is a file specifying three types of modules: ones which are required, ones which are prohibited, and ones which should be used if otherwise available (this is mostly for platform specific modules). Finally there are whatever modules which exist in the library of which the policy makes no mention. These will be included if an explicit dependency of some other module pulls them in (so there is no reason to mention base, utils, ... in the file) but skipped otherwise. For example policy 'sane' does not mention 'utils' or 'twofish' either way. Since utils is a dependency of other modules which are included, but Twofish does not. However unlike an explicitly prohibited module, not mentioned can still be requested as part of the build (here with --enable-module=twofish) Also fixes some test bugs noticed by compiling in different build configs. DLIES test didn't check that the KDF and MAC existed. Adds a typedef for MessageAuthenticationCode because typing it twice in a single line in the DLIES test made me think it's way too long. :) Also fix some fuzzer build problems. Due to a copy and paste bug the PKCS certificate (it was not). Inspired by GH #439
* | Have --debug-mode both set debug info and disable optimizations.Jack Lloyd2016-03-061-3/+7
|/ | | | | | --with-debug-info and --no-optimizations remain to toggle each independently. Closes GH #433
* fix commentDaniel Neus2016-02-191-1/+1
|
* Use symlinks on windows if explicitly requestedDaniel Neus2016-02-191-2/+8
|
* Add --with-valgrindJack Lloyd2016-02-131-0/+6
|
* Maintainer mode shouldn't always imply ASan since it interferes withJack Lloyd2016-01-291-3/+0
| | | | valgrind and throws off benchmarks.
* Fix configure.py for CPython 2.6Jack Lloyd2016-01-041-3/+10
| | | | Based on GH #362 by emilymaier
* Merge pull request #353 from neusdan/robust_build_setup_windowsJack Lloyd2015-12-311-2/+29
|\ | | | | make shutil.rmtree and os.makedirs more robust to AV interference
| * review changesDaniel Neus2015-12-231-7/+9
| | | | | | | | | | | | | | * fix Python 3 compatibility * add comment explaining purpose of the workarounds * raise exception if directory exists in robust_makedirs * pylint fixes
| * decrease timeout between attempts to 100msDaniel Neus2015-12-181-4/+4
| |