diff --git a/Makefile b/Makefile index e76bfe3deb..21b89b8b72 100644 --- a/Makefile +++ b/Makefile @@ -58,7 +58,11 @@ ifeq ($(findstring Haiku,$(OS)),) LIBS = -lm endif -DEFINES = -DHAVE_CONFIG_H -DHAVE_SCREENSHOTS +ifndef GLOBAL_CONFIG_DIR + GLOBAL_CONFIG_DIR = /etc +endif + +DEFINES = -DHAVE_CONFIG_H -DHAVE_SCREENSHOTS -DGLOBAL_CONFIG_DIR='"$(GLOBAL_CONFIG_DIR)"' ifeq ($(REENTRANT_TEST), 1) DEFINES += -Dmain=retroarch_main @@ -389,11 +393,11 @@ tools/input_common_joyconfig.o: input/input_common.c install: $(TARGET) mkdir -p $(DESTDIR)$(PREFIX)/bin 2>/dev/null || /bin/true - mkdir -p $(DESTDIR)/etc 2>/dev/null || /bin/true + mkdir -p $(DESTDIR)$(GLOBAL_CONFIG_DIR) 2>/dev/null || /bin/true mkdir -p $(DESTDIR)$(PREFIX)/share/man/man1 2>/dev/null || /bin/true mkdir -p $(DESTDIR)$(PREFIX)/share/pixmaps 2>/dev/null || /bin/true install -m755 $(TARGET) $(DESTDIR)$(PREFIX)/bin - install -m644 retroarch.cfg $(DESTDIR)/etc/retroarch.cfg + install -m644 retroarch.cfg $(DESTDIR)$(GLOBAL_CONFIG_DIR)/retroarch.cfg install -m644 docs/retroarch.1 $(DESTDIR)$(MAN_DIR) install -m644 docs/retroarch-joyconfig.1 $(DESTDIR)$(MAN_DIR) install -m755 retroarch-zip $(DESTDIR)$(PREFIX)/bin @@ -404,7 +408,7 @@ uninstall: rm -f $(DESTDIR)$(PREFIX)/bin/retroarch-joyconfig rm -f $(DESTDIR)$(PREFIX)/bin/retrolaunch rm -f $(DESTDIR)$(PREFIX)/bin/retroarch-zip - rm -f $(DESTDIR)/etc/retroarch.cfg + rm -f $(DESTDIR)$(GLOBAL_CONFIG_DIR)/retroarch.cfg rm -f $(DESTDIR)$(PREFIX)/share/man/man1/retroarch.1 rm -f $(DESTDIR)$(PREFIX)/share/man/man1/retroarch-joyconfig.1 rm -f $(DESTDIR)$(PREFIX)/share/pixmaps/retroarch.png diff --git a/qb/config.libs.sh b/qb/config.libs.sh index e2da00cc4e..57eb0bc74a 100644 --- a/qb/config.libs.sh +++ b/qb/config.libs.sh @@ -223,6 +223,7 @@ check_macro NEON __ARM_NEON__ add_define_make OS "$OS" # Creates config.mk and config.h. +add_define_make GLOBAL_CONFIG_DIR "$GLOBAL_CONFIG_DIR" VARS="RGUI ALSA OSS OSS_BSD OSS_LIB AL RSOUND ROAR JACK COREAUDIO PULSE SDL OPENGL GLES VG EGL KMS GBM DRM DYLIB GETOPT_LONG THREADS CG LIBXML2 SDL_IMAGE ZLIB DYNAMIC FFMPEG AVCODEC AVFORMAT AVUTIL SWSCALE FREETYPE XVIDEO X11 XEXT XF86VM XINERAMA NETPLAY NETWORK_CMD STDIN_CMD COMMAND SOCKET_LEGACY FBO STRL PYTHON FFMPEG_ALLOC_CONTEXT3 FFMPEG_AVCODEC_OPEN2 FFMPEG_AVIO_OPEN FFMPEG_AVFORMAT_WRITE_HEADER FFMPEG_AVFORMAT_NEW_STREAM FFMPEG_AVCODEC_ENCODE_AUDIO2 FFMPEG_AVCODEC_ENCODE_VIDEO2 BSV_MOVIE VIDEOCORE NEON" create_config_make config.mk $VARS create_config_header config.h $VARS diff --git a/qb/qb.libs.sh b/qb/qb.libs.sh index f79487c441..9b24e117be 100644 --- a/qb/qb.libs.sh +++ b/qb/qb.libs.sh @@ -6,6 +6,7 @@ cat /dev/null > "$MAKEFILE_DEFINES" > "$CONFIG_DEFINES" #cat /dev/null > "${MAKEFILE_DEFINES:=.MAKEFILE_DEFINES}" > "${CONFIG_DEFINES=.CONFIG_DEFINES}" [ "$PREFIX" ] || PREFIX="/usr/local" +[ "$CONFIG_DIR" ] || CONFIG_DIR="/etc" add_define_header() { echo "$1=$2" >> "$CONFIG_DEFINES";} diff --git a/qb/qb.params.sh b/qb/qb.params.sh index 68070343e6..2ef9233891 100644 --- a/qb/qb.params.sh +++ b/qb/qb.params.sh @@ -16,6 +16,7 @@ LDFLAGS: Linker flags General options: --prefix=\$path: Install path prefix +--global-config-dir=\$path: System wide config file prefix --host=HOST: cross-compile to build programs to run on HOST --help: Show this help @@ -51,6 +52,7 @@ parse_input() # Parse stuff :V while [ "$1" ]; do case "$1" in --prefix=*) PREFIX=${1##--prefix=};; + --global-config-dir=*) GLOBAL_CONFIG_DIR=${1##--global-config-dir=};; --host=*) CROSS_COMPILE=${1##--host=}-;; --enable-*) opt_exists "${1##--enable-}" diff --git a/settings.c b/settings.c index 1c9c33d1ef..de8ba5e81a 100644 --- a/settings.c +++ b/settings.c @@ -380,9 +380,12 @@ static config_file_t *open_default_config_file(void) // Try this as a last chance ... if (!conf) { - strlcpy(conf_path, "/etc/retroarch.cfg", sizeof(conf_path)); + #ifndef GLOBAL_CONFIG_DIR + #define GLOBAL_CONFIG_DIR "/etc" + #endif + fill_pathname_join(conf_path, GLOBAL_CONFIG_DIR, "retroarch.cfg", sizeof(conf_path)); + RARCH_LOG("Looking for config in: \"%s\".\n", conf_path); conf = config_file_new(conf_path); - RARCH_LOG("Looking for config in: \"/etc/retroarch.cfg\".\n"); } if (conf) diff --git a/tools/retrolaunch/retrolaunch b/tools/retrolaunch/retrolaunch new file mode 100755 index 0000000000..56b93b4462 Binary files /dev/null and b/tools/retrolaunch/retrolaunch differ