blob: dd020964aae0e533d2c0ac8274066616dc815912 [file] [log] [blame] [view] [edit]
# Build Instructions
##### Based on [openroad build instructions](https://github.com/The-OpenROAD-Project/alpha-release/tree/master/build) with addition of opendp, opensta and original yosys and some modifications to the dockerfiles and the makefile.
The goal of these instructions is to build a single image that contains all the openroad tools used by openlane.
The is done through three stages.
1. Building
2. Exporting
3. Merging
### Note
The repo already provides a snapshot of the tarballs which are generated by going through steps 1 and 2, so you can jump to 3 if we wish to save time building the tools.
## Building
The following make target iteratively builds each tool in a sperate docker image.
```bash
make build-all
```
## Exporting
Then we export the binaries generated by each image to tarballs in `tar` directory.
```plain
make export-all
```
## Merging
Finally, we merge all the tools in a single docker image.
```bash
make merge
```
## Additional information
### Building and exporting a specfic tool
You can chose to build a specific tool by running:
```bash
make build-<tool>
```
And exporting it by running:
```bash
make export-<tool>
```
The following are the available tools:
```bash
replace cts ioplacer opendp resizer route fastroute opensta yosys tapcell magic
```
### Rebuilding
If you wish to update the already built docker image, you should first remove the generated tarballs:
```bash
rm tar/*
```
Following that, either go through steps 1-3 to generate and update docker image, or update a single or multiple tools as follows:
```bash
rm tar/<tool1>.tar.gz
rm tar/<tool2>.tar.gz
.
.
rm tar/openroad_tools.tar.gz tar/openLANE_flow.tar.gz
make build-<tool1> DOCKER_BUILD_OPTS=--no-cache
make export-<tool1>
make build-<tool2> DOCKER_BUILD_OPTS=--no-cache
make export-<tool2>
.
.
make merge
```
This should you remove the existing tarballs. Then, build and export specific tool(s).