From fe47a3975c90f6ddc77b0d7cce1169b3087558af Mon Sep 17 00:00:00 2001 From: atkawa7 Date: Tue, 28 Aug 2018 22:55:06 +0200 Subject: intelrdfpmathlib init (#4168) --- ports/intelrdfpmathlib/CMakeLists.txt | 289 ++++++++++++++++++++++++++++++++++ ports/intelrdfpmathlib/CONTROL | 3 + ports/intelrdfpmathlib/portfile.cmake | 25 +++ 3 files changed, 317 insertions(+) create mode 100644 ports/intelrdfpmathlib/CMakeLists.txt create mode 100644 ports/intelrdfpmathlib/CONTROL create mode 100644 ports/intelrdfpmathlib/portfile.cmake diff --git a/ports/intelrdfpmathlib/CMakeLists.txt b/ports/intelrdfpmathlib/CMakeLists.txt new file mode 100644 index 000000000..809cd3477 --- /dev/null +++ b/ports/intelrdfpmathlib/CMakeLists.txt @@ -0,0 +1,289 @@ +cmake_minimum_required(VERSION 3.8) +project(intelrdfpmathlib C) + +set( + intelrdfpmathlib_SOURCES + float128/dpml_exception.c + float128/dpml_four_over_pi.c + float128/dpml_ux_bessel.c + float128/dpml_ux_bid.c + float128/dpml_ux_cbrt.c + float128/dpml_ux_erf.c + float128/dpml_ux_exp.c + float128/dpml_ux_int.c + float128/dpml_ux_inv_hyper.c + float128/dpml_ux_inv_trig.c + float128/dpml_ux_lgamma.c + float128/dpml_ux_log.c + float128/dpml_ux_mod.c + float128/dpml_ux_ops.c + float128/dpml_ux_ops_64.c + float128/dpml_ux_pow.c + float128/dpml_ux_powi.c + float128/dpml_ux_sqrt.c + float128/dpml_ux_trig.c + float128/sqrt_tab_t.c + src/bid128.c + src/bid128_2_str_tables.c + src/bid128_acos.c + src/bid128_acosh.c + src/bid128_add.c + src/bid128_asin.c + src/bid128_asinh.c + src/bid128_atan.c + src/bid128_atan2.c + src/bid128_atanh.c + src/bid128_cbrt.c + src/bid128_compare.c + src/bid128_cos.c + src/bid128_cosh.c + src/bid128_div.c + src/bid128_erf.c + src/bid128_erfc.c + src/bid128_exp.c + src/bid128_exp10.c + src/bid128_exp2.c + src/bid128_expm1.c + src/bid128_fdimd.c + src/bid128_fma.c + src/bid128_fmod.c + src/bid128_frexp.c + src/bid128_hypot.c + src/bid128_ldexp.c + src/bid128_lgamma.c + src/bid128_llrintd.c + src/bid128_log.c + src/bid128_log10.c + src/bid128_log1p.c + src/bid128_log2.c + src/bid128_logb.c + src/bid128_logbd.c + src/bid128_lrintd.c + src/bid128_lround.c + src/bid128_minmax.c + src/bid128_modf.c + src/bid128_mul.c + src/bid128_nearbyintd.c + src/bid128_next.c + src/bid128_nexttowardd.c + src/bid128_noncomp.c + src/bid128_pow.c + src/bid128_quantexpd.c + src/bid128_quantize.c + src/bid128_rem.c + src/bid128_round_integral.c + src/bid128_scalb.c + src/bid128_scalbl.c + src/bid128_sin.c + src/bid128_sinh.c + src/bid128_sqrt.c + src/bid128_string.c + src/bid128_tan.c + src/bid128_tanh.c + src/bid128_tgamma.c + src/bid128_to_int16.c + src/bid128_to_int32.c + src/bid128_to_int64.c + src/bid128_to_int8.c + src/bid128_to_uint16.c + src/bid128_to_uint32.c + src/bid128_to_uint64.c + src/bid128_to_uint8.c + src/bid32_acos.c + src/bid32_acosh.c + src/bid32_add.c + src/bid32_asin.c + src/bid32_asinh.c + src/bid32_atan.c + src/bid32_atan2.c + src/bid32_atanh.c + src/bid32_cbrt.c + src/bid32_compare.c + src/bid32_cos.c + src/bid32_cosh.c + src/bid32_div.c + src/bid32_erf.c + src/bid32_erfc.c + src/bid32_exp.c + src/bid32_exp10.c + src/bid32_exp2.c + src/bid32_expm1.c + src/bid32_fdimd.c + src/bid32_fma.c + src/bid32_fmod.c + src/bid32_frexp.c + src/bid32_hypot.c + src/bid32_ldexp.c + src/bid32_lgamma.c + src/bid32_llrintd.c + src/bid32_log.c + src/bid32_log10.c + src/bid32_log1p.c + src/bid32_log2.c + src/bid32_logb.c + src/bid32_logbd.c + src/bid32_lrintd.c + src/bid32_lround.c + src/bid32_minmax.c + src/bid32_modf.c + src/bid32_mul.c + src/bid32_nearbyintd.c + src/bid32_next.c + src/bid32_nexttowardd.c + src/bid32_noncomp.c + src/bid32_pow.c + src/bid32_quantexpd.c + src/bid32_quantize.c + src/bid32_rem.c + src/bid32_round_integral.c + src/bid32_scalb.c + src/bid32_scalbl.c + src/bid32_sin.c + src/bid32_sinh.c + src/bid32_sqrt.c + src/bid32_string.c + src/bid32_sub.c + src/bid32_tan.c + src/bid32_tanh.c + src/bid32_tgamma.c + src/bid32_to_bid128.c + src/bid32_to_bid64.c + src/bid32_to_int16.c + src/bid32_to_int32.c + src/bid32_to_int64.c + src/bid32_to_int8.c + src/bid32_to_uint16.c + src/bid32_to_uint32.c + src/bid32_to_uint64.c + src/bid32_to_uint8.c + src/bid64_acos.c + src/bid64_acosh.c + src/bid64_add.c + src/bid64_asin.c + src/bid64_asinh.c + src/bid64_atan.c + src/bid64_atan2.c + src/bid64_atanh.c + src/bid64_cbrt.c + src/bid64_compare.c + src/bid64_cos.c + src/bid64_cosh.c + src/bid64_div.c + src/bid64_erf.c + src/bid64_erfc.c + src/bid64_exp.c + src/bid64_exp10.c + src/bid64_exp2.c + src/bid64_expm1.c + src/bid64_fdimd.c + src/bid64_fma.c + src/bid64_fmod.c + src/bid64_frexp.c + src/bid64_hypot.c + src/bid64_ldexp.c + src/bid64_lgamma.c + src/bid64_llrintd.c + src/bid64_log.c + src/bid64_log10.c + src/bid64_log1p.c + src/bid64_log2.c + src/bid64_logb.c + src/bid64_logbd.c + src/bid64_lrintd.c + src/bid64_lround.c + src/bid64_minmax.c + src/bid64_modf.c + src/bid64_mul.c + src/bid64_nearbyintd.c + src/bid64_next.c + src/bid64_nexttowardd.c + src/bid64_noncomp.c + src/bid64_pow.c + src/bid64_quantexpd.c + src/bid64_quantize.c + src/bid64_rem.c + src/bid64_round_integral.c + src/bid64_scalb.c + src/bid64_scalbl.c + src/bid64_sin.c + src/bid64_sinh.c + src/bid64_sqrt.c + src/bid64_string.c + src/bid64_tan.c + src/bid64_tanh.c + src/bid64_tgamma.c + src/bid64_to_bid128.c + src/bid64_to_int16.c + src/bid64_to_int32.c + src/bid64_to_int64.c + src/bid64_to_int8.c + src/bid64_to_uint16.c + src/bid64_to_uint32.c + src/bid64_to_uint64.c + src/bid64_to_uint8.c + src/bid_binarydecimal.c + src/bid_convert_data.c + src/bid_decimal_data.c + src/bid_decimal_globals.c + src/bid_dpd.c + src/bid_feclearexcept.c + src/bid_fegetexceptflag.c + src/bid_feraiseexcept.c + src/bid_fesetexceptflag.c + src/bid_fetestexcept.c + src/bid_flag_operations.c + src/bid_from_int.c + src/bid_round.c + src/strtod128.c + src/strtod32.c + src/strtod64.c + src/wcstod128.c + src/wcstod32.c + src/wcstod64.c +) + +if(MSVC) + add_compile_options(/W3 ) +else() + add_compile_options(-w) +endif() + +if(WIN32) + if(CMAKE_SIZEOF_VOID_P EQUAL 8) + add_compile_options(-Defi2=1 -DEFI2=1) + else() + add_compile_options(-DIA32= -Dia32=1) + endif() +else() + add_compile_options(-Defi2=1 -DEFI2=1) +endif() + + +include_directories(. src float128) + +add_library(intel_decimal128 ${intelrdfpmathlib_SOURCES}) + +target_compile_definitions( + intel_decimal128 PRIVATE -DDECIMAL_CALL_BY_REFERENCE=0 -DDECIMAL_GLOBAL_ROUNDING=0 -DDECIMAL_GLOBAL_EXCEPTION_FLAGS=0 +) + +if(WIN32) + target_compile_definitions(intel_decimal128 PRIVATE -DWINDOWS=1 -DWNT=1 -Dwinnt=1) +elseif(APPLE) + target_compile_definitions(intel_decimal128 PRIVATE -DLINUX=1 -Dmach=1) +elseif(CMAKE_SYSTEM_NAME MATCHES "(FreeBSD|OpenBSD|NetBSD)") + target_compile_definitions(intel_decimal128 PRIVATE -DLINUX=1 -Dfreebsd=1) +else() + target_compile_definitions(intel_decimal128 PRIVATE -DLINUX=1 -Dlinux=1) +endif() + +install( + TARGETS intel_decimal128 + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +if(NOT DISABLE_INSTALL_HEADERS) + install(FILES src/dfp754.h DESTINATION include) +endif() diff --git a/ports/intelrdfpmathlib/CONTROL b/ports/intelrdfpmathlib/CONTROL new file mode 100644 index 000000000..5c7fe7b59 --- /dev/null +++ b/ports/intelrdfpmathlib/CONTROL @@ -0,0 +1,3 @@ +Source: intelrdfpmathlib +Version: 20U2 +Description: Intel(R) Decimal Floating-Point Math Library diff --git a/ports/intelrdfpmathlib/portfile.cmake b/ports/intelrdfpmathlib/portfile.cmake new file mode 100644 index 000000000..e463f0a77 --- /dev/null +++ b/ports/intelrdfpmathlib/portfile.cmake @@ -0,0 +1,25 @@ +include(vcpkg_common_functions) +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/IntelRDFPMathLib20U2) +vcpkg_download_distfile(ARCHIVE + URLS "http://www.netlib.org/misc/intel/IntelRDFPMathLib20U2.tar.gz" + FILENAME "IntelRDFPMathLib20U2.tar.gz" + SHA512 4d445855f41b066b784f0c6b4e52f854df4129fa9d43569b1e1518f002b860f69796459c78de46a8ea24fb6e7aefe7f8bc1f253e78971a5ef202dab2a7b1b75a +) +vcpkg_extract_source_archive(${ARCHIVE}) + +set(LIB_SOURCE_PATH "${SOURCE_PATH}/LIBRARY") + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION "${LIB_SOURCE_PATH}") + +vcpkg_configure_cmake( + SOURCE_PATH "${LIB_SOURCE_PATH}" + PREFER_NINJA + OPTIONS_DEBUG + -DDISABLE_INSTALL_HEADERS=ON +) + +vcpkg_install_cmake() + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/eula.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/IntelRDFPMathLib RENAME copyright) -- cgit v1.2.3