#
|
# This file and its contents are supplied under the terms of the
|
# Common Development and Distribution License ("CDDL"), version 1.0.
|
# You may only use this file in accordance with the terms of version
|
# 1.0 of the CDDL.
|
#
|
# A full copy of the text of the CDDL should have accompanied this
|
# source. A copy of the CDDL is also available via the Internet at
|
# http://www.illumos.org/license/CDDL.
|
#
|
|
#
|
# Copyright 2013-2019 Aurelien Larcher. All rights reserved.
|
#
|
|
include ../../../make-rules/shared-macros.mk
|
include $(WS_MAKE_RULES)/mpi-macros.mk
|
|
COMPONENT_NAME = mpich/$(COMPILER)
|
COMPONENT_VERSION = 4.1.1
|
COMPONENT_FMRI = library/$(COMPONENT_NAME)
|
COMPONENT_CLASSIFICATION = Development/High Performance Computing
|
COMPONENT_PROJECT_URL = https://www.mpich.org/
|
COMPONENT_SRC_NAME = mpich
|
COMPONENT_SRC = $(COMPONENT_SRC_NAME)-$(COMPONENT_VERSION)
|
COMPONENT_ARCHIVE = $(COMPONENT_SRC).tar.gz
|
COMPONENT_ARCHIVE_HASH= sha256:ee30471b35ef87f4c88f871a5e2ad3811cd9c4df32fd4f138443072ff4284ca2
|
COMPONENT_ARCHIVE_URL = https://www.mpich.org/static/downloads/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
|
|
COMPONENT_SUMMARY = High-performance and widely portable implementation of the MPI standard
|
COMPONENT_LICENSE_FILE= $(COMPONENT_SRC_NAME).license
|
COMPONENT_LICENSE = BSD
|
|
include $(WS_MAKE_RULES)/common.mk
|
|
PATH=$(PATH.gnu)
|
|
CONFIGURE_PREFIX = $(MPI_PREFIX)
|
|
ifeq ($(GCC_VERSION), 10)
|
# GCC 10 does not allow this anymore
|
FFLAGS+=-fallow-argument-mismatch
|
endif
|
|
CONFIGURE_OPTIONS+= --bindir=$(MPI_BINDIR)
|
CONFIGURE_OPTIONS+= --datadir=$(MPI_DATADIR)
|
CONFIGURE_OPTIONS+= --docdir=$(MPI_DOCDIR)
|
CONFIGURE_OPTIONS+= --htmldir=$(MPI_HTMLDIR)
|
CONFIGURE_OPTIONS+= --includedir=$(MPI_INCDIR)
|
CONFIGURE_OPTIONS+= --libdir=$(MPI_LIBDIR)
|
CONFIGURE_OPTIONS+= --mandir=$(MPI_MANDIR)
|
CONFIGURE_OPTIONS+= --sbindir=$(MPI_SBINDIR)
|
CONFIGURE_OPTIONS+= --sysconfdir=$(MPI_ETCDIR)
|
CONFIGURE_OPTIONS+= --with-pm=hydra
|
CONFIGURE_OPTIONS+= --with-device=ch3:sock
|
CONFIGURE_OPTIONS+= --enable-threads=multiple
|
CONFIGURE_OPTIONS+= --enable-shared
|
CONFIGURE_OPTIONS+= --disable-static
|
CONFIGURE_OPTIONS+= --enable-fortran=all
|
CONFIGURE_OPTIONS+= --enable-cxx
|
|
COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
|
|
COMPONENT_TEST_TRANSFORMS += \
|
'-n ' \
|
'-e "/TOTAL:/p" ' \
|
'-e "/SKIP:/p" ' \
|
'-e "/PASS:/p" ' \
|
'-e "/FAIL:/p" ' \
|
'-e "/ERROR:/p" '
|
|
build: $(BUILD_64)
|
|
$(BUILD_DIR)/modulefile.%: files/modulefile
|
/bin/sed -e "s#%%BITS%%#$*#g" \
|
-e "s#%%COMPONENT_FMRI%%#$(COMPONENT_FMRI)#g" \
|
-e "s#%%COMPONENT_VERSION%%#$(COMPONENT_VERSION)#g" \
|
-e "s#%%MODULE_CONFLICTS%%#$(MPI_IMPLEMENTATIONS_LIST)#g" \
|
-e "s#%%MODULE_INCDIR%%#$(MPI_INCDIR)#g" \
|
-e "s#%%MODULE_PREFIX%%#$(MPI_PREFIX.$*)#g" < $< > $@ ;
|
|
PROTO_MODULE_PATH = $(PROTO_DIR)$(MODULE_PATH)/$(COMPONENT_NAME)
|
|
install: $(INSTALL_64) $(BUILD_DIR)/modulefile.64
|
$(MKDIR) $(PROTO_MODULE_PATH)/64
|
$(CP) $(BUILD_DIR)/modulefile.64 $(PROTO_MODULE_PATH)/64/$(COMPONENT_VERSION)
|
|
test: $(TEST_64)
|
|
# Build dependencies
|
REQUIRED_PACKAGES += system/header/header-picl
|
|
# Auto-generated dependencies
|
REQUIRED_PACKAGES += $(GFORTRAN_RUNTIME_PKG)
|
REQUIRED_PACKAGES += $(GXX_RUNTIME_PKG)
|
REQUIRED_PACKAGES += developer/hwloc
|
REQUIRED_PACKAGES += package/environment-modules
|
REQUIRED_PACKAGES += shell/bash
|
REQUIRED_PACKAGES += system/library
|