CM=cmeta

all: prereq blc blc-asm blcrt

blc: blc.cmeta
	$(CM)/cmeta < $< | $(CM)/cma | cat $(CM)/cmrt - | $(CM)/elfwrap > $@
	chmod +x $@

blc-asm: blc-asm.cmeta
	$(CM)/cmeta < $< | $(CM)/cma | cat $(CM)/asmrt - | $(CM)/elfwrap > $@
	chmod +x $@

blcrt: blcrt.lhex
	$(CM)/lhex < $< > $@

%.out: %.blc blc-asm blc blcrt
	./blc < $< | ./blc-asm | cat blcrt - | $(CM)/elfwrap > $@
	chmod +x $@

clean:
	$(RM) blc blc-asm blcrt

prereq:
	$(MAKE) -C $(CM) cmeta

.PHONY: all clean prereq
