Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Makefile 1.47 KiB
SHELL = /bin/bash
.PHONY: run test docs release install

run:
	# run an example simulation
	if [ -d "example_results" ]; then rm -r example_results; fi
	julia run.jl -o example_results
	#src/analysis/analyse_nature.R example_results

test:
	# running test suite
	cd test; julia runtests.jl

date = $(shell date +%F)
commit = $(shell git log --format="%h" -1)
version = $(shell grep "version" Project.toml | sed 's/[[:alpha:]|=|"|[:space:]]//g')

docs:
	# building documentation
	# include the version, date, and latest commit in the footer of the index page
	sed -i -e "s/\*This documentation was last updated.*/\*This documentation was last updated on ${date} for \*\*Persefone.jl v${version}\*\* (commit [${commit}](https\:\/\/git\.idiv\.de\/persefone\/persefone\-model\/\-\/commit\/${commit})).\*/" docs/src/index.md
	sed -i -e "s/v[0-9]\+\.[0-9]\+\.[0-9]\+/v${version}/" docs/src/assets/titlepage.tex
	cd docs; julia builddocs.jl
	mv docs/build/Persefone.jl.pdf docs/manual.pdf

profile:
	# run and profile an example simulation
	if [ -d "profile_results" ]; then rm -r profile_results; fi
	./runprofile.jl -o profile_results

container:
	#TODO create a Singularity container
	echo "Not yet implemented (#43)."

release:
	echo "Not yet implemented."

install:
	# install Julia and/or package dependencies TODO needs testing
	echo "Installing Julia and juliaup"
	curl -fsSL https://install.julialang.org | sh
	echo "Installing package dependencies"
	julia -e "Pkg.activate(\".\"); Pkg.instantiate()"