📄 configure
字号:
#! /bin/sh# Guess values for system-dependent variables and create Makefiles.# Generated automatically using autoconf.# Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc.# This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2, or (at your option)# any later version.# This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU General Public License for more details.# You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.progname="`echo $0 | sed 's:^\./\./:\./:'`"print_error() { echo "*# $*" 2>&1 ; }# The following are used to help move users to the eventual autoconf2 versionfound_old=""# # print_dep is for deprecated argument styles (prepare users for autoconf2)print_dep() { echo "Use the argument $2 instead of $1" found_old="$found_oldUse the argument $2 instead of $1"}print_useenv() { msg="$1" msg=`echo "$msg" | sed -e 's/=\([^ ]*\) \(.*\)$/="\1 \2"/'` echo "Use the environment variable $2 instead of configure argument $msg" found_old="$found_oldUse the environment variable $2 instead of configure argument $msg"}print_other() { echo "Use $2 instead of $1" found_old="$found_oldUse $2 instead of $1"}# Check that arg is newstyle; print message if it isn't# Check_dep (arg, newstyle)check_dep() { case $1 in -*with-* | -*without-* ) ;; -*enable-* | -*disable-* ) ;; *) print_dep "$1" "$2" ;; esac}print_usage() {cat <<EOFUsage: ${progname} [--with-arch=ARCH_TYPE] [--with-comm=COMM_TYPE] [--with-device=DEVICE] [--with-mpe] [--without-mpe] [--without-romio] [--disable-f77] [--disable-f90] [--with-f90nag] [--with-f95nag] [--disable-f90modules] [--disable-gencat] [--disable-doc] [--enable-cxx ] [--disable-cxx] [--with-coll[=filename]] [--enable-mpedbg] [--disable-mpedbg] [--enable-devdebug] [--disable-devdebug] [--enable-debug] [--disable-debug] [--enable-traceback] [--disable-traceback] [--enable-long-long] [--disable-long-long] [--enable-long-double] [--disable-long-double] [-prefix=INSTALL_DIR] [-c++[=C++_COMPILER] ] [noc++] [-opt=OPTFLAGS] [-cc=C_COMPILER] [-fc=FORTRAN_COMPILER] [-clinker=C_LINKER] [-flinker=FORTRAN_LINKER] [-c++linker=CC_LINKER] [-cflags=CFLAGS] [-fflags=FFLAGS] [-c++flags=CCFLAGS] [-optcc=C_OPTFLAGS] [-optf77=F77_OPTFLAGS] [-f90=F90_COMPILER] [-f90flags=F90_FLAGS] [-f90inc=INCLUDE_DIRECTORY_SPEC_FORMAT_FOR_F90] [-f90linker=F90_LINKER] [-f90libpath=LIBRARY_PATH_SPEC_FORMAT_FOR_F90] [-lib=LIBRARY] [-mpilibname=MPINAME] [-mpe_opts=MPE_OPTS] [-make=MAKEPGM ] [-memdebug] [-ptrdebug] [-tracing] [-dlast] [-listener_sig=SIGNAL_NAME] [-cross] [-adi_collective] [-automountfix=AUTOMOUNTFIX] [-noranlib] [-ar_nolocal] [-rsh=RSHCOMMAND] [-rshnol] [-file_system=FILE_SYSTEM] [-p4_opts=P4_OPTS]where ARCH_TYPE = the type of machine that MPI is to be configured for COMM_TYPE = communications layer or option to be used DEVICE = communications device to be used INSTALL_DIR = directory where MPI will be installed (optional) MPE_OPTS = options to pass to the mpe configure P4_OPTS = options to pass to the P4 configure (device=ch_p4) C++_COMPILER = default is to use xlC, g++, or CC (optional) OPTFLAGS = optimization flags to give the compilers (e.g. -g) CFLAGS = flags to give C compiler FFLAGS = flags to give Fortran compiler MAKEPGM = version of make to use LENGTH = Length of message at which ADI switches from short to long message protocol AUTOMOUNTFIX = Command to fix automounters RSHCOMMAND = Command to use for remote shell MPILIBNAME = Name to use instead of mpich in the name of the MPI library. If set, libMPILIBNAME will be used instead or libmpich. This can be used on systems with several different MPI implementations. FILE_SYSTEM = name of the file system ROMIO is to use. Currently supported values are nfs, ufs, pfs (Intel), piofs (IBM), hfs (HP), sfs (NEC), and xfs (SGI). SIGNAL_NAME = name of the signal for the P4 (device=ch_p4) device to use to indicate that a new connection is needed. By default, it is SIGUSR1.All arguments are optional, but if 'arch', 'comm', or 'prefix' argumentsare provided, there must be only one. 'arch' must be specified before'comm' if they both appear.Packages that may be included with MPICH--with-device=name - Use the named device for communication. Known names include ch_p4, ch_mpl, ch_shmem, and globus2. If not specified, a default is chosen. Special options for the device are specified after the device name, separated by a colon. E.g., --with-device=globus2:-flavor=mpi,nothreads--with-romio[=OPTIONS] - Use ROMIO to provide MPI-I/O from MPI-2 (default). The options include -file_system=FSTYPE, where fstype can be any combination of nfs, ufs, pfs (intel), piofs (IBM), hfs (HP), sfs (NEC), and xfs (SGI), combined with '+'. If romio is not included, the Fortran 90 modules cannot be built.--with-mpe - Build the MPE environment (default)--with-coll[=name] - Select the implementation of the MPI collective routines that should be used. By default, uses the most advanced version. The name is the name of the file (without the suffix) in src/coll that should be used for the collective routines. Currently, name may be either intra_fns_new (the default) or intra_fns .--with-f90nag - Choose the NAG f90 compiler for Fortran (preliminary version intended for use *instead* of a Fortran 77 compiler)--with-f95nag - Choose the NAG f95 compiler for Fortran--with-cross=file - Use the file for cross compilation. The file should contain assignments of the form CROSS_SIZEOF_INT=4 for each cross compilation variable. The command egrep 'CROSS_[A-Z_]*=' configure | sed 's/=.*//g' will list each variable.You can use --without-<featurename> to turn off a feature (except for device).EOF## For each device with a setup file, give the usage outputif test -z "$srcdir" ; then srcdir="." ; fifor mpid in $srcdir/mpid/* ; do if test -d $mpid ; then DEVICE=`echo $mpid | sed 's%.*/%%g'` device_setup=$mpid/setup_$DEVICE if test -f $device_setup ; then echo "Options for device $DEVICE:" export DEVICE eval $device_setup --usage 2>&1 echo " " fi fidone#cat <<EOFFeatures that may be included with MPICH--enable-cxx - Build C++ interfaces to the MPI-1 routines (default)--enable-f77 - Build Fortran 77 interfaces to the MPI routines (default)--enable-weak-symbols - Use weak symbols for MPI/PMPI routines. This uses weak symbols, if available, for the profiling interface (default)--enable-debug - Enable support for debuggers to access message queues--enable-traceback - Enable printing of a call stack when MPI and the user's program is built with certain compilers (currently only some versions of gcc are supported).--enable-mpedbg - Enable the -mpedbg command-line argument (e.g., errors can start an xterm running a debugger). Only works with some workstation systems.--enable-sharedlib - Attempt to build shared libraries. Static --enable-sharedlib=dir libraries are always built. If a directory is specified, the shared libraries will be placed in that directory. This can be used to place the shared libraries in a uniform location in local disks on a cluster.--enable-f90modules - Build Fortran 90 module support (default if a Fortran 90 or 95 compiler is found). If ROMIO is not built, no Fortran 90 modules will be built.The following are intended for MPI implementors and debugging of configure--enable-strict - Try and build MPICH using strict options in Gnu gcc--enable-echo - Cause configure to echo what it does--enable-devdebug - Enable debugging code in the ADI. You can use --disable-<featurename> to turn off a feature.Notes on configure usage:The suggestions for GNU configure usage suggest that configure not be usedto build different tools, only controlling some basics of the features enabled or the packages included. Our use of configure does not follow these rules because configure is too useful but we need the flexibility that allows the user to produce variations of MPICH.More notes on command-line parameters:You can select a different C and Fortran compiler by using the '-cc' and'fc' switches. The environment variables 'CC' and 'FC' can also providevalues for these but their settings may be overridden by the configurescript. Using '-cc=\$CC -fc=\$FC' will force configure to use thosecompilers.The option '-opt' allows you to specify optimization options for thecompilers (both C and Fortran). For example, '-opt=-O' chooses optimizedcode generation on many systems. '-optcc' and '-optf77' allow you tospecify options for just the C or Fortran compilers. Use -cflags and-fflags for options not related to optimization. Note that the '-opt' options are not passed to the 'mpicc', 'mpif77', 'mpiCC', and 'mpif90' scripts. The '-opt' options are used only in building MPICH.The option '-lib' allows you to specify the location of a library thatmay be needed by a particular device. Most devices do NOT need thisoption; check the installation instructions for those that might.The option '-make' may be used to select an alternate make program. Forexample, to make use of VPATH builds (building in one directory with thesource in a different directory), -make=gnumake may be required.The option '--disable-short-longs' may be used to suppress support for the C types 'long long' (a common extension) and 'long double' (ANSI/ISO C)when they are the same size as 'long' and 'double' respectively. Some systems allow these long C types, but generate a warning message when they are used; this option may be used to suppress these messages (and support for these types). '--disable-long-long' disables just 'long long';'--disable-long-double' disables just 'long double'.The option '-ar_nolocal' prevents the library archive command fromattempting to use the local directory for temporary space. This optionshould be used when (a) there isn't much space (less than 20 MB)available in the partition where MPICH resides and (b) there is enoughspace in /tmp (or wherever ar places temporary files by default).The option '-noranlib' causes the 'ranlib' step (needed on some systemsto build an object library) to be skipped. This is particularly usefulon systems where 'ranlib' is optional (allowed but not needed; because itis allowed, configure chooses to use it just in case) but can fail (some'ranlib's are implemented as scripts using 'ar'; if they don't use thelocal directory, they can fail (destroying the library in the process) ifthe temporary directory (usually '/tmp') does not have enough space.This has occured on some OSF systems.The environment variable 'RSHCOMMAND' allows you to select an alternative remote shell command (by default, configure will use 'rsh' or 'remsh' from your 'PATH'). If your remote shell command does not support the '-l' option(some AFS versions of 'rsh' have this bug), also give the option'-rshnol'. These options are useful only when building a network versionof MPICH (e.g., '--with-device=ch_p4'). The configure option '-rsh' is supported for backward compatibility.Special Tuning Options:There are a number of options for tuning the behavoir of the ADI(Abstract Device Interface) which is the low-level message-passinginterface. These should NOT be used unless you are sure you know whatyou are doing.The option '-pkt_size=LENGTH' allows you to choose the message length atwhich the ADI (Abstract Device Interface) switches from its short to longmessage format. LENGTH must be positive.The option '-adi_collective' allows the ADI to provide some collectiveoperations in addition to the basic point-to-point operations.Currently, most systems do not support this option (it is ignored) and onthe others it has not been extensively tested. Options for Experts:The option '-memdebug' enables extensive internal memory debugging code.This should be used only if you are trying to find a memory problem (itcan be used to help find memory problems in user code as well). Runningprograms with the option '-mpidb memdump' will produce a summary, when 'MPI_Finalize' is called, of all unfreed memory allocated my MPI. Forexample, a user-created datatype that was not later freed would be reported.The option '-tracing' enables tracing of internal calls. This should beused only for debugging the MPICH implementation itself.The option '-dlast' enables tracing of the most recent operations performedby the device. These can be output when a signal (like SIGINT), error, or call to a special routine occurs. There is a performance penalty forthis option, but it can be very useful for implementors attempting to debugproblems. Sample Configure Usage:To make for running on Sun's running Solaris with ch_p4 as the device, and with the installation directory equal to the current directory: ./configure --with-device=ch_p4 --with-arch=solaris makeKnown devices are ch_nx (native Intel NX calls), ch_mpl (native IBM EUI or MPL calls), ch_p4 (p4) ch_p4mpd (p4 with the MPD startup system) globus2 (Globus: globus_io/vMPI) ch_meiko (for Meiko CS2, using NX compatibility library), ch_shmem (for shared memory systems, such as SMPs), ch_lfshmem(for shared memory systems, such as SMPs; uses lock-free message buffers), ch_cenju3 (native NEC Cenju-3 calls) ch_gm (native Myrinet GM, distributed and supported by Myricom)The following devices were supported with ADI-1, but are currentlyunsupported. Please contact us if you are interested in helping ussupport these devices: meiko (for Meiko CS2, using elan tport library), and nx (for Intel Paragon), t3d (for the Cray T3D, using Cray shmem library). ch_nc (native nCUBE calls, requires -arch=ncube), ch_cmmd (native TMC CM-5 CMMD calls)These are no longer distributed with the MPICH distribution. Known architectures include (case is important) alpha (Compaq alpha) CRAY (CRAY XMP, YMP, C90, J90, T90) cray_t3d (CRAY T3D) CYGWIN_NT (PCs using Cygwin) EWS_UX_V (NEC EWS4800/360AD Series workstation. Untested.) freebsd (PC clones running FreeBSD) hpux (HP UX) intelnx (Intel i860 or Intel Delta) IRIX (synonym for sgi) IRIX32 (IRIX with 32bit objects -32) IRIXN32 (IRIX with -n32) IRIX64 (IRIX with 64bit objects) ksr (Kendall Square KSR1 and KSR2) LINUX (PC clones running LINUX) LINUX_ALPHA (Linux on Alpha processors) meiko (Meiko CS2) netbsd (PC clones running NetBSD) paragon (Intel Paragon) rs6000 (AIX for IBM RS6000) sgi (Silicon Graphics IRIX 4.x, 5.x or 6.x) sgi5 (Silicon Graphics IRIX 5.x on R4400's, for the MESHINE) solaris (Solaris) solaris86 (Solaris on Intel platforms) sppux (SPP UX) sun4 (SUN OS 4.x) SX_4_float0 (NEC SX-4; Floating point format float0 Conforms IEEE 754 standard. C: sizeof (int) = 4; sizeof (float) = 4 FORTRAN: sizeof (INTEGER) = 4; sizeof (REAL) = 4) SX_4_float1 (NEC SX-4; Floating point format float1 IBM floating point format. C: sizeof (int) = 4; sizeof (float) = 4 FORTRAN: sizeof (INTEGER) = 4; sizeof (REAL) = 4) SX_4_float2 (NEC SX-4; Floating point format float2 CRAY floating point format. C: sizeof (int) = 4; sizeof (float) = 8 FORTRAN: sizeof (INTEGER) = 8; sizeof (REAL) = 8) !!! WARNING !!! This version will not run together with FORTRAN routines. sizeof (INTEGER) != sizeof (int) SX_4_float2_int64 (NEC SX-4; Floating point format float2 and 64-bit int's) C: sizeof (int) = 8; sizeof (float) = 8 FORTRAN: sizeof (INTEGER) = 8; sizeof (REAL) = 8) tflops (Intel TFLOPS)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -