komando_kreidosierujon := mkdir --parents
komando_kopii := cp --recursive --update --verbose
komando_tar := tar --verbose
komando_forigi := rm --recursive --force
komando_avizi := echo
komando_tsc := tsc --allowUnreachableCode --target ES5

var_fontoj := 
var_fontoj := ${var_fontoj} fontoj/bazo/funkcioj.ts
var_fontoj := ${var_fontoj} fontoj/bazo/tipoj.ts
var_fontoj := ${var_fontoj} fontoj/bazo/vokado.ts
var_fontoj := ${var_fontoj} fontoj/bazo/cxeno.ts
var_fontoj := ${var_fontoj} fontoj/bazo/vico.ts
var_fontoj := ${var_fontoj} fontoj/eventoj/evento.ts
var_fontoj := ${var_fontoj} fontoj/eventoj/eventoj_enigaj/evento_eniga.ts
var_fontoj := ${var_fontoj} fontoj/eventoj/eventoj_enigaj/evento_eniga_mesagxo.ts
var_fontoj := ${var_fontoj} fontoj/eventoj/eventoj_eligaj/evento_eliga.ts
var_fontoj := ${var_fontoj} fontoj/eventoj/eventoj_eligaj/evento_eliga_mesagxo.ts
var_fontoj := ${var_fontoj} fontoj/kromajxoj/kromajxo.ts
var_fontoj := ${var_fontoj} fontoj/kromajxoj/kromajxo_stirado.ts
var_fontoj := ${var_fontoj} fontoj/kromajxoj/kromajxo_ekstera.ts
var_fontoj := ${var_fontoj} fontoj/klientoj/kliento.ts
var_fontoj := ${var_fontoj} fontoj/klientoj/kliento_pseuxda.ts
var_fontoj := ${var_fontoj} fontoj/klientoj/kliento_irc.ts
var_fontoj := ${var_fontoj} fontoj/cxefajxo.ts

var_moduloj := 
var_moduloj := ${var_moduloj} irc

defauxlto: konstrui
.PHONY: defauxlto

konstrui: kompili moduloj
.PHONY: konstrui

lancxi: kreajxo/kvasir.js
	@ ${komando_avizi} "-- lancxado …"
	@ node kreajxo/kvasir.js agordoj.json
.PHONY: lancxi

kompili: kreajxo/kvasir.js
.PHONY: kompili

kreajxo/kvasir.js: ${var_fontoj}
	@ ${komando_avizi} "-- kompilado …"
	@ ${komando_kreidosierujon} kreajxo
	@ ${komando_tsc} ${var_fontoj} --outFile kreajxo/kvasir.js

moduloj:
	@ ${komando_avizi} "-- instalado de moduloj …"
	@ ${komando_kreidosierujon} kreajxo
	@ pushd kreajxo && npm install ${var_moduloj} ; popd
.PHONY: moduloj

nuligi:
	@ ${komando_avizi} "-- nuligado …"
	@ ${komando_forigi} kreajxo
.PHONY: nuligi