diff --git a/contrib/Makefile.am b/contrib/Makefile.am index cd67ee608f..794374669a 100644 --- a/contrib/Makefile.am +++ b/contrib/Makefile.am @@ -9,7 +9,7 @@ # University of Stuttgart. All rights reserved. # Copyright (c) 2004-2005 The Regents of the University of California. # All rights reserved. -# Copyright (c) 2009 Cisco Systems, Inc. All rights reserved. +# Copyright (c) 2009-2017 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2010 IBM Corporation. All rights reserved. # Copyright (c) 2010-2011 Oak Ridge National Labs. All rights reserved. # Copyright (c) 2013-2016 Los Alamos National Security, Inc. All rights @@ -38,8 +38,6 @@ EXTRA_DIST = \ dist/linux/openmpi.spec \ dist/mofed/compile_debian_mlnx_example.in \ dist/mofed/debian \ - dist/macosx-pkg/buildpackage.sh \ - dist/macosx-pkg/ReadMe.rtf \ platform/optimized \ platform/redstorm \ platform/cray_xt3 \ diff --git a/contrib/dist/macosx-pkg/ReadMe.rtf b/contrib/dist/macosx-pkg/ReadMe.rtf deleted file mode 100644 index 82969cc752..0000000000 --- a/contrib/dist/macosx-pkg/ReadMe.rtf +++ /dev/null @@ -1,34 +0,0 @@ -{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410 -{\fonttbl\f0\fnil\fcharset77 Verdana;\f1\fswiss\fcharset77 Helvetica;} -{\colortbl;\red255\green255\blue255;\red0\green0\blue236;} -\margl1440\margr1440\vieww10580\viewh15280\viewkind0 -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sa240\ql\qnatural - -\f0\fs24 \cf0 Open MPI is a project combining technologies and resources from several other projects ({\field{\*\fldinst{HYPERLINK "http://icl.cs.utk.edu/ftmpi/"}}{\fldrslt \cf2 \ul \ulc2 FT-MPI}}, {\field{\*\fldinst{HYPERLINK "http://public.lanl.gov/lampi/"}}{\fldrslt \cf2 \ul \ulc2 LA-MPI}}, {\field{\*\fldinst{HYPERLINK "http://www.lam-mpi.org/"}}{\fldrslt \cf2 \ul \ulc2 LAM/MPI}}, and {\field{\*\fldinst{HYPERLINK "http://www.hlrs.de/organization/pds/projects/pacx-mpi/"}}{\fldrslt \cf2 \ul \ulc2 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. -\f1 More information about Open MPI, including all the source code and documentation, is available from the main web site:\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural -\cf0 \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\qc -{\field{\*\fldinst{HYPERLINK "http://www.open-mpi.org/"}}{\fldrslt \cf0 http://www.open-mpi.org/}}\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural -\cf0 \ -\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural -\cf0 \ul \ulc0 Special OS X Package Notes\ulnone \ -\ -The binary package for Open MPI includes support for TCP and shared memory transports, with rsh/ssh and XGrid job launching. Sites requiring support for other networks or job launching mechanisms will need to rebuild from source.\ -\ -There is no Fortran support in this binary package, as Apple does not ship a Fortran compiler with the Developer Tools - if you have a Fortran compiler and need Fortran support from Open MPI, you will have to build it from source.\ -\ -Because HFS+ is case-preserving but not case-sensitive, the C++ wrapper compiler is named mpic++, not the traditional mpiCC (which would conflict with mpicc).\ -\ -\ -\ul Getting Help\ -\ulnone \ -Please see the Open MPI web page for help with Open MPI, especially the frequently asked questions.\ -\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\qc -\cf0 http://www.open-mpi.org/faq/\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural -\cf0 \ -If this does not answer your question, further help is available via our mailing list at users@open-mpi.org} diff --git a/contrib/dist/macosx-pkg/buildpackage.sh b/contrib/dist/macosx-pkg/buildpackage.sh deleted file mode 100755 index dc0f0b01bc..0000000000 --- a/contrib/dist/macosx-pkg/buildpackage.sh +++ /dev/null @@ -1,550 +0,0 @@ -#!/bin/bash - -# Copyright (c) 2001-2006 The Trustees of Indiana University. -# All rights reserved. -# Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights -# reserved. -# -# This file is part of the Open MPI software package. For license -# information, see the LICENSE file in the top level directory of the -# Open MPI source distribution. -# -# - -# -# Build a Mac OS X package for use by Installer.app -# -# Usage: buildpackage.sh [prefix] -# -# Prefix defaults to /usr/local - - -######################################################################## -# -# Configuration Options -# -######################################################################## - -# -# User-configurable stuff -# -OMPI_PACKAGE="openmpi" -OMPI_PREFIX="/usr/local/" -OMPI_OPTIONS="--disable-mpi-f77 --without-cs-fs --enable-mca-no-build=ras-slurm,pls-slurm,gpr-null,sds-pipe,sds-slurm,pml-cm NM=\"nm -p\"" -OMPI_OSX_README="ReadMe.rtf" -# note - if want XGrid support, make sure that a cocoa-supported -# architecture appears first on the list. Otherwise, we won't -# lipo that component and it will be dropped -OPAL_ARCH_LIST="ppc ppc64 i386 x86_64" -OMPI_SDK="/Developer/SDKs/MacOSX10.4u.sdk" - -# -# Not so modifiable stuff -# -BUILD_TMP="/tmp/buildpackage-$$" -if test ! "$2" = ""; then - OMPI_PREFIX="$2" -fi - -OMPI_STARTDIR=`pwd` - -echo "--> Configuration options:" -echo " Package Name: $OMPI_PACKAGE" -echo " Prefix: $OMPI_PREFIX" -echo " Config Options: $OMPI_OPTIONS" -echo " Architectures: $OPAL_ARCH_LIST" -echo " Target SDK: $OMPI_SDK" -echo "" - -######################################################################## -# -# Start actual code that does stuff -# -######################################################################## - -# -# Sanity check -# -fulltarball="$1" -if test "$fulltarball" = ""; then - echo "Usage: buildpackage.sh [prefix]" - exit 1 -fi -if test ! -f $fulltarball; then - echo "*** Can't find $fulltarball!" - exit 1 -fi -echo "--> Found tarball: $fulltarball" - -# -# Find version info -# -tarball=`basename $fulltarball` -first="`echo $tarball | cut -d- -f2`" -version="`echo $first | sed -e 's/\.tar\.gz//'`" -unset first -echo "--> Found OMPI version: $version" - -OMPI_VER_PACKAGE="${OMPI_PACKAGE}-${version}" - -# -# Sanity check that we can continue -# -if test -d "/Volumes/${OMPI_VER_PACKAGE}"; then - echo "*** Already have disk image (/Volumes/${OMPI_VER_PACKAGE}) mounted." - echo "*** Unmount and try again" - exit 1 -fi - -if test ! -r "${OMPI_OSX_README}"; then - echo "*** Can not find ${OMPI_OSX_README} in `pwd`." - exit 1 -else - OMPI_OSX_README="`pwd`/${OMPI_OSX_README}" -fi - - -# -# Clean out the environment a bit -# -echo "--> Cleaning environment" -PATH=/bin:/sbin/:/usr/bin -LANGUAGE=C -LC_ALL=C -LC_MESSAGES= -LANG= -export PATH LANGUAGE LC_ALL LC_MESSAGES LANG -unset LD_LIBRARY_PATH CC CXX FC F77 OBJC - -# -# Make some play space -# -echo "--> Making play space: $BUILD_TMP" -if test -d $BUILD_TMP; then - echo "Build dir $BUILD_TMP exists - exiting" - exit 1 -fi -# -p is safe - will only run on OS X -mkdir -p $BUILD_TMP - - -######################################################################## -# -# Configure, Build, and Install Open MPI -# -######################################################################## - -# -# Put tarball in right place -# -echo "--> Copying tarball" -cp $fulltarball $BUILD_TMP/. - -cd $BUILD_TMP - -# -# Expand tarball -# - -# we know there can't be spaces in $tarball - filename only -cmd="tar xzf $tarball" -echo "--> Untarring source: $cmd" - -eval $cmd -srcdir="$BUILD_TMP/openmpi-$version" -if test ! -d "$srcdir"; then - echo "*** Didn't find $srcdir as expected - aborting" - exit 1 -fi - -build_arch=`uname -p`"-apple-darwin"`uname -r` - -real_install=1 -for arch in $OPAL_ARCH_LIST ; do - builddir="$BUILD_TMP/build-$arch" - mkdir "$builddir" - - case "$arch" in - ppc) - host_arch="powerpc-apple-darwin"`uname -r` - ;; - ppc64) - # lie, but makes building on G4 easier - host_arch="powerpc64-apple-darwin"`uname -r` - ;; - i386) - host_arch="i386-apple-darwin"`uname -r` - ;; - x86_64) - host_arch="x86_64-apple-darwin"`uname -r` - ;; - *) - echo "**** Could not find arch string for $arch ****" - exit 1 - ;; - esac - - # - # Run configure - # - cd $builddir - config="$srcdir/configure CFLAGS=\"-arch $arch -isysroot $OMPI_SDK\" CXXFLAGS=\"-arch $arch -isysroot $OMPI_SDK\" OBJCFLAGS=\"-arch $arch -isysroot $OMPI_SDK\" --prefix=$OMPI_PREFIX $OMPI_OPTIONS --build=$build_arch --host=$host_arch" - echo "--> Running configure: $config" - eval $config > "$BUILD_TMP/configure.out-$arch" 2>&1 - - if test $? != 0; then - echo "*** Problem running configure - aborting!" - echo "*** See $BUILD_TMP/configure.out-$arch for help." - exit 1 - fi - - # - # Build - # - cmd="make -j 4 all" - echo "--> Building: $cmd" - eval $cmd > "$BUILD_TMP/make.out-$arch" 2>&1 - - if test $? != 0; then - echo "*** Problem building - aborting!" - echo "*** See $BUILD_TMP/make.out-$arch for help." - exit 1 - fi - - # - # Install into tmp place - # - if test $real_install -eq 1 ; then - distdir="dist" - real_install=0 - else - distdir="dist-$arch" - fi - fulldistdir="$BUILD_TMP/$distdir" - cmd="make DESTDIR=$fulldistdir install" - echo "--> Installing:" - eval $cmd > "$BUILD_TMP/install.out-$arch" 2>&1 - - if test $? != 0; then - echo "*** Problem installing - aborting!" - echo "*** See $BUILD_TMP/install.out-$arch for help." - exit 1 - fi - - # - # Copy in special doc files - # - SPECIAL_FILES="README LICENSE" - echo "--> Copying in special files: $SPECIAL_FILES" - pushd $srcdir >/dev/null - mkdir -p "${fulldistdir}/${OMPI_PREFIX}/share/openmpi/doc" - cp $SPECIAL_FILES "${fulldistdir}/${OMPI_PREFIX}/share/openmpi/doc/." - if [ ! $? = 0 ]; then - echo "*** Problem copying files $SPECIAL_FILES. Aborting!" - exit 1 - fi - popd >/dev/null - - distdir= - fulldistdir= -done - - -######################################################################## -# -# Make the fat binary -# -######################################################################## -print_arch_if() { - case "$1" in - ppc) - echo "#ifdef __ppc__" >> mpi.h - ;; - ppc64) - echo "#ifdef __ppc64__" >> mpi.h - ;; - i386) - echo "#ifdef __i386__" >> mpi.h - ;; - x86_64) - echo "#ifdef __x86_64__" >> mpi.h - ;; - *) - echo "*** Could not find arch #ifdef for $1" - exit 1 - ;; - esac -} - -# Set arch to the first arch in the list. Go through the for loop, -# although we'll break out at the end of the first time through. Look -# at the other arches that were built by using ls. -for arch in $OPAL_ARCH_LIST ; do - cd $BUILD_TMP - other_archs=`ls -d dist-*` - fulldistdir="$BUILD_TMP/dist" - - echo "--> Creating fat binares and libraries" - for other_arch in $other_archs ; do - cd "$fulldistdir" - - # /bin - don't copy in 64 bit binaries - if echo $other_arch | grep -v 64 > /dev/null ; then - files=`find ./${OMPI_PREFIX}/bin -type f -print` - for file in $files ; do - other_file="$BUILD_TMP/${other_arch}/$file" - if test -r $other_file ; then - lipo -create $file $other_file -output $file - fi - done - fi - - # /lib - ignore .la files - files=`find ./${OMPI_PREFIX}/lib -type f -print | grep -v '\.la$'` - for file in $files ; do - other_file="$BUILD_TMP/${other_arch}/$file" - if test -r $other_file ; then - lipo -create $file $other_file -output $file - else - echo "Not lipoing missing file $other_file" - fi - done - - done - - cd $BUILD_TMP - - echo "--> Creating multi-architecture mpi.h" - # mpi.h - # get the top of mpi.h - mpih_top=`grep -n '@OMPI_BEGIN_CONFIGURE_SECTION@' $BUILD_TMP/dist/${OMPI_PREFIX}/include/mpi.h | cut -f1 -d:` - mpih_top=`echo "$mpih_top - 1" | bc` - head -n $mpih_top $BUILD_TMP/dist/${OMPI_PREFIX}/include/mpi.h > mpih_top.txt - - # now the bottom of mpi.h - mpih_bottom_top=`grep -n '@OMPI_END_CONFIGURE_SECTION@' $BUILD_TMP/dist/${OMPI_PREFIX}/include/mpi.h | cut -f1 -d:` - mpih_bottom_bottom=`wc -l $BUILD_TMP/dist/${OMPI_PREFIX}/include/mpi.h | cut -f1 -d/` - mpih_bottom=`echo "$mpih_bottom_bottom - $mpih_bottom_top" | bc` - tail -n $mpih_bottom $BUILD_TMP/dist/${OMPI_PREFIX}/include/mpi.h > mpih_bottom.txt - - # now get our little section of fun - mpih_top=`echo "$mpih_top + 1" | bc` - mpih_fun_len=`echo "$mpih_bottom_top - $mpih_top + 1" | bc` - head -n $mpih_bottom_top $BUILD_TMP/dist/${OMPI_PREFIX}/include/mpi.h | tail -n $mpih_fun_len > mpih_$arch.txt - - # start putting it back together - rm -f mpi.h - cat mpih_top.txt > mpi.h - - print_arch_if $arch - cat mpih_$arch.txt >> mpi.h - echo "#endif" >> mpi.h - - for other_arch_dir in $other_archs ; do - other_arch=`echo $other_arch_dir | cut -f2 -d-` - mpih_top=`grep -n '@OMPI_BEGIN_CONFIGURE_SECTION@' $BUILD_TMP/$other_arch_dir/${OMPI_PREFIX}/include/mpi.h | cut -f1 -d:` - mpih_bottom_top=`grep -n '@OMPI_END_CONFIGURE_SECTION@' $BUILD_TMP/$other_arch_dir/${OMPI_PREFIX}/include/mpi.h | cut -f1 -d:` - mpih_fun_len=`echo "$mpih_bottom_top - $mpih_top + 1" | bc` - head -n $mpih_bottom_top $BUILD_TMP/$other_arch_dir/${OMPI_PREFIX}/include/mpi.h | tail -n $mpih_fun_len > mpih_$other_arch.txt - - print_arch_if $other_arch - cat mpih_$other_arch.txt >> mpi.h - echo "#endif" >> mpi.h - done - - cat mpih_bottom.txt >> mpi.h - mv mpi.h $BUILD_TMP/dist/${OMPI_PREFIX}/include/. - rm mpih* - break -done - -# set component load errors to false, as we're almost always going to -# fail to load the XGrid components on 64 bit systems, and users don't -# need to see that. -echo "mca_component_show_load_errors = 0" >> $BUILD_TMP/dist/${OMPI_PREFIX}/etc/openmpi-mca-params.conf - -######################################################################## -# -# Do all the package mojo -# -######################################################################## - -# -# Prep package info -# -debug_file="${BUILD_TMP}/disk.out" -touch "$debug_file" -echo "--> Creating Package Info:" - -cd $BUILD_TMP - -pkdir="${BUILD_TMP}/${OMPI_PACKAGE}.pkg" -mkdir -p ${pkdir} -mkdir ${pkdir}/Contents -mkdir ${pkdir}/Contents/Resources -mkdir ${pkdir}/Contents/Resources/English.lproj -echo 'pmkrpkg1' > ${pkdir}/Contents/PkgInfo - -infofile=${pkdir}/Contents/Resources/English.lproj/${OMPI_PACKAGE}.info - -echo "Title Open MPI ${version}" > ${infofile} -echo "Version ${version}" >> ${infofile} -echo "Description Install Open MPI ${version}" >> ${infofile} -echo 'DefaultLocation /' >> ${infofile} -echo 'DeleteWarning' >> ${infofile} -echo 'NeedsAuthorization YES' >> ${infofile} -echo 'Required NO' >> ${infofile} -echo 'Relocatable NO' >> ${infofile} -echo 'RequiresReboot NO' >> ${infofile} -echo 'UseUserMask NO' >> ${infofile} -echo 'OverwritePermissions NO' >> ${infofile} -echo 'InstallFat NO' >> ${infofile} - -echo "--> Copying OS X-specific ReadMe into package" -cp "${OMPI_OSX_README}" "${pkdir}/Contents/Resources/ReadMe.rtf" -if [ ! $? = 0 ]; then - echo "*** Could not copy in ReadMe.rtf. Aborting!" - exit 1 -fi - -echo "--> Creating pax file" -CWD=`pwd` -cd "$fulldistdir" -pax -w -f "${pkdir}/Contents/Resources/${OMPI_PACKAGE}.pax" . >> "$debug_file" 2>&1 -if [ ! $? = 0 ]; then - echo "*** Failed building pax file. Aborting!" - echo "*** Check $debug_file for information" - cd "$CWD" - exit 1 -fi -cd "$CWD" -unset CWD - - -echo "--> Compressing pax file" -gzip "${pkdir}/Contents/Resources/${OMPI_PACKAGE}.pax" >> "$debug_file" 2>&1 -if [ ! $? = 0 ]; then - echo "*** Failed compressing pax file. Aborting!" - echo "*** Check $debug_file for information" - exit 1 -fi - -echo "--> Creating bom file" -mkbom "$fulldistdir" "${pkdir}/Contents/Resources/${OMPI_PACKAGE}.bom" >> "$debug_file" 2>&1 -if [ ! $? = 0 ]; then - echo "*** Failed building bom file. Aborting!" - echo "*** Check $debug_file for information" - exit 1 -fi - -echo "--> Generating sizes file:" -sizesfile="${pkdir}/Contents/Resources/${OMPI_PACKAGE}.sizes" - -numFiles=`du -a ${fulldistdir} | wc -l` -installedSize=`du -s ${fulldistdir} | cut -f1` -compressedSize=`du -s ${fulldistdir} | cut -f1` - -echo "NumFiles ${numFiles}" > ${sizesfile} -echo "InstalledSize ${installedSize}" >> ${sizesfile} -echo "CompressedSize ${compressedSize}" >> ${sizesfile} -cat ${sizesfile} - -# -# Make a disk image in read-write mode -# -echo "--> Creating Disc Image" -# Allocated about 2.5MB more than we need, just to be safe. If that -# number is less than about 5MB, make 5MB to keep disk utilities -# happy. -sectorsAlloced=`echo 2*${compressedSize}+50|bc` -if [ $sectorsAlloced -lt 10000 ]; then - sectorsAlloced=10000 -fi -hdiutil create -ov "${BUILD_TMP}/${OMPI_VER_PACKAGE}RW" -sectors ${sectorsAlloced} >> "$debug_file" 2>&1 -if [ ! $? = 0 ]; then - echo "*** Failed hdiutil create. Aborting!" - echo "*** Check $debug_file for information" - exit 1 -fi - -mountLoc=`hdid -nomount ${BUILD_TMP}/${OMPI_VER_PACKAGE}RW.dmg | grep HFS | cut -f1` -/sbin/newfs_hfs -v ${OMPI_VER_PACKAGE} ${mountLoc} >> "$debug_file" 2>&1 -if [ ! $? = 0 ]; then - echo "*** Failed building HFS+ file system. Aborting!" - echo "*** Check $debug_file for information" - exit 1 -fi - -hdiutil eject ${mountLoc} >> "$debug_file" 2>&1 -if [ ! $? = 0 ]; then - echo "*** Could not unmount $mountLoc. Aborting!" - echo "*** Check $debug_file for information" - exit 1 -fi - -# -# Copy above package into the disk image -# -echo "--> Copying Package to Disc Image" -hdid "${BUILD_TMP}/${OMPI_VER_PACKAGE}RW.dmg" >> "$debug_file" 2>&1 -if [ ! $? = 0 ]; then - echo "*** Could not mount ${BUILD_TMP}/${OMPI_VER_PACKAGE}RW.dmg. Aborting!" - echo "*** Check $debug_file for information" - exit 1 -fi - -if [ ! -d "/Volumes/${OMPI_VER_PACKAGE}" ]; then - echo "*** /Volumes/${OMPI_VER_PACKAGE} does not exist. Aborting!" - echo "*** Check $debug_file for information" - exit 1 -fi - -cp -R "${pkdir}" "/Volumes/${OMPI_VER_PACKAGE}" -if [ ! $? = 0 ]; then - echo "*** Error copying ${OMPI_VER_PACKAGE}.pkg. Aborting!" - echo "*** Check $debug_file for information" - exit 1 -fi - -# -# Converting Disk Image to read-only (and shrink to size needed) -# -cmd="hdiutil eject ${mountLoc}" -echo "--> Ejecting R/W disk: $cmd" -eval $cmd >> "$debug_file" 2>&1 -if [ ! $? = 0 ]; then - echo "*** Error ejecting R/W disk. Aborting!" - echo "*** Check $debug_file for information" - exit 1 -fi - -cmd="hdiutil resize \"${BUILD_TMP}/${OMPI_VER_PACKAGE}RW.dmg\" -sectors min" -echo "--> Resizing: $cmd" -eval $cmd >> "$debug_file" 2>&1 -if [ ! $? = 0 ]; then - echo "*** Error resizing disk. Aborting!" - echo "*** Check $debug_file for information" - exit 1 -fi - -cmd="hdiutil convert \"${BUILD_TMP}/${OMPI_VER_PACKAGE}RW.dmg\" -format UDRO -o \"/tmp/${OMPI_VER_PACKAGE}.dmg\"" -echo "--> Converting to R-O: $cmd" -eval $cmd >> "$debug_file" 2>&1 -if [ ! $? = 0 ]; then - echo "*** Error converting disk to read-only. Aborting!" - echo "*** Check $debug_file for information" - exit 1 -fi - -echo "--> Compressing disk image" -gzip --best "/tmp/${OMPI_VER_PACKAGE}.dmg" - -echo "--> Cleaning up the staging directory" -rm -rf "${BUILD_TMP}" -if [ ! $? = 0 ]; then - echo "*** Could not clean up ${BUILD_TMP}." - echo "You may want to clean it up yourself." - exit 1 -fi - -echo "--> Done. Package is at: /tmp/${OMPI_VER_PACKAGE}.dmg.gz"