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}") | ||
