OBJDIR ?= /mnt/odkladiste/obj
CXX = $(OBJDIR)/llvm/bin/clang++
CXXFLAGS += -Wall -Wextra -pedantic -std=c++11
CXXFLAGS += -I$(OBJDIR)/halide/include/
CXXFLAGS += -I$(HOME)/src/Halide/tools/
CC = $(OBJDIR)/llvm/bin/clang++
LDFLAGS += -L$(OBJDIR)/halide/lib/ -lHalide -lpthread -ldl -lpng -ltiff

run_pyramid: run_pyramid.cpp run_pyramid.a tiff.o

run_aot_blur: run_aot_blur.cpp run_aot_blur.a tiff.o

run_pyramid.a: pyramid
	LD_PRELOAD=$(OBJDIR)/halide/lib/libHalide.so ./pyramid

run_aot_blur.a: aotblur
	LD_PRELOAD=$(OBJDIR)/halide/lib/libHalide.so ./aotblur

two: two.o blend2.o tiff.o
many: many.o blend2.o tiff.o

test/tiff_load: test/tiff_load.o tiff.o
	$(CXX) $(LDFLAGS) -o $@ $+

tests: test/tiff_load test/box
	./test/tiff_load && ./test/box && echo "ALL OK."

clean:
	$(RM) -- {run_pyramid,run_aot_blur}{,.[ah]} aotblur jitblur pyramid two *.o
	$(RM) -- test/tiff_load test/box test/*.o
