# Makefile for genplus SDL2 # # (c) 1999, 2000, 2001, 2002, 2003 Charles MacDonald # modified by Eke-Eke # # Defines : # -DLSB_FIRST : for little endian systems. # -DLOGERROR : enable message logging # -DLOGVDP : enable VDP debug messages # -DLOGSOUND : enable AUDIO debug messages # -DLOG_SCD : enable SCD debug messages # -DLOG_CDD : enable CDD debug messages # -DLOG_CDC : enable CDC debug messages # -DLOG_PCM : enable PCM debug messages # -DLOGSOUND : enable AUDIO debug messages # -D8BPP_RENDERING - configure for 8-bit pixels (RGB332) # -D15BPP_RENDERING - configure for 15-bit pixels (RGB555) # -D16BPP_RENDERING - configure for 16-bit pixels (RGB565) # -D32BPP_RENDERING - configure for 32-bit pixels (RGB888) # -DUSE_LIBCHDR : enable CHD file support # -DUSE_LIBTREMOR : enable OGG file support for CD emulation using provided TREMOR library # -DUSE_LIBVORBIS : enable OGG file support for CD emulation using external VORBIS library # -DISABLE_MANY_OGG_OPEN_FILES : only have one OGG file opened at once to save RAM # -DMAXROMSIZE : defines maximal size of ROM buffer (also shared with CD hardware) # -DHAVE_YM3438_CORE : enable (configurable) support for Nuked cycle-accurate YM2612/YM3438 core # -DHAVE_OPLL_CORE : enable (configurable) support for Nuked cycle-accurate YM2413 core # -DHOOK_CPU : enable CPU hooks # -DENABLE_SUB_68K_ADDRESS_ERROR_EXCEPTIONS : enable address error exceptions emulation for SUB-CPU NAME = gen_sdl2 CC = gcc CFLAGS = `sdl2-config --cflags` -march=native -O6 -fomit-frame-pointer -Wall -Wno-strict-aliasing -std=c99 -pedantic-errors #-g -ggdb -pg #-fomit-frame-pointer #LDFLAGS = -pg DEFINES = -DLSB_FIRST -DUSE_16BPP_RENDERING -DUSE_LIBTREMOR -DUSE_LIBCHDR -DMAXROMSIZE=33554432 -DHAVE_YM3438_CORE -DHAVE_OPLL_CORE -DENABLE_SUB_68K_ADDRESS_ERROR_EXCEPTIONS ifneq ($(OS),Windows_NT) DEFINES += -DHAVE_ALLOCA_H endif ifneq ($(findstring Darwin,$(shell uname -a)),) platform = osx endif ifeq ($(platform), osx) CFLAGS += -Winvalid-utf8 -Wstrict-prototypes endif SRCDIR = ../core INCLUDES = -I$(SRCDIR) -I$(SRCDIR)/z80 -I$(SRCDIR)/m68k -I$(SRCDIR)/sound -I$(SRCDIR)/input_hw -I$(SRCDIR)/cart_hw -I$(SRCDIR)/cart_hw/svp -I$(SRCDIR)/cd_hw -I$(SRCDIR)/ntsc -I$(SRCDIR)/tremor -I$(SRCDIR)/../sdl -I$(SRCDIR)/../sdl/sdl2 LIBS = `sdl2-config --libs` -lz -lm CHDLIBDIR = $(SRCDIR)/cd_hw/libchdr OBJDIR = ./build_sdl2 OBJECTS = $(OBJDIR)/z80.o OBJECTS += $(OBJDIR)/m68kcpu.o \ $(OBJDIR)/s68kcpu.o OBJECTS += $(OBJDIR)/genesis.o \ $(OBJDIR)/vdp_ctrl.o \ $(OBJDIR)/vdp_render.o \ $(OBJDIR)/system.o \ $(OBJDIR)/io_ctrl.o \ $(OBJDIR)/mem68k.o \ $(OBJDIR)/memz80.o \ $(OBJDIR)/membnk.o \ $(OBJDIR)/state.o \ $(OBJDIR)/loadrom.o OBJECTS += $(OBJDIR)/input.o \ $(OBJDIR)/gamepad.o \ $(OBJDIR)/lightgun.o \ $(OBJDIR)/mouse.o \ $(OBJDIR)/activator.o \ $(OBJDIR)/xe_1ap.o \ $(OBJDIR)/teamplayer.o \ $(OBJDIR)/paddle.o \ $(OBJDIR)/sportspad.o \ $(OBJDIR)/terebi_oekaki.o \ $(OBJDIR)/graphic_board.o OBJECTS += $(OBJDIR)/sound.o \ $(OBJDIR)/psg.o \ $(OBJDIR)/ym2413.o \ $(OBJDIR)/opll.o \ $(OBJDIR)/ym3438.o \ $(OBJDIR)/ym2612.o OBJECTS += $(OBJDIR)/blip_buf.o OBJECTS += $(OBJDIR)/eq.o OBJECTS += $(OBJDIR)/sram.o \ $(OBJDIR)/svp.o \ $(OBJDIR)/ssp16.o \ $(OBJDIR)/ggenie.o \ $(OBJDIR)/areplay.o \ $(OBJDIR)/eeprom_93c.o \ $(OBJDIR)/eeprom_i2c.o \ $(OBJDIR)/eeprom_spi.o \ $(OBJDIR)/md_cart.o \ $(OBJDIR)/sms_cart.o \ $(OBJDIR)/megasd.o OBJECTS += $(OBJDIR)/scd.o \ $(OBJDIR)/cdd.o \ $(OBJDIR)/cdc.o \ $(OBJDIR)/gfx.o \ $(OBJDIR)/pcm.o \ $(OBJDIR)/cd_cart.o OBJECTS += $(OBJDIR)/sms_ntsc.o \ $(OBJDIR)/md_ntsc.o OBJECTS += $(OBJDIR)/main.o \ $(OBJDIR)/config.o \ $(OBJDIR)/error.o \ $(OBJDIR)/unzip.o \ $(OBJDIR)/fileio.o OBJECTS += $(OBJDIR)/bitwise.o \ $(OBJDIR)/block.o \ $(OBJDIR)/codebook.o \ $(OBJDIR)/floor0.o \ $(OBJDIR)/floor1.o \ $(OBJDIR)/framing.o \ $(OBJDIR)/info.o \ $(OBJDIR)/mapping0.o \ $(OBJDIR)/mdct.o \ $(OBJDIR)/registry.o \ $(OBJDIR)/res012.o \ $(OBJDIR)/sharedbook.o \ $(OBJDIR)/synthesis.o \ $(OBJDIR)/vorbisfile.o \ $(OBJDIR)/window.o OBJECTS += $(OBJDIR)/bitstream.o \ $(OBJDIR)/chd.o \ $(OBJDIR)/flac.o \ $(OBJDIR)/huffman.o \ $(OBJDIR)/bitmath.o \ $(OBJDIR)/bitreader.o \ $(OBJDIR)/cpu.o \ $(OBJDIR)/crc.o \ $(OBJDIR)/fixed.o \ $(OBJDIR)/float.o \ $(OBJDIR)/format.o \ $(OBJDIR)/lpc.o \ $(OBJDIR)/md5.o \ $(OBJDIR)/memory.o \ $(OBJDIR)/stream_decoder.o \ $(OBJDIR)/LzFind.o \ $(OBJDIR)/LzmaDec.o \ $(OBJDIR)/LzmaEnc.o \ ifeq ($(OS),Windows_NT) OBJECTS += $(OBJDIR)/icon.o endif all: $(NAME) $(NAME): $(OBJDIR) $(OBJECTS) $(CC) $(LDFLAGS) $(OBJECTS) $(LIBS) -o $@ $(OBJDIR) : @[ -d $@ ] || mkdir -p $@ $(OBJDIR)/%.o : $(SRCDIR)/%.c $(SRCDIR)/%.h $(CC) -c $(CFLAGS) $(INCLUDES) $(DEFINES) $< -o $@ $(OBJDIR)/%.o : $(SRCDIR)/sound/%.c $(SRCDIR)/sound/%.h $(CC) -c $(CFLAGS) $(INCLUDES) $(DEFINES) $< -o $@ $(OBJDIR)/%.o : $(SRCDIR)/input_hw/%.c $(SRCDIR)/input_hw/%.h $(CC) -c $(CFLAGS) $(INCLUDES) $(DEFINES) $< -o $@ $(OBJDIR)/%.o : $(SRCDIR)/cart_hw/%.c $(SRCDIR)/cart_hw/%.h $(CC) -c $(CFLAGS) $(INCLUDES) $(DEFINES) $< -o $@ $(OBJDIR)/%.o : $(SRCDIR)/cart_hw/svp/%.c $(CC) -c $(CFLAGS) $(INCLUDES) $(DEFINES) $< -o $@ $(OBJDIR)/%.o : $(SRCDIR)/cart_hw/svp/%.c $(SRCDIR)/cart_hw/svp/%.h $(CC) -c $(CFLAGS) $(INCLUDES) $(DEFINES) $< -o $@ $(OBJDIR)/%.o : $(SRCDIR)/cd_hw/%.c $(SRCDIR)/cd_hw/%.h $(CC) -c $(CFLAGS) $(INCLUDES) $(DEFINES) $< -o $@ $(OBJDIR)/%.o : $(SRCDIR)/z80/%.c $(SRCDIR)/z80/%.h $(CC) -c $(CFLAGS) $(INCLUDES) $(DEFINES) $< -o $@ $(OBJDIR)/%.o : $(SRCDIR)/m68k/%.c $(CC) -c $(CFLAGS) $(INCLUDES) $(DEFINES) $< -o $@ $(OBJDIR)/%.o : $(SRCDIR)/ntsc/%.c $(SRCDIR)/ntsc/%.h $(CC) -c $(CFLAGS) $(INCLUDES) $(DEFINES) $< -o $@ $(OBJDIR)/%.o : $(SRCDIR)/tremor/%.c $(SRCDIR)/tremor/%.h $(CC) -c $(CFLAGS) $(INCLUDES) $(DEFINES) $< -o $@ $(OBJDIR)/%.o : $(SRCDIR)/tremor/%.c $(CC) -c $(CFLAGS) $(INCLUDES) $(DEFINES) $< -o $@ $(OBJDIR)/%.o : $(CHDLIBDIR)/src/%.c $(CC) -c $(FLAGS) $(INCLUDES) -I$(CHDLIBDIR)/src -I$(CHDLIBDIR)/deps/libFLAC/include -I$(CHDLIBDIR)/deps/lzma -I$(CHDLIBDIR)/deps/zlib $< -o $@ $(OBJDIR)/%.o : $(CHDLIBDIR)/deps/libFLAC/%.c $(CC) -c $(FLAGS) -I$(CHDLIBDIR)/deps/libFLAC/include -DPACKAGE_VERSION=\"1.3.2\" -DFLAC_API_EXPORTS -DFLAC__HAS_OGG=0 -DHAVE_LROUND -DHAVE_STDINT_H -DHAVE_SYS_PARAM_H $< -o $@ $(OBJDIR)/%.o : $(CHDLIBDIR)/deps/lzma/%.c $(CC) -c $(FLAGS) -I$(CHDLIBDIR)/deps/lzma -D_7ZIP_ST $< -o $@ $(OBJDIR)/%.o : $(SRCDIR)/../sdl/%.c $(SRCDIR)/../sdl/%.h $(CC) -c $(CFLAGS) $(INCLUDES) $(DEFINES) $< -o $@ $(OBJDIR)/%.o : $(SRCDIR)/../sdl/sdl2/%.c $(SRCDIR)/../sdl/sdl2/%.h $(CC) -c $(CFLAGS) $(INCLUDES) $(DEFINES) $< -o $@ ifeq ($(OS),Windows_NT) $(OBJDIR)/icon.o : windres $(SRCDIR)/../sdl/icon.rc $@ endif pack : strip $(NAME) upx -9 $(NAME) clean: rm -f $(OBJECTS) $(NAME)