CC := gcc LD := $(CC) WINCC := x86_64-w64-mingw32-gcc CFLAGS := -Os -std=c2x -Wall -Wextra -Wno-override-init LDFLAGS := -lm -lSDL2 -lSDL2_image -lSDL2_mixer NAME := jambase SRC := $(wildcard src/*.c) OBJ := $(patsubst src/%.c,obj/%.o,$(SRC)) DEP := $(patsubst %.o,%.d,$(OBJ)) all: embed @make --no-print-directory $(NAME) $(NAME): $(OBJ) $(LD) -o $(NAME) -MMD $(OBJ) $(LDFLAGS) obj/%.o: src/%.c @mkdir -p obj $(CC) $(CFLAGS) -c -o $@ $< embed: tmj2c map/*.tmj >map/maps.h run: re ./$(NAME) clean: rm -rf $(NAME) $(NAME).exe obj/ map/maps.h re: @make --no-print-directory clean @make --no-print-directory all windows: embed $(WINCC) $(CFLAGS) -o $(NAME).exe $(SRC) $(LDFLAGS) .PHONY: all embed run clean re windows