Instructions for getting and making the
Real-time Control Systems(RCS) Library.


For a many platforms the RCS library is available in pre-compiled form from the Intelligent Systems Division Anonymous FTP server (ftp.isd.mel.nist.gov) /pub/emc/rcslib directory. Unfortunately most of the pre-compiled libraries are not the latest version. If you require a feature not yet available in the precompiled version you can either compile the source code, which should almost always be more up-to-date than the precompiled archives or contact me Will Shackleford at shackle@cme.nist.gov).

For the diagnostics tool or code generator, download diag_NB.jar or CodeGenCmdLine.jar, and a Java Runtime tool such as from http://java.sun.com/ and run with the command "java -jar <jarfile>". (See the instructions for each tool.) The diagnotics tool now requires JDK or JRE 1.6 as well as plotter_NB.jar,rcs.jar, CodeGenCmdLine.jar, and swing-layout-1.0.jar.

Alternatively run diag tool through Java WebStart with this link:

http://www.isd.mel.nist.gov/projects/rcslib/diag.jnlp

or with all Java classes in one .Jar file here:

http://www.isd.mel.nist.gov/projects/rcslib/rcsjava.jar

For other platforms, or to be able to customize the RCS library you will need the source code.

  1. Get the source at ftp://ftp.isd.mel.nist.gov/pub/emc/rcslib/rcslib-2009.10.01.tar.gz
    or at
    http://www.isd.mel.nist.gov/projects/rcslib/rcslib-2009.10.01.tar.gz
  2. Extract files from rcslib-2009.10.01.tar.gz
    1. Uncompress the file by using "gunzip rcslib-2009.10.01.tar.gz
    2. Extract all of the files from the tar file by using " tar -xf rcslib-2009.10.01.tar

      With newer versions of GNU tar one can uncompress and extract with one command."tar -xzf rcslib-2009.10.01.tar"

  3. Build the RCS library.
  4. To build your own applications:

    If you built with the old static Makefile, you need to add the following line to your compiler options where pathtorcslib and platname will depend on your system:
    -Ipathtorcslib/plat/platname/include

    The following also needs to be added to the linker options:
    -Lpathtorcslib/plat/platname/lib -lrcs

    For configure/autoconf based builds the flags will be different since the paths are different but typically only the -lrcs flag is needed since configure will install files in the default location expected by the compiler.

    Also depending on your platform you may need to add some additional libraries to the linker options. The libraries themselves are expected to be provided with your operating system or compiler but still need to be explicitly requested in the linker options. For example windows needs "-lws2_32 -lwininet" while Solaris needs "-lrpcsvc -lsocket -lnsl -lintl -lm -lposix4 -ldl" If you get undefined symbols you can check the CLINK variable of the platforms .def file or your operating systems documentation on the functions that were undefined to determine what libraries to add. configure will also print the LIBS it is using which are also generally needed for applications. Also, since RCS is a C++ library you generally will want to link with the C++ compiler rather than directly with ld or with the C compiler or you may end up missing the standard C++ libraries.

  5. OPTIONAL: Build the java tools and jar files

    While the precompiled version of the java code can be run on multiple platforms and therefore somewhat reduce the need for recompiling. The precompiled code might not be the latest.

    To build from source: Download and install a Developer's Kit for Java such as the SDK for Java 2 Standard Edition (J2SE) from http://java.sun.com/.

    With the java bin directory on your PATH run:

    cd pathtorcslib/src/java
    make PLAT=java
    
    Sometimes it is necessary to add JDK_DIR=path_to_j2se_sdk to the make command line if you have multiple java programs on your path. The compiled byte code will be placed in several jar files and subdirectories in pathtorcslib/plat/java/lib/.

Last Modified: 2009.10.01

If you have questions or comments regarding this page, please contact Will Shackleford at

shackle@cme.nist.gov

Commercial Product Disclaimer
DISCLAIMER: Certain commercial equipment, instruments, or materials are identified in this paper to specify the experimental procedure adequately. Such identification is not intended to imply recommendation or endorsement by the National Institute of Standards and Technology, nor is it intended to imply that the materials or equipment identified are necessarily the best available for the purpose.


Software Disclaimer
DISCLAIMER: This software was produced by the National Institute of Standards and Technology (NIST), an agency of the U.S. government, and by statute is not subject to copyright in the United States. Recipients of this software assume all responsibility associated with its operation, modification, maintenance, and subsequent redistribution.
See NIST Administration Manual 4.09.07 b and Appendix I