
# files

EXE = scidlet.exe

OBJS = scidlet.o engine.o recog.o misc.o position.o movelist.o

SRC = ../src/

TCL_INCLUDE = -I/usr/include/

# rules

all: $(EXE)

clean:
	$(RM) *.o .depend gmon.out $(EXE) $(OBJS)

# general
CXX      = arm-cegcc-g++ -DPOCKET -DPOCKETENGINE
CXXFLAGS = -pipe -Wcast-align -I$(SRC) -I$(SRC)/zlib/ -I. $(TCL_INCLUDE)
CXXFLAGS += -fno-exceptions -fno-rtti -O3 -fstrict-aliasing -fomit-frame-pointer
#LDFLAGS  = -lm
CC       = arm-cegcc-gcc -O3 -DPOCKET
#-DWIN32
LDFLAGS += -s

ipc.armo: ipc.c
	$(CC) -c -o ipc.armo ipc.c

$(EXE): $(OBJS) ipc.armo
	$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $(OBJS) ipc.armo
	arm-cegcc-strip $(EXE)

# dependencies

scidlet.o: scidlet.cpp $(SRC)engine.h $(SRC)position.h $(SRC)common.h $(SRC)error.h $(SRC)sqmove.h \
  $(SRC)misc.h $(SRC)movelist.h $(SRC)sqlist.h $(SRC)sqset.h $(SRC)tokens.h $(SRC)timer.h ipc.h
	$(CXX) $(CXXFLAGS) -c scidlet.cpp -o scidlet.o
	
engine.o: $(SRC)engine.cpp $(SRC)attacks.h $(SRC)common.h $(SRC)error.h $(SRC)sqmove.h $(SRC)engine.h \
  $(SRC)position.h $(SRC)misc.h $(SRC)movelist.h $(SRC)sqlist.h $(SRC)sqset.h $(SRC)tokens.h $(SRC)timer.h $(SRC)recog.h ipc.h
		$(CXX) $(CXXFLAGS) -c $(SRC)engine.cpp -o engine.o
		
recog.o: $(SRC)recog.cpp $(SRC)engine.h $(SRC)position.h $(SRC)common.h $(SRC)error.h $(SRC)sqmove.h $(SRC)misc.h \
  $(SRC)movelist.h $(SRC)sqlist.h $(SRC)sqset.h $(SRC)tokens.h $(SRC)timer.h $(SRC)recog.h
	$(CXX) $(CXXFLAGS) -c $(SRC)recog.cpp -o recog.o

misc.o: $(SRC)misc.cpp $(SRC)common.h $(SRC)error.h $(SRC)sqmove.h $(SRC)misc.h
	$(CXX) $(CXXFLAGS) -c $(SRC)misc.cpp -o misc.o

position.o: $(SRC)position.cpp $(SRC)common.h $(SRC)error.h $(SRC)sqmove.h $(SRC)position.h $(SRC)misc.h \
  $(SRC)movelist.h $(SRC)sqlist.h $(SRC)sqset.h $(SRC)tokens.h $(SRC)attacks.h $(SRC)hash.h
	$(CXX) $(CXXFLAGS) -c $(SRC)position.cpp -o position.o

movelist.o: $(SRC)movelist.cpp $(SRC)movelist.h $(SRC)common.h $(SRC)error.h $(SRC)sqmove.h $(SRC)misc.h
	$(CXX) $(CXXFLAGS) -c $(SRC)movelist.cpp -o movelist.o
