****************************************************

         XML Definition Interpreter

              Build Instructions

    Copyright (c) 2005 - The MITRE Corporation

****************************************************

The MITRE Corporation developed the Definition Interpreter to 
demonstrate the usability of OVAL definitions in the XML formats.
The source for the Interpreter is freely available
for reference use. This document describes the steps you need to
build the OVAL Definition Interpreter.

For information about using the Interpreter refer to the ReadMe.txt
file included with the Interpreter, or the OVAL Web site.

      XML Definition Interpreter:
      http://oval.mitre.org/oval/download/version4/readme.html

BY USING THE INTERPRETER, YOU SIGNIFY YOUR ACCEPTANCE OF THE
TERMS AND CONDITIONS OF USE.  IF YOU DO NOT AGREE TO THESE TERMS,
DO NOT USE THE INTERPRETER.  SEE THE TERMS.TXT FILE INCLUDED WITH
THE INTERPRETER, OR http://oval.mitre.org/about/bsd_license.html.


-- CONTENTS --

  I    OVERVIEW
        A. Source Distribution
        B. Source Distribution Contents
        C. Supporting Libraries
  II   XML DEFINITION INTERPRETER
        A. PCRE Library
        B. Xerces Library
        C. Xalan Library
        D. Building the XML Definition Interpreter
  III  PCRE
  IV   XERCES
  V    XALAN
  VI   REPORTING PROBLEMS

-- I -- OVERVIEW --

Download the appropriate installation files from the OVAL Web site.

  A. Source Distributions

       The source for the Interpreter is freely available on the OVAL
       Web site.  There is currently a .zip file for windows users that
       contains all the source code as well as a VC6 project for each
       interpreter.  To download the source go to:

            http://oval.mitre.org/oval/download/interpreter/index.html

  B. Source Distribution Contents

       The source code distribution contains the source for
       the XML Definition Interpreter and a Visual C++ 6 and 7 project.
       The source distribution does not include the source for the libraries
       needed to compile the Interpreter. 


  C. Supporting Libraries

       The Interpreter relies on two c/c++ libraries that can be found
       on the web. See sections II - III for more information about the
       specific libraries used and where to download their source from.


-- II -- XML DEFINITION INTERPRETER --

The following instructions describe how to build the OVAL XML Definition 
Interpreter on a Windows system.  The XML Definition Interpreter has been
built on windows and tested on Windows 2000 and Windows XP Pro using VC6
and VC7. The source distribution includes a project file that has can be 
used to build the Interpreter.  Before the Interpreter can be built the 
supporting libraries must be installed. Follow the instruction below to 
setup and install the supporting libraries.

  A. PCRE (Perl-compatible regular-expression) Library
 
       The simplest way to setup the PCRE library on a Windows system is to
       download the "Complete package, except sources" (note: download 'Setup'
       not 'Zip') from:
       
          http://gnuwin32.sourceforge.net/packages/pcre.htm

       The download should be an executable that will install the binaries,
       developer files, and documentation on your machine.  Run this setup
       program and follow the instructions provided. 

       After the installation is complete you must add the PCRE lib and
       include directories to Visual C++. Add the following directory to 
       the include files search path:
       
          <installed path>\gnuwin32\include
       
       Then add the following directory to the library files search path:

          <installed path>\gnuwin32\lib

       In Visual C++ 6 the UI for seting up directories can be found by clicking the 
       "Tools" menu then selecting "Options..." and selecting the "Directories" tab.

       In Visual C++ 7 the UI for seting up directories can be found by clicking the
       "Tools" menu then selecting "Options..." next selecting the "Project" folder
       and then choosing the "VC++ Directories" item.     


  B. Xerces Library

       Download and build version 2.6.0 of the xerces-c library. The source can
       be found at:

          http://archive.apache.org/dist/xml/xerces-c/source

       From the win32 directory, select the "xerces-c-src_2_6_0.zip" link.
       Unzip the source and follow the build instructions on the xerces Web
       site:

          http://xml.apache.org/xerces-c/build-winunix.html#WinNT

       Be sure to build the WIN32 Release version. After building the xerces-c
       library add the location of the xerces-c.dll onto your path environment
       variable and copy the the xerces-c_2.lib file to a convienent location.

       Finally, Visual C++ needs to be setup. Add the following directory to 
       the include files search path:
       
          <installed path>\xerces-c-src_2_6_0\src
       
       Then add the directory that contains xerces-c_2.lib to the library search
       path:
       
       In Visual C++ 6 the UI for seting up directories can be found by clicking the 
       "Tools" menu then selecting "Options..." and selecting the "Directories" tab.

       In Visual C++ 7 the UI for seting up directories can be found by clicking the
       "Tools" menu then selecting "Options..." next selecting the "Project" folder
       and then choosing the "VC++ Directories" item. 

  C. Xalan Library
       Download and build version 1.9.0 of the xalan-c library. The source can
       be found at:

          http://archive.apache.org/dist/xml/xalan-c/

       From the soource directory, select the "Xalan-C_1_9_0-src.zip" link.
       Unzip the source and follow the build instructions on the xerces Web
       site:

          http://xml.apache.org/xalan-c/build_instruct.html#win32

       Be sure to build the WIN32 Release version. After building the xalan-c
       library add the location of the Xalan-C_1_9.dll onto your path environment
       variable and copy the the Xalan-C_1.lib file to a convienent location.

       Finally, Visual C++ needs to be setup. Add the following directory to 
       the include files search path:
       
          <installed path>\Xalan-C_1_9_0-src\xml-xalan\c\src
       
       Then add the directory that contains Xalan-C_1.lib to the library search
       path:
       
       In Visual C++ 6 the UI for seting up directories can be found by clicking the 
       "Tools" menu then selecting "Options..." and selecting the "Directories" tab.

       In Visual C++ 7 the UI for seting up directories can be found by clicking the
       "Tools" menu then selecting "Options..." next selecting the "Project" folder
       and then choosing the "VC++ Directories" item. 

  D. Building the XML Definition Interpreter

      After setting up the PCRE and Xerces libraries open the provided project for
      the XML Definition Interpreter. The project is in:

         Visual C++ 6:
         <installed path>\Interpreters\project\Win32\VC6\DefinitionInterpreter.dsp

         Visual C++ 7:
         <installed path>\Interpreters\project\Win32\VC7\DefinitionInterpreter.vcproj

      From the build menu simply select "build" to build the XML Definition
      Interpreter. Note that a "Debug" and a "Release" build configuration
      is provided. 

 
-- III -- PCRE --

The Interpreter uses the open source PCRE library.  The Interpreter
currently uses version 5.0 of the PCRE library.  From the PCRE Web site:

  "Regular expression support is provided by the PCRE library 
   package, which is open source software, written by Philip Hazel,
   and copyright by the University of Cambridge, England."

For more information about PCRE visit:

    http://www.pcre.org

To download the source code for PCRE, please use the following ftp
site:

    ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/


-- IV -- XERCES --

The Definition Interpreter uses the open source Xerces library.  The
binary was compiled with version 2.6 of the xerces-c library.  From
the Xerces Web site:

  "This product includes software developed by the Apache Software
  Foundation (http://www.apache.org/)."

For more information about Xerces visit:

    http://xml.apache.org

The source code is also available at the above Web site.

-- V -- XALAN --

The Definition Interpreter uses the open source Xalan library.  The
binary was compiled with version 1.9 of the xalan-c library.  From
the Xalan Web site:

  "This product includes software developed by the Apache Software
  Foundation (http://www.apache.org/)."

For more information about Xalan visit:

    http://xml.apache.org

The source code is also available at the above Web site.

-- VI -- REPORTING PROBLEMS --

To report a problem with either OVAL Definition Interpreter, please
send an email with a brief description of the problem to 
oval@mitre.org. Include the platform the Interpreter was run on, and
the version of the Interpreter and definitions file.

