aboutsummaryrefslogtreecommitdiff
path: root/lang/opencoarrays
diff options
context:
space:
mode:
authorTijl Coosemans <tijl@FreeBSD.org>2017-03-12 21:35:52 +0000
committerTijl Coosemans <tijl@FreeBSD.org>2017-03-12 21:35:52 +0000
commit9c6124395c9a907b3acadaf9b36079a14cd59cdd (patch)
treec701dedad182714b986e55bb7ed5fa24e493bada /lang/opencoarrays
parentc958325f6d0d74a2e459434a565c8247893edb19 (diff)
downloadports-9c6124395c9a907b3acadaf9b36079a14cd59cdd.tar.gz
ports-9c6124395c9a907b3acadaf9b36079a14cd59cdd.zip
- Rename to lower case opencoarrays.
- Add parallel pseudo category. Requested by: danfe
Notes
Notes: svn path=/head/; revision=436029
Diffstat (limited to 'lang/opencoarrays')
-rw-r--r--lang/opencoarrays/Makefile56
-rw-r--r--lang/opencoarrays/distinfo3
-rw-r--r--lang/opencoarrays/files/patch-CMakeLists.txt51
-rw-r--r--lang/opencoarrays/files/patch-src_mpi_CMakeLists.txt39
-rw-r--r--lang/opencoarrays/files/patch-src_mpi_mpi__caf.c10
-rw-r--r--lang/opencoarrays/pkg-descr5
-rw-r--r--lang/opencoarrays/pkg-plist11
7 files changed, 175 insertions, 0 deletions
diff --git a/lang/opencoarrays/Makefile b/lang/opencoarrays/Makefile
new file mode 100644
index 000000000000..f3133a2d9f63
--- /dev/null
+++ b/lang/opencoarrays/Makefile
@@ -0,0 +1,56 @@
+# Created by: Anton Shterenlikht
+# $FreeBSD$
+
+PORTNAME= opencoarrays
+PORTVERSION= 1.8.4
+CATEGORIES= lang parallel
+
+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>
diff --git a/lang/opencoarrays/distinfo b/lang/opencoarrays/distinfo
new file mode 100644
index 000000000000..964606d86001
--- /dev/null
+++ b/lang/opencoarrays/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1489354410
+SHA256 (sourceryinstitute-opencoarrays-1.8.4_GH0.tar.gz) = c40b504a65ea2933a3b68979c4e08dc9522f22b7a8d560d734d1a8bc6bcc1ee7
+SIZE (sourceryinstitute-opencoarrays-1.8.4_GH0.tar.gz) = 243759
diff --git a/lang/opencoarrays/files/patch-CMakeLists.txt b/lang/opencoarrays/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..8ad128f37217
--- /dev/null
+++ b/lang/opencoarrays/files/patch-CMakeLists.txt
@@ -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'
diff --git a/lang/opencoarrays/files/patch-src_mpi_CMakeLists.txt b/lang/opencoarrays/files/patch-src_mpi_CMakeLists.txt
new file mode 100644
index 000000000000..7c17d4782208
--- /dev/null
+++ b/lang/opencoarrays/files/patch-src_mpi_CMakeLists.txt
@@ -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)
diff --git a/lang/opencoarrays/files/patch-src_mpi_mpi__caf.c b/lang/opencoarrays/files/patch-src_mpi_mpi__caf.c
new file mode 100644
index 000000000000..d9b77ecbf050
--- /dev/null
+++ b/lang/opencoarrays/files/patch-src_mpi_mpi__caf.c
@@ -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>
diff --git a/lang/opencoarrays/pkg-descr b/lang/opencoarrays/pkg-descr
new file mode 100644
index 000000000000..885240773e4b
--- /dev/null
+++ b/lang/opencoarrays/pkg-descr
@@ -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/
diff --git a/lang/opencoarrays/pkg-plist b/lang/opencoarrays/pkg-plist
new file mode 100644
index 000000000000..1356c54fb976
--- /dev/null
+++ b/lang/opencoarrays/pkg-plist
@@ -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