| 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 |