aboutsummaryrefslogtreecommitdiffstats
path: root/configure.py
Commit message (Collapse)AuthorAgeFilesLines
* 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
| |
| * make shutil.rmtree and os.makedirs more robust (at least on windows)Daniel Neus2015-12-101-2/+27
| |
* | Add TPM v1.2 support (RSA keygen/signing, RNG)Jack Lloyd2015-12-191-1/+1
| |
* | Expose os_type setting as BOTAN_TARGET_OS_TYPE_IS_xJack Lloyd2015-12-121-7/+15
|/
* Rename cmd/app -> cliSimon Warta2015-12-091-10/+10
|
* Better error checking for <libs> settings in module info filesJack Lloyd2015-11-281-0/+7
|
* Remove --build-mode and add individual toggles for optimization, debug,Jack Lloyd2015-10-261-36/+41
| | | | | | sanitizers and coverage as all 4 are usefully set independently. Use GCC 4.9 on CircleCI as it seems to be supported. Add ASan + UBSan test.
* Remove the strange conjoining of debug and optimization flags.Jack Lloyd2015-10-261-45/+21
| | | | | | | | | | | | | | | | | | | Previously a build had optimizations disabled completely when debug info was emitted. But there are many reasons to use optimized builds with debug symbols (running under valgrind, against afl, with Asan/Ubsan, in prod, etc). And personally I find even debugging at -O2 or -O3 is fine most of the time and worth it for the speed. Use the (now documented!) --no-optimizations flag if no optimization is desired while debugging. This also removes the distinction between library and application compile flags; there is a single optimization level that is probably good enough for everything. On Win32 it removes definding _CONSOLE for the application. This seems to be some mythical value that may have been required at some point, but is not documented anywhere I can find. Who knows what VC thinks, hoping I don't have to add this back. It also drops defining `EBUG` which is what happens when you tell cl.exe to '/DEBUG'. LOL.
* Add `--minimized-build` which does the same thing as `--no-autoload`Jack Lloyd2015-10-141-1/+3
| | | | | but the meaning of the option is probably easier to understand with this name.
* build system: Add framework support for OS X and iOSDaniel Seither2015-09-251-3/+14
| | | | | | | On Darwin platforms, there are frameworks that can bundle libraries and header files in a standardized directory structure. We need to support linking to them because most of the OS X or iOS-specific APIs are provided as frameworks.
* Pluralize --with-python-version option, remove it from single-option groupJack Lloyd2015-09-221-7/+4
|
* Fix pbkdf, pk padding and ECDH registration for static linking.Jack Lloyd2015-09-111-4/+0
| | | | | | | | With this change the tests pass when linked against a static library built in the normal (non-amalgamation) fashion. Remove the restriction in configure.py, and have circleci build the clang static build as a non-amalg.
* Prevent users from building static non-amalgamations on MinGW and CygwinSimon Warta2015-09-091-7/+6
| | | | | | | | * Rename variable to avoid confusion of build_shared and options.build_shared_lib * Don't automatically change shared -> static. Force user to do that Fixes #211
* Remove duplicated ABI flags, and treat user-set flags as a single stringJack Lloyd2015-08-291-8/+6
|
* Allow multiple abi link flags with the same nameRené Korthaus2015-08-281-4/+4
| | | | | | Allow multiple ABI link flags with the same name, e.g., -arch armv7 -arch armv7s when cross-compiling for iOS. This is the first fix necessary for fixing #188.
* Add soname_patternSimon Warta2015-08-241-4/+21
| | | | Fixes #241
* On x86-32, anything using the simd wrapper needs to be pushed to the SSE2 objJack Lloyd2015-08-221-4/+8
|
* Update configure.pySimon Warta2015-07-261-15/+11
| | | | | | | | * Increase minimal python version to 2.7 * Remove monotone revision command * Set choices for --link-method argument Closes #217
* Remove the configure.py logic for handling bare asm. GH #216Jack Lloyd2015-07-251-25/+2
|
* Fix typosSimon Warta2015-07-241-1/+1
| | | | Thanks to @vlajos https://github.com/vlajos/misspell_fixer