diff options
author | Brent Cook <busterb@gmail.com> | 2023-02-21 00:25:04 -0600 |
---|---|---|
committer | Brent Cook <busterb@gmail.com> | 2023-02-21 00:25:04 -0600 |
commit | 8fc30eca61f019a784d06797bfb1805d26073814 (patch) | |
tree | 53648d3c78c1c78490a06b445975ee8cfd65aa25 | |
parent | c3e1e50cb19621ec5bcea424868f8e70fde60cdf (diff) | |
download | portable-8fc30eca61f019a784d06797bfb1805d26073814.tar.gz portable-8fc30eca61f019a784d06797bfb1805d26073814.tar.bz2 portable-8fc30eca61f019a784d06797bfb1805d26073814.zip |
generate and include arch-specific headers for CMake builds
-rw-r--r-- | CMakeLists.txt | 28 | ||||
-rw-r--r-- | crypto/CMakeLists.txt | 37 | ||||
-rw-r--r-- | include/CMakeLists.txt | 23 |
3 files changed, 82 insertions, 6 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 68a7c2d..5fddd7f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt | |||
@@ -306,6 +306,32 @@ if(HAVE_NETINET_IP_H) | |||
306 | add_definitions(-DHAVE_NETINET_IP_H) | 306 | add_definitions(-DHAVE_NETINET_IP_H) |
307 | endif() | 307 | endif() |
308 | 308 | ||
309 | if("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(aarch64|arm64)") | ||
310 | set(HOST_AARCH64 true) | ||
311 | elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "arm") | ||
312 | set(HOST_ARM true) | ||
313 | elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "SunOS" AND "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "i386") | ||
314 | set(HOST_X86_64 true) | ||
315 | elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "i386") | ||
316 | set(HOST_I386 true) | ||
317 | elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "mips64") | ||
318 | set(HOST_MIPS64 true) | ||
319 | elseif("${CMAKE_SYSTEM_NAME}" MATCHES "mips") | ||
320 | set(HOST_MIPS true) | ||
321 | elseif("${CMAKE_SYSTEM_NAME}" MATCHES "powerpc") | ||
322 | set(HOST_POWERPC true) | ||
323 | elseif("${CMAKE_SYSTEM_NAME}" MATCHES "ppc64") | ||
324 | set(HOST_PPC64 true) | ||
325 | elseif("${CMAKE_SYSTEM_NAME}" MATCHES "riscv64") | ||
326 | set(HOST_RISCV64 true) | ||
327 | elseif("${CMAKE_SYSTEM_NAME}" MATCHES "sparc64") | ||
328 | set(HOST_SPARC64 true) | ||
329 | elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(x86_64|amd64)") | ||
330 | set(HOST_X86_64 true) | ||
331 | else() | ||
332 | set(ENABLE_ASM false) | ||
333 | endif() | ||
334 | |||
309 | if(ENABLE_ASM) | 335 | if(ENABLE_ASM) |
310 | if("${CMAKE_C_COMPILER_ABI}" STREQUAL "ELF") | 336 | if("${CMAKE_C_COMPILER_ABI}" STREQUAL "ELF") |
311 | if("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(x86_64|amd64)") | 337 | if("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(x86_64|amd64)") |
@@ -361,13 +387,13 @@ else() | |||
361 | set(LIBTLS_TEST_LIBS tls ${PLATFORM_LIBS}) | 387 | set(LIBTLS_TEST_LIBS tls ${PLATFORM_LIBS}) |
362 | endif() | 388 | endif() |
363 | 389 | ||
390 | add_subdirectory(include) | ||
364 | add_subdirectory(crypto) | 391 | add_subdirectory(crypto) |
365 | add_subdirectory(ssl) | 392 | add_subdirectory(ssl) |
366 | if(LIBRESSL_APPS) | 393 | if(LIBRESSL_APPS) |
367 | add_subdirectory(apps) | 394 | add_subdirectory(apps) |
368 | endif() | 395 | endif() |
369 | add_subdirectory(tls) | 396 | add_subdirectory(tls) |
370 | add_subdirectory(include) | ||
371 | if(NOT MSVC) | 397 | if(NOT MSVC) |
372 | add_subdirectory(man) | 398 | add_subdirectory(man) |
373 | endif() | 399 | endif() |
diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt index a595022..65bdf49 100644 --- a/crypto/CMakeLists.txt +++ b/crypto/CMakeLists.txt | |||
@@ -47,6 +47,18 @@ if(HOST_ASM_ELF_X86_64) | |||
47 | sha/sha512-elf-x86_64.S | 47 | sha/sha512-elf-x86_64.S |
48 | whrlpool/wp-elf-x86_64.S | 48 | whrlpool/wp-elf-x86_64.S |
49 | cpuid-elf-x86_64.S | 49 | cpuid-elf-x86_64.S |
50 | |||
51 | bn/arch/amd64/bignum_add.S | ||
52 | bn/arch/amd64/bignum_cmadd.S | ||
53 | bn/arch/amd64/bignum_cmul.S | ||
54 | bn/arch/amd64/bignum_mul.S | ||
55 | bn/arch/amd64/bignum_mul_4_8_alt.S | ||
56 | bn/arch/amd64/bignum_mul_8_16_alt.S | ||
57 | bn/arch/amd64/bignum_sqr.S | ||
58 | bn/arch/amd64/bignum_sqr_4_8_alt.S | ||
59 | bn/arch/amd64/bignum_sqr_8_16_alt.S | ||
60 | bn/arch/amd64/bignum_sub.S | ||
61 | bn/arch/amd64/bn_arch.c | ||
50 | ) | 62 | ) |
51 | add_definitions(-DAES_ASM) | 63 | add_definitions(-DAES_ASM) |
52 | add_definitions(-DBSAES_ASM) | 64 | add_definitions(-DBSAES_ASM) |
@@ -331,16 +343,13 @@ set( | |||
331 | bio/bss_null.c | 343 | bio/bss_null.c |
332 | bio/bss_sock.c | 344 | bio/bss_sock.c |
333 | bn/bn_add.c | 345 | bn/bn_add.c |
334 | bn/bn_asm.c | ||
335 | bn/bn_blind.c | 346 | bn/bn_blind.c |
336 | bn/bn_bpsw.c | 347 | bn/bn_bpsw.c |
337 | bn/bn_const.c | 348 | bn/bn_const.c |
338 | bn/bn_ctx.c | 349 | bn/bn_ctx.c |
339 | bn/bn_depr.c | ||
340 | bn/bn_div.c | 350 | bn/bn_div.c |
341 | bn/bn_err.c | 351 | bn/bn_err.c |
342 | bn/bn_exp.c | 352 | bn/bn_exp.c |
343 | bn/bn_exp2.c | ||
344 | bn/bn_gcd.c | 353 | bn/bn_gcd.c |
345 | bn/bn_gf2m.c | 354 | bn/bn_gf2m.c |
346 | bn/bn_isqrt.c | 355 | bn/bn_isqrt.c |
@@ -461,8 +470,6 @@ set( | |||
461 | dsa/dsa_ossl.c | 470 | dsa/dsa_ossl.c |
462 | dsa/dsa_pmeth.c | 471 | dsa/dsa_pmeth.c |
463 | dsa/dsa_prn.c | 472 | dsa/dsa_prn.c |
464 | dsa/dsa_sign.c | ||
465 | dsa/dsa_vrf.c | ||
466 | dso/dso_dlfcn.c | 473 | dso/dso_dlfcn.c |
467 | dso/dso_err.c | 474 | dso/dso_err.c |
468 | dso/dso_lib.c | 475 | dso/dso_lib.c |
@@ -1010,6 +1017,26 @@ target_include_directories(crypto_obj | |||
1010 | PUBLIC | 1017 | PUBLIC |
1011 | ../include) | 1018 | ../include) |
1012 | 1019 | ||
1020 | if(HOST_AARCH64) | ||
1021 | target_include_directories(crypto_obj PRIVATE bn/arch/aarch64/) | ||
1022 | elseif(HOST_ARM) | ||
1023 | target_include_directories(crypto_obj PRIVATE bn/arch/arm/) | ||
1024 | elseif(HOST_I386) | ||
1025 | target_include_directories(crypto_obj PRIVATE bn/arch/i386/) | ||
1026 | elseif(HOST_MIPS64) | ||
1027 | target_include_directories(crypto_obj PRIVATE bn/arch/mips64) | ||
1028 | elseif(HOST_POWERPC) | ||
1029 | target_include_directories(crypto_obj PRIVATE bn/arch/powerpc) | ||
1030 | elseif(HOST_POWERPC64) | ||
1031 | target_include_directories(crypto_obj PRIVATE bn/arch/powerpc64) | ||
1032 | elseif(HOST_RISCV64) | ||
1033 | target_include_directories(crypto_obj PRIVATE bn/arch/riscv64) | ||
1034 | elseif(HOST_SPARC64) | ||
1035 | target_include_directories(crypto_obj PRIVATE bn/arch/sparc64) | ||
1036 | elseif(HOST_X86_64) | ||
1037 | target_include_directories(crypto_obj PRIVATE bn/arch/amd64) | ||
1038 | endif() | ||
1039 | |||
1013 | add_library(crypto $<TARGET_OBJECTS:crypto_obj> empty.c) | 1040 | add_library(crypto $<TARGET_OBJECTS:crypto_obj> empty.c) |
1014 | 1041 | ||
1015 | export_symbol(crypto ${CMAKE_CURRENT_BINARY_DIR}/crypto_p.sym) | 1042 | export_symbol(crypto ${CMAKE_CURRENT_BINARY_DIR}/crypto_p.sym) |
diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index 1d1a159..dafdee7 100644 --- a/include/CMakeLists.txt +++ b/include/CMakeLists.txt | |||
@@ -6,3 +6,26 @@ if(ENABLE_LIBRESSL_INSTALL) | |||
6 | PATTERN "pqueue.h" EXCLUDE | 6 | PATTERN "pqueue.h" EXCLUDE |
7 | PATTERN "Makefile*" EXCLUDE) | 7 | PATTERN "Makefile*" EXCLUDE) |
8 | endif(ENABLE_LIBRESSL_INSTALL) | 8 | endif(ENABLE_LIBRESSL_INSTALL) |
9 | |||
10 | file(READ openssl/opensslconf.h.in OPENSSLCONF) | ||
11 | file(WRITE openssl/opensslconf.h "${OPENSSLCONF}") | ||
12 | if(HOST_AARCH64) | ||
13 | file(READ arch/aarch64/opensslconf.h OPENSSLCONF) | ||
14 | elseif(HOST_ARM) | ||
15 | file(READ arch/arm/opensslconf.h OPENSSLCONF) | ||
16 | elseif(HOST_I386) | ||
17 | file(READ arch/i386/opensslconf.h OPENSSLCONF) | ||
18 | elseif(HOST_MIPS64) | ||
19 | file(READ arch/mips64/opensslconf.h OPENSSLCONF) | ||
20 | elseif(HOST_POWERPC) | ||
21 | file(READ arch/powerpc/opensslconf.h OPENSSLCONF) | ||
22 | elseif(HOST_POWERPC64) | ||
23 | file(READ arch/powerpc64/opensslconf.h OPENSSLCONF) | ||
24 | elseif(HOST_RISCV64) | ||
25 | file(READ arch/riscv64/opensslconf.h OPENSSLCONF) | ||
26 | elseif(HOST_SPARC64) | ||
27 | file(READ arch/sparc64/opensslconf.h OPENSSLCONF) | ||
28 | elseif(HOST_X86_64) | ||
29 | file(READ arch/amd64/opensslconf.h OPENSSLCONF) | ||
30 | endif() | ||
31 | file(APPEND openssl/opensslconf.h "${OPENSSLCONF}") | ||