#!/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[@]}" "$@"