34 lines
1.3 KiB
Text
34 lines
1.3 KiB
Text
SHELL := /usr/bin/env bash -euo pipefail
|
|
|
|
stdlib:
|
|
# (I don't know how to add comments inside a multiline rule, so all comments go first)
|
|
# Use `+` to use the Make jobserver with `leanmake` for parallelized builds
|
|
# 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).
|
|
# Otherwise, we build the library with `leanmake`. We rebuild it (`MORE_DEPS`) whenever the compiler has changed.
|
|
+if [ ${STAGE} == 0.5 ]; then\
|
|
mkdir -p "${LIB}/lean";\
|
|
cp -rf $$(find "${PREV_STAGE}/lib/lean" -mindepth 1 -maxdepth 1 -not -name libleancpp.a) "${LIB}/lean";\
|
|
else\
|
|
"${LEAN_BIN}/leanmake" lib\
|
|
PKG=Init\
|
|
"OUT=${LIB}"\
|
|
"LIB_OUT=${LIB}/lean"\
|
|
"OLEAN_OUT=${LIB}/lean"\
|
|
"LEANC_OPTS=${LEANC_OPTS}"\
|
|
"MORE_DEPS=${LEAN_BIN}/lean${CMAKE_EXECUTABLE_SUFFIX}";\
|
|
"${LEAN_BIN}/leanmake" lib\
|
|
PKG=Std\
|
|
"OUT=${LIB}"\
|
|
"LIB_OUT=${LIB}/lean"\
|
|
"OLEAN_OUT=${LIB}/lean"\
|
|
"LEANC_OPTS=${LEANC_OPTS}"\
|
|
"MORE_DEPS=${LEAN_BIN}/lean${CMAKE_EXECUTABLE_SUFFIX}";\
|
|
"${LEAN_BIN}/leanmake" lib\
|
|
PKG=Lean\
|
|
"OUT=${LIB}"\
|
|
"LIB_OUT=${LIB}/lean"\
|
|
"OLEAN_OUT=${LIB}/lean"\
|
|
"LEANC_OPTS=${LEANC_OPTS}"\
|
|
"MORE_DEPS=${LEAN_BIN}/lean${CMAKE_EXECUTABLE_SUFFIX}";\
|
|
fi
|