| #!/usr/bin/env bash | |
| # A simple wrapper around `make` and the `lean.mk` makefile | |
| # When called from a directory containing a `Makefile` file, calls `make` with | |
| # the directory containing `lean.mk` in its path so that you can use | |
| # `include lean.mk` in your code. Otherwise, run `lean.mk` directly. | |
| # Interesting targets: | |
| # * `leanmake PKG=Foo` # compile package Foo into .olean files (in `build/Foo`, by default) | |
| # * `leanmake bin PKG=Foo` # build the binary `build/bin/Foo` | |
| # * `leanmake lib PKG=Foo` # build the library `build/lib/libFoo.a` | |
| # If there is exactly one .lean file in the current directory, you can omit `PKG` | |
| set -euo pipefail | |
| bindir=$(dirname $0) | |
| if [ -f Makefile ]; then | |
| args=(-I "$bindir/../share/lean") | |
| else | |
| args=(-f "$bindir/../share/lean/lean.mk") | |
| fi | |
| PATH="$bindir:$PATH" ${MAKE:-make} "${args[@]}" "$@" |