TARGET ?= forge INSTALL_DIR ?= $(HOME)/.local/bin TEST_ARGS ?= --frag=./shaders --frag-config=./config/shaders.cfg --tempo=30 SHELL := /bin/bash .PHONY: build clean: @rm -rf build build: @mkdir -p build gcc \ src/*.h src/*.c \ -Iinclude \ hashmap.c/hashmap.c \ -lm -lGL -lglfw \ -Wall -Wextra \ -DGLFW_INCLUDE_NONE \ -o build/$(TARGET) .PHONY: run run: build ./build/$(TARGET) $(TEST_ARGS) --monitor-only --hot-reload .PHONY: demo demo: build ./build/$(TARGET) $(TEST_ARGS) --demo .PHONY: install install: build cp -f build/$(TARGET) $(INSTALL_DIR)/$(TARGET) .PHONY: valgrind valgrind: build valgrind \ --leak-check=full \ --track-fds=all \ --show-realloc-size-zero=no \ --undef-value-errors=no \ ./build/$(TARGET) $(TEST_ARGS) .PHONY: release release: clean aclocal autoconf automake --add-missing ./configure make distcheck mkdir -p build cp $(TARGET)-*.tar.gz build/ @rm -rf \ autom4te.cache \ aclocal.m4 \ compile \ config.* \ configure \ depcomp \ $(TARGET) \ $(TARGET)-*.tar.gz \ $(TARGET)-*.pkg.tar.zst \ install-sh \ Makefile \ Makefile.in \ missing \ src/.* \ src/*.o \ .PHONY: release-arch release-arch: clean mkdir -p build cp PKGBUILD build cd build && makepkg