diff --git a/math/libtommath/Makefile b/math/libtommath/Makefile index fbe85a92e75d..15711072a63e 100644 --- a/math/libtommath/Makefile +++ b/math/libtommath/Makefile @@ -1,28 +1,31 @@ PORTNAME= libtommath DISTVERSION= 1.3.0 PORTREVISION= 2 CATEGORIES= math -MASTER_SITES= https://github.com/libtom/libtommath/releases/download/v${DISTVERSION}/ +MASTER_SITES= https://github.com/libtom/${PORTNAME}/releases/download/v${DISTVERSION}/ DISTNAME= ltm-${DISTVERSION} MAINTAINER= gahr@FreeBSD.org COMMENT= Comprehensive, modular, and portable mathematical routines WWW= https://libtom.net/ LICENSE= UNLICENSE LICENSE_FILE= ${WRKSRC}/LICENSE USES= cmake:testing tar:xz +USE_LDCONFIG= yes -OPTIONS_DEFINE= OPTIMIZED_CFLAGS LTO -OPTIONS_DEFAULT=OPTIMIZED_CFLAGS LTO -OPTIMIZED_CFLAGS_CFLAGS= -O3 -funroll-loops -fomit-frame-pointer -LTO_CMAKE_BOOL= COMPILE_LTO - -CMAKE_ARGS= -DBUILD_TESTING:BOOL=ON \ - -DCMAKE_INSTALL_PKGCONFIGDIR:STRING=libdata/pkgconfig WRKSRC= ${WRKDIR}/${PORTNAME}-${DISTVERSION} -USE_LDCONFIG= yes +CMAKE_ON= BUILD_SHARED_LIBS +# Remove this in next release and use USES= pathfix instead +CMAKE_ARGS= -DCMAKE_INSTALL_PKGCONFIGDIR:STRING=libdata/pkgconfig + +OPTIONS_DEFINE= LTO OPTIMIZED_CFLAGS +OPTIONS_DEFAULT= LTO OPTIMIZED_CFLAGS + +LTO_CMAKE_BOOL= COMPILE_LTO + +OPTIMIZED_CFLAGS_CFLAGS= -O3 -funroll-loops -fomit-frame-pointer .include diff --git a/math/libtommath/files/patch-CMakeLists.txt b/math/libtommath/files/patch-CMakeLists.txt index 5a6bef8dcf3a..d4514a1a4e68 100644 --- a/math/libtommath/files/patch-CMakeLists.txt +++ b/math/libtommath/files/patch-CMakeLists.txt @@ -1,139 +1,161 @@ --- CMakeLists.txt.orig 2024-03-27 13:30:15 UTC +++ CMakeLists.txt -@@ -29,11 +29,6 @@ include(sources.cmake) +@@ -29,25 +29,6 @@ include(sources.cmake) include(sources.cmake) #----------------------------------------------------------------------------- -# Options -#----------------------------------------------------------------------------- -option(BUILD_SHARED_LIBS "Build shared library and only the shared library if \"ON\", default is static" OFF) - -#----------------------------------------------------------------------------- - # Add support for ccache if desired +-# Add support for ccache if desired +-#----------------------------------------------------------------------------- +-find_program(CCACHE ccache) +- +-if(CCACHE) +- option(ENABLE_CCACHE "Enable ccache." ON) +-endif() +- +-# use ccache if installed +-if(CCACHE AND ENABLE_CCACHE) +- set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE}) +-endif() +- +-#----------------------------------------------------------------------------- + # Compose CFLAGS #----------------------------------------------------------------------------- - find_program(CCACHE ccache) -@@ -68,10 +63,10 @@ else() + +@@ -68,17 +49,17 @@ else() set(LTM_C_FLAGS -Wall -Wsign-compare -Wextra -Wshadow -Wdeclaration-after-statement -Wbad-function-cast -Wcast-align -Wstrict-prototypes -Wpointer-arith -Wsystem-headers) - set(CMAKE_C_FLAGS_DEBUG "-g3") - set(CMAKE_C_FLAGS_RELEASE "-O3 -funroll-loops -fomit-frame-pointer") - set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g3 -O2") - set(CMAKE_C_FLAGS_MINSIZEREL "-Os") +# set(CMAKE_C_FLAGS_DEBUG "-g3") +# set(CMAKE_C_FLAGS_RELEASE "-O3 -funroll-loops -fomit-frame-pointer") +# set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g3 -O2") +# set(CMAKE_C_FLAGS_MINSIZEREL "-Os") endif() # What compiler do we have and what are their...uhm... peculiarities -@@ -103,6 +98,7 @@ add_library(${PROJECT_NAME} + if(CMAKE_C_COMPILER_ID MATCHES "(C|c?)lang") + list(APPEND LTM_C_FLAGS -Wno-typedef-redefinition -Wno-tautological-compare -Wno-builtin-requires-header) + # Clang requires at least '-O1' for dead code elimination +- set(CMAKE_C_FLAGS_DEBUG "-O1 ${CMAKE_C_FLAGS_DEBUG}") ++# set(CMAKE_C_FLAGS_DEBUG "-O1 ${CMAKE_C_FLAGS_DEBUG}") + endif() + if(CMAKE_C_COMPILER MATCHES "mingw") + list(APPEND LTM_C_FLAGS -Wno-shadow -Wno-expansion-to-defined -Wno-declaration-after-statement -Wno-bad-function-cast) +@@ -103,6 +84,7 @@ add_library(${PROJECT_NAME} # library target #----------------------------------------------------------------------------- add_library(${PROJECT_NAME} + OBJECT ${SOURCES} ${HEADERS} ) -@@ -125,12 +121,23 @@ endif() +@@ -125,12 +107,23 @@ endif() list(APPEND PUBLIC_HEADERS tommath_c89.h) endif() +add_library(${PROJECT_NAME}_shared SHARED $) +add_library(${PROJECT_NAME}_static STATIC $) set_target_properties(${PROJECT_NAME} PROPERTIES + POSITION_INDEPENDENT_CODE TRUE +) +set_target_properties(${PROJECT_NAME}_shared PROPERTIES OUTPUT_NAME tommath VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR} PUBLIC_HEADER "${PUBLIC_HEADERS}" ) +set_target_properties(${PROJECT_NAME}_static PROPERTIES + OUTPUT_NAME tommath + VERSION ${PROJECT_VERSION} + SOVERSION ${PROJECT_VERSION_MAJOR} + PUBLIC_HEADER "${PUBLIC_HEADERS}" +) option(COMPILE_LTO "Build with LTO enabled") if(COMPILE_LTO) -@@ -159,7 +166,7 @@ set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets") +@@ -159,7 +152,7 @@ set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets") set(PROJECT_CONFIG_FILE "${PROJECT_NAME}-config.cmake") set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets") -install(TARGETS ${PROJECT_NAME} +install(TARGETS ${PROJECT_NAME}_shared ${PROJECT_NAME}_static EXPORT ${TARGETS_EXPORT_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libraries -@@ -168,20 +175,18 @@ install(TARGETS ${PROJECT_NAME} +@@ -168,20 +161,18 @@ install(TARGETS ${PROJECT_NAME} ) # Install libtommath.pc for pkg-config if we build a shared library -if(BUILD_SHARED_LIBS) - # Let the user override the default directory of the pkg-config file (usually this shouldn't be required to be changed) - set(CMAKE_INSTALL_PKGCONFIGDIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig" CACHE PATH "Folder where to install .pc files") +# Let the user override the default directory of the pkg-config file (usually this shouldn't be required to be changed) +set(CMAKE_INSTALL_PKGCONFIGDIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig" CACHE PATH "Folder where to install .pc files") - configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc.in - ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc - @ONLY - ) +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc.in + ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc + @ONLY +) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc - DESTINATION ${CMAKE_INSTALL_PKGCONFIGDIR} - ) -endif() +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc + DESTINATION ${CMAKE_INSTALL_PKGCONFIGDIR} +) # generate package version file write_basic_package_version_file( -@@ -262,18 +267,11 @@ endif() +@@ -262,18 +253,11 @@ endif() list(APPEND CPACK_GENERATOR FREEBSD) endif() -set(LTM_DEBIAN_SHARED_PACKAGE_NAME "${PROJECT_NAME}${PACKAGE_NAME_SUFFIX}${PROJECT_VERSION_MAJOR}") - # general CPack config set(CPACK_PACKAGE_DIRECTORY ${CMAKE_BINARY_DIR}/packages/${DISTRO_PACK_PATH}) message(STATUS "CPack: packages will be generated under ${CPACK_PACKAGE_DIRECTORY}") -if(BUILD_SHARED_LIBS) - set(CPACK_PACKAGE_NAME "${PROJECT_NAME}${PROJECT_VERSION_MAJOR}") - set(CPACK_DEBIAN_PACKAGE_NAME "${LTM_DEBIAN_SHARED_PACKAGE_NAME}") -else() - set(CPACK_PACKAGE_NAME "${PROJECT_NAME}-devel") - set(CPACK_DEBIAN_LIBRARIES_PACKAGE_NAME "${PROJECT_NAME}${PACKAGE_NAME_SUFFIX}-dev") -endif() +set(CPACK_PACKAGE_NAME "${PROJECT_NAME}${PROJECT_VERSION_MAJOR}") +set(CPACK_DEBIAN_PACKAGE_NAME "${PROJECT_NAME}${PACKAGE_NAME_SUFFIX}${PROJECT_VERSION_MAJOR}") set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION}) set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "LibTomMath") set(CPACK_PACKAGE_VENDOR "libtom projects") -@@ -287,15 +285,7 @@ set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) +@@ -287,15 +271,7 @@ set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) set(CPACK_DEBIAN_DEBUGINFO_PACKAGE ON) set(CPACK_DEBIAN_PACKAGE_RELEASE ${PACKAGE_RELEASE_VERSION}) set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) -if(BUILD_SHARED_LIBS) - set(CPACK_DEBIAN_PACKAGE_SECTION "libs") -else() - set(CPACK_DEBIAN_PACKAGE_SECTION "devel") - set(CPACK_DEBIAN_PACKAGE_DEPENDS ${LTM_DEBIAN_SHARED_PACKAGE_NAME}) - set(CPACK_DEB_COMPONENT_INSTALL ON) - set(CPACK_ARCHIVE_COMPONENT_INSTALL ON) - set(CPACK_COMPONENTS_ALL Libraries) -endif() +set(CPACK_DEBIAN_PACKAGE_SECTION "libs") # rpm specific CPack config set(CPACK_RPM_PACKAGE_RELEASE ${PACKAGE_RELEASE_VERSION})