summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/crypto/wscript6
-rw-r--r--lib/crypto/wscript_configure13
-rw-r--r--third_party/aesni-intel/wscript13
-rw-r--r--wscript1
4 files changed, 31 insertions, 2 deletions
diff --git a/lib/crypto/wscript b/lib/crypto/wscript
new file mode 100644
index 00000000000..c3708c7560e
--- /dev/null
+++ b/lib/crypto/wscript
@@ -0,0 +1,6 @@
+#!/usr/bin/env python
+
+def set_options(opt):
+ opt.add_option('--accel-aes',
+ help=("Should we use accelerated AES crypto functions. Options are intelaesni|none."),
+ action="store", dest='accel_aes', default="none")
diff --git a/lib/crypto/wscript_configure b/lib/crypto/wscript_configure
index 130acec4381..9fdaf9f3d14 100644
--- a/lib/crypto/wscript_configure
+++ b/lib/crypto/wscript_configure
@@ -1,3 +1,7 @@
+#!/usr/bin/env python
+import Options
+import Utils
+
if not conf.CHECK_FUNCS_IN('MD5Init', 'bsd', headers='bsd/md5.h',
checklibc=True):
conf.CHECK_FUNCS_IN('MD5Init', 'md5', headers='sys/md5.h',
@@ -13,3 +17,12 @@ if conf.CHECK_FUNCS('SHA256_Update'):
conf.DEFINE('SHA256_RENAME_NEEDED', 1)
if conf.CHECK_FUNCS('SHA512_Update'):
conf.DEFINE('SHA512_RENAME_NEEDED', 1)
+
+#
+# --aes-accel=XXX selects accelerated AES crypto library to use, if any.
+# Default is none.
+#
+if Options.options.accel_aes.lower() == "intelaesni":
+ print("Attempting to compile with runtime-switchable x86_64 Intel AES instructions. WARNING - this is temporary.")
+elif Options.options.accel_aes.lower() != "none":
+ raise Utils.WafError('--aes-accel=%s is not a valid option. Valid options are [none|intelaesni]' % Options.options.accel_aes)
diff --git a/third_party/aesni-intel/wscript b/third_party/aesni-intel/wscript
index 002ba5d42d1..eb92d6626fe 100644
--- a/third_party/aesni-intel/wscript
+++ b/third_party/aesni-intel/wscript
@@ -1,8 +1,17 @@
#!/usr/bin/env python
+import Options
+import Utils
def configure(conf):
- if conf.CHECK_CFLAGS('-Wp,-E,-lang-asm', '') and conf.env['SYSTEM_UNAME_MACHINE'] == 'x86_64':
- conf.DEFINE('HAVE_AESNI_INTEL', 1)
+ if Options.options.accel_aes.lower() == "intelaesni":
+ if conf.CHECK_CFLAGS('-Wp,-E,-lang-asm', ''):
+ if conf.env['SYSTEM_UNAME_MACHINE'] == 'x86_64':
+ print("Compiling with Intel AES instructions")
+ conf.DEFINE('HAVE_AESNI_INTEL', 1)
+ else:
+ raise Utils.WafError('--aes-accel=intelaesni selected and non x86_64 CPU')
+ else:
+ raise Utils.WafError('--aes-accel=intelaesni selected and compiler rejects -Wp,-E,-lang-asm')
def build(bld):
if not bld.CONFIG_SET('HAVE_AESNI_INTEL'):
diff --git a/wscript b/wscript
index e80f7663bbd..35cb9d1b08d 100644
--- a/wscript
+++ b/wscript
@@ -44,6 +44,7 @@ def set_options(opt):
opt.RECURSE('pidl')
opt.RECURSE('source3')
opt.RECURSE('lib/util')
+ opt.RECURSE('lib/crypto')
opt.RECURSE('ctdb')
opt.samba_add_onoff_option('pthreadpool', with_name="enable", without_name="disable", default=True)