There are various macros that can be used to control the MVAPICH2 SRPM build. These are described below: MVAPICH2 SRPM Build Macros ========================== Macro Default Value Description ----- ------------- ----------- _prefix /usr (RPM default) Prefix for MVAPICH2 install. _name mvapich2 Name of RPM generated. impl ofa MVAPICH2 implementation (ofa or udapl). romio --enable-romio Build with ROMIO support (all). shared_libs --enable-sharedlibs=gcc Build with shared library support (all). rdma --with-rdma=gen2 Configure implementation option. Use --with-rdma=gen2 if impl=ofa and --with-rdma=udapl if impl=udapl. ib_include --with-ib-include= [OFA] ib_libpath --with-ib-libpath= [OFA] blcr 0 Build with Checkpoint-Restart support. [OFA] blcr_include --with-blcr-include= [OFA] blcr_libpath --with-blcr-libpath= [OFA] udapl_include --with-udapl-include= [uDAPL] udapl_libpath --with-udapl-libpath= [uDAPL] cluster_size --with-cluster-size=small Cluster size for udapl implementations (small, medium, or large). [uDAPL] io_bus --with-io-bus=PCI_EX I/O bus type for udapl implementations (PCI_EX or PCI_X). [uDAPL] link_speed --with-link=SDR Link speed rate for udapl implementations (DDR and SDR for PCI_EX bus, sdr only for PCI_X bus). [uDAPL] dapl_provider Default DAPL provider for the udapl implementation. If left unset configure will use the default for the host OS. comp_env Exported environment. This should be used to pass a string into the RPM build process to export CC, CXX, F77, and F90. See below. auto_req 1 Whether to use Auto Requires. mpi_selector The path to the mpi-selector program. This is OFA build specific. Most of the macros should be clear if one has built MVAPICH2 before. The comp_env macro is used to send a string to an export shell command. For instance, if comp_env is set as such: --define 'comp_env "CC=pathcc CXX=pathCC FC=pathf90 F90=pathf90"' then the following happens in the RPM %build section: export CC=pathcc CXX=pathCC FC=pathf90 F90=pathf90 RPM Dependencies ================ By default the SRPM figures out its own dependencies, but it is possible to specify a limited set of dependencies by defining the auto_req macro to 0. If this is done, the following happens: Autoreq: 0 Requires: libibumad libibverbs [OFA with no RDMA-CM] Requires: libibumad libibverbs librdmacm [OFA with RDMA-CM] Requires: dapl [uDAPL] Examples ======== If OFED is already installed, a user can build the MVAPICH2 SRPM in their own RPM directory structure by doing something like the following: mkdir rpm-build cd rpm-build mkdir -p {BUILD,RPMS,SOURCES,SPECS,SRPMS} rpmbuild --define "_topdir $PWD" mvapich2-1.0-1.src.rpm There are many define options available, and setting _prefix is probably desirable instead of using the system RPM default. It is possible to build the binary RPM by specifying no macro defines as root.