Date: Sun, 12 Mar 2017 20:25:29 +0000 (UTC) From: Tijl Coosemans <tijl@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r436025 - in head/lang: . OpenCoarrays OpenCoarrays/files Message-ID: <201703122025.v2CKPT3j040756@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: tijl Date: Sun Mar 12 20:25:29 2017 New Revision: 436025 URL: https://svnweb.freebsd.org/changeset/ports/436025 Log: Add lang/OpenCoarrays, an implementation of Fortran coarrays using MPI. OpenCoarrays is an open-source software project that supports the coarray Fortran (CAF) parallel programming features of the Fortran 2008 standard and several features proposed for Fortran 2015. WWW: http://www.opencoarrays.org/ PR: 217283 Submitted by: Anton Shterenlikht <mexas@bris.ac.uk> Added: head/lang/OpenCoarrays/ head/lang/OpenCoarrays/Makefile (contents, props changed) head/lang/OpenCoarrays/distinfo (contents, props changed) head/lang/OpenCoarrays/files/ head/lang/OpenCoarrays/files/patch-CMakeLists.txt (contents, props changed) head/lang/OpenCoarrays/files/patch-src_mpi_CMakeLists.txt (contents, props changed) head/lang/OpenCoarrays/files/patch-src_mpi_mpi__caf.c (contents, props changed) head/lang/OpenCoarrays/pkg-descr (contents, props changed) head/lang/OpenCoarrays/pkg-plist (contents, props changed) Modified: head/lang/Makefile Modified: head/lang/Makefile ============================================================================== --- head/lang/Makefile Sun Mar 12 20:18:59 2017 (r436024) +++ head/lang/Makefile Sun Mar 12 20:25:29 2017 (r436025) @@ -4,6 +4,7 @@ COMMENT = Programming languages SUBDIR += Gofer + SUBDIR += OpenCoarrays SUBDIR += abcl SUBDIR += adacontrol SUBDIR += afnix Added: head/lang/OpenCoarrays/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lang/OpenCoarrays/Makefile Sun Mar 12 20:25:29 2017 (r436025) @@ -0,0 +1,56 @@ +# Created by: Anton Shterenlikht +# $FreeBSD$ + +PORTNAME= OpenCoarrays +PORTVERSION= 1.8.4 +CATEGORIES= lang + +MAINTAINER= mexas@bris.ac.uk +COMMENT= Transport layer for coarray Fortran compilers + +LICENSE= BSD3CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= bash:shells/bash +RUN_DEPENDS= bash:shells/bash + +USE_GITHUB= yes +GH_ACCOUNT= sourceryinstitute + +USES= cmake:outsource fortran shebangfix +PLIST_SUB= GCC_VER=${_GCC_VER} +SHEBANG_FILES= src/extensions/caf-head \ + src/extensions/cafrun-head + +OPTIONS_SINGLE= MPI +OPTIONS_SINGLE_MPI= MPICH OPENMPI OPENMPI2 +OPTIONS_DEFAULT= MPICH + +MPICH_DESC= Parallel processing support via MPICH +MPICH_BUILD_DEPENDS= mpif90:net/mpich +MPICH_RUN_DEPENDS= mpif90:net/mpich + +OPENMPI_BUILD_DEPENDS= ${LOCALBASE}/mpi/openmpi/bin/mpif90:net/openmpi +OPENMPI_RUN_DEPENDS= ${LOCALBASE}/mpi/openmpi/bin/mpif90:net/openmpi +OPENMPI_CONFIGURE_ENV= MPI_HOME=${LOCALBASE}/mpi/openmpi + +OPENMPI2_DESC= Parallel processing support via Open MPI v2 +OPENMPI2_BUILD_DEPENDS= ${LOCALBASE}/mpi/openmpi2/bin/mpif90:net/openmpi2 +OPENMPI2_RUN_DEPENDS= ${LOCALBASE}/mpi/openmpi2/bin/mpif90:net/openmpi2 +OPENMPI2_CONFIGURE_ENV= MPI_HOME=${LOCALBASE}/mpi/openmpi2 + +.include <bsd.port.options.mk> + +.if ${GCC_DEFAULT:R} < 5 +IGNORE= This port requires GCC 5 or higher. Add\ + DEFAULT_VERSIONS+=gcc=5 to /etc/make.conf +.endif + +post-patch: + @${REINPLACE_CMD} '/mod_install/s/$${CMAKE_Fortran_COMPILER_VERSION}/${_GCC_VER}/' \ + ${WRKSRC}/src/mpi/CMakeLists.txt + +do-test: + (cd ${TEST_WRKSRC} && ctest) + +.include <bsd.port.mk> Added: head/lang/OpenCoarrays/distinfo ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lang/OpenCoarrays/distinfo Sun Mar 12 20:25:29 2017 (r436025) @@ -0,0 +1,3 @@ +TIMESTAMP = 1487389722 +SHA256 (sourceryinstitute-OpenCoarrays-1.8.4_GH0.tar.gz) = c40b504a65ea2933a3b68979c4e08dc9522f22b7a8d560d734d1a8bc6bcc1ee7 +SIZE (sourceryinstitute-OpenCoarrays-1.8.4_GH0.tar.gz) = 243759 Added: head/lang/OpenCoarrays/files/patch-CMakeLists.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lang/OpenCoarrays/files/patch-CMakeLists.txt Sun Mar 12 20:25:29 2017 (r436025) @@ -0,0 +1,51 @@ +--- CMakeLists.txt.orig 2017-02-07 05:19:01 UTC ++++ CMakeLists.txt +@@ -164,48 +164,6 @@ if ( (NOT MPI_C_FOUND) OR (NOT MPI_Fortr + find_package( MPI REQUIRED ) + endif() + +-#-------------------------------------------------------- +-# Make sure a simple "hello world" C mpi program compiles +-#-------------------------------------------------------- +-set(OLD_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS}) +-set(CMAKE_REQUIRED_FLAGS ${MPI_C_COMPILE_FLAGS} ${MPI_C_LINK_FLAGS}) +-set(OLD_INCLUDES ${CMAKE_REQUIRED_INCLUDES}) +-set(CMAKE_REQUIRED_INCLUDES ${MPI_C_INCLUDE_PATH}) +-set(OLD_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}) +-set(CMAKE_REQUIRED_LIBRARIES ${MPI_C_LIBRARIES}) +-include (CheckCSourceCompiles) +-CHECK_C_SOURCE_COMPILES(" +-#include <mpi.h> +-#include <stdio.h> +-int main(int argc, char** argv) { +- MPI_Init(NULL, NULL); +- int world_size; +- MPI_Comm_size(MPI_COMM_WORLD, &world_size); +- int world_rank; +- MPI_Comm_rank(MPI_COMM_WORLD, &world_rank); +- char processor_name[MPI_MAX_PROCESSOR_NAME]; +- int name_len; +- MPI_Get_processor_name(processor_name, &name_len); +- printf('Hello world from processor %s, rank %d out of %d processors', +- processor_name, world_rank, world_size); +- MPI_Finalize(); +-}" +-MPI_C_COMPILES) +-set(CMAKE_REQUIRED_FLAGS ${OLD_REQUIRED_FLAGS}) +-set(CMAKE_REQUIRED_INCLUDES ${OLD_INCLUDES}) +-set(CMAKE_REQUIRED_LIBRARIES ${OLD_LIBRARIES}) +-unset(OLD_REQUIRED_FLAGS) +-unset(OLD_INCLUDES) +-unset(OLD_LIBRARIES) +- +-if (NOT MPI_C_COMPILES) +- message(FATAL_ERROR "MPI_C is missing! " +- "Try setting MPI_C_COMPILER to the appropriate C compiler wrapper script and reconfigure. " +- "i.e., `cmake -DMPI_C_COMPILER=/path/to/mpicc ..` or set it by editing the cache using " +- "cmake-gui or ccmake." +- ) +-endif() +- + #-------------------------------------------------------------- + # Make sure a simple "hello world" Fortran mpi program compiles + # Try using mpi.mod first then fall back on includ 'mpif.h' Added: head/lang/OpenCoarrays/files/patch-src_mpi_CMakeLists.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lang/OpenCoarrays/files/patch-src_mpi_CMakeLists.txt Sun Mar 12 20:25:29 2017 (r436025) @@ -0,0 +1,39 @@ +--- src/mpi/CMakeLists.txt.orig 2017-02-07 05:19:01 UTC ++++ src/mpi/CMakeLists.txt +@@ -58,15 +58,15 @@ install(TARGETS caf_mpi EXPORT OpenCoarr + ) + + # Install modules to standard include dir, but namespace them with compiler/version +-set (mod_install "${CMAKE_INSTALL_FULL_INCLUDEDIR}/OpenCoarrays/${CMAKE_Fortran_COMPILER_ID}/${CMAKE_Fortran_COMPILER_VERSION}") ++set (mod_install "OpenCoarrays/${CMAKE_Fortran_COMPILER_ID}/${CMAKE_Fortran_COMPILER_VERSION}") + install(DIRECTORY "${CMAKE_BINARY_DIR}/mod/" +- DESTINATION "${mod_install}" ++ DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}/${mod_install}" + FILES_MATCHING PATTERN "*.mod" + ) + + # Now add a link in standard include dir so that compilers will find by default... this may or may not actually be a good idea... + if ( "${CMAKE_Fortran_COMPILER_ID}" MATCHES "GNU" ) +- INSTALL(CODE "execute_process( COMMAND ${CMAKE_COMMAND} -E create_symlink ${mod_install}/opencoarrays.mod ${CMAKE_INSTALL_FULL_INCLUDEDIR}/opencoarrays.mod )" ++ INSTALL(CODE "execute_process( COMMAND ${CMAKE_COMMAND} -E create_symlink ${mod_install}/opencoarrays.mod \$ENV{DESTDIR}${CMAKE_INSTALL_FULL_INCLUDEDIR}/opencoarrays.mod )" + ) + endif () + +@@ -76,7 +76,7 @@ set(exe_dir ${CMAKE_BINARY_DIR}/bin_stag + set(compiler_wrapper ${exe_dir}/caf) + install( + FILES "${compiler_wrapper}" +- PERMISSIONS WORLD_EXECUTE WORLD_READ WORLD_WRITE OWNER_EXECUTE OWNER_READ OWNER_WRITE GROUP_EXECUTE GROUP_READ GROUP_WRITE ++ PERMISSIONS WORLD_EXECUTE WORLD_READ OWNER_EXECUTE OWNER_READ GROUP_EXECUTE GROUP_READ + DESTINATION "${CMAKE_INSTALL_BINDIR}" + ) + file(READ ${CMAKE_CURRENT_SOURCE_DIR}/../extensions/caf-head CAF_HEADER) +@@ -109,7 +109,7 @@ file(APPEND "${compiler_wrapper}" "${FOO + set(caf_launcher ${exe_dir}/cafrun) + install( + FILES "${caf_launcher}" +- PERMISSIONS WORLD_EXECUTE WORLD_READ WORLD_WRITE OWNER_EXECUTE OWNER_READ OWNER_WRITE GROUP_EXECUTE GROUP_READ GROUP_WRITE ++ PERMISSIONS WORLD_EXECUTE WORLD_READ OWNER_EXECUTE OWNER_READ GROUP_EXECUTE GROUP_READ + DESTINATION "${CMAKE_INSTALL_BINDIR}" + ) + file(READ ${CMAKE_CURRENT_SOURCE_DIR}/../extensions/cafrun-head CAFRUN_HEADER) Added: head/lang/OpenCoarrays/files/patch-src_mpi_mpi__caf.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lang/OpenCoarrays/files/patch-src_mpi_mpi__caf.c Sun Mar 12 20:25:29 2017 (r436025) @@ -0,0 +1,10 @@ +--- src/mpi/mpi_caf.c.orig 2017-02-07 05:19:01 UTC ++++ src/mpi/mpi_caf.c +@@ -37,7 +37,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI + #include <stdlib.h> + #include <string.h> /* For memcpy. */ + #include <stdarg.h> /* For variadic arguments. */ +-#include <alloca.h> + #include <unistd.h> + #include <mpi.h> + #include <pthread.h> Added: head/lang/OpenCoarrays/pkg-descr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lang/OpenCoarrays/pkg-descr Sun Mar 12 20:25:29 2017 (r436025) @@ -0,0 +1,5 @@ +OpenCoarrays is an open-source software project that supports the coarray +Fortran (CAF) parallel programming features of the Fortran 2008 standard +and several features proposed for Fortran 2015. + +WWW: http://www.opencoarrays.org/ Added: head/lang/OpenCoarrays/pkg-plist ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lang/OpenCoarrays/pkg-plist Sun Mar 12 20:25:29 2017 (r436025) @@ -0,0 +1,11 @@ +bin/caf +bin/cafrun +include/OpenCoarrays/GNU/%%GCC_VER%%/opencoarrays.mod +include/libcaf-gfortran-descriptor.h +include/libcaf.h +include/opencoarrays.mod +lib/cmake/opencoarrays/OpenCoarraysConfig.cmake +lib/cmake/opencoarrays/OpenCoarraysConfigVersion.cmake +lib/cmake/opencoarrays/OpenCoarraysTargets-%%CMAKE_BUILD_TYPE%%.cmake +lib/cmake/opencoarrays/OpenCoarraysTargets.cmake +lib/libcaf_mpi.a
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201703122025.v2CKPT3j040756>