Installing OpenROAD
Contents
Installing OpenROAD#
Clone Repository#
The first step, independent of the build method, is to download the repository:
gitclone--recursivehttps://github.com/The-OpenROAD-Project/OpenROAD.gitcdOpenROAD
OpenROAD git submodules (cloned by the--recursive
flag) are located insrc/
.
Note
There are three methods for building OpenROAD (in order of recommendation): prebuilt binaries, docker images, and finally, local build.
Build with Prebuilt Binaries#
Courtesy ofPrecision Innovations, there are prebuilt binariesof OpenROAD with self-contained dependencies released on a regular basis.Refer to thislink for instructions.
Build with Docker#
Prerequisites#
For this method you only need to installDocker on your machine.
Ensure that you have sufficient memory allocated to the Virtual Machine (VM)as per our systemrequirements. Refer tothisDocker guide for setting CPU cores and memory limits.
Installation#
We recommend to use a Docker image of a supported OSand install OpenROAD using the prebuilt binaries fromPrecision Innovations.You can start the container in an interactive mode usingthe command below.
dockerrun-itubuntu:22.04
Now you are ready to install the prebuilt binaries.Please refer to the instructions for installing prebuilt binariesabove.
Build Locally#
The default build type isRELEASE
to compile optimized code.The resulting executable is inbuild/bin/openroad
.
Optional CMake variables passed as-D<var>=<value>
arguments to CMake are show below.
Argument | Value |
---|---|
| DEBUG, RELEASE |
| Additional compiler flags |
| Path to Tcl library |
| Path to |
| Path to |
| Path to install binary |
Note
There is aopenroad_build.log
file that is generatedwith every build in the build directory. In case of filing issues,it can be uploaded in the “Relevant log output” section of OpenROADissue forms.
Install Dependencies#
You may follow our helper script to install dependencies as follows:
sudo./etc/DependencyInstaller.sh-base./etc/DependencyInstaller.sh-common-local
Warning
sudo./etc/DependencyInstaller.sh[-all|-common]
defaults toinstalling packages on /usr/local.To avoid this bahavior use -local flag or -prefix
Build OpenROAD#
To build with the default options in release mode:
./etc/Build.sh
Custom Library Path#
To build with debug option enabled and if the Tcl library is not on the default path.
./etc/Build.sh-cmake="-DCMAKE_BUILD_TYPE=DEBUG -DTCL_LIB=/path/to/tcl/lib"
Enablemanpages
#
To build themanpages
:
./etc/Build.sh-build-man
LTO Options#
By default, OpenROAD is built with link time optimizations enabled.This adds about 1 minute to compile times and improves the runtimeby about 11%. If you would like to disable LTO pass-DLINK_TIME_OPTIMIZATION=OFF
when generating a build.
Build with Address Sanitizer#
To enable building with Address Sanitizer, use the argument-DASAN=ON
.Setting theASAN
variable toON
adds necessary compile and link optionsfor using Address Sanitizer.
Note
Address Sanitizer adds instrumentation for detecting memory errors.Enabling this option will cause OpenROAD to run slower and consume more RAM.
System wide OpenROAD Install#
Warning
Only use the following instructions if you know what you are doing.
sudomakeinstall
The default install directory is/usr/local
.To install in a different directory with CMake use:
./etc/Build.sh-cmake="-DCMAKE_INSTALL_PREFIX=<prefix_path>"
Alternatively, you can use theDESTDIR
variable with make.
make-CbuildDESTDIR=<prefix_path>install