
CC = gcc
OFLAGS = -Wall -O3 -Wno-long-long -Wundef -Wcast-align -Wconversion -Wchar-subscripts -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-common -g
OLFLAGS = -Wall
DLFLAGS = 

END_OLFLAGS = 
END_DLFLAGS = 

INCLUDES = alloc.h app_str.h caas.h card.h cl_chop.h fcs_config.h fcs_cl.h fcs.h fcs_dm.h fcs_enums.h fcs_hash.h fcs_isa.h fcs_move.h fcs_user.h jhjtypes.h lookup2.h move.h ms_ca.h prefix.h pqueue.h preset.h rand.h state.h test_arr.h tests.h

TARGETS = fc-solve

all: $(TARGETS)

board_gen: dummy
	make -C board_gen/

dummy:

#<<<OBJECTS.START
alloc.o: alloc.c $(INCLUDES)
	$(CC) -c $(OFLAGS) -o $@ $<

app_str.o: app_str.c $(INCLUDES)
	$(CC) -c $(OFLAGS) -o $@ $<

caas.o: caas.c $(INCLUDES)
	$(CC) -c $(OFLAGS) -o $@ $<

card.o: card.c $(INCLUDES)
	$(CC) -c $(OFLAGS) -o $@ $<

cl_chop.o: cl_chop.c $(INCLUDES)
	$(CC) -c $(OFLAGS) -o $@ $<

cmd_line.o: cmd_line.c $(INCLUDES)
	$(CC) -c $(OFLAGS) -o $@ $<

fcs_dm.o: fcs_dm.c $(INCLUDES)
	$(CC) -c $(OFLAGS) -o $@ $<

fcs_hash.o: fcs_hash.c $(INCLUDES)
	$(CC) -c $(OFLAGS) -o $@ $<

fcs_isa.o: fcs_isa.c $(INCLUDES)
	$(CC) -c $(OFLAGS) -o $@ $<

freecell.o: freecell.c $(INCLUDES)
	$(CC) -c $(OFLAGS) -o $@ $<

intrface.o: intrface.c $(INCLUDES)
	$(CC) -c $(OFLAGS) -o $@ $<

lib.o: lib.c $(INCLUDES)
	$(CC) -c $(OFLAGS) -o $@ $<

lookup2.o: lookup2.c $(INCLUDES)
	$(CC) -c $(OFLAGS) -o $@ $<

move.o: move.c $(INCLUDES)
	$(CC) -c $(OFLAGS) -o $@ $<

pqueue.o: pqueue.c $(INCLUDES)
	$(CC) -c $(OFLAGS) -o $@ $<

preset.o: preset.c $(INCLUDES)
	$(CC) -c $(OFLAGS) -o $@ $<

rand.o: rand.c $(INCLUDES)
	$(CC) -c $(OFLAGS) -o $@ $<

scans.o: scans.c $(INCLUDES)
	$(CC) -c $(OFLAGS) -o $@ $<

simpsim.o: simpsim.c $(INCLUDES)
	$(CC) -c $(OFLAGS) -o $@ $<

state.o: state.c $(INCLUDES)
	$(CC) -c $(OFLAGS) -o $@ $<

main.o: main.c $(INCLUDES)
	$(CC) -c $(OFLAGS) -o $@ $<

OBJECTS = alloc.o app_str.o caas.o card.o cl_chop.o cmd_line.o fcs_dm.o fcs_hash.o fcs_isa.o freecell.o intrface.o lib.o lookup2.o move.o pqueue.o preset.o rand.o scans.o simpsim.o state.o main.o
#>>>OBJECTS.END

fc-solve: $(OBJECTS)
	$(CC) $(OLFLAGS) -o $@ $(OBJECTS) -lm

clean:
	rm -f *.o $(TARGETS) $(DTARGETS)


