TARGETS= minimise primer view lumpy.cfm sgtatham.cfm ring.cfm
+SGTATHAM=sgtatham
CWARNS= -Wall -Wwrite-strings -Wpointer-arith -Werror -Wshadow
CXXWARNS= $(CWARNS) -Wno-shadow -Wno-error
OPTIMISE= -O2
-CFLAGS= -MMD $(OPTIMISE) -g $(CWARNS)
+CFLAGS= -MMD $(OPTIMISE) -g $(CWARNS) $(DIMCFLAGS)
CXXFLAGS= -MMD $(OPTIMISE) -g $(CXXWARNS)
LIBGSL= -lgsl -lgslcblas
view: view.o common.o mgraph.o
$(CC) $(CFLAGS) -o $@ $^ $(LIBGSL) -L/usr/X11R6/lib -lX11
-sgtatham.cfm: sgtatham-regenerator prime.data sgtatham/z.typescript
+sgtatham.cfm: sgtatham-regenerator prime.data $(SGTATHAM)/z.typescript
./$^ -T -o$@
lumpy.cfm: oldmoebius-converter prime.data ../moebius/ins-new ../moebius/a.out
realclean: clean
rm -f best
+ rm -rf dim,*
-include *.d
--- /dev/null
+#!/bin/sh
+set -e
+fail () { echo >&2 "$*"; exit 127; }
+badusage () { fail 'usage: makedim <xbits><ybits> [<targets>]'; }
+
+case $1 in
+[0-9][0-9]) ;;
+*) badusage ;;
+esac
+
+dim=$1; shift
+dir=dim,$dir
+
+x () { echo >&2 " $*"; "$@"; }
+
+x make clean >/dev/null
+x mkdir -p $dir
+x make -C $dir DIMCFLAGS=-DDEFBITS=$dim PERLLIB=.. SGTATHAM=../sgtatham VPATH=.. -f ../Makefile "$@"
#include "common.h"
+#ifndef DEFBITS
#define XBITS 3
-#define X (1<<XBITS)
#define YBITS 3
+#else
+#define XBITS (DEFBITS / 10)
+#define YBITS (DEFBITS % 10)
+#endif
+
+#define X (1<<XBITS)
#define Y ((1<<YBITS) - 1)
#define N (X*Y)