TARGET ?= margen
INSTALL_DIR ?= $(HOME)/.local/bin
TEST_ARGS ?=
SHELL := /bin/bash

.PHONY: build
clean:
	@rm -rf build

build:
	@mkdir -p build
	gcc -Wall src/*.c src/*.h -lm -o build/$(TARGET)

.PHONY: install
install: build
	cp -f build/$(TARGET) $(INSTALL_DIR)/$(TARGET)

.PHONY: time
time: build
	time ./build/$(TARGET) $(TEST_ARGS)

.PHONY: valgrind
valgrind: build
	valgrind --leak-check=full -s ./build/$(TARGET) $(TEST_ARGS)

.PHONY: release
release:
	aclocal
	autoconf
	automake --add-missing
	./configure
	make distcheck

.PHONY: release-arch
release-arch: clean
	mkdir -p build
	cp PKGBUILD build
	cd build && makepkg

.PHONY: gif
gif: build
	mkdir -p tmp
	for i in {1..50}; do \
		./build/margen -w=1920 -h=720 --seed=$$i$$i -o=tmp/image$$i.bmp ; \
	done
	ffmpeg -y -f image2 -framerate 1 -i tmp/image%d.bmp -vf scale=960x360 images/sample.gif
	rm -rf tmp
