2020-05-18 15:59:07 +03:00
|
|
|
include config.mk
|
|
|
|
|
|
|
|
# Idris 2 executable used to bootstrap
|
2020-05-19 20:25:18 +03:00
|
|
|
export IDRIS2_BOOT ?= idris2
|
2020-05-18 15:59:07 +03:00
|
|
|
|
|
|
|
# Idris 2 executable we're building
|
2020-05-20 15:31:04 +03:00
|
|
|
NAME = idris2
|
2021-04-10 07:55:57 +03:00
|
|
|
TARGETDIR = ${CURDIR}/build/exec
|
2020-05-18 15:59:07 +03:00
|
|
|
TARGET = ${TARGETDIR}/${NAME}
|
|
|
|
|
2021-06-27 18:09:02 +03:00
|
|
|
# Default code generator. This is passed to the libraries for incremental
|
|
|
|
# builds, but overridable via environment variables or arguments to make
|
|
|
|
IDRIS2_CG ?= chez
|
|
|
|
|
2020-05-18 15:59:07 +03:00
|
|
|
MAJOR=0
|
2023-12-21 14:04:03 +03:00
|
|
|
MINOR=7
|
|
|
|
PATCH=0
|
2020-05-18 15:59:07 +03:00
|
|
|
|
|
|
|
GIT_SHA1=
|
|
|
|
ifeq ($(shell git status >/dev/null 2>&1; echo $$?), 0)
|
2021-01-20 23:15:24 +03:00
|
|
|
# inside a git repo
|
|
|
|
ifneq ($(shell git describe --exact-match --tags >/dev/null 2>&1; echo $$?), 0)
|
|
|
|
# not tagged as a released version, so add sha1 of this build in between releases
|
|
|
|
GIT_SHA1 := $(shell git rev-parse --short=9 HEAD)
|
|
|
|
endif
|
2020-05-18 15:59:07 +03:00
|
|
|
endif
|
2021-07-31 07:51:59 +03:00
|
|
|
VERSION_TAG ?= $(GIT_SHA1)
|
2020-05-18 15:59:07 +03:00
|
|
|
|
|
|
|
export IDRIS2_VERSION := ${MAJOR}.${MINOR}.${PATCH}
|
2021-06-14 18:12:46 +03:00
|
|
|
export NAME_VERSION := ${NAME}-${IDRIS2_VERSION}
|
2020-05-20 12:31:30 +03:00
|
|
|
IDRIS2_SUPPORT := libidris2_support${SHLIB_SUFFIX}
|
2020-07-16 16:49:22 +03:00
|
|
|
IDRIS2_APP_IPKG := idris2.ipkg
|
|
|
|
IDRIS2_LIB_IPKG := idris2api.ipkg
|
2020-05-18 15:59:07 +03:00
|
|
|
|
2020-05-20 19:14:38 +03:00
|
|
|
ifeq ($(OS), windows)
|
2020-05-24 07:44:35 +03:00
|
|
|
# This produces D:/../.. style paths
|
2023-07-31 10:18:15 +03:00
|
|
|
IDRIS2_PREFIX ?= $(shell cygpath -m ${PREFIX})
|
2020-05-20 19:14:38 +03:00
|
|
|
IDRIS2_CURDIR := $(shell cygpath -m ${CURDIR})
|
2020-05-24 07:44:35 +03:00
|
|
|
SEP := ;
|
2020-05-20 19:14:38 +03:00
|
|
|
else
|
2023-07-31 10:18:15 +03:00
|
|
|
IDRIS2_PREFIX ?= ${PREFIX}
|
2020-05-20 19:14:38 +03:00
|
|
|
IDRIS2_CURDIR := ${CURDIR}
|
2020-05-24 07:44:35 +03:00
|
|
|
SEP := :
|
2020-05-20 19:14:38 +03:00
|
|
|
endif
|
|
|
|
|
2021-04-13 04:26:26 +03:00
|
|
|
TEST_PREFIX ?= ${IDRIS2_CURDIR}/build/env
|
|
|
|
|
2020-05-24 07:44:35 +03:00
|
|
|
# Library and data paths for bootstrap-test
|
2021-07-04 05:17:13 +03:00
|
|
|
IDRIS2_BOOT_PREFIX := ${IDRIS2_CURDIR}/bootstrap-build
|
2020-05-20 19:14:38 +03:00
|
|
|
|
2020-05-24 07:44:35 +03:00
|
|
|
# These are the library path in the build dir to be used during build
|
2022-01-25 16:54:14 +03:00
|
|
|
IDRIS2_LIBRARIES = prelude base linear network contrib test
|
|
|
|
|
2022-10-05 09:26:01 +03:00
|
|
|
IDRIS2_BOOT_PATH =
|
2022-01-25 16:54:14 +03:00
|
|
|
$(foreach library,$(IDRIS2_LIBRARIES),$(eval IDRIS2_BOOT_PATH := $(IDRIS2_BOOT_PATH)$(IDRIS2_CURDIR)/libs/$(library)/build/ttc$(SEP)))
|
2022-01-26 13:30:08 +03:00
|
|
|
export IDRIS2_BOOT_PATH := "$(IDRIS2_BOOT_PATH)"
|
2020-05-18 15:59:07 +03:00
|
|
|
|
2020-05-20 12:31:30 +03:00
|
|
|
export SCHEME
|
|
|
|
|
2023-02-10 01:49:49 +03:00
|
|
|
.PHONY: all idris2-exec libdocs testenv testenv-clean support clean-support clean FORCE
|
2020-05-18 15:59:07 +03:00
|
|
|
|
2023-11-08 11:18:02 +03:00
|
|
|
all:
|
|
|
|
${MAKE} ${TARGET}
|
|
|
|
${MAKE} libs
|
2020-05-18 15:59:07 +03:00
|
|
|
|
2020-05-19 12:47:05 +03:00
|
|
|
idris2-exec: ${TARGET}
|
|
|
|
|
2023-08-31 13:55:57 +03:00
|
|
|
${TARGET}: support src/IdrisPaths.idr
|
2020-07-16 16:49:22 +03:00
|
|
|
${IDRIS2_BOOT} --build ${IDRIS2_APP_IPKG}
|
2023-08-31 13:55:57 +03:00
|
|
|
cp ${IDRIS2_CURDIR}/support/c/${IDRIS2_SUPPORT} ${TARGETDIR}/${NAME}_app/${IDRIS2_SUPPORT}
|
2020-05-18 15:59:07 +03:00
|
|
|
|
2020-08-31 17:35:24 +03:00
|
|
|
# We use FORCE to always rebuild IdrisPath so that the git SHA1 info is always up to date
|
|
|
|
src/IdrisPaths.idr: FORCE
|
2021-06-28 18:44:33 +03:00
|
|
|
echo "-- @""generated" > src/IdrisPaths.idr
|
2021-01-16 11:28:56 +03:00
|
|
|
echo 'module IdrisPaths' >> src/IdrisPaths.idr
|
2021-07-31 07:51:59 +03:00
|
|
|
echo 'export idrisVersion : ((Nat,Nat,Nat), String); idrisVersion = ((${MAJOR},${MINOR},${PATCH}), "${VERSION_TAG}")' >> src/IdrisPaths.idr
|
2020-05-20 19:14:38 +03:00
|
|
|
echo 'export yprefix : String; yprefix="${IDRIS2_PREFIX}"' >> src/IdrisPaths.idr
|
2020-05-18 22:24:48 +03:00
|
|
|
|
2020-08-31 17:35:24 +03:00
|
|
|
FORCE:
|
|
|
|
|
2020-05-18 15:59:07 +03:00
|
|
|
prelude:
|
2021-06-27 18:09:02 +03:00
|
|
|
${MAKE} -C libs/prelude IDRIS2=${TARGET} IDRIS2_INC_CGS=${IDRIS2_CG} IDRIS2_PATH=${IDRIS2_BOOT_PATH}
|
2020-05-18 15:59:07 +03:00
|
|
|
|
|
|
|
base: prelude
|
2021-06-27 18:09:02 +03:00
|
|
|
${MAKE} -C libs/base IDRIS2=${TARGET} IDRIS2_INC_CGS=${IDRIS2_CG} IDRIS2_PATH=${IDRIS2_BOOT_PATH}
|
2020-05-18 15:59:07 +03:00
|
|
|
|
2022-10-04 15:37:45 +03:00
|
|
|
network: prelude linear
|
2021-06-27 18:09:02 +03:00
|
|
|
${MAKE} -C libs/network IDRIS2=${TARGET} IDRIS2_INC_CGS=${IDRIS2_CG} IDRIS2_PATH=${IDRIS2_BOOT_PATH}
|
2020-05-18 15:59:07 +03:00
|
|
|
|
2021-03-09 21:27:05 +03:00
|
|
|
contrib: base
|
2021-06-27 18:09:02 +03:00
|
|
|
${MAKE} -C libs/contrib IDRIS2=${TARGET} IDRIS2_INC_CGS=${IDRIS2_CG} IDRIS2_PATH=${IDRIS2_BOOT_PATH}
|
2020-05-18 15:59:07 +03:00
|
|
|
|
2021-03-09 21:27:05 +03:00
|
|
|
test-lib: contrib
|
2021-06-27 18:09:02 +03:00
|
|
|
${MAKE} -C libs/test IDRIS2=${TARGET} IDRIS2_INC_CGS=${IDRIS2_CG} IDRIS2_PATH=${IDRIS2_BOOT_PATH}
|
2020-05-18 15:59:07 +03:00
|
|
|
|
2023-11-08 11:18:02 +03:00
|
|
|
linear: prelude base
|
2022-01-25 15:25:55 +03:00
|
|
|
${MAKE} -C libs/linear IDRIS2=${TARGET} IDRIS2_INC_CGS=${IDRIS2_CG} IDRIS2_PATH=${IDRIS2_BOOT_PATH}
|
|
|
|
|
|
|
|
papers: contrib linear
|
|
|
|
${MAKE} -C libs/papers IDRIS2=${TARGET} IDRIS2_INC_CGS=${IDRIS2_CG} IDRIS2_PATH=${IDRIS2_BOOT_PATH}
|
|
|
|
|
2022-10-04 15:37:45 +03:00
|
|
|
bootstrap-libs : prelude base linear network
|
2022-01-25 15:25:55 +03:00
|
|
|
libs : prelude base contrib network test-lib linear papers
|
2021-03-09 21:27:05 +03:00
|
|
|
|
2021-05-01 19:09:25 +03:00
|
|
|
libdocs:
|
|
|
|
${MAKE} -C libs/prelude docs IDRIS2=${TARGET} IDRIS2_PATH=${IDRIS2_BOOT_PATH}
|
|
|
|
${MAKE} -C libs/base docs IDRIS2=${TARGET} IDRIS2_PATH=${IDRIS2_BOOT_PATH}
|
|
|
|
${MAKE} -C libs/contrib docs IDRIS2=${TARGET} IDRIS2_PATH=${IDRIS2_BOOT_PATH}
|
|
|
|
${MAKE} -C libs/network docs IDRIS2=${TARGET} IDRIS2_PATH=${IDRIS2_BOOT_PATH}
|
2021-05-27 11:16:57 +03:00
|
|
|
${MAKE} -C libs/test docs IDRIS2=${TARGET} IDRIS2_PATH=${IDRIS2_BOOT_PATH}
|
2022-01-25 15:25:55 +03:00
|
|
|
${MAKE} -C libs/linear docs IDRIS2=${TARGET} IDRIS2_PATH=${IDRIS2_BOOT_PATH}
|
2021-05-01 19:09:25 +03:00
|
|
|
|
2021-07-13 13:29:34 +03:00
|
|
|
|
|
|
|
ifeq ($(OS), windows)
|
|
|
|
${TEST_PREFIX}/${NAME_VERSION} :
|
|
|
|
${MAKE} install-support PREFIX=${TEST_PREFIX}
|
|
|
|
cp -rf ${IDRIS2_CURDIR}/libs/prelude/build/ttc ${TEST_PREFIX}/${NAME_VERSION}/prelude-${IDRIS2_VERSION}
|
|
|
|
cp -rf ${IDRIS2_CURDIR}/libs/base/build/ttc ${TEST_PREFIX}/${NAME_VERSION}/base-${IDRIS2_VERSION}
|
2022-01-25 16:54:14 +03:00
|
|
|
cp -rf ${IDRIS2_CURDIR}/libs/linear/build/ttc ${TEST_PREFIX}/${NAME_VERSION}/linear-${IDRIS2_VERSION}
|
2021-07-13 13:29:34 +03:00
|
|
|
cp -rf ${IDRIS2_CURDIR}/libs/network/build/ttc ${TEST_PREFIX}/${NAME_VERSION}/network-${IDRIS2_VERSION}
|
2022-10-04 15:37:45 +03:00
|
|
|
cp -rf ${IDRIS2_CURDIR}/libs/contrib/build/ttc ${TEST_PREFIX}/${NAME_VERSION}/contrib-${IDRIS2_VERSION}
|
|
|
|
cp -rf ${IDRIS2_CURDIR}/libs/test/build/ttc ${TEST_PREFIX}/${NAME_VERSION}/test-${IDRIS2_VERSION}
|
2021-07-13 13:29:34 +03:00
|
|
|
else
|
2021-04-13 04:26:26 +03:00
|
|
|
${TEST_PREFIX}/${NAME_VERSION} :
|
|
|
|
${MAKE} install-support PREFIX=${TEST_PREFIX}
|
2021-07-15 22:24:40 +03:00
|
|
|
ln -sf ${IDRIS2_CURDIR}/libs/prelude/build/ttc ${TEST_PREFIX}/${NAME_VERSION}/prelude-${IDRIS2_VERSION}
|
|
|
|
ln -sf ${IDRIS2_CURDIR}/libs/base/build/ttc ${TEST_PREFIX}/${NAME_VERSION}/base-${IDRIS2_VERSION}
|
2022-01-25 16:54:14 +03:00
|
|
|
ln -sf ${IDRIS2_CURDIR}/libs/linear/build/ttc ${TEST_PREFIX}/${NAME_VERSION}/linear-${IDRIS2_VERSION}
|
2021-07-15 22:24:40 +03:00
|
|
|
ln -sf ${IDRIS2_CURDIR}/libs/network/build/ttc ${TEST_PREFIX}/${NAME_VERSION}/network-${IDRIS2_VERSION}
|
2022-10-04 15:37:45 +03:00
|
|
|
ln -sf ${IDRIS2_CURDIR}/libs/contrib/build/ttc ${TEST_PREFIX}/${NAME_VERSION}/contrib-${IDRIS2_VERSION}
|
|
|
|
ln -sf ${IDRIS2_CURDIR}/libs/test/build/ttc ${TEST_PREFIX}/${NAME_VERSION}/test-${IDRIS2_VERSION}
|
2021-07-13 13:29:34 +03:00
|
|
|
endif
|
2021-04-13 04:26:26 +03:00
|
|
|
|
2021-07-15 17:02:43 +03:00
|
|
|
.PHONY: ${TEST_PREFIX}/${NAME_VERSION}
|
|
|
|
|
2021-04-13 04:26:26 +03:00
|
|
|
testenv:
|
|
|
|
@${MAKE} ${TEST_PREFIX}/${NAME_VERSION}
|
|
|
|
@${MAKE} -C tests testbin IDRIS2=${TARGET} IDRIS2_PREFIX=${TEST_PREFIX}
|
2020-05-21 18:48:26 +03:00
|
|
|
|
2021-04-13 19:06:48 +03:00
|
|
|
testenv-clean:
|
|
|
|
$(RM) -r ${TEST_PREFIX}/${NAME_VERSION}
|
|
|
|
|
2022-10-21 15:35:33 +03:00
|
|
|
ci-ubuntu-test: test
|
|
|
|
ci-macos-test: test
|
|
|
|
ci-windows-test:
|
|
|
|
@${MAKE} test except="idris2/repl005"
|
|
|
|
|
2021-04-13 04:26:26 +03:00
|
|
|
test: testenv
|
2021-01-16 09:41:22 +03:00
|
|
|
@echo
|
2021-04-05 13:27:56 +03:00
|
|
|
@echo "NOTE: \`${MAKE} test\` does not rebuild Idris or the libraries packaged with it; to do that run \`${MAKE}\`"
|
2021-02-04 19:10:57 +03:00
|
|
|
@if [ ! -x "${TARGET}" ]; then echo "ERROR: Missing IDRIS2 executable. Cannot run tests!\n"; exit 1; fi
|
2021-01-16 09:41:22 +03:00
|
|
|
@echo
|
2022-10-21 15:35:33 +03:00
|
|
|
@${MAKE} -C tests only=$(only) except=$(except) IDRIS2=${TARGET} IDRIS2_PREFIX=${TEST_PREFIX}
|
|
|
|
|
2021-04-13 04:26:26 +03:00
|
|
|
|
2021-05-11 11:46:21 +03:00
|
|
|
retest: testenv
|
|
|
|
@echo
|
|
|
|
@echo "NOTE: \`${MAKE} retest\` does not rebuild Idris or the libraries packaged with it; to do that run \`${MAKE}\`"
|
|
|
|
@if [ ! -x "${TARGET}" ]; then echo "ERROR: Missing IDRIS2 executable. Cannot run tests!\n"; exit 1; fi
|
|
|
|
@echo
|
|
|
|
@${MAKE} -C tests retest only=$(only) IDRIS2=${TARGET} IDRIS2_PREFIX=${TEST_PREFIX}
|
|
|
|
|
2021-09-29 19:14:12 +03:00
|
|
|
test-installed:
|
|
|
|
@${MAKE} -C tests testbin IDRIS2=$(IDRIS2_PREFIX)/bin/idris2 IDRIS2_PREFIX=${IDRIS2_PREFIX}
|
|
|
|
@${MAKE} -C tests only=$(only) IDRIS2=$(IDRIS2_PREFIX)/bin/idris2 IDRIS2_PREFIX=${IDRIS2_PREFIX}
|
2020-05-19 20:25:18 +03:00
|
|
|
|
2020-05-18 15:59:07 +03:00
|
|
|
support:
|
2023-02-10 01:49:49 +03:00
|
|
|
@${MAKE} -C support
|
2020-05-18 15:59:07 +03:00
|
|
|
|
2023-02-10 01:49:49 +03:00
|
|
|
clean-support:
|
|
|
|
@${MAKE} -C support clean
|
2020-05-18 15:59:07 +03:00
|
|
|
|
|
|
|
clean-libs:
|
|
|
|
${MAKE} -C libs/prelude clean
|
|
|
|
${MAKE} -C libs/base clean
|
|
|
|
${MAKE} -C libs/contrib clean
|
2020-06-25 14:12:20 +03:00
|
|
|
${MAKE} -C libs/network clean
|
2021-03-09 21:27:05 +03:00
|
|
|
${MAKE} -C libs/test clean
|
2022-01-25 15:25:55 +03:00
|
|
|
${MAKE} -C libs/linear clean
|
|
|
|
${MAKE} -C libs/papers clean
|
2020-05-18 15:59:07 +03:00
|
|
|
|
2023-02-10 01:49:49 +03:00
|
|
|
clean: clean-libs clean-support testenv-clean
|
2020-07-16 16:49:22 +03:00
|
|
|
-${IDRIS2_BOOT} --clean ${IDRIS2_APP_IPKG}
|
2020-05-20 21:38:43 +03:00
|
|
|
$(RM) src/IdrisPaths.idr
|
2020-05-20 12:31:30 +03:00
|
|
|
${MAKE} -C tests clean
|
2020-05-19 15:50:47 +03:00
|
|
|
$(RM) -r build
|
2020-05-18 15:59:07 +03:00
|
|
|
|
|
|
|
install: install-idris2 install-support install-libs
|
2022-10-04 15:37:45 +03:00
|
|
|
bootstrap-install: install-idris2 install-support install-bootstrap-libs
|
2020-05-18 15:59:07 +03:00
|
|
|
|
2020-06-18 14:19:48 +03:00
|
|
|
install-api: src/IdrisPaths.idr
|
2020-07-16 16:49:22 +03:00
|
|
|
${IDRIS2_BOOT} --install ${IDRIS2_LIB_IPKG}
|
2020-05-20 18:38:46 +03:00
|
|
|
|
2021-06-05 14:53:22 +03:00
|
|
|
install-with-src-api: src/IdrisPaths.idr
|
|
|
|
${IDRIS2_BOOT} --install-with-src ${IDRIS2_LIB_IPKG}
|
|
|
|
|
2020-05-18 15:59:07 +03:00
|
|
|
install-idris2:
|
2023-08-19 18:27:48 +03:00
|
|
|
mkdir -p ${DESTDIR}${PREFIX}/bin/
|
|
|
|
install ${TARGET} ${DESTDIR}${PREFIX}/bin
|
2020-05-22 12:10:14 +03:00
|
|
|
ifeq ($(OS), windows)
|
2023-08-19 18:27:48 +03:00
|
|
|
-install ${TARGET}.cmd ${DESTDIR}${PREFIX}/bin
|
2020-05-22 12:10:14 +03:00
|
|
|
endif
|
2023-08-19 18:27:48 +03:00
|
|
|
mkdir -p ${DESTDIR}${PREFIX}/bin/${NAME}_app
|
|
|
|
install ${TARGETDIR}/${NAME}_app/* ${DESTDIR}${PREFIX}/bin/${NAME}_app
|
2020-05-18 15:59:07 +03:00
|
|
|
|
2020-05-19 22:41:52 +03:00
|
|
|
install-support:
|
2023-02-10 01:49:49 +03:00
|
|
|
@${MAKE} -C support install
|
2020-05-18 15:59:07 +03:00
|
|
|
|
2022-10-04 15:37:45 +03:00
|
|
|
install-bootstrap-libs:
|
2021-09-29 19:14:12 +03:00
|
|
|
${MAKE} -C libs/prelude install IDRIS2=${TARGET} IDRIS2_PATH=${IDRIS2_BOOT_PATH} IDRIS2_INC_CGS=${IDRIS2_CG}
|
|
|
|
${MAKE} -C libs/base install IDRIS2=${TARGET} IDRIS2_PATH=${IDRIS2_BOOT_PATH} IDRIS2_INC_CGS=${IDRIS2_CG}
|
2022-10-04 15:37:45 +03:00
|
|
|
${MAKE} -C libs/linear install IDRIS2=${TARGET} IDRIS2_PATH=${IDRIS2_BOOT_PATH} IDRIS2_INC_CGS=${IDRIS2_CG}
|
2021-09-29 19:14:12 +03:00
|
|
|
${MAKE} -C libs/network install IDRIS2=${TARGET} IDRIS2_PATH=${IDRIS2_BOOT_PATH} IDRIS2_INC_CGS=${IDRIS2_CG}
|
2022-10-04 15:37:45 +03:00
|
|
|
|
|
|
|
install-libs: install-bootstrap-libs
|
|
|
|
${MAKE} -C libs/contrib install IDRIS2=${TARGET} IDRIS2_PATH=${IDRIS2_BOOT_PATH} IDRIS2_INC_CGS=${IDRIS2_CG}
|
|
|
|
${MAKE} -C libs/test install IDRIS2=${TARGET} IDRIS2_PATH=${IDRIS2_BOOT_PATH} IDRIS2_INC_CGS=${IDRIS2_CG}
|
2020-05-18 18:02:30 +03:00
|
|
|
|
2021-06-05 14:53:22 +03:00
|
|
|
install-with-src-libs:
|
2021-09-29 19:14:12 +03:00
|
|
|
${MAKE} -C libs/prelude install-with-src IDRIS2=${TARGET} IDRIS2_PATH=${IDRIS2_BOOT_PATH} IDRIS2_INC_CGS=${IDRIS2_CG}
|
|
|
|
${MAKE} -C libs/base install-with-src IDRIS2=${TARGET} IDRIS2_PATH=${IDRIS2_BOOT_PATH} IDRIS2_INC_CGS=${IDRIS2_CG}
|
|
|
|
${MAKE} -C libs/contrib install-with-src IDRIS2=${TARGET} IDRIS2_PATH=${IDRIS2_BOOT_PATH} IDRIS2_INC_CGS=${IDRIS2_CG}
|
|
|
|
${MAKE} -C libs/network install-with-src IDRIS2=${TARGET} IDRIS2_PATH=${IDRIS2_BOOT_PATH} IDRIS2_INC_CGS=${IDRIS2_CG}
|
|
|
|
${MAKE} -C libs/test install-with-src IDRIS2=${TARGET} IDRIS2_PATH=${IDRIS2_BOOT_PATH} IDRIS2_INC_CGS=${IDRIS2_CG}
|
2022-01-25 16:54:14 +03:00
|
|
|
${MAKE} -C libs/linear install-with-src IDRIS2=${TARGET} IDRIS2_PATH=${IDRIS2_BOOT_PATH} IDRIS2_INC_CGS=${IDRIS2_CG}
|
2020-05-20 12:31:30 +03:00
|
|
|
|
2021-08-31 20:41:03 +03:00
|
|
|
install-libdocs: libdocs
|
2023-08-19 18:27:48 +03:00
|
|
|
mkdir -p ${DESTDIR}${PREFIX}/${NAME_VERSION}/docs/prelude
|
|
|
|
mkdir -p ${DESTDIR}${PREFIX}/${NAME_VERSION}/docs/base
|
|
|
|
mkdir -p ${DESTDIR}${PREFIX}/${NAME_VERSION}/docs/contrib
|
|
|
|
mkdir -p ${DESTDIR}${PREFIX}/${NAME_VERSION}/docs/network
|
|
|
|
mkdir -p ${DESTDIR}${PREFIX}/${NAME_VERSION}/docs/test
|
|
|
|
mkdir -p ${DESTDIR}${PREFIX}/${NAME_VERSION}/docs/linear
|
|
|
|
cp -r libs/prelude/build/docs/* ${DESTDIR}${PREFIX}/${NAME_VERSION}/docs/prelude
|
|
|
|
cp -r libs/base/build/docs/* ${DESTDIR}${PREFIX}/${NAME_VERSION}/docs/base
|
|
|
|
cp -r libs/contrib/build/docs/* ${DESTDIR}${PREFIX}/${NAME_VERSION}/docs/contrib
|
|
|
|
cp -r libs/network/build/docs/* ${DESTDIR}${PREFIX}/${NAME_VERSION}/docs/network
|
|
|
|
cp -r libs/test/build/docs/* ${DESTDIR}${PREFIX}/${NAME_VERSION}/docs/test
|
|
|
|
cp -r libs/linear/build/docs/* ${DESTDIR}${PREFIX}/${NAME_VERSION}/docs/linear
|
|
|
|
install -m 644 support/docs/* ${DESTDIR}${PREFIX}/${NAME_VERSION}/docs
|
2021-08-31 20:41:03 +03:00
|
|
|
|
|
|
|
|
2020-05-24 07:44:35 +03:00
|
|
|
.PHONY: bootstrap bootstrap-build bootstrap-racket bootstrap-racket-build bootstrap-test bootstrap-clean
|
2020-05-20 12:31:30 +03:00
|
|
|
|
2020-05-24 07:44:35 +03:00
|
|
|
# Bootstrapping using SCHEME
|
2021-04-13 17:04:22 +03:00
|
|
|
bootstrap: support
|
2021-11-22 03:10:58 +03:00
|
|
|
@if [ "$$(echo '(threaded?)' | $(SCHEME) --quiet)" = "#f" ] ; then \
|
|
|
|
echo "ERROR: Chez is missing threading support" ; exit 1 ; fi
|
2021-07-04 05:17:13 +03:00
|
|
|
mkdir -p bootstrap-build/idris2_app
|
|
|
|
cp support/c/${IDRIS2_SUPPORT} bootstrap-build/idris2_app/
|
2021-04-13 04:13:18 +03:00
|
|
|
sed 's/libidris2_support.so/${IDRIS2_SUPPORT}/g; s|__PREFIX__|${IDRIS2_BOOT_PREFIX}|g' \
|
2021-01-20 23:15:24 +03:00
|
|
|
bootstrap/idris2_app/idris2.ss \
|
2021-07-04 05:17:13 +03:00
|
|
|
> bootstrap-build/idris2_app/idris2-boot.ss
|
2021-03-25 20:07:29 +03:00
|
|
|
$(SHELL) ./bootstrap-stage1-chez.sh
|
|
|
|
IDRIS2_CG="chez" $(SHELL) ./bootstrap-stage2.sh
|
2020-05-20 00:56:27 +03:00
|
|
|
|
2020-05-24 07:44:35 +03:00
|
|
|
# Bootstrapping using racket
|
2021-04-13 17:04:22 +03:00
|
|
|
bootstrap-racket: support
|
2021-07-04 05:17:13 +03:00
|
|
|
mkdir -p bootstrap-build/idris2_app
|
|
|
|
cp support/c/${IDRIS2_SUPPORT} bootstrap-build/idris2_app/
|
2021-04-13 04:13:18 +03:00
|
|
|
sed 's|__PREFIX__|${IDRIS2_BOOT_PREFIX}|g' \
|
2021-01-20 23:15:24 +03:00
|
|
|
bootstrap/idris2_app/idris2.rkt \
|
2021-07-04 05:17:13 +03:00
|
|
|
> bootstrap-build/idris2_app/idris2-boot.rkt
|
2021-03-25 20:07:29 +03:00
|
|
|
$(SHELL) ./bootstrap-stage1-racket.sh
|
|
|
|
IDRIS2_CG="racket" $(SHELL) ./bootstrap-stage2.sh
|
2020-05-20 12:31:30 +03:00
|
|
|
|
2020-05-24 07:44:35 +03:00
|
|
|
bootstrap-test:
|
2021-04-13 04:13:18 +03:00
|
|
|
$(MAKE) test INTERACTIVE='' IDRIS2_PREFIX=${IDRIS2_BOOT_PREFIX}
|
2020-05-24 07:44:35 +03:00
|
|
|
|
2022-10-21 23:01:54 +03:00
|
|
|
ci-windows-bootstrap-test:
|
|
|
|
$(MAKE) test except="idris2/repl005" INTERACTIVE='' IDRIS2_PREFIX=${IDRIS2_BOOT_PREFIX}
|
|
|
|
|
2020-05-20 12:31:30 +03:00
|
|
|
bootstrap-clean:
|
2021-07-04 05:17:13 +03:00
|
|
|
$(RM) -r bootstrap-build
|
2020-05-20 12:31:30 +03:00
|
|
|
|
|
|
|
|
|
|
|
.PHONY: distclean
|
|
|
|
|
|
|
|
distclean: clean bootstrap-clean
|
|
|
|
@find . -type f -name '*.ttc' -exec rm -f {} \;
|
|
|
|
@find . -type f -name '*.ttm' -exec rm -f {} \;
|
|
|
|
@find . -type f -name '*.ibc' -exec rm -f {} \;
|