# for amd64
BITS=6
# for x86
#BITS=8

MEG=$$((31*1024))

SNAPCAT_OBJS=snapcat-c.o blocksize_optimizer.o

CFLAGS=-ansi -pedantic -Wall -D_SVID_SOURCE -std=c99 -O3
CC=gcc

default: go

go2: snapcat-c
	./snapcat-c --max-size 17179869184 --verbose < /dev/zero > /dev/null

snapcat-c: $(SNAPCAT_OBJS) blocksize_optimizer.h
	$(CC) -o snapcat-c $(SNAPCAT_OBJS) -lm -s

go: snapcat-g snapcat-c
	./snapcat-g --max-length 10000 < /etc/passwd > /dev/null
	cat /dev/zero | time dd of=/dev/null bs=1024k count=$(MEG) iflag=fullblock
	@echo
	cat /dev/zero | time ./snapcat-c --max-length $$(($(MEG)*1024*1024)) --verbose > /dev/null
	@echo
	@echo
	time dd if=/dev/zero of=/dev/null bs=1024k count=$(MEG) 
	@echo
	time ./snapcat-c --max-length $$(($(MEG)*1024*1024)) --verbose < /dev/zero > /dev/null
	@echo
	@echo
	time ./snapcat-g --max-length $$(($(MEG)*1024*1024)) < /dev/zero > /dev/null

snapcat-g: snapcat-g.go
	go build -o snapcat-g snapcat-g.go

snapcat-g.$(BITS): snapcat-g.go
	$(BITS)g snapcat-g.go

clean:
	rm -f *.o *.6 *.8 snapcat-g snapcat-c core