diff --git a/Makefile b/Makefile index 32e9333..2e88be1 100644 --- a/Makefile +++ b/Makefile @@ -1,26 +1,39 @@ DIRENV := $(shell command -v direnv 2> /dev/null) + +# If we have direnv and we're not already in the environment, re-exec via direnv ifdef DIRENV - EXEC := direnv exec . + ifeq ($(origin DIRENV_DIR), undefined) + # Ensure direnv is allowed + _ALLOW := $(shell direnv allow . > /dev/null 2>&1) + # Re-exec make via direnv + EXEC := direnv exec . $(MAKE) +build run test clean flatpak-build: + @$(EXEC) $@ + else + # We are already inside direnv, or direnv is not available + EXEC := + endif else EXEC := endif +ifndef EXEC build: - $(EXEC) cargo build + cargo build run: - $(EXEC) cargo run + cargo run test: - $(EXEC) cargo test + cargo test clean: - $(EXEC) cargo clean - -.PHONY: build run test clean - + cargo clean # Flatpak build target .PHONY: flatpak-build flatpak-build: - $(EXEC) flatpak-builder --force-clean build-flatpak flatpak/app.flatpak.json + flatpak-builder --force-clean build-flatpak flatpak/app.flatpak.json +endif + +.PHONY: build run test clean