build := performance
openmp := true

nall.path := ../nall
include $(nall.path)/GNUmakefile

flags += -fPIC -I. -I.. -fomit-frame-pointer
options += -s

objects := Pixellate2x Scale2x
objects += 2xSaI Super-2xSaI Super-Eagle
objects += LQ2x HQ2x
objects += NTSC-RF NTSC-Composite NTSC-SVideo NTSC-RGB
objects += Phosphor3x
objects := $(patsubst %,out/%.filter,$(objects))

compile = $(compiler) $(cppflags) $(flags) -o $@ -shared $< $(options)

%.filter: $<
	$(info Compiling $< ...)
	@$(call compile)

all: $(objects)

out/Pixellate2x.filter: Pixellate2x/Pixellate2x.cpp
out/Scale2x.filter: Scale2x/Scale2x.cpp
out/2xSaI.filter: 2xSaI/2xSaI.cpp 2xSaI/implementation.cpp
out/Super-2xSaI.filter: 2xSaI/Super-2xSaI.cpp 2xSaI/implementation.cpp
out/Super-Eagle.filter: 2xSaI/Super-Eagle.cpp 2xSaI/implementation.cpp
out/LQ2x.filter: LQ2x/LQ2x.cpp
out/HQ2x.filter: HQ2x/HQ2x.cpp
out/NTSC-RF.filter: NTSC/NTSC-RF.cpp NTSC/snes_ntsc/*
out/NTSC-Composite.filter: NTSC/NTSC-Composite.cpp NTSC/snes_ntsc/*
out/NTSC-SVideo.filter: NTSC/NTSC-SVideo.cpp NTSC/snes_ntsc/*
out/NTSC-RGB.filter: NTSC/NTSC-RGB.cpp NTSC/snes_ntsc/*
out/Phosphor3x.filter: Phosphor3x/Phosphor3x.cpp

install:
	mkdir -p $(prefix)/share/bsnes-mcfly/filters
	chmod 777 $(prefix)/share/bsnes-mcfly/filters
	cp out/*.filter $(prefix)/share/bsnes-mcfly/filters

clean:
	$(call delete,out/*)
