## commands

cmd_mkdir := mkdir -p
cmd_cp := cp -r -u
cmd_tsc := tsc
cmd_log := echo "--"
cmd_cat := cat
cmd_echo := echo
cmd_chmod := chmod


## args

dir_lib := libs
dir_source := source
dir_temp := temp
dir_build := build


## rules

.PHONY: _default
_default: _root

${dir_temp}/ivaldi-unlinked.js: \
	${dir_lib}/plankton/plankton.d.ts \
	${dir_source}/types.ts \
	${dir_source}/helpers.ts \
	${dir_source}/main.ts
	@ ${cmd_log} "compiling …"
	@ ${cmd_mkdir} $(dir $@)
	@ ${cmd_tsc} $^ --lib es2020,dom --target es6 --outFile $@

${dir_build}/ivaldi: ${dir_lib}/plankton/plankton.js ${dir_temp}/ivaldi-unlinked.js
	@ ${cmd_log} "linking …"
	@ ${cmd_mkdir} $(dir $@)
	@ ${cmd_echo} "#!/usr/bin/env node" > $@
	@ ${cmd_cat} $^ >> $@
	@ ${cmd_chmod} +x $@

.PHONY: _root
_root: ${dir_build}/ivaldi

