### Verifying UVM-SystemC Installation by Running Examples Source: https://github.com/accellera-official/uvm-systemc/blob/main/INSTALL.md This command compiles and executes the example suite located in the `examples` subdirectory. It serves as a crucial verification step to confirm the UVM-SystemC installation is functional. ```Shell gmake check ``` -------------------------------- ### Installing UVM-SystemC Package Source: https://github.com/accellera-official/uvm-systemc/blob/main/INSTALL.md This command installs the compiled UVM-SystemC package to the location specified during the configuration step or to its default installation path. This makes the necessary libraries and headers available for use. ```Shell gmake install ``` -------------------------------- ### Configuring UVM-SystemC with Custom Installation Prefix Source: https://github.com/accellera-official/uvm-systemc/blob/main/INSTALL.md This command configures UVM-SystemC to be installed in a specified custom directory using the `--prefix` option, such as `/usr/local/uvm-systemc`. The target directory must exist before installation, and `/usr/local` should not be used directly as a prefix. ```Shell ../configure --prefix=/usr/local/uvm-systemc ``` -------------------------------- ### Configuring UVM-SystemC Package Source: https://github.com/accellera-official/uvm-systemc/blob/main/INSTALL.md This command executes the `configure` script from the parent directory to prepare the UVM-SystemC package for compilation. It performs system checks, platform detection, and verifies the SystemC installation. ```Shell ../configure ``` -------------------------------- ### Navigating to Temporary Build Directory (UVM-SystemC) Source: https://github.com/accellera-official/uvm-systemc/blob/main/INSTALL.md This command changes the current working directory to the newly created `objdir`. Subsequent build commands will be executed from within this directory. ```Shell cd objdir ``` -------------------------------- ### Compiling UVM-SystemC Package Source: https://github.com/accellera-official/uvm-systemc/blob/main/INSTALL.md This command compiles the UVM-SystemC package using `gmake`. If the configuration is altered after an initial compilation, it is recommended to run `gmake clean` before recompiling. ```Shell gmake ``` -------------------------------- ### Configuring UVM-SystemC with Custom SystemC Path Source: https://github.com/accellera-official/uvm-systemc/blob/main/INSTALL.md This command configures UVM-SystemC, explicitly providing the path to the SystemC installation directory using the `--with-systemc` option. This is necessary if the `configure` script cannot automatically locate SystemC. ```Shell ../configure --with-systemc=/path/to/your/systemc ``` -------------------------------- ### Setting Compilation Options in Bourne Shell Source: https://github.com/accellera-official/uvm-systemc/blob/main/INSTALL.md This command demonstrates how to set initial compilation and linking options (C compiler, C flags, and libraries) in a Bourne-compatible shell environment before executing the `configure` script. This is useful for systems requiring specific options not automatically detected by `configure`. ```Shell CC=c89 CFLAGS=-O2 LIBS=-lposix ../configure ``` -------------------------------- ### Setting Compilation Options using env Command Source: https://github.com/accellera-official/uvm-systemc/blob/main/INSTALL.md This command illustrates how to define preprocessor flags and linker flags using the `env` program before running the `configure` script. This method is an alternative for systems where `env` is available, allowing for precise control over compilation and linking options. ```Shell env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ../configure ``` -------------------------------- ### Setting UVM-SystemC Environment Variables on Windows Source: https://github.com/accellera-official/uvm-systemc/blob/main/INSTALL.md This snippet illustrates the necessary environment variables, SYSTEMC_MSVC and UVM_SYSTEMC_MSVC, that must be configured on Windows. These variables point to the respective installation directories of SystemC and UVM-SystemC for Visual Studio 2019 or later, enabling the build system to correctly locate required libraries and header files. ```Batch Variable: SYSTEMC_MSVC Value : c:\my\path\to\systemc\msvc16 Variable: UVM_SYSTEMC_MSVC Value : c:\my\path\to\uvm-systemc\msvc16 ``` -------------------------------- ### Removing Temporary Build Directory (UVM-SystemC) Source: https://github.com/accellera-official/uvm-systemc/blob/main/INSTALL.md These commands navigate up one directory and then recursively remove the temporary build directory `objdir`. This cleans up the build environment after a successful installation. ```Shell cd .. rm -rf objdir ``` -------------------------------- ### Creating Temporary Build Directory (UVM-SystemC) Source: https://github.com/accellera-official/uvm-systemc/blob/main/INSTALL.md This command creates a temporary directory named `objdir` which will be used to store build artifacts for UVM-SystemC. It's a common practice to isolate build files from the source code. ```Shell mkdir objdir ``` -------------------------------- ### Uninstalling UVM-SystemC Package Source: https://github.com/accellera-official/uvm-systemc/blob/main/INSTALL.md This command uninstalls the UVM-SystemC package from the system. It removes the files that were previously installed by the `gmake install` command. ```Shell gmake uninstall ``` -------------------------------- ### Configuring UVM-SystemC with C++17 Standard Source: https://github.com/accellera-official/uvm-systemc/blob/main/INSTALL.md This command configures UVM-SystemC to compile using the C++17 standard by passing `CXXFLAGS=-std=c++17` to the `configure` script. This is required as per IEEE Std. 1666-2023 for SystemC implementations. ```Shell ../configure 'CXXFLAGS=-std=c++17' ``` -------------------------------- ### Resetting Timestamps for Automake Compatibility (UVM-SystemC) Source: https://github.com/accellera-official/uvm-systemc/blob/main/INSTALL.md These commands reset the timestamps of `aclocal.m4`, `configure`, and all `Makefile.in` files. This is a workaround for known issues where `automake` incompatibilities cause errors during the `gmake` process. ```Shell touch aclocal.m4 configure find . -name Makefile.in -exec touch {} \; ``` -------------------------------- ### Cleaning Temporary Build Files (UVM-SystemC) Source: https://github.com/accellera-official/uvm-systemc/blob/main/INSTALL.md This command removes object files and other temporary files generated during the build process from the temporary directory. It is useful for preparing for a fresh build or cleaning up after experimentation. ```Shell gmake clean ``` -------------------------------- ### Setting C++ Compiler Environment Variable (UVM-SystemC) Source: https://github.com/accellera-official/uvm-systemc/blob/main/INSTALL.md This command sets the `CXX` environment variable to `g++`, explicitly specifying the C++ compiler for the UVM-SystemC build. An absolute path to a preferred compiler can also be used. ```Shell setenv CXX g++ ``` -------------------------------- ### Configuring Git Remote for Personal Fork - Shell Source: https://github.com/accellera-official/uvm-systemc/blob/main/docs/DEVELOPMENT.md This snippet demonstrates how to add a personal GitHub fork as a remote to a local Git repository clone. It includes commands to navigate to the repository directory, add the remote named 'origin' pointing to your fork, and set the local 'main' branch to track the remote 'main' branch. ```Shell cd / git remote add origin git@github.com:/.git git branch --set-upstream main origin/main ``` -------------------------------- ### Preparing Bug Fixes for Contribution (Git) Source: https://github.com/accellera-official/uvm-systemc/blob/main/docs/DEVELOPMENT.md This snippet demonstrates how to create a new branch for a bug fix, based on the `origin/develop` branch, and then cherry-pick specific commits from a vendor's private development branch into this new fix branch. This process isolates the fix for easier contribution. ```Git git checkout -b -fix- origin/develop git cherry-pick ... ``` -------------------------------- ### Generating a Pull Request Summary (Git) Source: https://github.com/accellera-official/uvm-systemc/blob/main/docs/DEVELOPMENT.md This command generates a summary of changes between the `develop` branch and the specified feature branch (``) in your GitHub repository. This summary can then be used to manually send a pull request to the Accellera working group email reflector, initiating the code review process. ```Git git request-pull develop git@github.com//.git \ ``` -------------------------------- ### Reviewing Proposed Contributions (Git) Source: https://github.com/accellera-official/uvm-systemc/blob/main/docs/DEVELOPMENT.md This set of commands allows a reviewer to add a contributor's fork as a remote, fetch its branches, and then examine the differences and commit history of a specific feature branch against the local `develop` branch. This facilitates a thorough local code review before merging. ```Git # add the fork to your set of "remotes" git remote add git@github.com//.git git fetch # examine differences git diff develop../ git log / ``` -------------------------------- ### Pushing a Feature Branch to Remote (Git) Source: https://github.com/accellera-official/uvm-systemc/blob/main/docs/DEVELOPMENT.md This command pushes the local feature branch, `-`, to your specified GitHub fork remote. This action makes the branch available on GitHub, enabling it to be referenced for pull request submission and review by other team members. ```Git git push - ``` -------------------------------- ### Creating a New Feature Branch (Git) Source: https://github.com/accellera-official/uvm-systemc/blob/main/docs/DEVELOPMENT.md This command creates a new feature branch, named `-`, forked from the `develop` branch. It is used to isolate new contributions or complex bug fixes during development, ensuring a clean separation from the main development line. ```Git git checkout -b - develop ``` -------------------------------- ### Merging a Feature Branch with Merge Commit (Git) Source: https://github.com/accellera-official/uvm-systemc/blob/main/docs/DEVELOPMENT.md This command merges an accepted feature branch (`/`) into the current branch (typically `develop`) using a non-fast-forward merge. The `--no-ff` option ensures an explicit merge commit is created, preserving the history of the individual contribution, and `--log` includes a one-line description from every merged commit. ```Git git merge --no-ff --log \ / ``` -------------------------------- ### Committing and Pushing Contributions to Git - Shell Source: https://github.com/accellera-official/uvm-systemc/blob/main/docs/DEVELOPMENT.md This snippet shows the Git commands for committing changes with a sign-off and pushing them to a remote repository. It explains that omitting the repository defaults to the current branch's remote and provides details on the format for specifying local and remote branches. ```Shell git commit --signoff git push [options] [] [...] ``` -------------------------------- ### Rebasing Private Feature Branches for Contribution (Git) Source: https://github.com/accellera-official/uvm-systemc/blob/main/docs/DEVELOPMENT.md This snippet illustrates the process of preparing a new feature for contribution by rebasing it onto the main `origin/develop` branch. It involves creating a new branch from the private feature branch and then interactively rebasing it to align with the upstream development history, making it suitable for a pull request. ```Git git checkout -b - git rebase [-i|--interactive] --onto origin/develop develop- ``` -------------------------------- ### Signing Off Git Commits for Contributions Source: https://github.com/accellera-official/uvm-systemc/blob/main/CONTRIBUTING.md This snippet shows the required format for the 'Signed-off-by' line to be added to a Git commit message when contributing to the Accellera project. This line, typically added using `git commit --signoff`, certifies that the contributor has the right to submit the patch under the Apache License Version 2.0 and is mandatory for non-Accellera members. ```Shell Signed-off-by: Ima Contributor ``` -------------------------------- ### Running UVM-SystemC Regression Tests - Shell Source: https://github.com/accellera-official/uvm-systemc/blob/main/tests/README.md This shell command executes the UVM-SystemC regression test suite using the `verify-uvm.pl` script. It enables warning and error messages (`-e`), verbose output (`-v`), allows passing additional compiler options (`-o -std=c++17`), and specifies the test root as `uvm-systemc`. Ensure `SYSTEMC_HOME` and `UVM_SYSTEMC_HOME` environment variables are correctly set before execution. ```Shell objdir> $UVMSC_SRC_PATH/tests/scripts/verify-uvm.pl -e -v -o -std=c++17 uvm-systemc ``` -------------------------------- ### Deleting Feature Branches After Merge (Git) Source: https://github.com/accellera-official/uvm-systemc/blob/main/docs/DEVELOPMENT.md These commands are used to clean up feature branches after they have been successfully merged into the `develop` branch. The first command deletes the local branch from your repository, and the second command deletes the corresponding remote branch on GitHub, maintaining a tidy repository. ```Git git branch -d # delete local branch git push origin : # delete remote branch ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.