--- /dev/null
+all: narabu qdc qdd psnr
+CFLAGS=-O3 -std=gnu++17 $(shell pkg-config --cflags movit)
+CXXFLAGS=$(CFLAGS)
+LDFLAGS=$(shell pkg-config --libs movit) -lepoxy -lSDL2
+
+qdc: qdc.o fdct.o idct.o ryg_rans/renormalize.o
+ $(CXX) $(LDFLAGS) -o $@ $^
+
+qdd: qdd.o idct.o
+ $(CXX) $(LDFLAGS) -o $@ $^
+
+psnr: psnr.o
+ $(CXX) $(LDFLAGS) -o $@ $^
+
+narabu: narabu.o util.o
+ $(CXX) $(LDFLAGS) -o $@ $^
+
+psnr.o: psnr.cpp
+ $(CXX) $(CXXFLAGS) -fpermissive -o $@ -c $^
+
+.PHONY: clean
+clean:
+ $(RM) narabu.o qdc.o qdd.o psnr.o fdct.o idct.o util.o ryg_rans/renormalize.o
+ $(RM) qdc qdd psnr narabu