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

📄 acx_mpi.m4

📁 麻省理工的计算光子晶体的程序
💻 M4
字号:
dnl @synopsis ACX_MPI([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])dnldnl This macro tries to find out how to compile programs thatdnl use MPI (Message Passing Interface), a standard API fordnl parallel process communication (see http://www-unix.mcs.anl.gov/mpi/)dnldnl On success, it sets the MPICC, MPICXX, or MPIF77 output variable todnl the name of the MPI compiler, depending upon the current language.dnl (This may just be $CC/$CXX/$F77, but is more often something likednl mpicc/mpiCC/mpif77.)  It also sets MPILIBS to any libraries that arednl needed for linking MPI (e.g. -lmpi, if a special MPICC/MPICXX/MPIF77dnl was not found).dnldnl If you want to compile everything with MPI, you should set:dnldnl     CC="$MPICC" #OR# CXX="$MPICXX" #OR# F77="$MPIF77"dnl     LIBS="$MPILIBS $LIBS"dnldnl The user can force a particular library/compiler by setting thednl MPICC/MPICXX/MPIF77 and/or MPILIBS environment variables.dnldnl ACTION-IF-FOUND is a list of shell commands to run if an MPIdnl library is found, and ACTION-IF-NOT-FOUND is a list of commandsdnl to run it if it is not found.  If ACTION-IF-FOUND is not specified,dnl the default action will define HAVE_MPI.dnldnl @version $Id: acx_mpi.m4,v 1.5 2002/10/24 05:08:52 stevenj Exp $dnl @author Steven G. Johnson <stevenj@alum.mit.edu>AC_DEFUN([ACX_MPI], [AC_PREREQ(2.50) dnl for AC_LANG_CASEAC_LANG_CASE([C], [	AC_REQUIRE([AC_PROG_CC])	AC_CHECK_PROGS(MPICC, mpicc hcc mpcc mpcc_r mpxlc, $CC)	acx_mpi_save_CC="$CC"	CC="$MPICC"	AC_SUBST(MPICC)],[C++], [	AC_REQUIRE([AC_PROG_CXX])	AC_CHECK_PROGS(MPICXX, mpiCC mpCC, $CXX)	acx_mpi_save_CXX="$CXX"	CXX="$MPICXX"	AC_SUBST(MPICXX)],[Fortran 77], [	AC_REQUIRE([AC_PROG_F77])	AC_CHECK_PROGS(MPIF77, mpif77 hf77 mpxlf mpf77 mpif90 mpf90 mpxlf90 mpxlf95 mpxlf_r, $F77)	acx_mpi_save_F77="$F77"	F77="$MPIF77"	AC_SUBST(MPIF77)])if test x = x"$MPILIBS"; then	AC_LANG_CASE([C], [AC_CHECK_FUNC(MPI_Init, [MPILIBS=" "])],		[C++], [AC_CHECK_FUNC(MPI_Init, [MPILIBS=" "])],		[Fortran 77], [AC_MSG_CHECKING([for MPI_Init])			AC_TRY_LINK([],[      call MPI_Init], [MPILIBS=" "				AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)])])fiif test x = x"$MPILIBS"; then	AC_CHECK_LIB(mpi, MPI_Init, [MPILIBS="-lmpi"])fiif test x = x"$MPILIBS"; then	AC_CHECK_LIB(mpich, MPI_Init, [MPILIBS="-lmpich"])fidnl We have to use AC_TRY_COMPILE and not AC_CHECK_HEADER because thednl latter uses $CPP, not $CC (which may be mpicc).AC_LANG_CASE([C], [if test x != x"$MPILIBS"; then	AC_MSG_CHECKING([for mpi.h])	AC_TRY_COMPILE([#include <mpi.h>],[],[AC_MSG_RESULT(yes)], [MPILIBS=""		AC_MSG_RESULT(no)])fi],[C++], [if test x != x"$MPILIBS"; then	AC_MSG_CHECKING([for mpi.h])	AC_TRY_COMPILE([#include <mpi.h>],[],[AC_MSG_RESULT(yes)], [MPILIBS=""		AC_MSG_RESULT(no)])fi])AC_LANG_CASE([C], [CC="$acx_mpi_save_CC"],	[C++], [CXX="$acx_mpi_save_CXX"],	[Fortran 77], [F77="$acx_mpi_save_F77"])AC_SUBST(MPILIBS)# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:if test x = x"$MPILIBS"; then        $2        :else        ifelse([$1],,[AC_DEFINE(HAVE_MPI,1,[Define if you have the MPI library.])],[$1])        :fi])dnl ACX_MPI

⌨️ 快捷键说明

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