changeset 1822:8500bd987dda

Make libretro target successfully build for Windows and possibly Mac
author Mike Pavone <pavone@retrodev.com>
date Wed, 03 Apr 2019 00:14:09 -0700
parents 70a1304b432b
children 16f19774820b
files Makefile libblastem.c romdb.c
diffstat 3 files changed, 25 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Sun Mar 31 14:53:29 2019 -0700
+++ b/Makefile	Wed Apr 03 00:14:09 2019 -0700
@@ -25,10 +25,19 @@
 FONT:=nuklear_ui/font_win.o
 NET:=net_win.o
 EXE:=.exe
+SO:=dll
+CPU:=i686
+ifeq ($(CPU),i686)
 CC:=i686-w64-mingw32-gcc-win32
-CFLAGS:=-std=gnu99 -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration -I"$(SDL2_PREFIX)/include/SDL2" -I"$(GLEW_PREFIX)/include" -DGLEW_STATIC
-LDFLAGS:= $(GLEW32S_LIB) -L"$(SDL2_PREFIX)/lib" -lm -lmingw32 -lSDL2main -lSDL2 -lws2_32 -lopengl32 -lglu32 -mwindows
-CPU:=i686
+else
+CC:=x86_64-w64-mingw32-gcc-win32
+endif
+CFLAGS:=-std=gnu99 -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration
+LDFLAGS:=-lm -lmingw32 -lws2_32 -mwindows
+ifneq ($(MAKECMDGOALS),libblastem.dll)
+CFLAGS+= -I"$(SDL2_PREFIX)/include/SDL2" -I"$(GLEW_PREFIX)/include" -DGLEW_STATIC
+LDFLAGS+= $(GLEW32S_LIB) -L"$(SDL2_PREFIX)/lib" -lSDL2main -lSDL2 -lopengl32 -lglu32
+endif
 LIBZOBJS=$(BUNDLED_LIBZ)
 
 else
@@ -44,7 +53,9 @@
 ifeq ($(OS),Darwin)
 LIBS=sdl2 glew
 FONT:=nuklear_ui/font_mac.o
+SO:=dylib
 else
+SO:=so
 
 ifdef USE_FBDEV
 LIBS=alsa
@@ -98,7 +109,7 @@
 endif #Darwin
 
 else
-ifeq ($(MAKECMDGOALS),libblastem.so)
+ifeq ($(MAKECMDGOALS),libblastem.$(SO))
 LDFLAGS:=-lm
 else
 CFLAGS:=$(shell pkg-config --cflags-only-I $(LIBS)) $(CFLAGS)
@@ -204,7 +215,7 @@
 	realtec.o i2c.o nor.o sega_mapper.o multi_game.o megawifi.o $(NET) serialize.o $(TERMINAL) $(CONFIGOBJS) gst.o \
 	$(M68KOBJS) $(TRANSOBJS) $(AUDIOOBJS) saves.o zip.o bindings.o jcart.o
 
-LIBOBJS=libblastem.o system.o genesis.o debug.o gdb_remote.o vdp.o io.o romdb.o hash.o menu.o xband.o realtec.o \
+LIBOBJS=libblastem.o system.o genesis.o debug.o gdb_remote.o vdp.o io.o romdb.o hash.o xband.o realtec.o \
 	i2c.o nor.o sega_mapper.o multi_game.o megawifi.o $(NET) serialize.o $(TERMINAL) $(CONFIGOBJS) gst.o \
 	$(M68KOBJS) $(TRANSOBJS) $(AUDIOOBJS) saves.o jcart.o rom.db.o
 	
@@ -250,13 +261,13 @@
 ALL+= termhelper
 endif
 
-ifeq ($(MAKECMDGOALS),libblastem.so)
+ifeq ($(MAKECMDGOALS),libblastem.$(SO))
 CFLAGS+= -fpic -DIS_LIB
 endif
 
 all : $(ALL)
 
-libblastem.so : $(LIBOBJS)
+libblastem.$(SO) : $(LIBOBJS)
 	$(CC) -shared -o $@ $^ $(LDFLAGS)
 
 blastem$(EXE) : $(MAINOBJS)
--- a/libblastem.c	Sun Mar 31 14:53:29 2019 -0700
+++ b/libblastem.c	Wed Apr 03 00:14:09 2019 -0700
@@ -284,6 +284,11 @@
 	video_standard = std;
 }
 
+int render_fullscreen(void)
+{
+	return 1;
+}
+
 void process_events()
 {
 	static int16_t prev_state[2][RETRO_DEVICE_ID_JOYPAD_L2];
--- a/romdb.c	Sun Mar 31 14:53:29 2019 -0700
+++ b/romdb.c	Wed Apr 03 00:14:09 2019 -0700
@@ -811,12 +811,14 @@
 		map->mask = 0xFF;
 		map->write_16 = (write_16_fun)write_bank_reg_w;
 		map->write_8 = (write_8_fun)write_bank_reg_b;
+#ifndef IS_LIB
 	} else if (!strcmp(dtype, "MENU")) {
 		//fake hardware for supporting menu
 		map->buffer = NULL;
 		map->mask = 0xFF;
 		map->write_16 = menu_write_w;
 		map->read_16 = menu_read_w;
+#endif
 	} else if (!strcmp(dtype, "fixed")) {
 		uint16_t *value =  malloc(2);
 		map->buffer = value;