blob: 58134cbd11a4ec61ca7c0b4d9b20a80820c218ea [file] [log] [blame]
SHELL := /bin/bash
UNAME_S := $(shell uname -s)
ifneq (, $(findstring Linux, $(UNAME_S)))
OSFLAG := Linux
endif
ifeq ($(UNAME_S), Darwin)
OSFLAG := MacOSX
endif
ifneq (, $(findstring Cygwin, $(UNAME_S)))
OSFLAG := Linux
endif
ifneq (, $(findstring MINGW, $(UNAME_S)))
OSFLAG := Linux
endif
CONDA_DIR := $(PWD)/env/conda
CONDA_PYTHON := $(CONDA_DIR)/bin/python
CONDA_ENV_NAME := skywater-pdk-scripts
CONDA_ENV_PYTHON := $(CONDA_DIR)/envs/$(CONDA_ENV_NAME)/bin/python
IN_CONDA_ENV_BASE := source $(CONDA_DIR)/bin/activate &&
IN_CONDA_ENV := $(IN_CONDA_ENV_BASE) conda activate $(CONDA_ENV_NAME) &&
DOWNLOADS_DIR = env/downloads
$(DOWNLOADS_DIR):
mkdir -p $(DOWNLOADS_DIR)
$(DOWNLOADS_DIR)/Miniconda3-latest-$(OSFLAG)-x86_64.sh: | $(DOWNLOADS_DIR)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-$(OSFLAG)-x86_64.sh -O $(DOWNLOADS_DIR)/Miniconda3-latest-$(OSFLAG)-x86_64.sh
chmod a+x $(DOWNLOADS_DIR)/Miniconda3-latest-$(OSFLAG)-x86_64.sh
$(DOWNLOADS_DIR)/pkgs: $(CONDA_PYTHON)
$(IN_CONDA_ENV_BASE) conda config --system --add pkgs_dirs $(DOWNLOADS_DIR)/conda-pkgs
$(CONDA_PYTHON): $(DOWNLOADS_DIR)/Miniconda3-latest-$(OSFLAG)-x86_64.sh
$(DOWNLOADS_DIR)/Miniconda3-latest-$(OSFLAG)-x86_64.sh -p $(CONDA_DIR) -b -f
$(CONDA_DIR)/envs: | $(CONDA_PYTHON)
$(IN_CONDA_ENV_BASE) conda config --system --add envs_dirs $(CONDA_DIR)/envs
$(CONDA_ENV_PYTHON): environment.yml requirements.txt | $(CONDA_PYTHON) $(CONDA_DIR)/envs $(DOWNLOADS_DIR)/pkgs
$(IN_CONDA_ENV_BASE) conda env update --name $(CONDA_ENV_NAME) --file ./environment.yml
env: $(CONDA_ENV_PYTHON)
$(IN_CONDA_ENV) conda info
enter: $(CONDA_ENV_PYTHON)
$(IN_CONDA_ENV) bash
.PHONY: env
clean:
rm -rf env