NESe (pronounced "Nessie") is a NES emulator based on the e6502 emulator, also written in C with a focus on speed and portability for use on embedded platforms, especially ARM.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
1.6KB

  1. SHORT_PLATFORM = linux
  2. ifeq ($(PLATFORM),win64)
  3. CROSS_COMPILE = x86_64-w64-mingw32-
  4. EXTENSION = .exe
  5. SHORT_PLATFORM = win
  6. else ifeq ($(PLATFORM),win32)
  7. CROSS_COMPILE = i686-w64-mingw32-
  8. EXTENSION = .exe
  9. SHORT_PLATFORM = win
  10. endif
  11. ifneq ($(PLATFORM),)
  12. DIR_SUFFIX=-$(PLATFORM)
  13. endif
  14. CC = $(CROSS_COMPILE)gcc
  15. LD = $(CC)
  16. PFLAGS = -g
  17. #PFLAGS += -O3
  18. #PFLAGS += -s
  19. #PFLAGS += -DDEBUG_MAPPER
  20. #PFLAGS += -DDEBUG_RENDER
  21. #PFLAGS += -DDEBUG_PPU -DDEBUG_VRAM -DDEBUG_OAM
  22. #PFLAGS += -DDEBUG_APU
  23. #PFLAGS += -DE6502_DEBUG
  24. PFLAGS += -DE6502_ILLEGAL
  25. CFLAGS = $(PFLAGS) -Wall -Werror -Wshadow -Wunused -I../ -Isrc/
  26. CFLAGS += -Iinc/$(PLATFORM) -I../inc/$(PLATFORM)
  27. LDFLAGS = $(PFLAGS)
  28. LDFLAGS += -Llib/$(PLATFORM)
  29. OBJDIR = obj$(DIR_SUFFIX)
  30. SRCDIR = src
  31. BINDIR = bin$(DIR_SUFFIX)
  32. # nese
  33. TARGET_1 = nese$(EXTENSION)
  34. LDLIBS_1 = -lSDL2
  35. SRC_SRCS_1 = nese.c ines.c
  36. SRC_SRCS_1 += nes.c ppu.c input.c
  37. SRC_SRCS_1 += cart.c mapper.c
  38. SRC_SRCS_1 += apu.c audio.c
  39. SRC_SRCS_1 += file.c save.c
  40. SRC_SRCS_1 += sdl_render.c sdl_input.c sdl_audio.c sdl_timer.c
  41. SRC_SRCS_1 += overlay.c sdl_overlay.c
  42. SRC_SRCS_1 += sdl_menu.c
  43. PLAT_SRCS_1 = filemap.c
  44. MAPDIR = src/map
  45. MAP_SRCS_1 = nrom.c mmc1.c uxrom.c cnrom.c mmc3.c
  46. EXT_SRCS_1 = e6502/e6502.c e6502/opcodes.c blip-buf/blip_buf.c
  47. SRCS_1 = $(SRC_SRCS_1:%=$(SRCDIR)/%)
  48. SRCS_1 += $(MAP_SRCS_1:%=$(MAPDIR)/%)
  49. SRCS_1 += $(PLAT_SRCS_1:%=src/$(SHORT_PLATFORM)/%)
  50. SRCS_1 += $(EXT_SRCS_1)
  51. OBJS_1 = $(SRCS_1:%.c=$(OBJDIR)/%.o)
  52. all: $(BINDIR)/$(TARGET_1)
  53. clean: ; rm -rf obj*/ bin*/
  54. $(BINDIR)/$(TARGET_1): $(OBJS_1)
  55. @mkdir -p $(@D)
  56. $(LD) $(LDFLAGS) $^ $(LDLIBS_1) -o $@
  57. $(OBJDIR)/%.o: %.c
  58. @mkdir -p $(@D)
  59. $(CC) $(CFLAGS) -c $< -o $@