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.
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.
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
./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>"
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.
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.
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.