changeset 1818:243f3a7247f9

Include ROM DB in library binary for libretro target
author Mike Pavone <pavone@retrodev.com>
date Sun, 31 Mar 2019 12:37:28 -0700
parents 03895a4585c3
children 4fb9af0c65b6
files Makefile libblastem.c util.c
diffstat 3 files changed, 23 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Sun Mar 31 12:07:20 2019 -0700
+++ b/Makefile	Sun Mar 31 12:37:28 2019 -0700
@@ -1,3 +1,6 @@
+#disable built-in rules
+.SUFFIXES :
+
 ifndef OS
 OS:=$(shell uname -s)
 endif
@@ -203,7 +206,7 @@
 
 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 \
 	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
+	$(M68KOBJS) $(TRANSOBJS) $(AUDIOOBJS) saves.o jcart.o rom.db.o
 	
 ifdef NONUKLEAR
 CFLAGS+= -DDISABLE_NUKLEAR
@@ -325,6 +328,9 @@
 %.c : %.cpu cpu_dsl.py
 	./cpu_dsl.py -d goto $< > $@
 
+%.db.c : %.db
+	sed $< -e 's/"/\\"/g' -e 's/^\(.*\)$$/"\1\\n"/' -e'1s/^\(.*\)$$/const char $(shell echo $< | tr '.' '_')_data[] = \1/' -e '$$s/^\(.*\)$$/\1;/' > $@
+
 %.o : %.S
 	$(CC) -c -o $@ $<
 
--- a/libblastem.c	Sun Mar 31 12:07:20 2019 -0700
+++ b/libblastem.c	Sun Mar 31 12:37:28 2019 -0700
@@ -397,3 +397,15 @@
 void bindings_set_mouse_mode(uint8_t mode)
 {
 }
+
+extern const char rom_db_data[];
+char *read_bundled_file(char *name, uint32_t *sizeret)
+{
+	if (!strcmp(name, "rom.db")) {
+		*sizeret = strlen(rom_db_data);
+		char *ret = malloc(*sizeret+1);
+		memcpy(ret, rom_db_data, *sizeret + 1);
+		return ret;
+	}
+	return NULL;
+}
--- a/util.c	Sun Mar 31 12:07:20 2019 -0700
+++ b/util.c	Sun Mar 31 12:37:28 2019 -0700
@@ -857,6 +857,7 @@
 #ifdef __ANDROID__
 
 #include <SDL.h>
+#ifndef IS_LIB
 char *read_bundled_file(char *name, uint32_t *sizeret)
 {
 	SDL_RWops *rw = SDL_RWFromFile(name, "rb");
@@ -884,6 +885,7 @@
 	SDL_RWclose(rw);
 	return ret;
 }
+#endif
 
 char const *get_config_dir()
 {
@@ -897,6 +899,7 @@
 
 #else
 
+#ifndef IS_LIB
 char *read_bundled_file(char *name, uint32_t *sizeret)
 {
 #ifdef DATA_PATH
@@ -940,7 +943,7 @@
 	fclose(f);
 	return ret;
 }
-
+#endif
 
 #ifdef _WIN32
 char const *get_userdata_dir()