aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrent Cook <busterb@gmail.com>2023-02-21 00:25:04 -0600
committerBrent Cook <busterb@gmail.com>2023-02-21 00:25:04 -0600
commit8fc30eca61f019a784d06797bfb1805d26073814 (patch)
tree53648d3c78c1c78490a06b445975ee8cfd65aa25
parentc3e1e50cb19621ec5bcea424868f8e70fde60cdf (diff)
downloadportable-8fc30eca61f019a784d06797bfb1805d26073814.tar.gz
portable-8fc30eca61f019a784d06797bfb1805d26073814.tar.bz2
portable-8fc30eca61f019a784d06797bfb1805d26073814.zip
generate and include arch-specific headers for CMake builds
-rw-r--r--CMakeLists.txt28
-rw-r--r--crypto/CMakeLists.txt37
-rw-r--r--include/CMakeLists.txt23
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)
307endif() 307endif()
308 308
309if("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(aarch64|arm64)")
310 set(HOST_AARCH64 true)
311elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "arm")
312 set(HOST_ARM true)
313elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "SunOS" AND "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "i386")
314 set(HOST_X86_64 true)
315elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "i386")
316 set(HOST_I386 true)
317elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "mips64")
318 set(HOST_MIPS64 true)
319elseif("${CMAKE_SYSTEM_NAME}" MATCHES "mips")
320 set(HOST_MIPS true)
321elseif("${CMAKE_SYSTEM_NAME}" MATCHES "powerpc")
322 set(HOST_POWERPC true)
323elseif("${CMAKE_SYSTEM_NAME}" MATCHES "ppc64")
324 set(HOST_PPC64 true)
325elseif("${CMAKE_SYSTEM_NAME}" MATCHES "riscv64")
326 set(HOST_RISCV64 true)
327elseif("${CMAKE_SYSTEM_NAME}" MATCHES "sparc64")
328 set(HOST_SPARC64 true)
329elseif("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(x86_64|amd64)")
330 set(HOST_X86_64 true)
331else()
332 set(ENABLE_ASM false)
333endif()
334
309if(ENABLE_ASM) 335if(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})
362endif() 388endif()
363 389
390add_subdirectory(include)
364add_subdirectory(crypto) 391add_subdirectory(crypto)
365add_subdirectory(ssl) 392add_subdirectory(ssl)
366if(LIBRESSL_APPS) 393if(LIBRESSL_APPS)
367 add_subdirectory(apps) 394 add_subdirectory(apps)
368endif() 395endif()
369add_subdirectory(tls) 396add_subdirectory(tls)
370add_subdirectory(include)
371if(NOT MSVC) 397if(NOT MSVC)
372 add_subdirectory(man) 398 add_subdirectory(man)
373endif() 399endif()
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
1020if(HOST_AARCH64)
1021 target_include_directories(crypto_obj PRIVATE bn/arch/aarch64/)
1022elseif(HOST_ARM)
1023 target_include_directories(crypto_obj PRIVATE bn/arch/arm/)
1024elseif(HOST_I386)
1025 target_include_directories(crypto_obj PRIVATE bn/arch/i386/)
1026elseif(HOST_MIPS64)
1027 target_include_directories(crypto_obj PRIVATE bn/arch/mips64)
1028elseif(HOST_POWERPC)
1029 target_include_directories(crypto_obj PRIVATE bn/arch/powerpc)
1030elseif(HOST_POWERPC64)
1031 target_include_directories(crypto_obj PRIVATE bn/arch/powerpc64)
1032elseif(HOST_RISCV64)
1033 target_include_directories(crypto_obj PRIVATE bn/arch/riscv64)
1034elseif(HOST_SPARC64)
1035 target_include_directories(crypto_obj PRIVATE bn/arch/sparc64)
1036elseif(HOST_X86_64)
1037 target_include_directories(crypto_obj PRIVATE bn/arch/amd64)
1038endif()
1039
1013add_library(crypto $<TARGET_OBJECTS:crypto_obj> empty.c) 1040add_library(crypto $<TARGET_OBJECTS:crypto_obj> empty.c)
1014 1041
1015export_symbol(crypto ${CMAKE_CURRENT_BINARY_DIR}/crypto_p.sym) 1042export_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)
8endif(ENABLE_LIBRESSL_INSTALL) 8endif(ENABLE_LIBRESSL_INSTALL)
9
10file(READ openssl/opensslconf.h.in OPENSSLCONF)
11file(WRITE openssl/opensslconf.h "${OPENSSLCONF}")
12if(HOST_AARCH64)
13 file(READ arch/aarch64/opensslconf.h OPENSSLCONF)
14elseif(HOST_ARM)
15 file(READ arch/arm/opensslconf.h OPENSSLCONF)
16elseif(HOST_I386)
17 file(READ arch/i386/opensslconf.h OPENSSLCONF)
18elseif(HOST_MIPS64)
19 file(READ arch/mips64/opensslconf.h OPENSSLCONF)
20elseif(HOST_POWERPC)
21 file(READ arch/powerpc/opensslconf.h OPENSSLCONF)
22elseif(HOST_POWERPC64)
23 file(READ arch/powerpc64/opensslconf.h OPENSSLCONF)
24elseif(HOST_RISCV64)
25 file(READ arch/riscv64/opensslconf.h OPENSSLCONF)
26elseif(HOST_SPARC64)
27 file(READ arch/sparc64/opensslconf.h OPENSSLCONF)
28elseif(HOST_X86_64)
29 file(READ arch/amd64/opensslconf.h OPENSSLCONF)
30endif()
31file(APPEND openssl/opensslconf.h "${OPENSSLCONF}")