-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathbuild.rs
65 lines (64 loc) · 3.29 KB
/
build.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
use std::env;
fn main() {
let pure_rust = env::var("CARGO_FEATURE_PURE_RUST").is_ok();
if pure_rust {
return;
}
let arch = env::var("CARGO_CFG_TARGET_ARCH").expect("No target arch");
if arch == "wasm32" {
let src_dir = env::var("CARGO_MANIFEST_DIR").unwrap();
println!("cargo:rustc-link-lib=static=aegis");
println!("cargo:rustc-link-search=native={}/wasm-libs", src_dir);
return;
}
cc::Build::new()
.opt_level(3)
.flag_if_supported("-Wno-unused-command-line-argument")
.flag_if_supported("-Wno-unknown-pragmas")
.flag_if_supported("-mtune=native")
.flag_if_supported("-maes")
.flag_if_supported("-mcrypto")
.flag_if_supported("-mneon")
.flag_if_supported("-maes")
.include("src/c/libaegis/src/include")
.file("src/c/libaegis/src/aegis128l/aegis128l.c")
.file("src/c/libaegis/src/aegis128l/aegis128l_aesni.c")
.file("src/c/libaegis/src/aegis128l/aegis128l_altivec.c")
.file("src/c/libaegis/src/aegis128l/aegis128l_armcrypto.c")
.file("src/c/libaegis/src/aegis128l/aegis128l_soft.c")
.file("src/c/libaegis/src/aegis128x2/aegis128x2.c")
.file("src/c/libaegis/src/aegis128x2/aegis128x2_aesni.c")
.file("src/c/libaegis/src/aegis128x2/aegis128x2_altivec.c")
.file("src/c/libaegis/src/aegis128x2/aegis128x2_armcrypto.c")
.file("src/c/libaegis/src/aegis128x2/aegis128x2_avx2.c")
.file("src/c/libaegis/src/aegis128x2/aegis128x2_soft.c")
.file("src/c/libaegis/src/aegis128x4/aegis128x4.c")
.file("src/c/libaegis/src/aegis128x4/aegis128x4_aesni.c")
.file("src/c/libaegis/src/aegis128x4/aegis128x4_altivec.c")
.file("src/c/libaegis/src/aegis128x4/aegis128x4_armcrypto.c")
.file("src/c/libaegis/src/aegis128x4/aegis128x4_avx2.c")
.file("src/c/libaegis/src/aegis128x4/aegis128x4_avx512.c")
.file("src/c/libaegis/src/aegis128x4/aegis128x4_soft.c")
.file("src/c/libaegis/src/aegis256/aegis256.c")
.file("src/c/libaegis/src/aegis256/aegis256_aesni.c")
.file("src/c/libaegis/src/aegis256/aegis256_altivec.c")
.file("src/c/libaegis/src/aegis256/aegis256_armcrypto.c")
.file("src/c/libaegis/src/aegis256/aegis256_soft.c")
.file("src/c/libaegis/src/aegis256x2/aegis256x2.c")
.file("src/c/libaegis/src/aegis256x2/aegis256x2_aesni.c")
.file("src/c/libaegis/src/aegis256x2/aegis256x2_altivec.c")
.file("src/c/libaegis/src/aegis256x2/aegis256x2_armcrypto.c")
.file("src/c/libaegis/src/aegis256x2/aegis256x2_avx2.c")
.file("src/c/libaegis/src/aegis256x2/aegis256x2_soft.c")
.file("src/c/libaegis/src/aegis256x4/aegis256x4.c")
.file("src/c/libaegis/src/aegis256x4/aegis256x4_aesni.c")
.file("src/c/libaegis/src/aegis256x4/aegis256x4_altivec.c")
.file("src/c/libaegis/src/aegis256x4/aegis256x4_armcrypto.c")
.file("src/c/libaegis/src/aegis256x4/aegis256x4_avx2.c")
.file("src/c/libaegis/src/aegis256x4/aegis256x4_avx512.c")
.file("src/c/libaegis/src/aegis256x4/aegis256x4_soft.c")
.file("src/c/libaegis/src/common/common.c")
.file("src/c/libaegis/src/common/cpu.c")
.file("src/c/libaegis/src/common/softaes.c")
.compile("aegis_aesni");
}