From b3685f71e983a3740a697354b999523e20943bf5 Mon Sep 17 00:00:00 2001 From: Aaron Bedra Date: Thu, 1 Jan 2009 19:38:54 -0500 Subject: [PATCH] removing files before merge with current sourceforge head from Rudi Cilibrasi --- COPYRIGHT | 50 - INSTALL | 182 -- Makefile.am | 3 - Makefile.in | 428 ---- README | 160 -- TODO | 0 VERSION | 1 - aclocal.m4 | 506 ----- config.guess | 1371 ------------ config.h.in | 19 - config.sub | 1362 ------------ configure | 3752 --------------------------------- configure.in | 113 - depcomp | 397 ---- docs/MPI | 139 -- docs/Makefile.am | 3 - docs/Makefile.in | 322 --- docs/html/Makefile.am | 2 - docs/html/Makefile.in | 204 -- docs/html/index.html | 27 - docs/html/mpi.html | 54 - docs/html/mpi_comm.html | 443 ---- docs/html/mpi_exception.html | 15 - docs/html/mpi_group.html | 99 - docs/html/mpi_keyval.html | 27 - docs/html/mpi_op.html | 25 - docs/html/mpi_request.html | 125 -- docs/html/mpi_status.html | 32 - docs/man/Makefile.am | 2 - docs/man/Makefile.in | 321 --- docs/man/man1/Makefile | 204 -- docs/man/man1/Makefile.am | 2 - docs/man/man1/Makefile.in | 204 -- docs/man/man1/mpi_ruby.1 | 18 - docs/man/man3/MPI_Comm.3 | 747 ------- docs/man/man3/MPI_Exception.3 | 8 - docs/man/man3/MPI_Group.3 | 165 -- docs/man/man3/MPI_Keyval.3 | 24 - docs/man/man3/MPI_Op.3 | 22 - docs/man/man3/MPI_Request.3 | 174 -- docs/man/man3/MPI_Ruby.3 | 74 - docs/man/man3/MPI_Status.3 | 39 - docs/man/man3/Makefile | 204 -- docs/man/man3/Makefile.am | 2 - docs/man/man3/Makefile.in | 204 -- docs/rd/Makefile.am | 2 - docs/rd/Makefile.in | 204 -- docs/rd/mpi.rd | 67 - docs/rd/mpi_comm.rd | 571 ----- docs/rd/mpi_exception.rd | 13 - docs/rd/mpi_group.rd | 127 -- docs/rd/mpi_keyval.rd | 27 - docs/rd/mpi_op.rd | 25 - docs/rd/mpi_request.rd | 134 -- docs/rd/mpi_status.rd | 37 - examples/Makefile.am | 2 - examples/Makefile.in | 204 -- examples/allgather.rb | 6 - examples/allreduce.rb | 5 - examples/basic.rb | 12 - examples/bcast.rb | 14 - examples/gather.rb | 12 - examples/hello.rb | 1 - examples/irecv.rb | 21 - examples/op.rb | 23 - examples/red.rb | 57 - examples/redhalt.rb | 8 - examples/redsubmit.rb | 14 - examples/reduce.rb | 7 - examples/rpi.rb | 24 - install-sh | 251 --- missing | 265 --- mkinstalldirs | 40 - src/.deps/main.Po | 146 -- src/.deps/mpi.Po | 144 -- src/.deps/mpi_comm.Po | 144 -- src/.deps/mpi_exception.Po | 144 -- src/.deps/mpi_group.Po | 144 -- src/.deps/mpi_keyval.Po | 144 -- src/.deps/mpi_op.Po | 146 -- src/.deps/mpi_request.Po | 147 -- src/.deps/mpi_status.Po | 144 -- src/Makefile.am | 17 - src/Makefile.in | 338 --- src/global.h | 23 - src/main.c | 58 - src/mpi.c | 106 - src/mpi_comm.c | 2519 ---------------------- src/mpi_comm.h | 8 - src/mpi_exception.c | 78 - src/mpi_exception.h | 10 - src/mpi_group.c | 295 --- src/mpi_group.h | 12 - src/mpi_keyval.c | 102 - src/mpi_keyval.h | 15 - src/mpi_op.c | 580 ----- src/mpi_op.h | 12 - src/mpi_op_fns.c | 810 ------- src/mpi_request.c | 695 ------ src/mpi_request.h | 18 - src/mpi_status.c | 54 - src/mpi_status.h | 9 - src/ops.rb | 60 - stamp-h.in | 1 - 104 files changed, 21571 deletions(-) delete mode 100644 COPYRIGHT delete mode 100644 INSTALL delete mode 100644 Makefile.am delete mode 100644 Makefile.in delete mode 100644 README delete mode 100644 TODO delete mode 100644 VERSION delete mode 100644 aclocal.m4 delete mode 100755 config.guess delete mode 100644 config.h.in delete mode 100755 config.sub delete mode 100755 configure delete mode 100644 configure.in delete mode 100755 depcomp delete mode 100644 docs/MPI delete mode 100644 docs/Makefile.am delete mode 100644 docs/Makefile.in delete mode 100644 docs/html/Makefile.am delete mode 100644 docs/html/Makefile.in delete mode 100644 docs/html/index.html delete mode 100644 docs/html/mpi.html delete mode 100644 docs/html/mpi_comm.html delete mode 100644 docs/html/mpi_exception.html delete mode 100644 docs/html/mpi_group.html delete mode 100644 docs/html/mpi_keyval.html delete mode 100644 docs/html/mpi_op.html delete mode 100644 docs/html/mpi_request.html delete mode 100644 docs/html/mpi_status.html delete mode 100644 docs/man/Makefile.am delete mode 100644 docs/man/Makefile.in delete mode 100644 docs/man/man1/Makefile delete mode 100644 docs/man/man1/Makefile.am delete mode 100644 docs/man/man1/Makefile.in delete mode 100644 docs/man/man1/mpi_ruby.1 delete mode 100644 docs/man/man3/MPI_Comm.3 delete mode 100644 docs/man/man3/MPI_Exception.3 delete mode 100644 docs/man/man3/MPI_Group.3 delete mode 100644 docs/man/man3/MPI_Keyval.3 delete mode 100644 docs/man/man3/MPI_Op.3 delete mode 100644 docs/man/man3/MPI_Request.3 delete mode 100644 docs/man/man3/MPI_Ruby.3 delete mode 100644 docs/man/man3/MPI_Status.3 delete mode 100644 docs/man/man3/Makefile delete mode 100644 docs/man/man3/Makefile.am delete mode 100644 docs/man/man3/Makefile.in delete mode 100644 docs/rd/Makefile.am delete mode 100644 docs/rd/Makefile.in delete mode 100644 docs/rd/mpi.rd delete mode 100644 docs/rd/mpi_comm.rd delete mode 100644 docs/rd/mpi_exception.rd delete mode 100644 docs/rd/mpi_group.rd delete mode 100644 docs/rd/mpi_keyval.rd delete mode 100644 docs/rd/mpi_op.rd delete mode 100644 docs/rd/mpi_request.rd delete mode 100644 docs/rd/mpi_status.rd delete mode 100644 examples/Makefile.am delete mode 100644 examples/Makefile.in delete mode 100644 examples/allgather.rb delete mode 100644 examples/allreduce.rb delete mode 100644 examples/basic.rb delete mode 100644 examples/bcast.rb delete mode 100644 examples/gather.rb delete mode 100644 examples/hello.rb delete mode 100644 examples/irecv.rb delete mode 100644 examples/op.rb delete mode 100644 examples/red.rb delete mode 100644 examples/redhalt.rb delete mode 100644 examples/redsubmit.rb delete mode 100644 examples/reduce.rb delete mode 100644 examples/rpi.rb delete mode 100755 install-sh delete mode 100755 missing delete mode 100755 mkinstalldirs delete mode 100644 src/.deps/main.Po delete mode 100644 src/.deps/mpi.Po delete mode 100644 src/.deps/mpi_comm.Po delete mode 100644 src/.deps/mpi_exception.Po delete mode 100644 src/.deps/mpi_group.Po delete mode 100644 src/.deps/mpi_keyval.Po delete mode 100644 src/.deps/mpi_op.Po delete mode 100644 src/.deps/mpi_request.Po delete mode 100644 src/.deps/mpi_status.Po delete mode 100644 src/Makefile.am delete mode 100644 src/Makefile.in delete mode 100644 src/global.h delete mode 100644 src/main.c delete mode 100644 src/mpi.c delete mode 100644 src/mpi_comm.c delete mode 100644 src/mpi_comm.h delete mode 100644 src/mpi_exception.c delete mode 100644 src/mpi_exception.h delete mode 100644 src/mpi_group.c delete mode 100644 src/mpi_group.h delete mode 100644 src/mpi_keyval.c delete mode 100644 src/mpi_keyval.h delete mode 100644 src/mpi_op.c delete mode 100644 src/mpi_op.h delete mode 100644 src/mpi_op_fns.c delete mode 100644 src/mpi_request.c delete mode 100644 src/mpi_request.h delete mode 100644 src/mpi_status.c delete mode 100644 src/mpi_status.h delete mode 100755 src/ops.rb delete mode 100644 stamp-h.in diff --git a/COPYRIGHT b/COPYRIGHT deleted file mode 100644 index 52fbd7a..0000000 --- a/COPYRIGHT +++ /dev/null @@ -1,50 +0,0 @@ -COPYRIGHT - -The following code is copyright 2008 Aaron J. Bedra. This code is taken from -the original mpi_ruby library and gives full credit and compliance to the -copyright that follows. - -DISCLAIMER - -No warranty express or implied, or assumes any legal liability or responsibility -for the accuracy, completeness, or usefulness of any information, apparatus, -product, or process disclosed, or represents that its use would not infringe -privately owned rights. - - - -==============================ORIGINAL LICENCE=============================== -COPYRIGHT - -The following is a notice of limited availability of the code, and disclaimer -which must be included in the prologue of the code and in all source listings -of the code. - -Copyright Notice - + 2001 University of Chicago - -Permission is hereby granted to use, reproduce, prepare derivative works, and -to redistribute to others. This software was authored by: - -Argonne National Laboratory Group -E. Ong: (630) 252-5941; e-mail: onge@mcs.anl.gov -Mathematics and Computer Science Division -Argonne National Laboratory, Argonne IL 60439 - -GOVERNMENT LICENSE - -Portions of this material resulted from work developed under a U.S. -Government Contract and are subject to the following license: the Government -is granted for itself and others acting on its behalf a paid-up, nonexclusive, -irrevocable worldwide license in this computer software to reproduce, prepare -derivative works, and perform publicly and display publicly. - -DISCLAIMER - -This computer code material was prepared, in part, as an account of work -sponsored by an agency of the United States Government. Neither the United -States, nor the University of Chicago, nor any of their employees, makes any -warranty express or implied, or assumes any legal liability or responsibility -for the accuracy, completeness, or usefulness of any information, apparatus, -product, or process disclosed, or represents that its use would not infringe -privately owned rights. diff --git a/INSTALL b/INSTALL deleted file mode 100644 index b42a17a..0000000 --- a/INSTALL +++ /dev/null @@ -1,182 +0,0 @@ -Basic Installation -================== - - These are generic installation instructions. - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, a file -`config.cache' that saves the results of its tests to speed up -reconfiguring, and a file `config.log' containing compiler output -(useful mainly for debugging `configure'). - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If at some point `config.cache' -contains results you don't want to keep, you may remove or edit it. - - The file `configure.in' is used to create `configure' by a program -called `autoconf'. You only need `configure.in' if you want to change -it or regenerate `configure' using a newer version of `autoconf'. - -The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Optionally, type `make check' to run any self-tests that come with - the package. - - 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly - for the package's developers. If you use it, you may have to get - all sorts of other programs in order to regenerate files that came - with the distribution. - -Compilers and Options -===================== - - Some systems require unusual options for compilation or linking that -the `configure' script does not know about. You can give `configure' -initial values for variables by setting them in the environment. Using -a Bourne-compatible shell, you can do that on the command line like -this: - CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure - -Or on systems that have the `env' program, you can do it like this: - env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure - -Compiling For Multiple Architectures -==================================== - - You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. - - If you have to use a `make' that does not supports the `VPATH' -variable, you have to compile the package for one architecture at a time -in the source code directory. After you have installed the package for -one architecture, use `make distclean' before reconfiguring for another -architecture. - -Installation Names -================== - - By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=PATH' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - -Optional Features -================= - - Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - -Specifying the System Type -========================== - - There may be some features `configure' can not figure out -automatically, but needs to determine by the type of host the package -will run on. Usually `configure' can figure that out, but if it prints -a message saying it can not guess the host type, give it the -`--host=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name with three fields: - CPU-COMPANY-SYSTEM - -See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the host type. - - If you are building compiler tools for cross-compiling, you can also -use the `--target=TYPE' option to select the type of system they will -produce code for and the `--build=TYPE' option to select the type of -system on which you are compiling the package. - -Sharing Defaults -================ - - If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Operation Controls -================== - - `configure' recognizes the following options to control how it -operates. - -`--cache-file=FILE' - Use and save the results of the tests in FILE instead of - `./config.cache'. Set FILE to `/dev/null' to disable caching, for - debugging `configure'. - -`--help' - Print a summary of the options to `configure', and exit. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error - messages will still be shown). - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`--version' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`configure' also accepts some other, not widely useful, options. diff --git a/Makefile.am b/Makefile.am deleted file mode 100644 index b815918..0000000 --- a/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -AUTOMAKE_OPTIONS = foreign dist-shar dist-tarZ dist-zip dist-bzip2 -EXTRA_DIST = COPYRIGHT -SUBDIRS = src docs examples diff --git a/Makefile.in b/Makefile.in deleted file mode 100644 index 18d3828..0000000 --- a/Makefile.in +++ /dev/null @@ -1,428 +0,0 @@ -# Makefile.in generated automatically by automake 1.4g from Makefile.am. - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = . - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_HEADER = $(INSTALL_DATA) -transform = @program_transform_name@ -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_alias = @build_alias@ -build_triplet = @build@ -host_alias = @host_alias@ -host_triplet = @host@ -target_alias = @target_alias@ -target_triplet = @target@ -AMTAR = @AMTAR@ -AWK = @AWK@ -CC = @CC@ -DEPDIR = @DEPDIR@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -MAX_OPS = @MAX_OPS@ -MPICC_PATH = @MPICC_PATH@ -PACKAGE = @PACKAGE@ -RB_ARCH_DIR = @RB_ARCH_DIR@ -RB_INCLUDE_DIR = @RB_INCLUDE_DIR@ -RB_LIB_DIR = @RB_LIB_DIR@ -RUBY = @RUBY@ -RUBY_CFLAGS = @RUBY_CFLAGS@ -RUBY_LIBS = @RUBY_LIBS@ -VERSION = @VERSION@ -_am_include = @_am_include@ -_am_quote = @_am_quote@ -install_sh = @install_sh@ - -AUTOMAKE_OPTIONS = foreign dist-shar dist-tarZ dist-zip dist-bzip2 -EXTRA_DIST = COPYRIGHT -SUBDIRS = src docs examples -EXEEXT = -OBJEXT = o -subdir = . -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = -DIST_SOURCES = - -RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \ - uninstall-info-recursive all-recursive install-data-recursive \ - install-exec-recursive installdirs-recursive install-recursive \ - uninstall-recursive check-recursive installcheck-recursive -DIST_COMMON = README ./stamp-h.in ChangeLog INSTALL Makefile.am \ - Makefile.in TODO aclocal.m4 config.guess config.h.in config.sub \ - configure configure.in depcomp install-sh missing mkinstalldirs -DIST_SUBDIRS = $(SUBDIRS) -all: config.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive - -.SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && \ - CONFIG_HEADERS= CONFIG_LINKS= \ - CONFIG_FILES=$@ $(SHELL) ./config.status - -$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck -$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) - cd $(srcdir) && $(AUTOCONF) - -$(ACLOCAL_M4): configure.in - cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -config.h: stamp-h - @if test ! -f $@; then \ - rm -f stamp-h; \ - $(MAKE) stamp-h; \ - else :; fi -stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status - @rm -f stamp-h stamp-hT - @echo timestamp > stamp-hT 2> /dev/null - cd $(top_builddir) \ - && CONFIG_FILES= CONFIG_HEADERS=config.h \ - $(SHELL) ./config.status - @mv stamp-hT stamp-h -$(srcdir)/config.h.in: $(srcdir)/./stamp-h.in - @if test ! -f $@; then \ - rm -f $(srcdir)/./stamp-h.in; \ - $(MAKE) $(srcdir)/./stamp-h.in; \ - else :; fi -$(srcdir)/./stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) - @rm -f $(srcdir)/./stamp-h.in $(srcdir)/./stamp-h.inT - @echo timestamp > $(srcdir)/./stamp-h.inT 2> /dev/null - cd $(top_srcdir) && $(AUTOHEADER) - @mv $(srcdir)/./stamp-h.inT $(srcdir)/./stamp-h.in - -distclean-hdr: - -rm -f config.h -uninstall-info-am: - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique $(LISP) - -TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \ - || etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) - -GTAGS: - here=`CDPATH=: && cd $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $$here - -distclean-tags: - -rm -f TAGS ID - -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = . -# Avoid unsightly `./'. -distdir = $(PACKAGE)-$(VERSION) - -GZIP_ENV = --best - -distdir: $(DISTFILES) - -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir) - mkdir $(distdir) - @for file in $(DISTFILES); do \ - if test -f $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - $(mkinstalldirs) "$(distdir)/$$dir"; \ - fi; \ - if test -d $$d/$$file; then \ - cp -pR $$d/$$file $(distdir) \ - || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - for subdir in $(SUBDIRS); do \ - if test "$$subdir" = .; then :; else \ - test -d $(distdir)/$$subdir \ - || mkdir $(distdir)/$$subdir \ - || exit 1; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" \ - distdir=../$(distdir)/$$subdir \ - distdir) \ - || exit 1; \ - fi; \ - done - -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r $(distdir) -dist: distdir - $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir) - -dist-bzip2: distdir - $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2 - -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir) - -dist-tarZ: distdir - $(AMTAR) chof - $(distdir) | compress -c >$(distdir).tar.Z - -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir) - -dist-shar: distdir - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir) - -dist-zip: distdir - -rm -f $(distdir).zip - zip -rq $(distdir).zip $(distdir) - -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - -chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir) - GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - - chmod -R a-w $(distdir); chmod a+w $(distdir) - mkdir $(distdir)/=build - mkdir $(distdir)/=inst - chmod a-w $(distdir) - dc_install_base=`CDPATH=: && cd $(distdir)/=inst && pwd` \ - && cd $(distdir)/=build \ - && ../configure --srcdir=.. --prefix=$$dc_install_base \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ - && test `find $$dc_install_base -type f -print | wc -l` -le 1 \ - && $(MAKE) $(AM_MAKEFLAGS) dist \ - && $(MAKE) $(AM_MAKEFLAGS) distclean \ - && rm -f $(distdir).tar.gz \ - && (test `find . -type f -print | wc -l` -eq 0 \ - || (echo "Error: files left after distclean" 1>&2; \ - exit 1) ) - -chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir) - @echo "$(distdir).tar.gz is ready for distribution" | \ - sed 'h;s/./=/g;p;x;p;x' -check-am: all-am -check: check-recursive -all-am: Makefile config.h -installdirs: installdirs-recursive -installdirs-am: - -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic mostlyclean-am - -dist-all: distdir - $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2 - $(AMTAR) chof - $(distdir) | compress -c >$(distdir).tar.Z - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - -rm -f $(distdir).zip - zip -rq $(distdir).zip $(distdir) - -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir) -distclean: distclean-recursive - -rm -f config.status config.cache config.log -distclean-am: clean-am distclean-generic distclean-hdr distclean-tags - -dvi: dvi-recursive - -dvi-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic - -uninstall-am: uninstall-info-am - -uninstall-info: uninstall-info-recursive - -.PHONY: $(RECURSIVE_TARGETS) all all-am check check-am clean \ - clean-generic clean-recursive dist dist-all dist-bzip2 \ - dist-shar dist-tarZ dist-zip distcheck distclean \ - distclean-generic distclean-hdr distclean-recursive \ - distclean-tags distdir dvi dvi-am dvi-recursive info info-am \ - info-recursive install install-am install-data install-data-am \ - install-data-recursive install-exec install-exec-am \ - install-exec-recursive install-info install-info-am \ - install-info-recursive install-man install-recursive \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am installdirs-recursive maintainer-clean \ - maintainer-clean-generic maintainer-clean-recursive mostlyclean \ - mostlyclean-generic mostlyclean-recursive tags tags-recursive \ - uninstall uninstall-am uninstall-info-am \ - uninstall-info-recursive uninstall-recursive - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/README b/README deleted file mode 100644 index acf66e1..0000000 --- a/README +++ /dev/null @@ -1,160 +0,0 @@ -MPI Ruby -======== - -MPI Ruby is a Ruby binding of MPI. The primary goal in making this -binding was to make the power of MPI available to Ruby users in a way -that fits into the language's object oriented model. In order to do this, -the buffer and datatype management necessary in the C, C++, and Fortran -bindings have been removed. What this means is that MPI Ruby allows -you to treat objects as messages. - -MPI Ruby also aims to be a complete binding to MPI in that it offers -access to nearly all functionality of MPI. While there is not a -one-to-one correspondence to functions and constants in the Ruby and -C/C++/Fortran bindings, all of the communication and topology features -are available. There are fewer methods in the Ruby binding than there -are functions in the C/C++/Fortran bindings, but this is mainly due -to the fact that the programmer no longer needs to deal with buffers -and datatypes. - -Prerequesites -============= - -To build MPI Ruby, you need a version of MPI installed and a version -of Ruby installed, of course. You also need to have the Ruby shared -library, libruby.so, and the Ruby header files. If these are not on -your system and you have built Ruby from source, you need to rebuild -Ruby with the --enable-shared option passed to Ruby's configure script. -If you installed Ruby from an RPM or other package, you may need to -install the 'developer package' of Ruby. - -Building MPI Ruby -================= - -The usual should suffice: - - ./configure [standard options] - make - -If you want to install MPI Ruby, use this: - - make install - -There are three non-standard options that configure can accept as well: - - --with-mpi-path= - - This option lets you specify the installation directory of your MPI - implementation. - - --with-ruby-prefix= - - This option lets you specify where Ruby is installed. - - --with-max-ops= - - By default, the user is only allowed to create 25 MPI operations. If - you would like to allow more or less, set it with this option. - -Using MPI Ruby -============== - -When MPI Ruby is built, an executable called 'mpi_ruby' is created. -This is an MPI program with a Ruby interpreter built in. It preloads a -Ruby module named 'MPI' to which all the MPI methods belong. In order to -run an MPI program written in Ruby with mpirun, you would use this syntax: - - mpirun -np 5 mpi_ruby my-mpi-prog.rb - -In this example, we're running the MPI program in the Ruby source file -'my-mpi-prog.rb' with 5 processes. You can also use any extended syntax -in this line that is supported by your MPI distribution. - -A Quick Look at a Ruby MPI Program -================================== - -The first thing to note about MPI programs that you will write in Ruby is that -it is no longer necessary to call MPI_Init or MPI_Finalize. Because of the -MPI runtime environment, these calls are already made for you in mpi_ruby. - -Let's take a look at a program where all the processes simply identify their -ranks: - -ranks.rb --------- -puts "Hello, I am #{MPI::Comm::WORLD.rank()} of #{MPI::Comm::WORLD.size()}" --------- - -And to run this program, we might use this command line: - - mpirun -np 5 mpi_ruby ranks.rb - -And we might get this output: - - Hello, I am 2 of 5 - Hello, I am 0 of 5 - Hello, I am 1 of 5 - Hello, I am 4 of 5 - Hello, I am 3 of 5 - -Now let's look at the program text. Notice the calls -MPI::Comm::WORLD.rank() and MPI::Comm::WORLD.size(). In both cases, -we're referencing the constant communicator WORLD in the Comm class of -the MPI module. This communicator corresponds to the MPI_COMM_WORLD -communicator in C. On this communicator, we've invoked the rank() and -size() methods that get the process' rank in the communicator and the -size of the communicator, respectively. - -Let's look at an example with point-to-point communication: - -basic.rb --------- -myrank = MPI::Comm::WORLD.rank() -csize = MPI::Comm::WORLD.size() - -if myrank % 2 == 0 then - if myrank + 1 != csize then - hello = "Hello, I'm #{myrank}, you must be #{myrank+1}" - MPI::Comm::WORLD.send(hello, myrank + 1, 0) - end -else - msg, status = MPI::Comm::WORLD.recv(myrank - 1, 0) - puts "I'm #{myrank} and this message came from #{status.source} with tag #{status.tag}: '#{msg}'" -end --------- - -Again, the invocation may look like this: - - % mpirun -np 6 mpi_ruby basic.rb - I'm 1 and this message came from 0 with tag 0: 'Hello, I'm 0, you must be 1' - I'm 3 and this message came from 2 with tag 0: 'Hello, I'm 2, you must be 3' - I'm 5 and this message came from 4 with tag 0: 'Hello, I'm 4, you must be 5' - -In this example, all of the processes with an even rank send a message -to the next process (unless there are an odd number of processes, in -which case the last process does nothing) and the odd ranked processes -receive a message from the previous process. - -The two calls in this example that do the communication are send() -and recv() in the MPI::Comm::WORLD communicator. In the send call, -the first argument is the object to send, the second argument is the -destination process, and the third argument is the message tag with which -to send the object. If you're familiar with the C, C++, or Fortran MPI -bindings, you may notice that there is no datatype or size information -passed to send(). This is because MPI Ruby is able to treat all Ruby -objects as messages, so you needn't worry about buffers and types. - -On the receiver side, the first argument to recv() is the rank of the -source process and the second argument is the message tag. recv() returns -an array of two values: the message object and the communication status. -In this example, we take advantage of Ruby's multiple assignment syntax -to store these values in msg and status. In the line after the recv() -call, note the use of the accessors status.source and status.tag. -These offer more information about the communication that just took place. - -These examples should get you started and when you're ready to go further, -look at the documentation to get the syntax and semantics of more MPI -calls. - - - diff --git a/TODO b/TODO deleted file mode 100644 index e69de29..0000000 diff --git a/VERSION b/VERSION deleted file mode 100644 index eadcafc..0000000 --- a/VERSION +++ /dev/null @@ -1 +0,0 @@ -VERSION=0.4 diff --git a/aclocal.m4 b/aclocal.m4 deleted file mode 100644 index b32c761..0000000 --- a/aclocal.m4 +++ /dev/null @@ -1,506 +0,0 @@ -# aclocal.m4 generated automatically by aclocal 1.4g - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000 -# Free Software Foundation, Inc. -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -# Like AC_CONFIG_HEADER, but automatically create stamp file. - -# serial 3 - -# When config.status generates a header, we must update the stamp-h file. -# This file resides in the same directory as the config header -# that is generated. We must strip everything past the first ":", -# and everything past the last "/". - -AC_PREREQ([2.12]) - -AC_DEFUN([AM_CONFIG_HEADER], -[AC_CONFIG_HEADER([$1]) - AC_OUTPUT_COMMANDS( - ifelse(patsubst([$1], [[^ ]], []), - [], - [test -z "$CONFIG_HEADERS" || echo timestamp >dnl - patsubst([$1], [^\([^:]*/\)?.*], [\1])stamp-h]), - [am_indx=1 - for am_file in $1; do - case " $CONFIG_HEADERS " in - *" $am_file "*) - echo timestamp > `echo $am_file | sed 's%:.*%%;s%[^/]*$%%'`stamp-h$am_indx - ;; - esac - am_indx=\`expr \$am_indx + 1\` - done]) -]) - -# Do all the work for Automake. This macro actually does too much -- -# some checks are only needed if your package does certain things. -# But this isn't really a big deal. - -# serial 5 - -# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be -# written in clear, in which case automake, when reading aclocal.m4, -# will think it sees a *use*, and therefore will trigger all it's -# C support machinery. Also note that it means that autoscan, seeing -# CC etc. in the Makefile, will ask for an AC_PROG_CC use... - - -# We require 2.13 because we rely on SHELL being computed by configure. -AC_PREREQ([2.13]) - -# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) -# ----------------------------------------------------------- -# If MACRO-NAME is provided do IF-PROVIDED, else IF-NOT-PROVIDED. -# The purpose of this macro is to provide the user with a means to -# check macros which are provided without letting her know how the -# information is coded. -# If this macro is not defined by Autoconf, define it here. -ifdef([AC_PROVIDE_IFELSE], - [], - [define([AC_PROVIDE_IFELSE], - [ifdef([AC_PROVIDE_$1], - [$2], [$3])])]) - - -# AM_INIT_AUTOMAKE(PACKAGE,VERSION, [NO-DEFINE]) -# ---------------------------------------------- -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_REQUIRE([AC_PROG_INSTALL])dnl -# test to see if srcdir already configured -if test "`CDPATH=:; cd $srcdir && pwd`" != "`pwd`" && - test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run \"make distclean\" there first]) -fi - -# Define the identity of the package. -PACKAGE=$1 -AC_SUBST(PACKAGE)dnl -VERSION=$2 -AC_SUBST(VERSION)dnl -ifelse([$3],, -[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) -AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])]) - -# Autoconf 2.50 wants to disallow AM_ names. We explicitly allow -# the ones we care about. -ifdef([m4_pattern_allow], - [m4_pattern_allow([^AM_[A-Z]+FLAGS])])dnl - -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG(ACLOCAL, aclocal) -AM_MISSING_PROG(AUTOCONF, autoconf) -AM_MISSING_PROG(AUTOMAKE, automake) -AM_MISSING_PROG(AUTOHEADER, autoheader) -AM_MISSING_PROG(MAKEINFO, makeinfo) -AM_MISSING_PROG(AMTAR, tar) -AM_MISSING_INSTALL_SH -AM_PROG_INSTALL_STRIP -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl -AC_REQUIRE([AM_DEP_TRACK])dnl -AC_REQUIRE([AM_SET_DEPDIR])dnl -AC_PROVIDE_IFELSE([AC_PROG_][CC], - [AM_DEPENDENCIES(CC)], - [define([AC_PROG_][CC], - defn([AC_PROG_][CC])[AM_DEPENDENCIES(CC)])])dnl -AC_PROVIDE_IFELSE([AC_PROG_][CXX], - [AM_DEPENDENCIES(CXX)], - [define([AC_PROG_][CXX], - defn([AC_PROG_][CXX])[AM_DEPENDENCIES(CXX)])])dnl -]) - -# -# Check to make sure that the build environment is sane. -# - -# serial 3 - -# AM_SANITY_CHECK -# --------------- -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftest.file -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftest.file` - fi - rm -f conftest.file - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken -alias in your environment]) - fi - - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -AC_MSG_RESULT(yes)]) - - -# serial 2 - -# AM_MISSING_PROG(NAME, PROGRAM) -# ------------------------------ -AC_DEFUN([AM_MISSING_PROG], -[AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) - - -# AM_MISSING_INSTALL_SH -# --------------------- -# Like AM_MISSING_PROG, but only looks for install-sh. -AC_DEFUN([AM_MISSING_INSTALL_SH], -[AC_REQUIRE([AM_MISSING_HAS_RUN]) -if test -z "$install_sh"; then - for install_sh in "$ac_aux_dir/install-sh" \ - "$ac_aux_dir/install.sh" \ - "${am_missing_run}${ac_auxdir}/install-sh"; - do - test -f "$install_sh" && break - done - # FIXME: an evil hack: we remove the SHELL invocation from - # install_sh because automake adds it back in. Sigh. - install_sh=`echo $install_sh | sed -e 's/\${SHELL}//'` -fi -AC_SUBST(install_sh)]) - - -# AM_MISSING_HAS_RUN -# ------------------ -# Define MISSING if not defined so far and test if it supports --run. -# If it does, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[test x"${MISSING+set}" = xset || - MISSING="\${SHELL} `CDPATH=:; cd $ac_aux_dir && pwd`/missing" -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - am_backtick='`' - AC_MSG_WARN([${am_backtick}missing' script is too old or missing]) -fi -]) - -# AM_AUX_DIR_EXPAND - -# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to ${srcdir}/foo. In other projects, it is set to `.'. -# Of course, Automake must honor this variable whenever it call a tool -# from the auxiliary directory. The problem is that $srcdir (hence -# $ac_aux_dir) can be either an absolute path or a path relative to -# $top_srcdir or absolute, this depends on how configure is run. This -# is pretty anoying since it makes $ac_aux_dir quite unusable in -# subdirectories: on the top source directory, any form will work -# fine, but in subdirectories relative pat needs to be adapted. -# - calling $top_srcidr/$ac_aux_dir/missing would success if $srcdir is -# relative, but fail if $srcdir is absolute -# - conversly, calling $ax_aux_dir/missing would fail if $srcdir is -# absolute, and success on relative paths. -# -# Consequently, we define and use $am_aux_dir, the "always absolute" -# version of $ac_aux_dir. - -AC_DEFUN([AM_AUX_DIR_EXPAND], [ -# expand $ac_aux_dir to an absolute path -am_aux_dir=`CDPATH=:; cd $ac_aux_dir && pwd` -]) - -# One issue with vendor `install' (even GNU) is that you can't -# specify the program used to strip binaries. This is especially -# annoying in cross-compiling environments, where the build's strip -# is unlikely to handle the host's binaries. -# Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in `make install-strip', and initialize -# STRIPPROG with the value of the STRIP variable (set by the user). -AC_DEFUN([AM_PROG_INSTALL_STRIP], -[AC_REQUIRE([AM_MISSING_INSTALL_SH])dnl -_am_dirpart="`echo $install_sh | sed -e 's,//*[[^/]]*$,,'`" -INSTALL_STRIP_PROGRAM="\${SHELL} \`CDPATH=: && cd $_am_dirpart && pwd\`/install-sh -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) - -# serial 3 - -# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be -# written in clear, in which case automake, when reading aclocal.m4, -# will think it sees a *use*, and therefore will trigger all it's -# C support machinery. Also note that it means that autoscan, seeing -# CC etc. in the Makefile, will ask for an AC_PROG_CC use... - -# AM_DEPENDENCIES(NAME) -# --------------------- -# See how the compiler implements dependency checking. -# NAME is "CC", "CXX" or "OBJC". -# We try a few techniques and use that to set a single cache variable. -AC_DEFUN([AM_DEPENDENCIES], -[AC_REQUIRE([AM_SET_DEPDIR])dnl -AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -am_compiler_list= -ifelse([$1], CC, - [AC_REQUIRE([AC_PROG_][CC])dnl -AC_REQUIRE([AC_PROG_][CPP]) -depcc="$CC" -depcpp="$CPP"], - [$1], CXX, [AC_REQUIRE([AC_PROG_][CXX])dnl -AC_REQUIRE([AC_PROG_][CXXCPP]) -depcc="$CXX" -depcpp="$CXXCPP"], - [$1], OBJC, [am_compiler_list='gcc3 gcc' -depcc="$OBJC" -depcpp=""], - [$1], GCJ, [am_compiler_list='gcc3 gcc' -depcc="$GCJ" -depcpp=""], - [AC_REQUIRE([AC_PROG_][$1])dnl -depcc="$$1" -depcpp=""]) - -AC_REQUIRE([AM_MAKE_INCLUDE]) -AC_REQUIRE([AM_DEP_TRACK]) - -AC_CACHE_CHECK([dependency style of $depcc], - [am_cv_$1_dependencies_compiler_type], -[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir confdir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" confdir - cd confdir - - am_cv_$1_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list="`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`" - fi - for depmode in $am_compiler_list; do - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - echo '#include "conftest.h"' > conftest.c - echo 'int i;' > conftest.h - - case "$depmode" in - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - none) break ;; - esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. - if depmode="$depmode" \ - source=conftest.c object=conftest.o \ - depfile=conftest.Po tmpdepfile=conftest.TPo \ - $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 && - grep conftest.h conftest.Po > /dev/null 2>&1; then - am_cv_$1_dependencies_compiler_type="$depmode" - break - fi - done - - cd .. - rm -rf confdir -else - am_cv_$1_dependencies_compiler_type=none -fi -]) -$1DEPMODE="depmode=$am_cv_$1_dependencies_compiler_type" -AC_SUBST([$1DEPMODE]) -]) - - -# AM_SET_DEPDIR -# ------------- -# Choose a directory name for dependency files. -# This macro is AC_REQUIREd in AM_DEPENDENCIES -AC_DEFUN([AM_SET_DEPDIR], -[if test -d .deps || mkdir .deps 2> /dev/null || test -d .deps; then - DEPDIR=.deps - # We redirect because .deps might already exist and be populated. - # In this situation we don't want to see an error. - rmdir .deps > /dev/null 2>&1 -else - DEPDIR=_deps -fi -AC_SUBST(DEPDIR) -]) - - -# AM_DEP_TRACK -# ------------ -AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE(dependency-tracking, -[ --disable-dependency-tracking Speeds up one-time builds - --enable-dependency-tracking Do not reject slow dependency extractors]) -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -pushdef([subst], defn([AC_SUBST])) -subst(AMDEPBACKSLASH) -popdef([subst]) -]) - -# Generate code to set up dependency tracking. -# This macro should only be invoked once -- use via AC_REQUIRE. -# Usage: -# AM_OUTPUT_DEPENDENCY_COMMANDS - -# -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each `.P' file that we will -# need in order to bootstrap the dependency handling code. -AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],[ -AC_OUTPUT_COMMANDS([ -test x"$AMDEP_TRUE" != x"" || -for mf in $CONFIG_FILES; do - case "$mf" in - Makefile) dirpart=.;; - */Makefile) dirpart=`echo "$mf" | sed -e 's|/[^/]*$||'`;; - *) continue;; - esac - grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue - # Extract the definition of DEP_FILES from the Makefile without - # running `make'. - DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"` - test -z "$DEPDIR" && continue - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n -e '/^U = / s///p' < "$mf"` - test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" - # We invoke sed twice because it is the simplest approach to - # changing $(DEPDIR) to its actual value in the expansion. - for file in `sed -n -e ' - /^DEP_FILES = .*\\\\$/ { - s/^DEP_FILES = // - :loop - s/\\\\$// - p - n - /\\\\$/ b loop - p - } - /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`echo "$file" | sed -e 's|/[^/]*$||'` - $ac_aux_dir/mkinstalldirs "$dirpart/$fdir" > /dev/null 2>&1 - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done -done -], [AMDEP_TRUE="$AMDEP_TRUE" -ac_aux_dir="$ac_aux_dir"])]) - -# AM_MAKE_INCLUDE() -# ----------------- -# Check to see how make treats includes. -AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' -doit: - @echo done -END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) -_am_include='#' -_am_quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then - _am_include=include - _am_quote= - _am_result=GNU -fi -# Now try BSD make style include. -if test "$_am_include" = "#"; then - echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - _am_include=.include - _am_quote='"' - _am_result=BSD - fi -fi -AC_SUBST(_am_include) -AC_SUBST(_am_quote) -AC_MSG_RESULT($_am_result) -rm -f confinc confmf -]) - -# serial 3 - -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -# -# FIXME: Once using 2.50, use this: -# m4_match([$1], [^TRUE\|FALSE$], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_DEFUN([AM_CONDITIONAL], -[ifelse([$1], [TRUE], - [errprint(__file__:__line__: [$0: invalid condition: $1 -])dnl -m4exit(1)])dnl -ifelse([$1], [FALSE], - [errprint(__file__:__line__: [$0: invalid condition: $1 -])dnl -m4exit(1)])dnl -AC_SUBST([$1_TRUE]) -AC_SUBST([$1_FALSE]) -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi]) - diff --git a/config.guess b/config.guess deleted file mode 100755 index ba66165..0000000 --- a/config.guess +++ /dev/null @@ -1,1371 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. - -timestamp='2001-04-20' - -# This file 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 of the License, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Written by Per Bothner . -# Please send patches to . -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. -# -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99, 2000 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; - --version | -v ) - echo "$version" ; exit 0 ;; - --help | --h* | -h ) - echo "$usage"; exit 0 ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - - -dummy=dummy-$$ -trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int dummy(){}" > $dummy.c - for c in cc gcc c89 ; do - ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 - if test $? = 0 ; then - CC_FOR_BUILD="$c"; break - fi - done - rm -f $dummy.c $dummy.o $dummy.rel - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 8/24/94.) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # Netbsd (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # Determine the machine/vendor (is the vendor relevant). - case "${UNAME_MACHINE}" in - amiga) machine=m68k-unknown ;; - arm32) machine=arm-unknown ;; - atari*) machine=m68k-atari ;; - sun3*) machine=m68k-sun ;; - mac68k) machine=m68k-apple ;; - macppc) machine=powerpc-apple ;; - hp3[0-9][05]) machine=m68k-hp ;; - ibmrt|romp-ibm) machine=romp-ibm ;; - *) machine=${UNAME_MACHINE}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE}" in - i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k) - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # The OS release - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit 0 ;; - alpha:OSF1:*:*) - if test $UNAME_RELEASE = "V4.0"; then - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - fi - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - cat <$dummy.s - .data -\$Lformat: - .byte 37,100,45,37,120,10,0 # "%d-%x\n" - - .text - .globl main - .align 4 - .ent main -main: - .frame \$30,16,\$26,0 - ldgp \$29,0(\$27) - .prologue 1 - .long 0x47e03d80 # implver \$0 - lda \$2,-1 - .long 0x47e20c21 # amask \$2,\$1 - lda \$16,\$Lformat - mov \$0,\$17 - not \$1,\$18 - jsr \$26,printf - ldgp \$29,0(\$26) - mov 0,\$16 - jsr \$26,exit - .end main -EOF - $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null - if test "$?" = 0 ; then - case `./$dummy` in - 0-0) - UNAME_MACHINE="alpha" - ;; - 1-0) - UNAME_MACHINE="alphaev5" - ;; - 1-1) - UNAME_MACHINE="alphaev56" - ;; - 1-101) - UNAME_MACHINE="alphapca56" - ;; - 2-303) - UNAME_MACHINE="alphaev6" - ;; - 2-307) - UNAME_MACHINE="alphaev67" - ;; - esac - fi - rm -f $dummy.s $dummy - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit 0 ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit 0 ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit 0;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit 0 ;; - arc64:OpenBSD:*:*) - echo mips64el-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hkmips:OpenBSD:*:*) - echo mips-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mips-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit 0 ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit 0;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit 0;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit 0 ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit 0 ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - i86pc:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit 0 ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit 0 ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit 0 ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit 0 ;; - atari*:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit 0 ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit 0 ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit 0 ;; - sun3*:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit 0 ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit 0 ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD $dummy.c -o $dummy \ - && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && rm -f $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy - echo mips-mips-riscos${UNAME_RELEASE} - exit 0 ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit 0 ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit 0 ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit 0 ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit 0 ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit 0 ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit 0 ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit 0 ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit 0 ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit 0 ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit 0 ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit 0 ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit 0 ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit 0 ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy - echo rs6000-ibm-aix3.2.5 - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit 0 ;; - *:AIX:*:[45]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit 0 ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit 0 ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit 0 ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit 0 ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit 0 ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit 0 ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit 0 ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit 0 ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - case "${HPUX_REV}" in - 11.[0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - esac ;; - esac - fi ;; - esac - if [ "${HP_ARCH}" = "" ]; then - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy` - if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi - rm -f $dummy.c $dummy - fi ;; - esac - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit 0 ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit 0 ;; - 3050*:HI-UX:*:*) - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy - echo unknown-hitachi-hiuxwe2 - exit 0 ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit 0 ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit 0 ;; - *9??*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit 0 ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit 0 ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit 0 ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit 0 ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit 0 ;; - hppa*:OpenBSD:*:*) - echo hppa-unknown-openbsd - exit 0 ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit 0 ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit 0 ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit 0 ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit 0 ;; - CRAY*X-MP:*:*:*) - echo xmp-cray-unicos - exit 0 ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} - exit 0 ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ - exit 0 ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*T3D:*:*:*) - echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY-2:*:*:*) - echo cray2-cray-unicos - exit 0 ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit 0 ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - *:FreeBSD:*:*) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit 0 ;; - *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - exit 0 ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit 0 ;; - i*:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit 0 ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit 0 ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i386-pc-interix - exit 0 ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit 0 ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit 0 ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - *:GNU:*:*) - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit 0 ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit 0 ;; - arm*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux - exit 0 ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - mips:Linux:*:*) - cat >$dummy.c < /* for printf() prototype */ -int main (int argc, char *argv[]) { -#else -int main (argc, argv) int argc; char *argv[]; { -#endif -#ifdef __MIPSEB__ - printf ("%s-unknown-linux-gnu\n", argv[1]); -#endif -#ifdef __MIPSEL__ - printf ("%sel-unknown-linux-gnu\n", argv[1]); -#endif - return 0; -} -EOF - $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy - ;; - ppc:Linux:*:*) - # Determine Lib Version - cat >$dummy.c < -#if defined(__GLIBC__) -extern char __libc_version[]; -extern char __libc_release[]; -#endif -main(argc, argv) - int argc; - char *argv[]; -{ -#if defined(__GLIBC__) - printf("%s %s\n", __libc_version, __libc_release); -#else - printf("unknown\n"); -#endif - return 0; -} -EOF - LIBC="" - $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null - if test "$?" = 0 ; then - ./$dummy | grep 1\.99 > /dev/null - if test "$?" = 0 ; then LIBC="libc1" ; fi - fi - rm -f $dummy.c $dummy - echo powerpc-unknown-linux-gnu${LIBC} - exit 0 ;; - alpha:Linux:*:*) - cat <$dummy.s - .data - \$Lformat: - .byte 37,100,45,37,120,10,0 # "%d-%x\n" - .text - .globl main - .align 4 - .ent main - main: - .frame \$30,16,\$26,0 - ldgp \$29,0(\$27) - .prologue 1 - .long 0x47e03d80 # implver \$0 - lda \$2,-1 - .long 0x47e20c21 # amask \$2,\$1 - lda \$16,\$Lformat - mov \$0,\$17 - not \$1,\$18 - jsr \$26,printf - ldgp \$29,0(\$26) - mov 0,\$16 - jsr \$26,exit - .end main -EOF - LIBC="" - $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null - if test "$?" = 0 ; then - case `./$dummy` in - 0-0) UNAME_MACHINE="alpha" ;; - 1-0) UNAME_MACHINE="alphaev5" ;; - 1-1) UNAME_MACHINE="alphaev56" ;; - 1-101) UNAME_MACHINE="alphapca56" ;; - 2-303) UNAME_MACHINE="alphaev6" ;; - 2-307) UNAME_MACHINE="alphaev67" ;; - esac - objdump --private-headers $dummy | \ - grep ld.so.1 > /dev/null - if test "$?" = 0 ; then - LIBC="libc1" - fi - fi - rm -f $dummy.s $dummy - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit 0 ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac - exit 0 ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit 0 ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit 0 ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu - exit 0 ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - ld_supported_emulations=`cd /; ld --help 2>&1 \ - | sed -ne '/supported emulations:/!d - s/[ ][ ]*/ /g - s/.*supported emulations: *// - s/ .*// - p'` - case "$ld_supported_emulations" in - i*86linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit 0 - ;; - elf_i*86) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - i*86coff) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit 0 - ;; - esac - # Either a pre-BFD a.out linker (linux-gnuoldld) - # or one that does not give us useful --help. - # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout. - # If ld does not provide *any* "supported emulations:" - # that means it is gnuoldld. - test -z "$ld_supported_emulations" && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 - case "${UNAME_MACHINE}" in - i*86) - VENDOR=pc; - ;; - *) - VENDOR=unknown; - ;; - esac - # Determine whether the default compiler is a.out or elf - cat >$dummy.c < -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif -#ifdef __ELF__ -# ifdef __GLIBC__ -# if __GLIBC__ >= 2 - printf ("%s-${VENDOR}-linux-gnu\n", argv[1]); -# else - printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); -# endif -# else - printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); -# endif -#else - printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]); -#endif - return 0; -} -EOF - $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy - test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 - ;; -# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions -# are messed up and put the nodename in both sysname and nodename. - i*86:DYNIX/ptx:4*:*) - echo i386-sequent-sysv4 - exit 0 ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit 0 ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit 0 ;; - i*86:*:5:7*) - # Fixed at (any) Pentium or better - UNAME_MACHINE=i586 - if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then - echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} - fi - exit 0 ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` - (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit 0 ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit 0 ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp - exit 0 ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit 0 ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit 0 ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit 0 ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit 0 ;; - M68*:*:R3V[567]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4.3${OS_REL} && exit 0 - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4 && exit 0 ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit 0 ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit 0 ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit 0 ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit 0 ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit 0 ;; - PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit 0 ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit 0 ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit 0 ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit 0 ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit 0 ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit 0 ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit 0 ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit 0 ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit 0 ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit 0 ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit 0 ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; - *:Darwin:*:*) - echo `uname -p`-apple-darwin${UNAME_RELEASE} - exit 0 ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - if test "${UNAME_MACHINE}" = "x86pc"; then - UNAME_MACHINE=pc - fi - echo `uname -p`-${UNAME_MACHINE}-nto-qnx - exit 0 ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit 0 ;; - NSR-[KW]:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit 0 ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit 0 ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit 0 ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit 0 ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit 0 ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit 0 ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit 0 ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit 0 ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit 0 ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit 0 ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit 0 ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit 0 ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0 -rm -f $dummy.c $dummy - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit 0 ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - c34*) - echo c34-convex-bsd - exit 0 ;; - c38*) - echo c38-convex-bsd - exit 0 ;; - c4*) - echo c4-convex-bsd - exit 0 ;; - esac -fi - -cat >&2 < in order to provide the needed -information to handle your system. - -config.guess timestamp = $timestamp - -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/config.h.in b/config.h.in deleted file mode 100644 index 519020a..0000000 --- a/config.h.in +++ /dev/null @@ -1,19 +0,0 @@ -/* config.h.in. Generated automatically from configure.in by autoheader. */ - -/* Define if your system has a working `malloc' function. */ -#undef HAVE_MALLOC - -/* Define if you have the header file. */ -#undef HAVE_STDLIB_H - -/* Name of package */ -#undef PACKAGE - -/* Define as the return type of signal handlers (`int' or `void'). */ -#undef RETSIGTYPE - -/* Define if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Version number of package */ -#undef VERSION diff --git a/config.sub b/config.sub deleted file mode 100755 index 93a3a14..0000000 --- a/config.sub +++ /dev/null @@ -1,1362 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. - -timestamp='2001-05-11' - -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. -# -# This file 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 of the License, 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., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Please send patches to . -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS - -Canonicalize a configuration name. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.sub ($timestamp) - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; - --version | -v ) - echo "$version" ; exit 0 ;; - --help | --h* | -h ) - echo "$usage"; exit 0 ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit 0;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | storm-chaos* | os2-emx*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc \ - | arm | arme[lb] | arm[bl]e | armv[2345] | armv[345][lb] | strongarm | xscale \ - | pyramid | mn10200 | mn10300 | tron | a29k \ - | 580 | i960 | h8300 \ - | x86 | ppcbe | mipsbe | mipsle | shbe | shle \ - | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \ - | hppa64 \ - | alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \ - | alphaev6[78] \ - | we32k | ns16k | clipper | i370 | sh | sh[34] \ - | powerpc | powerpcle \ - | 1750a | dsp16xx | pdp10 | pdp11 \ - | mips16 | mips64 | mipsel | mips64el \ - | mips64orion | mips64orionel | mipstx39 | mipstx39el \ - | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \ - | mips64vr5000 | miprs64vr5000el | mcore | s390 | s390x \ - | sparc | sparclet | sparclite | sparc64 | sparcv9 | sparcv9b \ - | v850 | c4x \ - | thumb | d10v | d30v | fr30 | avr | openrisc | tic80 \ - | pj | pjl | h8500 | z8k) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | w65 | z8k) - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - # FIXME: clean up the formatting here. - vax-* | tahoe-* | i*86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \ - | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | c[123]* \ - | arm-* | armbe-* | armle-* | armv*-* | strongarm-* | xscale-* \ - | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ - | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \ - | xmp-* | ymp-* \ - | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* \ - | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \ - | hppa2.0n-* | hppa64-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \ - | alphaev6[78]-* \ - | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \ - | clipper-* | orion-* \ - | sparclite-* | pdp10-* | pdp11-* | sh-* | sh[34]-* | sh[34]eb-* \ - | powerpc-* | powerpcle-* | sparc64-* | sparcv9-* | sparcv9b-* | sparc86x-* \ - | mips16-* | mips64-* | mipsel-* \ - | mips64el-* | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \ - | mipstx39-* | mipstx39el-* | mcore-* \ - | f30[01]-* | f700-* | s390-* | s390x-* | sv1-* | t3e-* \ - | [cjt]90-* \ - | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \ - | thumb-* | v850-* | d30v-* | tic30-* | tic80-* | c30-* | fr30-* \ - | bs2000-* | tic54x-* | c54x-* | x86_64-* | pj-* | pjl-*) - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | ymp) - basic_machine=ymp-cray - os=-unicos - ;; - cray2) - basic_machine=cray2-cray - os=-unicos - ;; - [cjt]90) - basic_machine=${basic_machine}-cray - os=-unicos - ;; - crds | unos) - basic_machine=m68k-crds - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mipsel*-linux*) - basic_machine=mipsel-unknown - os=-linux-gnu - ;; - mips*-linux*) - basic_machine=mips-unknown - os=-linux-gnu - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - mmix*) - basic_machine=mmix-knuth - os=-mmixware - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pentium | p5 | k5 | k6 | nexgen) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon) - basic_machine=i686-pc - ;; - pentiumii | pentium2) - basic_machine=i686-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sparclite-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=t3e-cray - os=-unicos - ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - xmp) - basic_machine=xmp-cray - os=-unicos - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - mips) - if [ x$os = x-linux-gnu ]; then - basic_machine=mips-unknown - else - basic_machine=mips-mips - fi - ;; - romp) - basic_machine=romp-ibm - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh3 | sh4) - basic_machine=sh-unknown - ;; - sparc | sparcv9 | sparcv9b) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - c4x*) - basic_machine=c4x-none - os=-coff - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -os2*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto*) - os=-nto-qnx - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -ns2 ) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; - *-ibm) - os=-aix - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -vxsim* | -vxworks*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os -exit 0 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/configure b/configure deleted file mode 100755 index bcc0c4a..0000000 --- a/configure +++ /dev/null @@ -1,3752 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by Autoconf 2.50. -# -# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi - -# Name of the executable. -as_me=`echo "$0" |sed 's,.*[\\/],,'` - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -as_executable_p="test -f" - -# Support unset when possible. -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - -# NLS nuisances. -$as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; } -$as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; } -$as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; } -$as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; } -$as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; } -$as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; } -$as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; } -$as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; } - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; } - -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -exec 6>&1 - -# -# Initializations. -# -ac_default_prefix=/usr/local -cross_compiling=no -subdirs= -MFLAGS= MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} - -# Maximum number of lines to put in a shell here document. -# This variable seems obsolete. It should probably be removed, and -# only ac_max_sed_lines should be used. -: ${ac_max_here_lines=38} - -# Avoid depending upon Character Ranges. -ac_cr_az='abcdefghijklmnopqrstuvwxyz' -ac_cr_AZ='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -ac_cr_09='0123456789' -ac_cr_alnum=$ac_cr_az$ac_cr_AZ$ac_cr_09 - -# Sed expression to map a string onto a valid sh and CPP variable names. -ac_tr_sh="sed y%*+%pp%;s%[^_$ac_cr_alnum]%_%g" -ac_tr_cpp="sed y%*$ac_cr_az%P$ac_cr_AZ%;s%[^_$ac_cr_alnum]%_%g" - -ac_unique_file="src/main.c" - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -# Identity of this package. -PACKAGE_NAME= -PACKAGE_TARNAME= -PACKAGE_VERSION= -PACKAGE_STRING= -PACKAGE_BUGREPORT= - -ac_prev= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_option in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$ac_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - eval "enable_$ac_feature=no" ;; - - -enable-* | --enable-*) - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$ac_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "enable_$ac_feature='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$ac_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package| sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "with_$ac_package='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$ac_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/-/_/g'` - eval "with_$ac_package=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) { echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$ac_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` - eval "$ac_envvar='$ac_optarg'" - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$ac_cr_alnum]" >/dev/null && - echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } -fi - -# Be sure to have absolute paths. -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ - localstatedir libdir includedir oldincludedir infodir mandir \ - exec_prefix prefix -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* ) ;; - NONE ) ;; - *) { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: should be removed in autoconf 3.0. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_prog=$0 - ac_confdir=`echo "$ac_prog" | sed 's%[\\/][^\\/][^\\/]*$%%'` - test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "$as_me: error: cannot find sources in $ac_confdir or .." >&2 - { (exit 1); exit 1; }; } - else - { echo "$as_me: error: cannot find sources in $srcdir" >&2 - { (exit 1); exit 1; }; } - fi -fi -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` -ac_env_build_alias_set=${build_alias+set} -ac_env_build_alias_value=$build_alias -ac_cv_env_build_alias_set=${build_alias+set} -ac_cv_env_build_alias_value=$build_alias -ac_env_host_alias_set=${host_alias+set} -ac_env_host_alias_value=$host_alias -ac_cv_env_host_alias_set=${host_alias+set} -ac_cv_env_host_alias_value=$host_alias -ac_env_target_alias_set=${target_alias+set} -ac_env_target_alias_value=$target_alias -ac_cv_env_target_alias_set=${target_alias+set} -ac_cv_env_target_alias_value=$target_alias -ac_env_CC_set=${CC+set} -ac_env_CC_value=$CC -ac_cv_env_CC_set=${CC+set} -ac_cv_env_CC_value=$CC -ac_env_CFLAGS_set=${CFLAGS+set} -ac_env_CFLAGS_value=$CFLAGS -ac_cv_env_CFLAGS_set=${CFLAGS+set} -ac_cv_env_CFLAGS_value=$CFLAGS -ac_env_LDFLAGS_set=${LDFLAGS+set} -ac_env_LDFLAGS_value=$LDFLAGS -ac_cv_env_LDFLAGS_set=${LDFLAGS+set} -ac_cv_env_LDFLAGS_value=$LDFLAGS -ac_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_env_CPPFLAGS_value=$CPPFLAGS -ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_cv_env_CPPFLAGS_value=$CPPFLAGS -ac_env_CPP_set=${CPP+set} -ac_env_CPP_value=$CPP -ac_cv_env_CPP_set=${CPP+set} -ac_cv_env_CPP_value=$CPP - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat < Prefix where Ruby is installed - --with-max-ops= The maximum number of MPI operations allowed - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have - headers in a nonstandard directory - CPP C preprocessor - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -EOF -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - ac_popdir=`pwd` - for ac_subdir in : $ac_subdirs_all; do test "x$ac_subdir" = x: && continue - cd $ac_subdir - # A "../" for each directory in /$ac_subdir. - ac_dots=`echo $ac_subdir | - sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - - case $srcdir in - .) # No --srcdir option. We are building in place. - ac_sub_srcdir=$srcdir ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_sub_srcdir=$srcdir/$ac_subdir ;; - *) # Relative path. - ac_sub_srcdir=$ac_dots$srcdir/$ac_subdir ;; - esac - - # Check for guested configure; otherwise get Cygnus style configure. - if test -f $ac_sub_srcdir/configure.gnu; then - echo - $SHELL $ac_sub_srcdir/configure.gnu --help=recursive - elif test -f $ac_sub_srcdir/configure; then - echo - $SHELL $ac_sub_srcdir/configure --help=recursive - elif test -f $ac_sub_srcdir/configure.ac || - test -f $ac_sub_srcdir/configure.in; then - echo - $ac_configure --help - else - echo "$as_me: WARNING: no configuration information is in $ac_subdir" >&2 - fi - cd $ac_popdir - done -fi - -test -n "$ac_init_help" && exit 0 -if $ac_init_version; then - cat <<\EOF - -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -EOF - exit 0 -fi -exec 5>config.log -cat >&5 </dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -hostinfo = `(hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -PATH = $PATH - -_ASUNAME -} >&5 - -cat >&5 <\?\"\']*) - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` - ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" - ac_sep=" " ;; - *) ac_configure_args="$ac_configure_args$ac_sep$ac_arg" - ac_sep=" " ;; - esac - # Get rid of the leading space. -done - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - echo >&5 - echo "## ----------------- ##" >&5 - echo "## Cache variables. ##" >&5 - echo "## ----------------- ##" >&5 - echo >&5 - # The following way of writing the cache mishandles newlines in values, -{ - (set) 2>&1 | - case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in - *ac_space=\ *) - sed -n \ - "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; - s/^\\([_$ac_cr_alnum]*_cv_[_$ac_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" - ;; - *) - sed -n \ - "s/^\\([_$ac_cr_alnum]*_cv_[_$ac_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} >&5 - sed "/^$/d" confdefs.h >conftest.log - if test -s conftest.log; then - echo >&5 - echo "## ------------ ##" >&5 - echo "## confdefs.h. ##" >&5 - echo "## ------------ ##" >&5 - echo >&5 - cat conftest.log >&5 - fi - (echo; echo) >&5 - test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" >&5 - echo "$as_me: exit $exit_status" >&5 - rm -rf conftest* confdefs* core core.* *.core conf$$* $ac_clean_files && - exit $exit_status - ' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_status=$?; ac_signal='$ac_signal'; { (exit $ac_status); exit $ac_status; }' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo >confdefs.h - -# Let the site file select an alternate cache file if it wants to. -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - { echo "$as_me:830: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} - cat "$ac_site_file" >&5 - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then - { echo "$as_me:841: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . $cache_file;; - *) . ./$cache_file;; - esac - fi -else - { echo "$as_me:849: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_suggest_removing_cache=false -for ac_var in `(set) 2>&1 | - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val="\$ac_cv_env_${ac_var}_value" - eval ac_new_val="\$ac_env_${ac_var}_value" - case $ac_old_set,$ac_new_set in - set,) - { echo "$as_me:865: WARNING: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -echo "$as_me: WARNING: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_suggest_removing_cache=: ;; - ,set) - { echo "$as_me:869: WARNING: \`$ac_var' was not set in the previous run" >&5 -echo "$as_me: WARNING: \`$ac_var' was not set in the previous run" >&2;} - ac_suggest_removing_cache=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - { echo "$as_me:875: WARNING: \`$ac_var' has changed since the previous run:" >&5 -echo "$as_me: WARNING: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:877: WARNING: former value: $ac_old_val" >&5 -echo "$as_me: WARNING: former value: $ac_old_val" >&2;} - { echo "$as_me:879: WARNING: current value: $ac_new_val" >&5 -echo "$as_me: WARNING: current value: $ac_new_val" >&2;} - ac_suggest_removing_cache=: - fi;; - esac -done -if $ac_suggest_removing_cache; then - { echo "$as_me:886: WARNING: changes in the environment can compromise the build" >&5 -echo "$as_me: WARNING: changes in the environment can compromise the build" >&2;} - { echo "$as_me:888: WARNING: consider removing $cache_file and starting over" >&5 -echo "$as_me: WARNING: consider removing $cache_file and starting over" >&2;} -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac -echo "#! $SHELL" >conftest.sh -echo "exit 0" >>conftest.sh -chmod +x conftest.sh -if { (echo "$as_me:907: PATH=\".;.\"; conftest.sh") >&5 - (PATH=".;."; conftest.sh) 2>&5 - ac_status=$? - echo "$as_me:910: \$? = $ac_status" >&5 - (exit $ac_status); }; then - ac_path_separator=';' -else - ac_path_separator=: -fi -PATH_SEPARATOR="$ac_path_separator" -rm -f conftest.sh - -ac_config_headers="$ac_config_headers config.h" - - ac_config_commands="$ac_config_commands default-1" - -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f $ac_dir/shtool; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { { echo "$as_me:940: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 -echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} - { (exit 1); exit 1; }; } -fi -ac_config_guess="$SHELL $ac_aux_dir/config.guess" -ac_config_sub="$SHELL $ac_aux_dir/config.sub" -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. - -# Make sure we can run config.sub. -$ac_config_sub sun4 >/dev/null 2>&1 || - { { echo "$as_me:950: error: cannot run $ac_config_sub" >&5 -echo "$as_me: error: cannot run $ac_config_sub" >&2;} - { (exit 1); exit 1; }; } - -echo "$as_me:954: checking build system type" >&5 -echo $ECHO_N "checking build system type... $ECHO_C" >&6 -if test "${ac_cv_build+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_build_alias=$build_alias -test -z "$ac_cv_build_alias" && - ac_cv_build_alias=`$ac_config_guess` -test -z "$ac_cv_build_alias" && - { { echo "$as_me:963: error: cannot guess build type; you must specify one" >&5 -echo "$as_me: error: cannot guess build type; you must specify one" >&2;} - { (exit 1); exit 1; }; } -ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || - { { echo "$as_me:967: error: $ac_config_sub $ac_cv_build_alias failed." >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed." >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:972: result: $ac_cv_build" >&5 -echo "${ECHO_T}$ac_cv_build" >&6 -build=$ac_cv_build -build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - -echo "$as_me:979: checking host system type" >&5 -echo $ECHO_N "checking host system type... $ECHO_C" >&6 -if test "${ac_cv_host+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_host_alias=$host_alias -test -z "$ac_cv_host_alias" && - ac_cv_host_alias=$ac_cv_build_alias -ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || - { { echo "$as_me:988: error: $ac_config_sub $ac_cv_host_alias failed" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:993: result: $ac_cv_host" >&5 -echo "${ECHO_T}$ac_cv_host" >&6 -host=$ac_cv_host -host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - -echo "$as_me:1000: checking target system type" >&5 -echo $ECHO_N "checking target system type... $ECHO_C" >&6 -if test "${ac_cv_target+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_target_alias=$target_alias -test "x$ac_cv_target_alias" = "x" && - ac_cv_target_alias=$ac_cv_host_alias -ac_cv_target=`$ac_config_sub $ac_cv_target_alias` || - { { echo "$as_me:1009: error: $ac_config_sub $ac_cv_target_alias failed" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:1014: result: $ac_cv_target" >&5 -echo "${ECHO_T}$ac_cv_target" >&6 -target=$ac_cv_target -target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -target_vendor=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -target_os=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - -# The aliases save the names the user supplied, while $host etc. -# will get canonicalized. -test -n "$target_alias" && - test "$program_prefix$program_suffix$program_transform_name" = \ - NONENONEs,x,x, && - program_prefix=${target_alias}- -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# ./install, which can be erroneously created by make from ./install.sh. -echo "$as_me:1039: checking for a BSD compatible install" >&5 -echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6 -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_save_IFS=$IFS; IFS=$ac_path_separator - for ac_dir in $PATH; do - IFS=$ac_save_IFS - # Account for people who put trailing slashes in PATH elements. - case $ac_dir/ in - / | ./ | .// | /cC/* \ - | /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* \ - | /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - if $as_executable_p "$ac_dir/$ac_prog"; then - if test $ac_prog = install && - grep dspmsg "$ac_dir/$ac_prog" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$ac_dir/$ac_prog" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - ac_cv_path_install="$ac_dir/$ac_prog -c" - break 2 - fi - fi - done - ;; - esac - done - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL=$ac_install_sh - fi -fi -echo "$as_me:1088: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -echo "$as_me:1099: checking whether build environment is sane" >&5 -echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 -# Just in case -sleep 1 -echo timestamp > conftest.file -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftest.file` - fi - rm -f conftest.file - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - { { echo "$as_me:1123: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&5 -echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&2;} - { (exit 1); exit 1; }; } - fi - - test "$2" = conftest.file - ) -then - # Ok. - : -else - { { echo "$as_me:1136: error: newly created file is older than distributed files! -Check your system clock" >&5 -echo "$as_me: error: newly created file is older than distributed files! -Check your system clock" >&2;} - { (exit 1); exit 1; }; } -fi -echo "$as_me:1142: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -if test "$program_transform_name" = s,x,x,; then - program_transform_name= -else - # Double any \ or $. echo might interpret backslashes. - cat <<\EOF >conftest.sed -s,\\,\\\\,g; s,\$,$$,g -EOF - program_transform_name=`echo $program_transform_name | sed -f conftest.sed` - rm -f conftest.sed -fi -test "$program_prefix" != NONE && - program_transform_name="s,^,${program_prefix},;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s,\$\$,${program_suffix},;$program_transform_name" - -# sed with no file args requires a program. -test -z "$program_transform_name" && program_transform_name="s,x,x," - -test x"${MISSING+set}" = xset || - MISSING="\${SHELL} `CDPATH=:; cd $ac_aux_dir && pwd`/missing" -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - am_backtick='`' - { echo "$as_me:1171: WARNING: ${am_backtick}missing' script is too old or missing" >&5 -echo "$as_me: WARNING: ${am_backtick}missing' script is too old or missing" >&2;} -fi - -for ac_prog in mawk gawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:1179: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_AWK+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_AWK="$ac_prog" -echo "$as_me:1194: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - echo "$as_me:1202: result: $AWK" >&5 -echo "${ECHO_T}$AWK" >&6 -else - echo "$as_me:1205: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$AWK" && break -done - -echo "$as_me:1212: checking whether ${MAKE-make} sets \${MAKE}" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.make <<\EOF -all: - @echo 'ac_maketemp="${MAKE}"' -EOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` -if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=yes -else - eval ac_cv_prog_make_${ac_make}_set=no -fi -rm -f conftest.make -fi -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$as_me:1232: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - SET_MAKE= -else - echo "$as_me:1236: result: no" >&5 -echo "${ECHO_T}no" >&6 - SET_MAKE="MAKE=${MAKE-make}" -fi - -# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then - enableval="$enable_dependency_tracking" - -fi; -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' -fi - -if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi - -if test -d .deps || mkdir .deps 2> /dev/null || test -d .deps; then - DEPDIR=.deps - # We redirect because .deps might already exist and be populated. - # In this situation we don't want to see an error. - rmdir .deps > /dev/null 2>&1 -else - DEPDIR=_deps -fi - -# test to see if srcdir already configured -if test "`CDPATH=:; cd $srcdir && pwd`" != "`pwd`" && - test -f $srcdir/config.status; then - { { echo "$as_me:1271: error: source directory already configured; run \"make distclean\" there first" >&5 -echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} - { (exit 1); exit 1; }; } -fi - -# Define the identity of the package. -PACKAGE=mpi_ruby -VERSION=0.3 - -cat >>confdefs.h <>confdefs.h <&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_MPICC_PATH+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $MPICC_PATH in - [\\/]* | ?:[\\/]*) - ac_cv_path_MPICC_PATH="$MPICC_PATH" # Let the user override the test with a path. - ;; - *) - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy=""$MPI_BIN_DIR"" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - if $as_executable_p "$ac_dir/$ac_word"; then - ac_cv_path_MPICC_PATH="$ac_dir/$ac_word" - echo "$as_me:1350: found $ac_dir/$ac_word" >&5 - break -fi -done - - test -z "$ac_cv_path_MPICC_PATH" && ac_cv_path_MPICC_PATH=""no"" - ;; -esac -fi -MPICC_PATH=$ac_cv_path_MPICC_PATH - -if test -n "$MPICC_PATH"; then - echo "$as_me:1362: result: $MPICC_PATH" >&5 -echo "${ECHO_T}$MPICC_PATH" >&6 -else - echo "$as_me:1365: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -else - # Extract the first word of "mpicc", so it can be a program name with args. -set dummy mpicc; ac_word=$2 -echo "$as_me:1372: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_MPICC_PATH+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $MPICC_PATH in - [\\/]* | ?:[\\/]*) - ac_cv_path_MPICC_PATH="$MPICC_PATH" # Let the user override the test with a path. - ;; - *) - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - if $as_executable_p "$ac_dir/$ac_word"; then - ac_cv_path_MPICC_PATH="$ac_dir/$ac_word" - echo "$as_me:1389: found $ac_dir/$ac_word" >&5 - break -fi -done - - test -z "$ac_cv_path_MPICC_PATH" && ac_cv_path_MPICC_PATH=""no"" - ;; -esac -fi -MPICC_PATH=$ac_cv_path_MPICC_PATH - -if test -n "$MPICC_PATH"; then - echo "$as_me:1401: result: $MPICC_PATH" >&5 -echo "${ECHO_T}$MPICC_PATH" >&6 -else - echo "$as_me:1404: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test "$MPICC_PATH" = "no"; then - { { echo "$as_me:1410: error: mpicc is necessary to build mpi_ruby" >&5 -echo "$as_me: error: mpicc is necessary to build mpi_ruby" >&2;} - { (exit 1); exit 1; }; } -fi -CC="$MPICC_PATH" -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -echo "$as_me:1423: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_CC="${ac_tool_prefix}gcc" -echo "$as_me:1438: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:1446: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:1449: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo "$as_me:1458: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_ac_ct_CC="gcc" -echo "$as_me:1473: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:1481: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:1484: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -echo "$as_me:1497: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_CC="${ac_tool_prefix}cc" -echo "$as_me:1512: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:1520: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:1523: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:1532: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_ac_ct_CC="cc" -echo "$as_me:1547: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:1555: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:1558: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -fi - -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:1571: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue -fi -ac_cv_prog_CC="cc" -echo "$as_me:1591: found $ac_dir/$ac_word" >&5 -break -done - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - set dummy "$ac_dir/$ac_word" ${1+"$@"} - shift - ac_cv_prog_CC="$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:1613: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:1616: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:1627: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_CC="$ac_tool_prefix$ac_prog" -echo "$as_me:1642: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:1650: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:1653: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:1666: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_ac_ct_CC="$ac_prog" -echo "$as_me:1681: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:1689: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:1692: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_CC" && break -done - - CC=$ac_ct_CC -fi - -fi - -test -z "$CC" && { { echo "$as_me:1704: error: no acceptable cc found in \$PATH" >&5 -echo "$as_me: error: no acceptable cc found in \$PATH" >&2;} - { (exit 1); exit 1; }; } - -cat >conftest.$ac_ext <<_ACEOF -#line 1709 "configure" -#include "confdefs.h" - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.exe" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compiler, and finding out an intuition -# of exeext. -echo "$as_me:1725: checking for C compiler default output" >&5 -echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6 -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -if { (eval echo "$as_me:1728: \"$ac_link_default\"") >&5 - (eval $ac_link_default) 2>&5 - ac_status=$? - echo "$as_me:1731: \$? = $ac_status" >&5 - (exit $ac_status); }; then - for ac_file in `ls a.exe conftest.exe a.* conftest conftest.* 2>/dev/null`; do - case $ac_file in - *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;; - a.out ) # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - export ac_cv_exeext - break;; - * ) break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -{ { echo "$as_me:1748: error: C compiler cannot create executables" >&5 -echo "$as_me: error: C compiler cannot create executables" >&2;} - { (exit 77); exit 77; }; } -fi - -ac_exeext=$ac_cv_exeext -echo "$as_me:1754: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6 - -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:1759: checking whether the C compiler works" >&5 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { (eval echo "$as_me:1765: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:1768: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { echo "$as_me:1775: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'." >&5 -echo "$as_me: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'." >&2;} - { (exit 1); exit 1; }; } - fi - fi -fi -echo "$as_me:1783: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - -rm -f a.out a.exe conftest$ac_cv_exeext -ac_clean_files=$ac_clean_files_save -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:1790: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 -echo "$as_me:1792: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6 - -echo "$as_me:1795: checking for executable suffix" >&5 -echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6 -if { (eval echo "$as_me:1797: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:1800: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do - case $ac_file in - *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - export ac_cv_exeext - break;; - * ) break;; - esac -done -else - { { echo "$as_me:1816: error: cannot compute EXEEXT: cannot compile and link" >&5 -echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest$ac_cv_exeext -echo "$as_me:1822: result: $ac_cv_exeext" >&5 -echo "${ECHO_T}$ac_cv_exeext" >&6 - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -echo "$as_me:1828: checking for object suffix" >&5 -echo $ECHO_N "checking for object suffix... $ECHO_C" >&6 -if test "${ac_cv_objext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line 1834 "configure" -#include "confdefs.h" - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { (eval echo "$as_me:1846: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:1849: \$? = $ac_status" >&5 - (exit $ac_status); }; then - for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -{ { echo "$as_me:1861: error: cannot compute OBJEXT: cannot compile" >&5 -echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -echo "$as_me:1868: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6 -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -echo "$as_me:1872: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 -if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line 1878 "configure" -#include "confdefs.h" - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:1893: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:1896: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:1899: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:1902: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_compiler_gnu=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -echo "$as_me:1914: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 -GCC=`test $ac_compiler_gnu = yes && echo yes` -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -CFLAGS="-g" -echo "$as_me:1920: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line 1926 "configure" -#include "confdefs.h" - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:1938: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:1941: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:1944: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:1947: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_g=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_prog_cc_g=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:1957: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -# Some people use a C++ compiler to compile C. Since we use `exit', -# in C++ we need to declare it. In case someone uses the same compiler -# for both compiling C and C++ we need to have the C++ compiler decide -# the declaration of exit, since it's the most demanding environment. -cat >conftest.$ac_ext <<_ACEOF -#ifndef __cplusplus - choke me -#endif -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:1984: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:1987: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:1990: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:1993: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - for ac_declaration in \ - ''\ - '#include ' \ - 'extern "C" void std::exit (int) throw (); using std::exit;' \ - 'extern "C" void std::exit (int); using std::exit;' \ - 'extern "C" void exit (int) throw ();' \ - 'extern "C" void exit (int);' \ - 'void exit (int);' -do - cat >conftest.$ac_ext <<_ACEOF -#line 2005 "configure" -#include "confdefs.h" -#include -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:2018: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:2021: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:2024: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:2027: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -continue -fi -rm -f conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -#line 2037 "configure" -#include "confdefs.h" -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:2049: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:2052: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:2055: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:2058: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest.$ac_ext -done -echo '#ifdef __cplusplus' >>confdefs.h -echo $ac_declaration >>confdefs.h -echo '#endif' >>confdefs.h - -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -ac_config_commands="$ac_config_commands default-2" - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -echo "$as_me:2089: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - # break 2 since there is a loop in there. - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -#line 2111 "configure" -#include "confdefs.h" -#include - Syntax error -_ACEOF -if { (eval echo "$as_me:2116: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:2122: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -#line 2145 "configure" -#include "confdefs.h" -#include -_ACEOF -if { (eval echo "$as_me:2149: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:2155: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - break 2 -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -echo "$as_me:2192: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6 -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -#line 2202 "configure" -#include "confdefs.h" -#include - Syntax error -_ACEOF -if { (eval echo "$as_me:2207: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:2213: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -#line 2236 "configure" -#include "confdefs.h" -#include -_ACEOF -if { (eval echo "$as_me:2240: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:2246: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { echo "$as_me:2274: error: C preprocessor \"$CPP\" fails sanity check" >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -am_make=${MAKE-make} -cat > confinc << 'END' -doit: - @echo done -END -# If we don't find an include directive, just comment out the code. -echo "$as_me:2291: checking for style of include used by $am_make" >&5 -echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 -_am_include='#' -_am_quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then - _am_include=include - _am_quote= - _am_result=GNU -fi -# Now try BSD make style include. -if test "$_am_include" = "#"; then - echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - _am_include=.include - _am_quote='"' - _am_result=BSD - fi -fi - -echo "$as_me:2318: result: $_am_result" >&5 -echo "${ECHO_T}$_am_result" >&6 -rm -f confinc confmf - -am_compiler_list= - -depcc="$CC" -depcpp="$CPP" - -echo "$as_me:2327: checking dependency style of $depcc" >&5 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir confdir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" confdir - cd confdir - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list="`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`" - fi - for depmode in $am_compiler_list; do - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - echo '#include "conftest.h"' > conftest.c - echo 'int i;' > conftest.h - - case "$depmode" in - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - none) break ;; - esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. - if depmode="$depmode" \ - source=conftest.c object=conftest.o \ - depfile=conftest.Po tmpdepfile=conftest.TPo \ - $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 && - grep conftest.h conftest.Po > /dev/null 2>&1; then - am_cv_CC_dependencies_compiler_type="$depmode" - break - fi - done - - cd .. - rm -rf confdir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -echo "$as_me:2387: result: $am_cv_CC_dependencies_compiler_type" >&5 -echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 -CCDEPMODE="depmode=$am_cv_CC_dependencies_compiler_type" - -# -------------- Check Ruby -------------- - -# Check whether --with-ruby-prefix or --without-ruby-prefix was given. -if test "${with_ruby_prefix+set}" = set; then - withval="$with_ruby_prefix" - ruby_prefix="$withval" -else - ruby_prefix="" -fi; - -if test "$ruby_prefix"; then - PATH="$ruby_prefix/bin:$PATH" -fi -for ac_prog in ruby -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:2408: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_RUBY+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $RUBY in - [\\/]* | ?:[\\/]*) - ac_cv_path_RUBY="$RUBY" # Let the user override the test with a path. - ;; - *) - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - if $as_executable_p "$ac_dir/$ac_word"; then - ac_cv_path_RUBY="$ac_dir/$ac_word" - echo "$as_me:2425: found $ac_dir/$ac_word" >&5 - break -fi -done - - ;; -esac -fi -RUBY=$ac_cv_path_RUBY - -if test -n "$RUBY"; then - echo "$as_me:2436: result: $RUBY" >&5 -echo "${ECHO_T}$RUBY" >&6 -else - echo "$as_me:2439: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$RUBY" && break -done - -if test -z "$RUBY"; then - { { echo "$as_me:2447: error: ruby is necessary to build mpi_ruby" >&5 -echo "$as_me: error: ruby is necessary to build mpi_ruby" >&2;} - { (exit 1); exit 1; }; } -fi - -echo "$as_me:2452: checking that ruby works..." >&5 -echo $ECHO_N "checking that ruby works...... $ECHO_C" >&6 -"$RUBY" -e 'true' 2> /dev/null -if test "$?" = "0"; then - echo "$as_me:2456: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - echo "$as_me:2459: result: no" >&5 -echo "${ECHO_T}no" >&6 - { { echo "$as_me:2461: error: ruby does not appear to work correctly. Check your installation" >&5 -echo "$as_me: error: ruby does not appear to work correctly. Check your installation" >&2;} - { (exit 1); exit 1; }; } -fi - -echo "$as_me:2466: checking ruby version >= 1.6.4" >&5 -echo $ECHO_N "checking ruby version >= 1.6.4... $ECHO_C" >&6 -RUBY_VERSION=`$RUBY -e 'puts VERSION'` -# [ = '[' and ] = ']' in autoconf. This stinks. -RUBY_MAJOR=`$RUBY -e 'puts VERSION.split(".")[0]'` -if test "$RUBY_MAJOR" -lt "1"; then - OLD_RUBY_VERSION="yes" -fi -RUBY_MINOR=`$RUBY -e 'puts VERSION.split(".")[1]'` -if test "$RUBY_MINOR" -lt "6"; then - OLD_RUBY_VERSION="yes" -fi -RUBY_MICRO=`$RUBY -e 'puts VERSION.split(".")[2]'` -if test "$RUBY_MICRO" -lt "4"; then - OLD_RUBY_VERSION="yes" -fi -if test "$OLD_RUBY_VERSION"; then - echo "$as_me:2483: result: no" >&5 -echo "${ECHO_T}no" >&6 - { { echo "$as_me:2485: error: You have Ruby version \"$RUBY_VERSION\", but version 1.6.4 is required. Please upgrade." >&5 -echo "$as_me: error: You have Ruby version \"$RUBY_VERSION\", but version 1.6.4 is required. Please upgrade." >&2;} - { (exit 1); exit 1; }; } -fi -echo "$as_me:2489: result: yes - $RUBY_VERSION" >&5 -echo "${ECHO_T}yes - $RUBY_VERSION" >&6 - -echo "$as_me:2492: checking for Ruby Config module" >&5 -echo $ECHO_N "checking for Ruby Config module... $ECHO_C" >&6 -"$RUBY" -e 'require "rbconfig"' 2>/dev/null -if test ! "$?" = "0"; then - echo "$as_me:2496: result: no" >&5 -echo "${ECHO_T}no" >&6 - { echo "$as_me:2498: WARNING: Could not find Config Ruby module. Assuming CFLAGS and LIBS for Ruby are in standard path..." >&5 -echo "$as_me: WARNING: Could not find Config Ruby module. Assuming CFLAGS and LIBS for Ruby are in standard path..." >&2;} - RUBY_CFLAGS="" - RUBY_LIBS="-lruby" -else - echo "$as_me:2503: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - echo "$as_me:2505: checking ruby CFLAGS" >&5 -echo $ECHO_N "checking ruby CFLAGS... $ECHO_C" >&6 - RB_ARCH_DIR=`$RUBY -e 'require "rbconfig"; puts Config::CONFIG["archdir"]'` - RB_INCLUDE_DIR=`$RUBY -e 'require "rbconfig"; puts Config::CONFIG["includedir"]'` - RUBY_CFLAGS="-I$RB_ARCH_DIR -I$RB_INCLUDE_DIR" - echo "$as_me:2510: result: $RUBY_CFLAGS" >&5 -echo "${ECHO_T}$RUBY_CFLAGS" >&6 - echo "$as_me:2512: checking ruby LIBS" >&5 -echo $ECHO_N "checking ruby LIBS... $ECHO_C" >&6 - RB_LIB_DIR=`$RUBY -e 'require "rbconfig"; puts Config::CONFIG["libdir"]'` - RUBY_LIBS="-lruby -L$RB_LIB_DIR" - echo "$as_me:2516: result: $RUBY_LIBS" >&5 -echo "${ECHO_T}$RUBY_LIBS" >&6 -fi - -# Check whether --with-max-ops or --without-max-ops was given. -if test "${with_max_ops+set}" = set; then - withval="$with_max_ops" - MAX_OPS="$withval" -else - MAX_OPS="25" -fi; - -# Checks for header files. - -echo "$as_me:2530: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line 2536 "configure" -#include "confdefs.h" -#include -#include -#include -#include - -_ACEOF -if { (eval echo "$as_me:2544: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:2550: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_cv_header_stdc=yes -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_cv_header_stdc=no -fi -rm -f conftest.err conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -#line 2572 "configure" -#include "confdefs.h" -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "memchr" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -#line 2590 "configure" -#include "confdefs.h" -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "free" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then - : -else - cat >conftest.$ac_ext <<_ACEOF -#line 2611 "configure" -#include "confdefs.h" -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - exit(2); - exit (0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:2637: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:2640: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:2642: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:2645: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_header_stdc=no -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_ext -fi -fi -fi -echo "$as_me:2658: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\EOF -#define STDC_HEADERS 1 -EOF - -fi - -# Checks for library functions. - -for ac_header in stdlib.h -do -ac_ac_Header=`echo "ac_cv_header_$ac_header" | $ac_tr_sh` -echo "$as_me:2673: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$ac_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line 2679 "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:2683: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:2689: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - eval "$ac_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - eval "$ac_ac_Header=no" -fi -rm -f conftest.err conftest.$ac_ext -fi -echo "$as_me:2708: result: `eval echo '${'$ac_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$ac_ac_Header'}'`" >&6 -if test `eval echo '${'$ac_ac_Header'}'` = yes; then - cat >>confdefs.h <&5 -echo $ECHO_N "checking for working malloc... $ECHO_C" >&6 -if test "${ac_cv_func_malloc_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_func_malloc_works=no -else - cat >conftest.$ac_ext <<_ACEOF -#line 2727 "configure" -#include "confdefs.h" -#if STDC_HEADERS || HAVE_STDLIB_H -# include -#else -char *malloc (); -#endif - -int -main () -{ -exit (malloc (0) ? 0 : 1); - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:2744: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:2747: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:2749: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:2752: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_malloc_works=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_func_malloc_works=no -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_ext -fi -fi -echo "$as_me:2764: result: $ac_cv_func_malloc_works" >&5 -echo "${ECHO_T}$ac_cv_func_malloc_works" >&6 -if test $ac_cv_func_malloc_works = yes; then - -cat >>confdefs.h <<\EOF -#define HAVE_MALLOC 1 -EOF - -fi - -echo "$as_me:2774: checking return type of signal handlers" >&5 -echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6 -if test "${ac_cv_type_signal+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line 2780 "configure" -#include "confdefs.h" -#include -#include -#ifdef signal -# undef signal -#endif -#ifdef __cplusplus -extern "C" void (*signal (int, void (*)(int)))(int); -#else -void (*signal ()) (); -#endif - -int -main () -{ -int i; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:2802: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:2805: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:2808: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:2811: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_signal=void -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_type_signal=int -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:2821: result: $ac_cv_type_signal" >&5 -echo "${ECHO_T}$ac_cv_type_signal" >&6 - -cat >>confdefs.h <confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overriden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -{ - (set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$ac_cr_alnum]*_cv_[_$ac_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n \ - "s/^\\([_$ac_cr_alnum]*_cv_[_$ac_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} | - sed ' - t clear - : clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - : end' >>confcache -if cmp -s $cache_file confcache; then :; else - if test -w $cache_file; then - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" - cat confcache >$cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/; -s/:*\${srcdir}:*/:/; -s/:*@srcdir@:*/:/; -s/^\([^=]*=[ ]*\):*/\1/; -s/:*$//; -s/^[^=]*=[ ]*$//; -}' -fi - -DEFS=-DHAVE_CONFIG_H - -: ${CONFIG_STATUS=./config.status} -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:2908: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF -#! $SHELL -# Generated automatically by configure. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -SHELL=\${CONFIG_SHELL-$SHELL} -ac_cs_invocation="\$0 \$@" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi - -# Name of the executable. -as_me=`echo "$0" |sed 's,.*[\\/],,'` - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -as_executable_p="test -f" - -# Support unset when possible. -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - -# NLS nuisances. -$as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; } -$as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; } -$as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; } -$as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; } -$as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; } -$as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; } -$as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; } -$as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; } - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; } - -exec 6>&1 - -_ACEOF - -# Files that config.status was made for. -if test -n "$ac_config_files"; then - echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_headers"; then - echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_links"; then - echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_commands"; then - echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS -fi - -cat >>$CONFIG_STATUS <<\EOF - -ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. - -Usage: $0 [OPTIONS] [FILE]... - - -h, --help print this help, then exit - -V, --version print version number, then exit - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Configuration commands: -$config_commands - -Report bugs to ." -EOF - -cat >>$CONFIG_STATUS <>$CONFIG_STATUS <<\EOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=*) - ac_option=`expr "x$1" : 'x\([^=]*\)='` - ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` - shift - set dummy "$ac_option" "$ac_optarg" ${1+"$@"} - shift - ;; - -*);; - *) # This is not an option, so the user has probably given explicit - # arguments. - ac_need_defaults=false;; - esac - - case $1 in - # Handling of the options. -EOF -cat >>$CONFIG_STATUS <>$CONFIG_STATUS <<\EOF - --version | --vers* | -V ) - echo "$ac_cs_version"; exit 0 ;; - --he | --h) - # Conflict between --help and --header - { { echo "$as_me:3084: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - echo "$ac_cs_usage"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - shift - CONFIG_FILES="$CONFIG_FILES $1" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - shift - CONFIG_HEADERS="$CONFIG_HEADERS $1" - ac_need_defaults=false;; - - # Handling of arguments. - 'Makefile' ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; - 'src/Makefile' ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; - 'docs/Makefile' ) CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;; - 'docs/html/Makefile' ) CONFIG_FILES="$CONFIG_FILES docs/html/Makefile" ;; - 'docs/man/Makefile' ) CONFIG_FILES="$CONFIG_FILES docs/man/Makefile" ;; - 'docs/man/man1/Makefile' ) CONFIG_FILES="$CONFIG_FILES docs/man/man1/Makefile" ;; - 'docs/man/man3/Makefile' ) CONFIG_FILES="$CONFIG_FILES docs/man/man3/Makefile" ;; - 'docs/rd/Makefile' ) CONFIG_FILES="$CONFIG_FILES docs/rd/Makefile" ;; - 'examples/Makefile' ) CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;; - 'default-1' ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; - 'default-2' ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-2" ;; - 'config.h' ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - - # This is an error. - -*) { { echo "$as_me:3117: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; } ;; - *) { { echo "$as_me:3122: error: invalid argument: $1" >&5 -echo "$as_me: error: invalid argument: $1" >&2;} - { (exit 1); exit 1; }; };; - esac - shift -done - -exec 5>>config.log -cat >&5 << _ACEOF - -## ----------------------- ## -## Running config.status. ## -## ----------------------- ## - -This file was extended by $as_me 2.50, executed with - > $ac_cs_invocation -on `(hostname || uname -n) 2>/dev/null | sed 1q` - -_ACEOF -EOF - -cat >>$CONFIG_STATUS <<\EOF -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Create a temporary directory, and hook for its removal unless debugging. -$debug || -{ - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 - trap '{ (exit $?); exit $?; }' 1 2 13 15 -} - -# Create a (secure) tmp directory for tmp files. -: ${TMPDIR=/tmp} -{ - tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=$TMPDIR/cs$$-$RANDOM - (umask 077 && mkdir $tmp) -} || -{ - echo "$me: cannot create a temporary directory in $TMPDIR" >&2 - { (exit 1); exit 1; } -} - -EOF - -cat >>$CONFIG_STATUS < `echo $am_file | sed 's%:.*%%;s%[^/]*$%%'`stamp-h$am_indx - ;; - esac - am_indx=\`expr \$am_indx + 1\` - done -AMDEP_TRUE="$AMDEP_TRUE" -ac_aux_dir="$ac_aux_dir" - -EOF - -cat >>$CONFIG_STATUS <\$tmp/subs.sed <<\\CEOF -s,@SHELL@,$SHELL,;t t -s,@exec_prefix@,$exec_prefix,;t t -s,@prefix@,$prefix,;t t -s,@program_transform_name@,$program_transform_name,;t t -s,@bindir@,$bindir,;t t -s,@sbindir@,$sbindir,;t t -s,@libexecdir@,$libexecdir,;t t -s,@datadir@,$datadir,;t t -s,@sysconfdir@,$sysconfdir,;t t -s,@sharedstatedir@,$sharedstatedir,;t t -s,@localstatedir@,$localstatedir,;t t -s,@libdir@,$libdir,;t t -s,@includedir@,$includedir,;t t -s,@oldincludedir@,$oldincludedir,;t t -s,@infodir@,$infodir,;t t -s,@mandir@,$mandir,;t t -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t -s,@ECHO_C@,$ECHO_C,;t t -s,@ECHO_N@,$ECHO_N,;t t -s,@ECHO_T@,$ECHO_T,;t t -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t -s,@DEFS@,$DEFS,;t t -s,@LIBS@,$LIBS,;t t -s,@build@,$build,;t t -s,@build_cpu@,$build_cpu,;t t -s,@build_vendor@,$build_vendor,;t t -s,@build_os@,$build_os,;t t -s,@host@,$host,;t t -s,@host_cpu@,$host_cpu,;t t -s,@host_vendor@,$host_vendor,;t t -s,@host_os@,$host_os,;t t -s,@target@,$target,;t t -s,@target_cpu@,$target_cpu,;t t -s,@target_vendor@,$target_vendor,;t t -s,@target_os@,$target_os,;t t -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t -s,@INSTALL_DATA@,$INSTALL_DATA,;t t -s,@PACKAGE@,$PACKAGE,;t t -s,@VERSION@,$VERSION,;t t -s,@ACLOCAL@,$ACLOCAL,;t t -s,@AUTOCONF@,$AUTOCONF,;t t -s,@AUTOMAKE@,$AUTOMAKE,;t t -s,@AUTOHEADER@,$AUTOHEADER,;t t -s,@MAKEINFO@,$MAKEINFO,;t t -s,@AMTAR@,$AMTAR,;t t -s,@install_sh@,$install_sh,;t t -s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t -s,@AWK@,$AWK,;t t -s,@SET_MAKE@,$SET_MAKE,;t t -s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t -s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t -s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t -s,@DEPDIR@,$DEPDIR,;t t -s,@MPICC_PATH@,$MPICC_PATH,;t t -s,@CC@,$CC,;t t -s,@CFLAGS@,$CFLAGS,;t t -s,@LDFLAGS@,$LDFLAGS,;t t -s,@CPPFLAGS@,$CPPFLAGS,;t t -s,@ac_ct_CC@,$ac_ct_CC,;t t -s,@EXEEXT@,$EXEEXT,;t t -s,@OBJEXT@,$OBJEXT,;t t -s,@CPP@,$CPP,;t t -s,@_am_include@,$_am_include,;t t -s,@_am_quote@,$_am_quote,;t t -s,@CCDEPMODE@,$CCDEPMODE,;t t -s,@RUBY@,$RUBY,;t t -s,@RB_ARCH_DIR@,$RB_ARCH_DIR,;t t -s,@RB_INCLUDE_DIR@,$RB_INCLUDE_DIR,;t t -s,@RB_LIB_DIR@,$RB_LIB_DIR,;t t -s,@RUBY_CFLAGS@,$RUBY_CFLAGS,;t t -s,@RUBY_LIBS@,$RUBY_LIBS,;t t -s,@MAX_OPS@,$MAX_OPS,;t t -CEOF - -EOF - - cat >>$CONFIG_STATUS <<\EOF - # Split the substitutions into bite-sized pieces for seds with - # small command number limits, like on Digital OSF/1 and HP-UX. - ac_max_sed_lines=48 - ac_sed_frag=1 # Number of current file. - ac_beg=1 # First line for current file. - ac_end=$ac_max_sed_lines # Line after last line for current file. - ac_more_lines=: - ac_sed_cmds= - while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - else - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - fi - if test ! -s $tmp/subs.frag; then - ac_more_lines=false - else - # The purpose of the label and of the branching condition is to - # speed up the sed processing (if there are no `@' at all, there - # is no need to browse any of the substitutions). - # These are the two extra sed commands mentioned above. - (echo ':t - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" - else - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" - fi - ac_sed_frag=`expr $ac_sed_frag + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_lines` - fi - done - if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat - fi -fi # test -n "$CONFIG_FILES" - -EOF -cat >>$CONFIG_STATUS <<\EOF -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. - ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - { case "$ac_dir" in - [\\/]* | ?:[\\/]* ) as_incr_dir=;; - *) as_incr_dir=.;; -esac -as_dummy="$ac_dir" -for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do - case $as_mkdir_dir in - # Skip DOS drivespec - ?:) as_incr_dir=$as_mkdir_dir ;; - *) - as_incr_dir=$as_incr_dir/$as_mkdir_dir - test -d "$as_incr_dir" || mkdir "$as_incr_dir" - ;; - esac -done; } - - ac_dir_suffix="/`echo $ac_dir|sed 's,^\./,,'`" - # A "../" for each directory in $ac_dir_suffix. - ac_dots=`echo "$ac_dir_suffix" | sed 's,/[^/]*,../,g'` - else - ac_dir_suffix= ac_dots= - fi - - case $srcdir in - .) ac_srcdir=. - if test -z "$ac_dots"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_dots | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_dots$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_dots$srcdir ;; - esac - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_dots$INSTALL ;; - esac - - if test x"$ac_file" != x-; then - { echo "$as_me:3400: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated automatically by config.status. */ - configure_input="Generated automatically from `echo $ac_file_in | - sed 's,.*/,,'` by configure." - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:3418: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo $f;; - *) # Relative - if test -f "$f"; then - # Build tree - echo $f - elif test -f "$srcdir/$f"; then - # Source tree - echo $srcdir/$f - else - # /dev/null tree - { { echo "$as_me:3431: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } -EOF -cat >>$CONFIG_STATUS <>$CONFIG_STATUS <<\EOF -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s,@configure_input@,$configure_input,;t t -s,@srcdir@,$ac_srcdir,;t t -s,@top_srcdir@,$ac_top_srcdir,;t t -s,@INSTALL@,$ac_INSTALL,;t t -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out - rm -f $tmp/stdin - if test x"$ac_file" != x-; then - mv $tmp/out $ac_file - else - cat $tmp/out - rm -f $tmp/out - fi - -done -EOF -cat >>$CONFIG_STATUS <<\EOF - -# -# CONFIG_HEADER section. -# - -# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where -# NAME is the cpp macro being defined and VALUE is the value it is being given. -# -# ac_d sets the value in "#define NAME VALUE" lines. -ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' -ac_dB='[ ].*$,\1#\2' -ac_dC=' ' -ac_dD=',;t' -# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". -ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_uB='$,\1#\2define\3' -ac_uC=' ' -ac_uD=',;t' - -for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - test x"$ac_file" != x- && { echo "$as_me:3492: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:3503: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo $f;; - *) # Relative - if test -f "$f"; then - # Build tree - echo $f - elif test -f "$srcdir/$f"; then - # Source tree - echo $srcdir/$f - else - # /dev/null tree - { { echo "$as_me:3516: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } - # Remove the trailing spaces. - sed 's/[ ]*$//' $ac_file_inputs >$tmp/in - -EOF - -# Transform confdefs.h into two sed scripts, `conftest.defines' and -# `conftest.undefs', that substitutes the proper values into -# config.h.in to produce config.h. The first handles `#define' -# templates, and the second `#undef' templates. -# And first: Protect against being on the right side of a sed subst in -# config.status. Protect against being in an unquoted here document -# in config.status. -rm -f conftest.defines conftest.undefs -# Using a here document instead of a string reduces the quoting nightmare. -# Putting comments in sed scripts is not portable. -# -# `end' is used to avoid that the second main sed command (meant for -# 0-ary CPP macros) applies to n-ary macro definitions. -# See the Autoconf documentation for `clear'. -cat >confdef2sed.sed <<\EOF -s/[\\&,]/\\&/g -s,[\\$`],\\&,g -t clear -: clear -s,^[ ]*#[ ]*define[ ][ ]*\(\([^ (][^ (]*\)([^)]*)\)[ ]*\(.*\)$,${ac_dA}\2${ac_dB}\1${ac_dC}\3${ac_dD},gp -t end -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp -: end -EOF -# If some macros were called several times there might be several times -# the same #defines, which is useless. Nevertheless, we may not want to -# sort them, since we want the *last* AC-DEFINE to be honored. -uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines -sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs -rm -f confdef2sed.sed - -# This sed command replaces #undef with comments. This is necessary, for -# example, in the case of _POSIX_SOURCE, which is predefined and required -# on some systems where configure will not decide to define it. -cat >>conftest.undefs <<\EOF -s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, -EOF - -# Break up conftest.defines because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS -echo ' if egrep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS -echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS -echo ' :' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.defines >/dev/null -do - # Write a limited-size here document to $tmp/defines.sed. - echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS - # Speed up: don't consider the non `#define' lines. - echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/defines.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail - rm -f conftest.defines - mv conftest.tail conftest.defines -done -rm -f conftest.defines -echo ' fi # egrep' >>$CONFIG_STATUS -echo >>$CONFIG_STATUS - -# Break up conftest.undefs because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #undef templates' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.undefs >/dev/null -do - # Write a limited-size here document to $tmp/undefs.sed. - echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS - # Speed up: don't consider the non `#undef' - echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/undefs.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail - rm -f conftest.undefs - mv conftest.tail conftest.undefs -done -rm -f conftest.undefs - -cat >>$CONFIG_STATUS <<\EOF - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated automatically by config.status. */ - if test x"$ac_file" = x-; then - echo "/* Generated automatically by configure. */" >$tmp/config.h - else - echo "/* $ac_file. Generated automatically by configure. */" >$tmp/config.h - fi - cat $tmp/in >>$tmp/config.h - rm -f $tmp/in - if test x"$ac_file" != x-; then - if cmp -s $ac_file $tmp/config.h 2>/dev/null; then - { echo "$as_me:3633: $ac_file is unchanged" >&5 -echo "$as_me: $ac_file is unchanged" >&6;} - else - ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - { case "$ac_dir" in - [\\/]* | ?:[\\/]* ) as_incr_dir=;; - *) as_incr_dir=.;; -esac -as_dummy="$ac_dir" -for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do - case $as_mkdir_dir in - # Skip DOS drivespec - ?:) as_incr_dir=$as_mkdir_dir ;; - *) - as_incr_dir=$as_incr_dir/$as_mkdir_dir - test -d "$as_incr_dir" || mkdir "$as_incr_dir" - ;; - esac -done; } - - fi - rm -f $ac_file - mv $tmp/config.h $ac_file - fi - else - cat $tmp/config.h - rm -f $tmp/config.h - fi -done -EOF -cat >>$CONFIG_STATUS <<\EOF - -# -# CONFIG_COMMANDS section. -# -for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue - ac_dest=`echo "$ac_file" | sed 's,:.*,,'` - ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` - - case $ac_dest in - default-1 ) test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h ;; - default-2 ) -test x"$AMDEP_TRUE" != x"" || -for mf in $CONFIG_FILES; do - case "$mf" in - Makefile) dirpart=.;; - */Makefile) dirpart=`echo "$mf" | sed -e 's|/[^/]*$||'`;; - *) continue;; - esac - grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue - # Extract the definition of DEP_FILES from the Makefile without - # running `make'. - DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"` - test -z "$DEPDIR" && continue - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n -e '/^U = / s///p' < "$mf"` - test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" - # We invoke sed twice because it is the simplest approach to - # changing $(DEPDIR) to its actual value in the expansion. - for file in `sed -n -e ' - /^DEP_FILES = .*\\\\$/ { - s/^DEP_FILES = // - :loop - s/\\\\$// - p - n - /\\\\$/ b loop - p - } - /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`echo "$file" | sed -e 's|/[^/]*$||'` - $ac_aux_dir/mkinstalldirs "$dirpart/$fdir" > /dev/null 2>&1 - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done -done - ;; - esac -done -EOF - -cat >>$CONFIG_STATUS <<\EOF - -{ (exit 0); exit 0; } -EOF -chmod +x $CONFIG_STATUS -ac_clean_files=$ac_clean_files_save - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - exec 5>/dev/null - $SHELL $CONFIG_STATUS || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || { (exit 1); exit 1; } -fi - diff --git a/configure.in b/configure.in deleted file mode 100644 index 6d6a41f..0000000 --- a/configure.in +++ /dev/null @@ -1,113 +0,0 @@ -AC_INIT([src/main.c]) - -AM_CONFIG_HEADER(config.h) -AC_CANONICAL_SYSTEM -AM_INIT_AUTOMAKE(mpi_ruby, 0.3) - -# Checks for programs. -AC_ARG_WITH(mpi-path, - [ --with-mpi-path=mpi-path Specify where to find MPI], - MPI_BIN_DIR="$withval/bin") -if test "$MPI_BIN_DIR"; then - AC_PATH_PROG(MPICC_PATH, mpicc, "no", "$MPI_BIN_DIR") -else - AC_PATH_PROG(MPICC_PATH, mpicc, "no") -fi -if test "$MPICC_PATH" = "no"; then - AC_MSG_ERROR([mpicc is necessary to build mpi_ruby]) -fi -CC="$MPICC_PATH" -AC_PROG_CC - -# -------------- Check Ruby -------------- -AC_ARG_WITH(ruby-prefix, - [ --with-ruby-prefix= Prefix where Ruby is installed], - ruby_prefix="$withval", - ruby_prefix="") - -if test "$ruby_prefix"; then - PATH="$ruby_prefix/bin:$PATH" -fi -AC_PATH_PROGS(RUBY, [ruby]) -if test -z "$RUBY"; then - AC_MSG_ERROR([ruby is necessary to build mpi_ruby]) -fi - -AC_MSG_CHECKING(that ruby works...) -"$RUBY" -e 'true' 2> /dev/null -if test "$?" = "0"; then - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) - AC_MSG_ERROR([ruby does not appear to work correctly. Check your installation]) -fi - -AC_MSG_CHECKING(ruby version >= 1.6.4) -RUBY_VERSION=`$RUBY -e 'puts VERSION'` -# @<:@ = '[' and @:>@ = ']' in autoconf. This stinks. -RUBY_MAJOR=`$RUBY -e 'puts VERSION.split(".")@<:@0@:>@'` -if test "$RUBY_MAJOR" -lt "1"; then - OLD_RUBY_VERSION="yes" -fi -RUBY_MINOR=`$RUBY -e 'puts VERSION.split(".")@<:@1@:>@'` -if test "$RUBY_MINOR" -lt "6"; then - OLD_RUBY_VERSION="yes" -fi -RUBY_MICRO=`$RUBY -e 'puts VERSION.split(".")@<:@2@:>@'` -if test "$RUBY_MICRO" -lt "4"; then - OLD_RUBY_VERSION="yes" -fi -if test "$OLD_RUBY_VERSION"; then - AC_MSG_RESULT(no) - AC_MSG_ERROR([You have Ruby version "$RUBY_VERSION", but version 1.6.4 is required. Please upgrade.]) -fi -AC_MSG_RESULT(yes - $RUBY_VERSION) - -AC_MSG_CHECKING(for Ruby Config module) -"$RUBY" -e 'require "rbconfig"' 2>/dev/null -if test ! "$?" = "0"; then - AC_MSG_RESULT(no) - AC_MSG_WARN(Could not find Config Ruby module. Assuming CFLAGS and LIBS for Ruby are in standard path...) - RUBY_CFLAGS="" - RUBY_LIBS="-lruby" -else - AC_MSG_RESULT(yes) - AC_MSG_CHECKING(ruby CFLAGS) - RB_ARCH_DIR=`$RUBY -e 'require "rbconfig"; puts Config::CONFIG@<:@"archdir"@:>@'` - RB_INCLUDE_DIR=`$RUBY -e 'require "rbconfig"; puts Config::CONFIG@<:@"includedir"@:>@'` - RUBY_CFLAGS="-I$RB_ARCH_DIR -I$RB_INCLUDE_DIR" - AC_MSG_RESULT($RUBY_CFLAGS) - AC_MSG_CHECKING(ruby LIBS) - RB_LIB_DIR=`$RUBY -e 'require "rbconfig"; puts Config::CONFIG@<:@"libdir"@:>@'` - RUBY_LIBS="-lruby -L$RB_LIB_DIR" - AC_MSG_RESULT($RUBY_LIBS) -fi -AC_SUBST(RB_ARCH_DIR) -AC_SUBST(RB_INCLUDE_DIR) -AC_SUBST(RB_LIB_DIR) -AC_SUBST(RUBY_CFLAGS) -AC_SUBST(RUBY_LIBS) - -AC_ARG_WITH(max-ops, - [ --with-max-ops= The maximum number of MPI operations allowed], - MAX_OPS="$withval", - MAX_OPS="25") -AC_SUBST(MAX_OPS) - - -# Checks for header files. -AC_HEADER_STDC - -# Checks for library functions. -AC_FUNC_MALLOC -AC_TYPE_SIGNAL - -AC_OUTPUT([Makefile - src/Makefile - docs/Makefile - docs/html/Makefile - docs/man/Makefile - docs/man/man1/Makefile - docs/man/man3/Makefile - docs/rd/Makefile - examples/Makefile]) diff --git a/depcomp b/depcomp deleted file mode 100755 index 02458b8..0000000 --- a/depcomp +++ /dev/null @@ -1,397 +0,0 @@ -#! /bin/sh - -# depcomp - compile a program generating dependencies as side-effects -# Copyright 1999, 2000 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., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# Originally written by Alexandre Oliva . - -if test -z "$depmode" || test -z "$source" || test -z "$object"; then - echo "depcomp: Variables source, object and depmode must be set" 1>&2 - exit 1 -fi -# `libtool' can also be set to `yes' or `no'. - -depfile=${depfile-`echo "$object" | sed 's,\([^/]*\)$,.deps/\1,;s/\.\([^.]*\)$/.P\1/'`} -tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} - -rm -f "$tmpdepfile" - -# Some modes work just like other modes, but use different flags. We -# parameterize here, but still list the modes in the big case below, -# to make depend.m4 easier to write. Note that we *cannot* use a case -# here, because this file can only contain one case statement. -if test "$depmode" = hp; then - # HP compiler uses -M and no extra arg. - gccflag=-M - depmode=gcc -fi - -if test "$depmode" = dashXmstdout; then - # This is just like dashmstdout with a different argument. - dashmflag=-xM - depmode=dashmstdout -fi - -case "$depmode" in -gcc3) -## gcc 3 implements dependency tracking that does exactly what -## we want. Yay! - "$@" -MT "$object" -MF "$tmpdepfile" -MD -MP - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - mv "$tmpdepfile" "$depfile" - ;; - -gcc) -## There are various ways to get dependency output from gcc. Here's -## why we pick this rather obscure method: -## - Don't want to use -MD because we'd like the dependencies to end -## up in a subdir. Having to rename by hand is ugly. -## (We might end up doing this anyway to support other compilers.) -## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -## -MM, not -M (despite what the docs say). -## - Using -M directly means running the compiler twice (even worse -## than renaming). - if test -z "$gccflag"; then - gccflag=-MD, - fi - "$@" -Wp,"$gccflag$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz -## The second -e expression handles DOS-style file names with drive letters. - sed -e 's/^[^:]*: / /' \ - -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -## This next piece of magic avoids the `deleted header file' problem. -## The problem is that when a header file which appears in a .P file -## is deleted, the dependency causes make to die (because there is -## typically no way to rebuild the header). We avoid this by adding -## dummy dependencies for each header file. Too bad gcc doesn't do -## this for us directly. - tr ' ' ' -' < "$tmpdepfile" | -## Some versions of gcc put a space before the `:'. On the theory -## that the space means something, we add a space to the output as -## well. -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -sgi) - if test "$libtool" = yes; then - "$@" "-Wp,-MDupdate,$tmpdepfile" - else - "$@" -MDupdate "$tmpdepfile" - fi - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - - if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files - echo "$object : \\" > "$depfile" - - # Clip off the initial element (the dependent). Don't try to be - # clever and replace this with sed code, as IRIX sed won't handle - # lines with more than a fixed number of characters (4096 in - # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; - # the IRIX cc adds comments like `#:fec' to the end of the - # dependency line. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ - tr ' -' ' ' >> $depfile - echo >> $depfile - - # The second pass generates a dummy entry for each header file. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> $depfile - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -aix) - # The C for AIX Compiler uses -M and outputs the dependencies - # in a .u file. This file always lives in the current directory. - # Also, the AIX compiler puts `$object:' at the start of each line; - # $object doesn't have directory information. - stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'` - tmpdepfile="$stripped.u" - outname="$stripped.o" - if test "$libtool" = yes; then - "$@" -Wc,-M - else - "$@" -M - fi - - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - - if test -f "$tmpdepfile"; then - # Each line is of the form `foo.o: dependent.h'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" - sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -tru64) - # The Tru64 AIX compiler uses -MD to generate dependencies as a side - # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. - # Subdirectories are respected. - - tmpdepfile="$object.d" - if test "$libtool" = yes; then - "$@" -Wc,-MD - else - "$@" -MD - fi - - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a space and a tab in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -#nosideeffect) - # This comment above is used by automake to tell side-effect - # dependency tracking mechanisms from slower ones. - -dashmstdout) - # Important note: in order to support this mode, a compiler *must* - # always write the proprocessed file to stdout, regardless of -o, - # because we must use -o when running libtool. - test -z "$dashmflag" && dashmflag=-M - ( IFS=" " - case " $* " in - *" --mode=compile "*) # this is libtool, let us make it quiet - for arg - do # cycle over the arguments - case "$arg" in - "--mode=compile") - # insert --quiet before "--mode=compile" - set fnord "$@" --quiet - shift # fnord - ;; - esac - set fnord "$@" "$arg" - shift # fnord - shift # "$arg" - done - ;; - esac - "$@" $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" - ) & - proc=$! - "$@" - stat=$? - wait "$proc" - if test "$stat" != 0; then exit $stat; fi - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - tr ' ' ' -' < "$tmpdepfile" | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -dashXmstdout) - # This case only exists to satisfy depend.m4. It is never actually - # run, as this mode is specially recognized in the preamble. - exit 1 - ;; - -makedepend) - # X makedepend - ( - shift - cleared=no - for arg in "$@"; do - case $cleared in no) - set ""; shift - cleared=yes - esac - case "$arg" in - -D*|-I*) - set fnord "$@" "$arg"; shift;; - -*) - ;; - *) - set fnord "$@" "$arg"; shift;; - esac - done - obj_suffix="`echo $object | sed 's/^.*\././'`" - touch "$tmpdepfile" - ${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@" - ) & - proc=$! - "$@" - stat=$? - wait "$proc" - if test "$stat" != 0; then exit $stat; fi - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - tail +3 "$tmpdepfile" | tr ' ' ' -' | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" "$tmpdepfile".bak - ;; - -cpp) - # Important note: in order to support this mode, a compiler *must* - # always write the proprocessed file to stdout, regardless of -o, - # because we must use -o when running libtool. - ( IFS=" " - case " $* " in - *" --mode=compile "*) - for arg - do # cycle over the arguments - case $arg in - "--mode=compile") - # insert --quiet before "--mode=compile" - set fnord "$@" --quiet - shift # fnord - ;; - esac - set fnord "$@" "$arg" - shift # fnord - shift # "$arg" - done - ;; - esac - "$@" -E | - sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | - sed '$ s: \\$::' > "$tmpdepfile" - ) & - proc=$! - "$@" - stat=$? - wait "$proc" - if test "$stat" != 0; then exit $stat; fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - cat < "$tmpdepfile" >> "$depfile" - sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvisualcpp) - # Important note: in order to support this mode, a compiler *must* - # always write the proprocessed file to stdout, regardless of -o, - # because we must use -o when running libtool. - ( IFS=" " - case " $* " in - *" --mode=compile "*) - for arg - do # cycle over the arguments - case $arg in - "--mode=compile") - # insert --quiet before "--mode=compile" - set fnord "$@" --quiet - shift # fnord - ;; - esac - set fnord "$@" "$arg" - shift # fnord - shift # "$arg" - done - ;; - esac - "$@" -E | - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" - ) & - proc=$! - "$@" - stat=$? - wait "$proc" - if test "$stat" != 0; then exit $stat; fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" - echo " " >> "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -none) - exec "$@" - ;; - -*) - echo "Unknown depmode $depmode" 1>&2 - exit 1 - ;; -esac - -exit 0 diff --git a/docs/MPI b/docs/MPI deleted file mode 100644 index fd26c2c..0000000 --- a/docs/MPI +++ /dev/null @@ -1,139 +0,0 @@ -Function Status --------- ------ ---------Point to Point----------------- -MPI_Send Implemented -MPI_Recv Implemented -MPI_Get_count Never -MPI_Bsend Implemented -MPI_Ssend Implemented -MPI_Rsend Implemented -MPI_Buffer_attach Implemented (buffer_for) -MPI_Buffer_detach Implemented (unbuffer) -MPI_Isend Implemented -MPI_Ibsend Implemented -MPI_Issend Implemented -MPI_Irsend Implemented -MPI_Irecv Implemented -MPI_Wait Implemented -MPI_Test Implemented -MPI_Request_free Never -MPI_Waitany Implemented -MPI_Testany Implemented -MPI_Waitall Implemented -MPI_Testall Implemented -MPI_Waitsome Implemented -MPI_Testsome Implemented -MPI_Iprobe Implemented -MPI_Probe Implemented -MPI_Cancel Implemented -MPI_Test_cancelled Implemented -MPI_Send_init Implemented -MPI_Bsend_init Implemented -MPI_Ssend_init Implemented -MPI_Rsend_init Implemented -MPI_Recv_init Implemented -MPI_Start Implemented -MPI_Startall Implemented -MPI_Sendrecv Implemented -MPI_Sendrecv_replace Never -MPI_Type_contiguous Never -MPI_Type_vector Never -MPI_Type_hvector Never -MPI_Type_indexed Never -MPI_Type_hindexed Never -MPI_Type_struct Never -MPI_Address Never -MPI_Type_extent Never -MPI_Type_size Never -MPI_Type_lb Never -MPI_Type_ub Never -MPI_Type_commit Never -MPI_Type_free Never -MPI_Get_elements Never -MPI_Pack Never -MPI_Unpack Never -MPI_Pack_size Never - -----------Collective------------------- -MPI_Barrier Implemented -MPI_Bcast Implemented -MPI_Gather Implemented -MPI_Gatherv Implemented -MPI_Scatter Implemented -MPI_Scatterv Implemented -MPI_Allgather Implemented -MPI_Allgatherv Implemented -MPI_Alltoall Implemented -MPI_Alltoallv Implemented -MPI_Reduce Implemented -MPI_Op_create Implemented -MPI_Op_free Never -MPI_Allreduce Implemented -MPI_Reduce_scatter Implemented -MPI_Scan Implemented - ----Groups, Contexts, and Communicators---- -MPI_Group_size Implemented -MPI_Group_rank Implemented -MPI_Group_translate_ranks Implemented -MPI_Group_compare Implemented -MPI_Comm_group Implemented -MPI_Group_union Implemented -MPI_Group_intersection Implemented -MPI_Group_difference Implemented -MPI_Group_incl Implemented -MPI_Group_excl Implemented -MPI_Group_range_incl Implemented -MPI_Group_range_excl Implemented -MPI_Group_free Never (GC) -MPI_Comm_size Implemented -MPI_Comm_rank Implemented -MPI_Comm_compare Implemented -MPI_Comm_dup Implemented -MPI_Comm_create Implemented -MPI_Comm_split implemented -MPI_Comm_free Never (GC) -MPI_Comm_test_inter Implemented -MPI_Comm_remote_size Implemented -MPI_Comm_remote_group Implemented -MPI_Intercomm_create Implemented -MPI_Intercomm_merge Implemented -MPI_Keyval_create Implemented -MPI_Keyval_free Implemented -MPI_Attr_put Implemented -MPI_Attr_get Implemented -MPI_Attr_delete Implemented ---------------Topologies------------------- -MPI_Cart_create Implemented -MPI_Dims_create Implemented -MPI_Graph_create Implemented -MPI_Topo_test Implemented -MPI_Graphdims_get Implemented -MPI_Graph_get Implemented -MPI_Cartdim_get Implemented -MPI_Cart_get Implemented -MPI_Cart_rank Implemented -MPI_Cart_coords Implemented -MPI_Graph_neighbors_count Implemented -MPI_Graph_neighbors Implemented -MPI_Cart_shift Implemented -MPI_Cart_sub Implemented -MPI_Cart_map Implemented -MPI_Graph_map Implemented --------------Environmental------------------ -MPI_Get_processor_name Implemented -MPI_Errhandler_create ??? -MPI_Errhandler_set ??? -MPI_Errhandler_get ??? -MPI_Errhandler_free ??? -MPI_Error_string ??? -MPI_Error_class ??? -MPI_Wtime Implemented -MPI_Wtick Implemented -MPI_Init Never -MPI_Finalize Never -MPI_Initialized Implemented -MPI_Abort Implemented ------------Profiling------------------------ -MPI_Pcontrol ??? - diff --git a/docs/Makefile.am b/docs/Makefile.am deleted file mode 100644 index d1b4502..0000000 --- a/docs/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -AUTOMAKE_OPTIONS = foreign dist-shar dist-tarZ dist-zip dist-bzip2 -EXTRA_DIST = MPI -SUBDIRS = html man rd diff --git a/docs/Makefile.in b/docs/Makefile.in deleted file mode 100644 index e6d93d8..0000000 --- a/docs/Makefile.in +++ /dev/null @@ -1,322 +0,0 @@ -# Makefile.in generated automatically by automake 1.4g from Makefile.am. - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_HEADER = $(INSTALL_DATA) -transform = @program_transform_name@ -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_alias = @build_alias@ -build_triplet = @build@ -host_alias = @host_alias@ -host_triplet = @host@ -target_alias = @target_alias@ -target_triplet = @target@ -AMTAR = @AMTAR@ -AWK = @AWK@ -CC = @CC@ -DEPDIR = @DEPDIR@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -MAX_OPS = @MAX_OPS@ -MPICC_PATH = @MPICC_PATH@ -PACKAGE = @PACKAGE@ -RB_ARCH_DIR = @RB_ARCH_DIR@ -RB_INCLUDE_DIR = @RB_INCLUDE_DIR@ -RB_LIB_DIR = @RB_LIB_DIR@ -RUBY = @RUBY@ -RUBY_CFLAGS = @RUBY_CFLAGS@ -RUBY_LIBS = @RUBY_LIBS@ -VERSION = @VERSION@ -_am_include = @_am_include@ -_am_quote = @_am_quote@ -install_sh = @install_sh@ - -AUTOMAKE_OPTIONS = foreign dist-shar dist-tarZ dist-zip dist-bzip2 -EXTRA_DIST = MPI -SUBDIRS = html man rd -EXEEXT = -OBJEXT = o -subdir = docs -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -DIST_SOURCES = - -RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \ - uninstall-info-recursive all-recursive install-data-recursive \ - install-exec-recursive installdirs-recursive install-recursive \ - uninstall-recursive check-recursive installcheck-recursive -DIST_COMMON = Makefile.am Makefile.in -DIST_SUBDIRS = $(SUBDIRS) -all: all-recursive - -.SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign docs/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && \ - CONFIG_HEADERS= CONFIG_LINKS= \ - CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status -uninstall-info-am: - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique $(LISP) - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ - || etags $(ETAGS_ARGS) $$tags $$unique $(LISP) - -GTAGS: - here=`CDPATH=: && cd $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $$here - -distclean-tags: - -rm -f TAGS ID - -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = .. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - if test -f $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - $(mkinstalldirs) "$(distdir)/$$dir"; \ - fi; \ - if test -d $$d/$$file; then \ - cp -pR $$d/$$file $(distdir) \ - || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - for subdir in $(SUBDIRS); do \ - if test "$$subdir" = .; then :; else \ - test -d $(distdir)/$$subdir \ - || mkdir $(distdir)/$$subdir \ - || exit 1; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" \ - distdir=../$(distdir)/$$subdir \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile -installdirs: installdirs-recursive -installdirs-am: - -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-recursive - -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-recursive - -dvi-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic - -uninstall-am: uninstall-info-am - -uninstall-info: uninstall-info-recursive - -.PHONY: $(RECURSIVE_TARGETS) all all-am check check-am clean \ - clean-generic clean-recursive distclean distclean-generic \ - distclean-recursive distclean-tags distdir dvi dvi-am \ - dvi-recursive info info-am info-recursive install install-am \ - install-data install-data-am install-data-recursive \ - install-exec install-exec-am install-exec-recursive \ - install-info install-info-am install-info-recursive install-man \ - install-recursive install-strip installcheck installcheck-am \ - installdirs installdirs-am installdirs-recursive \ - maintainer-clean maintainer-clean-generic \ - maintainer-clean-recursive mostlyclean mostlyclean-generic \ - mostlyclean-recursive tags tags-recursive uninstall \ - uninstall-am uninstall-info-am uninstall-info-recursive \ - uninstall-recursive - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/docs/html/Makefile.am b/docs/html/Makefile.am deleted file mode 100644 index 2560e01..0000000 --- a/docs/html/Makefile.am +++ /dev/null @@ -1,2 +0,0 @@ -AUTOMAKE_OPTIONS = foreign dist-shar dist-tarZ dist-zip dist-bzip2 -EXTRA_DIST = index.html mpi.html mpi_comm.html mpi_exception.html mpi_group.html mpi_keyval.html mpi_op.html mpi_request.html mpi_status.html diff --git a/docs/html/Makefile.in b/docs/html/Makefile.in deleted file mode 100644 index ab37917..0000000 --- a/docs/html/Makefile.in +++ /dev/null @@ -1,204 +0,0 @@ -# Makefile.in generated automatically by automake 1.4g from Makefile.am. - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = ../.. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_HEADER = $(INSTALL_DATA) -transform = @program_transform_name@ -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_alias = @build_alias@ -build_triplet = @build@ -host_alias = @host_alias@ -host_triplet = @host@ -target_alias = @target_alias@ -target_triplet = @target@ -AMTAR = @AMTAR@ -AWK = @AWK@ -CC = @CC@ -DEPDIR = @DEPDIR@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -MAX_OPS = @MAX_OPS@ -MPICC_PATH = @MPICC_PATH@ -PACKAGE = @PACKAGE@ -RB_ARCH_DIR = @RB_ARCH_DIR@ -RB_INCLUDE_DIR = @RB_INCLUDE_DIR@ -RB_LIB_DIR = @RB_LIB_DIR@ -RUBY = @RUBY@ -RUBY_CFLAGS = @RUBY_CFLAGS@ -RUBY_LIBS = @RUBY_LIBS@ -VERSION = @VERSION@ -_am_include = @_am_include@ -_am_quote = @_am_quote@ -install_sh = @install_sh@ - -AUTOMAKE_OPTIONS = foreign dist-shar dist-tarZ dist-zip dist-bzip2 -EXTRA_DIST = index.html mpi.html mpi_comm.html mpi_exception.html mpi_group.html mpi_keyval.html mpi_op.html mpi_request.html mpi_status.html -EXEEXT = -OBJEXT = o -subdir = docs/html -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -DIST_SOURCES = -DIST_COMMON = Makefile.am Makefile.in -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign docs/html/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && \ - CONFIG_HEADERS= CONFIG_LINKS= \ - CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status -uninstall-info-am: -tags: TAGS -TAGS: - - -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = ../.. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - if test -f $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - $(mkinstalldirs) "$(distdir)/$$dir"; \ - fi; \ - if test -d $$d/$$file; then \ - cp -pR $$d/$$file $(distdir) \ - || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile - -installdirs: - -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-am - -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic - -uninstall-am: uninstall-info-am - -.PHONY: all all-am check check-am clean clean-generic distclean \ - distclean-generic distdir dvi dvi-am info info-am install \ - install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am install-man \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic uninstall uninstall-am uninstall-info-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/docs/html/index.html b/docs/html/index.html deleted file mode 100644 index 185e4f7..0000000 --- a/docs/html/index.html +++ /dev/null @@ -1,27 +0,0 @@ - - - -MPI Ruby - Documentation - - -

MPI Ruby Documentation

-

The mpi_ruby Interpreter

- -

MPI Ruby Module

- - - diff --git a/docs/html/mpi.html b/docs/html/mpi.html deleted file mode 100644 index 486ad34..0000000 --- a/docs/html/mpi.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - -mpi.rd - - -

MPI

-

Description

-

The module containing all MPI classes and constants

-

Methods

-

Informational Methods

-
-
MPI.wtime()
-
-

Returns a double precision floating-point number that is the time in seconds -since some arbitrary point of time in the past. The point is guaranteed -not to change during the lifetime of the process.

-

C equivalent: MPI_Wtime()

-
MPI.wtick()
-
-

Returns a double precision floating-point number that is the time in seconds -between successive ticks of the clock.

-

C equivalent: MPI_Wtick()

-
MPI.initialized?()
-
-

Returns true if MPI has been initialized. (Note that because of the -runtime system of MPI Ruby, this will always return true.)

-

C equivalent: MPI_Initialized()

-
MPI.processor_name()
-
-

Returns the processor name of the current processor.

-

C equivalent: MPI_Get_processor_name()

-
MPI.dims_create(nnodes, dims)
-
-

Returns an array containing cartesian dimensions suitable for use with -MPI::Comm#cart_create(). nnodes is an integer specifying the total -number of processes. The array dims should have length equal to -the desired number of dimensions and should contain integers. If an entry -i in dims is positive, the i-th entry in the returned -array will be precisely dims[i]. If dims[i] is 0, the -corresponding entry in the returned array will be determined by the -method. A negative entry in dims is incorrect.

-

C equivalent: MPI_Dims_create()

-
-

Constants

-

MPI::UNDEFINED

-
An opaque value that is used by various methods to specify that a value is
-undefined.
- - - diff --git a/docs/html/mpi_comm.html b/docs/html/mpi_comm.html deleted file mode 100644 index 1f7ad1b..0000000 --- a/docs/html/mpi_comm.html +++ /dev/null @@ -1,443 +0,0 @@ - - - - -mpi_comm.rd - - -

MPI::Comm

-

Description

-

A wrapper class around MPI communicators

-

Methods

-

Constructors

-
-
MPI::Comm#dup()
-
-

Duplicates the communicator and returns a new communicator.

-

C equivalent: MPI_Comm_dup()

-
MPI::Comm.create(grp)
-
-

Creates a new communicator from the grp (of type MPI::Group).

-

C equivalent: MPI_Comm_create()

-
MPI::Comm#split(color, key)
-
-

Splits the receiver into new communicators indicated by color. -key is used to determine ordering in the new communicators.

-

C equivalent: MPI_Comm_split()

-
MPI::Comm#intercomm_create(local_leader, peer, remote_leader, tag)
-
-

Creates a new intercommunicator using the receiver and peer.

-

C equivalent: MPI_Intercomm_create()

-
MPI::Comm#intercomm_merge(high)
-
-

Creates a new intracommunicator from the two communicators of the receiver. -high is used to determine the ranking in the new communicator.

-

C equivalent: MPI_Intercomm_merge()

-
-

Topology Constructors

-
-
MPI::Comm#cart_create(dims, periods, reorder)
-
-

Creates a new communicator to which cartesian topology information is -attached. dims is an array specifying the number of processes in -each dimension. periods is an array of logical values specifying -whether the grid is periodic or not in each dimension. reorder is -a logical value indicating whether the processes may be reordered in the -new topology.

-

C equivalent: MPI_Cart_create()

-
MPI::Comm#graph_create(index, edges, reorder)
-
-

Creates a new communicator to which graph topology information is -attached. index is an array in which the i-th entry is the -the total number of neighbors of the first i nodes. edges -is a flattened array of the edge lists for nodes 0, 1, ...index.length -reorder is a logical value indicating whether the processes may -be reordered in the new topology.

-

C equivalent: MPI_Graph_create()

-
-

Attributes

-
-
MPI::Comm#attr_put(keyval, obj)
-
-

Sets the attribute associated with MPI::Keyval keyval and the -receiver communicator to obj. Returns true.

-

C equivalent: MPI_Attr_put()

-
MPI::Comm#attr_get(keyval)
-
-

Returns the object attribute associated with MPI::Keyval keyval and -the receiver communicator if one exists and nil otherwise.

-

C equivalent: MPI_Attr_get()

-
MPI::Comm#attr_delete(keyval)
-
-

Deletes the object attribute associated with MPI::Keyval keyval and -the receiver communicator if one exists. Returns true.

-

C equivalent: MPI_Attr_delete()

-
-

Informational Methods

-
-
MPI::Comm#size()
-
-

Returns the size of the communicator.

-

C equivalent: MPI_Comm_size()

-
MPI::Comm#rank()
-
-

Returns the rank of the current process within the communicator.

-

C equivalent: MPI_Comm_rank()

-
MPI::Comm#group()
-
-

Returns a handle to the group of the receiver communicator.

-

C equivalent: MPI_Comm_group()

-
MPI::Comm#inter?()
-
-

Returns true if the receiver is an intercommunicator.

-

C equivalent: MPI_Comm_test_inter()

-
MPI::Comm#remote_size()
-
-

Returns the size of the remote communicator of the intercommunicator.

-

C equivalent: MPI_Comm_remote_size()

-
MPI::Comm#remote_group()
-
-

Returns the remote group communicator of the intercommunicator.

-

C equivalent: MPI_Comm_remote_group()

-
-

Topology Specific Information Methods

-
-
MPI::Comm#topo_test()
-
-

Returns MPI::Comm.GRAPH if the topology associated with the receiver -communicator is a graph, MPI::Comm.CART if the topology is cartesian, and -MPI::UNDEFINED if there is no associated topology.

-

C equivalent: MPI_Topo_test()

-
MPI::Comm#graphdims()
-
-

Returns an array of two elements: the first being an integer describing the -number of nodes and the second being an integer describing the number of -edges in the graph topology.

-

C equivalent: MPI_Graphdims_get()

-
MPI::Comm#graphdims_get()
-
-

An alias for MPI::Comm#graphdims().

-

C equivalent: MPI_Graphdims_get()

-
MPI::Comm#graph()
-
-

Returns an array of two elements containing the arrays index and -edges as given to the MPI::Comm#graph_create() method, respectively.

-

C equivalent: MPI_Graph_get()

-
MPI::Comm#graph_get()
-
-

An alias for MPI::Comm#graph()

-

C equivalent: MPI_Graph_get()

-
MPI::Comm#cartdim()
-
-

Returns the number of dimensions in the cartesian topology attached to the -receiver.

-

C equivalent: MPI_Cartdim_get()

-
MPI::Comm#cartdim_get()
-
-

An alias for MPI::Comm#cartdim().

-

C equivalent: MPI_Cartdim_get()

-
MPI::Comm#cart()
-
-

Returns an array of 3 elements containing a dims array, periods -array, and coords array as given to cart_create().

-

C equivalent: MPI_Cart_get()

-
MPI::Comm#cart_get()
-
-

An alias for MPI::Comm#cart()

-

C equivalent: MPI_Cart_get()

-
MPI::Comm#cart_rank(coords)
-
-

Returns the rank of the process at the coordinates given in the array -coords.

-

C equivalent: MPI_Cart_rank()

-
MPI::Comm#cart_coords(rank)
-
-

Returns an array of the coordinates of the process specified by rank.

-

C equivalent: MPI_Cart_coords()

-
MPI::Comm#graph_neigbhors_count(rank)
-
-

Returns an integer specifying the number of neighbors of the process -specified by rank.

-

C equivalent: MPI_Graph_neighbors_count()

-
MPI::Comm#graph_neigbhors(rank)
-
-

Returns an array of the ranks of the neighbors of the process specified -by rank.

-

C equivalent: MPI_Graph_neighbors()

-
MPI::Comm#cart_shift(dir, disp)
-
-

Returns an array of two elements containing the rank of the source process -and the rank of the destination process, respectively, as might be used -in MPI::Comm#sendrecv(). dir indicates the direction of the shift -and disp indicates the displacement.

-

C equivalent: MPI_Cart_shift()

-
MPI::Comm#cart_map(dims, periods)
-
-

Returns an integer specifying the optimal placement for the calling -process on the physical machine. dims and periods are as for -MPI::Comm#cart_create().

-

C equivalent: MPI_Cart_map()

-
MPI::Comm#graph_map(index, edges)
-
-

Returns an integer specifying the optimal placement for the calling -process on the physical machine. index and edges are as for -MPI::Comm#graph_create()

-

C equivalent: MPI_Graph_map()

-
-

Point-to-Point Communications

-
-
MPI::Comm#send(obj, dest, tag)
-
-

Sends object obj to process dest within the communicator with -tag tag. Returns true on success.

-

C equivalent: MPI_Send()

-
MPI::Comm#recv(src, tag)
-
-

Receives an object from process src within the communicator with tag -tag. Returns an array of two elements containing the object -received and an MPI::Status object, respectively.

-

C equivalent: MPI_Recv()

-
MPI::Comm#bsend(obj, dest, tag)
-
-

Sends object obj to process dest within the communicator with -tag tag. Buffering is used (see MPI::Comm#buffer_for()). -Returns true on success.

-

C equivalent: MPI_Bsend()

-
MPI::Comm#ssend(obj, dest, tag)
-
-

Sends object obj to process dest within the communicator with -tag tag synchronously. Returns true on success.

-

C equivalent: MPI_Ssend()

-
MPI::Comm#rsend(obj, dest, tag)
-
-

Sends object obj to process dest within the communicator with -tag tag with the assumption that the receiver has already begun a -receiving call. -Returns true on success.

-

C equivalent: MPI_Rsend()

-
MPI::Comm#sendrecv(obj, dest, dtag, src, stag)
-
-

Sends object obj to process dest within the communicator with -tag dtag and simultaneously starts a receive from process src -with tag stag. Returns an array of two elements containing the -object received and an MPI::Status object, respectively.

-

C equivalent: MPI_Sendrecv()

-
-

Non-blocking Point-to-Point Communications

-
-
MPI::Comm#isend(obj, dest, tag)
-
-

Performs a non-blocking send of object obj to process dest -within the communicator with tag tag. Returns a new MPI::Request -object.

-

C equivalent: MPI_Isend()

-
MPI::Comm#irecv(src, tag)
-
-

Performs a non-blocking receive of an object from process src within -the communicator with tag tag. Returns a new MPI::Request object.

-

C equivalent: MPI_Irecv()

-
MPI::Comm#ibsend(obj, dest, tag)
-
-

Performs a non-blocking send of object obj to process dest -within the communicator with tag tag. Buffering is used -(see MPI::Comm#buffer_for()). Returns a new MPI::Request -object.

-

C equivalent: MPI_Ibsend()

-
MPI::Comm#issend(obj, dest, tag)
-
-

Performs a non-blocking, synchronous send of object obj to process -dest within the communicator with tag tag tag tag -syncronously. Returns a new MPI::Request object.

-

C equivalent: MPI_Issend()

-
MPI::Comm#irsend(obj, dest, tag)
-
-

Performs a non-blocking send of object obj to process dest -within the communicator with tag tag with the assumption that the -receiver has already begun a receiving call. Returns a new MPI::Request -object.

-

C equivalent: MPI_Irsend()

-
-

Persistent Communications

-
-
MPI::Comm#send_init(obj, dest, tag)
-
-

Sets up a persistent send of object obj to process dest -within the communicator with tag tag. Returns a new MPI::Request -object.

-

C equivalent: MPI_Send_init()

-
MPI::Comm#recv_init(src, tag)
-
-

Sets up a persistent receive of an object from process src within -the communicator with tag tag. Returns a new MPI::Request object.

-

C equivalent: MPI_Recv_init()

-
MPI::Comm#bsend_init(obj, dest, tag)
-
-

Sets up a persistent send of object obj to process dest -within the communicator with tag tag. Buffering is used -(see MPI::Comm#buffer_for()). Returns a new MPI::Request -object.

-

C equivalent: MPI_Bsend_init()

-
MPI::Comm#ssend_init(obj, dest, tag)
-
-

Sets up a persistent, synchronous send of object obj to process -dest within the communicator with tag tag tag tag -syncronously. Returns a new MPI::Request object.

-

C equivalent: MPI_Ssend_init()

-
MPI::Comm#rsend_init(obj, dest, tag)
-
-

Sets up a persistent send of object obj to process dest -within the communicator with tag tag with the assumption that the -receiver has already begun a receiving call. Returns a new MPI::Request -object.

-

C equivalent: MPI_Rsend_init()

-
-

Buffering Methods

-
-
MPI::Comm#buffer_for(ary)
-
-

Sets up buffering on the receiver communicator to account for the objects -in the array ary. Returns true.

-

C equivalent: MPI_Buffer_attach()

-
MPI::Comm#unbuffer()
-
-

Removes the buffer associated with the receiver communicator. Returns -true.

-

C equivalent: MPI_Buffer_detach()

-
-

Collective Operations

-
-
MPI::Comm#barrier()
-
-

Performs a barrier operation on the communicator.

-

C equivalent: MPI_Barrier()

-
MPI::Comm#bcast(obj, root)
-
-

Broadcasts obj from process root to all other processes. -The value of obj is irrelevant for all processes other than -root. Returns a copy of obj all processes other than root -and obj itself on process root.

-

C equivalent: MPI_Bcast

-
MPI::Comm#gather(obj, root)
-
-

Gathers obj from all processes in the communicator into an array -and returns this array at process root. Given a rank r, the -r-th element of the array is a copy of obj on process r. -Returns true on all processes other than root.

-

C equivalent: MPI_Gather(), MPI_Gatherv()

-
MPI::Comm#allgather(obj)
-
-

Gathers obj from all processes in the communicator into an array -and returns this array at all processes. Given a rank r, the -r-th element of the array is a copy of obj on process r.

-

C equivalent: MPI_Allgather(), MPI_Allgatherv()

-
MPI::Comm#scatter(ary, root)
-
-

Scatters the contents of the array ary on the process with rank -root to all processes in the communicator. The array must have -length equal to the number of processes in the communicator. Returns -the i-th object in ary at the i-th process.

-

C equivalent: MPI_Scatter()

-
MPI::Comm#alltoall(ary)
-
-

Scatters the contents of the array ary on every process to all -processes in the communicator. The array must have length equal to -the number of processes in the communicator. Returns an array on each -process where the i-th object in the array on the j-th -process is j-th object in ary at the i-th process.

-

C equivalent: MPI_Alltoall()

-
MPI::Comm#reduce(obj, op, root)
-
-

Reduces the object obj given using the MPI::Op op and returns -the result of the reduction on the process with rank root. On all -other processes, the method returns true. If obj is an array, it -must have the same length on all processes and the operation is applied -to each object in the array. To perform an operation on an array, pass -an array of the array to which the operation will be applied.

-

C equivalent: MPI_Reduce()

-
MPI::Comm#allreduce(obj, op)
-
-

Reduces the object obj given using the MPI::Op op and returns -the result of the reduction to all processes. If obj is an array, -it must have the same length on all processes and the operation is applied -to each object in the array. To perform an operation on an array, pass -an array of the array to which the operation will be applied.

-

C equivalent: MPI_Allreduce()

-
MPI::Comm#scan(obj, op)
-
-

At each process i, returns the value of a reduction on processes -0...i, inclusively. If obj is an array, it must have the same -length on all processes and the operation is applied to each object in the -array. To perform an operation on an array, pass an array of the array -to which the operation will be applied.

-

C equivalent: MPI_Scan()

-
MPI::Comm#reduce_scatter(ary, counts, op)
-
-

Performs an element-wise reduction on ary with MPI::Op op -and scatters the result according to the array counts. Process 0 -receives an array of the first counts[0] elements of the result of -the reduction, process 1 receives an array of the next counts[1] -elements of the result of the reduction, and so on. ary must have -the same length on all processes and this length must equal the sum of -the values in counts.

-

C equivalent: MPI_Reduce_scatter()

-
-

Probing

-
-
MPI::Comm#probe(src, tag)
-
-

Blocks until a message is available from process src with tag -tag. Returns a new MPI::Status object.

-

C equivalent: MPI_Probe()

-
MPI::Comm#iprobe(src, tag)
-
-

Returns an array of two elements. The first element is a flag which -is true if there is a message from the given source src with the -given tag. If the flag is true, then the second element of the -return array is a new MPI::Status object. If the flag is false, the -second element of the return array is to be ignored.

-

C equivalent: MPI_Iprobe()

-
-

Comparison

-
-
MPI::Comm#==(comm)
-
-

Returns true if the receiver and the given communicator comm are -the same communicator. Returns false otherwise.

-

C equivalent: MPI_Comm_compare()

-
MPI::Comm#congruent?(comm)
-
-

Returns true if the receiver and the given communicator comm are -precisely congruent. Returns false otherwise.

-

C equivalent: MPI_Comm_compare()

-
MPI::Comm#similar?(comm)
-
-

Returns true if the receiver and the given communicator comm are -precisely similar. Returns false otherwise.

-

C equivalent: MPI_Comm_compare()

-
-

Abortive Methods

-
-
MPI::Comm#abort(errorcode)
-
-

Aborts the MPI program with the given error code.

-

C equivalent: MPI_Abort()

-
-

Constants

-

MPI::Comm.ANY_TAG

-
A value which may be passed to any method expecting a tag.  It specifies
-that any tag will match in that call.
-

MPI::Comm.ANY_SOURCE

-
A value which may be passed to any method expecting a source rank.  It 
-specifies that any source rank will match in that call.
-

Notes

-

The MPI binding to Ruby is intended solely for Single Program, Multiple Data -(SPMD) parallel computations. Thus, none of these communication methods can -be intermixed with MPI programs written in other languages.

-

Because of the Multiple Data aspect, sending objects should be viewed as -creating a copy of the original object on the recipient process. There are -no remote method invocation concepts explicitly supported in this binding.

- - - diff --git a/docs/html/mpi_exception.html b/docs/html/mpi_exception.html deleted file mode 100644 index b5acb4a..0000000 --- a/docs/html/mpi_exception.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - -mpi_exception.rd - - -

MPI::Exception

-

Description

-

An exception class used for passing back MPI errors

- - - diff --git a/docs/html/mpi_group.html b/docs/html/mpi_group.html deleted file mode 100644 index 0df4673..0000000 --- a/docs/html/mpi_group.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - -mpi_group.rd - - -

MPI::Group

-

Description

-

A wrapper class around MPI groups

-

Methods

-

Constructors

-

Informational Methods

-
-
MPI::Group#size()
-
-

Returns the size of the group.

-

C equivalent: MPI_Group_size()

-
MPI::Group#rank()
-
-

Returns the rank of the current process within the communicator.

-

C equivalent: MPI_Comm_rank()

-
MPI::Group#translate_ranks(ary, grp)
-
-

Translates the group rankings listed in ary for the receiver group -into rankings in grp. The new rankings are returned in an array, -ordered respectively to ary. If any of the rankings in ary -do not correspond to a ranking in grp, the corresponding entry in -the return array is MPI::UNDEFINED.

-

C equivalent: MPI_Group_translate_ranks()

-
MPI::Group#==(grp)
-
-

Returns true if the receiver and grp are precisely equal.

-

C equivalent: MPI_Group_compare()

-
MPI::Group#similar?(grp)
-
-

Returns true if the receiver and grp are precisely similar.

-

C equivalent: MPI_Group_compare()

-
-

Constructors

-
-
MPI::Group#|(grp)
-
-

Returns the union of the receiver group and grp.

-

C equivalent: MPI_Group_union()

-
MPI::Group#union(grp)
-
-

An alias for MPI::Group#|()

-

C equivalent: MPI_Group_union()

-
MPI::Group#-(grp)
-
-

Returns the difference of the receiver group and grp.

-

C equivalent: MPI_Group_difference()

-
MPI::Group#difference(grp)
-
-

An alias for MPI::Group#-()

-

C equivalent: MPI_Group_difference()

-
MPI::Group#&(grp)
-
-

Returns the intersection of the receiver group and grp.

-

C equivalent: MPI_Group_intersection()

-
MPI::Group#intersection(grp)
-
-

An alias for MPI::Group#&()

-

C equivalent: MPI_Group_intersection()

-
MPI::Group#incl(ary)
-
-

Returns a new group with only those ranks listed in ary

-

C equivalent: MPI_Group_incl()

-
MPI::Group#range_incl(ary)
-
-

Returns a new group with only those ranks in an array of ranges, -ary. ary is an array in which each element is an array of -size three, describing a range. The first element of one of these size 3 -arrays is the start of the range, the second element is the end of the -range, and the third element is the stride taken between the range -endpoints. The stride may be negative, but not zero. The ranks must be -distinct.

-

C equivalent: MPI_Group_range_incl()

-
MPI::Group#excl(ary)
-
-

Returns a new group with only those ranks not listed in ary

-

C equivalent: MPI_Group_excl()

-
MPI::Group#range_excl(ary)
-
-

Returns a new group with only those ranks not in an array of ranges, -ary. ary is an array in which each element is an array of -size three, describing a range. The first element of one of these size 3 -arrays is the start of the range, the second element is the end of the -range, and the third element is the stride taken between the range -endpoints. The stride may be negative, but not zero. The ranks must be -distinct.

-

C equivalent: MPI_Group_range_excl()

-
- - - diff --git a/docs/html/mpi_keyval.html b/docs/html/mpi_keyval.html deleted file mode 100644 index 9cb0862..0000000 --- a/docs/html/mpi_keyval.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - -mpi_keyval.rd - - -

MPI::Keyval

-

Description

-

A wrapper class around MPI keyvals

-

Methods

-

Constructors

-
-
MPI::Keyval.create(uniq)
-
-

Returns a new MPI::Keyval. If uniq is true, then the attribute -associated with a keyval will be deleted from the original communicator -to which it was attached when that communicator is duplicated. -If uniq is false, then the attribute will simply be copied to the -new communicator.

-

C equivalent: MPI_Keyval_create()

-
- - - diff --git a/docs/html/mpi_op.html b/docs/html/mpi_op.html deleted file mode 100644 index 87e25fa..0000000 --- a/docs/html/mpi_op.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - -mpi_op.rd - - -

MPI::Op

-

Description

-

A wrapper class around MPI operators

-

Methods

-

Constructors

-
-
MPI::Op.create(proc, commute)
-
-

Returns a new MPI::Op based on the Proc object proc. proc -must accept two arguments. If commute is true, proc is -considered to be commutative.

-

C equivalent: MPI_Op_create()

-
- - - diff --git a/docs/html/mpi_request.html b/docs/html/mpi_request.html deleted file mode 100644 index 1412f80..0000000 --- a/docs/html/mpi_request.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - -mpi_request.rd - - -

MPI::Request

-

Description

-

A wrapper class around MPI requests

-

Methods

-

Informational Methods

-
-
MPI::Request#null?()
-
-

Returns true if the request is null.

-

C equivalent: request == MPI_REQUEST_NULL

-
-

Wait Methods

-
-
MPI::Request#wait()
-
-

Waits until the operation identified by the receiver request is complete. -If the communication object associated with this request was created by a -nonblocking send or receive call, then the request becomes null. -Returns an MPI::Status object.

-

C equivalent: MPI_Wait()

-
MPI::Request.waitany(ary)
-
-

Waits until any of the operations identified by the requests in the -array of requests ary is complete. If the communication object -associated with this request was created by a nonblocking send or -receive call, then the request becomes null. Returns an array of -two elements containing the index of the completed request and an -MPI::Status object, respectively.

-

C equivalent: MPI_Waitany()

-
MPI::Request.waitall(ary)
-
-

Waits until all of the operations identified by the requests in the -array of requests ary are complete. If the communication object -associated with any of these requests was created by a nonblocking send or -receive call, then those requests become null. Returns an array of -MPI::Status objects for each request in ary. The status of a -request is at the same index in the return array as the request index -in ary.

-

C equivalent: MPI_Waitall()

-
MPI::Request.waitsome(ary)
-
-

Waits until at least one of the operations identified by the requests in -the array of requests ary are complete. If the communication object -associated with any of these requests was created by a nonblocking send or -receive call, then those requests become null. Returns an array of two -elements containing an array of the completed requests and an array of -MPI::Status objects for each completed request, respectively. The status -of a request is at the same index in the return status array as the -request index in the return request array.

-

C equivalent: MPI_Waitsome()

-
-

Test Methods

-
-
MPI::Request#test()
-
-

Tests if the operation identified by request is complete. If the -communication object associated with this request was created by a -nonblocking send or receive call, then the request becomes null. -Returns an array of two elements containing a flag (true or false, -as the result of the test), and an MPI::Status object, respectively. -The status object should be ignored if the flag is false.

-

C equivalent: MPI_Test()

-
MPI::Request.testany(ary)
-
-

Tests if any of the operations identified by the requests in the -array of requests ary is complete. If the communication object -associated with this request was created by a nonblocking send or -receive call, then the request becomes null. Returns an array of -three elements containing a flag (true or false, depending on whether -any of the requests were completed), the index of the completed request, -and an MPI::Status object, respectively. The last two array elements -should be ignored if the flag is false.

-

C equivalent: MPI_Testany()

-
MPI::Request.testall(ary)
-
-

Tests if all of the operations identified by the requests in the -array of requests ary are complete. If the communication object -associated with any of these requests was created by a nonblocking send or -receive call, then those requests become null. Returns an array of -two elements containing a flag (true or false, depending on whether -all of the requests were completed) and an array of MPI::Status objects -for each request in ary, respectively. The status of a request is -at the same index in the return array as the request index in ary. -The status array should be ignored if the flag is false.

-

C equivalent: MPI_Testall()

-
MPI::Request.testsome(ary)
-
-

Equivalent to MPI::Request#waitsome(ary) except that -MPI::Request#testsome(ary) does not block.

-

C equivalent: MPI_Testsome()

-
-

Initiation and Cancellation

-
-
MPI::Request#cancel()
-
-

Cancels the request. Returns true.

-

C equivalent: MPI_Cancel()

-
MPI::Request#start()
-
-

Starts a request. Returns true.

-

C equivalent: MPI_Start()

-
MPI::Request.startall(ary)
-
-

Starts all the requests in the array of requests ary. Returns true.

-

C equivalent: MPI_Startall()

-
-

Accessors

-
-
MPI::Request#object
-
-

Returns the object associated with the request.

-

C equivalent: Accessing the buffer given in the creation of the request.

-
- - - diff --git a/docs/html/mpi_status.html b/docs/html/mpi_status.html deleted file mode 100644 index 8094306..0000000 --- a/docs/html/mpi_status.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - -mpi_status.rd - - -

MPI::Status

-

Description

-

A wrapper class around MPI status

-

Methods

-

Informational Methods

-
-
MPI::Status#source()
-
-

Returns the source of the message to which the status object refers.

-

C equivalent: status.MPI_STATUS

-
MPI::Status#tag()
-
-

Returns the tag of the message to which the status object refers.

-

C equivalent: status.MPI_TAG

-
MPI::Status#cancelled?()
-
-

Returns whether or not the message to which the status object refers was -cancelled.

-

C equivalent: MPI_Test_cancelled()

-
- - - diff --git a/docs/man/Makefile.am b/docs/man/Makefile.am deleted file mode 100644 index 820ae41..0000000 --- a/docs/man/Makefile.am +++ /dev/null @@ -1,2 +0,0 @@ -AUTOMAKE_OPTIONS = foreign dist-shar dist-tarZ dist-zip dist-bzip2 -SUBDIRS = man1 man3 diff --git a/docs/man/Makefile.in b/docs/man/Makefile.in deleted file mode 100644 index a1f88e1..0000000 --- a/docs/man/Makefile.in +++ /dev/null @@ -1,321 +0,0 @@ -# Makefile.in generated automatically by automake 1.4g from Makefile.am. - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = ../.. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_HEADER = $(INSTALL_DATA) -transform = @program_transform_name@ -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_alias = @build_alias@ -build_triplet = @build@ -host_alias = @host_alias@ -host_triplet = @host@ -target_alias = @target_alias@ -target_triplet = @target@ -AMTAR = @AMTAR@ -AWK = @AWK@ -CC = @CC@ -DEPDIR = @DEPDIR@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -MAX_OPS = @MAX_OPS@ -MPICC_PATH = @MPICC_PATH@ -PACKAGE = @PACKAGE@ -RB_ARCH_DIR = @RB_ARCH_DIR@ -RB_INCLUDE_DIR = @RB_INCLUDE_DIR@ -RB_LIB_DIR = @RB_LIB_DIR@ -RUBY = @RUBY@ -RUBY_CFLAGS = @RUBY_CFLAGS@ -RUBY_LIBS = @RUBY_LIBS@ -VERSION = @VERSION@ -_am_include = @_am_include@ -_am_quote = @_am_quote@ -install_sh = @install_sh@ - -AUTOMAKE_OPTIONS = foreign dist-shar dist-tarZ dist-zip dist-bzip2 -SUBDIRS = man1 man3 -EXEEXT = -OBJEXT = o -subdir = docs/man -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -DIST_SOURCES = - -RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \ - uninstall-info-recursive all-recursive install-data-recursive \ - install-exec-recursive installdirs-recursive install-recursive \ - uninstall-recursive check-recursive installcheck-recursive -DIST_COMMON = Makefile.am Makefile.in -DIST_SUBDIRS = $(SUBDIRS) -all: all-recursive - -.SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign docs/man/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && \ - CONFIG_HEADERS= CONFIG_LINKS= \ - CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status -uninstall-info-am: - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique $(LISP) - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ - || etags $(ETAGS_ARGS) $$tags $$unique $(LISP) - -GTAGS: - here=`CDPATH=: && cd $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $$here - -distclean-tags: - -rm -f TAGS ID - -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = ../.. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - if test -f $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - $(mkinstalldirs) "$(distdir)/$$dir"; \ - fi; \ - if test -d $$d/$$file; then \ - cp -pR $$d/$$file $(distdir) \ - || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - for subdir in $(SUBDIRS); do \ - if test "$$subdir" = .; then :; else \ - test -d $(distdir)/$$subdir \ - || mkdir $(distdir)/$$subdir \ - || exit 1; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" \ - distdir=../$(distdir)/$$subdir \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile -installdirs: installdirs-recursive -installdirs-am: - -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-recursive - -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-recursive - -dvi-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic - -uninstall-am: uninstall-info-am - -uninstall-info: uninstall-info-recursive - -.PHONY: $(RECURSIVE_TARGETS) all all-am check check-am clean \ - clean-generic clean-recursive distclean distclean-generic \ - distclean-recursive distclean-tags distdir dvi dvi-am \ - dvi-recursive info info-am info-recursive install install-am \ - install-data install-data-am install-data-recursive \ - install-exec install-exec-am install-exec-recursive \ - install-info install-info-am install-info-recursive install-man \ - install-recursive install-strip installcheck installcheck-am \ - installdirs installdirs-am installdirs-recursive \ - maintainer-clean maintainer-clean-generic \ - maintainer-clean-recursive mostlyclean mostlyclean-generic \ - mostlyclean-recursive tags tags-recursive uninstall \ - uninstall-am uninstall-info-am uninstall-info-recursive \ - uninstall-recursive - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/docs/man/man1/Makefile b/docs/man/man1/Makefile deleted file mode 100644 index 0bf9273..0000000 --- a/docs/man/man1/Makefile +++ /dev/null @@ -1,204 +0,0 @@ -# Makefile.in generated automatically by automake 1.4g from Makefile.am. - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - - -SHELL = /bin/sh - -srcdir = . -top_srcdir = ../../.. - -prefix = /usr/local -exec_prefix = ${prefix} - -bindir = ${exec_prefix}/bin -sbindir = ${exec_prefix}/sbin -libexecdir = ${exec_prefix}/libexec -datadir = ${prefix}/share -sysconfdir = ${prefix}/etc -sharedstatedir = ${prefix}/com -localstatedir = ${prefix}/var -libdir = ${exec_prefix}/lib -infodir = ${prefix}/info -mandir = ${prefix}/man -includedir = ${prefix}/include -oldincludedir = /usr/include -pkgdatadir = $(datadir)/mpi_ruby -pkglibdir = $(libdir)/mpi_ruby -pkgincludedir = $(includedir)/mpi_ruby -top_builddir = ../../.. - -ACLOCAL = ${SHELL} /Users/abedra/Desktop/mpi_ruby-0.3/missing --run aclocal -AUTOCONF = ${SHELL} /Users/abedra/Desktop/mpi_ruby-0.3/missing --run autoconf -AUTOMAKE = ${SHELL} /Users/abedra/Desktop/mpi_ruby-0.3/missing --run automake -AUTOHEADER = ${SHELL} /Users/abedra/Desktop/mpi_ruby-0.3/missing --run autoheader - -INSTALL = /opt/local/bin/ginstall -c -INSTALL_PROGRAM = ${INSTALL} -INSTALL_DATA = ${INSTALL} -m 644 -INSTALL_SCRIPT = ${INSTALL} -INSTALL_HEADER = $(INSTALL_DATA) -transform = s,x,x, -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_alias = @build_alias@ -build_triplet = i386-apple-darwin9.1.0 -host_alias = @host_alias@ -host_triplet = i386-apple-darwin9.1.0 -target_alias = @target_alias@ -target_triplet = i386-apple-darwin9.1.0 -AMTAR = ${SHELL} /Users/abedra/Desktop/mpi_ruby-0.3/missing --run tar -AWK = gawk -CC = /usr/bin/mpicc -DEPDIR = .deps -INSTALL_STRIP_PROGRAM = ${SHELL} `CDPATH=: && cd . && pwd`/install-sh -c -s -MAX_OPS = 25 -MPICC_PATH = /usr/bin/mpicc -PACKAGE = mpi_ruby -RB_ARCH_DIR = /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0 -RB_INCLUDE_DIR = /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/include -RB_LIB_DIR = /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib -RUBY = /usr/bin/ruby -RUBY_CFLAGS = -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0 -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/include -RUBY_LIBS = -lruby -L/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib -VERSION = 0.3 -_am_include = include -_am_quote = -install_sh = ./install-sh - -AUTOMAKE_OPTIONS = foreign dist-shar dist-tarZ dist-zip dist-bzip2 -EXTRA_DIST = mpi_ruby.1 -EXEEXT = -OBJEXT = o -subdir = docs/man/man1 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -DIST_SOURCES = -DIST_COMMON = Makefile.am Makefile.in -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign docs/man/man1/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && \ - CONFIG_HEADERS= CONFIG_LINKS= \ - CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status -uninstall-info-am: -tags: TAGS -TAGS: - - -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = ../../.. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - if test -f $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - $(mkinstalldirs) "$(distdir)/$$dir"; \ - fi; \ - if test -d $$d/$$file; then \ - cp -pR $$d/$$file $(distdir) \ - || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile - -installdirs: - -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-am - -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic - -uninstall-am: uninstall-info-am - -.PHONY: all all-am check check-am clean clean-generic distclean \ - distclean-generic distdir dvi dvi-am info info-am install \ - install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am install-man \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic uninstall uninstall-am uninstall-info-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/docs/man/man1/Makefile.am b/docs/man/man1/Makefile.am deleted file mode 100644 index f0a39f1..0000000 --- a/docs/man/man1/Makefile.am +++ /dev/null @@ -1,2 +0,0 @@ -AUTOMAKE_OPTIONS = foreign dist-shar dist-tarZ dist-zip dist-bzip2 -EXTRA_DIST = mpi_ruby.1 diff --git a/docs/man/man1/Makefile.in b/docs/man/man1/Makefile.in deleted file mode 100644 index 3eca656..0000000 --- a/docs/man/man1/Makefile.in +++ /dev/null @@ -1,204 +0,0 @@ -# Makefile.in generated automatically by automake 1.4g from Makefile.am. - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = ../../.. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_HEADER = $(INSTALL_DATA) -transform = @program_transform_name@ -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_alias = @build_alias@ -build_triplet = @build@ -host_alias = @host_alias@ -host_triplet = @host@ -target_alias = @target_alias@ -target_triplet = @target@ -AMTAR = @AMTAR@ -AWK = @AWK@ -CC = @CC@ -DEPDIR = @DEPDIR@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -MAX_OPS = @MAX_OPS@ -MPICC_PATH = @MPICC_PATH@ -PACKAGE = @PACKAGE@ -RB_ARCH_DIR = @RB_ARCH_DIR@ -RB_INCLUDE_DIR = @RB_INCLUDE_DIR@ -RB_LIB_DIR = @RB_LIB_DIR@ -RUBY = @RUBY@ -RUBY_CFLAGS = @RUBY_CFLAGS@ -RUBY_LIBS = @RUBY_LIBS@ -VERSION = @VERSION@ -_am_include = @_am_include@ -_am_quote = @_am_quote@ -install_sh = @install_sh@ - -AUTOMAKE_OPTIONS = foreign dist-shar dist-tarZ dist-zip dist-bzip2 -EXTRA_DIST = mpi_ruby.1 -EXEEXT = -OBJEXT = o -subdir = docs/man/man1 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -DIST_SOURCES = -DIST_COMMON = Makefile.am Makefile.in -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign docs/man/man1/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && \ - CONFIG_HEADERS= CONFIG_LINKS= \ - CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status -uninstall-info-am: -tags: TAGS -TAGS: - - -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = ../../.. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - if test -f $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - $(mkinstalldirs) "$(distdir)/$$dir"; \ - fi; \ - if test -d $$d/$$file; then \ - cp -pR $$d/$$file $(distdir) \ - || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile - -installdirs: - -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-am - -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic - -uninstall-am: uninstall-info-am - -.PHONY: all all-am check check-am clean clean-generic distclean \ - distclean-generic distdir dvi dvi-am info info-am install \ - install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am install-man \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic uninstall uninstall-am uninstall-info-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/docs/man/man1/mpi_ruby.1 b/docs/man/man1/mpi_ruby.1 deleted file mode 100644 index c284631..0000000 --- a/docs/man/man1/mpi_ruby.1 +++ /dev/null @@ -1,18 +0,0 @@ -.\" DO NOT MODIFY THIS FILE! it was generated by rd2 -.TH mpi_ruby.rd 1 "July 2001" -.SH mpi_ruby -.PP -.SH Description -.PP -mpi_ruby is the Ruby interpreter for the MPI Ruby environment -.SH Invocation and Command Line Arguments -.PP -mpi_ruby is run as any other MPI program, usually with mpirun. For example, -to run a script 'mpi_ruby_prog.rb', you might use this line: - mpirun \-np 5 mpi_ruby mpi_ruby_prog.rb -All command line arguments after mpi_ruby in this line are the same as for -ruby(1). -.SH See Also -.PP -ruby(1), mpirun(1) - diff --git a/docs/man/man3/MPI_Comm.3 b/docs/man/man3/MPI_Comm.3 deleted file mode 100644 index 7d5c4b0..0000000 --- a/docs/man/man3/MPI_Comm.3 +++ /dev/null @@ -1,747 +0,0 @@ -.\" DO NOT MODIFY THIS FILE! it was generated by rd2 -.TH mpi_comm.rd 1 "July 2001" -.SH MPI::Comm -.PP -.SH Description -.PP -A wrapper class around MPI communicators -.SH Methods -.PP -.SH Constructors -.PP - -.TP -.fi -.B -MPI::Comm#dup() -Duplicates the communicator and returns a new communicator. - -C equivalent: \&\fBMPI_Comm_dup()\fP - - -.TP -.fi -.B -MPI::Comm.create(grp) -Creates a new communicator from the grp (of type MPI::Group). - -C equivalent: \&\fBMPI_Comm_create()\fP - - -.TP -.fi -.B -MPI::Comm#split(color, key) -Splits the receiver into new communicators indicated by color. -key is used to determine ordering in the new communicators. - -C equivalent: \&\fBMPI_Comm_split()\fP - - -.TP -.fi -.B -MPI::Comm#intercomm_create(local_leader, peer, remote_leader, tag) -Creates a new intercommunicator using the receiver and peer. - -C equivalent: \&\fBMPI_Intercomm_create()\fP - - -.TP -.fi -.B -MPI::Comm#intercomm_merge(high) -Creates a new intracommunicator from the two communicators of the receiver. -high is used to determine the ranking in the new communicator. - -C equivalent: \&\fBMPI_Intercomm_merge()\fP -.SH Topology Constructors -.PP - -.TP -.fi -.B -MPI::Comm#cart_create(dims, periods, reorder) -Creates a new communicator to which cartesian topology information is -attached. dims is an array specifying the number of processes in -each dimension. periods is an array of logical values specifying -whether the grid is periodic or not in each dimension. reorder is -a logical value indicating whether the processes may be reordered in the -new topology. - -C equivalent: \&\fBMPI_Cart_create()\fP - - -.TP -.fi -.B -MPI::Comm#graph_create(index, edges, reorder) -Creates a new communicator to which graph topology information is -attached. index is an array in which the i\-th entry is the -the total number of neighbors of the first i nodes. edges -is a flattened array of the edge lists for nodes 0, 1, ...\&\fBindex\.length\fP -reorder is a logical value indicating whether the processes may -be reordered in the new topology. - -C equivalent: \&\fBMPI_Graph_create()\fP -.SH Attributes -.PP - -.TP -.fi -.B -MPI::Comm#attr_put(keyval, obj) -Sets the attribute associated with MPI::Keyval keyval and the -receiver communicator to obj. Returns true. - -C equivalent: \&\fBMPI_Attr_put()\fP - - -.TP -.fi -.B -MPI::Comm#attr_get(keyval) -Returns the object attribute associated with MPI::Keyval keyval and -the receiver communicator if one exists and nil otherwise. - -C equivalent: \&\fBMPI_Attr_get()\fP - - -.TP -.fi -.B -MPI::Comm#attr_delete(keyval) -Deletes the object attribute associated with MPI::Keyval keyval and -the receiver communicator if one exists. Returns true. - -C equivalent: \&\fBMPI_Attr_delete()\fP -.SH Informational Methods -.PP - -.TP -.fi -.B -MPI::Comm#size() -Returns the size of the communicator. - -C equivalent: \&\fBMPI_Comm_size()\fP - - -.TP -.fi -.B -MPI::Comm#rank() -Returns the rank of the current process within the communicator. - -C equivalent: \&\fBMPI_Comm_rank()\fP - - -.TP -.fi -.B -MPI::Comm#group() -Returns a handle to the group of the receiver communicator. - -C equivalent: \&\fBMPI_Comm_group()\fP - - -.TP -.fi -.B -MPI::Comm#inter?() -Returns true if the receiver is an intercommunicator. - -C equivalent: \&\fBMPI_Comm_test_inter()\fP - - -.TP -.fi -.B -MPI::Comm#remote_size() -Returns the size of the remote communicator of the intercommunicator. - -C equivalent: \&\fBMPI_Comm_remote_size()\fP - - -.TP -.fi -.B -MPI::Comm#remote_group() -Returns the remote group communicator of the intercommunicator. - -C equivalent: \&\fBMPI_Comm_remote_group()\fP -.SH Topology Specific Information Methods -.PP - -.TP -.fi -.B -MPI::Comm#topo_test() -Returns MPI::Comm.GRAPH if the topology associated with the receiver -communicator is a graph, MPI::Comm.CART if the topology is cartesian, and -MPI::UNDEFINED if there is no associated topology. - -C equivalent: \&\fBMPI_Topo_test()\fP - - -.TP -.fi -.B -MPI::Comm#graphdims() -Returns an array of two elements: the first being an integer describing the -number of nodes and the second being an integer describing the number of -edges in the graph topology. - -C equivalent: \&\fBMPI_Graphdims_get()\fP - - -.TP -.fi -.B -MPI::Comm#graphdims_get() -An alias for MPI::Comm#graphdims(). - -C equivalent: \&\fBMPI_Graphdims_get()\fP - - -.TP -.fi -.B -MPI::Comm#graph() -Returns an array of two elements containing the arrays index and -edges as given to the MPI::Comm#graph_create() method, respectively. - -C equivalent: \&\fBMPI_Graph_get()\fP - - -.TP -.fi -.B -MPI::Comm#graph_get() -An alias for MPI::Comm#graph() - -C equivalent: \&\fBMPI_Graph_get()\fP - - -.TP -.fi -.B -MPI::Comm#cartdim() -Returns the number of dimensions in the cartesian topology attached to the -receiver. - -C equivalent: \&\fBMPI_Cartdim_get()\fP - - -.TP -.fi -.B -MPI::Comm#cartdim_get() -An alias for MPI::Comm#cartdim(). - -C equivalent: \&\fBMPI_Cartdim_get()\fP - - -.TP -.fi -.B -MPI::Comm#cart() -Returns an array of 3 elements containing a dims array, periods -array, and coords array as given to cart_create(). - -C equivalent: \&\fBMPI_Cart_get()\fP - - -.TP -.fi -.B -MPI::Comm#cart_get() -An alias for MPI::Comm#cart() - -C equivalent: \&\fBMPI_Cart_get()\fP - - -.TP -.fi -.B -MPI::Comm#cart_rank(coords) -Returns the rank of the process at the coordinates given in the array -coords. - -C equivalent: \&\fBMPI_Cart_rank()\fP - - -.TP -.fi -.B -MPI::Comm#cart_coords(rank) -Returns an array of the coordinates of the process specified by rank. - -C equivalent: \&\fBMPI_Cart_coords()\fP - - -.TP -.fi -.B -MPI::Comm#graph_neigbhors_count(rank) -Returns an integer specifying the number of neighbors of the process -specified by rank. - -C equivalent: \&\fBMPI_Graph_neighbors_count()\fP - - -.TP -.fi -.B -MPI::Comm#graph_neigbhors(rank) -Returns an array of the ranks of the neighbors of the process specified -by rank. - -C equivalent: \&\fBMPI_Graph_neighbors()\fP - - -.TP -.fi -.B -MPI::Comm#cart_shift(dir, disp) -Returns an array of two elements containing the rank of the source process -and the rank of the destination process, respectively, as might be used -in MPI::Comm#sendrecv(). dir indicates the direction of the shift -and disp indicates the displacement. - -C equivalent: \&\fBMPI_Cart_shift()\fP - - -.TP -.fi -.B -MPI::Comm#cart_map(dims, periods) -Returns an integer specifying the optimal placement for the calling -process on the physical machine. dims and periods are as for -MPI::Comm#cart_create(). - -C equivalent: \&\fBMPI_Cart_map()\fP - - -.TP -.fi -.B -MPI::Comm#graph_map(index, edges) -Returns an integer specifying the optimal placement for the calling -process on the physical machine. index and edges are as for -MPI::Comm#graph_create() - -C equivalent: \&\fBMPI_Graph_map()\fP -.SH Point\-to\-Point Communications -.PP - -.TP -.fi -.B -MPI::Comm#send(obj, dest, tag) -Sends object obj to process dest within the communicator with -tag tag. Returns true on success. - -C equivalent: \&\fBMPI_Send()\fP - - -.TP -.fi -.B -MPI::Comm#recv(src, tag) -Receives an object from process src within the communicator with tag -tag. Returns an array of two elements containing the object -received and an MPI::Status object, respectively. - -C equivalent: \&\fBMPI_Recv()\fP - - -.TP -.fi -.B -MPI::Comm#bsend(obj, dest, tag) -Sends object obj to process dest within the communicator with -tag tag. Buffering is used (see MPI::Comm#buffer_for()). -Returns true on success. - -C equivalent: \&\fBMPI_Bsend()\fP - - -.TP -.fi -.B -MPI::Comm#ssend(obj, dest, tag) -Sends object obj to process dest within the communicator with -tag tag synchronously. Returns true on success. - -C equivalent: \&\fBMPI_Ssend()\fP - - -.TP -.fi -.B -MPI::Comm#rsend(obj, dest, tag) -Sends object obj to process dest within the communicator with -tag tag with the assumption that the receiver has already begun a -receiving call. -Returns true on success. - -C equivalent: \&\fBMPI_Rsend()\fP - - -.TP -.fi -.B -MPI::Comm#sendrecv(obj, dest, dtag, src, stag) -Sends object obj to process dest within the communicator with -tag dtag and simultaneously starts a receive from process src -with tag stag. Returns an array of two elements containing the -object received and an MPI::Status object, respectively. - -C equivalent: \&\fBMPI_Sendrecv()\fP -.SH Non\-blocking Point\-to\-Point Communications -.PP - -.TP -.fi -.B -MPI::Comm#isend(obj, dest, tag) -Performs a non\-blocking send of object obj to process dest -within the communicator with tag tag. Returns a new MPI::Request -object. - -C equivalent: \&\fBMPI_Isend()\fP - - -.TP -.fi -.B -MPI::Comm#irecv(src, tag) -Performs a non\-blocking receive of an object from process src within -the communicator with tag tag. Returns a new MPI::Request object. - -C equivalent: \&\fBMPI_Irecv()\fP - - -.TP -.fi -.B -MPI::Comm#ibsend(obj, dest, tag) -Performs a non\-blocking send of object obj to process dest -within the communicator with tag tag. Buffering is used -(see MPI::Comm#buffer_for()). Returns a new MPI::Request -object. - -C equivalent: \&\fBMPI_Ibsend()\fP - - -.TP -.fi -.B -MPI::Comm#issend(obj, dest, tag) -Performs a non\-blocking, synchronous send of object obj to process -dest within the communicator with tag tag tag tag -syncronously. Returns a new MPI::Request object. - -C equivalent: \&\fBMPI_Issend()\fP - - -.TP -.fi -.B -MPI::Comm#irsend(obj, dest, tag) -Performs a non\-blocking send of object obj to process dest -within the communicator with tag tag with the assumption that the -receiver has already begun a receiving call. Returns a new MPI::Request -object. - -C equivalent: \&\fBMPI_Irsend()\fP -.SH Persistent Communications -.PP - -.TP -.fi -.B -MPI::Comm#send_init(obj, dest, tag) -Sets up a persistent send of object obj to process dest -within the communicator with tag tag. Returns a new MPI::Request -object. - -C equivalent: \&\fBMPI_Send_init()\fP - - -.TP -.fi -.B -MPI::Comm#recv_init(src, tag) -Sets up a persistent receive of an object from process src within -the communicator with tag tag. Returns a new MPI::Request object. - -C equivalent: \&\fBMPI_Recv_init()\fP - - -.TP -.fi -.B -MPI::Comm#bsend_init(obj, dest, tag) -Sets up a persistent send of object obj to process dest -within the communicator with tag tag. Buffering is used -(see MPI::Comm#buffer_for()). Returns a new MPI::Request -object. - -C equivalent: \&\fBMPI_Bsend_init()\fP - - -.TP -.fi -.B -MPI::Comm#ssend_init(obj, dest, tag) -Sets up a persistent, synchronous send of object obj to process -dest within the communicator with tag tag tag tag -syncronously. Returns a new MPI::Request object. - -C equivalent: \&\fBMPI_Ssend_init()\fP - - -.TP -.fi -.B -MPI::Comm#rsend_init(obj, dest, tag) -Sets up a persistent send of object obj to process dest -within the communicator with tag tag with the assumption that the -receiver has already begun a receiving call. Returns a new MPI::Request -object. - -C equivalent: \&\fBMPI_Rsend_init()\fP -.SH Buffering Methods -.PP - -.TP -.fi -.B -MPI::Comm#buffer_for(ary) -Sets up buffering on the receiver communicator to account for the objects -in the array ary. Returns true. - -C equivalent: \&\fBMPI_Buffer_attach()\fP - - -.TP -.fi -.B -MPI::Comm#unbuffer() -Removes the buffer associated with the receiver communicator. Returns -true. - -C equivalent: \&\fBMPI_Buffer_detach()\fP -.SH Collective Operations -.PP - -.TP -.fi -.B -MPI::Comm#barrier() -Performs a barrier operation on the communicator. - -C equivalent: \&\fBMPI_Barrier()\fP - - -.TP -.fi -.B -MPI::Comm#bcast(obj, root) -Broadcasts obj from process root to all other processes. -The value of obj is irrelevant for all processes other than -root. Returns a copy of obj all processes other than root -and obj itself on process root. - -C equivalent: \&\fBMPI_Bcast\fP - - -.TP -.fi -.B -MPI::Comm#gather(obj, root) -Gathers obj from all processes in the communicator into an array -and returns this array at process root. Given a rank r, the -r\-th element of the array is a copy of obj on process r. -Returns true on all processes other than root. - -C equivalent: \&\fBMPI_Gather(), MPI_Gatherv()\fP - - -.TP -.fi -.B -MPI::Comm#allgather(obj) -Gathers obj from all processes in the communicator into an array -and returns this array at all processes. Given a rank r, the -r\-th element of the array is a copy of obj on process r. - -C equivalent: \&\fBMPI_Allgather(), MPI_Allgatherv()\fP - - -.TP -.fi -.B -MPI::Comm#scatter(ary, root) -Scatters the contents of the array ary on the process with rank -root to all processes in the communicator. The array must have -length equal to the number of processes in the communicator. Returns -the i\-th object in ary at the i\-th process. - -C equivalent: \&\fBMPI_Scatter()\fP - - -.TP -.fi -.B -MPI::Comm#alltoall(ary) -Scatters the contents of the array ary on every process to all -processes in the communicator. The array must have length equal to -the number of processes in the communicator. Returns an array on each -process where the i\-th object in the array on the j\-th -process is j\-th object in ary at the i\-th process. - -C equivalent: \&\fBMPI_Alltoall()\fP - - -.TP -.fi -.B -MPI::Comm#reduce(obj, op, root) -Reduces the object obj given using the MPI::Op op and returns -the result of the reduction on the process with rank root. On all -other processes, the method returns true. If obj is an array, it -must have the same length on all processes and the operation is applied -to each object in the array. To perform an operation on an array, pass -an array of the array to which the operation will be applied. - -C equivalent: \&\fBMPI_Reduce()\fP - - -.TP -.fi -.B -MPI::Comm#allreduce(obj, op) -Reduces the object obj given using the MPI::Op op and returns -the result of the reduction to all processes. If obj is an array, -it must have the same length on all processes and the operation is applied -to each object in the array. To perform an operation on an array, pass -an array of the array to which the operation will be applied. - -C equivalent: \&\fBMPI_Allreduce()\fP - - -.TP -.fi -.B -MPI::Comm#scan(obj, op) -At each process i, returns the value of a reduction on processes -0...i, inclusively. If obj is an array, it must have the same -length on all processes and the operation is applied to each object in the -array. To perform an operation on an array, pass an array of the array -to which the operation will be applied. - -C equivalent: \&\fBMPI_Scan()\fP - - -.TP -.fi -.B -MPI::Comm#reduce_scatter(ary, counts, op) -Performs an element\-wise reduction on ary with MPI::Op op -and scatters the result according to the array counts. Process 0 -receives an array of the first counts[0] elements of the result of -the reduction, process 1 receives an array of the next counts[1] -elements of the result of the reduction, and so on. ary must have -the same length on all processes and this length must equal the sum of -the values in counts. - -C equivalent: \&\fBMPI_Reduce_scatter()\fP -.SH Probing -.PP - -.TP -.fi -.B -MPI::Comm#probe(src, tag) -Blocks until a message is available from process src with tag -tag. Returns a new MPI::Status object. - -C equivalent: \&\fBMPI_Probe()\fP - - -.TP -.fi -.B -MPI::Comm#iprobe(src, tag) -Returns an array of two elements. The first element is a flag which -is true if there is a message from the given source src with the -given tag. If the flag is true, then the second element of the -return array is a new MPI::Status object. If the flag is false, the -second element of the return array is to be ignored. - -C equivalent: \&\fBMPI_Iprobe()\fP -.SH Comparison -.PP - -.TP -.fi -.B -MPI::Comm#==(comm) -Returns true if the receiver and the given communicator comm are -the same communicator. Returns false otherwise. - -C equivalent: \&\fBMPI_Comm_compare()\fP - - -.TP -.fi -.B -MPI::Comm#congruent?(comm) -Returns true if the receiver and the given communicator comm are -precisely congruent. Returns false otherwise. - -C equivalent: \&\fBMPI_Comm_compare()\fP - - -.TP -.fi -.B -MPI::Comm#similar?(comm) -Returns true if the receiver and the given communicator comm are -precisely similar. Returns false otherwise. - -C equivalent: \&\fBMPI_Comm_compare()\fP -.SH Abortive Methods -.PP - -.TP -.fi -.B -MPI::Comm#abort(errorcode) -Aborts the MPI program with the given error code. - -C equivalent: \&\fBMPI_Abort()\fP -.SH Constants -.PP -MPI::Comm.ANY_TAG -.nf -\& A value which may be passed to any method expecting a tag. It specifies -\& that any tag will match in that call. -.fi -MPI::Comm.ANY_SOURCE -.nf -\& A value which may be passed to any method expecting a source rank. It -\& specifies that any source rank will match in that call. -.fi -.SH Notes -.PP -The MPI binding to Ruby is intended solely for Single Program, Multiple Data -(SPMD) parallel computations. Thus, none of these communication methods can -be intermixed with MPI programs written in other languages. -Because of the Multiple Data aspect, sending objects should be viewed as -creating a copy of the original object on the recipient process. There are -no remote method invocation concepts explicitly supported in this binding. - diff --git a/docs/man/man3/MPI_Exception.3 b/docs/man/man3/MPI_Exception.3 deleted file mode 100644 index 01625ec..0000000 --- a/docs/man/man3/MPI_Exception.3 +++ /dev/null @@ -1,8 +0,0 @@ -.\" DO NOT MODIFY THIS FILE! it was generated by rd2 -.TH mpi_exception.rd 1 "July 2001" -.SH MPI::Exception -.PP -.SH Description -.PP -An exception class used for passing back MPI errors - diff --git a/docs/man/man3/MPI_Group.3 b/docs/man/man3/MPI_Group.3 deleted file mode 100644 index f774f68..0000000 --- a/docs/man/man3/MPI_Group.3 +++ /dev/null @@ -1,165 +0,0 @@ -.\" DO NOT MODIFY THIS FILE! it was generated by rd2 -.TH mpi_group.rd 1 "July 2001" -.SH MPI::Group -.PP -.SH Description -.PP -A wrapper class around MPI groups -.SH Methods -.PP -.SH Constructors -.PP -.SH Informational Methods -.PP - -.TP -.fi -.B -MPI::Group#size() -Returns the size of the group. - -C equivalent: \&\fBMPI_Group_size()\fP - - -.TP -.fi -.B -MPI::Group#rank() -Returns the rank of the current process within the communicator. - -C equivalent: \&\fBMPI_Comm_rank()\fP - - -.TP -.fi -.B -MPI::Group#translate_ranks(ary, grp) -Translates the group rankings listed in ary for the receiver group -into rankings in grp. The new rankings are returned in an array, -ordered respectively to ary. If any of the rankings in ary -do not correspond to a ranking in grp, the corresponding entry in -the return array is \&\fBMPI::UNDEFINED\fP. - -C equivalent: \&\fBMPI_Group_translate_ranks()\fP - - -.TP -.fi -.B -MPI::Group#==(grp) -Returns true if the receiver and grp are precisely equal. - -C equivalent: \&\fBMPI_Group_compare()\fP - - -.TP -.fi -.B -MPI::Group#similar?(grp) -Returns true if the receiver and grp are precisely similar. - -C equivalent: \&\fBMPI_Group_compare()\fP -.SH Constructors -.PP - -.TP -.fi -.B -MPI::Group#|(grp) -Returns the union of the receiver group and grp. - -C equivalent: \&\fBMPI_Group_union()\fP - - -.TP -.fi -.B -MPI::Group#union(grp) -An alias for MPI::Group#|() - -C equivalent: \&\fBMPI_Group_union()\fP - - -.TP -.fi -.B -MPI::Group#\-(grp) -Returns the difference of the receiver group and grp. - -C equivalent: \&\fBMPI_Group_difference()\fP - - -.TP -.fi -.B -MPI::Group#difference(grp) -An alias for MPI::Group#\-() - -C equivalent: \&\fBMPI_Group_difference()\fP - - -.TP -.fi -.B -MPI::Group#&(grp) -Returns the intersection of the receiver group and grp. - -C equivalent: \&\fBMPI_Group_intersection()\fP - - -.TP -.fi -.B -MPI::Group#intersection(grp) -An alias for MPI::Group#&() - -C equivalent: \&\fBMPI_Group_intersection()\fP - - -.TP -.fi -.B -MPI::Group#incl(ary) -Returns a new group with only those ranks listed in ary - -C equivalent: \&\fBMPI_Group_incl()\fP - - -.TP -.fi -.B -MPI::Group#range_incl(ary) -Returns a new group with only those ranks in an array of ranges, -ary. ary is an array in which each element is an array of -size three, describing a range. The first element of one of these size 3 -arrays is the start of the range, the second element is the end of the -range, and the third element is the stride taken between the range -endpoints. The stride may be negative, but not zero. The ranks must be -distinct. - -C equivalent: \&\fBMPI_Group_range_incl()\fP - - -.TP -.fi -.B -MPI::Group#excl(ary) -Returns a new group with only those ranks not listed in ary - -C equivalent: \&\fBMPI_Group_excl()\fP - - -.TP -.fi -.B -MPI::Group#range_excl(ary) -Returns a new group with only those ranks not in an array of ranges, -ary. ary is an array in which each element is an array of -size three, describing a range. The first element of one of these size 3 -arrays is the start of the range, the second element is the end of the -range, and the third element is the stride taken between the range -endpoints. The stride may be negative, but not zero. The ranks must be -distinct. - -C equivalent: \&\fBMPI_Group_range_excl()\fP - diff --git a/docs/man/man3/MPI_Keyval.3 b/docs/man/man3/MPI_Keyval.3 deleted file mode 100644 index bec2e0d..0000000 --- a/docs/man/man3/MPI_Keyval.3 +++ /dev/null @@ -1,24 +0,0 @@ -.\" DO NOT MODIFY THIS FILE! it was generated by rd2 -.TH mpi_keyval.rd 1 "July 2001" -.SH MPI::Keyval -.PP -.SH Description -.PP -A wrapper class around MPI keyvals -.SH Methods -.PP -.SH Constructors -.PP - -.TP -.fi -.B -MPI::Keyval.create(uniq) -Returns a new MPI::Keyval. If uniq is true, then the attribute -associated with a keyval will be deleted from the original communicator -to which it was attached when that communicator is duplicated. -If uniq is false, then the attribute will simply be copied to the -new communicator. - -C equivalent: \&\fBMPI_Keyval_create()\fP - diff --git a/docs/man/man3/MPI_Op.3 b/docs/man/man3/MPI_Op.3 deleted file mode 100644 index f4a173c..0000000 --- a/docs/man/man3/MPI_Op.3 +++ /dev/null @@ -1,22 +0,0 @@ -.\" DO NOT MODIFY THIS FILE! it was generated by rd2 -.TH mpi_op.rd 1 "July 2001" -.SH MPI::Op -.PP -.SH Description -.PP -A wrapper class around MPI operators -.SH Methods -.PP -.SH Constructors -.PP - -.TP -.fi -.B -MPI::Op.create(proc, commute) -Returns a new MPI::Op based on the Proc object proc. proc -must accept two arguments. If commute is true, proc is -considered to be commutative. - -C equivalent: \&\fBMPI_Op_create()\fP - diff --git a/docs/man/man3/MPI_Request.3 b/docs/man/man3/MPI_Request.3 deleted file mode 100644 index b6f0655..0000000 --- a/docs/man/man3/MPI_Request.3 +++ /dev/null @@ -1,174 +0,0 @@ -.\" DO NOT MODIFY THIS FILE! it was generated by rd2 -.TH mpi_request.rd 1 "July 2001" -.SH MPI::Request -.PP -.SH Description -.PP -A wrapper class around MPI requests -.SH Methods -.PP -.SH Informational Methods -.PP - -.TP -.fi -.B -MPI::Request#null?() -Returns true if the request is null. - -C equivalent: \&\fBrequest == MPI_REQUEST_NULL\fP -.SH Wait Methods -.PP - -.TP -.fi -.B -MPI::Request#wait() -Waits until the operation identified by the receiver request is complete. -If the communication object associated with this request was created by a -nonblocking send or receive call, then the request becomes null. -Returns an MPI::Status object. - -C equivalent: \&\fBMPI_Wait()\fP - - -.TP -.fi -.B -MPI::Request.waitany(ary) -Waits until any of the operations identified by the requests in the -array of requests ary is complete. If the communication object -associated with this request was created by a nonblocking send or -receive call, then the request becomes null. Returns an array of -two elements containing the index of the completed request and an -MPI::Status object, respectively. - -C equivalent: \&\fBMPI_Waitany()\fP - - -.TP -.fi -.B -MPI::Request.waitall(ary) -Waits until all of the operations identified by the requests in the -array of requests ary are complete. If the communication object -associated with any of these requests was created by a nonblocking send or -receive call, then those requests become null. Returns an array of -MPI::Status objects for each request in ary. The status of a -request is at the same index in the return array as the request index -in ary. - -C equivalent: \&\fBMPI_Waitall()\fP - - -.TP -.fi -.B -MPI::Request.waitsome(ary) -Waits until at least one of the operations identified by the requests in -the array of requests ary are complete. If the communication object -associated with any of these requests was created by a nonblocking send or -receive call, then those requests become null. Returns an array of two -elements containing an array of the completed requests and an array of -MPI::Status objects for each completed request, respectively. The status -of a request is at the same index in the return status array as the -request index in the return request array. - -C equivalent: \&\fBMPI_Waitsome()\fP -.SH Test Methods -.PP - -.TP -.fi -.B -MPI::Request#test() -Tests if the operation identified by request is complete. If the -communication object associated with this request was created by a -nonblocking send or receive call, then the request becomes null. -Returns an array of two elements containing a flag (true or false, -as the result of the test), and an MPI::Status object, respectively. -The status object should be ignored if the flag is false. - -C equivalent: \&\fBMPI_Test()\fP - - -.TP -.fi -.B -MPI::Request.testany(ary) -Tests if any of the operations identified by the requests in the -array of requests ary is complete. If the communication object -associated with this request was created by a nonblocking send or -receive call, then the request becomes null. Returns an array of -three elements containing a flag (true or false, depending on whether -any of the requests were completed), the index of the completed request, -and an MPI::Status object, respectively. The last two array elements -should be ignored if the flag is false. - -C equivalent: \&\fBMPI_Testany()\fP - - -.TP -.fi -.B -MPI::Request.testall(ary) -Tests if all of the operations identified by the requests in the -array of requests ary are complete. If the communication object -associated with any of these requests was created by a nonblocking send or -receive call, then those requests become null. Returns an array of -two elements containing a flag (true or false, depending on whether -all of the requests were completed) and an array of MPI::Status objects -for each request in ary, respectively. The status of a request is -at the same index in the return array as the request index in ary. -The status array should be ignored if the flag is false. - -C equivalent: \&\fBMPI_Testall()\fP - - -.TP -.fi -.B -MPI::Request.testsome(ary) -Equivalent to \&\fBMPI::Request#waitsome(ary)\fP except that -\&\fBMPI::Request#testsome(ary)\fP does not block. - -C equivalent: \&\fBMPI_Testsome()\fP -.SH Initiation and Cancellation -.PP - -.TP -.fi -.B -MPI::Request#cancel() -Cancels the request. Returns true. - -C equivalent: \&\fBMPI_Cancel()\fP - - -.TP -.fi -.B -MPI::Request#start() -Starts a request. Returns true. - -C equivalent: \&\fBMPI_Start()\fP - - -.TP -.fi -.B -MPI::Request.startall(ary) -Starts all the requests in the array of requests ary. Returns true. - -C equivalent: \&\fBMPI_Startall()\fP -.SH Accessors -.PP - -.TP -.fi -.B -MPI::Request#object -Returns the object associated with the request. - -C equivalent: Accessing the buffer given in the creation of the request. - diff --git a/docs/man/man3/MPI_Ruby.3 b/docs/man/man3/MPI_Ruby.3 deleted file mode 100644 index 4476d0e..0000000 --- a/docs/man/man3/MPI_Ruby.3 +++ /dev/null @@ -1,74 +0,0 @@ -.\" DO NOT MODIFY THIS FILE! it was generated by rd2 -.TH mpi.rd 1 "July 2001" -.SH MPI -.PP -.SH Description -.PP -The module containing all MPI classes and constants -.SH Methods -.PP -.SH Informational Methods -.PP - -.TP -.fi -.B -MPI.wtime() -Returns a double precision floating\-point number that is the time in seconds -since some arbitrary point of time in the past. The point is guaranteed -not to change during the lifetime of the process. - -C equivalent: \&\fBMPI_Wtime()\fP - - -.TP -.fi -.B -MPI.wtick() -Returns a double precision floating\-point number that is the time in seconds -between successive ticks of the clock. - -C equivalent: \&\fBMPI_Wtick()\fP - - -.TP -.fi -.B -MPI.initialized?() -Returns true if MPI has been initialized. (Note that because of the -runtime system of MPI Ruby, this will always return true.) - -C equivalent: \&\fBMPI_Initialized()\fP - - -.TP -.fi -.B -MPI.processor_name() -Returns the processor name of the current processor. - -C equivalent: \&\fBMPI_Get_processor_name()\fP - - -.TP -.fi -.B -MPI.dims_create(nnodes, dims) -Returns an array containing cartesian dimensions suitable for use with -MPI::Comm#cart_create(). nnodes is an integer specifying the total -number of processes. The array dims should have length equal to -the desired number of dimensions and should contain integers. If an entry -i in dims is positive, the i\-th entry in the returned -array will be precisely dims[i]. If dims[i] is 0, the -corresponding entry in the returned array will be determined by the -method. A negative entry in dims is incorrect. - -C equivalent: \&\fBMPI_Dims_create()\fP -.SH Constants -.PP -MPI::UNDEFINED -.nf -\& An opaque value that is used by various methods to specify that a value is -\& undefined. -.fi - diff --git a/docs/man/man3/MPI_Status.3 b/docs/man/man3/MPI_Status.3 deleted file mode 100644 index 65bcc52..0000000 --- a/docs/man/man3/MPI_Status.3 +++ /dev/null @@ -1,39 +0,0 @@ -.\" DO NOT MODIFY THIS FILE! it was generated by rd2 -.TH mpi_status.rd 1 "July 2001" -.SH MPI::Status -.PP -.SH Description -.PP -A wrapper class around MPI status -.SH Methods -.PP -.SH Informational Methods -.PP - -.TP -.fi -.B -MPI::Status#source() -Returns the source of the message to which the status object refers. - -C equivalent: \&\fBstatus\.MPI_STATUS\fP - - -.TP -.fi -.B -MPI::Status#tag() -Returns the tag of the message to which the status object refers. - -C equivalent: \&\fBstatus\.MPI_TAG\fP - - -.TP -.fi -.B -MPI::Status#cancelled?() -Returns whether or not the message to which the status object refers was -cancelled. - -C equivalent: \&\fBMPI_Test_cancelled()\fP - diff --git a/docs/man/man3/Makefile b/docs/man/man3/Makefile deleted file mode 100644 index 440d2c2..0000000 --- a/docs/man/man3/Makefile +++ /dev/null @@ -1,204 +0,0 @@ -# Makefile.in generated automatically by automake 1.4g from Makefile.am. - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - - -SHELL = /bin/sh - -srcdir = . -top_srcdir = ../../.. - -prefix = /usr/local -exec_prefix = ${prefix} - -bindir = ${exec_prefix}/bin -sbindir = ${exec_prefix}/sbin -libexecdir = ${exec_prefix}/libexec -datadir = ${prefix}/share -sysconfdir = ${prefix}/etc -sharedstatedir = ${prefix}/com -localstatedir = ${prefix}/var -libdir = ${exec_prefix}/lib -infodir = ${prefix}/info -mandir = ${prefix}/man -includedir = ${prefix}/include -oldincludedir = /usr/include -pkgdatadir = $(datadir)/mpi_ruby -pkglibdir = $(libdir)/mpi_ruby -pkgincludedir = $(includedir)/mpi_ruby -top_builddir = ../../.. - -ACLOCAL = ${SHELL} /Users/abedra/Desktop/mpi_ruby-0.3/missing --run aclocal -AUTOCONF = ${SHELL} /Users/abedra/Desktop/mpi_ruby-0.3/missing --run autoconf -AUTOMAKE = ${SHELL} /Users/abedra/Desktop/mpi_ruby-0.3/missing --run automake -AUTOHEADER = ${SHELL} /Users/abedra/Desktop/mpi_ruby-0.3/missing --run autoheader - -INSTALL = /opt/local/bin/ginstall -c -INSTALL_PROGRAM = ${INSTALL} -INSTALL_DATA = ${INSTALL} -m 644 -INSTALL_SCRIPT = ${INSTALL} -INSTALL_HEADER = $(INSTALL_DATA) -transform = s,x,x, -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_alias = @build_alias@ -build_triplet = i386-apple-darwin9.1.0 -host_alias = @host_alias@ -host_triplet = i386-apple-darwin9.1.0 -target_alias = @target_alias@ -target_triplet = i386-apple-darwin9.1.0 -AMTAR = ${SHELL} /Users/abedra/Desktop/mpi_ruby-0.3/missing --run tar -AWK = gawk -CC = /usr/bin/mpicc -DEPDIR = .deps -INSTALL_STRIP_PROGRAM = ${SHELL} `CDPATH=: && cd . && pwd`/install-sh -c -s -MAX_OPS = 25 -MPICC_PATH = /usr/bin/mpicc -PACKAGE = mpi_ruby -RB_ARCH_DIR = /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0 -RB_INCLUDE_DIR = /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/include -RB_LIB_DIR = /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib -RUBY = /usr/bin/ruby -RUBY_CFLAGS = -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0 -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/include -RUBY_LIBS = -lruby -L/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib -VERSION = 0.3 -_am_include = include -_am_quote = -install_sh = ./install-sh - -AUTOMAKE_OPTIONS = foreign dist-shar dist-tarZ dist-zip dist-bzip2 -EXTRA_DIST = MPI_Comm.3 MPI_Exception.3 MPI_Group.3 MPI_Keyval.3 MPI_Op.3 MPI_Request.3 MPI_Ruby.3 MPI_Status.3 -EXEEXT = -OBJEXT = o -subdir = docs/man/man3 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -DIST_SOURCES = -DIST_COMMON = Makefile.am Makefile.in -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign docs/man/man3/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && \ - CONFIG_HEADERS= CONFIG_LINKS= \ - CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status -uninstall-info-am: -tags: TAGS -TAGS: - - -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = ../../.. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - if test -f $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - $(mkinstalldirs) "$(distdir)/$$dir"; \ - fi; \ - if test -d $$d/$$file; then \ - cp -pR $$d/$$file $(distdir) \ - || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile - -installdirs: - -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-am - -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic - -uninstall-am: uninstall-info-am - -.PHONY: all all-am check check-am clean clean-generic distclean \ - distclean-generic distdir dvi dvi-am info info-am install \ - install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am install-man \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic uninstall uninstall-am uninstall-info-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/docs/man/man3/Makefile.am b/docs/man/man3/Makefile.am deleted file mode 100644 index 0719f2d..0000000 --- a/docs/man/man3/Makefile.am +++ /dev/null @@ -1,2 +0,0 @@ -AUTOMAKE_OPTIONS = foreign dist-shar dist-tarZ dist-zip dist-bzip2 -EXTRA_DIST = MPI_Comm.3 MPI_Exception.3 MPI_Group.3 MPI_Keyval.3 MPI_Op.3 MPI_Request.3 MPI_Ruby.3 MPI_Status.3 diff --git a/docs/man/man3/Makefile.in b/docs/man/man3/Makefile.in deleted file mode 100644 index 012b3af..0000000 --- a/docs/man/man3/Makefile.in +++ /dev/null @@ -1,204 +0,0 @@ -# Makefile.in generated automatically by automake 1.4g from Makefile.am. - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = ../../.. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_HEADER = $(INSTALL_DATA) -transform = @program_transform_name@ -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_alias = @build_alias@ -build_triplet = @build@ -host_alias = @host_alias@ -host_triplet = @host@ -target_alias = @target_alias@ -target_triplet = @target@ -AMTAR = @AMTAR@ -AWK = @AWK@ -CC = @CC@ -DEPDIR = @DEPDIR@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -MAX_OPS = @MAX_OPS@ -MPICC_PATH = @MPICC_PATH@ -PACKAGE = @PACKAGE@ -RB_ARCH_DIR = @RB_ARCH_DIR@ -RB_INCLUDE_DIR = @RB_INCLUDE_DIR@ -RB_LIB_DIR = @RB_LIB_DIR@ -RUBY = @RUBY@ -RUBY_CFLAGS = @RUBY_CFLAGS@ -RUBY_LIBS = @RUBY_LIBS@ -VERSION = @VERSION@ -_am_include = @_am_include@ -_am_quote = @_am_quote@ -install_sh = @install_sh@ - -AUTOMAKE_OPTIONS = foreign dist-shar dist-tarZ dist-zip dist-bzip2 -EXTRA_DIST = MPI_Comm.3 MPI_Exception.3 MPI_Group.3 MPI_Keyval.3 MPI_Op.3 MPI_Request.3 MPI_Ruby.3 MPI_Status.3 -EXEEXT = -OBJEXT = o -subdir = docs/man/man3 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -DIST_SOURCES = -DIST_COMMON = Makefile.am Makefile.in -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign docs/man/man3/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && \ - CONFIG_HEADERS= CONFIG_LINKS= \ - CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status -uninstall-info-am: -tags: TAGS -TAGS: - - -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = ../../.. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - if test -f $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - $(mkinstalldirs) "$(distdir)/$$dir"; \ - fi; \ - if test -d $$d/$$file; then \ - cp -pR $$d/$$file $(distdir) \ - || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile - -installdirs: - -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-am - -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic - -uninstall-am: uninstall-info-am - -.PHONY: all all-am check check-am clean clean-generic distclean \ - distclean-generic distdir dvi dvi-am info info-am install \ - install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am install-man \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic uninstall uninstall-am uninstall-info-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/docs/rd/Makefile.am b/docs/rd/Makefile.am deleted file mode 100644 index 551e15b..0000000 --- a/docs/rd/Makefile.am +++ /dev/null @@ -1,2 +0,0 @@ -AUTOMAKE_OPTIONS = foreign dist-shar dist-tarZ dist-zip dist-bzip2 -EXTRA_DIST = mpi.rd mpi_comm.rd mpi_exception.rd mpi_group.rd mpi_keyval.rd mpi_op.rd mpi_request.rd mpi_status.rd diff --git a/docs/rd/Makefile.in b/docs/rd/Makefile.in deleted file mode 100644 index c41cd0f..0000000 --- a/docs/rd/Makefile.in +++ /dev/null @@ -1,204 +0,0 @@ -# Makefile.in generated automatically by automake 1.4g from Makefile.am. - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = ../.. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_HEADER = $(INSTALL_DATA) -transform = @program_transform_name@ -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_alias = @build_alias@ -build_triplet = @build@ -host_alias = @host_alias@ -host_triplet = @host@ -target_alias = @target_alias@ -target_triplet = @target@ -AMTAR = @AMTAR@ -AWK = @AWK@ -CC = @CC@ -DEPDIR = @DEPDIR@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -MAX_OPS = @MAX_OPS@ -MPICC_PATH = @MPICC_PATH@ -PACKAGE = @PACKAGE@ -RB_ARCH_DIR = @RB_ARCH_DIR@ -RB_INCLUDE_DIR = @RB_INCLUDE_DIR@ -RB_LIB_DIR = @RB_LIB_DIR@ -RUBY = @RUBY@ -RUBY_CFLAGS = @RUBY_CFLAGS@ -RUBY_LIBS = @RUBY_LIBS@ -VERSION = @VERSION@ -_am_include = @_am_include@ -_am_quote = @_am_quote@ -install_sh = @install_sh@ - -AUTOMAKE_OPTIONS = foreign dist-shar dist-tarZ dist-zip dist-bzip2 -EXTRA_DIST = mpi.rd mpi_comm.rd mpi_exception.rd mpi_group.rd mpi_keyval.rd mpi_op.rd mpi_request.rd mpi_status.rd -EXEEXT = -OBJEXT = o -subdir = docs/rd -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -DIST_SOURCES = -DIST_COMMON = Makefile.am Makefile.in -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign docs/rd/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && \ - CONFIG_HEADERS= CONFIG_LINKS= \ - CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status -uninstall-info-am: -tags: TAGS -TAGS: - - -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = ../.. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - if test -f $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - $(mkinstalldirs) "$(distdir)/$$dir"; \ - fi; \ - if test -d $$d/$$file; then \ - cp -pR $$d/$$file $(distdir) \ - || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile - -installdirs: - -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-am - -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic - -uninstall-am: uninstall-info-am - -.PHONY: all all-am check check-am clean clean-generic distclean \ - distclean-generic distdir dvi dvi-am info info-am install \ - install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am install-man \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic uninstall uninstall-am uninstall-info-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/docs/rd/mpi.rd b/docs/rd/mpi.rd deleted file mode 100644 index b13afc0..0000000 --- a/docs/rd/mpi.rd +++ /dev/null @@ -1,67 +0,0 @@ -# -# This file is only used for documentation. It has no functioning code! -# All of these functions are in the module MPI which is automatically -# 'required' into the mpi_ruby environment. -# - -=begin - -= MPI - -== Description - -The module containing all MPI classes and constants - -== Methods - -=== Informational Methods - ---- MPI.wtime() - - Returns a double precision floating-point number that is the time in seconds - since some arbitrary point of time in the past. The point is guaranteed - not to change during the lifetime of the process. - - C equivalent: (({MPI_Wtime()})) - ---- MPI.wtick() - - Returns a double precision floating-point number that is the time in seconds - between successive ticks of the clock. - - C equivalent: (({MPI_Wtick()})) - ---- MPI.initialized?() - - Returns true if MPI has been initialized. (Note that because of the - runtime system of MPI Ruby, this will always return true.) - - C equivalent: (({MPI_Initialized()})) - ---- MPI.processor_name() - - Returns the processor name of the current processor. - - C equivalent: (({MPI_Get_processor_name()})) - ---- MPI.dims_create(nnodes, dims) - - Returns an array containing cartesian dimensions suitable for use with - MPI::Comm#cart_create(). ((|nnodes|)) is an integer specifying the total - number of processes. The array ((|dims|)) should have length equal to - the desired number of dimensions and should contain integers. If an entry - ((|i|)) in ((|dims|)) is positive, the ((|i|))-th entry in the returned - array will be precisely ((|dims[i]|)). If ((|dims[i]|)) is 0, the - corresponding entry in the returned array will be determined by the - method. A negative entry in ((|dims|)) is incorrect. - - C equivalent: (({MPI_Dims_create()})) - -=== Constants - -((|MPI::UNDEFINED|)) - - An opaque value that is used by various methods to specify that a value is - undefined. - -=end diff --git a/docs/rd/mpi_comm.rd b/docs/rd/mpi_comm.rd deleted file mode 100644 index 2205937..0000000 --- a/docs/rd/mpi_comm.rd +++ /dev/null @@ -1,571 +0,0 @@ -# -# This file is only used for documentation. It has no functioning code! -# All of these functions are in the module MPI which is automatically -# 'required' into the mpi_ruby environment. -# - -=begin - -= MPI::Comm - -== Description - -A wrapper class around MPI communicators - -== Methods - -=== Constructors - ---- MPI::Comm#dup() - - Duplicates the communicator and returns a new communicator. - - C equivalent: (({MPI_Comm_dup()})) - ---- MPI::Comm.create(grp) - - Creates a new communicator from the ((|grp|)) (of type MPI::Group). - - C equivalent: (({MPI_Comm_create()})) - ---- MPI::Comm#split(color, key) - - Splits the receiver into new communicators indicated by ((|color|)). - ((|key|)) is used to determine ordering in the new communicators. - - C equivalent: (({MPI_Comm_split()})) - ---- MPI::Comm#intercomm_create(local_leader, peer, remote_leader, tag) - - Creates a new intercommunicator using the receiver and ((|peer|)). - - C equivalent: (({MPI_Intercomm_create()})) - ---- MPI::Comm#intercomm_merge(high) - - Creates a new intracommunicator from the two communicators of the receiver. - ((|high|)) is used to determine the ranking in the new communicator. - - C equivalent: (({MPI_Intercomm_merge()})) - -==== Topology Constructors - ---- MPI::Comm#cart_create(dims, periods, reorder) - - Creates a new communicator to which cartesian topology information is - attached. ((|dims|)) is an array specifying the number of processes in - each dimension. ((|periods|)) is an array of logical values specifying - whether the grid is periodic or not in each dimension. ((|reorder|)) is - a logical value indicating whether the processes may be reordered in the - new topology. - - C equivalent: (({MPI_Cart_create()})) - ---- MPI::Comm#graph_create(index, edges, reorder) - - Creates a new communicator to which graph topology information is - attached. ((|index|)) is an array in which the ((|i|))-th entry is the - the total number of neighbors of the first ((|i|)) nodes. ((|edges|)) - is a flattened array of the edge lists for nodes 0, 1, ...(({index.length})) - ((|reorder|)) is a logical value indicating whether the processes may - be reordered in the new topology. - - C equivalent: (({MPI_Graph_create()})) - -=== Attributes - ---- MPI::Comm#attr_put(keyval, obj) - - Sets the attribute associated with MPI::Keyval ((|keyval|)) and the - receiver communicator to ((|obj|)). Returns true. - - C equivalent: (({MPI_Attr_put()})) - ---- MPI::Comm#attr_get(keyval) - - Returns the object attribute associated with MPI::Keyval ((|keyval|)) and - the receiver communicator if one exists and nil otherwise. - - C equivalent: (({MPI_Attr_get()})) - ---- MPI::Comm#attr_delete(keyval) - - Deletes the object attribute associated with MPI::Keyval ((|keyval|)) and - the receiver communicator if one exists. Returns true. - - C equivalent: (({MPI_Attr_delete()})) - -=== Informational Methods - ---- MPI::Comm#size() - - Returns the size of the communicator. - - C equivalent: (({MPI_Comm_size()})) - ---- MPI::Comm#rank() - - Returns the rank of the current process within the communicator. - - C equivalent: (({MPI_Comm_rank()})) - ---- MPI::Comm#group() - - Returns a handle to the group of the receiver communicator. - - C equivalent: (({MPI_Comm_group()})) - ---- MPI::Comm#inter?() - - Returns true if the receiver is an intercommunicator. - - C equivalent: (({MPI_Comm_test_inter()})) - ---- MPI::Comm#remote_size() - - Returns the size of the remote communicator of the intercommunicator. - - C equivalent: (({MPI_Comm_remote_size()})) - ---- MPI::Comm#remote_group() - - Returns the remote group communicator of the intercommunicator. - - C equivalent: (({MPI_Comm_remote_group()})) - -==== Topology Specific Information Methods - ---- MPI::Comm#topo_test() - - Returns MPI::Comm.GRAPH if the topology associated with the receiver - communicator is a graph, MPI::Comm.CART if the topology is cartesian, and - MPI::UNDEFINED if there is no associated topology. - - C equivalent: (({MPI_Topo_test()})) - ---- MPI::Comm#graphdims() - - Returns an array of two elements: the first being an integer describing the - number of nodes and the second being an integer describing the number of - edges in the graph topology. - - C equivalent: (({MPI_Graphdims_get()})) - ---- MPI::Comm#graphdims_get() - - An alias for MPI::Comm#graphdims(). - - C equivalent: (({MPI_Graphdims_get()})) - ---- MPI::Comm#graph() - - Returns an array of two elements containing the arrays ((|index|)) and - ((|edges|)) as given to the MPI::Comm#graph_create() method, respectively. - - C equivalent: (({MPI_Graph_get()})) - ---- MPI::Comm#graph_get() - - An alias for MPI::Comm#graph() - - C equivalent: (({MPI_Graph_get()})) - ---- MPI::Comm#cartdim() - - Returns the number of dimensions in the cartesian topology attached to the - receiver. - - C equivalent: (({MPI_Cartdim_get()})) - ---- MPI::Comm#cartdim_get() - - An alias for MPI::Comm#cartdim(). - - C equivalent: (({MPI_Cartdim_get()})) - ---- MPI::Comm#cart() - - Returns an array of 3 elements containing a ((|dims|)) array, ((|periods|)) - array, and ((|coords|)) array as given to cart_create(). - - C equivalent: (({MPI_Cart_get()})) - ---- MPI::Comm#cart_get() - - An alias for MPI::Comm#cart() - - C equivalent: (({MPI_Cart_get()})) - ---- MPI::Comm#cart_rank(coords) - - Returns the rank of the process at the coordinates given in the array - ((|coords|)). - - C equivalent: (({MPI_Cart_rank()})) - ---- MPI::Comm#cart_coords(rank) - - Returns an array of the coordinates of the process specified by ((|rank|)). - - C equivalent: (({MPI_Cart_coords()})) - ---- MPI::Comm#graph_neigbhors_count(rank) - - Returns an integer specifying the number of neighbors of the process - specified by ((|rank|)). - - C equivalent: (({MPI_Graph_neighbors_count()})) - ---- MPI::Comm#graph_neigbhors(rank) - - Returns an array of the ranks of the neighbors of the process specified - by ((|rank|)). - - C equivalent: (({MPI_Graph_neighbors()})) - ---- MPI::Comm#cart_shift(dir, disp) - - Returns an array of two elements containing the rank of the source process - and the rank of the destination process, respectively, as might be used - in MPI::Comm#sendrecv(). ((|dir|)) indicates the direction of the shift - and ((|disp|)) indicates the displacement. - - C equivalent: (({MPI_Cart_shift()})) - ---- MPI::Comm#cart_map(dims, periods) - - Returns an integer specifying the optimal placement for the calling - process on the physical machine. ((|dims|)) and ((|periods|)) are as for - MPI::Comm#cart_create(). - - C equivalent: (({MPI_Cart_map()})) - ---- MPI::Comm#graph_map(index, edges) - - Returns an integer specifying the optimal placement for the calling - process on the physical machine. ((|index|)) and ((|edges|)) are as for - MPI::Comm#graph_create() - - C equivalent: (({MPI_Graph_map()})) - -=== Point-to-Point Communications - ---- MPI::Comm#send(obj, dest, tag) - - Sends object ((|obj|)) to process ((|dest|)) within the communicator with - tag ((|tag|)). Returns true on success. - - C equivalent: (({MPI_Send()})) - ---- MPI::Comm#recv(src, tag) - - Receives an object from process ((|src|)) within the communicator with tag - ((|tag|)). Returns an array of two elements containing the object - received and an MPI::Status object, respectively. - - C equivalent: (({MPI_Recv()})) - ---- MPI::Comm#bsend(obj, dest, tag) - - Sends object ((|obj|)) to process ((|dest|)) within the communicator with - tag ((|tag|)). Buffering is used (see (())). - Returns true on success. - - C equivalent: (({MPI_Bsend()})) - ---- MPI::Comm#ssend(obj, dest, tag) - - Sends object ((|obj|)) to process ((|dest|)) within the communicator with - tag ((|tag|)) synchronously. Returns true on success. - - C equivalent: (({MPI_Ssend()})) - ---- MPI::Comm#rsend(obj, dest, tag) - - Sends object ((|obj|)) to process ((|dest|)) within the communicator with - tag ((|tag|)) with the assumption that the receiver has already begun a - receiving call. - Returns true on success. - - C equivalent: (({MPI_Rsend()})) - ---- MPI::Comm#sendrecv(obj, dest, dtag, src, stag) - - Sends object ((|obj|)) to process ((|dest|)) within the communicator with - tag ((|dtag|)) and simultaneously starts a receive from process ((|src|)) - with tag ((|stag|)). Returns an array of two elements containing the - object received and an MPI::Status object, respectively. - - C equivalent: (({MPI_Sendrecv()})) - -==== Non-blocking Point-to-Point Communications - ---- MPI::Comm#isend(obj, dest, tag) - - Performs a non-blocking send of object ((|obj|)) to process ((|dest|)) - within the communicator with tag ((|tag|)). Returns a new MPI::Request - object. - - C equivalent: (({MPI_Isend()})) - ---- MPI::Comm#irecv(src, tag) - - Performs a non-blocking receive of an object from process ((|src|)) within - the communicator with tag ((|tag|)). Returns a new MPI::Request object. - - C equivalent: (({MPI_Irecv()})) - ---- MPI::Comm#ibsend(obj, dest, tag) - - Performs a non-blocking send of object ((|obj|)) to process ((|dest|)) - within the communicator with tag ((|tag|)). Buffering is used - (see (())). Returns a new MPI::Request - object. - - C equivalent: (({MPI_Ibsend()})) - ---- MPI::Comm#issend(obj, dest, tag) - - Performs a non-blocking, synchronous send of object ((|obj|)) to process - ((|dest|)) within the communicator with tag ((|tag|)) tag ((|tag|)) - syncronously. Returns a new MPI::Request object. - - C equivalent: (({MPI_Issend()})) - ---- MPI::Comm#irsend(obj, dest, tag) - - Performs a non-blocking send of object ((|obj|)) to process ((|dest|)) - within the communicator with tag ((|tag|)) with the assumption that the - receiver has already begun a receiving call. Returns a new MPI::Request - object. - - C equivalent: (({MPI_Irsend()})) - -==== Persistent Communications - ---- MPI::Comm#send_init(obj, dest, tag) - - Sets up a persistent send of object ((|obj|)) to process ((|dest|)) - within the communicator with tag ((|tag|)). Returns a new MPI::Request - object. - - C equivalent: (({MPI_Send_init()})) - ---- MPI::Comm#recv_init(src, tag) - - Sets up a persistent receive of an object from process ((|src|)) within - the communicator with tag ((|tag|)). Returns a new MPI::Request object. - - C equivalent: (({MPI_Recv_init()})) - ---- MPI::Comm#bsend_init(obj, dest, tag) - - Sets up a persistent send of object ((|obj|)) to process ((|dest|)) - within the communicator with tag ((|tag|)). Buffering is used - (see (())). Returns a new MPI::Request - object. - - C equivalent: (({MPI_Bsend_init()})) - ---- MPI::Comm#ssend_init(obj, dest, tag) - - Sets up a persistent, synchronous send of object ((|obj|)) to process - ((|dest|)) within the communicator with tag ((|tag|)) tag ((|tag|)) - syncronously. Returns a new MPI::Request object. - - C equivalent: (({MPI_Ssend_init()})) - ---- MPI::Comm#rsend_init(obj, dest, tag) - - Sets up a persistent send of object ((|obj|)) to process ((|dest|)) - within the communicator with tag ((|tag|)) with the assumption that the - receiver has already begun a receiving call. Returns a new MPI::Request - object. - - C equivalent: (({MPI_Rsend_init()})) - -=== Buffering Methods - ---- MPI::Comm#buffer_for(ary) - - Sets up buffering on the receiver communicator to account for the objects - in the array ((|ary|)). Returns true. - - C equivalent: (({MPI_Buffer_attach()})) - ---- MPI::Comm#unbuffer() - - Removes the buffer associated with the receiver communicator. Returns - true. - - C equivalent: (({MPI_Buffer_detach()})) - -=== Collective Operations - ---- MPI::Comm#barrier() - - Performs a barrier operation on the communicator. - - C equivalent: (({MPI_Barrier()})) - ---- MPI::Comm#bcast(obj, root) - - Broadcasts ((|obj|)) from process ((|root|)) to all other processes. - The value of ((|obj|)) is irrelevant for all processes other than - ((|root|)). Returns a copy of ((|obj|)) all processes other than ((|root|)) - and ((|obj|)) itself on process ((|root|)). - - C equivalent: (({MPI_Bcast})) - ---- MPI::Comm#gather(obj, root) - - Gathers ((|obj|)) from all processes in the communicator into an array - and returns this array at process ((|root|)). Given a rank ((|r|)), the - ((|r|))-th element of the array is a copy of ((|obj|)) on process ((|r|)). - Returns true on all processes other than ((|root|)). - - C equivalent: (({MPI_Gather(), MPI_Gatherv()})) - ---- MPI::Comm#allgather(obj) - - Gathers ((|obj|)) from all processes in the communicator into an array - and returns this array at all processes. Given a rank ((|r|)), the - ((|r|))-th element of the array is a copy of ((|obj|)) on process ((|r|)). - - C equivalent: (({MPI_Allgather(), MPI_Allgatherv()})) - ---- MPI::Comm#scatter(ary, root) - - Scatters the contents of the array ((|ary|)) on the process with rank - ((|root|)) to all processes in the communicator. The array must have - length equal to the number of processes in the communicator. Returns - the ((|i|))-th object in ((|ary|)) at the ((|i|))-th process. - - C equivalent: (({MPI_Scatter()})) - ---- MPI::Comm#alltoall(ary) - - Scatters the contents of the array ((|ary|)) on every process to all - processes in the communicator. The array must have length equal to - the number of processes in the communicator. Returns an array on each - process where the ((|i|))-th object in the array on the ((|j|))-th - process is ((|j|))-th object in ((|ary|)) at the ((|i|))-th process. - - C equivalent: (({MPI_Alltoall()})) - ---- MPI::Comm#reduce(obj, op, root) - - Reduces the object ((|obj|)) given using the MPI::Op ((|op|)) and returns - the result of the reduction on the process with rank ((|root|)). On all - other processes, the method returns true. If ((|obj|)) is an array, it - must have the same length on all processes and the operation is applied - to each object in the array. To perform an operation on an array, pass - an array of the array to which the operation will be applied. - - C equivalent: (({MPI_Reduce()})) - ---- MPI::Comm#allreduce(obj, op) - - Reduces the object ((|obj|)) given using the MPI::Op ((|op|)) and returns - the result of the reduction to all processes. If ((|obj|)) is an array, - it must have the same length on all processes and the operation is applied - to each object in the array. To perform an operation on an array, pass - an array of the array to which the operation will be applied. - - C equivalent: (({MPI_Allreduce()})) - ---- MPI::Comm#scan(obj, op) - - At each process ((|i|)), returns the value of a reduction on processes - 0...((|i|)), inclusively. If ((|obj|)) is an array, it must have the same - length on all processes and the operation is applied to each object in the - array. To perform an operation on an array, pass an array of the array - to which the operation will be applied. - - C equivalent: (({MPI_Scan()})) - ---- MPI::Comm#reduce_scatter(ary, counts, op) - - Performs an element-wise reduction on ((|ary|)) with MPI::Op ((|op|)) - and scatters the result according to the array ((|counts|)). Process 0 - receives an array of the first ((|counts[0]|)) elements of the result of - the reduction, process 1 receives an array of the next ((|counts[1]|)) - elements of the result of the reduction, and so on. ((|ary|)) must have - the same length on all processes and this length must equal the sum of - the values in ((|counts|)). - - C equivalent: (({MPI_Reduce_scatter()})) - -=== Probing - ---- MPI::Comm#probe(src, tag) - - Blocks until a message is available from process ((|src|)) with tag - ((|tag|)). Returns a new MPI::Status object. - - C equivalent: (({MPI_Probe()})) - ---- MPI::Comm#iprobe(src, tag) - - Returns an array of two elements. The first element is a flag which - is true if there is a message from the given source ((|src|)) with the - given ((|tag|)). If the flag is true, then the second element of the - return array is a new MPI::Status object. If the flag is false, the - second element of the return array is to be ignored. - - C equivalent: (({MPI_Iprobe()})) - -=== Comparison - ---- MPI::Comm#==(comm) - - Returns true if the receiver and the given communicator ((|comm|)) are - the same communicator. Returns false otherwise. - - C equivalent: (({MPI_Comm_compare()})) - ---- MPI::Comm#congruent?(comm) - - Returns true if the receiver and the given communicator ((|comm|)) are - precisely congruent. Returns false otherwise. - - C equivalent: (({MPI_Comm_compare()})) - ---- MPI::Comm#similar?(comm) - - Returns true if the receiver and the given communicator ((|comm|)) are - precisely similar. Returns false otherwise. - - C equivalent: (({MPI_Comm_compare()})) - -=== Abortive Methods - ---- MPI::Comm#abort(errorcode) - - Aborts the MPI program with the given error code. - - C equivalent: (({MPI_Abort()})) - -== Constants - -((|MPI::Comm.ANY_TAG|)) - - A value which may be passed to any method expecting a tag. It specifies - that any tag will match in that call. - -((|MPI::Comm.ANY_SOURCE|)) - - A value which may be passed to any method expecting a source rank. It - specifies that any source rank will match in that call. - -== Notes - -The MPI binding to Ruby is intended solely for Single Program, Multiple Data -(SPMD) parallel computations. Thus, none of these communication methods can -be intermixed with MPI programs written in other languages. - -Because of the Multiple Data aspect, sending objects should be viewed as -creating a copy of the original object on the recipient process. There are -no remote method invocation concepts explicitly supported in this binding. - -=end diff --git a/docs/rd/mpi_exception.rd b/docs/rd/mpi_exception.rd deleted file mode 100644 index 3681ccc..0000000 --- a/docs/rd/mpi_exception.rd +++ /dev/null @@ -1,13 +0,0 @@ -# -# This file is only used for documentation. It has no functioning code! -# All of these functions are in the module MPI which is automatically -# 'required' into the mpi_ruby environment. -# - -=begin - -= MPI::Exception - -== Description - -An exception class used for passing back MPI errors diff --git a/docs/rd/mpi_group.rd b/docs/rd/mpi_group.rd deleted file mode 100644 index 9e3d682..0000000 --- a/docs/rd/mpi_group.rd +++ /dev/null @@ -1,127 +0,0 @@ -# -# This file is only used for documentation. It has no functioning code! -# All of these functions are in the module MPI which is automatically -# 'required' into the mpi_ruby environment. -# - -=begin - -= MPI::Group - -== Description - -A wrapper class around MPI groups - -== Methods - -=== Constructors - -=== Informational Methods - ---- MPI::Group#size() - - Returns the size of the group. - - C equivalent: (({MPI_Group_size()})) - ---- MPI::Group#rank() - - Returns the rank of the current process within the communicator. - - C equivalent: (({MPI_Comm_rank()})) - ---- MPI::Group#translate_ranks(ary, grp) - - Translates the group rankings listed in ((|ary|)) for the receiver group - into rankings in ((|grp|)). The new rankings are returned in an array, - ordered respectively to ((|ary|)). If any of the rankings in ((|ary|)) - do not correspond to a ranking in ((|grp|)), the corresponding entry in - the return array is (({MPI::UNDEFINED})). - - C equivalent: (({MPI_Group_translate_ranks()})) - ---- MPI::Group#==(grp) - - Returns true if the receiver and ((|grp|)) are precisely equal. - - C equivalent: (({MPI_Group_compare()})) - ---- MPI::Group#similar?(grp) - - Returns true if the receiver and ((|grp|)) are precisely similar. - - C equivalent: (({MPI_Group_compare()})) - -=== Constructors - ---- MPI::Group#|(grp) - - Returns the union of the receiver group and ((|grp|)). - - C equivalent: (({MPI_Group_union()})) - ---- MPI::Group#union(grp) - - An alias for MPI::Group#|() - - C equivalent: (({MPI_Group_union()})) - ---- MPI::Group#-(grp) - - Returns the difference of the receiver group and ((|grp|)). - - C equivalent: (({MPI_Group_difference()})) - ---- MPI::Group#difference(grp) - - An alias for MPI::Group#-() - - C equivalent: (({MPI_Group_difference()})) - ---- MPI::Group#&(grp) - - Returns the intersection of the receiver group and ((|grp|)). - - C equivalent: (({MPI_Group_intersection()})) - ---- MPI::Group#intersection(grp) - - An alias for MPI::Group#&() - - C equivalent: (({MPI_Group_intersection()})) - ---- MPI::Group#incl(ary) - - Returns a new group with only those ranks listed in ((|ary|)) - - C equivalent: (({MPI_Group_incl()})) - ---- MPI::Group#range_incl(ary) - - Returns a new group with only those ranks in an array of ranges, - ((|ary|)). ((|ary|)) is an array in which each element is an array of - size three, describing a range. The first element of one of these size 3 - arrays is the start of the range, the second element is the end of the - range, and the third element is the stride taken between the range - endpoints. The stride may be negative, but not zero. The ranks must be - distinct. - - C equivalent: (({MPI_Group_range_incl()})) - ---- MPI::Group#excl(ary) - - Returns a new group with only those ranks not listed in ((|ary|)) - - C equivalent: (({MPI_Group_excl()})) - ---- MPI::Group#range_excl(ary) - - Returns a new group with only those ranks not in an array of ranges, - ((|ary|)). ((|ary|)) is an array in which each element is an array of - size three, describing a range. The first element of one of these size 3 - arrays is the start of the range, the second element is the end of the - range, and the third element is the stride taken between the range - endpoints. The stride may be negative, but not zero. The ranks must be - distinct. - - C equivalent: (({MPI_Group_range_excl()})) diff --git a/docs/rd/mpi_keyval.rd b/docs/rd/mpi_keyval.rd deleted file mode 100644 index cfd5d4d..0000000 --- a/docs/rd/mpi_keyval.rd +++ /dev/null @@ -1,27 +0,0 @@ -# -# This file is only used for documentation. It has no functioning code! -# All of these functions are in the module MPI which is automatically -# 'required' into the mpi_ruby environment. -# - -=begin - -= MPI::Keyval - -== Description - -A wrapper class around MPI keyvals - -== Methods - -=== Constructors - ---- MPI::Keyval.create(uniq) - - Returns a new MPI::Keyval. If ((|uniq|)) is true, then the attribute - associated with a keyval will be deleted from the original communicator - to which it was attached when that communicator is duplicated. - If ((|uniq|)) is false, then the attribute will simply be copied to the - new communicator. - - C equivalent: (({MPI_Keyval_create()})) diff --git a/docs/rd/mpi_op.rd b/docs/rd/mpi_op.rd deleted file mode 100644 index 83227b1..0000000 --- a/docs/rd/mpi_op.rd +++ /dev/null @@ -1,25 +0,0 @@ -# -# This file is only used for documentation. It has no functioning code! -# All of these functions are in the module MPI which is automatically -# 'required' into the mpi_ruby environment. -# - -=begin - -= MPI::Op - -== Description - -A wrapper class around MPI operators - -== Methods - -=== Constructors - ---- MPI::Op.create(proc, commute) - - Returns a new MPI::Op based on the Proc object ((|proc|)). ((|proc|)) - must accept two arguments. If ((|commute|)) is true, ((|proc|)) is - considered to be commutative. - - C equivalent: (({MPI_Op_create()})) diff --git a/docs/rd/mpi_request.rd b/docs/rd/mpi_request.rd deleted file mode 100644 index ed1b6fa..0000000 --- a/docs/rd/mpi_request.rd +++ /dev/null @@ -1,134 +0,0 @@ -# -# This file is only used for documentation. It has no functioning code! -# All of these functions are in the module MPI which is automatically -# 'required' into the mpi_ruby environment. -# - -=begin - -= MPI::Request - -== Description - -A wrapper class around MPI requests - -== Methods - -=== Informational Methods - ---- MPI::Request#null?() - Returns true if the request is null. - - C equivalent: (({request == MPI_REQUEST_NULL})) - -=== Wait Methods - ---- MPI::Request#wait() - Waits until the operation identified by the receiver request is complete. - If the communication object associated with this request was created by a - nonblocking send or receive call, then the request becomes null. - Returns an MPI::Status object. - - C equivalent: (({MPI_Wait()})) - ---- MPI::Request.waitany(ary) - Waits until any of the operations identified by the requests in the - array of requests ((|ary|)) is complete. If the communication object - associated with this request was created by a nonblocking send or - receive call, then the request becomes null. Returns an array of - two elements containing the index of the completed request and an - MPI::Status object, respectively. - - C equivalent: (({MPI_Waitany()})) - ---- MPI::Request.waitall(ary) - Waits until all of the operations identified by the requests in the - array of requests ((|ary|)) are complete. If the communication object - associated with any of these requests was created by a nonblocking send or - receive call, then those requests become null. Returns an array of - MPI::Status objects for each request in ((|ary|)). The status of a - request is at the same index in the return array as the request index - in ((|ary|)). - - C equivalent: (({MPI_Waitall()})) - ---- MPI::Request.waitsome(ary) - Waits until at least one of the operations identified by the requests in - the array of requests ((|ary|)) are complete. If the communication object - associated with any of these requests was created by a nonblocking send or - receive call, then those requests become null. Returns an array of two - elements containing an array of the completed requests and an array of - MPI::Status objects for each completed request, respectively. The status - of a request is at the same index in the return status array as the - request index in the return request array. - - C equivalent: (({MPI_Waitsome()})) - -=== Test Methods - ---- MPI::Request#test() - Tests if the operation identified by request is complete. If the - communication object associated with this request was created by a - nonblocking send or receive call, then the request becomes null. - Returns an array of two elements containing a flag (true or false, - as the result of the test), and an MPI::Status object, respectively. - The status object should be ignored if the flag is false. - - C equivalent: (({MPI_Test()})) - ---- MPI::Request.testany(ary) - Tests if any of the operations identified by the requests in the - array of requests ((|ary|)) is complete. If the communication object - associated with this request was created by a nonblocking send or - receive call, then the request becomes null. Returns an array of - three elements containing a flag (true or false, depending on whether - any of the requests were completed), the index of the completed request, - and an MPI::Status object, respectively. The last two array elements - should be ignored if the flag is false. - - C equivalent: (({MPI_Testany()})) - ---- MPI::Request.testall(ary) - Tests if all of the operations identified by the requests in the - array of requests ((|ary|)) are complete. If the communication object - associated with any of these requests was created by a nonblocking send or - receive call, then those requests become null. Returns an array of - two elements containing a flag (true or false, depending on whether - all of the requests were completed) and an array of MPI::Status objects - for each request in ((|ary|)), respectively. The status of a request is - at the same index in the return array as the request index in ((|ary|)). - The status array should be ignored if the flag is false. - - C equivalent: (({MPI_Testall()})) - ---- MPI::Request.testsome(ary) - Equivalent to (({MPI::Request#waitsome(ary)})) except that - (({MPI::Request#testsome(ary)})) does not block. - - C equivalent: (({MPI_Testsome()})) - -=== Initiation and Cancellation - ---- MPI::Request#cancel() - Cancels the request. Returns true. - - C equivalent: (({MPI_Cancel()})) - ---- MPI::Request#start() - Starts a request. Returns true. - - C equivalent: (({MPI_Start()})) - ---- MPI::Request.startall(ary) - Starts all the requests in the array of requests ((|ary|)). Returns true. - - C equivalent: (({MPI_Startall()})) - -=== Accessors - ---- MPI::Request#object - Returns the object associated with the request. - - C equivalent: Accessing the buffer given in the creation of the request. - -=end diff --git a/docs/rd/mpi_status.rd b/docs/rd/mpi_status.rd deleted file mode 100644 index 8c5b36d..0000000 --- a/docs/rd/mpi_status.rd +++ /dev/null @@ -1,37 +0,0 @@ -# -# This file is only used for documentation. It has no functioning code! -# All of these functions are in the module MPI which is automatically -# 'required' into the mpi_ruby environment. -# - -=begin - -= MPI::Status - -== Description - -A wrapper class around MPI status - -== Methods - -=== Informational Methods - ---- MPI::Status#source() - - Returns the source of the message to which the status object refers. - - C equivalent: (({status.MPI_STATUS})) - ---- MPI::Status#tag() - - Returns the tag of the message to which the status object refers. - - C equivalent: (({status.MPI_TAG})) - ---- MPI::Status#cancelled?() - - Returns whether or not the message to which the status object refers was - cancelled. - - C equivalent: (({MPI_Test_cancelled()})) - diff --git a/examples/Makefile.am b/examples/Makefile.am deleted file mode 100644 index b2ced39..0000000 --- a/examples/Makefile.am +++ /dev/null @@ -1,2 +0,0 @@ -AUTOMAKE_OPTIONS = foreign dist-shar dist-tarZ dist-zip dist-bzip2 -EXTRA_DIST = allgather.rb allreduce.rb basic.rb bcast.rb gather.rb hello.rb irecv.rb reduce.rb rpi.rb red.rb redsubmit.rb redhalt.rb op.rb diff --git a/examples/Makefile.in b/examples/Makefile.in deleted file mode 100644 index 640f9e5..0000000 --- a/examples/Makefile.in +++ /dev/null @@ -1,204 +0,0 @@ -# Makefile.in generated automatically by automake 1.4g from Makefile.am. - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_HEADER = $(INSTALL_DATA) -transform = @program_transform_name@ -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_alias = @build_alias@ -build_triplet = @build@ -host_alias = @host_alias@ -host_triplet = @host@ -target_alias = @target_alias@ -target_triplet = @target@ -AMTAR = @AMTAR@ -AWK = @AWK@ -CC = @CC@ -DEPDIR = @DEPDIR@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -MAX_OPS = @MAX_OPS@ -MPICC_PATH = @MPICC_PATH@ -PACKAGE = @PACKAGE@ -RB_ARCH_DIR = @RB_ARCH_DIR@ -RB_INCLUDE_DIR = @RB_INCLUDE_DIR@ -RB_LIB_DIR = @RB_LIB_DIR@ -RUBY = @RUBY@ -RUBY_CFLAGS = @RUBY_CFLAGS@ -RUBY_LIBS = @RUBY_LIBS@ -VERSION = @VERSION@ -_am_include = @_am_include@ -_am_quote = @_am_quote@ -install_sh = @install_sh@ - -AUTOMAKE_OPTIONS = foreign dist-shar dist-tarZ dist-zip dist-bzip2 -EXTRA_DIST = allgather.rb allreduce.rb basic.rb bcast.rb gather.rb hello.rb irecv.rb reduce.rb rpi.rb red.rb redsubmit.rb redhalt.rb op.rb -EXEEXT = -OBJEXT = o -subdir = examples -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -DIST_SOURCES = -DIST_COMMON = Makefile.am Makefile.in -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign examples/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && \ - CONFIG_HEADERS= CONFIG_LINKS= \ - CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status -uninstall-info-am: -tags: TAGS -TAGS: - - -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = .. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - if test -f $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - $(mkinstalldirs) "$(distdir)/$$dir"; \ - fi; \ - if test -d $$d/$$file; then \ - cp -pR $$d/$$file $(distdir) \ - || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile - -installdirs: - -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-am - -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic - -uninstall-am: uninstall-info-am - -.PHONY: all all-am check check-am clean clean-generic distclean \ - distclean-generic distdir dvi dvi-am info info-am install \ - install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am install-man \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic uninstall uninstall-am uninstall-info-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/examples/allgather.rb b/examples/allgather.rb deleted file mode 100644 index 1eb5906..0000000 --- a/examples/allgather.rb +++ /dev/null @@ -1,6 +0,0 @@ -hello = "Hello, I'm #{MPI::Comm::WORLD.rank()}" - -ary = MPI::Comm::WORLD.allgather(hello) -ary.each_with_index do |msg, i| - print "#{MPI::Comm::WORLD.rank()}: #{i} said '#{msg}'\n" -end diff --git a/examples/allreduce.rb b/examples/allreduce.rb deleted file mode 100644 index c10842d..0000000 --- a/examples/allreduce.rb +++ /dev/null @@ -1,5 +0,0 @@ -printf("Hello, I am %d of %d\n", MPI::Comm::WORLD.rank(), MPI::Comm::WORLD.size()) - -$rank = MPI::Comm::WORLD.rank() -$sum = MPI::Comm::WORLD.allreduce($rank, MPI::Op::SUM) -puts "sum of the ranks = #{$sum}" diff --git a/examples/basic.rb b/examples/basic.rb deleted file mode 100644 index 1d7b8ba..0000000 --- a/examples/basic.rb +++ /dev/null @@ -1,12 +0,0 @@ -myrank = MPI::Comm::WORLD.rank() -csize = MPI::Comm::WORLD.size() - -if myrank % 2 == 0 then - if myrank + 1 != csize then - hello = "Hello, I'm #{myrank}, you must be #{myrank+1}" - MPI::Comm::WORLD.send(hello, myrank + 1, 0) - end -else - msg, status = MPI::Comm::WORLD.recv(myrank - 1, 0) - puts "I'm #{myrank} and this message came from #{status.source} with tag #{status.tag}: '#{msg}'" -end diff --git a/examples/bcast.rb b/examples/bcast.rb deleted file mode 100644 index 12aa45d..0000000 --- a/examples/bcast.rb +++ /dev/null @@ -1,14 +0,0 @@ -printf("Hello, I am %d of %d\n", MPI::Comm::WORLD.rank(), MPI::Comm::WORLD.size()) - -hello = "Hello" - -case MPI::Comm::WORLD.rank() - when 0 - printf("I'm 0 and I'm sending this message: '%s'\n", hello) - MPI::Comm::WORLD.bcast(hello, 0) - else - msg = MPI::Comm::WORLD.bcast(nil, 0) - printf("I'm %d and I got this message: '%s'\n", MPI::Comm::WORLD.rank(), - msg) -end - diff --git a/examples/gather.rb b/examples/gather.rb deleted file mode 100644 index 185a9e7..0000000 --- a/examples/gather.rb +++ /dev/null @@ -1,12 +0,0 @@ -hello = "Hello" - -case MPI::Comm::WORLD.rank() - when 0 - ary = MPI::Comm::WORLD.gather(hello, 0) - ary.each_with_index do |msg, i| - print "#{i} said: '#{msg}'\n" - end - else - hello += ", I'm #{MPI::Comm::WORLD.rank()}" - MPI::Comm::WORLD.gather(hello, 0) -end diff --git a/examples/hello.rb b/examples/hello.rb deleted file mode 100644 index fd24f36..0000000 --- a/examples/hello.rb +++ /dev/null @@ -1 +0,0 @@ -printf("Hello, I am %d of %d\n", MPI::Comm::WORLD.rank(), MPI::Comm::WORLD.size()) diff --git a/examples/irecv.rb b/examples/irecv.rb deleted file mode 100644 index 954705a..0000000 --- a/examples/irecv.rb +++ /dev/null @@ -1,21 +0,0 @@ -hello = "Hello" - -case MPI::Comm::WORLD.rank() - when 0 - printf("I'm 0 and I'm sending this message: '%s'\n", hello) - MPI::Comm::WORLD.send(hello, 1, 0) - when 1 - req = MPI::Comm::WORLD.irecv(0, 0) - printf("I'm 1 and I started a receive...\n") - printf("Now I'm going to sleep for 2 seconds\n") - sleep 2 - printf("Let's see if the message is ready...") - testval = req.test - if (testval[0] == true) - printf("yes\n") - else - printf("no\n") - end - req.wait - printf("Ok, it's here: '%s'\n", req.object) -end diff --git a/examples/op.rb b/examples/op.rb deleted file mode 100644 index f726769..0000000 --- a/examples/op.rb +++ /dev/null @@ -1,23 +0,0 @@ -# User-defined operation example - -$union = MPI::Op.create(Proc.new {|a, b| a | b}, true) - -$rank = MPI::Comm::WORLD.rank -# Note that since we are passing an array in to be reduced, the allreduce -# assumes that we intend to give a list of things to be reduced, so this -# must be done by an array of an array of 1 element -$rankary = [[$rank]] - -$rankary = MPI::Comm::WORLD.allreduce($rankary, $union) - -class Array - def to_s - s = "[" - self.each { |e| - s += e.to_s + ", " - } - s = s[0...-2] - s += "]" - end -end -puts "#{$rank}: #{$rankary}" diff --git a/examples/red.rb b/examples/red.rb deleted file mode 100644 index fba049c..0000000 --- a/examples/red.rb +++ /dev/null @@ -1,57 +0,0 @@ -# The Ruby Execution Daemon (red) for MPI Programs -# Original idea by Rob Ross - -require "socket" - -MAXPACKET = 100 -$rank = MPI::Comm::WORLD.rank - -if ($rank == 0) - sockname = "/tmp/red.#{`whoami`.strip}" - begin - sock = UNIXServer.new(sockname) - rescue Errno::EADDRINUSE - puts "Error: Socket #{sockname} already in use!" - MPI::Comm::WORLD.abort - end - while true do - cxn = sock.accept - code = "" - while packet = cxn.recv(MAXPACKET) do - code += packet - if packet.length < MAXPACKET then - break - end - end - cxn.close - - MPI::Comm::WORLD.bcast(code, 0) - - if code == "shutdown" then - File.delete(sockname) - exit 0 - end - - # Create a new module to sandbox off the namespace - mod = Module.new - mod.module_eval code - - # Clean up after every job - GC.start - end -else - while true do - code = MPI::Comm::WORLD.bcast(nil, 0) - - if code == "shutdown" then - exit 0 - end - - # Create a new module to sandbox off the namespace - mod = Module.new - mod.module_eval code - - # Clean up after every job - GC.start - end -end diff --git a/examples/redhalt.rb b/examples/redhalt.rb deleted file mode 100644 index add6c10..0000000 --- a/examples/redhalt.rb +++ /dev/null @@ -1,8 +0,0 @@ -# Ruby Execution Daemon (red) for MPI Programs shutdown program -# Original idea by Rob Ross - -require "socket" - -sock = UNIXSocket.open("/tmp/red.#{`whoami`.strip}") - -sock.send("shutdown", 0) diff --git a/examples/redsubmit.rb b/examples/redsubmit.rb deleted file mode 100644 index 56c3dfb..0000000 --- a/examples/redsubmit.rb +++ /dev/null @@ -1,14 +0,0 @@ -# Ruby Execution Daemon (red) for MPI Programs submitter -# Original idea by Rob Ross - -if ARGV.length < 1 then - puts "usage: ruby redsubmit.rb [ ...]" -end - -require "socket" - -sock = UNIXSocket.open("/tmp/red.#{`whoami`.strip}") - -ARGV.each { |script| - sock.send(File.new(script).read, 0) -} diff --git a/examples/reduce.rb b/examples/reduce.rb deleted file mode 100644 index dec30f6..0000000 --- a/examples/reduce.rb +++ /dev/null @@ -1,7 +0,0 @@ -printf("Hello, I am %d of %d\n", MPI::Comm::WORLD.rank(), MPI::Comm::WORLD.size()) - -$rank = MPI::Comm::WORLD.rank() -$sum = MPI::Comm::WORLD.reduce($rank, MPI::Op::SUM, 0) -if $rank == 0 - puts "sum of the ranks = #{$sum}" -end diff --git a/examples/rpi.rb b/examples/rpi.rb deleted file mode 100644 index b8177e2..0000000 --- a/examples/rpi.rb +++ /dev/null @@ -1,24 +0,0 @@ -# Parallel computation of pi in Ruby - -PI25DT = 3.141592653589793238462643 -NINTERVALS = 10000 - -$rank = MPI::Comm::WORLD.rank() -$size = MPI::Comm::WORLD.size() - -$startwtime = MPI.wtime() -$h = 1.0 / NINTERVALS -$sum = 0.0 -($rank + 1).step(NINTERVALS, $size) do |i| - x = $h * (i - 0.5) - $sum += (4.0 / (1.0 + x**2)) -end -mypi = $h * $sum - -$pi = MPI::Comm::WORLD.reduce(mypi, MPI::Op::SUM, 0) - -if $rank == 0 then - printf "pi is ~= %.16f, error = %.16f\n", $pi, ($pi - PI25DT).abs - $endwtime = MPI.wtime() - puts "wallclock time = #{$endwtime-$startwtime}" -end diff --git a/install-sh b/install-sh deleted file mode 100755 index e9de238..0000000 --- a/install-sh +++ /dev/null @@ -1,251 +0,0 @@ -#!/bin/sh -# -# install - install a program, script, or datafile -# This comes from X11R5 (mit/util/scripts/install.sh). -# -# Copyright 1991 by the Massachusetts Institute of Technology -# -# Permission to use, copy, modify, distribute, and sell this software and its -# documentation for any purpose is hereby granted without fee, provided that -# the above copyright notice appear in all copies and that both that -# copyright notice and this permission notice appear in supporting -# documentation, and that the name of M.I.T. not be used in advertising or -# publicity pertaining to distribution of the software without specific, -# written prior permission. M.I.T. makes no representations about the -# suitability of this software for any purpose. It is provided "as is" -# without express or implied warranty. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. It can only install one file at a time, a restriction -# shared with many OS's install programs. - - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" - - -# put in absolute paths if you don't have them in your path; or use env. vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -transformbasename="" -transform_arg="" -instcmd="$mvprog" -chmodcmd="$chmodprog 0755" -chowncmd="" -chgrpcmd="" -stripcmd="" -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src="" -dst="" -dir_arg="" - -while [ x"$1" != x ]; do - case $1 in - -c) instcmd="$cpprog" - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd="$stripprog" - shift - continue;; - - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; - - *) if [ x"$src" = x ] - then - src=$1 - else - # this colon is to work around a 386BSD /bin/sh bug - : - dst=$1 - fi - shift - continue;; - esac -done - -if [ x"$src" = x ] -then - echo "install: no input file specified" - exit 1 -else - true -fi - -if [ x"$dir_arg" != x ]; then - dst=$src - src="" - - if [ -d $dst ]; then - instcmd=: - chmodcmd="" - else - instcmd=mkdir - fi -else - -# Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. - - if [ -f $src -o -d $src ] - then - true - else - echo "install: $src does not exist" - exit 1 - fi - - if [ x"$dst" = x ] - then - echo "install: no destination specified" - exit 1 - else - true - fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - - if [ -d $dst ] - then - dst="$dst"/`basename $src` - else - true - fi -fi - -## this sed command emulates the dirname command -dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script - -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS=' -' -IFS="${IFS-${defaultIFS}}" - -oIFS="${IFS}" -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS="${oIFS}" - -pathcomp='' - -while [ $# -ne 0 ] ; do - pathcomp="${pathcomp}${1}" - shift - - if [ ! -d "${pathcomp}" ] ; - then - $mkdirprog "${pathcomp}" - else - true - fi - - pathcomp="${pathcomp}/" -done -fi - -if [ x"$dir_arg" != x ] -then - $doit $instcmd $dst && - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi -else - -# If we're going to rename the final executable, determine the name now. - - if [ x"$transformarg" = x ] - then - dstfile=`basename $dst` - else - dstfile=`basename $dst $transformbasename | - sed $transformarg`$transformbasename - fi - -# don't allow the sed command to completely eliminate the filename - - if [ x"$dstfile" = x ] - then - dstfile=`basename $dst` - else - true - fi - -# Make a temp file name in the proper directory. - - dsttmp=$dstdir/#inst.$$# - -# Move or copy the file name to the temp name - - $doit $instcmd $src $dsttmp && - - trap "rm -f ${dsttmp}" 0 && - -# and set any options; do chmod last to preserve setuid bits - -# If any of these fail, we abort the whole thing. If we want to -# ignore errors from any of these, just make sure not to ignore -# errors from the above "$doit $instcmd $src $dsttmp" command. - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && - -# Now rename the file to the real destination. - - $doit $rmcmd -f $dstdir/$dstfile && - $doit $mvcmd $dsttmp $dstdir/$dstfile - -fi && - - -exit 0 diff --git a/missing b/missing deleted file mode 100755 index 5f9da90..0000000 --- a/missing +++ /dev/null @@ -1,265 +0,0 @@ -#! /bin/sh -# Common stub for a few missing GNU programs while installing. -# Copyright 1996, 1997, 1999, 2000 Free Software Foundation, Inc. -# Originally by Fran,cois Pinard , 1996. - -# 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., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 -fi - -run=: - -case "$1" in ---run) - # Try to run requested program, and just exit if it succeeds. - run= - shift - "$@" && exit 0 - ;; -esac - -# If it does not exist, or fails to run (possibly an outdated version), -# try to emulate it. -case "$1" in - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - --run try to run the given command, and emulate it if it fails - -Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - help2man touch the output file - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags - yacc create \`y.tab.[ch]', if possible, from existing .[ch]" - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing 0.3 - GNU automake" - ;; - - -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 - ;; - - aclocal) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`acinclude.m4' or \`configure.in'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`configure.in'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`acconfig.h' or \`configure.in'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case "$f" in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; - - automake) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; - - bison|yacc) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if [ ! -f y.tab.h ]; then - echo >y.tab.h - fi - if [ ! -f y.tab.c ]; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex|flex) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if [ ! -f lex.yy.c ]; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - help2man) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a dependency of a manual page. You may need the - \`Help2man' package in order for those modifications to take - effect. You can get \`Help2man' from any GNU archive site." - - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` - fi - if [ -f "$file" ]; then - touch $file - else - test -z "$file" || exec >$file - echo ".ab help2man is required to generate this page" - exit 1 - fi - ;; - - makeinfo) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` - fi - touch $file - ;; - - tar) - shift - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - fi - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar ${1+"$@"} && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar ${1+"$@"} && exit 0 - fi - firstarg="$1" - if shift; then - case "$firstarg" in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" ${1+"$@"} && exit 0 - ;; - esac - case "$firstarg" in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" ${1+"$@"} && exit 0 - ;; - esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - - *) - echo 1>&2 "\ -WARNING: \`$1' is needed, and you do not seem to have it handy on your - system. You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequirements for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." - exit 1 - ;; -esac - -exit 0 diff --git a/mkinstalldirs b/mkinstalldirs deleted file mode 100755 index 7f06129..0000000 --- a/mkinstalldirs +++ /dev/null @@ -1,40 +0,0 @@ -#! /bin/sh -# mkinstalldirs --- make directory hierarchy -# Author: Noah Friedman -# Created: 1993-05-16 -# Public domain - -# $Id: mkinstalldirs,v 1.1.1.1 2001/07/20 16:14:50 onge Exp $ - -errstatus=0 - -for file -do - set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` - shift - - pathcomp= - for d - do - pathcomp="$pathcomp$d" - case "$pathcomp" in - -* ) pathcomp=./$pathcomp ;; - esac - - if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" - - mkdir "$pathcomp" || lasterr=$? - - if test ! -d "$pathcomp"; then - errstatus=$lasterr - fi - fi - - pathcomp="$pathcomp/" - done -done - -exit $errstatus - -# mkinstalldirs ends here diff --git a/src/.deps/main.Po b/src/.deps/main.Po deleted file mode 100644 index aa0f7e3..0000000 --- a/src/.deps/main.Po +++ /dev/null @@ -1,146 +0,0 @@ -main.o: main.c /usr/include/mpi.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/ruby.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/config.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/defines.h \ - /usr/include/stdlib.h /usr/include/available.h /usr/include/_types.h \ - /usr/include/sys/_types.h /usr/include/sys/cdefs.h \ - /usr/include/machine/_types.h /usr/include/i386/_types.h \ - /usr/include/sys/wait.h /usr/include/sys/signal.h \ - /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \ - /usr/include/i386/signal.h /usr/include/i386/_structs.h \ - /usr/include/sys/_structs.h /usr/include/machine/_structs.h \ - /usr/include/mach/i386/_structs.h /usr/include/sys/resource.h \ - /usr/include/machine/endian.h /usr/include/i386/endian.h \ - /usr/include/sys/_endian.h /usr/include/libkern/_OSByteOrder.h \ - /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \ - /usr/include/machine/types.h /usr/include/i386/types.h \ - /usr/include/string.h /usr/include/stdio.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \ - /usr/include/limits.h /usr/include/machine/limits.h \ - /usr/include/i386/limits.h /usr/include/i386/_limits.h \ - /usr/include/sys/syslimits.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/missing.h \ - /usr/include/sys/time.h /usr/include/time.h /usr/include/_structs.h \ - /usr/include/sys/_select.h /usr/include/sys/types.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/intern.h \ - /usr/include/pthread.h /usr/include/pthread_impl.h /usr/include/sched.h \ - /usr/include/signal.h global.h mpi_comm.h mpi_group.h mpi_keyval.h \ - mpi_request.h mpi_status.h mpi_op.h mpi_exception.h - -/usr/include/mpi.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/ruby.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/config.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/defines.h: - -/usr/include/stdlib.h: - -/usr/include/available.h: - -/usr/include/_types.h: - -/usr/include/sys/_types.h: - -/usr/include/sys/cdefs.h: - -/usr/include/machine/_types.h: - -/usr/include/i386/_types.h: - -/usr/include/sys/wait.h: - -/usr/include/sys/signal.h: - -/usr/include/sys/appleapiopts.h: - -/usr/include/machine/signal.h: - -/usr/include/i386/signal.h: - -/usr/include/i386/_structs.h: - -/usr/include/sys/_structs.h: - -/usr/include/machine/_structs.h: - -/usr/include/mach/i386/_structs.h: - -/usr/include/sys/resource.h: - -/usr/include/machine/endian.h: - -/usr/include/i386/endian.h: - -/usr/include/sys/_endian.h: - -/usr/include/libkern/_OSByteOrder.h: - -/usr/include/libkern/i386/_OSByteOrder.h: - -/usr/include/alloca.h: - -/usr/include/machine/types.h: - -/usr/include/i386/types.h: - -/usr/include/string.h: - -/usr/include/stdio.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h: - -/usr/include/limits.h: - -/usr/include/machine/limits.h: - -/usr/include/i386/limits.h: - -/usr/include/i386/_limits.h: - -/usr/include/sys/syslimits.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/missing.h: - -/usr/include/sys/time.h: - -/usr/include/time.h: - -/usr/include/_structs.h: - -/usr/include/sys/_select.h: - -/usr/include/sys/types.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/intern.h: - -/usr/include/pthread.h: - -/usr/include/pthread_impl.h: - -/usr/include/sched.h: - -/usr/include/signal.h: - -global.h: - -mpi_comm.h: - -mpi_group.h: - -mpi_keyval.h: - -mpi_request.h: - -mpi_status.h: - -mpi_op.h: - -mpi_exception.h: diff --git a/src/.deps/mpi.Po b/src/.deps/mpi.Po deleted file mode 100644 index e470fcb..0000000 --- a/src/.deps/mpi.Po +++ /dev/null @@ -1,144 +0,0 @@ -mpi.o: mpi.c /usr/include/mpi.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/ruby.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/config.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/defines.h \ - /usr/include/stdlib.h /usr/include/available.h /usr/include/_types.h \ - /usr/include/sys/_types.h /usr/include/sys/cdefs.h \ - /usr/include/machine/_types.h /usr/include/i386/_types.h \ - /usr/include/sys/wait.h /usr/include/sys/signal.h \ - /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \ - /usr/include/i386/signal.h /usr/include/i386/_structs.h \ - /usr/include/sys/_structs.h /usr/include/machine/_structs.h \ - /usr/include/mach/i386/_structs.h /usr/include/sys/resource.h \ - /usr/include/machine/endian.h /usr/include/i386/endian.h \ - /usr/include/sys/_endian.h /usr/include/libkern/_OSByteOrder.h \ - /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \ - /usr/include/machine/types.h /usr/include/i386/types.h \ - /usr/include/string.h /usr/include/stdio.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \ - /usr/include/limits.h /usr/include/machine/limits.h \ - /usr/include/i386/limits.h /usr/include/i386/_limits.h \ - /usr/include/sys/syslimits.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/missing.h \ - /usr/include/sys/time.h /usr/include/time.h /usr/include/_structs.h \ - /usr/include/sys/_select.h /usr/include/sys/types.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/intern.h \ - /usr/include/pthread.h /usr/include/pthread_impl.h /usr/include/sched.h \ - global.h mpi_comm.h mpi_group.h mpi_keyval.h mpi_request.h mpi_status.h \ - mpi_op.h mpi_exception.h - -/usr/include/mpi.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/ruby.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/config.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/defines.h: - -/usr/include/stdlib.h: - -/usr/include/available.h: - -/usr/include/_types.h: - -/usr/include/sys/_types.h: - -/usr/include/sys/cdefs.h: - -/usr/include/machine/_types.h: - -/usr/include/i386/_types.h: - -/usr/include/sys/wait.h: - -/usr/include/sys/signal.h: - -/usr/include/sys/appleapiopts.h: - -/usr/include/machine/signal.h: - -/usr/include/i386/signal.h: - -/usr/include/i386/_structs.h: - -/usr/include/sys/_structs.h: - -/usr/include/machine/_structs.h: - -/usr/include/mach/i386/_structs.h: - -/usr/include/sys/resource.h: - -/usr/include/machine/endian.h: - -/usr/include/i386/endian.h: - -/usr/include/sys/_endian.h: - -/usr/include/libkern/_OSByteOrder.h: - -/usr/include/libkern/i386/_OSByteOrder.h: - -/usr/include/alloca.h: - -/usr/include/machine/types.h: - -/usr/include/i386/types.h: - -/usr/include/string.h: - -/usr/include/stdio.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h: - -/usr/include/limits.h: - -/usr/include/machine/limits.h: - -/usr/include/i386/limits.h: - -/usr/include/i386/_limits.h: - -/usr/include/sys/syslimits.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/missing.h: - -/usr/include/sys/time.h: - -/usr/include/time.h: - -/usr/include/_structs.h: - -/usr/include/sys/_select.h: - -/usr/include/sys/types.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/intern.h: - -/usr/include/pthread.h: - -/usr/include/pthread_impl.h: - -/usr/include/sched.h: - -global.h: - -mpi_comm.h: - -mpi_group.h: - -mpi_keyval.h: - -mpi_request.h: - -mpi_status.h: - -mpi_op.h: - -mpi_exception.h: diff --git a/src/.deps/mpi_comm.Po b/src/.deps/mpi_comm.Po deleted file mode 100644 index 759bf9d..0000000 --- a/src/.deps/mpi_comm.Po +++ /dev/null @@ -1,144 +0,0 @@ -mpi_comm.o: mpi_comm.c /usr/include/mpi.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/ruby.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/config.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/defines.h \ - /usr/include/stdlib.h /usr/include/available.h /usr/include/_types.h \ - /usr/include/sys/_types.h /usr/include/sys/cdefs.h \ - /usr/include/machine/_types.h /usr/include/i386/_types.h \ - /usr/include/sys/wait.h /usr/include/sys/signal.h \ - /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \ - /usr/include/i386/signal.h /usr/include/i386/_structs.h \ - /usr/include/sys/_structs.h /usr/include/machine/_structs.h \ - /usr/include/mach/i386/_structs.h /usr/include/sys/resource.h \ - /usr/include/machine/endian.h /usr/include/i386/endian.h \ - /usr/include/sys/_endian.h /usr/include/libkern/_OSByteOrder.h \ - /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \ - /usr/include/machine/types.h /usr/include/i386/types.h \ - /usr/include/string.h /usr/include/stdio.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \ - /usr/include/limits.h /usr/include/machine/limits.h \ - /usr/include/i386/limits.h /usr/include/i386/_limits.h \ - /usr/include/sys/syslimits.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/missing.h \ - /usr/include/sys/time.h /usr/include/time.h /usr/include/_structs.h \ - /usr/include/sys/_select.h /usr/include/sys/types.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/intern.h \ - /usr/include/pthread.h /usr/include/pthread_impl.h /usr/include/sched.h \ - global.h mpi_comm.h mpi_group.h mpi_keyval.h mpi_request.h mpi_status.h \ - mpi_op.h mpi_exception.h - -/usr/include/mpi.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/ruby.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/config.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/defines.h: - -/usr/include/stdlib.h: - -/usr/include/available.h: - -/usr/include/_types.h: - -/usr/include/sys/_types.h: - -/usr/include/sys/cdefs.h: - -/usr/include/machine/_types.h: - -/usr/include/i386/_types.h: - -/usr/include/sys/wait.h: - -/usr/include/sys/signal.h: - -/usr/include/sys/appleapiopts.h: - -/usr/include/machine/signal.h: - -/usr/include/i386/signal.h: - -/usr/include/i386/_structs.h: - -/usr/include/sys/_structs.h: - -/usr/include/machine/_structs.h: - -/usr/include/mach/i386/_structs.h: - -/usr/include/sys/resource.h: - -/usr/include/machine/endian.h: - -/usr/include/i386/endian.h: - -/usr/include/sys/_endian.h: - -/usr/include/libkern/_OSByteOrder.h: - -/usr/include/libkern/i386/_OSByteOrder.h: - -/usr/include/alloca.h: - -/usr/include/machine/types.h: - -/usr/include/i386/types.h: - -/usr/include/string.h: - -/usr/include/stdio.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h: - -/usr/include/limits.h: - -/usr/include/machine/limits.h: - -/usr/include/i386/limits.h: - -/usr/include/i386/_limits.h: - -/usr/include/sys/syslimits.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/missing.h: - -/usr/include/sys/time.h: - -/usr/include/time.h: - -/usr/include/_structs.h: - -/usr/include/sys/_select.h: - -/usr/include/sys/types.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/intern.h: - -/usr/include/pthread.h: - -/usr/include/pthread_impl.h: - -/usr/include/sched.h: - -global.h: - -mpi_comm.h: - -mpi_group.h: - -mpi_keyval.h: - -mpi_request.h: - -mpi_status.h: - -mpi_op.h: - -mpi_exception.h: diff --git a/src/.deps/mpi_exception.Po b/src/.deps/mpi_exception.Po deleted file mode 100644 index 15ef8b6..0000000 --- a/src/.deps/mpi_exception.Po +++ /dev/null @@ -1,144 +0,0 @@ -mpi_exception.o: mpi_exception.c /usr/include/mpi.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/ruby.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/config.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/defines.h \ - /usr/include/stdlib.h /usr/include/available.h /usr/include/_types.h \ - /usr/include/sys/_types.h /usr/include/sys/cdefs.h \ - /usr/include/machine/_types.h /usr/include/i386/_types.h \ - /usr/include/sys/wait.h /usr/include/sys/signal.h \ - /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \ - /usr/include/i386/signal.h /usr/include/i386/_structs.h \ - /usr/include/sys/_structs.h /usr/include/machine/_structs.h \ - /usr/include/mach/i386/_structs.h /usr/include/sys/resource.h \ - /usr/include/machine/endian.h /usr/include/i386/endian.h \ - /usr/include/sys/_endian.h /usr/include/libkern/_OSByteOrder.h \ - /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \ - /usr/include/machine/types.h /usr/include/i386/types.h \ - /usr/include/string.h /usr/include/stdio.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \ - /usr/include/limits.h /usr/include/machine/limits.h \ - /usr/include/i386/limits.h /usr/include/i386/_limits.h \ - /usr/include/sys/syslimits.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/missing.h \ - /usr/include/sys/time.h /usr/include/time.h /usr/include/_structs.h \ - /usr/include/sys/_select.h /usr/include/sys/types.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/intern.h \ - /usr/include/pthread.h /usr/include/pthread_impl.h /usr/include/sched.h \ - global.h mpi_comm.h mpi_group.h mpi_keyval.h mpi_request.h mpi_status.h \ - mpi_op.h mpi_exception.h - -/usr/include/mpi.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/ruby.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/config.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/defines.h: - -/usr/include/stdlib.h: - -/usr/include/available.h: - -/usr/include/_types.h: - -/usr/include/sys/_types.h: - -/usr/include/sys/cdefs.h: - -/usr/include/machine/_types.h: - -/usr/include/i386/_types.h: - -/usr/include/sys/wait.h: - -/usr/include/sys/signal.h: - -/usr/include/sys/appleapiopts.h: - -/usr/include/machine/signal.h: - -/usr/include/i386/signal.h: - -/usr/include/i386/_structs.h: - -/usr/include/sys/_structs.h: - -/usr/include/machine/_structs.h: - -/usr/include/mach/i386/_structs.h: - -/usr/include/sys/resource.h: - -/usr/include/machine/endian.h: - -/usr/include/i386/endian.h: - -/usr/include/sys/_endian.h: - -/usr/include/libkern/_OSByteOrder.h: - -/usr/include/libkern/i386/_OSByteOrder.h: - -/usr/include/alloca.h: - -/usr/include/machine/types.h: - -/usr/include/i386/types.h: - -/usr/include/string.h: - -/usr/include/stdio.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h: - -/usr/include/limits.h: - -/usr/include/machine/limits.h: - -/usr/include/i386/limits.h: - -/usr/include/i386/_limits.h: - -/usr/include/sys/syslimits.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/missing.h: - -/usr/include/sys/time.h: - -/usr/include/time.h: - -/usr/include/_structs.h: - -/usr/include/sys/_select.h: - -/usr/include/sys/types.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/intern.h: - -/usr/include/pthread.h: - -/usr/include/pthread_impl.h: - -/usr/include/sched.h: - -global.h: - -mpi_comm.h: - -mpi_group.h: - -mpi_keyval.h: - -mpi_request.h: - -mpi_status.h: - -mpi_op.h: - -mpi_exception.h: diff --git a/src/.deps/mpi_group.Po b/src/.deps/mpi_group.Po deleted file mode 100644 index 5233aeb..0000000 --- a/src/.deps/mpi_group.Po +++ /dev/null @@ -1,144 +0,0 @@ -mpi_group.o: mpi_group.c /usr/include/mpi.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/ruby.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/config.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/defines.h \ - /usr/include/stdlib.h /usr/include/available.h /usr/include/_types.h \ - /usr/include/sys/_types.h /usr/include/sys/cdefs.h \ - /usr/include/machine/_types.h /usr/include/i386/_types.h \ - /usr/include/sys/wait.h /usr/include/sys/signal.h \ - /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \ - /usr/include/i386/signal.h /usr/include/i386/_structs.h \ - /usr/include/sys/_structs.h /usr/include/machine/_structs.h \ - /usr/include/mach/i386/_structs.h /usr/include/sys/resource.h \ - /usr/include/machine/endian.h /usr/include/i386/endian.h \ - /usr/include/sys/_endian.h /usr/include/libkern/_OSByteOrder.h \ - /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \ - /usr/include/machine/types.h /usr/include/i386/types.h \ - /usr/include/string.h /usr/include/stdio.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \ - /usr/include/limits.h /usr/include/machine/limits.h \ - /usr/include/i386/limits.h /usr/include/i386/_limits.h \ - /usr/include/sys/syslimits.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/missing.h \ - /usr/include/sys/time.h /usr/include/time.h /usr/include/_structs.h \ - /usr/include/sys/_select.h /usr/include/sys/types.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/intern.h \ - /usr/include/pthread.h /usr/include/pthread_impl.h /usr/include/sched.h \ - global.h mpi_comm.h mpi_group.h mpi_keyval.h mpi_request.h mpi_status.h \ - mpi_op.h mpi_exception.h - -/usr/include/mpi.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/ruby.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/config.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/defines.h: - -/usr/include/stdlib.h: - -/usr/include/available.h: - -/usr/include/_types.h: - -/usr/include/sys/_types.h: - -/usr/include/sys/cdefs.h: - -/usr/include/machine/_types.h: - -/usr/include/i386/_types.h: - -/usr/include/sys/wait.h: - -/usr/include/sys/signal.h: - -/usr/include/sys/appleapiopts.h: - -/usr/include/machine/signal.h: - -/usr/include/i386/signal.h: - -/usr/include/i386/_structs.h: - -/usr/include/sys/_structs.h: - -/usr/include/machine/_structs.h: - -/usr/include/mach/i386/_structs.h: - -/usr/include/sys/resource.h: - -/usr/include/machine/endian.h: - -/usr/include/i386/endian.h: - -/usr/include/sys/_endian.h: - -/usr/include/libkern/_OSByteOrder.h: - -/usr/include/libkern/i386/_OSByteOrder.h: - -/usr/include/alloca.h: - -/usr/include/machine/types.h: - -/usr/include/i386/types.h: - -/usr/include/string.h: - -/usr/include/stdio.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h: - -/usr/include/limits.h: - -/usr/include/machine/limits.h: - -/usr/include/i386/limits.h: - -/usr/include/i386/_limits.h: - -/usr/include/sys/syslimits.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/missing.h: - -/usr/include/sys/time.h: - -/usr/include/time.h: - -/usr/include/_structs.h: - -/usr/include/sys/_select.h: - -/usr/include/sys/types.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/intern.h: - -/usr/include/pthread.h: - -/usr/include/pthread_impl.h: - -/usr/include/sched.h: - -global.h: - -mpi_comm.h: - -mpi_group.h: - -mpi_keyval.h: - -mpi_request.h: - -mpi_status.h: - -mpi_op.h: - -mpi_exception.h: diff --git a/src/.deps/mpi_keyval.Po b/src/.deps/mpi_keyval.Po deleted file mode 100644 index 12b143c..0000000 --- a/src/.deps/mpi_keyval.Po +++ /dev/null @@ -1,144 +0,0 @@ -mpi_keyval.o: mpi_keyval.c /usr/include/mpi.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/ruby.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/config.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/defines.h \ - /usr/include/stdlib.h /usr/include/available.h /usr/include/_types.h \ - /usr/include/sys/_types.h /usr/include/sys/cdefs.h \ - /usr/include/machine/_types.h /usr/include/i386/_types.h \ - /usr/include/sys/wait.h /usr/include/sys/signal.h \ - /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \ - /usr/include/i386/signal.h /usr/include/i386/_structs.h \ - /usr/include/sys/_structs.h /usr/include/machine/_structs.h \ - /usr/include/mach/i386/_structs.h /usr/include/sys/resource.h \ - /usr/include/machine/endian.h /usr/include/i386/endian.h \ - /usr/include/sys/_endian.h /usr/include/libkern/_OSByteOrder.h \ - /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \ - /usr/include/machine/types.h /usr/include/i386/types.h \ - /usr/include/string.h /usr/include/stdio.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \ - /usr/include/limits.h /usr/include/machine/limits.h \ - /usr/include/i386/limits.h /usr/include/i386/_limits.h \ - /usr/include/sys/syslimits.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/missing.h \ - /usr/include/sys/time.h /usr/include/time.h /usr/include/_structs.h \ - /usr/include/sys/_select.h /usr/include/sys/types.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/intern.h \ - /usr/include/pthread.h /usr/include/pthread_impl.h /usr/include/sched.h \ - global.h mpi_comm.h mpi_group.h mpi_keyval.h mpi_request.h mpi_status.h \ - mpi_op.h mpi_exception.h - -/usr/include/mpi.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/ruby.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/config.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/defines.h: - -/usr/include/stdlib.h: - -/usr/include/available.h: - -/usr/include/_types.h: - -/usr/include/sys/_types.h: - -/usr/include/sys/cdefs.h: - -/usr/include/machine/_types.h: - -/usr/include/i386/_types.h: - -/usr/include/sys/wait.h: - -/usr/include/sys/signal.h: - -/usr/include/sys/appleapiopts.h: - -/usr/include/machine/signal.h: - -/usr/include/i386/signal.h: - -/usr/include/i386/_structs.h: - -/usr/include/sys/_structs.h: - -/usr/include/machine/_structs.h: - -/usr/include/mach/i386/_structs.h: - -/usr/include/sys/resource.h: - -/usr/include/machine/endian.h: - -/usr/include/i386/endian.h: - -/usr/include/sys/_endian.h: - -/usr/include/libkern/_OSByteOrder.h: - -/usr/include/libkern/i386/_OSByteOrder.h: - -/usr/include/alloca.h: - -/usr/include/machine/types.h: - -/usr/include/i386/types.h: - -/usr/include/string.h: - -/usr/include/stdio.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h: - -/usr/include/limits.h: - -/usr/include/machine/limits.h: - -/usr/include/i386/limits.h: - -/usr/include/i386/_limits.h: - -/usr/include/sys/syslimits.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/missing.h: - -/usr/include/sys/time.h: - -/usr/include/time.h: - -/usr/include/_structs.h: - -/usr/include/sys/_select.h: - -/usr/include/sys/types.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/intern.h: - -/usr/include/pthread.h: - -/usr/include/pthread_impl.h: - -/usr/include/sched.h: - -global.h: - -mpi_comm.h: - -mpi_group.h: - -mpi_keyval.h: - -mpi_request.h: - -mpi_status.h: - -mpi_op.h: - -mpi_exception.h: diff --git a/src/.deps/mpi_op.Po b/src/.deps/mpi_op.Po deleted file mode 100644 index f48c90a..0000000 --- a/src/.deps/mpi_op.Po +++ /dev/null @@ -1,146 +0,0 @@ -mpi_op.o: mpi_op.c /usr/include/mpi.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/ruby.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/config.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/defines.h \ - /usr/include/stdlib.h /usr/include/available.h /usr/include/_types.h \ - /usr/include/sys/_types.h /usr/include/sys/cdefs.h \ - /usr/include/machine/_types.h /usr/include/i386/_types.h \ - /usr/include/sys/wait.h /usr/include/sys/signal.h \ - /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \ - /usr/include/i386/signal.h /usr/include/i386/_structs.h \ - /usr/include/sys/_structs.h /usr/include/machine/_structs.h \ - /usr/include/mach/i386/_structs.h /usr/include/sys/resource.h \ - /usr/include/machine/endian.h /usr/include/i386/endian.h \ - /usr/include/sys/_endian.h /usr/include/libkern/_OSByteOrder.h \ - /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \ - /usr/include/machine/types.h /usr/include/i386/types.h \ - /usr/include/string.h /usr/include/stdio.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \ - /usr/include/limits.h /usr/include/machine/limits.h \ - /usr/include/i386/limits.h /usr/include/i386/_limits.h \ - /usr/include/sys/syslimits.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/missing.h \ - /usr/include/sys/time.h /usr/include/time.h /usr/include/_structs.h \ - /usr/include/sys/_select.h /usr/include/sys/types.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/intern.h \ - /usr/include/pthread.h /usr/include/pthread_impl.h /usr/include/sched.h \ - global.h mpi_comm.h mpi_group.h mpi_keyval.h mpi_request.h mpi_status.h \ - mpi_op.h mpi_exception.h mpi_op_fns.c - -/usr/include/mpi.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/ruby.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/config.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/defines.h: - -/usr/include/stdlib.h: - -/usr/include/available.h: - -/usr/include/_types.h: - -/usr/include/sys/_types.h: - -/usr/include/sys/cdefs.h: - -/usr/include/machine/_types.h: - -/usr/include/i386/_types.h: - -/usr/include/sys/wait.h: - -/usr/include/sys/signal.h: - -/usr/include/sys/appleapiopts.h: - -/usr/include/machine/signal.h: - -/usr/include/i386/signal.h: - -/usr/include/i386/_structs.h: - -/usr/include/sys/_structs.h: - -/usr/include/machine/_structs.h: - -/usr/include/mach/i386/_structs.h: - -/usr/include/sys/resource.h: - -/usr/include/machine/endian.h: - -/usr/include/i386/endian.h: - -/usr/include/sys/_endian.h: - -/usr/include/libkern/_OSByteOrder.h: - -/usr/include/libkern/i386/_OSByteOrder.h: - -/usr/include/alloca.h: - -/usr/include/machine/types.h: - -/usr/include/i386/types.h: - -/usr/include/string.h: - -/usr/include/stdio.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h: - -/usr/include/limits.h: - -/usr/include/machine/limits.h: - -/usr/include/i386/limits.h: - -/usr/include/i386/_limits.h: - -/usr/include/sys/syslimits.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/missing.h: - -/usr/include/sys/time.h: - -/usr/include/time.h: - -/usr/include/_structs.h: - -/usr/include/sys/_select.h: - -/usr/include/sys/types.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/intern.h: - -/usr/include/pthread.h: - -/usr/include/pthread_impl.h: - -/usr/include/sched.h: - -global.h: - -mpi_comm.h: - -mpi_group.h: - -mpi_keyval.h: - -mpi_request.h: - -mpi_status.h: - -mpi_op.h: - -mpi_exception.h: - -mpi_op_fns.c: diff --git a/src/.deps/mpi_request.Po b/src/.deps/mpi_request.Po deleted file mode 100644 index b8414f9..0000000 --- a/src/.deps/mpi_request.Po +++ /dev/null @@ -1,147 +0,0 @@ -mpi_request.o: mpi_request.c /usr/include/mpi.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/ruby.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/config.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/defines.h \ - /usr/include/stdlib.h /usr/include/available.h /usr/include/_types.h \ - /usr/include/sys/_types.h /usr/include/sys/cdefs.h \ - /usr/include/machine/_types.h /usr/include/i386/_types.h \ - /usr/include/sys/wait.h /usr/include/sys/signal.h \ - /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \ - /usr/include/i386/signal.h /usr/include/i386/_structs.h \ - /usr/include/sys/_structs.h /usr/include/machine/_structs.h \ - /usr/include/mach/i386/_structs.h /usr/include/sys/resource.h \ - /usr/include/machine/endian.h /usr/include/i386/endian.h \ - /usr/include/sys/_endian.h /usr/include/libkern/_OSByteOrder.h \ - /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \ - /usr/include/machine/types.h /usr/include/i386/types.h \ - /usr/include/string.h /usr/include/stdio.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \ - /usr/include/limits.h /usr/include/machine/limits.h \ - /usr/include/i386/limits.h /usr/include/i386/_limits.h \ - /usr/include/sys/syslimits.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/missing.h \ - /usr/include/sys/time.h /usr/include/time.h /usr/include/_structs.h \ - /usr/include/sys/_select.h /usr/include/sys/types.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/intern.h \ - /usr/include/pthread.h /usr/include/pthread_impl.h /usr/include/sched.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h global.h \ - mpi_comm.h mpi_group.h mpi_keyval.h mpi_request.h mpi_status.h mpi_op.h \ - mpi_exception.h - -/usr/include/mpi.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/ruby.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/config.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/defines.h: - -/usr/include/stdlib.h: - -/usr/include/available.h: - -/usr/include/_types.h: - -/usr/include/sys/_types.h: - -/usr/include/sys/cdefs.h: - -/usr/include/machine/_types.h: - -/usr/include/i386/_types.h: - -/usr/include/sys/wait.h: - -/usr/include/sys/signal.h: - -/usr/include/sys/appleapiopts.h: - -/usr/include/machine/signal.h: - -/usr/include/i386/signal.h: - -/usr/include/i386/_structs.h: - -/usr/include/sys/_structs.h: - -/usr/include/machine/_structs.h: - -/usr/include/mach/i386/_structs.h: - -/usr/include/sys/resource.h: - -/usr/include/machine/endian.h: - -/usr/include/i386/endian.h: - -/usr/include/sys/_endian.h: - -/usr/include/libkern/_OSByteOrder.h: - -/usr/include/libkern/i386/_OSByteOrder.h: - -/usr/include/alloca.h: - -/usr/include/machine/types.h: - -/usr/include/i386/types.h: - -/usr/include/string.h: - -/usr/include/stdio.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h: - -/usr/include/limits.h: - -/usr/include/machine/limits.h: - -/usr/include/i386/limits.h: - -/usr/include/i386/_limits.h: - -/usr/include/sys/syslimits.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/missing.h: - -/usr/include/sys/time.h: - -/usr/include/time.h: - -/usr/include/_structs.h: - -/usr/include/sys/_select.h: - -/usr/include/sys/types.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/intern.h: - -/usr/include/pthread.h: - -/usr/include/pthread_impl.h: - -/usr/include/sched.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h: - -global.h: - -mpi_comm.h: - -mpi_group.h: - -mpi_keyval.h: - -mpi_request.h: - -mpi_status.h: - -mpi_op.h: - -mpi_exception.h: diff --git a/src/.deps/mpi_status.Po b/src/.deps/mpi_status.Po deleted file mode 100644 index 71e9c4d..0000000 --- a/src/.deps/mpi_status.Po +++ /dev/null @@ -1,144 +0,0 @@ -mpi_status.o: mpi_status.c /usr/include/mpi.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/ruby.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/config.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/defines.h \ - /usr/include/stdlib.h /usr/include/available.h /usr/include/_types.h \ - /usr/include/sys/_types.h /usr/include/sys/cdefs.h \ - /usr/include/machine/_types.h /usr/include/i386/_types.h \ - /usr/include/sys/wait.h /usr/include/sys/signal.h \ - /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \ - /usr/include/i386/signal.h /usr/include/i386/_structs.h \ - /usr/include/sys/_structs.h /usr/include/machine/_structs.h \ - /usr/include/mach/i386/_structs.h /usr/include/sys/resource.h \ - /usr/include/machine/endian.h /usr/include/i386/endian.h \ - /usr/include/sys/_endian.h /usr/include/libkern/_OSByteOrder.h \ - /usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \ - /usr/include/machine/types.h /usr/include/i386/types.h \ - /usr/include/string.h /usr/include/stdio.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \ - /usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \ - /usr/include/limits.h /usr/include/machine/limits.h \ - /usr/include/i386/limits.h /usr/include/i386/_limits.h \ - /usr/include/sys/syslimits.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/missing.h \ - /usr/include/sys/time.h /usr/include/time.h /usr/include/_structs.h \ - /usr/include/sys/_select.h /usr/include/sys/types.h \ - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/intern.h \ - /usr/include/pthread.h /usr/include/pthread_impl.h /usr/include/sched.h \ - global.h mpi_comm.h mpi_group.h mpi_keyval.h mpi_request.h mpi_status.h \ - mpi_op.h mpi_exception.h - -/usr/include/mpi.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/ruby.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/config.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/defines.h: - -/usr/include/stdlib.h: - -/usr/include/available.h: - -/usr/include/_types.h: - -/usr/include/sys/_types.h: - -/usr/include/sys/cdefs.h: - -/usr/include/machine/_types.h: - -/usr/include/i386/_types.h: - -/usr/include/sys/wait.h: - -/usr/include/sys/signal.h: - -/usr/include/sys/appleapiopts.h: - -/usr/include/machine/signal.h: - -/usr/include/i386/signal.h: - -/usr/include/i386/_structs.h: - -/usr/include/sys/_structs.h: - -/usr/include/machine/_structs.h: - -/usr/include/mach/i386/_structs.h: - -/usr/include/sys/resource.h: - -/usr/include/machine/endian.h: - -/usr/include/i386/endian.h: - -/usr/include/sys/_endian.h: - -/usr/include/libkern/_OSByteOrder.h: - -/usr/include/libkern/i386/_OSByteOrder.h: - -/usr/include/alloca.h: - -/usr/include/machine/types.h: - -/usr/include/i386/types.h: - -/usr/include/string.h: - -/usr/include/stdio.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h: - -/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h: - -/usr/include/limits.h: - -/usr/include/machine/limits.h: - -/usr/include/i386/limits.h: - -/usr/include/i386/_limits.h: - -/usr/include/sys/syslimits.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/missing.h: - -/usr/include/sys/time.h: - -/usr/include/time.h: - -/usr/include/_structs.h: - -/usr/include/sys/_select.h: - -/usr/include/sys/types.h: - -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0/intern.h: - -/usr/include/pthread.h: - -/usr/include/pthread_impl.h: - -/usr/include/sched.h: - -global.h: - -mpi_comm.h: - -mpi_group.h: - -mpi_keyval.h: - -mpi_request.h: - -mpi_status.h: - -mpi_op.h: - -mpi_exception.h: diff --git a/src/Makefile.am b/src/Makefile.am deleted file mode 100644 index b2d0cfa..0000000 --- a/src/Makefile.am +++ /dev/null @@ -1,17 +0,0 @@ -CFLAGS=@CFLAGS@ @RUBY_CFLAGS@ -LIBS=@LIBS@ @RUBY_LIBS@ -LD_RUN_PATH=@RB_LIB_DIR@ - -bin_PROGRAMS = mpi_ruby -mpi_ruby_SOURCES = main.c mpi.c mpi_comm.c mpi_exception.c mpi_group.c \ - mpi_keyval.c mpi_op.c mpi_request.c mpi_status.c \ - global.h mpi_comm.h mpi_exception.h mpi_group.h \ - mpi_keyval.h mpi_op.h mpi_request.h mpi_status.h -mpi_ruby_DEPENDENCIES = mpi_op_fns.c -DISTCLEANFILES = mpi_op_fns.c - -EXTRA_DIST = ops.rb -mpi_op_fns.c: ops.rb - @RUBY@ ops.rb @MAX_OPS@ > mpi_op_fns.c - -mpi_op.$(OBJEXT): mpi_op_fns.c diff --git a/src/Makefile.in b/src/Makefile.in deleted file mode 100644 index ec1f051..0000000 --- a/src/Makefile.in +++ /dev/null @@ -1,338 +0,0 @@ -# Makefile.in generated automatically by automake 1.4g from Makefile.am. - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_HEADER = $(INSTALL_DATA) -transform = @program_transform_name@ -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_alias = @build_alias@ -build_triplet = @build@ -host_alias = @host_alias@ -host_triplet = @host@ -target_alias = @target_alias@ -target_triplet = @target@ -AMTAR = @AMTAR@ -AWK = @AWK@ -CC = @CC@ -DEPDIR = @DEPDIR@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -MAX_OPS = @MAX_OPS@ -MPICC_PATH = @MPICC_PATH@ -PACKAGE = @PACKAGE@ -RB_ARCH_DIR = @RB_ARCH_DIR@ -RB_INCLUDE_DIR = @RB_INCLUDE_DIR@ -RB_LIB_DIR = @RB_LIB_DIR@ -RUBY = @RUBY@ -RUBY_CFLAGS = @RUBY_CFLAGS@ -RUBY_LIBS = @RUBY_LIBS@ -VERSION = @VERSION@ -_am_include = @_am_include@ -_am_quote = @_am_quote@ -install_sh = @install_sh@ - -CFLAGS = @CFLAGS@ @RUBY_CFLAGS@ -LIBS = @LIBS@ @RUBY_LIBS@ -LD_RUN_PATH = @RB_LIB_DIR@ - -bin_PROGRAMS = mpi_ruby -mpi_ruby_SOURCES = main.c mpi.c mpi_comm.c mpi_exception.c mpi_group.c \ - mpi_keyval.c mpi_op.c mpi_request.c mpi_status.c \ - global.h mpi_comm.h mpi_exception.h mpi_group.h \ - mpi_keyval.h mpi_op.h mpi_request.h mpi_status.h - -mpi_ruby_DEPENDENCIES = mpi_op_fns.c -DISTCLEANFILES = mpi_op_fns.c - -EXTRA_DIST = ops.rb -EXEEXT = -OBJEXT = o -subdir = src -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -bin_PROGRAMS = mpi_ruby$(EXEEXT) -PROGRAMS = $(bin_PROGRAMS) - -am_mpi_ruby_OBJECTS = main.$(OBJEXT) mpi.$(OBJEXT) mpi_comm.$(OBJEXT) \ - mpi_exception.$(OBJEXT) mpi_group.$(OBJEXT) \ - mpi_keyval.$(OBJEXT) mpi_op.$(OBJEXT) mpi_request.$(OBJEXT) \ - mpi_status.$(OBJEXT) -mpi_ruby_OBJECTS = $(am_mpi_ruby_OBJECTS) -mpi_ruby_LDADD = $(LDADD) -mpi_ruby_LDFLAGS = - -DEFS = @DEFS@ -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -CPPFLAGS = @CPPFLAGS@ -LDFLAGS = @LDFLAGS@ -depcomp = $(SHELL) $(top_srcdir)/depcomp -@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/main.Po $(DEPDIR)/mpi.Po \ -@AMDEP_TRUE@ $(DEPDIR)/mpi_comm.Po $(DEPDIR)/mpi_exception.Po \ -@AMDEP_TRUE@ $(DEPDIR)/mpi_group.Po $(DEPDIR)/mpi_keyval.Po \ -@AMDEP_TRUE@ $(DEPDIR)/mpi_op.Po $(DEPDIR)/mpi_request.Po \ -@AMDEP_TRUE@ $(DEPDIR)/mpi_status.Po -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -DIST_SOURCES = $(mpi_ruby_SOURCES) -DIST_COMMON = Makefile.am Makefile.in -SOURCES = $(mpi_ruby_SOURCES) - -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .o .obj -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && \ - CONFIG_HEADERS= CONFIG_LINKS= \ - CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status -install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(bindir) - @list='$(bin_PROGRAMS)'; for p in $$list; do \ - if test -f $$p; then \ - f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ - echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$f"; \ - $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$f; \ - else :; fi; \ - done - -uninstall-binPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; for p in $$list; do \ - f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ - echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ - rm -f $(DESTDIR)$(bindir)/$$f; \ - done - -clean-binPROGRAMS: - -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) -mpi_ruby$(EXEEXT): $(mpi_ruby_OBJECTS) $(mpi_ruby_DEPENDENCIES) - @rm -f mpi_ruby$(EXEEXT) - $(LINK) $(mpi_ruby_LDFLAGS) $(mpi_ruby_OBJECTS) $(mpi_ruby_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) core *.core - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/main.Po@_am_quote@ -@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/mpi.Po@_am_quote@ -@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/mpi_comm.Po@_am_quote@ -@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/mpi_exception.Po@_am_quote@ -@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/mpi_group.Po@_am_quote@ -@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/mpi_keyval.Po@_am_quote@ -@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/mpi_op.Po@_am_quote@ -@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/mpi_request.Po@_am_quote@ -@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/mpi_status.Po@_am_quote@ - -distclean-depend: - -rm -rf $(DEPDIR) - -.c.o: -@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - $(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$< - -.c.obj: -@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - $(COMPILE) -c `cygpath -w $<` -CCDEPMODE = @CCDEPMODE@ -uninstall-info-am: - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique $(LISP) - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ - || etags $(ETAGS_ARGS) $$tags $$unique $(LISP) - -GTAGS: - here=`CDPATH=: && cd $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $$here - -distclean-tags: - -rm -f TAGS ID - -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = .. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - if test -f $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - $(mkinstalldirs) "$(distdir)/$$dir"; \ - fi; \ - if test -d $$d/$$file; then \ - cp -pR $$d/$$file $(distdir) \ - || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) - -installdirs: - $(mkinstalldirs) $(DESTDIR)$(bindir) - -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* - -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-binPROGRAMS clean-generic mostlyclean-am - -distclean: distclean-am - -distclean-am: clean-am distclean-compile distclean-depend \ - distclean-generic distclean-tags - -dvi: dvi-am - -dvi-am: - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: install-binPROGRAMS - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic - -uninstall-am: uninstall-binPROGRAMS uninstall-info-am - -.PHONY: all all-am check check-am clean clean-binPROGRAMS clean-generic \ - distclean distclean-compile distclean-depend distclean-generic \ - distclean-tags distdir dvi dvi-am info info-am install \ - install-am install-binPROGRAMS install-data install-data-am \ - install-exec install-exec-am install-info install-info-am \ - install-man install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic tags \ - uninstall uninstall-am uninstall-binPROGRAMS uninstall-info-am - -mpi_op_fns.c: ops.rb - @RUBY@ ops.rb @MAX_OPS@ > mpi_op_fns.c - -mpi_op.$(OBJEXT): mpi_op_fns.c -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/src/global.h b/src/global.h deleted file mode 100644 index 14960e0..0000000 --- a/src/global.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef GLOBAL_H -#define GLOBAL_H - -extern VALUE mMPI; - -extern VALUE UNDEFINED; - -extern VALUE mMarshal; -extern ID id_dump; -extern ID id_load; -extern ID id_map_bang; - -extern void Init_MPI(); - -#include "mpi_comm.h" -#include "mpi_group.h" -#include "mpi_keyval.h" -#include "mpi_request.h" -#include "mpi_status.h" -#include "mpi_op.h" -#include "mpi_exception.h" - -#endif /* GLOBAL_H */ diff --git a/src/main.c b/src/main.c deleted file mode 100644 index af3f707..0000000 --- a/src/main.c +++ /dev/null @@ -1,58 +0,0 @@ -#include "mpi.h" -#include "ruby.h" -#include - -#include "global.h" - -MPI_Comm *self, *world; - -int main(int argc, char *argv[]) -{ - void (*sigusr1)(int), (*sigusr2)(int); - - MPI_Init(&argc, &argv); - - /* ruby_run() calls exit() (why?), so we have to call finalize this way. */ - atexit((void (*)(void))MPI_Finalize); - - /* Allow errors to be returned as exceptions in ruby */ - MPI_Errhandler_set(MPI_COMM_WORLD, MPI_ERRORS_RETURN); - - /* This seems legitimate because comms can be passed by value to fns. */ - self = malloc(sizeof(MPI_Comm)); - if (self == NULL) { - perror("Unable to allocate MPI::Comm::SELF"); - MPI_Finalize(); - exit(1); - } - *self = MPI_COMM_SELF; - - world = malloc(sizeof(MPI_Comm)); - if (self == NULL) { - perror("Unable to allocate MPI::Comm::WORLD"); - MPI_Finalize(); - exit(1); - } - *world = MPI_COMM_WORLD; - - MPI_Barrier(*world); - sigusr1 = signal(SIGUSR1, SIG_IGN); - sigusr2 = signal(SIGUSR2, SIG_IGN); - - ruby_init(); - ruby_options(argc, argv); - - signal(SIGUSR1, sigusr1); - signal(SIGUSR2, sigusr2); - MPI_Barrier(*world); - - Init_MPI(); - - ruby_run(); - - /* Unreachable */ - - MPI_Finalize(); - - return 0; -} diff --git a/src/mpi.c b/src/mpi.c deleted file mode 100644 index 015cd0c..0000000 --- a/src/mpi.c +++ /dev/null @@ -1,106 +0,0 @@ -#include "mpi.h" -#include "ruby.h" - -#include "global.h" - -VALUE mMPI; - -VALUE UNDEFINED; - -VALUE mMarshal; -ID id_dump; -ID id_load; -ID id_map_bang; - -static VALUE mpi_wtime(VALUE self) -{ - return rb_float_new(MPI_Wtime()); -} - -static VALUE mpi_wtick(VALUE self) -{ - return rb_float_new(MPI_Wtick()); -} - -static VALUE mpi_initialized_p(VALUE self) -{ - int rv, flag; - - rv = MPI_Initialized(&flag); - mpi_exception(rv); - - return flag ? Qtrue : Qfalse; -} - -static VALUE mpi_processor_name(VALUE self) -{ - int rv, len; - char buf[MPI_MAX_PROCESSOR_NAME]; - - rv = MPI_Get_processor_name(buf, &len); - mpi_exception(rv); - - return rb_str_new(buf, len); -} - -static VALUE mpi_dims_create(VALUE self, VALUE rnnodes, VALUE rdims) -{ - int rv, i, nnodes, ndims, *dims; - VALUE ary; - - Check_Type(rnnodes, T_FIXNUM); - nnodes = FIX2INT(rnnodes); - - ndims = RARRAY(rdims)->len; - - dims = ALLOCA_N(int, ndims); - for (i = 0; i < ndims; i++) - dims[i] = FIX2INT(rb_ary_entry(rdims, i)); - - rv = MPI_Dims_create(nnodes, ndims, dims); - mpi_exception(rv); - - ary = rb_ary_new2(ndims); - for (i = 0; i < ndims; i++) - rb_ary_store(ary, i, dims[i]); - - return ary; -} - -static VALUE undefined_to_s(VALUE self) -{ - return rb_str_new("MPI::UNDEFINED", sizeof("MPI::UNDEFINED")); -} - -void Init_MPI() -{ - int initialized; - - MPI_Initialized(&initialized); - if (!initialized) { - printf("Error!!! MPI Uninitialized!!!\n"); - return; - } - - mMPI = rb_define_module("MPI"); - rb_define_module_function(mMPI, "wtime", mpi_wtime, 0); - rb_define_module_function(mMPI, "wtick", mpi_wtick, 0); - rb_define_module_function(mMPI, "initialized?", mpi_initialized_p, 0); - rb_define_module_function(mMPI, "processor_name", mpi_processor_name, 0); - rb_define_module_function(mMPI, "dims_create", mpi_dims_create, 2); - - UNDEFINED = rb_obj_alloc(rb_cObject); - rb_define_singleton_method(UNDEFINED, "to_s", undefined_to_s, 0); - rb_define_const(mMPI, "UNDEFINED", UNDEFINED); - - mMarshal = rb_const_get(rb_cObject, rb_intern("Marshal")); - id_dump = rb_intern("dump"); - id_load = rb_intern("load"); - id_map_bang = rb_intern("map!"); - Init_Comm(); - Init_Group(); - Init_Status(); - Init_Request(); - Init_Op(); - Init_MPI_Exception(); -} diff --git a/src/mpi_comm.c b/src/mpi_comm.c deleted file mode 100644 index 9226f50..0000000 --- a/src/mpi_comm.c +++ /dev/null @@ -1,2519 +0,0 @@ -#include "mpi.h" -#include "ruby.h" -#include "global.h" - -VALUE cComm, cIntraComm; -static VALUE SELF, WORLD, ANY_TAG, ANY_SOURCE, GRAPH, CART, COMM_NULL; - -struct mpi_comm { - MPI_Comm *comm; - char *buffer; - long bufsize; -}; - -static void comm_free(struct mpi_comm *comm) -{ - free(comm->buffer); - if ((*comm->comm != MPI_COMM_WORLD) && (*comm->comm != MPI_COMM_SELF)) - MPI_Comm_free(comm->comm); - free(comm->comm); - free(comm); -} - -static VALUE comm_new(struct mpi_comm *comm) -{ - VALUE tdata; - - tdata = Data_Wrap_Struct(cComm, NULL, comm_free, comm); - rb_obj_call_init(tdata, 0, NULL); - - return tdata; -} - -static VALUE intra_comm_new(struct mpi_comm *comm) -{ - VALUE tdata; - - tdata = Data_Wrap_Struct(cIntraComm, NULL, comm_free, comm); - rb_obj_call_init(tdata, 0, NULL); - - return tdata; -} - -/* Constructors */ -static VALUE comm_dup(VALUE self) -{ - int rv; - struct mpi_comm *mc_comm, *newcomm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - newcomm = ALLOC(struct mpi_comm); - newcomm->comm = ALLOC(MPI_Comm); - newcomm->buffer = NULL; - newcomm->bufsize = 0; - - rv = MPI_Comm_dup(*mc_comm->comm, newcomm->comm); - mpi_exception(rv); - - return comm_new(newcomm); -} - -static VALUE comm_create(VALUE self, VALUE rgrp) -{ - int rv; - MPI_Group *grp; - struct mpi_comm *mc_comm, *newcomm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - newcomm = ALLOC(struct mpi_comm); - newcomm->comm = ALLOC(MPI_Comm); - newcomm->buffer = NULL; - newcomm->bufsize = 0; - - grp = group_get_mpi_group(rgrp); - - rv = MPI_Comm_create(*mc_comm->comm, *grp, newcomm->comm); - mpi_exception(rv); - - return comm_new(newcomm); -} - -static VALUE comm_intercomm_create(VALUE self, VALUE rlocal_leader, - VALUE rpeer, VALUE rremote_leader, - VALUE rtag) -{ - int rv, local_leader, remote_leader, tag; - struct mpi_comm *mc_comm, *peer, *newcomm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - Data_Get_Struct(rpeer, struct mpi_comm, peer); - - Check_Type(rlocal_leader, T_FIXNUM); - Check_Type(rremote_leader, T_FIXNUM); - - local_leader = FIX2INT(rlocal_leader); - remote_leader = FIX2INT(rremote_leader); - - if (rtag == ANY_TAG) { - tag = MPI_ANY_TAG; - } else { - Check_Type(rtag, T_FIXNUM); - tag = FIX2INT(rtag); - } - - newcomm = ALLOC(struct mpi_comm); - newcomm->comm = ALLOC(MPI_Comm); - newcomm->buffer = NULL; - newcomm->bufsize = 0; - - rv = MPI_Intercomm_create(*mc_comm->comm, local_leader, - *peer->comm, remote_leader, tag, - newcomm->comm); - mpi_exception(rv); - - return comm_new(newcomm); -} - -static VALUE comm_intercomm_merge(VALUE self, VALUE rhigh) -{ - int rv, high; - struct mpi_comm *mc_comm, *newcomm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - Check_Type(rhigh, T_FIXNUM); - high = FIX2INT(rhigh); - - newcomm = ALLOC(struct mpi_comm); - newcomm->comm = ALLOC(MPI_Comm); - newcomm->buffer = NULL; - newcomm->bufsize = 0; - - rv = MPI_Intercomm_merge(*mc_comm->comm, high, newcomm->comm); - mpi_exception(rv); - - return comm_new(newcomm); -} - -static VALUE comm_split(VALUE self, VALUE rcolor, VALUE rkey) -{ - int rv, color, key; - struct mpi_comm *mc_comm, *newcomm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - newcomm = ALLOC(struct mpi_comm); - newcomm->comm = ALLOC(MPI_Comm); - newcomm->buffer = NULL; - newcomm->bufsize = 0; - - Check_Type(rcolor, T_FIXNUM); - Check_Type(rkey, T_FIXNUM); - - color = FIX2INT(rcolor); - key = FIX2INT(rkey); - - rv = MPI_Comm_split(*mc_comm->comm, color, key, newcomm->comm); - mpi_exception(rv); - - return comm_new(newcomm); -} - -/* Topologies */ -static VALUE comm_cart_create(VALUE self, VALUE rdims, VALUE rperiods, - VALUE rreorder) -{ - int rv, i, ndims, *dims, *periods, reorder; - struct mpi_comm *mc_comm, *newcomm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - newcomm = ALLOC(struct mpi_comm); - newcomm->comm = ALLOC(MPI_Comm); - newcomm->buffer = NULL; - newcomm->bufsize = 0; - - ndims = RARRAY(rdims)->len; - if (RARRAY(rperiods)->len != ndims) { - mpi_exception(MPI_ERR_ARG); - return Qnil; - } - - dims = ALLOCA_N(int, ndims); - periods = ALLOCA_N(int, ndims); - - Check_Type(rreorder, T_FIXNUM); - - reorder = FIX2INT(rreorder); - - for (i = 0; i < ndims; i++) { - dims[i] = FIX2INT(rb_ary_entry(rdims, i)); - /* Qfalse and Qnil are the only values in Ruby that evaluate to - non-true. */ - periods[i] = (rb_ary_entry(rperiods, i) != Qfalse) && - (rb_ary_entry(rperiods, i) != Qnil); - } - - rv = MPI_Cart_create(*mc_comm->comm, ndims, dims, periods, reorder, - newcomm->comm); - mpi_exception(rv); - - return comm_new(newcomm); -} - -static VALUE comm_graph_create(VALUE self, VALUE rindex, VALUE redges, - VALUE rreorder) -{ - int rv, i, nnodes, nedges, *index, *edges, reorder; - struct mpi_comm *mc_comm, *newcomm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - newcomm = ALLOC(struct mpi_comm); - newcomm->comm = ALLOC(MPI_Comm); - newcomm->buffer = NULL; - newcomm->bufsize = 0; - - nnodes = RARRAY(rindex)->len; - nedges = RARRAY(rindex)->len; - - index = ALLOCA_N(int, nnodes); - edges = ALLOCA_N(int, nedges); - - Check_Type(rreorder, T_FIXNUM); - - reorder = FIX2INT(rreorder); - - for (i = 0; i < nnodes; i++) - index[i] = FIX2INT(rb_ary_entry(rindex, i)); - - for (i = 0; i < nedges; i++) - edges[i] = FIX2INT(rb_ary_entry(redges, i)); - - rv = MPI_Graph_create(*mc_comm->comm, nnodes, index, edges, reorder, - newcomm->comm); - mpi_exception(rv); - - return comm_new(newcomm); -} - -static VALUE comm_topo_test(VALUE self) -{ - int rv, status; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - rv = MPI_Topo_test(*mc_comm->comm, &status); - mpi_exception(rv); - - switch (status) { - case MPI_GRAPH: - return GRAPH; - case MPI_CART: - return CART; - case MPI_UNDEFINED: - default: - return UNDEFINED; - } -} - -static VALUE comm_graphdims_get(VALUE self) -{ - int rv, nnodes, nedges; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - rv = MPI_Graphdims_get(*mc_comm->comm, &nnodes, &nedges); - mpi_exception(rv); - - return rb_ary_new3(2, rb_fix_new(nnodes), rb_fix_new(nedges)); -} - -static VALUE comm_graph_get(VALUE self) -{ - int rv, i, nnodes, nedges, *index, *edges; - struct mpi_comm *mc_comm; - VALUE rindex, redges; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - rv = MPI_Graphdims_get(*mc_comm->comm, &nnodes, &nedges); - mpi_exception(rv); - - index = ALLOCA_N(int, nnodes); - edges = ALLOCA_N(int, nedges); - - rv = MPI_Graph_get(*mc_comm->comm, nnodes, nedges, index, edges); - mpi_exception(rv); - - rindex = rb_ary_new2(nnodes); - redges = rb_ary_new2(nedges); - - for (i = 0; i < nnodes; i++) - rb_ary_store(rindex, i, rb_fix_new(index[i])); - - for (i = 0; i < nedges; i++) - rb_ary_store(redges, i, rb_fix_new(edges[i])); - - return rb_ary_new3(2, rindex, redges); -} - - -static VALUE comm_cartdim_get(VALUE self) -{ - int rv, ndims; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - rv = MPI_Cartdim_get(*mc_comm->comm, &ndims); - mpi_exception(rv); - - return rb_fix_new(ndims); -} - -static VALUE comm_cart_get(VALUE self) -{ - int rv, i, ndims, *dims, *periods, *coords; - struct mpi_comm *mc_comm; - VALUE rdims, rperiods, rcoords; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - rv = MPI_Cartdim_get(*mc_comm->comm, &ndims); - mpi_exception(rv); - - dims = ALLOCA_N(int, ndims); - periods = ALLOCA_N(int, ndims); - coords = ALLOCA_N(int, ndims); - - rv = MPI_Cart_get(*mc_comm->comm, ndims, dims, periods, coords); - mpi_exception(rv); - - rdims = rb_ary_new2(ndims); - rperiods = rb_ary_new2(ndims); - rcoords = rb_ary_new2(ndims); - - for (i = 0; i < ndims; i++) { - rb_ary_store(rdims, i, rb_fix_new(dims[i])); - rb_ary_store(rperiods, i, periods[i] ? Qtrue : Qfalse); - rb_ary_store(rcoords, i, rb_fix_new(coords[i])); - } - - return rb_ary_new3(3, rdims, rperiods, rcoords); -} - -static VALUE comm_cart_rank(VALUE self, VALUE rcoords) -{ - int rv, i, ndims, rank, *coords; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - rv = MPI_Cartdim_get(*mc_comm->comm, &ndims); - mpi_exception(rv); - - if (RARRAY(rcoords)->len != ndims) { - mpi_exception(MPI_ERR_ARG); - return Qnil; - } - - coords = ALLOCA_N(int, ndims); - for (i = 0; i < ndims; i++) - coords[i] = FIX2INT(rb_ary_entry(rcoords, i)); - - rv = MPI_Cart_rank(*mc_comm->comm, coords, &rank); - mpi_exception(rv); - - return rb_fix_new(rank); -} - -static VALUE comm_cart_coords(VALUE self, VALUE rrank) -{ - int rv, i, ndims, rank, *coords; - struct mpi_comm *mc_comm; - VALUE rcoords; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - Check_Type(rrank, T_FIXNUM); - rank = FIX2INT(rrank); - - rv = MPI_Cartdim_get(*mc_comm->comm, &ndims); - mpi_exception(rv); - - coords = ALLOCA_N(int, ndims); - - rv = MPI_Cart_coords(*mc_comm->comm, rank, ndims, coords); - mpi_exception(rv); - - rcoords = rb_ary_new2(ndims); - - for (i = 0; i < ndims; i++) - rb_ary_store(rcoords, i, rb_fix_new(coords[i])); - - return rcoords; -} - -static VALUE comm_graph_neighbors_count(VALUE self, VALUE rrank) -{ - int rv, rank, nneighbors; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - Check_Type(rrank, T_FIXNUM); - rank = FIX2INT(rrank); - - rv = MPI_Graph_neighbors_count(*mc_comm->comm, rank, &nneighbors); - mpi_exception(rv); - - return rb_fix_new(nneighbors); -} - -static VALUE comm_graph_neighbors(VALUE self, VALUE rrank) -{ - int rv, i, rank, nneighbors, *neighbors; - struct mpi_comm *mc_comm; - VALUE rneighbors; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - Check_Type(rrank, T_FIXNUM); - rank = FIX2INT(rrank); - - rv = MPI_Graph_neighbors_count(*mc_comm->comm, rank, &nneighbors); - mpi_exception(rv); - - neighbors = ALLOCA_N(int, nneighbors); - - rv = MPI_Graph_neighbors(*mc_comm->comm, rank, nneighbors, neighbors); - mpi_exception(rv); - - rneighbors = rb_ary_new2(nneighbors); - for (i = 0; i < nneighbors; i++) - rb_ary_store(rneighbors, i, neighbors[i]); - - return rneighbors; -} - -static VALUE comm_cart_shift(VALUE self, VALUE rdir, VALUE rdisp) -{ - int rv, dir, disp, src, dest; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - Check_Type(rdir, T_FIXNUM); - Check_Type(rdisp, T_FIXNUM); - - dir = FIX2INT(rdir); - disp = FIX2INT(rdisp); - - rv = MPI_Cart_shift(*mc_comm->comm, dir, disp, &src, &dest); - mpi_exception(rv); - - return rb_ary_new3(2, rb_fix_new(src), rb_fix_new(dest)); -} - -static VALUE comm_cart_sub(VALUE self, VALUE rremain_dims) -{ - int rv, i, ndims, *remain_dims; - struct mpi_comm *mc_comm, *newcomm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - rv = MPI_Cartdim_get(*mc_comm->comm, &ndims); - mpi_exception(rv); - - if (RARRAY(rremain_dims)->len != ndims) { - mpi_exception(MPI_ERR_ARG); - return Qnil; - } - - newcomm = ALLOC(struct mpi_comm); - newcomm->comm = ALLOC(MPI_Comm); - newcomm->buffer = NULL; - newcomm->bufsize = 0; - - remain_dims = ALLOCA_N(int, ndims); - for (i = 0; i < ndims; i++) - remain_dims[i] = rb_ary_entry(rremain_dims, i); - - rv = MPI_Cart_sub(*mc_comm->comm, remain_dims, newcomm->comm); - mpi_exception(rv); - - return comm_new(newcomm); -} - -static VALUE comm_cart_map(VALUE self, VALUE rdims, VALUE rperiods) -{ - int rv, i, ndims, rank, *dims, *periods; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - ndims = RARRAY(rdims)->len; - if (RARRAY(rperiods)->len != ndims) { - mpi_exception(MPI_ERR_ARG); - return Qnil; - } - - dims = ALLOCA_N(int, ndims); - periods = ALLOCA_N(int, ndims); - - for (i = 0; i < ndims; i++) { - dims[i] = FIX2INT(rb_ary_entry(rdims, i)); - /* Qfalse and Qnil are the only values in Ruby that evaluate to - non-true. */ - periods[i] = (rb_ary_entry(rperiods, i) != Qfalse) && - (rb_ary_entry(rperiods, i) != Qnil); - } - - rv = MPI_Cart_map(*mc_comm->comm, ndims, dims, periods, &rank); - mpi_exception(rv); - - return rb_fix_new(rank); -} - -static VALUE comm_graph_map(VALUE self, VALUE rindex, VALUE redges) -{ - int rv, i, rank, nnodes, *index, *edges; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - nnodes = RARRAY(rindex)->len; - if (RARRAY(redges)->len != nnodes) { - mpi_exception(MPI_ERR_ARG); - return Qnil; - } - - index = ALLOCA_N(int, nnodes); - edges = ALLOCA_N(int, nnodes); - - for (i = 0; i < nnodes; i++) { - index[i] = FIX2INT(rb_ary_entry(rindex, i)); - edges[i] = FIX2INT(rb_ary_entry(redges, i)); - } - - rv = MPI_Graph_map(*mc_comm->comm, nnodes, index, edges, &rank); - mpi_exception(rv); - - return rb_fix_new(rank); -} - -/* Environmental */ - -static VALUE comm_rank(VALUE self) -{ - int rv, rank; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - rv = MPI_Comm_rank(*mc_comm->comm, &rank); - mpi_exception(rv); - - return rb_fix_new(rank); -} - -static VALUE comm_size(VALUE self) -{ - int rv, size; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - rv = MPI_Comm_size(*mc_comm->comm, &size); - mpi_exception(rv); - - return rb_fix_new(size); -} - -static VALUE comm_group(VALUE self) -{ - int rv; - MPI_Group *grp; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - grp = ALLOC(MPI_Group); - - rv = MPI_Comm_group(*mc_comm->comm, grp); - mpi_exception(rv); - - return group_new(grp); -} - -static VALUE comm_abort(VALUE self, VALUE rerrorcode) -{ - int rv, errorcode; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - errorcode = FIX2INT(rerrorcode); - - rv = MPI_Abort(*mc_comm->comm, errorcode); - mpi_exception(rv); - - return Qtrue; -} - -/* Point to point */ -static VALUE comm_send(VALUE self, VALUE obj, VALUE rdest, VALUE rtag) -{ - int rv; - int length; - int dest, tag; - char *data; - VALUE dump; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - Check_Type(rdest, T_FIXNUM); - dest = FIX2INT(rdest); - - if (rtag == ANY_TAG) { - tag = MPI_ANY_TAG; - } else { - Check_Type(rtag, T_FIXNUM); - tag = FIX2INT(rtag); - } - - dump = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(dump, &length); - - rv = MPI_Send(&length, 1, MPI_INT, dest, tag, *mc_comm->comm); - mpi_exception(rv); - rv = MPI_Send(data, length + 1, MPI_BYTE, dest, tag, *mc_comm->comm); - mpi_exception(rv); - - return Qtrue; -} - -static VALUE comm_recv(VALUE self, VALUE rsrc, VALUE rtag) -{ - int rv, length; - int src, tag; - char *data; - VALUE obj; - MPI_Status *stat; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - if (rsrc == ANY_SOURCE) { - src = MPI_ANY_SOURCE; - } else { - Check_Type(rsrc, T_FIXNUM); - src = FIX2INT(rsrc); - } - - if (rtag == ANY_TAG) { - tag = MPI_ANY_TAG; - } else { - Check_Type(rtag, T_FIXNUM); - tag = FIX2INT(rtag); - } - - stat = ALLOC(MPI_Status); - rv = MPI_Recv(&length, 1, MPI_INT, src, tag, *mc_comm->comm, stat); - mpi_exception(rv); - - data = ALLOC_N(char, length + 1); - rv = MPI_Recv(data, length+1, MPI_BYTE, src, tag, *mc_comm->comm, stat); - mpi_exception(rv); - obj = rb_str_new(data, length + 1); - - return rb_ary_new3(2, rb_funcall(mMarshal, id_load, 1, obj), - status_new(stat)); -} - -static VALUE comm_bsend(VALUE self, VALUE obj, VALUE rdest, VALUE rtag) -{ - int rv; - int length; - int dest, tag; - char *data; - VALUE dump; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - Check_Type(rdest, T_FIXNUM); - dest = FIX2INT(rdest); - - if (rtag == ANY_TAG) { - tag = MPI_ANY_TAG; - } else { - Check_Type(rtag, T_FIXNUM); - tag = FIX2INT(rtag); - } - - dump = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(dump, &length); - - rv = MPI_Bsend(&length, 1, MPI_INT, dest, tag, *mc_comm->comm); - mpi_exception(rv); - rv = MPI_Bsend(data, length+1, MPI_BYTE, dest, tag, *mc_comm->comm); - mpi_exception(rv); - - return Qtrue; -} - -static VALUE comm_ssend(VALUE self, VALUE obj, VALUE rdest, VALUE rtag) -{ - int rv; - int length; - int dest, tag; - char *data; - VALUE dump; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - Check_Type(rdest, T_FIXNUM); - dest = FIX2INT(rdest); - - if (rtag == ANY_TAG) { - tag = MPI_ANY_TAG; - } else { - Check_Type(rtag, T_FIXNUM); - tag = FIX2INT(rtag); - } - - dump = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(dump, &length); - - rv = MPI_Ssend(&length, 1, MPI_INT, dest, tag, *mc_comm->comm); - mpi_exception(rv); - rv = MPI_Ssend(data, length+1, MPI_BYTE, dest, tag, *mc_comm->comm); - mpi_exception(rv); - - return Qtrue; -} - -static VALUE comm_rsend(VALUE self, VALUE obj, VALUE rdest, VALUE rtag) -{ - int rv; - int length; - int dest, tag; - char *data; - VALUE dump; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - Check_Type(rdest, T_FIXNUM); - dest = FIX2INT(rdest); - - if (rtag == ANY_TAG) { - tag = MPI_ANY_TAG; - } else { - Check_Type(rtag, T_FIXNUM); - tag = FIX2INT(rtag); - } - - dump = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(dump, &length); - - /* Note: we only care about the first one being a ready send. */ - /* If it works, that means the user did the correct thing. */ - rv = MPI_Rsend(&length, 1, MPI_INT, dest, tag, *mc_comm->comm); - mpi_exception(rv); - rv = MPI_Send(data, length + 1, MPI_BYTE, dest, tag, *mc_comm->comm); - mpi_exception(rv); - - return Qtrue; -} - -static VALUE comm_sendrecv(VALUE self, VALUE obj, VALUE rdest, VALUE rdtag, - VALUE rsrc, VALUE rstag) -{ - int rv; - int dest, src; - int dtag, stag; - int dlen, slen; - char *ddata, *sdata; - VALUE dump, str; - MPI_Status *stat; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - Check_Type(rdest, T_FIXNUM); - dest = FIX2INT(rdest); - - if (rdtag == ANY_TAG) { - dtag = MPI_ANY_TAG; - } else { - Check_Type(rdtag, T_FIXNUM); - dtag = FIX2INT(rdtag); - } - - if (rsrc == ANY_SOURCE) { - src = MPI_ANY_SOURCE; - } else { - Check_Type(rsrc, T_FIXNUM); - src = FIX2INT(rsrc); - } - - if (rstag == ANY_TAG) { - stag = MPI_ANY_TAG; - } else { - Check_Type(rstag, T_FIXNUM); - stag = FIX2INT(rstag); - } - - dump = rb_funcall(mMarshal, id_dump, 1, obj); - ddata = rb_str2cstr(dump, &dlen); - - stat = ALLOC(MPI_Status); - - rv = MPI_Sendrecv(&dlen, 1, MPI_INT, dest, dtag, - &slen, 1, MPI_INT, src, stag, - *mc_comm->comm, stat); - mpi_exception(rv); - - sdata = ALLOC_N(char, slen + 1); - - rv = MPI_Sendrecv(ddata, dlen + 1, MPI_BYTE, dest, dtag, - sdata, slen + 1, MPI_BYTE, src, stag, - *mc_comm->comm, stat); - mpi_exception(rv); - - str = rb_str_new(sdata, slen + 1); - - return rb_ary_new3(2, rb_funcall(mMarshal, id_load, 1, str), - status_new(stat)); -} - -/* Non-blocking */ - -static VALUE comm_isend(VALUE self, VALUE obj, VALUE rdest, VALUE rtag) -{ - int rv; - int length; - int dest, tag; - char *data; - VALUE dump; - MPI_Request tmp, *req; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - Check_Type(rdest, T_FIXNUM); - dest = FIX2INT(rdest); - - if (rtag == ANY_TAG) { - tag = MPI_ANY_TAG; - } else { - Check_Type(rtag, T_FIXNUM); - tag = FIX2INT(rtag); - } - - dump = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(dump, &length); - - req = ALLOC(MPI_Request); - - rv = MPI_Isend(&length, 1, MPI_INT, dest, tag, *mc_comm->comm, &tmp); - mpi_exception(rv); - rv = MPI_Isend(data, length+1, MPI_BYTE, dest, tag, *mc_comm->comm, req); - mpi_exception(rv); - - return request_new(NORMAL, req); -} - -static VALUE comm_issend(VALUE self, VALUE obj, VALUE rdest, VALUE rtag) -{ - int rv; - int length; - int dest, tag; - char *data; - VALUE dump; - MPI_Request tmp, *req; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - dest = FIX2INT(rdest); - Check_Type(rdest, T_FIXNUM); - - if (rtag == ANY_TAG) { - tag = MPI_ANY_TAG; - } else { - Check_Type(rtag, T_FIXNUM); - tag = FIX2INT(rtag); - } - - dump = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(dump, &length); - - req = ALLOC(MPI_Request); - - rv = MPI_Issend(&length, 1, MPI_INT, dest, tag, *mc_comm->comm, &tmp); - mpi_exception(rv); - rv = MPI_Issend(data, length+1, MPI_BYTE, dest, tag, *mc_comm->comm, req); - mpi_exception(rv); - - return request_new(NORMAL, req); -} - -static VALUE comm_ibsend(VALUE self, VALUE obj, VALUE rdest, VALUE rtag) -{ - int rv; - int length; - int dest, tag; - char *data; - VALUE dump; - MPI_Request tmp, *req; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - dest = FIX2INT(rdest); - Check_Type(rdest, T_FIXNUM); - - if (rtag == ANY_TAG) { - tag = MPI_ANY_TAG; - } else { - Check_Type(rtag, T_FIXNUM); - tag = FIX2INT(rtag); - } - - - dump = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(dump, &length); - - req = ALLOC(MPI_Request); - - rv = MPI_Ibsend(&length, 1, MPI_INT, dest, tag, *mc_comm->comm, &tmp); - mpi_exception(rv); - rv = MPI_Ibsend(data, length+1, MPI_BYTE, dest, tag, *mc_comm->comm, req); - mpi_exception(rv); - - return request_new(NORMAL, req); -} - -static VALUE comm_irsend(VALUE self, VALUE obj, VALUE rdest, VALUE rtag) -{ - int rv; - int length; - int dest, tag; - char *data; - VALUE dump; - MPI_Request tmp, *req; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - Check_Type(rdest, T_FIXNUM); - dest = FIX2INT(rdest); - - if (rtag == ANY_TAG) { - tag = MPI_ANY_TAG; - } else { - Check_Type(rtag, T_FIXNUM); - tag = FIX2INT(rtag); - } - - dump = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(dump, &length); - - req = ALLOC(MPI_Request); - - rv = MPI_Irsend(&length, 1, MPI_INT, dest, tag, *mc_comm->comm, &tmp); - mpi_exception(rv); - rv = MPI_Irsend(data, length+1, MPI_BYTE, dest, tag, *mc_comm->comm, req); - mpi_exception(rv); - - return request_new(NORMAL, req); -} - -static VALUE comm_irecv(VALUE self, VALUE rsrc, VALUE rtag) -{ - int src, tag; - struct mpi_comm *mc_comm; - VALUE req; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - if (rsrc == ANY_SOURCE) { - src = MPI_ANY_SOURCE; - } else { - Check_Type(rsrc, T_FIXNUM); - src = FIX2INT(rsrc); - } - - if (rtag == ANY_TAG) { - tag = MPI_ANY_TAG; - } else { - Check_Type(rtag, T_FIXNUM); - tag = FIX2INT(rtag); - } - - req = request_new(RECV, src, tag, mc_comm->comm); - request_start(req); - - return req; -} - -/* Persistent communication */ -static VALUE comm_send_init(VALUE self, VALUE obj, VALUE rdest, VALUE rtag) -{ - int dest, tag; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - dest = FIX2INT(rdest); - Check_Type(rdest, T_FIXNUM); - - if (rtag == ANY_TAG) { - tag = MPI_ANY_TAG; - } else { - Check_Type(rtag, T_FIXNUM); - tag = FIX2INT(rtag); - } - - return request_new(PSEND, obj, dest, tag, mc_comm->comm); -} - -static VALUE comm_bsend_init(VALUE self, VALUE obj, VALUE rdest, VALUE rtag) -{ - int dest, tag; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - dest = FIX2INT(rdest); - Check_Type(rdest, T_FIXNUM); - - if (rtag == ANY_TAG) { - tag = MPI_ANY_TAG; - } else { - Check_Type(rtag, T_FIXNUM); - tag = FIX2INT(rtag); - } - - return request_new(PBSEND, obj, dest, tag, mc_comm->comm); -} - -static VALUE comm_ssend_init(VALUE self, VALUE obj, VALUE rdest, VALUE rtag) -{ - int dest, tag; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - Check_Type(rdest, T_FIXNUM); - dest = FIX2INT(rdest); - - if (rtag == ANY_TAG) { - tag = MPI_ANY_TAG; - } else { - Check_Type(rtag, T_FIXNUM); - tag = FIX2INT(rtag); - } - - return request_new(PSSEND, obj, dest, tag, mc_comm->comm); -} - -static VALUE comm_rsend_init(VALUE self, VALUE obj, VALUE rdest, VALUE rtag) -{ - int dest, tag; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - dest = FIX2INT(rdest); - Check_Type(rdest, T_FIXNUM); - - if (rtag == ANY_TAG) { - tag = MPI_ANY_TAG; - } else { - Check_Type(rtag, T_FIXNUM); - tag = FIX2INT(rtag); - } - - return request_new(PRSEND, obj, dest, tag, mc_comm->comm); -} - -static VALUE comm_recv_init(VALUE self, VALUE rsrc, VALUE rtag) -{ - int src, tag; - struct mpi_comm *mc_comm; - VALUE req; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - if (rsrc == ANY_SOURCE) { - src = MPI_ANY_SOURCE; - } else { - Check_Type(rsrc, T_FIXNUM); - src = FIX2INT(rsrc); - } - - if (rtag == ANY_TAG) { - tag = MPI_ANY_TAG; - } else { - Check_Type(rtag, T_FIXNUM); - tag = FIX2INT(rtag); - } - - req = request_new(RECV, src, tag, mc_comm->comm); - - return req; -} - -/* Buffering */ -static VALUE comm_buffer_for(VALUE self, VALUE ary) -{ - int rv; - int length; - VALUE dump; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - dump = rb_funcall(mMarshal, id_dump, 1, ary); - length = RSTRING(dump)->len; - /* Add this so we can send lengths before each object */ - length += (sizeof(int) * RARRAY(ary)->len); - - if (mc_comm->bufsize < length) { - int size; - char *buffer; - - rv = MPI_Buffer_detach(&buffer, &size); - mpi_exception(rv); - - REALLOC_N(mc_comm->buffer, char, length); - mc_comm->bufsize = length; - - rv = MPI_Buffer_attach(mc_comm->buffer, length); - mpi_exception(rv); - } - - return Qtrue; -} - -static VALUE comm_unbuffer(VALUE self) -{ - int rv; - int size; - char *buffer; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - rv = MPI_Buffer_detach(&buffer, &size); - mpi_exception(rv); - - mc_comm->buffer = NULL; - mc_comm->bufsize = 0; - free(buffer); - - return Qtrue; -} - - -/* Collective ops */ - -static VALUE comm_barrier(VALUE self) -{ - int rv; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - rv = MPI_Barrier(*mc_comm->comm); - mpi_exception(rv); - - return Qtrue; -} - -static VALUE comm_bcast(VALUE self, VALUE obj, VALUE rroot) -{ - int rv, rank, root, length; - char *data; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - root = FIX2INT(rroot); - - rv = MPI_Comm_rank(*mc_comm->comm, &rank); - mpi_exception(rv); - - if (rank == root) { - VALUE dump; - - dump = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(dump, &length); - } - - rv = MPI_Bcast(&length, 1, MPI_INT, root, *mc_comm->comm); - mpi_exception(rv); - - if (rank != root) - data = ALLOCA_N(char, length + 1); - - rv = MPI_Bcast(data, length + 1, MPI_BYTE, root, *mc_comm->comm); - mpi_exception(rv); - - if (rank == root) { - return obj; - } else { - VALUE load; - - obj = rb_str_new(data, length); - load = rb_funcall(mMarshal, id_load, 1, obj); - - return load; - } -} - -#define GATHER_TAG 42 -static VALUE comm_gather(VALUE self, VALUE obj, VALUE rroot) -{ - /* This is being reimplemented based on the MPICH algorithm to allow - gathering of objects of arbitrary size */ - int rv, rank, root, csize, length; - char *data; - struct mpi_comm *mc_comm; - VALUE ary; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - root = FIX2INT(rroot); - - rv = MPI_Comm_rank(*mc_comm->comm, &rank); - mpi_exception(rv); - rv = MPI_Comm_size(*mc_comm->comm, &csize); - mpi_exception(rv); - - if (rank == root) { - int i; - - ary = rb_ary_new2(csize); - rb_ary_store(ary, root, obj); - - for (i = 0; i < csize; i++) { - if (i != rank) { - VALUE load; - MPI_Status stat; - - rv = MPI_Recv(&length, 1, MPI_INT, i, GATHER_TAG, - *mc_comm->comm, &stat); - mpi_exception(rv); - - data = ALLOC_N(char, length + 1); - rv = MPI_Recv(data, length+1, MPI_INT, i, GATHER_TAG, - *mc_comm->comm, &stat); - mpi_exception(rv); - - obj = rb_str_new(data, length + 1); - load = rb_funcall(mMarshal, id_load, 1, obj); - - rb_ary_store(ary, i, load); - } - } - - return ary; - } else { - VALUE dump; - MPI_Request reqs[2]; - MPI_Status stats[2]; - - dump = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(dump, &length); - - rv = MPI_Isend(&length, 1, MPI_INT, root, GATHER_TAG, - *mc_comm->comm, &reqs[0]); - mpi_exception(rv); - rv = MPI_Isend(data, length+1, MPI_BYTE, root, GATHER_TAG, - *mc_comm->comm, &reqs[1]); - mpi_exception(rv); - - rv = MPI_Waitall(2, reqs, stats); - mpi_exception(rv); - - return Qtrue; - } -} - -static VALUE map_in_place(VALUE ary) -{ - return rb_funcall(ary, id_map_bang, 0); -} - -static VALUE marshal_load(VALUE mdata, VALUE extra) -{ - return rb_funcall(mMarshal, id_load, 1, mdata); -} - -#define ALLGATHER_TAG 43 -static VALUE comm_allgather(VALUE self, VALUE obj) -{ - int rv; - int i, j, jnext; - int rank, csize, left, right; - int length_right, length_left; - char *in, *out; - struct mpi_comm *mc_comm; - VALUE dump, ary; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - rv = MPI_Comm_rank(*mc_comm->comm, &rank); - mpi_exception(rv); - rv = MPI_Comm_size(*mc_comm->comm, &csize); - mpi_exception(rv); - - /* Everybody marshals their own data first and that's how it's */ - /* transmitted. Unmarshalling doesn't happen until everyone */ - /* has all the data. */ - dump = rb_funcall(mMarshal, id_dump, 1, obj); - - ary = rb_ary_new2(csize); - rb_ary_store(ary, rank, dump); - - left = (csize + rank - 1) % csize; - right = (rank + 1) % csize; - - j = rank; - jnext = left; - for (i = 1; i < csize; i++) { - MPI_Status stat; - - out = rb_str2cstr(rb_ary_entry(ary, j), &length_right); - - rv = MPI_Sendrecv(&length_right, 1, MPI_INT, right, ALLGATHER_TAG, - &length_left, 1, MPI_INT, left, ALLGATHER_TAG, *mc_comm->comm, - &stat); - mpi_exception(rv); - - in = ALLOC_N(char, length_left + 1); - - rv = MPI_Sendrecv(out, length_right + 1, MPI_BYTE, right, ALLGATHER_TAG, - in, length_left + 1, MPI_BYTE, left, ALLGATHER_TAG, - *mc_comm->comm, &stat); - mpi_exception(rv); - - rb_ary_store(ary, jnext, rb_str_new(in, length_left + 1)); - - j = jnext; - jnext = (csize + jnext - 1) % csize; - } - - return rb_iterate(map_in_place, ary, marshal_load, Qnil); -} - -static VALUE comm_scatter(VALUE self, VALUE ary, VALUE rroot) -{ - int rv, rank, csize, root, longest = 0; - char *send, *recv; - struct marshalled { - char *str; - int length; - } *datav; - struct mpi_comm *mc_comm; - MPI_Datatype dtype; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - root = FIX2INT(rroot); - - rv = MPI_Comm_rank(*mc_comm->comm, &rank); - mpi_exception(rv); - - rv = MPI_Comm_size(*mc_comm->comm, &csize); - mpi_exception(rv); - - if (RARRAY(ary)->len != csize) { - mpi_exception(MPI_ERR_ARG); - return Qnil; - } - - if (rank == root) { - int i; - VALUE dump; - - datav = ALLOCA_N(struct marshalled, csize); - - for (i = 0; i < csize; i++) { - dump = rb_funcall(mMarshal, id_dump, 1, rb_ary_entry(ary, i)); - datav[i].str = rb_str2cstr(dump, &datav[i].length); - - if (datav[i].length + 1 > longest) - longest = datav[i].length + 1; - } - - send = ALLOCA_N(char, csize * longest); - - for (i = 0; i < csize; i++) - MEMCPY(send + (i * longest), datav[i].str, char, datav[i].length); - } - - rv = MPI_Bcast(&longest, 1, MPI_INT, root, *mc_comm->comm); - mpi_exception(rv); - - rv = MPI_Type_contiguous(longest, MPI_BYTE, &dtype); - mpi_exception(rv); - - rv = MPI_Type_commit(&dtype); - mpi_exception(rv); - - recv = ALLOCA_N(char, longest); - - rv = MPI_Scatter(send, csize * longest, dtype, recv, longest, dtype, - root, *mc_comm->comm); - mpi_exception(rv); - - rv = MPI_Type_free(&dtype); - mpi_exception(rv); - - return rb_funcall(mMarshal, id_load, 1, rb_str_new(recv, longest)); -} - -static VALUE comm_alltoall(VALUE self, VALUE sary) -{ - int rv, i, csize, longest = 0, glongest; - char *send, *recv; - struct marshalled { - char *str; - int length; - } *datav; - struct mpi_comm *mc_comm; - MPI_Datatype dtype; - VALUE rary; - - rv = MPI_Comm_size(*mc_comm->comm, &csize); - mpi_exception(rv); - - if (RARRAY(sary)->len != csize) { - mpi_exception(MPI_ERR_ARG); - return Qnil; - } - - datav = ALLOCA_N(struct marshalled, csize); - - for (i = 0; i < csize; i++) { - VALUE dump; - - dump = rb_funcall(mMarshal, id_dump, 1, rb_ary_entry(sary, i)); - datav[i].str = rb_str2cstr(dump, &datav[i].length); - - if (datav[i].length + 1 > longest) - longest = datav[i].length + 1; - } - - send = ALLOCA_N(char, csize * longest); - - for (i = 0; i < csize; i++) - MEMCPY(send + (i * longest), datav[i].str, char, datav[i].length); - - rv = MPI_Allreduce(&longest, &glongest,1, MPI_INT, MPI_MAX, *mc_comm->comm); - mpi_exception(rv); - - rv = MPI_Type_contiguous(glongest, MPI_BYTE, &dtype); - mpi_exception(rv); - - rv = MPI_Type_commit(&dtype); - mpi_exception(rv); - - recv = ALLOCA_N(char, csize * glongest); - - rv = MPI_Alltoall(send, csize, dtype, recv, csize, dtype, *mc_comm->comm); - mpi_exception(rv); - - rary = rb_ary_new2(csize); - - for (i = 0; i < csize; i++) { - VALUE str; - - str = rb_str_new(recv + (i * glongest), glongest); - rb_ary_store(rary, i, rb_funcall(mMarshal, id_load, 1, str)); - } - - rv = MPI_Type_free(&dtype); - mpi_exception(rv); - - return rary; -} - -static VALUE comm_reduce(VALUE self, VALUE obj, VALUE rop, VALUE rroot) -{ - int rv, i; - int rank, root; - int arylen = -1, arymax, arymin; - char *send, *recv = NULL, *tmp; - int length, longest, resize; - struct mpi_comm *mc_comm; - MPI_Datatype dtype; - VALUE dump; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - Check_Type(rroot, T_FIXNUM); - root = FIX2INT(rroot); - - rv = MPI_Comm_rank(*mc_comm->comm, &rank); - mpi_exception(rv); - - /* If an array was passed in, check that it's valid */ - if (TYPE(obj) == T_ARRAY) - arylen = RARRAY(obj)->len; - - rv = MPI_Allreduce(&arylen, &arymax, 1, MPI_INT, MPI_MAX, *mc_comm->comm); - mpi_exception(rv); - - rv = MPI_Allreduce(&arylen, &arymin, 1, MPI_INT, MPI_MIN, *mc_comm->comm); - mpi_exception(rv); - - if (arymin != arymax) { - mpi_exception(MPI_ERR_ARG); - return Qnil; - } - - if (arylen >= 0) { - for (i = 0; i < arylen; i++) { - dump = rb_funcall(mMarshal, id_dump, 1, rb_ary_entry(obj, i)); - rb_str2cstr(dump, &length); - - if (length > longest) - longest = length; - } - - length = longest; - } else { - dump = rb_funcall(mMarshal, id_dump, 1, obj); - tmp = rb_str2cstr(dump, &length); - } - - /* Global length check */ - rv = MPI_Allreduce(&length, &longest, 1, MPI_INT, MPI_MAX, *mc_comm->comm); - mpi_exception(rv); - - rv = MPI_Type_contiguous(longest + 1, MPI_BYTE, &dtype); - mpi_exception(rv); - - rv = MPI_Type_commit(&dtype); - mpi_exception(rv); - - /* Allocation and copying */ - if (arylen >= 0) { - if (rank == root) - recv = ALLOCA_N(char, (longest + 1) * arylen); - - send = ALLOCA_N(char, (longest + 1) * arylen); - - for (i = 0; i < arylen; i++) { - dump = rb_funcall(mMarshal, id_dump, 1, rb_ary_entry(obj, i)); - tmp = rb_str2cstr(dump, &length); - - MEMCPY(send + (i * (longest + 1)), tmp, char, length + 1); - } - - rv = MPI_Reduce(send, recv, arylen, dtype, *op_get_mpi_op(rop), - root, *mc_comm->comm); - mpi_exception(rv); - - resize = op_get_resize(rop); - while (resize > 0) { - op_clear_resize(rop); - - rv = MPI_Type_free(&dtype); - mpi_exception(rv); - - rv = MPI_Type_contiguous(resize, MPI_BYTE, &dtype); - mpi_exception(rv); - - rv = MPI_Type_commit(&dtype); - mpi_exception(rv); - - /* The send buffer is likely to have gotten munged. Reinit. */ - for (i = 0; i < arylen; i++) { - dump = rb_funcall(mMarshal, id_dump, 1, rb_ary_entry(obj, i)); - tmp = rb_str2cstr(dump, &length); - - MEMCPY(send + (i * (longest + 1)), tmp, char, length + 1); - } - - rv = MPI_Reduce(send, recv, arylen, dtype, *op_get_mpi_op(rop), - root, *mc_comm->comm); - mpi_exception(rv); - - resize = op_get_resize(rop); - } - - rv = MPI_Type_free(&dtype); - mpi_exception(rv); - - if (rank == root) { - VALUE ary; - - ary = rb_ary_new2(arylen); - for (i = 0; i < arylen; i++) { - VALUE str, obj; - - str = rb_str_new(recv + (i * (longest + 1)), longest + 1); - obj = rb_funcall(mMarshal, id_load, 1, str); - rb_ary_store(ary, i, obj); - } - - return ary; - } - } else { - if (rank == root) - recv = ALLOCA_N(char, longest + 1); - - send = ALLOCA_N(char, longest + 1); - MEMCPY(send, tmp, char, length + 1); - - rv = MPI_Reduce(send, recv, 1, dtype, *op_get_mpi_op(rop), - root, *mc_comm->comm); - mpi_exception(rv); - - resize = op_get_resize(rop); - while (resize > 0) { - op_clear_resize(rop); - - rv = MPI_Type_free(&dtype); - mpi_exception(rv); - - rv = MPI_Type_contiguous(resize, MPI_BYTE, &dtype); - mpi_exception(rv); - - rv = MPI_Type_commit(&dtype); - mpi_exception(rv); - - /* The send buffer is likely to have gotten munged. Reinit. */ - dump = rb_funcall(mMarshal, id_dump, 1, obj); - tmp = rb_str2cstr(dump, &length); - MEMCPY(send, tmp, char, length + 1); - - rv = MPI_Reduce(send, recv, 1, dtype, *op_get_mpi_op(rop), - root, *mc_comm->comm); - mpi_exception(rv); - - resize = op_get_resize(rop); - } - - rv = MPI_Type_free(&dtype); - mpi_exception(rv); - - if (rank == root) - return rb_funcall(mMarshal, id_load, 1, rb_str_new(recv,longest+1)); - } - - return Qtrue; -} - -static VALUE comm_allreduce(VALUE self, VALUE obj, VALUE rop) -{ - int rv, i; - int arylen = -1, arymax, arymin; - char *send, *recv = NULL, *tmp; - int length, longest, resize; - struct mpi_comm *mc_comm; - MPI_Datatype dtype; - VALUE dump; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - /* If an array was passed in, check that it's valid */ - if (TYPE(obj) == T_ARRAY) - arylen = RARRAY(obj)->len; - - rv = MPI_Allreduce(&arylen, &arymax, 1, MPI_INT, MPI_MAX, *mc_comm->comm); - mpi_exception(rv); - - rv = MPI_Allreduce(&arylen, &arymin, 1, MPI_INT, MPI_MIN, *mc_comm->comm); - mpi_exception(rv); - - if (arymin != arymax) { - mpi_exception(MPI_ERR_ARG); - return Qnil; - } - - if (arylen >= 0) { - for (i = 0; i < arylen; i++) { - dump = rb_funcall(mMarshal, id_dump, 1, rb_ary_entry(obj, i)); - rb_str2cstr(dump, &length); - - if (length > longest) - longest = length; - } - - length = longest; - } else { - dump = rb_funcall(mMarshal, id_dump, 1, obj); - tmp = rb_str2cstr(dump, &length); - } - - /* Global length check */ - rv = MPI_Allreduce(&length, &longest, 1, MPI_INT, MPI_MAX, *mc_comm->comm); - mpi_exception(rv); - - rv = MPI_Type_contiguous(longest + 1, MPI_BYTE, &dtype); - mpi_exception(rv); - - rv = MPI_Type_commit(&dtype); - mpi_exception(rv); - - /* Allocation and copying */ - if (arylen >= 0) { - VALUE ary; - - recv = ALLOCA_N(char, (longest + 1) * arylen); - send = ALLOCA_N(char, (longest + 1) * arylen); - - for (i = 0; i < arylen; i++) { - dump = rb_funcall(mMarshal, id_dump, 1, rb_ary_entry(obj, i)); - tmp = rb_str2cstr(dump, &length); - - MEMCPY(send + (i * (longest + 1)), tmp, char, length + 1); - } - - rv = MPI_Allreduce(send, recv, arylen, dtype, *op_get_mpi_op(rop), - *mc_comm->comm); - mpi_exception(rv); - - resize = op_get_resize(rop); - while (resize > 0) { - op_clear_resize(rop); - - rv = MPI_Type_free(&dtype); - mpi_exception(rv); - - rv = MPI_Type_contiguous(resize, MPI_BYTE, &dtype); - mpi_exception(rv); - - rv = MPI_Type_commit(&dtype); - mpi_exception(rv); - - /* The send buffer is likely to have gotten munged. Reinit. */ - for (i = 0; i < arylen; i++) { - dump = rb_funcall(mMarshal, id_dump, 1, rb_ary_entry(obj, i)); - tmp = rb_str2cstr(dump, &length); - - MEMCPY(send + (i * (longest + 1)), tmp, char, length + 1); - } - - rv = MPI_Allreduce(send, recv, arylen, dtype, *op_get_mpi_op(rop), - *mc_comm->comm); - mpi_exception(rv); - - resize = op_get_resize(rop); - } - - rv = MPI_Type_free(&dtype); - mpi_exception(rv); - - ary = rb_ary_new2(arylen); - for (i = 0; i < arylen; i++) { - VALUE str, obj; - - str = rb_str_new(recv + (i * (longest + 1)), longest + 1); - obj = rb_funcall(mMarshal, id_load, 1, str); - rb_ary_store(ary, i, obj); - } - - return ary; - } else { - recv = ALLOCA_N(char, longest + 1); - send = ALLOCA_N(char, longest + 1); - MEMCPY(send, tmp, char, length + 1); - - rv = MPI_Allreduce(send, recv, 1, dtype, *op_get_mpi_op(rop), - *mc_comm->comm); - mpi_exception(rv); - - resize = op_get_resize(rop); - while (resize > 0) { - op_clear_resize(rop); - - rv = MPI_Type_free(&dtype); - mpi_exception(rv); - - rv = MPI_Type_contiguous(resize, MPI_BYTE, &dtype); - mpi_exception(rv); - - rv = MPI_Type_commit(&dtype); - mpi_exception(rv); - - /* The send buffer is likely to have gotten munged. Reinit. */ - dump = rb_funcall(mMarshal, id_dump, 1, obj); - tmp = rb_str2cstr(dump, &length); - MEMCPY(send, tmp, char, length + 1); - - rv = MPI_Allreduce(send, recv, 1, dtype, *op_get_mpi_op(rop), - *mc_comm->comm); - mpi_exception(rv); - - resize = op_get_resize(rop); - } - - rv = MPI_Type_free(&dtype); - mpi_exception(rv); - - return rb_funcall(mMarshal, id_load, 1, rb_str_new(recv, longest + 1)); - } -} - -static VALUE comm_scan(VALUE self, VALUE obj, VALUE rop) -{ - int rv, i; - int arylen = -1, arymax, arymin; - char *send, *recv = NULL, *tmp; - int length, longest, resize; - struct mpi_comm *mc_comm; - MPI_Datatype dtype; - VALUE dump; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - /* If an array was passed in, check that it's valid */ - if (TYPE(obj) == T_ARRAY) - arylen = RARRAY(obj)->len; - - rv = MPI_Allreduce(&arylen, &arymax, 1, MPI_INT, MPI_MAX, *mc_comm->comm); - mpi_exception(rv); - - rv = MPI_Allreduce(&arylen, &arymin, 1, MPI_INT, MPI_MIN, *mc_comm->comm); - mpi_exception(rv); - - if (arymin != arymax) { - mpi_exception(MPI_ERR_ARG); - return Qnil; - } - - if (arylen >= 0) { - for (i = 0; i < arylen; i++) { - dump = rb_funcall(mMarshal, id_dump, 1, rb_ary_entry(obj, i)); - rb_str2cstr(dump, &length); - - if (length > longest) - longest = length; - } - - length = longest; - } else { - dump = rb_funcall(mMarshal, id_dump, 1, obj); - tmp = rb_str2cstr(dump, &length); - } - - /* Global length check */ - rv = MPI_Allreduce(&length, &longest, 1, MPI_INT, MPI_MAX, *mc_comm->comm); - mpi_exception(rv); - - rv = MPI_Type_contiguous(longest + 1, MPI_BYTE, &dtype); - mpi_exception(rv); - - rv = MPI_Type_commit(&dtype); - mpi_exception(rv); - - /* Allocation and copying */ - if (arylen >= 0) { - VALUE ary; - - recv = ALLOCA_N(char, (longest + 1) * arylen); - send = ALLOCA_N(char, (longest + 1) * arylen); - - for (i = 0; i < arylen; i++) { - dump = rb_funcall(mMarshal, id_dump, 1, rb_ary_entry(obj, i)); - tmp = rb_str2cstr(dump, &length); - - MEMCPY(send + (i * (longest + 1)), tmp, char, length + 1); - } - - rv = MPI_Scan(send, recv, arylen, dtype, *op_get_mpi_op(rop), - *mc_comm->comm); - mpi_exception(rv); - - resize = op_get_resize(rop); - while (resize > 0) { - op_clear_resize(rop); - - rv = MPI_Type_free(&dtype); - mpi_exception(rv); - - rv = MPI_Type_contiguous(resize, MPI_BYTE, &dtype); - mpi_exception(rv); - - rv = MPI_Type_commit(&dtype); - mpi_exception(rv); - - /* The send buffer is likely to have gotten munged. Reinit. */ - for (i = 0; i < arylen; i++) { - dump = rb_funcall(mMarshal, id_dump, 1, rb_ary_entry(obj, i)); - tmp = rb_str2cstr(dump, &length); - - MEMCPY(send + (i * (longest + 1)), tmp, char, length + 1); - } - - rv = MPI_Scan(send, recv, arylen, dtype, *op_get_mpi_op(rop), - *mc_comm->comm); - mpi_exception(rv); - - resize = op_get_resize(rop); - } - - rv = MPI_Type_free(&dtype); - mpi_exception(rv); - - ary = rb_ary_new2(arylen); - for (i = 0; i < arylen; i++) { - VALUE str, obj; - - str = rb_str_new(recv + (i * (longest + 1)), longest + 1); - obj = rb_funcall(mMarshal, id_load, 1, str); - rb_ary_store(ary, i, obj); - } - - return ary; - } else { - recv = ALLOCA_N(char, longest + 1); - send = ALLOCA_N(char, longest + 1); - MEMCPY(send, tmp, char, length + 1); - - rv = MPI_Scan(send, recv, 1, dtype, *op_get_mpi_op(rop), - *mc_comm->comm); - mpi_exception(rv); - - resize = op_get_resize(rop); - while (resize > 0) { - op_clear_resize(rop); - - rv = MPI_Type_free(&dtype); - mpi_exception(rv); - - rv = MPI_Type_contiguous(resize, MPI_BYTE, &dtype); - mpi_exception(rv); - - rv = MPI_Type_commit(&dtype); - mpi_exception(rv); - - /* The send buffer is likely to have gotten munged. Reinit. */ - dump = rb_funcall(mMarshal, id_dump, 1, obj); - tmp = rb_str2cstr(dump, &length); - MEMCPY(send, tmp, char, length + 1); - - rv = MPI_Scan(send, recv, 1, dtype, *op_get_mpi_op(rop), - *mc_comm->comm); - mpi_exception(rv); - - resize = op_get_resize(rop); - } - - rv = MPI_Type_free(&dtype); - mpi_exception(rv); - - return rb_funcall(mMarshal, id_load, 1, rb_str_new(recv, longest + 1)); - } -} - -static VALUE comm_reduce_scatter(VALUE self, VALUE obj, VALUE rcounts, - VALUE rop) -{ - int rv, i; - int rank, csize, my_size; - int *recvcounts, count = 0; - int arylen = -1, ary_ok, all_ok; - char *send, *recv = NULL, *tmp; - int length, longest, resize; - struct mpi_comm *mc_comm; - MPI_Datatype dtype; - VALUE dump; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - rv = MPI_Comm_rank(*mc_comm->comm, &rank); - mpi_exception(rv); - rv = MPI_Comm_size(*mc_comm->comm, &csize); - mpi_exception(rv); - - if (RARRAY(rcounts)->len != csize) { - mpi_exception(MPI_ERR_ARG); - return Qnil; - } - - /* Get the receive counts */ - recvcounts = ALLOCA_N(int, csize); - for (i = 0; i < csize; i++) - recvcounts[i] = FIX2INT(rb_ary_entry(rcounts, i)); - - for (i = 0; i < csize; i++) - count += FIX2INT(rb_ary_entry(rcounts, i)); - - /* If an array was passed in, check that it's valid */ - if (TYPE(obj) == T_ARRAY) - arylen = RARRAY(obj)->len; - - if (arylen >= 0) - ary_ok = (arylen == count); - else - ary_ok = (count == 1); - - rv = MPI_Allreduce(&ary_ok, &all_ok, 1, MPI_INT, MPI_LAND, *mc_comm->comm); - mpi_exception(rv); - - if (!all_ok) { - mpi_exception(MPI_ERR_ARG); - return Qnil; - } - - if (arylen >= 0) { - for (i = 0; i < arylen; i++) { - dump = rb_funcall(mMarshal, id_dump, 1, rb_ary_entry(obj, i)); - rb_str2cstr(dump, &length); - - if (length > longest) - longest = length; - } - - length = longest; - } else { - dump = rb_funcall(mMarshal, id_dump, 1, obj); - tmp = rb_str2cstr(dump, &length); - } - - /* Global length check */ - rv = MPI_Allreduce(&length, &longest, 1, MPI_INT, MPI_MAX, *mc_comm->comm); - mpi_exception(rv); - - rv = MPI_Type_contiguous(longest + 1, MPI_BYTE, &dtype); - mpi_exception(rv); - - rv = MPI_Type_commit(&dtype); - mpi_exception(rv); - - /* Allocation and copying */ - my_size = FIX2INT(rb_ary_entry(rcounts, rank)); - recv = ALLOCA_N(char, (longest + 1) * my_size); - - if (arylen >= 0) { - VALUE ary; - - send = ALLOCA_N(char, (longest + 1) * arylen); - for (i = 0; i < arylen; i++) { - dump = rb_funcall(mMarshal, id_dump, 1, rb_ary_entry(obj, i)); - tmp = rb_str2cstr(dump, &length); - - MEMCPY(send + (i * (longest + 1)), tmp, char, length + 1); - } - - rv = MPI_Reduce_scatter(send, recv, recvcounts, dtype, - *op_get_mpi_op(rop), *mc_comm->comm); - mpi_exception(rv); - - resize = op_get_resize(rop); - while (resize > 0) { - op_clear_resize(rop); - - rv = MPI_Type_free(&dtype); - mpi_exception(rv); - - rv = MPI_Type_contiguous(resize, MPI_BYTE, &dtype); - mpi_exception(rv); - - rv = MPI_Type_commit(&dtype); - mpi_exception(rv); - - /* The send buffer is likely to have gotten munged. Reinit. */ - for (i = 0; i < arylen; i++) { - dump = rb_funcall(mMarshal, id_dump, 1, rb_ary_entry(obj, i)); - tmp = rb_str2cstr(dump, &length); - - MEMCPY(send + (i * (longest + 1)), tmp, char, length + 1); - } - - rv = MPI_Reduce_scatter(send, recv, recvcounts, dtype, - *op_get_mpi_op(rop), *mc_comm->comm); - mpi_exception(rv); - - resize = op_get_resize(rop); - } - - rv = MPI_Type_free(&dtype); - mpi_exception(rv); - - ary = rb_ary_new2(my_size); - for (i = 0; i < my_size; i++) { - VALUE str, obj; - - str = rb_str_new(recv + (i * (longest + 1)), longest + 1); - obj = rb_funcall(mMarshal, id_load, 1, str); - rb_ary_store(ary, i, obj); - } - - return ary; - } else { - send = ALLOCA_N(char, longest + 1); - MEMCPY(send, tmp, char, length + 1); - - rv = MPI_Reduce_scatter(send, recv, recvcounts, dtype, - *op_get_mpi_op(rop), *mc_comm->comm); - mpi_exception(rv); - - resize = op_get_resize(rop); - while (resize > 0) { - op_clear_resize(rop); - - rv = MPI_Type_free(&dtype); - mpi_exception(rv); - - rv = MPI_Type_contiguous(resize, MPI_BYTE, &dtype); - mpi_exception(rv); - - rv = MPI_Type_commit(&dtype); - mpi_exception(rv); - - /* The send buffer is likely to have gotten munged. Reinit. */ - dump = rb_funcall(mMarshal, id_dump, 1, obj); - tmp = rb_str2cstr(dump, &length); - MEMCPY(send, tmp, char, length + 1); - - rv = MPI_Reduce_scatter(send, recv, recvcounts, dtype, - *op_get_mpi_op(rop), *mc_comm->comm); - mpi_exception(rv); - - resize = op_get_resize(rop); - } - - rv = MPI_Type_free(&dtype); - mpi_exception(rv); - - if (my_size > 0) - return rb_funcall(mMarshal, id_load, 1, rb_str_new(recv,longest+1)); - else - return Qnil; - } -} - -/* Probing */ -static VALUE comm_probe(VALUE self, VALUE rsrc, VALUE rtag) -{ - int rv, src, tag; - struct mpi_comm *mc_comm; - MPI_Status *stat; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - if (rsrc == ANY_SOURCE) { - src = MPI_ANY_SOURCE; - } else { - Check_Type(rsrc, T_FIXNUM); - src = FIX2INT(rsrc); - } - - if (rtag == ANY_TAG) { - tag = MPI_ANY_TAG; - } else { - Check_Type(rtag, T_FIXNUM); - tag = FIX2INT(rtag); - } - - stat = ALLOC(MPI_Status); - - rv = MPI_Probe(src, tag, *mc_comm->comm, stat); - mpi_exception(rv); - - return status_new(stat); -} - -static VALUE comm_iprobe(VALUE self, VALUE rsrc, VALUE rtag) -{ - int rv, src, tag, flag; - struct mpi_comm *mc_comm; - MPI_Status *stat; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - if (rsrc == ANY_SOURCE) { - src = MPI_ANY_SOURCE; - } else { - Check_Type(rsrc, T_FIXNUM); - src = FIX2INT(rsrc); - } - - if (rtag == ANY_TAG) { - tag = MPI_ANY_TAG; - } else { - Check_Type(rtag, T_FIXNUM); - tag = FIX2INT(rtag); - } - - stat = ALLOC(MPI_Status); - - rv = MPI_Iprobe(src, tag, *mc_comm->comm, &flag, stat); - mpi_exception(rv); - - return rb_ary_new3(2, flag ? Qtrue : Qfalse, status_new(stat)); -} - -/* Comparison */ -static VALUE comm_equal(VALUE self, VALUE other) -{ - int rv, result; - struct mpi_comm *mc_comm1, *mc_comm2; - - Data_Get_Struct(self, struct mpi_comm, mc_comm1); - Data_Get_Struct(self, struct mpi_comm, mc_comm2); - - rv = MPI_Comm_compare(*mc_comm1->comm, *mc_comm2->comm, &result); - mpi_exception(rv); - - return result == MPI_IDENT; -} - -static VALUE comm_congruent_p(VALUE self, VALUE other) -{ - int rv, result; - struct mpi_comm *mc_comm1, *mc_comm2; - - Data_Get_Struct(self, struct mpi_comm, mc_comm1); - Data_Get_Struct(self, struct mpi_comm, mc_comm2); - - rv = MPI_Comm_compare(*mc_comm1->comm, *mc_comm2->comm, &result); - mpi_exception(rv); - - return result == MPI_CONGRUENT; -} - -static VALUE comm_similar_p(VALUE self, VALUE other) -{ - int rv, result; - struct mpi_comm *mc_comm1, *mc_comm2; - - Data_Get_Struct(self, struct mpi_comm, mc_comm1); - Data_Get_Struct(self, struct mpi_comm, mc_comm2); - - rv = MPI_Comm_compare(*mc_comm1->comm, *mc_comm2->comm, &result); - mpi_exception(rv); - - return result == MPI_SIMILAR; -} - -/* Intercomms */ -static VALUE comm_inter_p(VALUE self) -{ - int rv, flag; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - rv = MPI_Comm_test_inter(*mc_comm->comm, &flag); - mpi_exception(rv); - - return flag ? Qtrue : Qfalse; -} - -static VALUE comm_remote_size(VALUE self) -{ - int rv, size; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - rv = MPI_Comm_remote_size(*mc_comm->comm, &size); - mpi_exception(rv); - - return rb_fix_new(size); -} - -static VALUE comm_remote_group(VALUE self) -{ - int rv; - struct mpi_comm *mc_comm; - MPI_Group *grp; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - grp = ALLOC(MPI_Group); - - rv = MPI_Comm_remote_group(*mc_comm->comm, grp); - mpi_exception(rv); - - return group_new(grp); -} - -static VALUE comm_attr_put(VALUE self, VALUE keyval, VALUE obj) -{ - int rv; - struct mpi_attr_val *av; - struct mpi_comm *mc_comm; - VALUE dump; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - av = ALLOC(struct mpi_attr_val); - - dump = rb_funcall(mMarshal, id_dump, 1, obj); - av->data = rb_str2cstr(dump, &av->len); - - rv = MPI_Attr_put(*mc_comm->comm, keyval_get_keyval(keyval), av); - mpi_exception(rv); - - return Qtrue; -} - -static VALUE comm_attr_get(VALUE self, VALUE keyval) -{ - int rv, flag; - struct mpi_attr_val *av; - struct mpi_comm *mc_comm; - VALUE str; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - rv = MPI_Attr_get(*mc_comm->comm, keyval_get_keyval(keyval), &av, &flag); - mpi_exception(rv); - - if (flag) { - str = rb_str_new(av->data, av->len); - return rb_funcall(mMarshal, id_load, 1, str); - } else { - return Qnil; - } -} - -static VALUE comm_attr_delete(VALUE self, VALUE keyval) -{ - int rv; - struct mpi_comm *mc_comm; - - Data_Get_Struct(self, struct mpi_comm, mc_comm); - - rv = MPI_Attr_delete(*mc_comm->comm, keyval_get_keyval(keyval)); - mpi_exception(rv); - - return Qtrue; -} - -/* Constants */ -static VALUE any_tag_to_s(VALUE self) -{ - return rb_str_new("MPI::Comm.ANY_TAG", sizeof("MPI::Comm.ANY_TAG")); -} - -static VALUE any_source_to_s(VALUE self) -{ - return rb_str_new("MPI::Comm.ANY_SOURCE", sizeof("MPI::Comm.ANY_SOURCE")); -} - -static VALUE self_to_s(VALUE self) -{ - return rb_str_new("MPI::Comm.SELF", sizeof("MPI::Comm.SELF")); -} - -static VALUE world_to_s(VALUE self) -{ - return rb_str_new("MPI::Comm.WORLD", sizeof("MPI::Comm.WORLD")); -} - -static VALUE graph_to_s(VALUE self) -{ - return rb_str_new("MPI::Comm.GRAPH", sizeof("MPI::Comm.GRAPH")); -} - -static VALUE cart_to_s(VALUE self) -{ - return rb_str_new("MPI::Comm.CART", sizeof("MPI::Comm.CART")); -} - -/* Initialization */ - -static void init_predef_comms() -{ - extern MPI_Comm *self, *world; - struct mpi_comm *mc_self, *mc_world; - - mc_self = ALLOC(struct mpi_comm); - mc_world = ALLOC(struct mpi_comm); - - mc_self->comm = self; - mc_self->buffer = NULL; - mc_self->bufsize = 0L; - - mc_world->comm = world; - mc_world->buffer = NULL; - mc_world->bufsize = 0L; - - SELF = intra_comm_new(mc_self); - rb_define_singleton_method(SELF, "to_s", self_to_s, 0); - rb_define_const(cComm, "SELF", SELF); - - WORLD = intra_comm_new(mc_world); - rb_define_singleton_method(WORLD, "to_s", world_to_s, 0); - rb_define_const(cComm, "WORLD", WORLD); -} - -void Init_Comm() -{ - - cComm = rb_define_class_under(mMPI, "Comm", rb_cObject); - cIntraComm = rb_define_class_under(mMPI, "IntraComm", cComm); - - init_predef_comms(); - - /* Environmental */ - rb_define_method(cComm, "size", comm_size, 0); - rb_define_method(cComm, "rank", comm_rank, 0); - rb_define_method(cComm, "group", comm_group, 0); - rb_define_method(cComm, "abort", comm_abort, 1); - - /* Constructors */ - rb_define_method(cComm, "dup", comm_dup, 0); - rb_define_method(cComm, "split", comm_split, 2); - rb_define_singleton_method(cComm, "create", comm_create, 1); - - /* Topologies */ - rb_define_method(cComm, "cart_create", comm_cart_create, 3); - rb_define_method(cComm, "graph_create", comm_graph_create, 3); - rb_define_method(cComm, "topo_test", comm_topo_test, 0); - rb_define_method(cComm, "graphdims", comm_graphdims_get, 0); - rb_define_method(cComm, "graphdims_get", comm_graphdims_get, 0); - rb_define_method(cComm, "graph", comm_graph_get, 0); - rb_define_method(cComm, "graph_get", comm_graph_get, 0); - rb_define_method(cComm, "cartdim", comm_cartdim_get, 0); - rb_define_method(cComm, "cartdim_get", comm_cartdim_get, 0); - rb_define_method(cComm, "cart", comm_cart_get, 0); - rb_define_method(cComm, "cart_get", comm_cart_get, 0); - rb_define_method(cComm, "cart_rank", comm_cart_rank, 1); - rb_define_method(cComm, "cart_coords", comm_cart_coords, 1); - rb_define_method(cComm, "graph_neighbors", comm_graph_neighbors, 1); - rb_define_method(cComm, "graph_neighbors_count", - comm_graph_neighbors_count, 1); - rb_define_method(cComm, "cart_shift", comm_cart_shift, 2); - rb_define_method(cComm, "cart_sub", comm_cart_sub, 1); - rb_define_method(cComm, "cart_map", comm_cart_map, 2); - rb_define_method(cComm, "graph_map", comm_graph_map, 2); - - /* Point to point */ - rb_define_method(cComm, "send", comm_send, 3); - rb_define_method(cComm, "recv", comm_recv, 2); - rb_define_method(cComm, "bsend", comm_bsend, 3); - rb_define_method(cComm, "ssend", comm_ssend, 3); - rb_define_method(cComm, "rsend", comm_rsend, 3); - rb_define_method(cComm, "sendrecv", comm_sendrecv, 5); - - /* Non-blocking */ - rb_define_method(cComm, "isend", comm_isend, 3); - rb_define_method(cComm, "ibsend", comm_ibsend, 3); - rb_define_method(cComm, "issend", comm_issend, 3); - rb_define_method(cComm, "irsend", comm_irsend, 3); - rb_define_method(cComm, "irecv", comm_irecv, 2); - - /* Persistent */ - rb_define_method(cComm, "send_init", comm_send_init, 3); - rb_define_method(cComm, "bsend_init", comm_bsend_init, 3); - rb_define_method(cComm, "ssend_init", comm_ssend_init, 3); - rb_define_method(cComm, "rsend_init", comm_rsend_init, 3); - rb_define_method(cComm, "recv_init", comm_recv_init, 2); - - /* Buffering */ - rb_define_method(cComm, "buffer_for", comm_buffer_for, 1); - rb_define_method(cComm, "unbuffer", comm_unbuffer, 0); - - /* Collective */ - rb_define_method(cIntraComm, "barrier", comm_barrier, 2); - rb_define_method(cIntraComm, "bcast", comm_bcast, 2); - rb_define_method(cIntraComm, "gather", comm_gather, 2); - rb_define_method(cIntraComm, "allgather", comm_allgather, 1); - rb_define_method(cIntraComm, "scatter", comm_scatter, 2); - rb_define_method(cIntraComm, "alltoall", comm_alltoall, 1); - rb_define_method(cIntraComm, "reduce", comm_reduce, 3); - rb_define_method(cIntraComm, "allreduce", comm_allreduce, 2); - rb_define_method(cIntraComm, "scan", comm_scan, 2); - rb_define_method(cIntraComm, "reduce_scatter", comm_reduce_scatter, 3); - - /* Probing */ - rb_define_method(cComm, "probe", comm_probe, 2); - rb_define_method(cComm, "iprobe", comm_iprobe, 2); - - /* Comparison */ - rb_define_method(cComm, "==", comm_equal, 1); - rb_define_method(cComm, "congruent?", comm_congruent_p, 1); - rb_define_method(cComm, "similar?", comm_similar_p, 1); - - /* Intercomms */ - rb_define_method(cComm, "inter?", comm_inter_p, 0); - rb_define_method(cComm, "intercomm_create", comm_intercomm_create, 4); - rb_define_method(cComm, "intercomm_merge", comm_intercomm_merge, 4); - rb_define_method(cComm, "remote_size", comm_remote_size, 0); - rb_define_method(cComm, "remote_group", comm_remote_group, 0); - - /* Attributes */ - rb_define_method(cComm, "attr_put", comm_attr_put, 2); - rb_define_method(cComm, "attr_get", comm_attr_get, 1); - rb_define_method(cComm, "attr_delete", comm_attr_delete, 1); - - /* Constants */ - ANY_TAG = rb_obj_alloc(rb_cObject); - rb_define_singleton_method(ANY_TAG, "to_s", any_tag_to_s, 0); - rb_define_const(cComm, "ANY_TAG", ANY_TAG); - - ANY_SOURCE = rb_obj_alloc(rb_cObject); - rb_define_singleton_method(ANY_SOURCE, "to_s", any_source_to_s, 0); - rb_define_const(cComm, "ANY_SOURCE", ANY_SOURCE); - - GRAPH = rb_obj_alloc(rb_cObject); - rb_define_singleton_method(GRAPH, "to_s", graph_to_s, 0); - rb_define_const(cComm, "GRAPH", GRAPH); - - CART = rb_obj_alloc(rb_cObject); - rb_define_singleton_method(CART, "to_s", cart_to_s, 0); - rb_define_const(cComm, "CART", CART); -} diff --git a/src/mpi_comm.h b/src/mpi_comm.h deleted file mode 100644 index 69259b1..0000000 --- a/src/mpi_comm.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef MPI_RUBY_COMM_H -#define MPI_RUBY_COMM_H - -extern VALUE cComm, cIntraComm; - -extern void Init_Comm(); - -#endif /* MPI_RUBY_COMM_H */ diff --git a/src/mpi_exception.c b/src/mpi_exception.c deleted file mode 100644 index 52d81d3..0000000 --- a/src/mpi_exception.c +++ /dev/null @@ -1,78 +0,0 @@ -#include "mpi.h" -#include "ruby.h" -#include "global.h" - -VALUE cException; - -void mpi_exception(int retcode) -{ - switch (retcode) { - case MPI_SUCCESS: - break; - case MPI_ERR_BUFFER: - rb_raise(cException, "Invalid buffer pointer"); - break; - case MPI_ERR_COUNT: - rb_raise(cException, "Invalid count argument"); - break; - case MPI_ERR_TYPE: - rb_raise(cException, "Invalid datatype argument"); - break; - case MPI_ERR_TAG: - rb_raise(cException, "Invalid tag argument"); - break; - case MPI_ERR_COMM: - rb_raise(cException, "Invalid communicator"); - break; - case MPI_ERR_RANK: - rb_raise(cException, "Invalid rank"); - break; - case MPI_ERR_REQUEST: - rb_raise(cException, "Invalid request handle"); - break; - case MPI_ERR_ROOT: - rb_raise(cException, "Invalid root"); - break; - case MPI_ERR_GROUP: - rb_raise(cException, "Invalid group"); - break; - case MPI_ERR_OP: - rb_raise(cException, "Invalid operation"); - break; - case MPI_ERR_TOPOLOGY: - rb_raise(cException, "Invalid topology"); - break; - case MPI_ERR_DIMS: - rb_raise(cException, "Invalid dimension argument"); - break; - case MPI_ERR_ARG: - rb_raise(cException, "Invalid argument"); - break; - case MPI_ERR_UNKNOWN: - rb_raise(cException, "Unknown error"); - break; - case MPI_ERR_TRUNCATE: - rb_raise(cException, "Message truncated on receive"); - break; - case MPI_ERR_OTHER: - rb_raise(cException, "Other error"); - break; - case MPI_ERR_INTERN: - rb_raise(cException, "Internal MPI error"); - break; - case MPI_ERR_PENDING: - rb_raise(cException, "Operation not complete"); - break; - case MPI_ERR_IN_STATUS: - rb_raise(cException, "Error available in status"); - break; - default: - rb_raise(cException, "Unknown error"); - break; - } -} - -void Init_MPI_Exception() -{ - cException = rb_define_class_under(mMPI, "Exception", rb_eException); -} diff --git a/src/mpi_exception.h b/src/mpi_exception.h deleted file mode 100644 index 4fb5537..0000000 --- a/src/mpi_exception.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef MPI_RUBY_EXCEPTION_H -#define MPI_RUBY_EXCEPTION_H - -#include "ruby.h" - -extern VALUE cException; -extern void mpi_exception(int retcode); -extern void Init_MPI_Exception(); - -#endif /* MPI_RUBY_EXCEPTION_H */ diff --git a/src/mpi_group.c b/src/mpi_group.c deleted file mode 100644 index 8501c28..0000000 --- a/src/mpi_group.c +++ /dev/null @@ -1,295 +0,0 @@ -#include "mpi.h" -#include "ruby.h" -#include "global.h" - -VALUE cGroup; - -static void group_free(MPI_Group *grp) -{ - int rv; - - rv = MPI_Group_free(grp); - mpi_exception(rv); - free(grp); -} - -VALUE group_new(MPI_Group *grp) -{ - VALUE tdata; - - tdata = Data_Wrap_Struct(cGroup, NULL, group_free, grp); - rb_obj_call_init(tdata, 0, NULL); - - return tdata; -} - -MPI_Group *group_get_mpi_group(VALUE rgrp) -{ - MPI_Group *grp; - - Data_Get_Struct(rgrp, MPI_Group, grp); - - return grp; -} - -static VALUE group_size(VALUE self) -{ - int rv, size; - MPI_Group *grp; - - Data_Get_Struct(self, MPI_Group, grp); - - rv = MPI_Group_size(*grp, &size); - mpi_exception(rv); - - return rb_fix_new(size); -} - -static VALUE group_rank(VALUE self) -{ - int rv, rank; - MPI_Group *grp; - - Data_Get_Struct(self, MPI_Group, grp); - - rv = MPI_Group_rank(*grp, &rank); - mpi_exception(rv); - - if (rank == MPI_UNDEFINED) - return UNDEFINED; - - return rb_fix_new(rank); -} - -static VALUE group_translate_ranks(VALUE self, VALUE ary, VALUE rgrp2) -{ - VALUE outary; - MPI_Group *grp1, *grp2; - int rv, i, len, *ranks1, *ranks2; - - Data_Get_Struct(self, MPI_Group, grp1); - Data_Get_Struct(grp2, MPI_Group, grp2); - - len = RARRAY(ary)->len; - ranks1 = ALLOCA_N(int, len); - ranks2 = ALLOCA_N(int, len); - - for (i = 0; i < len; i++) - ranks1[i] = FIX2INT(rb_ary_entry(ary, i)); - - rv = MPI_Group_translate_ranks(*grp1, len, ranks1, *grp2, ranks2); - mpi_exception(rv); - - outary = rb_ary_new2(len); - for (i = 0; i < len; i++) { - if (ranks2[i] == MPI_UNDEFINED) - rb_ary_store(outary, i, UNDEFINED); - else - rb_ary_store(outary, i, rb_fix_new(ranks2[i])); - } - - return outary; -} - -static VALUE group_equal(VALUE self, VALUE rgrp2) -{ - int rv, flag; - MPI_Group *grp1, *grp2; - - Data_Get_Struct(self, MPI_Group, grp1); - Data_Get_Struct(grp2, MPI_Group, grp2); - - rv = MPI_Group_compare(*grp1, *grp2, &flag); - mpi_exception(rv); - - return flag == MPI_IDENT ? Qtrue : Qfalse; -} - -static VALUE group_similar_p(VALUE self, VALUE rgrp2) -{ - int rv, flag; - MPI_Group *grp1, *grp2; - - Data_Get_Struct(self, MPI_Group, grp1); - Data_Get_Struct(grp2, MPI_Group, grp2); - - rv = MPI_Group_compare(*grp1, *grp2, &flag); - mpi_exception(rv); - - return flag == MPI_SIMILAR ? Qtrue : Qfalse; -} - -static VALUE group_union(VALUE self, VALUE rgrp2) -{ - int rv; - MPI_Group *grp1, *grp2, *newgrp; - - Data_Get_Struct(self, MPI_Group, grp1); - Data_Get_Struct(grp2, MPI_Group, grp2); - - newgrp = ALLOC(MPI_Group); - - rv = MPI_Group_union(*grp1, *grp2, newgrp); - mpi_exception(rv); - - return group_new(newgrp); -} - -static VALUE group_intersection(VALUE self, VALUE rgrp2) -{ - int rv; - MPI_Group *grp1, *grp2, *newgrp; - - Data_Get_Struct(self, MPI_Group, grp1); - Data_Get_Struct(grp2, MPI_Group, grp2); - - newgrp = ALLOC(MPI_Group); - - rv = MPI_Group_intersection(*grp1, *grp2, newgrp); - mpi_exception(rv); - - return group_new(newgrp); -} - -static VALUE group_difference(VALUE self, VALUE rgrp2) -{ - int rv; - MPI_Group *grp1, *grp2, *newgrp; - - Data_Get_Struct(self, MPI_Group, grp1); - Data_Get_Struct(grp2, MPI_Group, grp2); - - newgrp = ALLOC(MPI_Group); - - rv = MPI_Group_difference(*grp1, *grp2, newgrp); - mpi_exception(rv); - - return group_new(newgrp); -} - -static VALUE group_incl(VALUE self, VALUE ary) -{ - int rv, i, len, *ranks; - MPI_Group *grp, *newgrp; - - Data_Get_Struct(self, MPI_Group, grp); - - newgrp = ALLOC(MPI_Group); - - len = RARRAY(ary)->len; - ranks = ALLOCA_N(int, len); - - for (i = 0; i < len; i++) - ranks[i] = FIX2INT(rb_ary_entry(ary, i)); - - rv = MPI_Group_incl(*grp, len, ranks, newgrp); - mpi_exception(rv); - - return group_new(newgrp); -} - -static VALUE group_excl(VALUE self, VALUE ary) -{ - int rv, i, len, *ranks; - MPI_Group *grp, *newgrp; - - Data_Get_Struct(self, MPI_Group, grp); - - newgrp = ALLOC(MPI_Group); - - len = RARRAY(ary)->len; - ranks = ALLOCA_N(int, len); - - for (i = 0; i < len; i++) - ranks[i] = FIX2INT(rb_ary_entry(ary, i)); - - rv = MPI_Group_excl(*grp, len, ranks, newgrp); - mpi_exception(rv); - - return group_new(newgrp); -} - -static VALUE group_range_incl(VALUE self, VALUE ary) -{ - int rv, i, len, **ranks; - MPI_Group *grp, *newgrp; - - Data_Get_Struct(self, MPI_Group, grp); - - newgrp = ALLOC(MPI_Group); - - len = RARRAY(ary)->len; - ranks = ALLOCA_N(int *, len); - - for (i = 0; i < len; i++) { - int j; - VALUE range; - - range = rb_ary_entry(ary, i); - ranks[i] = ALLOCA_N(int, 3); - - for (j = 0; j < 3; j++) - ranks[i][j] = FIX2INT(rb_ary_entry(range, j)); - } - - /* Thank you, cdecl */ - rv = MPI_Group_range_incl(*grp, len, (int (*)[3])ranks, newgrp); - mpi_exception(rv); - - return group_new(newgrp); -} - -static VALUE group_range_excl(VALUE self, VALUE ary) -{ - int rv, i, len, **ranks; - MPI_Group *grp, *newgrp; - - Data_Get_Struct(self, MPI_Group, grp); - - newgrp = ALLOC(MPI_Group); - - len = RARRAY(ary)->len; - ranks = ALLOCA_N(int *, len); - - for (i = 0; i < len; i++) { - int j; - VALUE range; - - range = rb_ary_entry(ary, i); - ranks[i] = ALLOCA_N(int, 3); - - for (j = 0; j < 3; j++) - ranks[i][j] = FIX2INT(rb_ary_entry(range, j)); - } - - /* Thank you, cdecl */ - rv = MPI_Group_range_excl(*grp, len, (int (*)[3])ranks, newgrp); - mpi_exception(rv); - - return group_new(newgrp); -} - -void Init_Group() -{ - cGroup = rb_define_class_under(mMPI, "Group", rb_cObject); - - rb_define_method(cGroup, "size", group_size, 0); - rb_define_method(cGroup, "rank", group_rank, 0); - - rb_define_method(cGroup, "translate_ranks", group_translate_ranks, 2); - - rb_define_method(cGroup, "==", group_equal, 1); - rb_define_method(cGroup, "similar?", group_similar_p, 1); - - rb_define_method(cGroup, "|", group_union, 1); - rb_define_method(cGroup, "union", group_union, 1); - rb_define_method(cGroup, "-", group_difference, 1); - rb_define_method(cGroup, "difference", group_difference, 1); - rb_define_method(cGroup, "&", group_intersection, 1); - rb_define_method(cGroup, "intersection", group_intersection, 1); - - rb_define_method(cGroup, "incl", group_incl, 1); - rb_define_method(cGroup, "range_incl", group_range_incl, 1); - rb_define_method(cGroup, "excl", group_excl, 1); - rb_define_method(cGroup, "range_excl", group_range_excl, 1); -} diff --git a/src/mpi_group.h b/src/mpi_group.h deleted file mode 100644 index 213ca42..0000000 --- a/src/mpi_group.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef MPI_RUBY_GROUP_H -#define MPI_RUBY_GROUP_H - -#include "mpi.h" -#include "ruby.h" - -extern VALUE group_new(MPI_Group *grp); -extern MPI_Group *group_get_mpi_group(VALUE rgrp); - -extern void Init_Group(); - -#endif /* MPI_RUBY_GROUP_H */ diff --git a/src/mpi_keyval.c b/src/mpi_keyval.c deleted file mode 100644 index eaef734..0000000 --- a/src/mpi_keyval.c +++ /dev/null @@ -1,102 +0,0 @@ -#include "mpi.h" -#include "ruby.h" -#include "global.h" - -VALUE cKeyval; - -/* The user needn't know that this is an int */ -struct mpi_keyval { - int keyval; -}; - -static int keyval_copy(MPI_Comm oldcomm, int keyval, void *data, - void *attr_in, void *attr_out, int *flag) -{ - struct mpi_attr_val *in, *out; - - in = attr_in; - out = ALLOC(struct mpi_attr_val); - out->data = ALLOC_N(char, in->len + 1); - - MEMCPY(out->data, in->data, char, in->len + 1); - - *(struct mpi_attr_val **)attr_out = out; - - *flag = 1; - - return 0; -} - -static int keyval_copy_uniq(MPI_Comm oldcomm, int keyval, void *data, - void *attr_in, void *attr_out, int *flag) -{ - struct mpi_attr_val *in, *out; - - in = attr_in; - out = ALLOC(struct mpi_attr_val); - out->data = ALLOC_N(char, in->len + 1); - - MEMCPY(out->data, in->data, char, in->len + 1); - - *(struct mpi_attr_val **)attr_out = out; - - *flag = 0; - - return 0; -} - -static int keyval_delete(MPI_Comm oldcomm, int keyval, void *attr, void *data) -{ - struct mpi_attr_val *in; - - free(in->data); - free(in); - - return 0; -} - -int keyval_get_keyval(VALUE rkv) -{ - struct mpi_keyval *kv; - - Data_Get_Struct(rkv, struct mpi_keyval, kv); - - return kv->keyval; -} - -static void keyval_free(struct mpi_keyval *kv) -{ - int rv; - - rv = MPI_Keyval_free(&kv->keyval); - free(kv); -} - -static VALUE keyval_create(VALUE self, VALUE uniq) -{ - int rv; - VALUE tdata; - struct mpi_keyval *kv; - - kv = ALLOC(struct mpi_keyval); - if ((uniq != Qfalse) && (uniq != Qnil)) { - rv = MPI_Keyval_create(keyval_copy_uniq, keyval_delete, &kv->keyval, - NULL); - mpi_exception(rv); - } else { - rv = MPI_Keyval_create(keyval_copy, keyval_delete, &kv->keyval, NULL); - mpi_exception(rv); - } - - tdata = Data_Wrap_Struct(cKeyval, NULL, keyval_free, kv); - rb_obj_call_init(tdata, 0, NULL); - - return tdata; -} - -void Init_Keyval() -{ - cKeyval = rb_define_class_under(mMPI, "Keyval", rb_cObject); - - rb_define_singleton_method(cKeyval, "create", keyval_create, 1); -} diff --git a/src/mpi_keyval.h b/src/mpi_keyval.h deleted file mode 100644 index afc2619..0000000 --- a/src/mpi_keyval.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef MPI_RUBY_KEYVAL_H -#define MPI_RUBY_KEYVAL_H - -struct mpi_attr_val { - int len; - char *data; -}; - -extern VALUE cKeyval; - -extern int keyval_get_keyval(VALUE rkv); - -extern void Init_Keyval(); - -#endif /* MPI_RUBY_KEYVAL_H */ diff --git a/src/mpi_op.c b/src/mpi_op.c deleted file mode 100644 index ab48566..0000000 --- a/src/mpi_op.c +++ /dev/null @@ -1,580 +0,0 @@ -#include "mpi.h" -#include "ruby.h" -#include "global.h" - -struct mpi_op { - MPI_Op *op; - int idx; -}; - -VALUE cOp; -static ID id_call; - -/* Welcome to amature hour... */ -#include "mpi_op_fns.c" - -static int op_register(VALUE proc) -{ - int i; - - for (i = 0; i < MAX_OPS; i++) { - if (!op_table[i].assigned) { - op_table[i].proc = proc; - op_table[i].assigned = 1; - op_table[i].resize = 0; - break; - } - } - - if (i == MAX_OPS) - return -1; - - return i; -} - -static void op_free(struct mpi_op *op) -{ - MPI_Op_free(op->op); - if (op->idx >= 0) - op_table[op->idx].assigned = 0; -} - -static VALUE op_new(struct mpi_op *op) -{ - VALUE tdata; - - tdata = Data_Wrap_Struct(cOp, NULL, op_free, op); - rb_obj_call_init(tdata, 0, NULL); - - return tdata; -} - -MPI_Op *op_get_mpi_op(VALUE rop) -{ - struct mpi_op *op; - - Data_Get_Struct(rop, struct mpi_op, op); - - return op->op; -} - -int op_get_resize(VALUE rop) -{ - struct mpi_op *op; - - Data_Get_Struct(rop, struct mpi_op, op); - - return op_table[op->idx].resize; -} - -void op_clear_resize(VALUE rop) -{ - struct mpi_op *op; - - Data_Get_Struct(rop, struct mpi_op, op); - - op_table[op->idx].resize = 0; -} - -static VALUE op_create(VALUE self, VALUE proc, VALUE rcommute) -{ - int rv, commute; - struct mpi_op *op; - - op = ALLOC(struct mpi_op); - op->op = ALLOC(MPI_Op); - - op->idx = op_register(proc); - if (op->idx < 0) { - free(op); - mpi_exception(MPI_ERR_INTERN); - return Qnil; - } - - commute = ((rcommute != Qfalse) && (rcommute != Qnil)); - - rv = MPI_Op_create(fn_table[op->idx], commute, op->op); - mpi_exception(rv); - - return op_new(op); -} - - -/* Predefines */ -static ID id_cmp, id_sum, id_prod; -static ID id_land, id_band, id_lor, id_bor, id_bxor; - -static void op_max(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - int cmp; - VALUE str, receiver, arg; - - str = rb_str_new(((char *)invec) + (i * size), size); - receiver = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg = rb_funcall(mMarshal, id_load, 1, str); - - cmp = rb_funcall(receiver, id_cmp, 1, arg); - - /* We only need to copy invec to outvec if invec > outvec */ - if (cmp > 0) { - MEMCPY(((char *)inoutvec) + (i * size), - ((char *)invec) + (i * size), - char, length + 1); - } - } -} - -static void op_min(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - int cmp; - VALUE str, receiver, arg; - - str = rb_str_new(((char *)invec) + (i * size), size); - receiver = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg = rb_funcall(mMarshal, id_load, 1, str); - - cmp = FIX2INT(rb_funcall(receiver, id_cmp, 1, arg)); - - /* We only need to copy invec to outvec if invec < outvec */ - if (cmp < 0) { - MEMCPY(((char *)inoutvec) + (i * size), - ((char *)invec) + (i * size), - char, length + 1); - } - } -} - -static void op_sum(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, receiver, arg; - - str = rb_str_new(((char *)invec) + (i * size), size); - receiver = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(receiver, id_sum, 1, arg); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[0].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_prod(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, receiver, arg; - - str = rb_str_new(((char *)invec) + (i * size), size); - receiver = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(receiver, id_prod, 1, arg); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[0].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_lor(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, receiver, arg; - - str = rb_str_new(((char *)invec) + (i * size), size); - receiver = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(receiver, id_lor, 1, arg); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[0].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_bor(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, receiver, arg; - - str = rb_str_new(((char *)invec) + (i * size), size); - receiver = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(receiver, id_bor, 1, arg); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[0].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_land(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, receiver, arg; - - str = rb_str_new(((char *)invec) + (i * size), size); - receiver = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(receiver, id_land, 1, arg); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[0].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_band(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, receiver, arg; - - str = rb_str_new(((char *)invec) + (i * size), size); - receiver = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(receiver, id_band, 1, arg); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[0].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_lxor(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - int val, val1, val2; - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - val1 = ((arg1 != Qfalse) && (arg1 != Qnil)); - val2 = ((arg2 != Qfalse) && (arg2 != Qnil)); - - val = (val1 || val2) && (!val1 || !val2); - - str = rb_funcall(mMarshal, id_dump, 1, rb_fix_new(val)); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[0].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_bxor(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, receiver, arg; - - str = rb_str_new(((char *)invec) + (i * size), size); - receiver = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(receiver, id_bxor, 1, arg); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[0].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_maxloc(void *invec, void *inoutvec, int *len, - MPI_Datatype *dtype) -{ - int rv, i, size, length; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - int cmp; - VALUE str, ary1, ary2; - - str = rb_str_new(((char *)invec) + (i * size), size); - ary1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - ary2 = rb_funcall(mMarshal, id_load, 1, str); - - cmp = rb_funcall(rb_ary_entry(ary1, 0),id_cmp,1,rb_ary_entry(ary2, 0)); - - /* We only need to copy invec to outvec if invec > outvec */ - if (cmp > 0) { - MEMCPY(((char *)inoutvec) + (i * size), - ((char *)invec) + (i * size), - char, length + 1); - } - } -} - -static void op_minloc(void *invec, void *inoutvec, int *len, - MPI_Datatype *dtype) -{ - int rv, i, size, length; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - int cmp; - VALUE str, ary1, ary2; - - str = rb_str_new(((char *)invec) + (i * size), size); - ary1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - ary2 = rb_funcall(mMarshal, id_load, 1, str); - - cmp = rb_funcall(rb_ary_entry(ary1, 0),id_cmp,1,rb_ary_entry(ary2, 0)); - - /* We only need to copy invec to outvec if invec < outvec */ - if (cmp < 0) { - MEMCPY(((char *)inoutvec) + (i * size), - ((char *)invec) + (i * size), - char, length + 1); - } - } -} - -static void init_predef_ops() -{ - int rv; - struct mpi_op *max, *min, *sum, *prod; - struct mpi_op *land, *band, *lor, *bor, *lxor, *bxor; - struct mpi_op *maxloc, *minloc; - - id_cmp = rb_intern("<=>"); - id_sum = rb_intern("+"); - id_prod = rb_intern("*"); - - max = ALLOC(struct mpi_op); - max->op = ALLOC(MPI_Op); - rv = MPI_Op_create(op_max, 1, max->op); - mpi_exception(rv); - rb_define_const(cOp, "MAX", op_new(max)); - - min = ALLOC(struct mpi_op); - min->op = ALLOC(MPI_Op); - rv = MPI_Op_create(op_min, 1, min->op); - mpi_exception(rv); - rb_define_const(cOp, "MIN", op_new(min)); - - sum = ALLOC(struct mpi_op); - sum->op = ALLOC(MPI_Op); - rv = MPI_Op_create(op_sum, 1, sum->op); - mpi_exception(rv); - rb_define_const(cOp, "SUM", op_new(sum)); - - prod = ALLOC(struct mpi_op); - prod->op = ALLOC(MPI_Op); - rv = MPI_Op_create(op_prod, 1, prod->op); - mpi_exception(rv); - rb_define_const(cOp, "PROD", op_new(prod)); - - id_land = rb_intern("and"); - id_band = rb_intern("&"); - id_lor = rb_intern("or"); - id_bor = rb_intern("|"); - /* lxor is hard coded */ - id_bxor = rb_intern("^"); - - land = ALLOC(struct mpi_op); - land->op = ALLOC(MPI_Op); - rv = MPI_Op_create(op_land, 1, land->op); - mpi_exception(rv); - rb_define_const(cOp, "LAND", op_new(land)); - - band = ALLOC(struct mpi_op); - band->op = ALLOC(MPI_Op); - rv = MPI_Op_create(op_band, 1, band->op); - mpi_exception(rv); - rb_define_const(cOp, "BAND", op_new(band)); - - lor = ALLOC(struct mpi_op); - lor->op = ALLOC(MPI_Op); - rv = MPI_Op_create(op_lor, 1, lor->op); - mpi_exception(rv); - rb_define_const(cOp, "LOR", op_new(lor)); - - bor = ALLOC(struct mpi_op); - bor->op = ALLOC(MPI_Op); - rv = MPI_Op_create(op_bor, 1, bor->op); - mpi_exception(rv); - rb_define_const(cOp, "BOR", op_new(bor)); - - lxor = ALLOC(struct mpi_op); - lxor->op = ALLOC(MPI_Op); - rv = MPI_Op_create(op_lxor, 1, lxor->op); - mpi_exception(rv); - rb_define_const(cOp, "LXOR", op_new(lxor)); - - bxor = ALLOC(struct mpi_op); - bxor->op = ALLOC(MPI_Op); - rv = MPI_Op_create(op_bxor, 1, bxor->op); - mpi_exception(rv); - rb_define_const(cOp, "BXOR", op_new(bxor)); - - - maxloc = ALLOC(struct mpi_op); - maxloc->op = ALLOC(MPI_Op); - rv = MPI_Op_create(op_maxloc, 1, maxloc->op); - mpi_exception(rv); - rb_define_const(cOp, "MAXLOC", op_new(maxloc)); - - minloc = ALLOC(struct mpi_op); - minloc->op = ALLOC(MPI_Op); - rv = MPI_Op_create(op_minloc, 1, minloc->op); - mpi_exception(rv); - rb_define_const(cOp, "MINLOC", op_new(minloc)); -} - -void Init_Op() -{ - int i; - - for (i = 0; i < MAX_OPS; i++) { - op_table[i].assigned = 0; - op_table[i].resize = 0; - } - - id_call = rb_intern("call"); - - cOp = rb_define_class_under(mMPI, "Op", rb_cObject); - - init_predef_ops(); - - rb_define_singleton_method(cOp, "create", op_create, 2); -} diff --git a/src/mpi_op.h b/src/mpi_op.h deleted file mode 100644 index 75fd5ba..0000000 --- a/src/mpi_op.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef MPI_RUBY_OP_H -#define MPI_RUBY_OP_H - -#include "mpi.h" -#include "ruby.h" - -extern void op_clear_resize(VALUE rop); -extern int op_get_resize(VALUE rop); -extern MPI_Op *op_get_mpi_op(VALUE rop); -extern void Init_Op(); - -#endif /* MPI_RUBY_OP_H */ diff --git a/src/mpi_op_fns.c b/src/mpi_op_fns.c deleted file mode 100644 index 8a5c2e7..0000000 --- a/src/mpi_op_fns.c +++ /dev/null @@ -1,810 +0,0 @@ - -#define MAX_OPS 25 - -static struct { - VALUE proc; - int assigned, resize; -} op_table[MAX_OPS]; - -static void op_0(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[0].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[0].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_1(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[1].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[1].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_2(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[2].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[2].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_3(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[3].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[3].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_4(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[4].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[4].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_5(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[5].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[5].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_6(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[6].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[6].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_7(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[7].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[7].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_8(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[8].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[8].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_9(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[9].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[9].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_10(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[10].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[10].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_11(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[11].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[11].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_12(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[12].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[12].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_13(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[13].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[13].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_14(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[14].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[14].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_15(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[15].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[15].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_16(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[16].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[16].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_17(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[17].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[17].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_18(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[18].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[18].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_19(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[19].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[19].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_20(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[20].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[20].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_21(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[21].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[21].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_22(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[22].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[22].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_23(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[23].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[23].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static void op_24(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[24].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[24].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -static MPI_User_function *fn_table[MAX_OPS] = { - op_0, - op_1, - op_2, - op_3, - op_4, - op_5, - op_6, - op_7, - op_8, - op_9, - op_10, - op_11, - op_12, - op_13, - op_14, - op_15, - op_16, - op_17, - op_18, - op_19, - op_20, - op_21, - op_22, - op_23, - op_24, -}; diff --git a/src/mpi_request.c b/src/mpi_request.c deleted file mode 100644 index 97ffa11..0000000 --- a/src/mpi_request.c +++ /dev/null @@ -1,695 +0,0 @@ -#include "mpi.h" -#include "ruby.h" -#include -#include "global.h" - -struct mpi_request { - MPI_Request *req; - MPI_Comm *comm; - req_type type; - VALUE obj; - int peer, tag; - /* Transmission is always a two stage process: - - Getting or sending the buffer size - - Getting or sending the actual data - */ - enum {TX_SIZE, TX_DATA} stage; - int buflen; - char *buf; -}; - -VALUE cRequest; - -#define INITIAL_RLIST_CAP 16 -static int capacity = INITIAL_RLIST_CAP; -static struct mpi_request **rlist = NULL; -static void request_watch(struct mpi_request *mr) -{ - int i; - - for (i = 0; i < capacity; i++) { - if (rlist[i] == NULL) { - rlist[i] = mr; - break; - } - } - - if (i == capacity) { - capacity *= 2; - REALLOC_N(rlist, struct mpi_request *, capacity); - rlist[i] = mr; - } -} - -static void request_unwatch(struct mpi_request *mr) -{ - int i; - - for (i = 0; i < capacity; i++) { - if (rlist[i] == mr) { - rlist[i] = NULL; - break; - } - } -} - -static VALUE request_thread(void *data) -{ - int rv, i, flag; - MPI_Status stat; - - while (1) { - for (i = 0; i < capacity; i++) { - if (rlist[i] != NULL) { - rv = MPI_Test(rlist[i]->req, &flag, &stat); - mpi_exception(rv); - - if (flag) { - /* XXX: Is it ok to ignore the status? */ - free(rlist[i]->buf); - rlist[i]->buf = ALLOC_N(char, rlist[i]->buflen + 1); - MPI_Irecv(rlist[i]->buf, rlist[i]->buflen + 1, MPI_BYTE, - rlist[i]->peer, rlist[i]->tag, *rlist[i]->comm, - rlist[i]->req); - rlist[i]->stage = TX_DATA; - rlist[i] = NULL; - } - } - } - rb_thread_schedule(); - } - - return Qtrue; -} - -static void request_mark(struct mpi_request *mr) -{ - rb_gc_mark(mr->obj); -} - -static void request_free(struct mpi_request *mr) -{ - int rv; - - rv = MPI_Request_free(mr->req); - mpi_exception(rv); - - free(mr->req); - free(mr->buf); - free(mr); -} - -/* - request_new(NORMAL, MPI_Request *req); - request_new(P[BSR]SEND, VALUE obj, int dest, int tag, MPI_Comm *comm); - request_new(RECV, int src, int tag, MPI_Comm *comm); -*/ - -VALUE request_new(req_type type, ...) -{ - va_list args; - struct mpi_request *mr; - VALUE tdata; - - mr = ALLOC(struct mpi_request); - mr->type = type; - mr->obj = Qnil; - - va_start(args, type); - switch (type) { - case PSEND: - case PBSEND: - case PSSEND: - case PRSEND: - mr->obj = va_arg(args, VALUE); - /* fall through */ - case RECV: - mr->req = ALLOC(MPI_Request); - mr->peer = va_arg(args, int); - mr->tag = va_arg(args, int); - mr->comm = va_arg(args, MPI_Comm *); - mr->stage = TX_SIZE; - mr->buflen = 0; - mr->buf = NULL; - break; - case NORMAL: - mr->req = va_arg(args, MPI_Request *); - break; - } - va_end(args); - - tdata = Data_Wrap_Struct(cRequest, request_mark, request_free, mr); - rb_obj_call_init(tdata, 0, NULL); - - return tdata; -} - -static VALUE request_wait(VALUE self) -{ - int rv; - struct mpi_request *mr; - MPI_Status *stat; - - Data_Get_Struct(self, struct mpi_request, mr); - - stat = ALLOC(MPI_Status); - - if ((mr->type == RECV) && (mr->stage == TX_SIZE)) { - rv = MPI_Wait(mr->req, stat); - mpi_exception(rv); - - free(mr->buf); - mr->buf = ALLOC_N(char, mr->buflen + 1); - - rv = MPI_Irecv(mr->buf, mr->buflen + 1, MPI_BYTE, mr->peer, mr->tag, - *mr->comm, mr->req); - mpi_exception(rv); - - request_unwatch(mr); - - mr->stage = TX_DATA; - } - - rv = MPI_Wait(mr->req, stat); - mpi_exception(rv); - - if (mr->type == RECV) { - VALUE str; - - str = rb_str_new2(mr->buf); - mr->obj = rb_funcall(mMarshal, id_load, 1, str); - free(mr->buf); - mr->buf = NULL; - } - - return status_new(stat); -} - -static VALUE request_waitany(VALUE self, VALUE rreqs) -{ - int rv; - int i, length, no_sizereqs = 0; - MPI_Status *stat; - MPI_Request *reqs, *sizereqs; - struct mpi_request *mr; - - length = RARRAY(rreqs)->len; - reqs = ALLOCA_N(MPI_Request, length); - sizereqs = ALLOCA_N(MPI_Request, length); - stat = ALLOC(MPI_Status); - - for (i = 0; i < length; i++) { - Data_Get_Struct(rb_ary_entry(rreqs, i), struct mpi_request, mr); - - /* Only requests that are not receives in the receive size stage */ - /* can possibly be ready to go. */ - if ((mr->type == RECV) && (mr->stage == TX_SIZE)) { - reqs[i] = MPI_REQUEST_NULL; - sizereqs[i] = *mr->req; - no_sizereqs++; - } else { - reqs[i] = *mr->req; - sizereqs[i] = MPI_REQUEST_NULL; - } - } - - if (no_sizereqs == length) { - VALUE str; - - /* First to finish getting their length wins */ - rv = MPI_Waitany(length, sizereqs, &i, stat); - mpi_exception(rv); - - if (i == MPI_UNDEFINED) - return UNDEFINED; - - free(mr->buf); - mr->buf = ALLOC_N(char, mr->buflen + 1); - - rv = MPI_Irecv(mr->buf, mr->buflen + 1, MPI_BYTE, mr->peer, mr->tag, - *mr->comm, mr->req); - mpi_exception(rv); - - MPI_Wait(&sizereqs[i], stat); - mpi_exception(rv); - - Data_Get_Struct(rb_ary_entry(rreqs, i), struct mpi_request, mr); - if (sizereqs[i] == MPI_REQUEST_NULL) - *mr->req = MPI_REQUEST_NULL; - - str = rb_str_new2(mr->buf); - mr->obj = rb_funcall(mMarshal, id_load, 1, str); - free(mr->buf); - mr->buf = NULL; - - request_unwatch(mr); - } else { - rv = MPI_Waitany(length, reqs, &i, stat); - mpi_exception(rv); - - if (i == MPI_UNDEFINED) - return UNDEFINED; - - if (reqs[i] == MPI_REQUEST_NULL) { - /* assign the request in rreqs to be request null */ - Data_Get_Struct(rb_ary_entry(rreqs, i), struct mpi_request, mr); - *mr->req = MPI_REQUEST_NULL; - } - } - - return rb_ary_new3(2, rb_fix_new(i), status_new(stat)); -} - -static VALUE request_waitall(VALUE self, VALUE rreqs) -{ - int rv; - int i, length, have_sizereqs = 0; - MPI_Status *stats; - MPI_Request *reqs, *sizereqs; - VALUE rstats; - struct mpi_request *mr; - - length = RARRAY(rreqs)->len; - reqs = ALLOCA_N(MPI_Request, length); - sizereqs = ALLOCA_N(MPI_Request, length); - stats = ALLOCA_N(MPI_Status, length); - - for (i = 0; i < length; i++) { - Data_Get_Struct(rb_ary_entry(rreqs, i), struct mpi_request, mr); - if ((mr->type == RECV) && (mr->stage == TX_SIZE)) { - sizereqs[i] = *mr->req; - have_sizereqs = 1; - } else { - sizereqs[i] = MPI_REQUEST_NULL; - } - - reqs[i] = *mr->req; - } - - /* If any of the requests are for receivers still waiting on buffers, we - have to wait on those first. */ - if (have_sizereqs) { - rv = MPI_Waitall(length, sizereqs, stats); - mpi_exception(rv); - for (i = 0; i < length; i++) { - Data_Get_Struct(rb_ary_entry(rreqs, i), struct mpi_request, mr); - if ((mr->type == RECV) && (mr->stage == TX_SIZE)) { - free(mr->buf); - - mr->buf = ALLOC_N(char, mr->buflen + 1); - rv = MPI_Irecv(mr->buf, mr->buflen + 1, MPI_BYTE, mr->peer, - mr->tag, *mr->comm, mr->req); - mpi_exception(rv); - - mr->stage = TX_DATA; - request_unwatch(mr); - } - reqs[i] = *mr->req; - } - } - - rv = MPI_Waitall(length, reqs, stats); - mpi_exception(rv); - - rstats = rb_ary_new2(length); - for (i = 0; i < length; i++) { - MPI_Status *stat; - - if (reqs[i] == MPI_REQUEST_NULL) { - /* assign the request in rreqs to be request null */ - Data_Get_Struct(rb_ary_entry(rreqs, i), struct mpi_request, mr); - *mr->req = MPI_REQUEST_NULL; - } - - stat = ALLOC(MPI_Status); - *stat = stats[i]; - rb_ary_store(rstats, i, status_new(stat)); - } - - return rstats; -} - -static VALUE request_waitsome(VALUE self, VALUE rreqs) -{ - int rv; - int i, length; - int outcount; - int *indices; - MPI_Status *stats; - MPI_Request *reqs; - VALUE routreqs, rstats; - - length = RARRAY(rreqs)->len; - reqs = ALLOCA_N(MPI_Request, length); - stats = ALLOCA_N(MPI_Status, length); - indices = ALLOCA_N(int, length); - - for (i = 0; i < length; i++) { - struct mpi_request *req; - - Data_Get_Struct(rb_ary_entry(rreqs, i), struct mpi_request, req); - reqs[i] = *req->req; - } - - rv = MPI_Waitsome(length, reqs, &outcount, indices, stats); - mpi_exception(rv); - - if (outcount == MPI_UNDEFINED) - return UNDEFINED; - - routreqs = rb_ary_new2(outcount); - rstats = rb_ary_new2(outcount); - for (i = 0; i < outcount; i++) { - MPI_Status *stat; - - if (reqs[indices[i]] == MPI_REQUEST_NULL) { - struct mpi_request *req; - - /* assign the request in rreqs to be request null */ - Data_Get_Struct(rb_ary_entry(rreqs, i), struct mpi_request, req); - *req->req = MPI_REQUEST_NULL; - } - - rb_ary_store(routreqs, i, rb_ary_entry(rreqs, indices[i])); - - stat = ALLOC(MPI_Status); - *stat = stats[indices[i]]; - rb_ary_store(rstats, i, status_new(stat)); - } - - return rb_ary_new3(2, routreqs, rstats); -} - -static VALUE request_test(VALUE self) -{ - int rv, flag; - MPI_Status *stat; - struct mpi_request *mr; - - Data_Get_Struct(self, struct mpi_request, mr); - - if ((mr->type == RECV) && (mr->stage == TX_SIZE)) - return rb_ary_new3(2, Qfalse, Qnil); - - stat = ALLOC(MPI_Status); - - rv = MPI_Test(mr->req, &flag, stat); - mpi_exception(rv); - - return rb_ary_new3(2, flag ? Qtrue: Qfalse, status_new(stat)); -} - -static VALUE request_testany(VALUE self, VALUE rreqs) -{ - int rv, flag; - int i, length; - MPI_Status *stat; - MPI_Request *reqs; - struct mpi_request *mr; - - length = RARRAY(rreqs)->len; - reqs = ALLOCA_N(MPI_Request, length); - stat = ALLOC(MPI_Status); - - for (i = 0; i < length; i++) { - - Data_Get_Struct(rb_ary_entry(rreqs, i), struct mpi_request, mr); - if ((mr->type == RECV) && (mr->stage == TX_SIZE)) - reqs[i] = MPI_REQUEST_NULL; - else - reqs[i] = *mr->req; - } - - rv = MPI_Testany(length, reqs, &i, &flag, stat); - mpi_exception(rv); - - if (i == MPI_UNDEFINED) - return UNDEFINED; - - if (reqs[i] == MPI_REQUEST_NULL) { - /* assign the request in rreqs to be request null */ - Data_Get_Struct(rb_ary_entry(rreqs, i), struct mpi_request, mr); - *mr->req = MPI_REQUEST_NULL; - } - - return rb_ary_new3(3, rb_fix_new(i), flag ? Qtrue:Qfalse, status_new(stat)); -} - -static VALUE request_testall(VALUE self, VALUE rreqs) -{ - int rv, flag; - int i, length; - MPI_Status *stats; - MPI_Request *reqs; - VALUE rstats; - struct mpi_request *mr; - - length = RARRAY(rreqs)->len; - reqs = ALLOCA_N(MPI_Request, length); - stats = ALLOCA_N(MPI_Status, length); - - for (i = 0; i < length; i++) { - Data_Get_Struct(rb_ary_entry(rreqs, i), struct mpi_request, mr); - if ((mr->type == RECV) && (mr->stage == TX_SIZE)) - return rb_ary_new3(2, Qfalse, Qnil); - - reqs[i] = *mr->req; - } - - rv = MPI_Testall(length, reqs, &flag, stats); - mpi_exception(rv); - - rstats = rb_ary_new2(length); - for (i = 0; i < length; i++) { - MPI_Status *stat; - - if (reqs[i] == MPI_REQUEST_NULL) { - /* assign the request in rreqs to be request null */ - Data_Get_Struct(rb_ary_entry(rreqs, i), struct mpi_request, mr); - *mr->req = MPI_REQUEST_NULL; - } - - stat = ALLOC(MPI_Status); - *stat = stats[i]; - rb_ary_store(rstats, i, status_new(stat)); - } - - return rb_ary_new3(2, flag ? Qtrue : Qfalse, rstats); -} - -static VALUE request_testsome(VALUE self, VALUE rreqs) -{ - int rv; - int i, length; - int outcount; - int *indices; - MPI_Status *stats; - MPI_Request *reqs; - VALUE routreqs, rstats; - struct mpi_request *mr; - - length = RARRAY(rreqs)->len; - reqs = ALLOCA_N(MPI_Request, length); - stats = ALLOCA_N(MPI_Status, length); - indices = ALLOCA_N(int, length); - - for (i = 0; i < length; i++) { - - Data_Get_Struct(rb_ary_entry(rreqs, i), struct mpi_request, mr); - reqs[i] = *mr->req; - } - - rv = MPI_Testsome(length, reqs, &outcount, indices, stats); - mpi_exception(rv); - - if (i == MPI_UNDEFINED) - return UNDEFINED; - - routreqs = rb_ary_new2(outcount); - rstats = rb_ary_new2(outcount); - for (i = 0; i < outcount; i++) { - MPI_Status *stat; - - if (reqs[indices[i]] == MPI_REQUEST_NULL) { - /* assign the request in rreqs to be request null */ - Data_Get_Struct(rb_ary_entry(rreqs, i), struct mpi_request, mr); - *mr->req = MPI_REQUEST_NULL; - } - - rb_ary_store(routreqs, i, rb_ary_entry(rreqs, indices[i])); - - stat = ALLOC(MPI_Status); - *stat = stats[indices[i]]; - rb_ary_store(rstats, i, status_new(stat)); - } - - return rb_ary_new3(2, routreqs, rstats); -} - -static VALUE request_cancel(VALUE self) -{ - int rv; - struct mpi_request *mr; - - Data_Get_Struct(self, struct mpi_request, mr); - - switch (mr->type) { - case RECV: - mr->stage = TX_SIZE; - free(mr->buf); - mr->buf = NULL; - request_unwatch(mr); - case PSEND: - case PBSEND: - case PSSEND: - case PRSEND: - case NORMAL: - rv = MPI_Cancel(mr->req); - mpi_exception(rv); - break; - } - - return Qtrue; -} - -VALUE request_start(VALUE self) -{ - int rv; - VALUE dump; - MPI_Request tmp; - struct mpi_request *mr; - - Data_Get_Struct(self, struct mpi_request, mr); - - switch (mr->type) { - case PSEND: - dump = rb_funcall(mMarshal, id_dump, 1, mr->obj); - free(mr->buf); - mr->buf = rb_str2cstr(dump, &mr->buflen); - - rv = MPI_Isend(&mr->buflen, 1, MPI_INT, mr->peer, mr->tag, - *mr->comm, &tmp); - mpi_exception(rv); - - rv = MPI_Isend(&mr->buf, mr->buflen, MPI_BYTE, mr->peer, mr->tag, - *mr->comm, mr->req); - mpi_exception(rv); - break; - case PBSEND: - dump = rb_funcall(mMarshal, id_dump, 1, mr->obj); - free(mr->buf); - mr->buf = rb_str2cstr(dump, &mr->buflen); - - rv = MPI_Ibsend(&mr->buflen, 1, MPI_INT, mr->peer, mr->tag, - *mr->comm, &tmp); - mpi_exception(rv); - - rv = MPI_Ibsend(&mr->buf, mr->buflen, MPI_BYTE, mr->peer, mr->tag, - *mr->comm, mr->req); - mpi_exception(rv); - break; - case PSSEND: - dump = rb_funcall(mMarshal, id_dump, 1, mr->obj); - free(mr->buf); - mr->buf = rb_str2cstr(dump, &mr->buflen); - - rv = MPI_Issend(&mr->buflen, 1, MPI_INT, mr->peer, mr->tag, - *mr->comm, &tmp); - mpi_exception(rv); - - rv = MPI_Issend(&mr->buf, mr->buflen, MPI_BYTE, mr->peer, mr->tag, - *mr->comm, mr->req); - mpi_exception(rv); - break; - case PRSEND: - dump = rb_funcall(mMarshal, id_dump, 1, mr->obj); - free(mr->buf); - mr->buf = rb_str2cstr(dump, &mr->buflen); - - rv = MPI_Irsend(&mr->buflen, 1, MPI_INT, mr->peer, mr->tag, - *mr->comm, &tmp); - mpi_exception(rv); - - rv = MPI_Irsend(&mr->buf, mr->buflen, MPI_BYTE, mr->peer, mr->tag, - *mr->comm, mr->req); - mpi_exception(rv); - break; - case RECV: - rv = MPI_Irecv(&mr->buflen, 1, MPI_INT, mr->peer, mr->tag, - *mr->comm, mr->req); - mpi_exception(rv); - request_watch(mr); - break; - case NORMAL: - rv = MPI_Start(mr->req); - mpi_exception(rv); - break; - } - - return Qtrue; -} - -static VALUE request_startall(VALUE self, VALUE rreqs) -{ - int i, rv, length, noreqs = 0; - MPI_Request *reqs; - - length = RARRAY(rreqs)->len; - reqs = ALLOCA_N(MPI_Request, length); - - for (i = 0; i < length; i++) { - struct mpi_request *mr; - - Data_Get_Struct(rb_ary_entry(rreqs, i), struct mpi_request, mr); - if (mr->type == NORMAL) - reqs[noreqs++] = *mr->req; - else - request_start(self); - } - - rv = MPI_Startall(noreqs, reqs); - mpi_exception(rv); - - return Qtrue; -} - -static VALUE request_null_p(VALUE self) -{ - struct mpi_request *mr; - - Data_Get_Struct(self, struct mpi_request, mr); - - return *mr->req == MPI_REQUEST_NULL; -} - -static VALUE request_object(VALUE self) -{ - struct mpi_request *mr; - - Data_Get_Struct(self, struct mpi_request, mr); - - return mr->obj; -} - -void Init_Request() -{ - rlist = ALLOC_N(struct mpi_request *, INITIAL_RLIST_CAP); - MEMZERO(rlist, struct mpi_request *, INITIAL_RLIST_CAP); - rb_thread_create(request_thread, NULL); - - cRequest = rb_define_class_under(mMPI, "Request", rb_cObject); - rb_define_method(cRequest, "wait", request_wait, 0); - rb_define_singleton_method(cRequest, "waitany", request_waitany, 1); - rb_define_singleton_method(cRequest, "waitall", request_waitall, 1); - rb_define_singleton_method(cRequest, "waitsome", request_waitsome, 1); - rb_define_method(cRequest, "test", request_test, 0); - rb_define_singleton_method(cRequest, "testany", request_testany, 1); - rb_define_singleton_method(cRequest, "testall", request_testall, 1); - rb_define_singleton_method(cRequest, "testsome", request_testsome, 1); - rb_define_method(cRequest, "cancel", request_cancel, 0); - rb_define_method(cRequest, "start", request_start, 0); - rb_define_singleton_method(cRequest, "startall", request_startall, 1); - - rb_define_method(cRequest, "null?", request_null_p, 0); - rb_define_method(cRequest, "object", request_object, 0); -} diff --git a/src/mpi_request.h b/src/mpi_request.h deleted file mode 100644 index ba3ee99..0000000 --- a/src/mpi_request.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef MPI_RUBY_REQUEST_H -#define MPI_RUBY_REQUEST_H - -extern VALUE cRequest; - -/* P = Persistant */ -typedef enum {NORMAL, PSEND, PBSEND, PSSEND, PRSEND, RECV} req_type; - -/* - request_new(NORMAL, MPI_Request *req); - request_new(P[BSR]SEND, VALUE obj, int dest, int tag, MPI_Comm *comm); - request_new(RECV, int src, int tag, MPI_Comm *comm); -*/ - -extern VALUE request_new(req_type type, ...); -extern void Init_Request(); -extern VALUE request_start(VALUE self); -#endif /* MPI_RUBY_REQUEST_H */ diff --git a/src/mpi_status.c b/src/mpi_status.c deleted file mode 100644 index bb579c5..0000000 --- a/src/mpi_status.c +++ /dev/null @@ -1,54 +0,0 @@ -#include "mpi.h" -#include "ruby.h" -#include "global.h" - -VALUE cStatus; - -VALUE status_new(MPI_Status *stat) -{ - VALUE tdata; - - tdata = Data_Wrap_Struct(cStatus, NULL, free, stat); - rb_obj_call_init(tdata, 0, NULL); - - return tdata; -} - -static VALUE status_source(VALUE self) -{ - MPI_Status *stat; - - Data_Get_Struct(self, MPI_Status, stat); - - return rb_fix_new(stat->MPI_SOURCE); -} - -static VALUE status_tag(VALUE self) -{ - MPI_Status *stat; - - Data_Get_Struct(self, MPI_Status, stat); - - return rb_fix_new(stat->MPI_TAG); -} - -static VALUE status_cancelled_p(VALUE self) -{ - int rv, flag; - MPI_Status *stat; - - Data_Get_Struct(self, MPI_Status, stat); - - rv = MPI_Test_cancelled(stat, &flag); - - return flag ? Qtrue : Qfalse; -} - -void Init_Status() -{ - cStatus = rb_define_class_under(mMPI, "Status", rb_cObject); - - rb_define_method(cStatus, "source", status_source, 0); - rb_define_method(cStatus, "tag", status_tag, 0); - rb_define_method(cStatus, "cancelled?", status_cancelled_p, 0); -} diff --git a/src/mpi_status.h b/src/mpi_status.h deleted file mode 100644 index 89cf920..0000000 --- a/src/mpi_status.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef MPI_RUBY_STATUS_H -#define MPI_RUBY_STATUS_H - -extern VALUE cStatus; - -extern VALUE status_new(MPI_Status *stat); -extern void Init_Status(); - -#endif /* MPI_RUBY_STATUS_H */ diff --git a/src/ops.rb b/src/ops.rb deleted file mode 100755 index 1c75518..0000000 --- a/src/ops.rb +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env ruby - -# Horrible hack to get "dynamic" operations - -if ARGV.length > 0 then - size = ARGV[0].to_i -else - size = 25 -end - -puts " -#define MAX_OPS #{size} - -static struct { - VALUE proc; - int assigned, resize; -} op_table[MAX_OPS]; - -" - -size.times do |i| - puts "static void op_#{i}(void *invec, void *inoutvec, int *len, MPI_Datatype *dtype) -{ - int rv, i, size, length; - char *data; - VALUE obj; - - rv = MPI_Type_size(*dtype, &size); - mpi_exception(rv); - - for (i = 0; i < *len; i++) { - VALUE str, arg1, arg2; - - str = rb_str_new(((char *)invec) + (i * size), size); - arg1 = rb_funcall(mMarshal, id_load, 1, str); - - str = rb_str_new(((char *)inoutvec) + (i * size), size); - arg2 = rb_funcall(mMarshal, id_load, 1, str); - - obj = rb_funcall(op_table[#{i}].proc, id_call, 2, arg1, arg2); - - str = rb_funcall(mMarshal, id_dump, 1, obj); - data = rb_str2cstr(str, &length); - - if (length + 1 > size) { - op_table[#{i}].resize = length + 1; - } else { - MEMCPY(((char *)inoutvec) + (i * size), data, char, length + 1); - } - } -} - -" -end - -puts "static MPI_User_function *fn_table[MAX_OPS] = {" -size.times do |i| - puts " op_#{i}," -end -puts "};" diff --git a/stamp-h.in b/stamp-h.in deleted file mode 100644 index 9788f70..0000000 --- a/stamp-h.in +++ /dev/null @@ -1 +0,0 @@ -timestamp