CC = gcc LD = $(CC) PFLAGS = -g #PFLAGS += -O3 #PFLAGS += -DDEBUG_MAPPER #PFLAGS += -DDEBUG_RENDER #PFLAGS += -DDEBUG_PPU -DDEBUG_VRAM -DDEBUG_OAM PFLAGS += -DDEBUG_APU #PFLAGS += -DE6502_DEBUG CFLAGS = $(PFLAGS) -Wall -Werror -Wshadow -Wunused -I.. LDFLAGS = $(PFLAGS) OBJDIR = obj SRCDIR = src BINDIR = bin # nese TARGET_1 = nese LDLIBS_1 = -lSDL2 SRC_SRCS_1 = nese.c ines.c SRC_SRCS_1 += nes.c ppu.c input.c SRC_SRCS_1 += cart.c mapper.c SRC_SRCS_1 += apu.c audio.c SRC_SRCS_1 += sdl_render.c sdl_input.c sdl_audio.c MAPDIR = src/map MAP_SRCS_1 = nrom.c mmc1.c uxrom.c cnrom.c mmc3.c EXT_SRCS_1 = e6502/e6502.c e6502/opcodes.c blip-buf/blip_buf.c SRCS_1 = $(SRC_SRCS_1:%=$(SRCDIR)/%) SRCS_1 += $(MAP_SRCS_1:%=$(MAPDIR)/%) SRCS_1 += $(EXT_SRCS_1) OBJS_1 = $(SRCS_1:%.c=$(OBJDIR)/%.o) all: $(BINDIR)/$(TARGET_1) clean: ; rm -rf $(OBJDIR) $(BINDIR) $(BINDIR)/$(TARGET_1): $(OBJS_1) @mkdir -p $(@D) $(LD) $(LDFLAGS) $^ $(LDLIBS_1) -o $@ $(OBJDIR)/%.o: %.c @mkdir -p $(@D) $(CC) $(CFLAGS) -c $< -o $@