# Makefile for KnightCap # what C compiler? It better be Ansi-C. Use gcc if you have it. # you may find that KnightCap is very slow if you don't use gcc CC ?= gcc # What compiler switches do you want? These ones work well with gcc #OPT = -O2 -fshort-enums -Wall # OPT = -g -fshort-enums -Wall # If you don't have gcc then perhaps try this instead. You only need # the null definition for inline if your C compiler doesn't know about # the inline keyword # OPT = -O -Dinline="" # if you want profiling (for performance tuning) then uncomment # the following (some systems may not support this properly) # LOPT = -pg # comment out the following 7 lines if you don't want the rendered # display (or you don't have OpenGL and Glut libraries) # If you do have these libs then make sure the first three # lines point at the right places MESA = ${X11BASE} GLUT = ${X11BASE} X11 = ${X11BASE} GLUT_LIBS = -L$(GLUT)/lib -lglut MESA_LIBS = -L$(MESA)/lib -lGLU -lGL -lm XLIBS = -L$(X11)/lib -lXmu -lXt -lXext -lX11 -lXi DISPLAYFLAGS = -I$(X11)/include -I$(MESA)/include -I$(GLUT)/include -DRENDERED_DISPLAY=1 # comment out the following line if you don't want KnightCap's # evaluation function learning turned on. #LEARNFLAGS = -DLEARN_EVAL=1 # you shouldn't need to edit anything below this line. Unless # something goes wrong. INCLUDE = $(DISPLAYFLAGS) CFLAGS += $(OPT) $(INCLUDE) $(LEARNFLAGS) LIBS = $(GLUT_LIBS) $(MESA_LIBS) $(XLIBS) TARGET = KnightCap OBJS = knightcap.o trackball.o move.o util.o generate.o eval.o movement.o \ ordering.o hash.o board.o log.o prog.o timer.o ics.o display.o \ testsuite.o brain.o td.o tactics.o epd.o epdglue.o $(TARGET): $(OBJS) -mv $@ $@.old $(CC) $(LOPT) -o $@ $(OBJS) $(LIBS) proto: cat *.c | awk -f mkproto.awk > proto.h clean: /bin/rm -f *.o *~ $(TARGET)