Configure Usage


Up: Contents Next: Deprecated Features Previous: General

The command configure -help will print out


height 1pt


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-c++ ] [--disable-c++] 
            [--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 
 
You can use --without-<featurename> to turn off a feature (except for  
device). 
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. 
 
If '-with-cross=file is given, 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. 
 
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, on FreeBSD systems, -make=gnumake may be required because makes 
derived from BSD 4.4 do not support the include operation (instead using 
the form .include, unlike all other makes); this is used in the wrappergen 
utility. 
 
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 '-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.   
 
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.   
 
Sample Configure Usage: 
 
To make for running on sun4's running SunOS with ch_p4 as the device, 
 and with the installation directory equal to the current directory: 
 
  ./configure --with-device=ch_p4 --with-arch=sun4 
  make 
 
Known devices are  
        ch_nx     (native Intel NX calls),  
        ch_mpl    (native IBM EUI or MPL calls), 
        ch_p4     (p4) 
	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) 
        sun4      (SUN OS 4.x) 
        solaris   (Solaris) 
	solaris86 (Solaris on Intel platforms) 
        hpux      (HP UX) 
        sppux     (SPP UX) 
        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) 
        IRIX      (synonym for sgi) 
        IRIX32    (IRIX with 32bit objects -32) 
        IRIXN32   (IRIX with -n32) 
        IRIX64    (IRIX with 64bit objects) 
        alpha     (DEC alpha) 
        intelnx   (Intel i860 or Intel Delta) 
        paragon   (Intel Paragon) 
	tflops    (Intel TFLOPS) 
        meiko     (Meiko CS2) 
        CRAY      (CRAY XMP, YMP, C90, J90, T90) 
        cray_t3d  (CRAY T3D) 
        freebsd   (PC clones running FreeBSD) 
        netbsd    (PC clones running NetBSD) 
	LINUX     (PC clones running LINUX) 
        LINUX_ALPHA (Linux on Alpha processors) 
        ksr       (Kendall Square KSR1 and KSR2) 
        EWS_UX_V  (NEC EWS4800/360AD Series workstation.  Untested.) 
        UXPM      (UXP/M. Untested.) 
        uxpv      (uxp/v. Untested.) 
        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) 
 
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. 
 
Others may be recognized. 

height 1pt



Up: Contents Next: Deprecated Features Previous: General