CC := gcc CFLAGS := -I . -Wall -Wextra -pedantic -std=c99 -O3 -s PROGRAMS := n64graphics n64graphics_ci mio0 n64cksum textconv patch_libultra_math iplfontutil n64graphics_SOURCES := n64graphics.c utils.c n64graphics_CFLAGS := -DN64GRAPHICS_STANDALONE n64graphics_ci_SOURCES := n64graphics_ci_dir/n64graphics_ci.c n64graphics_ci_dir/exoquant/exoquant.c n64graphics_ci_dir/utils.c mio0_SOURCES := libmio0.c mio0_CFLAGS := -DMIO0_STANDALONE n64cksum_SOURCES := n64cksum.c libmio0.c libsm64.c utils.c textconv_SOURCES := textconv.c utf8.c hashtable.c patch_libultra_math_SOURCES := patch_libultra_math.c iplfontutil_SOURCES := iplfontutil.c all: $(PROGRAMS) clean: $(RM) $(PROGRAMS) define COMPILE $(1): $($1_SOURCES) $(CC) $(CFLAGS) $($1_CFLAGS) $$^ -lm -o $$@ endef $(foreach p,$(PROGRAMS),$(eval $(call COMPILE,$(p))))