#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

