22 lines
830 B
Text
22 lines
830 B
Text
SHELL := /usr/bin/env bash -euo pipefail
|
|
|
|
# MORE_DEPS: rebuild the stdlib whenever the compiler has changed
|
|
LEANMAKE_OPTS=\
|
|
OUT="${LIB}"\
|
|
LIB_OUT="${LIB}/lean"\
|
|
OLEAN_OUT="${LIB}/lean"\
|
|
LEANC_OPTS="${LEANC_OPTS}"\
|
|
MORE_DEPS="${LEAN_BIN}/lean${CMAKE_EXECUTABLE_SUFFIX}"
|
|
|
|
stdlib:
|
|
ifeq "${STAGE}" "0.5"
|
|
# In the case of stage 0.5, we simply hardlink .olean files and libInit.a from stage 0 (but not libleancpp.a,
|
|
# which is different from stage 0).
|
|
mkdir -p "${LIB}/lean"
|
|
cp -rf $$(find "${PREV_STAGE}/lib/lean" -mindepth 1 -maxdepth 1 -not -name libleancpp.a) "${LIB}/lean"
|
|
else
|
|
# Use `+` to use the Make jobserver with `leanmake` for parallelized builds
|
|
+"${LEAN_BIN}/leanmake" lib PKG=Init $(LEANMAKE_OPTS)
|
|
+"${LEAN_BIN}/leanmake" lib PKG=Std $(LEANMAKE_OPTS)
|
|
+"${LEAN_BIN}/leanmake" lib PKG=Lean $(LEANMAKE_OPTS)
|
|
endif
|