Makefile 948 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. SHELL = bash -Eeuxo pipefail
  2. .DEFAULT_GOAL := run
  3. GUILE_LOAD_PATH_ADDITIONS := lib
  4. GUILE_LOAD_PATH_ADDITIONS += lib/utils
  5. GUILE_LOAD_PATH_ADDITIONS += lib/contracts
  6. GUILE_LOAD_PATH_ARGUMENTS := -L . $(foreach dir,$(GUILE_LOAD_PATH_ADDITIONS),-L $(dir))
  7. # Get the project directory somehow.
  8. # PROJECT_DIR := "$(shell pwd)"
  9. mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST)))
  10. PROJECT_DIR := $(patsubst %/,%,$(dir $(mkfile_path)))
  11. .PHONY: build
  12. build:
  13. guix time-machine \
  14. --channels="$(PROJECT_DIR)/guix-env/channels.scm" -- \
  15. shell \
  16. --development \
  17. --manifest="$(PROJECT_DIR)/guix-env/manifest.scm" -- \
  18. guile \
  19. --fresh-auto-compile \
  20. $(GUILE_LOAD_PATH_ARGUMENTS) \
  21. main.scm
  22. .PHONY: run
  23. run:
  24. exec guix time-machine \
  25. --channels="$(PROJECT_DIR)/guix-env/channels.scm" -- \
  26. shell \
  27. --development \
  28. --manifest="$(PROJECT_DIR)/guix-env/manifest.scm" -- \
  29. guile \
  30. $(GUILE_LOAD_PATH_ARGUMENTS) \
  31. -l main.scm