blob: cfcc8896593c79b61337917aac358c6af312971a [file] [log] [blame] [edit]
#DOCKER_BUILD_OPTS ?= --rm
ROOT = sudo
#TOOLS = brown_yosys tapcell replace magic cts ioplacer pdn opendp resizer route macroplacer fastroute opensta yosys
TOOLS = replace cts ioplacer opendp resizer route fastroute opensta yosys tapcell magic macroplacer
TOOL_BUILD_TARGETS = $(foreach tool,$(TOOLS),build-$(tool))
TOOL_EXPORT_TARGETS_PHONY = $(foreach tool,$(TOOLS),export-$(tool))
TOOL_EXPORT_TARGETS_REAL = $(foreach tool,$(TOOLS),tar/$(tool).tar.gz)
# ==============================================================================
# Build Tools
# ==============================================================================
build-all: $(TOOL_BUILD_TARGETS)
$(TOOL_BUILD_TARGETS): build-% : ./docker/%/Dockerfile
mkdir -p logs/docker
export DOCKER_BUILDKIT=1; ${ROOT} docker build $(DOCKER_BUILD_OPTS) -t $* docker/$* | tee logs/docker/$*.build.txt
# ==============================================================================
# Export Tools
# ==============================================================================
.PHONY: $(TOOL_EXPORT_TARGETS)
$(TOOL_EXPORT_TARGETS_PHONY): export-% : tar/%.tar.gz
$(TOOL_EXPORT_TARGETS_REAL): tar/%.tar.gz :
mkdir -p tar
id=$$(docker create $*) ; \
docker cp $$id:\build.tar.gz tar/$*.tar.gz ; \
docker rm -v $$id
.PHONY: export-all
export-all: tar/openroad_tools.tar.gz
tar/openroad_tools.tar.gz: $(TOOL_EXPORT_TARGETS_REAL)
for tarFile in $(foreach tool,$(TOOLS),tar/$(tool).tar.gz); do \
tar -xzf $$tarFile ; \
done
chmod -R +x ./build/bin
find ./build/ -name "*.tcl" -exec chmod +x {} \;
cd tar && tar -czf openroad_tools.tar.gz ../build
tar/openLANE_flow.tar.gz:
find ../ -name '*.tcl' -exec chmod +x {} \;
cd tar && tar -czf openLANE_flow.tar.gz ../../ --exclude '../../docker_build' --exclude "../../designs/*/runs"
.PHONY: merge
merge: tar/openroad_tools.tar.gz tar/openLANE_flow.tar.gz
mkdir -p logs/docker/tar
docker build $(DOCKER_BUILD_OPTS) -t openlane:latest -f ./Dockerfile ./tar | tee logs/docker/$<.build.txt ; \
.PHONY: clean_merge
clean_merge:
ifneq (,$(wildcard ./tar/openroad_tools.tar.gz))
ifneq (,$(wildcard ./tar/openLANE_flow.tar.gz))
rm ./tar/openLANE_flow.tar.gz
rm ./tar/openroad_tools.tar.gz
endif
endif
clean_export:
rm -rf export/*.tar.gz