aboutsummaryrefslogblamecommitdiff
path: root/net/mpich2/Makefile
blob: b03eb3334676cd3d9d9b1e3f9a062a5cc9a1ff64 (plain) (tree)
1
2
3
4
5
6
7
8
9
                                                                          
                                  
                                          
 
           

 
                      
                       
                 
                 
                                 
                                                                                                  
                     
 
                              
                                                            
 
                     

                                   
                                                                     
 


                                                        
 

                   
                         






                                                                               
 
                                                 




                                              
                                      

                     
      
                                                             
 

                                                      
 

                                              
 
                   

                                           









                                              
      
 
                         
                                      
                                
                           
     



                                                  
                   
                    
                                                     
                                                     
                       
                  
      
 







                                                                             







                                                       














                                                                                         
                                                                 
                                                                 


                                                                 
                                                                 

                                                                 

                                                                         


                                                                 
 


                                                                                          


                                                                        





                                                                



                                                                       









                                                                                   
 


                                                                       
 
             

                                                           





                                                                                  
                             

                            





                                                                                            
                                                               

                           
                                                             
                                
      
 
                           
# New ports collection makefile for:	mpich (portable mpi standard imp.)
# Date created:		2 May 1998
# Whom:                 dbader@ece.unm.edu
#
# $FreeBSD$
#

PORTNAME=	mpich2
DISTVERSION=	1.3.2p1
PORTREVISION=	1
PORTEPOCH=	5
CATEGORIES=	net java parallel
MASTER_SITES=	http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/${DISTVERSION}/
DIST_SUBDIR=	mpich

MAINTAINER=	bf@FreeBSD.org
COMMENT=	A portable implementation of MPI-1 and MPI-2

LICENSE=	MPICH
LICENSE_NAME=	MPICH
LICENSE_FILE=	${WRKSRC}/COPYRIGHT
LICENSE_PERMS=	dist-mirror dist-sell pkg-mirror pkg-sell auto-accept

BUILD_DEPENDS=	bash:${PORTSDIR}/shells/bash
LIB_DEPENDS=	execinfo.1:${PORTSDIR}/devel/libexecinfo
RUN_DEPENDS=	bash:${PORTSDIR}/shells/bash

GNU_CONFIGURE=	yes
USE_FORTRAN=	yes
USE_GNOME=	pkgconfig
USE_LDCONFIG=	yes
USE_PERL5_BUILD=yes
USE_PYTHON=	yes

OPTIONS=	JAVA	"build MPE Jumpshot-4" on \
		SMPD	"use SMPD instead of MPD, for a mixed-OS cluster" off \
		X11	"build MPE graphics routines" on

CONFIGURE_ARGS=	--enable-romio --enable-shared	\
		--docdir="${DOCSDIR}"
CONFIGURE_ENV=	FCFLAGS="${FFLAGS}" \
		PACKAGE=${PORTNAME} \
		PTHREAD_LIBS="${PTHREAD_LIBS}"

CPPFLAGS+=	-I${LOCALBASE}/include
.if ${FFLAGS} == "-O"
FFLAGS =	-O2
.endif
LDFLAGS+=	-L${LOCALBASE}/lib -lexecinfo ${PTHREAD_LIBS}

MAKE_ENV=	CCACHE_DISABLE=yes PACKAGE=${PORTNAME}
NOCCACHE=	yes

CONFLICTS=	lam-7.* mpd-[0-9]* mpiexec-0.*
MAKE_JOBS_UNSAFE=	yes

VERSO=		2.2
VERSOM=		${VERSO:R}
PLIST_SUB=	VER=${VERSO} VERM=${VERSOM}
SUB_FILES=	pkg-message

.include <bsd.port.options.mk>

.if defined(WITH_DEBUG)
MAKE_ENV+=	VERBOSE=1
.endif

.if !(${ARCH} == "amd64" || ${ARCH} == "i386")
WITHOUT_JAVA=	no_java_available_for_${ARCH}
.endif

.if defined(WITHOUT_JAVA)
CONFIGURE_ARGS+=	--without-java
PLIST_SUB+=	JAVA="@comment "
PLX11=		"@comment "
.else
.if defined(WITHOUT_X11)
IGNORE =	WITH_JAVA requires WITH_X11
.endif
CONFIGURE_ARGS+=	--with-java="${JAVA_HOME}"
USE_JAVA=	yes
JAVA_VERSION=	1.5+
BUILD_DEPENDS+=	javavm:${PORTSDIR}/java/javavmwrapper
RUN_DEPENDS+=	javavm:${PORTSDIR}/java/javavmwrapper
PLIST_SUB+=	JAVA=""
PLX11=		""
.endif

#define WITH_RECV_TIMEOUT to be an appropriate value (>20 for slow machines),
#in order to set a different default MPIEXEC_RECV_TIMEOUT
.if defined(MAINTAINER_MODE)
WITH_RECV_TIMEOUT?=	100
.else
WITH_RECV_TIMEOUT?=	20
.endif

.if defined(WITH_SMPD)
CONFIGURE_ARGS+=	--with-pmi=smpd --with-pm=smpd
PLIST_SUB+=	PM_MPD="@comment " PM_SMPD=""
.else
CONFIGURE_ARGS+=	--with-pmi=simple --with-pm=mpd
PLIST_SUB+=	PM_MPD="" PM_SMPD="@comment "
.endif

.if defined(WITHOUT_X11)
CONFIGURE_ARGS+=	--disable-graphics
PLIST_SUB+=	X11="@comment "
.else
CONFIGURE_ARGS+=	--x-includes=${LOCALBASE}/include --x-libraries==${LOCALBASE}/lib
USE_XORG=	x11 xt
PLIST_SUB+=	X11=${PLX11}
.endif

.include <bsd.port.pre.mk>

.if !defined(NOPORTDOCS)
.include "${FILESDIR}/manpages"
.endif

THREAD2FIX=	configure test/mpi/threads/comm/Makefile.in	\
		test/mpi/threads/pt2pt/Makefile.in		\
		src/mpe2/src/logging/configure			\
		src/mpi/romio/configure src/openpa/configure	\
		src/pm/hydra/configure
LOCALBASE2FIX=	src/mpe2/src/slog2sdk/trace_rlog/configure	\
		src/mpe2/src/slog2sdk/trace_sample/configure	\
		src/mpe2/src/graphics/configure
DOC2PATCH=	Makefile.in src/mpe2/sbin/mpeinstall.in		\
		src/openpa/Makefile.in src/mpi/romio/util/romioinstall.in
CONFPFX2FIX1=	src/pm/mpd/mpd.py
CONFPFX2FIX2=	doc/installguide/install.tex.vin		\
		src/pm/mpd/mpdroot.c

pre-configure:
	${REINPLACE_CMD} -e 's|-lpthread|${PTHREAD_LIBS}|g' ${THREAD2FIX:S|^|${WRKSRC}/|}
	${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' ${LOCALBASE2FIX:S|^|${WRKSRC}/|}
	${FIND} ${WRKSRC} -name configure | ${XARGS}	\
		${REINPLACE_CMD} -e 's|doc/$${PACKAGE}|doc/${PORTNAME}|'
.for fin in ${DOC2PATCH}
. if defined(NOPORTDOCS)
	${REINPLACE_CMD} -e 's|%%PORTDOCS%%|#|' ${WRKSRC}/${fin}
. else
	${REINPLACE_CMD} -e 's|%%PORTDOCS%%||' ${WRKSRC}/${fin}
. endif
.endfor
.if defined(NOPORTDOCS)
	${REINPLACE_CMD} -e 's|lib doc share|lib share|'	\
		${WRKSRC}/src/mpe2/src/slog2sdk/sbin/install-package.in
.endif
	${REINPLACE_CMD} -e '/MPIEXEC_RECV_TIMEOUT/s|20,|${WITH_RECV_TIMEOUT},|' \
		${WRKSRC}/src/pm/mpd/mpiexec.py
	${REINPLACE_CMD} -e 's|%%SRCDIR%%|${WRKSRC}|' ${WRKSRC}/${CONFIGURE_SCRIPT}
.for cnf in ${CONFPFX2FIX1}
	${REINPLACE_CMD} -e 's|/etc|${PREFIX}/etc|' ${WRKSRC}/${cnf}
.endfor
.for cnf in ${CONFPFX2FIX2}
	${REINPLACE_CMD} -e 's|/etc/mpd.conf|${PREFIX}/etc/mpd.conf|'	\
		${WRKSRC}/${cnf}
.endfor

pre-install:
	@${PYTHON_CMD} ${PYTHON_LIBDIR}/compileall.py ${WRKSRC}/bin
	@${PYTHON_CMD} -O ${PYTHON_LIBDIR}/compileall.py  ${WRKSRC}/bin

post-install:
	${INSTALL_SCRIPT} ${WRKSRC}/bin/*.pyc ${PREFIX}/bin
	${INSTALL_SCRIPT} ${WRKSRC}/bin/*.pyo ${PREFIX}/bin
	@${ECHO_CMD} "MPD_SECRETWORD=change_on_install" > ${WRKDIR}/mpd.conf.dist
	${INSTALL_DATA} ${WRKDIR}/mpd.conf.dist ${PREFIX}/etc/
	if [ ! -e ${PREFIX}/etc/mpd.conf ]; then \
		${INSTALL_DATA} ${WRKDIR}/mpd.conf.dist ${PREFIX}/etc/mpd.conf ; \
	fi
	${CHMOD} 600 ${PREFIX}/etc/mpd.conf ${PREFIX}/etc/mpd.conf.dist
	@${CAT} ${PKGMESSAGE}

.if defined(MAINTAINER_MODE)
regression-test:	install
.if !exists(${HOME}/.mpd.conf)
	@${ECHO_CMD} "MPD_SECRETWORD=change_on_install" > ${HOME}/.mpd.conf
	${CHMOD} go-r ${HOME}/.mpd.conf
	@${ECHO_MSG} "${HOME}/.mpd.conf has been generated - please change the secret word!"
.endif
	@${ECHO_MSG} "Increase MPIEXEC_RECV_TIMEOUT if needed!"
	${PREFIX}/bin/mpd &
	(cd ${WRKSRC} && \
	PATH=${PATH}:${PREFIX}/bin VERBOSE=1 ${MAKE} testing)
	${PREFIX}/bin/mpdallexit
.endif

.include <bsd.port.post.mk>