Installing OpenROAD#

Build#

The first step, independent of the build method, is to download the repository:

git clone --recursive https://github.com/The-OpenROAD-Project/OpenROAD.git
cd OpenROAD

OpenROAD git submodules (cloned by the --recursive flag) are located in src/.

The default build type is RELEASE to compile optimized code. The resulting executable is in build/src/openroad.

Optional CMake variables passed as -D<var>=<value> arguments to CMake are show below.

Argument

Value

CMAKE_BUILD_TYPE

DEBUG, RELEASE

CMAKE_CXX_FLAGS

Additional compiler flags

TCL_LIBRARY

Path to Tcl library

TCL_HEADER

Path to tcl.h

ZLIB_ROOT

Path to zlib

CMAKE_INSTALL_PREFIX

Path to install binary

Note: There is a openroad_build.log file that is generated with every build in the build directory. In case of filing issues, it can be uploaded in the “Relevant log output” section of OpenROAD issue forms.

Install dependencies#

You may follow our helper script to install dependencies as follows:

sudo ./etc/DependencyInstaller.sh

WARNING

etc/DependencyInstaller.sh defaults to installing system packages and requires sudo access. These packages can affect your environment. We recommend users install dependencies locally using setup.sh from OpenROAD-flow-scripts.

Build Manually#

mkdir build && cd build
cmake ..
make
sudo make install 

The default install directory is /usr/local. To install in a different directory with CMake use:

cmake .. -DCMAKE_INSTALL_PREFIX=<prefix_path>

Alternatively, you can use the DESTDIR variable with make.

make DESTDIR=<prefix_path> install

Build using support script#

./etc/Build.sh
# 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"

# To build manpages
./etc/Build.sh -build-man

The default install directory is /usr/local. To install in a different directory use:

./etc/Build.sh -cmake="-DCMAKE_INSTALL_PREFIX=<prefix_path>"

LTO Options#

By default, OpenROAD is built with link time optimizations enabled. This adds about 1 minute to compile times and improves the runtime by 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 the ASAN variable to ON adds necessary compile and link options for 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.

Build with Prebuilt Binaries#

Courtesy of Precision Innovations, there are pre-built binaries of OpenROAD with self-contained dependencies released on a regular basis. Refer to this link here.