SEARCHO	= search-$(SIZE).o
OBJS	= brutessl.o search.o
OBJSIZE	= brutessl.o $(SEARCHO)
HDR	= brutessl.h
TAR	= brutessl.tar.gz
SRCS	= Makefile README assembly.c brutessl.c brutessl.h hal.pf hal2.pf search.c test.pf brutessl.txt
SIZES	= char short int long
TIMEOUT	=
TIME	= time
CFLAGS	= -O2
#CFLAGS	= -O6 -funroll-loops -fomit-frame-pointer -finline-functions
#CC	= gcc

test:	brutessl  test.pf
	$(TIME) ./brutessl test.pf 29de 38ad 1

objs:
	for size in $(SIZES); do $(MAKE) brutessl-size SIZE=$$size; done

times: objs
	for size in $(SIZES); do echo -n "+++ $$size	\\c"; $(TIMEOUT) $(TIME) ./brutessl-$$size -Q -t; done

brutessl-size:	brutessl-$(SIZE)

$(SEARCHO): search.c
	rm -f $(SEARCHO)
	$(CC) $(CFLAGS) -c -o $(SEARCHO) -DRC4_BYTE=$(SIZE) search.c

brutessl-$(SIZE): $(OBJSIZE)
	rm -f $@
	$(CC) -o $@ $(OBJSIZE)
	
brutessl: $(OBJS)
	rm -f $@
	$(CC) -o $@ $(OBJS)

tar: $(TAR)

$(TAR):	$(SRCS)
	tar cf `echo $@ | sed 's/.gz//'` $(SRCS)
	rm -f $@
	gzip -v -best `echo $@ | sed 's/.gz//'`

$(SEARCHO) $(OBJS): $(HDR)
