# makefile for atoll

CC = vpcc
CFLAGS = -O3 -Wall -I.
LDFLAGS = -O

default: atoll tools test

atoll: atoll.o blockparts.o usagegraph.o store.o
	-@echo -- {--- Making Atoll as a single tool}
	$(CC) $(LDFLAGS) -o /app/stdio/atoll $^
	-@echo -- {--- Done}

atoll.o: atoll.c blockparts.h usagegraph.h store.h

blockparts.o: blockparts.c blockparts.h

usagegraph.o: usagegraph.c usagegraph.h blockparts.h

store.o: store.c store.h

tools: atoll
	-@echo -- {--- Making Atoll as a set of tools by using Atoll}
	-rm atoll.a
	vpar r atoll.a atoll.o blockparts.o usagegraph.o store.o
	atoll --apply atoll.a jarno/Atoll/tools atoll.api > atoll.asm
	asm atoll.asm
	-@echo -- {--- Done}

test: tools
	-@echo -- {--- Testing Atoll as tool set by running it on itself and comparing output}
	./tools/main --apply atoll.a jarno/Atoll/tools atoll.api > atoll_tools.asm
	diff -s atoll.asm atoll_tools.asm
	-@echo -- {--- Done}

clean:
	-rm *.o
	-rm /app/stdio/atoll.00
	-rm tools/*.00
	-rm atoll.asm
	-rm atoll_tools.asm
	-rm atoll.a
	-rm vpcc.log
