diff --git a/lang/lfortran/Makefile b/lang/lfortran/Makefile index 957ce30def53..a42b5ca3087b 100644 --- a/lang/lfortran/Makefile +++ b/lang/lfortran/Makefile @@ -1,43 +1,44 @@ PORTNAME= lfortran DISTVERSIONPREFIX= v DISTVERSION= 0.18.0 +PORTREVISION= 1 CATEGORIES= lang MAINTAINER= fortran@FreeBSD.org COMMENT= Modern interactive Fortran compiler built on top of LLVM WWW= https://lfortran.org/ LICENSE= BSD3CLAUSE BUILD_DEPENDS= bash:shells/bash \ re2c>0:devel/re2c \ dwarfdump:devel/dwarfdump \ rapidjson>0:devel/rapidjson LIB_DEPENDS= libfmt.so:devel/libfmt \ libunwind.so:devel/libunwind \ libLLVM-${LLVM_VERSION}.so:devel/llvm${LLVM_VERSION} RUN_DEPENDS= dwarfdump:devel/dwarfdump USE_GITHUB= yes USES= bison cmake:testing compiler:c++17-lang python:build shebangfix SHEBANG_FILES= *.sh BINARY_ALIAS= python=${PYTHON_CMD} CMAKE_ON= LFORTRAN_BUILD_ALL WITH_DWARFDUMP WITH_FMT WITH_JSON WITH_LINKH WITH_LLVM WITH_UNWIND LLVM_VERSION= 11 OPTIONS_DEFINE= DOCS # Xeus: version 2.4.1 is required #LIB_DEPENDS+= libxeus.so:devel/xeus #CMAKE_ON+= WITH_XEUS # BFD: /usr/local/include/bfd.h:2108:3: error: unknown type name 'ENUM_BITFIELD' #USE_BINUTILS= yes #CMAKE_ON+= WITH_BFD pre-configure: ${ECHO_CMD} ${PORTVERSION} > ${WRKSRC}/version .include diff --git a/lang/lfortran/files/patch-src_bin_CMakeLists.txt b/lang/lfortran/files/patch-src_bin_CMakeLists.txt new file mode 100644 index 000000000000..10b23734303d --- /dev/null +++ b/lang/lfortran/files/patch-src_bin_CMakeLists.txt @@ -0,0 +1,24 @@ +--- src/bin/CMakeLists.txt.orig 2022-10-18 21:48:01 UTC ++++ src/bin/CMakeLists.txt +@@ -2,7 +2,9 @@ add_executable(lfortran lfortran.cpp) + target_include_directories(lfortran PRIVATE "tpl") + target_link_libraries(lfortran lfortran_lib) + if (LFORTRAN_STATIC_BIN) +- if (CMAKE_SYSTEM_NAME STREQUAL "Linux") ++ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" ++ OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" ++ OR CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") + # Link statically on Linux with gcc or clang + if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR + CMAKE_CXX_COMPILER_ID MATCHES Clang) +@@ -11,7 +13,9 @@ if (LFORTRAN_STATIC_BIN) + endif() + endif() + +-if (CMAKE_SYSTEM_NAME STREQUAL "Linux") ++if (CMAKE_SYSTEM_NAME STREQUAL "Linux" ++ OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" ++ OR CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") + target_link_options(lfortran PRIVATE "LINKER:--export-dynamic") + endif() + diff --git a/lang/lfortran/files/patch-src_lfortran_tests_CMakeLists.txt b/lang/lfortran/files/patch-src_lfortran_tests_CMakeLists.txt new file mode 100644 index 000000000000..6e02b1e24c67 --- /dev/null +++ b/lang/lfortran/files/patch-src_lfortran_tests_CMakeLists.txt @@ -0,0 +1,13 @@ +--- src/lfortran/tests/CMakeLists.txt.orig 2022-10-18 21:48:01 UTC ++++ src/lfortran/tests/CMakeLists.txt +@@ -43,7 +43,9 @@ target_link_libraries(test_lfortran lfortran_lib p::do + add_test(test_lfortran ${PROJECT_BINARY_DIR}/test_lfortran) + + if (WITH_LLVM) +- if (CMAKE_SYSTEM_NAME STREQUAL "Linux") ++ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" ++ OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" ++ OR CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") + target_link_options(test_lfortran PRIVATE "LINKER:--export-dynamic") + endif() + endif()