SHORT_PLATFORM = linux ifeq ($(PLATFORM),win64) CROSS_COMPILE = x86_64-w64-mingw32- EXTENSION = .exe SHORT_PLATFORM = win else ifeq ($(PLATFORM),win32) CROSS_COMPILE = i686-w64-mingw32- EXTENSION = .exe SHORT_PLATFORM = win endif ifneq ($(PLATFORM),) DIR_SUFFIX=-$(PLATFORM) endif CC = $(CROSS_COMPILE)gcc LD = $(CC) PFLAGS = -g #PFLAGS += -O3 #PFLAGS += -s #PFLAGS += -DDEBUG_MAPPER #PFLAGS += -DDEBUG_RENDER #PFLAGS += -DDEBUG_PPU -DDEBUG_VRAM -DDEBUG_OAM #PFLAGS += -DDEBUG_APU #PFLAGS += -DE6502_DEBUG PFLAGS += -DE6502_ILLEGAL CFLAGS = $(PFLAGS) -Wall -Werror -Wshadow -Wunused -I../ -Isrc/ CFLAGS += -Iinc/$(PLATFORM) -I../inc/$(PLATFORM) LDFLAGS = $(PFLAGS) LDFLAGS += -Llib/$(PLATFORM) OBJDIR = obj$(DIR_SUFFIX) SRCDIR = src BINDIR = bin$(DIR_SUFFIX) # nese TARGET_1 = nese$(EXTENSION) 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 += file.c save.c SRC_SRCS_1 += sdl_render.c sdl_input.c sdl_audio.c sdl_timer.c SRC_SRCS_1 += overlay.c sdl_overlay.c PLAT_SRCS_1 = filemap.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 += $(PLAT_SRCS_1:%=src/$(SHORT_PLATFORM)/%) SRCS_1 += $(EXT_SRCS_1) OBJS_1 = $(SRCS_1:%.c=$(OBJDIR)/%.o) all: $(BINDIR)/$(TARGET_1) clean: ; rm -rf obj*/ bin*/ $(BINDIR)/$(TARGET_1): $(OBJS_1) @mkdir -p $(@D) $(LD) $(LDFLAGS) $^ $(LDLIBS_1) -o $@ $(OBJDIR)/%.o: %.c @mkdir -p $(@D) $(CC) $(CFLAGS) -c $< -o $@