.. _e Language SPECMAN_PATH:

e Language SPECMAN_PATH
=======================

.. rst-class:: lead

   
The **SPECMAN_PATH** environment variable is used by the e Language parser to find imported files.
It comprises of a list of search directories, separated by the OS-specific path separator character (':' colon on Linux and ';' semicolon on Windows).

It can be defined or altered by using the ``+dvt_setenv+`` directive.

When relative paths are provided, they are automatically transformed into paths relative to the compilation root directory. By default the compilation root is the project directory. For more details see :ref:`Paths`.

Examples:

.. list-table::

   * - **Action**
     - **Linux**
     - **Windows**
   * - Define/overwrite shell-inherited value
     - +dvt_setenv+SPECMAN_PATH=/my/specman/path1:/my/specman/path1
     - +dvt_setenv+SPECMAN_PATH=/my/specman/path1;/my/specman/path1
   * - Append to shell-inherited value
     - +dvt_setenv+SPECMAN_PATH=$SPECMAN_PATH:/my/specman/path
     - +dvt_setenv+SPECMAN_PATH=$SPECMAN_PATH;/my/specman/path
   * - Prepend to shell-inherited value
     - +dvt_setenv+SPECMAN_PATH=/my/specman/path:$SPECMAN_PATH
     - +dvt_setenv+SPECMAN_PATH=/my/specman/path;$SPECMAN_PATH
   * - Append <project_root>/e directory to the SPECMAN_PATH
     - +dvt_setenv+SPECMAN_PATH=$SPECMAN_PATH:e
     - +dvt_setenv+SPECMAN_PATH=$SPECMAN_PATH;e

Backward-compatibility note: starting with DVT version 3.2, if a .build file is used to configure the project, the .edt_specman_path file is ignored.

Adding VIPs to $SPECMAN_PATH using sn_which.sh
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can specify a list of VIPs that should automatically be located by DVT using **sn_which.sh** and added to the ``$SPECMAN_PATH`` (if available in the console where DVT was started). The Specman version defines (e.g define SPECMAN_VERSION_###) are also detected using the same mechanism.

By default, the following VIPs are located and added automatically: evc_util, vr_ad, ovm_e, uvm_e


