none:
	# do nothing

CODEGUESS = \
	codeguess-unpacked/1 \
	codeguess-unpacked/2 \
	codeguess-unpacked/3 \
	codeguess-unpacked/4 \
	codeguess-unpacked/5 \
	codeguess-unpacked/6 \
	codeguess-unpacked/7 \
	codeguess-unpacked/8 \
	codeguess-unpacked/9 \
	codeguess-unpacked/10 \
	codeguess-unpacked/11 \
	codeguess-unpacked/12 \
	codeguess-unpacked/13 \
	codeguess-unpacked/14 \
	codeguess-unpacked/15 \
	codeguess-unpacked/16 \
	codeguess-unpacked/17 \
	codeguess-unpacked/18 \
	codeguess-unpacked/19 \
	codeguess-unpacked/20 \
	codeguess-unpacked/21 \
	codeguess-unpacked/22 \
	codeguess-unpacked/23 \
	codeguess-unpacked/24 \
	codeguess-unpacked/25 \
	codeguess-unpacked/26 \
	codeguess-unpacked/27 \
	codeguess-unpacked/28 \
	codeguess-unpacked/29 \
	codeguess-unpacked/30 \
	codeguess-unpacked/31 \
	codeguess-unpacked/32 \
	codeguess-unpacked/33 \
	codeguess-unpacked/34 \
	codeguess-unpacked/35 \
	codeguess-unpacked/36 \
	codeguess-unpacked/37 \
	codeguess-unpacked/38 \
	codeguess-unpacked/39 \
	codeguess-unpacked/40 \
	codeguess-unpacked/41 \
	codeguess-unpacked/42 \
	codeguess-unpacked/43 \
	codeguess-unpacked/44 \
	codeguess-unpacked/45 \
	codeguess-unpacked/46 \
	codeguess-unpacked/47 \
	codeguess-unpacked/48 \
	codeguess-unpacked/49 \
	codeguess-unpacked/50 \
	codeguess-unpacked/51 \
	codeguess-unpacked/52 \
	codeguess-unpacked/53 \
	codeguess-unpacked/54 \
	codeguess-unpacked/55 \
	codeguess-unpacked/56 \
	codeguess-unpacked/57 \
	codeguess-unpacked/58 \
	codeguess-unpacked/59 \
	codeguess-unpacked/60 \
	codeguess-unpacked/61 \
	codeguess-unpacked/62 \
	codeguess-unpacked/63 \
	codeguess-unpacked/64 \
	codeguess-unpacked/65 \
	codeguess-unpacked/66 \
	codeguess-unpacked/67 \

codeguess/%.tar.bz2:
	@mkdir -p codeguess
	@echo fetching $@
	@while ! curl --retry-all-errors --retry 1000000 -sS https://codeguessing.gay/$*.tar.bz2 > codeguess/$*.tar.bz2; do :; done
	@echo fetched $@

codeguess-unpacked/%: codeguess/%.tar.bz2
	@mkdir -p codeguess-unpacked
	cd codeguess-unpacked && tar xf ../codeguess/$*.tar.bz2

codeguess-all: $(CODEGUESS)

models.h: analyzer.scm $(CODEGUESS)
	ratio(){ echo | awk "{ a=$$(cat "$$@"|wc -c); b=$$(cat "$$@"|gzip|wc -c); print a/b }"; }; \
	find $(CODEGUESS) -name '.git' -prune -o -type f -print | while read line; do \
	if [ "$$(du -b "$$line" | grep -oE ^[0-9]\*)" -le 16384 ] && \
	[ $$(echo|awk "{ n=$$(ratio "$$line")>3?1:0; print n; }") = 1 ]; then \
	printf '%s\n' "$$line"; fi; done | \
	( echo 'static const struct model models[] = {'; \
	while read line; do printf '%s\n' "$$(wc -c "$$line")" >&2; \
	guile analyzer.scm < "$$line"; done; echo '};' ) > models.h

decipher: decipher.c models.h
	$(CC) -O3 decipher.c -o decipher
