komando_kreidosierujon := mkdir --parents
komando_kopii := cp --recursive --update --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
var_moduloj := ${var_moduloj} request

defauxlto: kompili kromajxoj agordoj moduloj
.PHONY: defauxlto

lancxi: kreajxo/kvasir.js
	@ ${komando_avizi} "-- lancxado ..."
	@ pushd kreajxo && node kvasir.js ; popd
.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

kromajxoj:
	@ ${komando_avizi} "-- kopido de kromajxoj ..."
	@ ${komando_kreidosierujon} kreajxo
	@ ${komando_kopii} fontoj/kromajxoj/eksteraj kreajxo/kromajxoj
.PHONY: kromajxoj

agordoj: kreajxo/agordoj.json
.PHONY: agordoj

kreajxo/agordoj.json: fontoj/agordoj.json
	@ ${komando_avizi} "-- kopido de agordoj ..."
	@ ${komando_kreidosierujon} kreajxo
	@ ${komando_kopii} fontoj/agordoj.json kreajxo/agordoj.json

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