View | Details | Raw Unified | Return to bug 217283 | Differences between
and this patch

Collapse All | Expand All

(-)lang/Makefile (+1 lines)
Lines 4-9 Link Here
4
    COMMENT = Programming languages
4
    COMMENT = Programming languages
5
5
6
    SUBDIR += Gofer
6
    SUBDIR += Gofer
7
    SUBDIR += OpenCoarrays
7
    SUBDIR += abcl
8
    SUBDIR += abcl
8
    SUBDIR += adacontrol
9
    SUBDIR += adacontrol
9
    SUBDIR += afnix
10
    SUBDIR += afnix
(-)lang/OpenCoarrays/Makefile (+56 lines)
Line 0 Link Here
1
# Created by: Anton Shterenlikht
2
# $FreeBSD$
3
4
PORTNAME=	OpenCoarrays
5
PORTVERSION=	1.8.4
6
CATEGORIES=	lang
7
8
MAINTAINER=	mexas@bris.ac.uk
9
COMMENT=	Transport layer for coarray Fortran compilers
10
11
LICENSE=	BSD3CLAUSE
12
LICENSE_FILE=	${WRKSRC}/LICENSE
13
14
BUILD_DEPENDS=	bash:shells/bash
15
RUN_DEPENDS=	bash:shells/bash
16
17
USE_GITHUB=	yes
18
GH_ACCOUNT=	sourceryinstitute
19
20
USES=		cmake:outsource fortran shebangfix
21
PLIST_SUB=	GCC_VER=${_GCC_VER}
22
SHEBANG_FILES=	src/extensions/caf-head \
23
		src/extensions/cafrun-head
24
25
OPTIONS_SINGLE=		MPI
26
OPTIONS_SINGLE_MPI=	MPICH OPENMPI OPENMPI2
27
OPTIONS_DEFAULT=	MPICH
28
29
MPICH_DESC=		Parallel processing support via MPICH
30
MPICH_BUILD_DEPENDS=	mpif90:net/mpich
31
MPICH_RUN_DEPENDS=	mpif90:net/mpich
32
33
OPENMPI_BUILD_DEPENDS=	${LOCALBASE}/mpi/openmpi/bin/mpif90:net/openmpi
34
OPENMPI_RUN_DEPENDS=	${LOCALBASE}/mpi/openmpi/bin/mpif90:net/openmpi
35
OPENMPI_CONFIGURE_ENV=	MPI_HOME=${LOCALBASE}/mpi/openmpi
36
37
OPENMPI2_DESC=		Parallel processing support via Open MPI v2
38
OPENMPI2_BUILD_DEPENDS=	${LOCALBASE}/mpi/openmpi2/bin/mpif90:net/openmpi2
39
OPENMPI2_RUN_DEPENDS=	${LOCALBASE}/mpi/openmpi2/bin/mpif90:net/openmpi2
40
OPENMPI2_CONFIGURE_ENV=	MPI_HOME=${LOCALBASE}/mpi/openmpi2
41
42
.include <bsd.port.options.mk>
43
44
.if ${GCC_DEFAULT:R} < 5
45
IGNORE=		This port requires GCC 5 or higher.  Add\
46
		DEFAULT_VERSIONS+=gcc=5 to /etc/make.conf
47
.endif
48
49
post-patch:
50
	@${REINPLACE_CMD} '/mod_install/s/$${CMAKE_Fortran_COMPILER_VERSION}/${_GCC_VER}/' \
51
		${WRKSRC}/src/mpi/CMakeLists.txt
52
53
do-test:
54
	(cd ${TEST_WRKSRC} && ctest)
55
56
.include <bsd.port.mk>
(-)lang/OpenCoarrays/distinfo (+3 lines)
Line 0 Link Here
1
TIMESTAMP = 1487389722
2
SHA256 (sourceryinstitute-OpenCoarrays-1.8.4_GH0.tar.gz) = c40b504a65ea2933a3b68979c4e08dc9522f22b7a8d560d734d1a8bc6bcc1ee7
3
SIZE (sourceryinstitute-OpenCoarrays-1.8.4_GH0.tar.gz) = 243759
(-)lang/OpenCoarrays/files/patch-CMakeLists.txt (+51 lines)
Line 0 Link Here
1
--- CMakeLists.txt.orig	2017-02-07 05:19:01 UTC
2
+++ CMakeLists.txt
3
@@ -164,48 +164,6 @@ if ( (NOT MPI_C_FOUND) OR (NOT MPI_Fortr
4
   find_package( MPI REQUIRED )
5
 endif()
6
 
7
-#--------------------------------------------------------
8
-# Make sure a simple "hello world" C mpi program compiles
9
-#--------------------------------------------------------
10
-set(OLD_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
11
-set(CMAKE_REQUIRED_FLAGS ${MPI_C_COMPILE_FLAGS} ${MPI_C_LINK_FLAGS})
12
-set(OLD_INCLUDES ${CMAKE_REQUIRED_INCLUDES})
13
-set(CMAKE_REQUIRED_INCLUDES ${MPI_C_INCLUDE_PATH})
14
-set(OLD_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
15
-set(CMAKE_REQUIRED_LIBRARIES ${MPI_C_LIBRARIES})
16
-include (CheckCSourceCompiles)
17
-CHECK_C_SOURCE_COMPILES("
18
-#include <mpi.h>
19
-#include <stdio.h>
20
-int main(int argc, char** argv) {
21
-  MPI_Init(NULL, NULL);
22
-  int world_size;
23
-  MPI_Comm_size(MPI_COMM_WORLD, &world_size);
24
-  int world_rank;
25
-  MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);
26
-  char processor_name[MPI_MAX_PROCESSOR_NAME];
27
-  int name_len;
28
-  MPI_Get_processor_name(processor_name, &name_len);
29
-  printf('Hello world from processor %s, rank %d out of %d processors',
30
-         processor_name, world_rank, world_size);
31
-  MPI_Finalize();
32
-}"
33
-MPI_C_COMPILES)
34
-set(CMAKE_REQUIRED_FLAGS ${OLD_REQUIRED_FLAGS})
35
-set(CMAKE_REQUIRED_INCLUDES ${OLD_INCLUDES})
36
-set(CMAKE_REQUIRED_LIBRARIES ${OLD_LIBRARIES})
37
-unset(OLD_REQUIRED_FLAGS)
38
-unset(OLD_INCLUDES)
39
-unset(OLD_LIBRARIES)
40
-
41
-if (NOT MPI_C_COMPILES)
42
-  message(FATAL_ERROR "MPI_C is missing! "
43
-    "Try setting MPI_C_COMPILER to the appropriate C compiler wrapper script and reconfigure. "
44
-    "i.e., `cmake -DMPI_C_COMPILER=/path/to/mpicc ..` or set it by editing the cache using "
45
-    "cmake-gui or ccmake."
46
-    )
47
-endif()
48
-
49
 #--------------------------------------------------------------
50
 # Make sure a simple "hello world" Fortran mpi program compiles
51
 # Try using mpi.mod first then fall back on includ 'mpif.h'
(-)lang/OpenCoarrays/files/patch-src_mpi_CMakeLists.txt (+39 lines)
Line 0 Link Here
1
--- src/mpi/CMakeLists.txt.orig	2017-02-07 05:19:01 UTC
2
+++ src/mpi/CMakeLists.txt
3
@@ -58,15 +58,15 @@ install(TARGETS caf_mpi EXPORT OpenCoarr
4
 )
5
 
6
 # Install modules to standard include dir, but namespace them with compiler/version
7
-set (mod_install "${CMAKE_INSTALL_FULL_INCLUDEDIR}/OpenCoarrays/${CMAKE_Fortran_COMPILER_ID}/${CMAKE_Fortran_COMPILER_VERSION}")
8
+set (mod_install "OpenCoarrays/${CMAKE_Fortran_COMPILER_ID}/${CMAKE_Fortran_COMPILER_VERSION}")
9
 install(DIRECTORY  "${CMAKE_BINARY_DIR}/mod/"
10
-  DESTINATION "${mod_install}"
11
+  DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}/${mod_install}"
12
   FILES_MATCHING PATTERN "*.mod"
13
 )
14
 
15
 # 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...
16
 if ( "${CMAKE_Fortran_COMPILER_ID}" MATCHES "GNU" )
17
-  INSTALL(CODE "execute_process( COMMAND ${CMAKE_COMMAND} -E create_symlink ${mod_install}/opencoarrays.mod ${CMAKE_INSTALL_FULL_INCLUDEDIR}/opencoarrays.mod )"
18
+  INSTALL(CODE "execute_process( COMMAND ${CMAKE_COMMAND} -E create_symlink ${mod_install}/opencoarrays.mod \$ENV{DESTDIR}${CMAKE_INSTALL_FULL_INCLUDEDIR}/opencoarrays.mod )"
19
   )
20
 endif ()
21
 
22
@@ -76,7 +76,7 @@ set(exe_dir ${CMAKE_BINARY_DIR}/bin_stag
23
 set(compiler_wrapper ${exe_dir}/caf)
24
 install(
25
     FILES "${compiler_wrapper}"
26
-    PERMISSIONS WORLD_EXECUTE WORLD_READ WORLD_WRITE OWNER_EXECUTE OWNER_READ OWNER_WRITE GROUP_EXECUTE GROUP_READ GROUP_WRITE
27
+    PERMISSIONS WORLD_EXECUTE WORLD_READ OWNER_EXECUTE OWNER_READ GROUP_EXECUTE GROUP_READ
28
     DESTINATION "${CMAKE_INSTALL_BINDIR}"
29
 )
30
 file(READ ${CMAKE_CURRENT_SOURCE_DIR}/../extensions/caf-head CAF_HEADER)
31
@@ -109,7 +109,7 @@ file(APPEND "${compiler_wrapper}" "${FOO
32
 set(caf_launcher ${exe_dir}/cafrun)
33
 install(
34
     FILES "${caf_launcher}"
35
-    PERMISSIONS WORLD_EXECUTE WORLD_READ WORLD_WRITE OWNER_EXECUTE OWNER_READ OWNER_WRITE GROUP_EXECUTE GROUP_READ GROUP_WRITE
36
+    PERMISSIONS WORLD_EXECUTE WORLD_READ OWNER_EXECUTE OWNER_READ GROUP_EXECUTE GROUP_READ
37
     DESTINATION "${CMAKE_INSTALL_BINDIR}"
38
 )
39
 file(READ ${CMAKE_CURRENT_SOURCE_DIR}/../extensions/cafrun-head CAFRUN_HEADER)
(-)lang/OpenCoarrays/files/patch-src_mpi_mpi__caf.c (+10 lines)
Line 0 Link Here
1
--- src/mpi/mpi_caf.c.orig	2017-02-07 05:19:01 UTC
2
+++ src/mpi/mpi_caf.c
3
@@ -37,7 +37,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI
4
 #include <stdlib.h>
5
 #include <string.h>        /* For memcpy.  */
6
 #include <stdarg.h>        /* For variadic arguments.  */
7
-#include <alloca.h>
8
 #include <unistd.h>
9
 #include <mpi.h>
10
 #include <pthread.h>
(-)lang/OpenCoarrays/pkg-descr (+5 lines)
Line 0 Link Here
1
OpenCoarrays is an open-source software project that supports the coarray
2
Fortran (CAF) parallel programming features of the Fortran 2008 standard
3
and several features proposed for Fortran 2015.
4
5
WWW: http://www.opencoarrays.org/
(-)lang/OpenCoarrays/pkg-plist (+11 lines)
Line 0 Link Here
1
bin/caf
2
bin/cafrun
3
include/OpenCoarrays/GNU/%%GCC_VER%%/opencoarrays.mod
4
include/libcaf-gfortran-descriptor.h
5
include/libcaf.h
6
include/opencoarrays.mod
7
lib/cmake/opencoarrays/OpenCoarraysConfig.cmake
8
lib/cmake/opencoarrays/OpenCoarraysConfigVersion.cmake
9
lib/cmake/opencoarrays/OpenCoarraysTargets-%%CMAKE_BUILD_TYPE%%.cmake
10
lib/cmake/opencoarrays/OpenCoarraysTargets.cmake
11
lib/libcaf_mpi.a

Return to bug 217283