📄 mpiinstall.in
字号:
fi if [ -d $includebuild_dir/f90choice -a "@NO_F90@" = "0" ] ; then MkDir $includedir/f90choice for file in $includebuild_dir/f90choice/* ; do CopyFile $file $includedir/f90choice done if [ -s $includebuild_dir/f90choice/mpimod.pcl ] ; then rm -f $includedir/f90choice/mpimod.pcl echo "mpimod.pc" >$includedir/f90choice/mpimod.pcl echo "$includedir/f90choice/mpimod.pc" >> $includedir/f90choice/mpimod.pcl echo "/bin/rm -f $includedir/f90choice/mpimod.pcl" >> $UNINSTALLFILE fi fifi## Include files for C++# (We should eventually use the install target in C++)if [ -n "$CPP_DIR" -a "$buildcpp" = 1 ] ; then if [ ! -d $includedir/mpi2c++ ] ; then MkDir $includedir/mpi2c++ fi # MPI-2-C++/src has the regular files; MPI-2-C++ has the config-dependent # files for file in $top_srcdir/MPI-2-C++/src/mpi2c++/*.h \ MPI-2-C++/src/mpi2c++/mpi2c++_config.h ; do if [ -s $file ] ; then CopyFile $file $includedir/mpi2c++ fi donefi## Libaries (including shared libraries)# Warning: the -h option for testing for a symbolic link # is not universally recognized. for file in $libbuild_dir/*.a ; do if [ -f $file ] ; then # Be careful of libpmpich.a (may be a link to libmpich.a) if [ "@HAS_WEAK_SYMBOLS@" = 0 ] ; then CopyFileP $file $libdir elif [ ! -h $file ] ; then CopyFileP $file $libdir # else we'll need to make a link... (see below) fi fidone# Condor libs for MPICH-VMkDir $libdir/condor-libsfor file in $libbuild_dir/condor-libs/* ; do if [ -f $file ] ; then CopyFileP $file $libdir/condor-libs/ fidonechmod $XMODE $libdir/condor-libs/ldFixupFile2 lib/condor-libs/condor_compile $libdir/condor-libs/condor_compile $XMODE# Copy the Message Queue dynamic link library if it exists. Handle the # shared library versioning. This is the same as the step that installs # the shared libraries# for file in $libbuild_dir/libtvmpich.so* ; do # Also need to handle any links! if [ ! -h $file -a -f $file ] ; then CopyFileP $file $libdir $XMODE fidone# Get the current directory (see pushd/popd comments in shared lib code)curdir="`pwd`"# Create links from foo.so.n.m to foo.so.n and foo.so.n to foo.sofor file in $libdir/libtvmpich.so* ; do # pushd would be cleaner, but not all systems support it (e.g.,IRIX) #pushd $sharedlib_dir >/dev/null cd $libdir >/dev/null file=`basename $file` filebase=`echo $file | sed -e 's%\.[0-9]*$%%'` while [ $filebase != $file ]; do if [ ! -h $filebase -a -s $file ] ; then $Show ln -s $file $filebase echo "/bin/rm -f $libdir/$filebase" >>$UNINSTALLFILE fi file=$filebase filebase=`echo $file | sed -e 's%\.[0-9]*$%%'` done cd "$curdir" >/dev/nulldone# The Fortran wrapper libraries should have been created in libbuild_dir#if [ "@NOF77@" = "0" ] ; then# for file in src/fortran/src/lib*.a ; do# if [ -f $file ] ; then# CopyFileP $file $libdir# fi# done#fi# Copy the shared library versions. Set the permissions to allow execute# access.for file in $libbuild_dir/shared/*.so* ; do # Also need to handle any links! if [ ! -h $file -a -f $file ] ; then CopyFileP $file $sharedlib_dir $XMODE if [ -n "$SHAREDLIB_LOCALDIR" -a \ "$SHAREDLIB_LOCALDIR" != $sharedlib_dir ] ; then CopyFileP $file $SHAREDLIB_LOCALDIR $XMODE fi fidone# Get the current directory (see pushd/popd comments below)curdir=`pwd`# Create links from foo.so.n.m to foo.so.n and foo.so.n to foo.sofor file in $sharedlib_dir/*.so* ; do # pushd would be cleaner, but not all systems support it (e.g.,IRIX) #pushd $sharedlib_dir >/dev/null cd $sharedlib_dir >/dev/null file=`basename $file` filebase=`echo $file | sed -e 's%\.[0-9]*$%%'` while [ $filebase != $file ]; do if [ ! -h $filebase -a -s $file ] ; then $Show ln -s $file $filebase echo "/bin/rm -f $sharedlib_dir/$filebase" >>$UNINSTALLFILE fi file=$filebase filebase=`echo $file | sed -e 's%\.[0-9]*$%%'` done # popd is not universal #popd >/dev/null cd $curdir >/dev/nulldone## Handle the case of a weak-symbol profiling libraryif [ ! -s $libdir/libp@MPILIBNAME@.a ] ; then (cd $libdir ; ln -s lib@MPILIBNAME@.a libp@MPILIBNAME@.a ) echo "/bin/rm -f $libdir/libp@MPILIBNAME@.a" >> $UNINSTALLFILEfi# Message queue routine for debuggers must be built with the proper prefix.# This is a mess; it really should be configured and built like that from the# start.if [ -n "@SHAREDKIND_FOR_TV@" -a "@SHAREDKIND_FOR_TV@" != "ignore" -a \ "$prefix" != "@PREFIX@" ] ; then echo "You must set the prefix when you configure to get the message queues" echo "Reconfigure and remake MPICH to get working message queue routines"fi## Special programs (helper executables)# So far we have# spxcp - Executable copy program for IBM SP.for file in spxcp ; do if [ -x bin/$file ] ; then CopyFileP bin/$file $bindir fidone## Message filesif [ -z "$libonly" ] ; then # Note that we need to get the mpich.*.m files for IRIX which has # a message file directory as well as the message file. for file in $libbuild_dir/mpich.* ; do if [ $file = "mpich.cat" ] ; then # This is a link; it assumes that En_US is the default. if [ -f $messagecat_dir/mpich.En_US.cat ] ; then $Show ln -s $messagecat_dir/mpich.En_US.cat \ $messagecat_dir/mpich.cat echo "/bin/rm -f $messagecat_dir/mpich.cat" >>$UNINSTALLFILE fi elif [ -s $file ] ; then # This will handle the case of no mpich.* matches CopyFile $file $messagecat_dir fi donefi # Other files in lib need to be updated...CopyFile $includebuild_dir/mpidefs.h $includedir## Documentationif [ -z "$noman" -a -z "$libonly" ] ; then # Add a note that we're installing the documentation because it # is a large number of files and can take significant time. echo "Installing documentation ... " if [ -z "$mandir" ] ; then mandir=$prefix/man fi MkDir $mandir CopyFile $top_srcdir/man/mandesc $mandir # No files in man5 (was ADI routines) for dir1 in man1 man3 man4 ; do MkDir $mandir/$dir1 for file in $top_srcdir/man/$dir1/* ; do # man5 in particular might be empty; be careful if [ -f "$file" -a -s "$file" ] ; then CopyFile $file $mandir/$dir1 fi done done # do the Romio man pages, only man3 for file in $top_srcdir/romio/man/man3/* ; do if [ -f "$file" -a -s "$file" ] ; then CopyFile $file $mandir/man3 fi done # HTML pages if [ -z "$htmldir" ] ; then htmldir=$prefix/www fi MkDir $htmldir if [ -s $top_srcdir/www/index.html ] ; then # Some development versions don't include the www directories CopyFile $top_srcdir/www/index.html $htmldir # No files in www5 (was ADI routines) for dir1 in www1 www3 www4 ; do MkDir $htmldir/$dir1 for file in $top_srcdir/www/$dir1/* ; do # www5 in particular might be empty; be careful if [ -f "$file" -a -s "$file" ] ; then CopyFile $file $htmldir/$dir1 fi done done fi echo "Done installing documentation"fiif [ -z "$libonly" ] ; then echo "Installing manuals" for file in $top_srcdir/doc/mpichman*.ps.gz \ $top_srcdir/doc/mpeman*.ps.gz \ $top_srcdir/doc/mpichman*.pdf \ $top_srcdir/doc/mpeman*.pdf \ $top_srcdir/doc/mpiman.ps ; do if [ -f $file ] ; then CopyFile $file $docdir fi done if [ -f $top_srcdir/romio/doc/users-guide.ps.gz ] ; then CopyFile $top_srcdir/romio/doc/users-guide.ps.gz $docdir/romio-users.ps.gz fi #$Show $CPRP -r doc $prefix #if [ -f ref/adiman.ps.gz ] ; then # CopyFile ref/adiman.ps.gz $prefix/doc #fi if [ -f $top_srcdir/ref/mpiman.ps.gz ] ; then CopyFile $top_srcdir/ref/mpiman.ps.gz $docdir fi echo "Done installing manuals"fi#if [ "$NOMPE" = "0" ] ; then if [ ! -x mpe/sbin/mpeinstall ] ; then echo "** mpeinstall script is not available in mpe/sbin!" echo "** MPE will not be installed" else echo "Installing MPE" # mpeargs should be the same for the most part as mpi args. # see command line processing. mpeargs="$mpeargs -uninstall=$UNINSTALLFILE" ( cd mpe ; ./sbin/mpeinstall $mpeargs -mode=$MODE -xmode=$XMODE ) fifi## If we used SYSV semaphores or ipcs, we should copy cleanipcs into sbin.CopyFile $top_srcdir/util/cleanipcs $sbindir $XMODE## Example programsCopyFile $top_srcdir/installtest/Makefile.in $prefix/examples## This SHOULD use mpireconfig...Savevar=$prefix# Configure (version 1) has the *FEATURE* of replacing prefix=xxxx with# prefix=@prefix@ when ever prefix= starts in the first column (!)# It also does this with exec_prefix (!!) prefix=$APREFIX(cd $prefix/examples ; $bindir/mpireconfig Makefile )echo "(cd $prefix/examples ; $MAKE clean)" >> $UNINSTALLFILEecho "/bin/rm -f $prefix/examples/Makefile" >> $UNINSTALLFILE prefix=$SavevarCopyFile $prefix/examples/Makefile $datadir/Makefile.sampleCopyFile $top_srcdir/installtest/cpi.c $prefix/examplesCopyFile $top_srcdir/installtest/cpip.c $prefix/examplesCopyFile $top_srcdir/installtest/cpilog.c $prefix/examplesCopyFile $top_srcdir/installtest/hello++.cc $prefix/examplesif [ "@NOF77@" = "0" ] ; then CopyFile $top_srcdir/installtest/pi3.f $prefix/examples CopyFile $top_srcdir/installtest/pi3p.f $prefix/examples if [ "@NO_F90@" = "0" ] ; then CopyFile $top_srcdir/installtest/pi3f90.f90 $prefix/examples fifiif [ -s $top_srcdir/romio/test/simple.c ] ; then CopyFile $top_srcdir/romio/test/simple.c $prefix/examples/simpleio.cfiCopyFile $top_srcdir/installtest/README $prefix/examples## Test build the examples$Show "(cd $prefix/examples ; /bin/rm -f mpirun ; \ ln -s ../bin/mpirun mpirun )"echo "/bin/rm -f $prefix/examples/mpirun" >> $UNINSTALLFILE#echo "About to run installation test..."$Show "(cd $prefix/examples; $MAKE all ; $MAKE clean )"if [ @SHAREDKIND@ != "ignore" ] ; then echo "About to run installation test for shared libraries ..." $Show "(cd $prefix/examples; MPICH_USE_SHLIB="yes"; export MPICH_USE_SHLIB; $MAKE all ; $MAKE clean )"fi## This SHOULD use mpireconfig...Savevar=$prefixif [ -n "$CPP_DIR" -a "$buildcpp" = 1 ] ; then # Removed the installation of these extra examples. # C++ Example programs # CopyFile $top_srcdir/installtest/mpi-2-c++/Makefile.in $prefix/examples/$CPP_DIR # prefix=$APREFIX# CPPEXDIR=$top_srcdir/$CPP_DIR/contrib/examples# # This isn't correct because it doesn't handle all of the fields in# # the C++ examples Makefile, particularly the TEMPLATE_REP field# # The intent here is to update the directories; but we also need# # to update a few additional fields# (cd $prefix/examples/$CPP_DIR ; $bindir/mpireconfig Makefile )# echo "(cd $prefix/examples/$CPP_DIR ; $MAKE clean)" >> $UNINSTALLFILE# echo "/bin/rm -f $prefix/examples/$CPP_DIR/Makefile" >> $UNINSTALLFILE# prefix=$Savevar# CopyFile $CPPEXDIR/hello_world.cc $prefix/examples/$CPP_DIR# CopyFile $CPPEXDIR/ring.cc $prefix/examples/$CPP_DIR# CopyFile $CPPEXDIR/topology.cc $prefix/examples/$CPP_DIR# CopyFile $CPPEXDIR/user_bcast.cc $prefix/examples/$CPP_DIR# CopyFile $CPPEXDIR/chapter_10_mpi2.cc $prefix/examples/$CPP_DIR# CopyFile $CPPEXDIR/pi.cc $prefix/examples/$CPP_DIR# CopyFile $CPPEXDIR/README $prefix/examples/$CPP_DIR# ## # Test build the C++ examples# $Show "(cd $prefix/examples/$CPP_DIR ; /bin/rm -f mpirun ; \# ln -s ../../bin/mpirun mpirun )"# echo "/bin/rm -f $prefix/examples/$CPP_DIR/mpirun" >> $UNINSTALLFILE# ## echo "About to run C++ installation test..."# $Show "(cd $prefix/examples/$CPP_DIR; $MAKE ; $MAKE clean)"# # A temporary fix because C++ clean doesn't remove any template # # directories. This will eventually need to be changed into a for loop# # (even better, the clean target in the Makefile should be fixed)# if [ -d $prefix/examples/$CPP_DIR/ii_files ] ; then# $Show rm -rf $prefix/examples/$CPP_DIR/ii_files# fi #fi#echo "/bin/rm -f $UNINSTALLFILE" >> $UNINSTALLFILE# Add the directory removes to the UNINSTALL filefor dir in $dirlist ; do echo "if [ -d $dir ] ; then rmdir $dir ; fi" >> $UNINSTALLFILEdone#echo installed MPICH in $prefixecho $UNINSTALLFILE may be used to remove the installation.#if [ $errs -gt 0 ] ; then rc=1else rc=0fiexit $rc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -