
	     RubyDCL -- a ruby interface to DCL library

	 by K. Goto, K. Kuroi, N. Kawanabe, and T. Horinouchi

Last Updated: Aug 27, 2001


* WHAT IS THIS?

  This is a one-to-one wrapper to a scientific graphic library DCL
  (http://www.gfd-dennou.org/arch/dcl/).
  It was originally developed with DCL-5.1 but is currently tested
  for use with the ver.5.2. 

* INSTALLATION

  To install this library, the following must have been installed. 

   * The C version of dcl: dcl-5.2C_011213 or later
     (ftp://www.gfd-dennou.org/arch/dcl/dcl-5.2-C_011213.tar.gz).
     Note that dcl-5.2-C.tar.gz in the directory, which is older than 
     dcl-5.2-C_011213.tar.gz will NOT WORK with ruby-dcl-1.0.0
     or a later version of RubyDCL. The reason for that is as follows:
     In the later versions of RubyDCL, exception handing was made
     compliant to that in Ruby, i.e., to call the "raise" predefined
     function. In order to do that, the msgdmp_ function in the C
     version of DCL had to be modified.

   * Ruby version 1.6 or later (http://www.ruby-lang.org/).

   * NArray (http://www.ruby-lang.org/en/raa-list.rhtml?name=NArray)
     which is a numeric multi-dimensional array class.

     NOTE: By default, the two headers narray.h and narray_config.h
     in the narraypackage are assumed to have been copied to
     $(sitearchdir), which is normally 
     /usr/local/lib/ruby/site_ruby/1.6/$(arch)/ if you are using Unix,
     where $(arch) is something like sparc-solaris2.6, a combination of
     CPU and OS. You can specify the directory that contains these files
     explicitly by using an environmental variable WITH_NARRAY_INCLUDE
     like this:

     % setenv WITH_NARRAY_INCLUDE '--with-narray-include=/narraydir/include'
     or, if you are using bash,
     % export WITH_NARRAY_INCLUDE='--with-narray-include=/narraydir/include'

     This cause src/extconf.rb run with its value as:
     cd src; ruby extconf.rb --with-narray-include=/narraydir/include;

  If you are using a UNIX operating system, you only need to execute
  the following command at the current directly ("%" is a "prompt". Do
  not type it): 

     % make

  (Development of a Windows version is hoped but has not been done so
  far.)

  The command does two things:

    (1) To create source code for the C-interface from a prototype
        definition of DCL in the "proto" directory. 
	(Equivalent to % make prt)
        The source code creation is done with ruby.

	The definition is in a format specific to this interface and
        is made partly by hand. This is because of a necessity to
        distinguish input, output, in-out, work arguments. Therefore,
        to catch up future development of DCL, it has to be updated
        by hand again.


    (2) To compile the source code.
	(Equivalent to % make lib)

        Unlike (1), commands used for this process are platform
	dependent. Auto-configuration is done by src/extconf.rb,
	so the user does not have to care platform dependence.
