⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 builddll

📁 fortran并行计算包
💻
字号:
#! /bin/sh#set -x# This script builds a stand-alone DLL for the ssm channel.# It makes use of the configure scripts in the necessary components## Determine the source and build directorymypath=$0mypath=`echo $mypath | sed -e 's/builddll//'`mympich2=`(cd $mypath && cd ../../../../.. && pwd)`mybuild=`(cd ../../../../../ && pwd)`## Get the prefix, libdir, and exec_prefix, which may be needed for# setting installation directories.  These may be either passed on the# command line or as environment variablesfor arg do     option=`expr "x$arg" : 'x[^=]*=\(.*\)'`    case $arg in         --prefix=*) prefix=$option	;;	--libdir=*) libdir=$option	;;	--exec-prefix=*) exec_prefix=$option	;;	--shlibtype=*) shlibtype=$option	;;	--localdefs=*) 	if [ -s $option ] ; then 	    . $option	else	    echo "File $option was not found"	    exit 1	fi    esacdoneBUILD_DLLS=yesexport BUILD_DLLS## Determine shared library type (only a few supported)osname=`uname -s`if [ -z "$shlibtype" ] ; then    if [ -z "$CC" ] ; then        shlibtype=gcc    else        shlibtype=$CC    fi    case $osname in        *Darwin*|*darwin*)         shlibtype="$shlibtype-osx"        ;;       *)        ;;    esacfi# Export the top_srcdir for MPICH2master_top_srcdir=$mympich2export master_top_srcdir## Temp for experimentationif [ -z "$CC_SHL" ] ; then    case $shlibtype in	gcc-osx|osx-gcc)        CC_SHL="${CC} -fPIC"        C_LINK_SHL='${CC} -dynamiclib -undefined suppress -single_module -flat_namespace'        SHLIB_EXT=dylib	;;	*gcc*)        CC_SHL="${CC} -fPIC"        C_LINK_SHL='${CC} -shared'        SHLIB_EXT=so	;;	*)	echo "Unknown shared library type in builddll"	exit 1	;;    esacfiexport CC_SHLexport C_LINK_SHLexport SHLIB_EXT#MPICH2_INCLUDE_FLAGS=-I$mympich2/src/mpid/ch3/includeMPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/ch3/util/sock"MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mybuild/src/mpid/ch3/util/sock"export MPICH2_INCLUDE_FLAGS# The ssm channel requires the sock utilities in mpid/common/sock# This directory may not exist yet (no other configure may have # created it), so we build it if necessaryif [ ! -d $mybuild/src/mpid/common/sock ] ; then     mkdir $mybuild/src/mpid/common/sock fi(cd $mybuild/src/mpid/common/sock && \    $mympich2/src/mpid/common/sock/configure --enable-sharedlibs=$shlibtype \    --prefix=$prefix --libdir=$libdir --exec-prefix=$exec_prefix )if [ $? != 0 ] ; then    echo "Aborting build because mpi/common/sock/configure failed"    echo "See $mybuild/src/mpid/common/sock/config.log for more information"    exit 1fi# The ssm channel requires the lock utilities in mpid/common/locks# This directory may not exist yet (no other configure may have # created it), so we build it if necessaryif [ ! -d $mybuild/src/mpid/common/locks ] ; then     mkdir $mybuild/src/mpid/common/locksfi# Note that we also need to run the setup in the locks directorylocksSetup=$mympich2/src/mpid/common/locks/setupif [ ! -f $locksSetup ] ; then     echo "Cannot find $locksSetup , needed to build process locks"    exit 1fi( MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/common/datatype" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/ch3/channels/ssm/include" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I../../ch3/channels/ssm/include" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I../../ch3/include" ; \export MPICH2_INCLUDE_FLAGS ; \CPPFLAGS="$CPPFLAGS -DUSE_PROCESS_LOCKS" ; export CPPFLAGS ; \  . $locksSetup ; \cd $mybuild/src/mpid/common/locks && \    $mympich2/src/mpid/common/locks/configure --enable-sharedlibs=$shlibtype \    --prefix=$prefix --libdir=$libdir --exec-prefix=$exec_prefix )if [ $? != 0 ] ; then    echo "Aborting build because mpi/common/locks/configure failed"    echo "See $mybuild/src/mpid/common/locks/config.log for more information"    exit 1fi( MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/common/datatype" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/common/sock" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/common/sock/poll" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I../../../../common/sock" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I../../../../common/sock/poll" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I../include" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I../../../include" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/ch3/channels/ssm/include" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I../../../../common/locks" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/common/locks" ; \export MPICH2_INCLUDE_FLAGS ; \ $mypath/configure --enable-sharedlibs=$shlibtype \    --prefix=$prefix --libdir=$libdir --exec-prefix=$exec_prefix )## Make the channel library and update the channel dll(cd src && make clean && rm -f libmpich2-ch3-ssm.la && \    make libmpich2-ch3-ssm.la )rc=$?if [ $rc != 0 ] ; then    echo "make step failed in ch3/channels/ssm/src"    exit $rcfirm -f *.loar x src/libmpich2-ch3-ssm.laar cr libmpich2-ch3-ssm.la *.lorm -f *.lo## Build the locks support code and link it into the ch3-ssm dll(cd $mybuild/src/mpid/common/locks && make clean && \    rm -f libmpich2locks.la && make libmpich2locks.la)rc=$?if [ $rc != 0 ] ; then    echo "make step failed in common/locks"    exit $rcfimkdir .tmpcd .tmprm -f *.loar x $mybuild/src/mpid/common/locks/libmpich2locks.laar cr ../libmpich2-ch3-ssm.la *.locd ..rm -rf .tmp## Build the ch3 shmbase support code and link it into the ch3-ssm dll# Include the socket includes because they're needed by the ssm includes# (at least for now)## Build the ch3 shm support code and link it into the ch3-ssm dllif [ ! -d ../../util ] ; then    mkdir ../../utilfiif [ ! -d ../../util/shmbase ] ; then    mkdir ../../util/shmbasefi(\MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/common/sock" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/common/sock/poll" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I../../../common/sock" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I../../../common/sock/poll" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I../../channels/ssm/include" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/ch3/channels/ssm/include" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I../../include" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/ch3/include" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/common/datatype" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I../../../common/locks" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/common/locks" ; \cd ../../util/shmbase && \    $mympich2/src/mpid/ch3/util/shmbase/configure \    --enable-sharedlibs=$shlibtype \    --prefix=$prefix --libdir=$libdir --exec-prefix=$exec_prefix )(cd ../../util/shmbase && make clean && rm -f libmpich-shmutil.la && \    make libmpich-shmutil.la)rc=$?if [ $rc != 0 ] ; then    echo "make step failed in util/shmbase"    exit $rcfimkdir .tmpcd .tmprm -f *.loar x ../../../util/shmbase/libmpich-shmutil.laar cr ../libmpich2-ch3-ssm.la *.locd ..rm -rf .tmp## Build the ch3 shm support code and link it into the ch3-ssm dll# Include the socket includes because they're needed by the ssm includes# (at least for now)## Build the ch3 socket support code and link it into the ch3-ssm dllif [ ! -d ../../util ] ; then    mkdir ../../utilfiif [ ! -d ../../util/shm ] ; then    mkdir ../../util/shmfi(\MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/common/sock" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/common/sock/poll" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I../../../common/sock" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I../../../common/sock/poll" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I../../channels/ssm/include" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/ch3/channels/ssm/include" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I../../include" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/ch3/include" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/common/datatype" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I../../../common/locks" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/common/locks" ; \cd ../../util/shm && \    $mympich2/src/mpid/ch3/util/shm/configure \    --enable-sharedlibs=$shlibtype \    --prefix=$prefix --libdir=$libdir --exec-prefix=$exec_prefix )(cd ../../util/shm && make clean && rm -f libmpich-sshmutil.la && \    make libmpich-sshmutil.la)rc=$?if [ $rc != 0 ] ; then    echo "make step failed in util/shm"    exit $rcfimkdir .tmpcd .tmprm -f *.loar x ../../../util/shm/libmpich-sshmutil.laar cr ../libmpich2-ch3-ssm.la *.locd ..rm -rf .tmp## Build the socket support code and link it into the ch3-ssm dll(cd $mybuild/src/mpid/common/sock/poll && make clean && \    rm -f libmpich2sock.la && make libmpich2sock.la)rc=$?if [ $rc != 0 ] ; then    echo "make step failed in common/sock/poll"    exit $rcfimkdir .tmpcd .tmprm -f *.loar x $mybuild/src/mpid/common/sock/poll/libmpich2sock.laar cr ../libmpich2-ch3-ssm.la *.locd ..rm -rf .tmp## Build the ch3 socket support code and link it into the ch3-ssm dllif [ ! -d ../../util ] ; then    mkdir ../../utilfiif [ ! -d ../../util/sock ] ; then    mkdir ../../util/sockfi(\MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/common/sock" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/common/sock/poll" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I../../../common/sock" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I../../../common/sock/poll" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I../../channels/ssm/include" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/ch3/channels/ssm/include" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I../../include" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/ch3/include" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/common/datatype" ;\MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I../../../common/locks" ; \MPICH2_INCLUDE_FLAGS="$MPICH2_INCLUDE_FLAGS -I$mympich2/src/mpid/common/locks" ; \cd ../../util/sock && \    $mympich2/src/mpid/ch3/util/sock/configure --enable-sharedlibs=$shlibtype \    --prefix=$prefix --libdir=$libdir --exec-prefix=$exec_prefix )(cd ../../util/sock && make clean && rm -f libmpich-sockutil.la && \    make libmpich-sockutil.la)rc=$?if [ $rc != 0 ] ; then    echo "make step failed in util/sock"    exit $rcfimkdir .tmpcd .tmprm -f *.loar x ../../../util/sock/libmpich-sockutil.laar cr ../libmpich2-ch3-ssm.la *.locd ..rm -rf .tmp## Now, create the dynamically-loadable libraryrm -f libmpich2-ch3-ssm*.dylib libmpich2-ch3-ssm*.so$mybuild/src/util/createshlib -echo --mode=link -version-info "1:1" \    -clink="$C_LINK_SHL" -cc=gcc -libtype=$shlibtype \    -o libmpich2-ch3-ssm.la -rpath `pwd`rc=$?if [ $rc != 0 ] ; then     echo "Createshlib step failed for ssm channel"    exit $rcfi# Note that when this directory is installed, it needs to be rebuilt with # a different rpath.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -