CFLAGS=-O3 -fomit-frame-pointer -ffast-math
LDFLAGS=-lm
ASFLAGS=-f elf -m amd64 -O2

.PHONY: run

run: dcts
	./dcts

dcts: dcts.o dcts-a-int.o dcts-a-float.o

dcts.o: dcts_constants.h dcts-a.h

dcts-a-int.o: dcts-a.asm dcts_constants.asm amd64inc.asm
	yasm $(ASFLAGS) -UUSE_FLOAT -o $@ $<

dcts-a-float.o: dcts-a.asm dcts_constants.asm amd64inc.asm
	yasm $(ASFLAGS) -DUSE_FLOAT -o $@ $<

dcts_constants.h: dcts_constants.pl
	./$< > $@

dcts_constants.asm: dcts_constants.pl
	./$< -asm > $@
