OBJEXT = .obj

OBJS = ctpuzzle$(OBJEXT)

CC = icl
RM = del
CFLAGS = /Ox /Wall /Zi /Qipo /Qwd1418 /Qwd1419 /Qwd177 /W4
CPPFLAGS =
DEFS =
LIBS =
LDFLAGS =

ifdef TEST
DEFS := $(DEFS) -DTEST
endif

ifdef BENCH
DEFS := $(DEFS) -DBENCH
endif

ifdef PREGEN
DEFS := $(DEFS) -DPREGEN
endif

ifdef USEASM
DEFS := $(DEFS) -DUSEASM
endif

ifdef MMX
DEFS := $(DEFS) -DMMX
endif

ifdef DEBUG
DEFS := $(DEFS) -DDEBUG
endif

all: ctpuzzle para_odd para_even

%$(OBJEXT) : %.c
	$(CC) $(OPTS) $(CFLAGS) $(DEFS) $(LIBS) $(LDFLAGS) -c $< -o $@

ctpuzzle: $(OBJS)
	$(CC) $(OPTS) $(CFLAGS) $(DEFS) $(LIBS) $(LDFLAGS) /Fe$@ $(OBJS)

clean:
	$(RM) *.exe *.obj *.pdb *.ilk

para_odd:
	$(CC) $(OPTS) $(CFLAGS) $(DEFS) $(LIBS) $(LDFLAGS) -DPARA_ODD /Fe$@ ctpuzzle.c

para_even:
	$(CC) $(OPTS) $(CFLAGS) $(DEFS) $(LIBS) $(LDFLAGS) -DPARA_EVEN /Fe$@ ctpuzzle.c
