The command configure -help will print out
Configuring with args --help Configuring MPICH Version 1.2.3 (pre-alpha) of : 2001/08/20 18:08:23 Usage: ./configure [--with-arch=ARCH_TYPE] [--with-comm=COMM_TYPE] [--with-device=DEVICE] [--with-mpe] [--without-mpe] [--disable-f77] [--disable-f90] [--with-f90nag] [--with-f95nag] [--disable-f90modules] [--disable-gencat] [--disable-doc] [--enable-cxx ] [--disable-cxx] [--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] [-noromio] [-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' arguments are 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-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). Options for device ch_lfshmem: --with-device=ch_lfshmem[:-usesysv] The option '-usesysv' applies to the ch_shmem device, and causes the device to attempt and use System V shared memory and semaphore routines, rather than what would be chosen by default (often mmap or a system-specific method). Options for device ch_meiko: --with-device=ch_meiko Options for device ch_mpl: --with-device=ch_mpl Options for device ch_p4: ./configure: ./mpid/ch_p4/setup_ch_p4: Permission denied Options for device ch_p4mpd: --with-device=ch_p4mpd[:-listener_sig=SIGNALNAME][-dlast][-socksize=BYTES] The option '-listener_sig' applies to the ch_p4mpd device, and changes the signal that is used to signal that a new connection should be made. By default, SIGUSR1 is used. The option '-dlast' causes the p4 device to remember the last few debugging messages, printing them out only when the job terminates abnormally. The option '-socksize' changes the size of the socket buffers used. Options for device ch_shmem: --with-device=ch_shmem[:-usesysv] The option '-usesysv' applies to the ch_shmem device, and causes the device to attempt and use System V shared memory and semaphore routines, rather than what would be chosen by default (often mmap or a system-specific method). Options for device globus: --with-device=globus[:-globusdir=GLOBUSDIR] '-globusdir=GLOBUS' allows one to specify the location of an installed version of Globus. You can acquire Globus from http://www.globus.org ." Options for device globus2: *# GLOBUS_INSTALL_PATH must be set Features that may be included with MPICH --enable-c++ - 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 used to 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 provide values for these but their settings may be overridden by the configure script. Using '-cc=$CC -fc=$FC' will force configure to use those compilers. The option '-opt' allows you to specify optimization options for the compilers (both C and Fortran). For example, '-opt=-O' chooses optimized code generation on many systems. '-optcc' and '-optf77' allow you to specify 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 that may be needed by a particular device. Most devices do NOT need this option; check the installation instructions for those that might. The option '-make' may be used to select an alternate make program. For example, to make use of VPATH builds (building in one directory with the source 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 from attempting to use the local directory for temporary space. This option should be used when (a) there isn't much space (less than 20 MB) available in the partition where MPICH resides and (b) there is enough space in /tmp (or wherever ar places temporary files by default). The option '-noranlib' causes the 'ranlib' step (needed on some systems to build an object library) to be skipped. This is particularly useful on systems where 'ranlib' is optional (allowed but not needed; because it is 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 the local directory, they can fail (destroying the library in the process) if the temporary directory (usually '/tmp') does not have enough space. This has occured on some OSF systems. The option '-rsh' 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 version of MPICH (e.g., '--with-device=ch_p4'). 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-passing interface. These should NOT be used unless you are sure you know what you are doing. The option '-pkt_size=LENGTH' allows you to choose the message length at which the ADI (Abstract Device Interface) switches from its short to long message format. LENGTH must be positive. The option '-adi_collective' allows the ADI to provide some collective operations in addition to the basic point-to-point operations. Currently, most systems do not support this option (it is ignored) and on the 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 (it can be used to help find memory problems in user code as well). Running programs with the option '-mpidb memdump' will produce a summary, when 'MPI_Finalize' is called, of all unfreed memory allocated my MPI. For example, a user-created datatype that was not later freed would be reported. The option '-tracing' enables tracing of internal calls. This should be used only for debugging the MPICH implementation itself. The option '-dlast' enables tracing of the most recent operations performed by the device. These can be output when a signal (like SIGINT), error, or call to a special routine occurs. There is a performance penalty for this option, but it can be very useful for implementors attempting to debug problems. 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 make Known 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) The following devices were supported with ADI-1, but are currently unsupported. Please contact us if you are interested in helping us support 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) 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) UXPM (UXP/M. Untested.) uxpv (uxp/v. Untested.) Others may be recognized. Special notes: For SGI (--with-arch=IRIX) multiprocessors running the ch_p4 device, use -comm=ch_p4 to disable the use of the shared-memory p4 communication device, and -comm=shared to enable the shared-memory p4 communication device. The default is to enable the shared-memory communication device.