200 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			RPMSpec
		
	
	
	
	
	
			
		
		
	
	
			200 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			RPMSpec
		
	
	
	
	
	
| Name:           openmpi
 | |
| Version:        1.1
 | |
| Release:        2%{?dist}
 | |
| Summary:        Open Message Passing Interface
 | |
| 
 | |
| Group:          Development/Libraries
 | |
| License:        BSD
 | |
| URL:            http://www.open-mpi.org/
 | |
| Source0:       	http://www.open-mpi.org/software/ompi/v1.1/downloads/%{name}-%{version}.tar.bz2
 | |
| Source1:	openmpi.pc.in
 | |
| Source2:	openmpi.module.in
 | |
| BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 | |
| BuildRequires:  gcc-gfortran, autoconf, automake, libtool
 | |
| BuildRequires:  libibverbs-devel, opensm-devel, libsysfs-devel
 | |
| Requires(post): /sbin/ldconfig, /usr/sbin/alternatives
 | |
| ExclusiveArch: i386 x86_64 ia64 ppc ppc64
 | |
| 
 | |
| %package devel
 | |
| Summary:        Development files for openmpi
 | |
| Group:          Development/Libraries
 | |
| Requires:       %{name} = %{version}-%{release}
 | |
| 
 | |
| %description
 | |
| Open MPI provides a programming and runtime environment for  
 | |
| parallel and/or distributed networked multi-computer systems .
 | |
| MPI stands for the Message Passing Interface. Written by the MPI Forum,
 | |
| MPI is a standardized API typically used for parallel and/or distributed 
 | |
| computing - see http://www.mpi-forum.org/ .
 | |
| Open MPI is an open source, freely available implementation of both the 
 | |
| MPI-1 and MPI-2 standards, combining technologies and resources from
 | |
| several other projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI) in
 | |
| order to build the best MPI library available.  A completely new MPI-2
 | |
| compliant implementation, Open MPI offers advantages for system and
 | |
| software vendors, application developers, and computer science
 | |
| researchers. For more information, see http://www.open-mpi.org/ .
 | |
| 
 | |
| %description devel
 | |
| Contains development headers and libraries for openmpi
 | |
| 
 | |
| %prep
 | |
| %setup -q
 | |
| 
 | |
| %build
 | |
| %ifarch x86_64
 | |
| XCFLAGS="$RPM_OPT_FLAGS -fPIC"
 | |
| XCXXFLAGS="$RPM_OPT_FLAGS -fPIC"
 | |
| XFFLAGS="$RPM_OPT_FLAGS -fPIC"
 | |
| %endif
 | |
| %ifarch i386 x86_64 ia64 ppc ppc64 # arches with openib support
 | |
| %configure \
 | |
| 	--includedir=%{_includedir}/%{name} \
 | |
| 	--libdir=%{_libdir}/%{name} \
 | |
| 	--datadir=%{_datadir}/%{name}/help \
 | |
| 	--with-openib=/usr \
 | |
| 	LDFLAGS='-Wl,-z,noexecstack' \
 | |
| 	CFLAGS="$CFLAGS $XCFLAGS" \
 | |
| 	CXXFLAGS="$CFLAGS $XCFLAGS" \
 | |
| 	FFLAGS="$FFLAGS $XFLAGS";
 | |
| %else # no openib support, but plain tcp/ip still works and is usefull
 | |
| %configure \
 | |
| 	--includedir=%{_includedir}/%{name} \
 | |
| 	--libdir=%{_libdir}/%{name} \
 | |
| 	--datadir=%{_datadir}/%{name}/help \
 | |
| 	LDFLAGS='-Wl,-z,noexecstack' \
 | |
| 	CFLAGS="$CFLAGS $XCFLAGS" \
 | |
| 	CXXFLAGS="$CFLAGS $XCFLAGS" \
 | |
| 	FFLAGS="$FFLAGS $XFLAGS";
 | |
| %endif
 | |
| # ${datadir}/openmpi will be used ONLY for the english help*.txt files
 | |
| make %{?_smp_mflags}
 | |
| 
 | |
| %install
 | |
| rm -rf ${RPM_BUILD_ROOT}
 | |
| make install DESTDIR=${RPM_BUILD_ROOT}
 | |
| 
 | |
| # The three installed man pages are all identical and could be hard links.
 | |
| # Doesn't really matter though, since we are using alternatives to do
 | |
| # master and slave linking, remove the man page that goes with the common
 | |
| # name and link to the uncommon man page via alternatives.
 | |
| rm ${RPM_BUILD_ROOT}%{_mandir}/man1/mpiexec.1
 | |
| rm ${RPM_BUILD_ROOT}%{_mandir}/man1/mpirun.1
 | |
| 
 | |
| # Remove the symlinks from common names to the unique name in /usr/bin too
 | |
| rm ${RPM_BUILD_ROOT}%{_bindir}/mpi*
 | |
| # Remove the unnecessary compiler common names
 | |
| rm ${RPM_BUILD_ROOT}%{_bindir}/*{cc,c++,CC}
 | |
| 
 | |
| # Create ld.so config file for selection with mpi_alternatives:
 | |
| mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/ld.so.conf.d
 | |
| # Create ghost mpi.conf ld.so config file:
 | |
| touch ${RPM_BUILD_ROOT}%{_sysconfdir}/ld.so.conf.d/mpi.conf
 | |
| echo %{_libdir}/%{name} > ${RPM_BUILD_ROOT}%{_libdir}/%{name}/%{name}.ld.conf
 | |
| # Make the pkgconfig files
 | |
| mkdir -p ${RPM_BUILD_ROOT}%{_libdir}/pkgconfig;
 | |
| sed 's#@VERSION@#'%{version}'#;s#@LIBDIR@#'%{_libdir}/%{name}'#;s#@INCLUDEDIR@#'%{_includedir}/%{name}'#' < %SOURCE1 > ${RPM_BUILD_ROOT}/%{_libdir}/pkgconfig/%{name}.pc;
 | |
| sed 's#@DATADIR@#'%{_datadir}/%{name}'#;s#@NAME@#'%{name}'#' < %SOURCE2 > ${RPM_BUILD_ROOT}/%{_datadir}/%{name}/%{name}.module
 | |
| 
 | |
| %clean
 | |
| [ ! -z "${RPM_BUILD_ROOT}" ] && rm -rf ${RPM_BUILD_ROOT}
 | |
| 
 | |
| %post
 | |
| if [ "$1" -ge 1 ]; then
 | |
| 	alternatives --install %{_sysconfdir}/ld.so.conf.d/mpi.conf mpi \
 | |
| 				%{_libdir}/openmpi/openmpi.ld.conf 10 \
 | |
| 		--slave %{_bindir}/mpirun mpi-run %{_bindir}/orterun \
 | |
| 		--slave %{_bindir}/mpiexec mpi-exec %{_bindir}/orterun \
 | |
| 		--slave %{_mandir}/man1/mpirun.1.gz mpi-run-man \
 | |
| 			%{_mandir}/man1/orterun.1.gz \
 | |
| 		--slave %{_mandir}/man1/mpiexec.1.gz mpi-exec-man \
 | |
| 			%{_mandir}/man1/orterun.1.gz
 | |
| fi;
 | |
| /sbin/ldconfig
 | |
| 
 | |
| %preun
 | |
| if [ "$1" -ge 1 ]; then
 | |
| 	alternatives --remove mpi %{_libdir}/openmpi/openmpi.ld.conf
 | |
| fi
 | |
| 
 | |
| %postun -p /sbin/ldconfig
 | |
| 
 | |
| %post devel
 | |
| if [ "$1" -ge 1 ]; then
 | |
| 	alternatives --install  %{_bindir}/mpicc mpicc \
 | |
| 				%{_bindir}/opal_wrapper 10 \
 | |
| 		--slave %{_bindir}/mpic++ mpic++ %{_bindir}/opal_wrapper \
 | |
| 		--slave %{_bindir}/mpiCC mpiCC %{_bindir}/opal_wrapper \
 | |
| 		--slave %{_bindir}/mpicxx mpicxx %{_bindir}/opal_wrapper \
 | |
| 		--slave %{_bindir}/mpif77 mpif77 %{_bindir}/opal_wrapper \
 | |
| 		--slave %{_bindir}/mpif90 mpif90 %{_bindir}/opal_wrapper
 | |
| fi
 | |
| 
 | |
| %preun devel
 | |
| if [ "$1" -ge 1 ]; then
 | |
| 	alternatives --remove mpicc %{_bindir}/opal_wrapper
 | |
| fi
 | |
| 
 | |
| %files
 | |
| %defattr(-,root,root,-)
 | |
| %doc LICENSE README
 | |
| %ghost  %{_sysconfdir}/ld.so.conf.d/mpi.conf
 | |
| %config(noreplace) %{_sysconfdir}/openmpi-*
 | |
| %{_bindir}/orteconsole
 | |
| %{_bindir}/orted
 | |
| %{_bindir}/orteprobe
 | |
| %{_bindir}/orterun
 | |
| %{_bindir}/ompi_info
 | |
| %{_bindir}/openmpi
 | |
| %dir %{_libdir}/%{name}
 | |
| %dir %{_libdir}/%{name}/%{name}
 | |
| %{_libdir}/%{name}/*.so.*
 | |
| %{_libdir}/%{name}/%{name}/*.so
 | |
| #%{_libdir}/%{name}/*.mod
 | |
| %{_libdir}/%{name}/*.conf
 | |
| %{_mandir}/man1/*
 | |
| %{_datadir}/%{name}
 | |
| 
 | |
| %files devel
 | |
| %defattr(-,root,root,-)
 | |
| %{_bindir}/opal_wrapper
 | |
| %dir %{_includedir}/%{name}
 | |
| %{_includedir}/%{name}/*
 | |
| %{_libdir}/%{name}/*.so
 | |
| %{_libdir}/%{name}/*.la
 | |
| %{_libdir}/%{name}/%{name}/*.la
 | |
| %{_libdir}/pkgconfig/%{name}.pc
 | |
| 
 | |
| 
 | |
| %changelog
 | |
| * Mon Aug  7 2006 Doug Ledford <dledford@redhat.com> - 1.1-2
 | |
| - Various lint cleanups
 | |
| - Switch to using the standard alternatives mechanism instead of a home
 | |
|   grown one
 | |
| 
 | |
| * Wed Aug  2 2006 Doug Ledford <dledford@redhat.com> - 1.1-1
 | |
| - Upgrade to 1.1
 | |
| - Build with Infiniband support via openib
 | |
| 
 | |
| * Mon Jun 12 2006 Jason Vas Dias <jvdias@redhat.com> - 1.0.2-1
 | |
| - Upgrade to 1.0.2
 | |
| 
 | |
| * Wed Feb 15 2006 Jason Vas Dias <jvdias@redhat.com> - 1.0.1-1
 | |
| - Import into Fedora Core
 | |
| - Resolve LAM clashes 
 | |
| 
 | |
| * Wed Jan 25 2006 Orion Poplawski <orion@cora.nwra.com> - 1.0.1-2
 | |
| - Use configure options to install includes and libraries
 | |
| - Add ld.so.conf.d file to find libraries
 | |
| - Add -fPIC for x86_64
 | |
| 
 | |
| * Tue Jan 24 2006 Orion Poplawski <orion@cora.nwra.com> - 1.0.1-1
 | |
| - 1.0.1
 | |
| - Use alternatives
 | |
| 
 | |
| * Sat Nov 19 2005 Ed Hill <ed@eh3.com> - 1.0-2
 | |
| - fix lam conflicts
 | |
| 
 | |
| * Fri Nov 18 2005 Ed Hill <ed@eh3.com> - 1.0-1
 | |
| - initial specfile created
 | |
| 
 |