# Semana 14: implementación de sistemas de archivos y journaling.
#   make         compila todo
#   make test    corre cada programa (la imagen vsfs va a /tmp)
#   make clean   borra los binarios y la imagen
CFLAGS = -Wall -Wextra -g
PROGS  = vsfs bmapcalc journal fsyncbench
IMG    = /tmp/vsfs.img

all: $(PROGS)

$(PROGS): %: %.c
	$(CC) $(CFLAGS) -o $@ $<

test: $(PROGS)
	./vsfs $(IMG) mkfs
	./vsfs -v $(IMG) mkdir /foo
	./vsfs -v $(IMG) create /foo/bar 12288
	./vsfs -v $(IMG) read /foo/bar
	./vsfs $(IMG) ls /foo
	./vsfs $(IMG) stat 4
	./vsfs $(IMG) stat 37
	./bmapcalc
	./bmapcalc 0 5000 13000 70000 300000
	./bmapcalc -i 25
	./bmapcalc -max 4096 4 12
	./journal none
	./journal data
	./journal ordered
	./journal reorder
	./fsyncbench /tmp/fsb.dat 200

clean:
	rm -f $(PROGS) $(IMG) /tmp/fsb.dat

.PHONY: all test clean
