CYCC := cyclone

ifdef DEBUG
FLAGS=-g -pp -save-c $(EXTRACFLAGS)
else
FLAGS=-O3 -nogc $(EXTRACFLAGS)
endif

ENCODE_OBJS := bit_output.o arithmetic_encode.o adaptive_model.o encode.o
DECODE_OBJS := bit_input.o arithmetic_decode.o adaptive_model.o decode.o
NC_ENCODE_OBJS := $(addprefix nc_,$(ENCODE_OBJS))
NC_DECODE_OBJS := $(addprefix nc_,$(DECODE_OBJS))

build: encode$(EXE) decode$(EXE)
build-nocheck: encode-nochk$(EXE) decode-nochk$(EXE)

encode$(EXE): $(ENCODE_OBJS)
	$(CYCC) $(FLAGS) -o $@ $^

encode-nochk$(EXE): $(NC_ENCODE_OBJS)
	$(CYCC) $(FLAGS) --nochecks -o $@ $^

decode$(EXE): $(DECODE_OBJS)
	$(CYCC) $(FLAGS) $(NOCHECK) -o $@ $^

decode-nochk$(EXE): $(NC_DECODE_OBJS)
	$(CYCC) $(FLAGS) --nochecks -o $@ $^

%.o : %.cyc
	$(CYCC) $(FLAGS) -c $< -o $@

nc_%.o : %.cyc
	$(CYCC) $(FLAGS) --nochecks -c $< -o $@

clean:
	rm -f *.o encode-nochk$(EXE) decode-nochk$(EXE) encode$(EXE) decode$(EXE) *~


