Blob Blame History Raw
diff --git a/configure.ac b/configure.ac
index 970a2141b..19c7cfdb6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -204,6 +204,15 @@ else
 	varshareddatadir="${vardatadir}"
 fi
 
+AC_ARG_WITH(gamedata_in_lib,
+	[AS_HELP_STRING([--gamedata-in-lib], [store the game data in the lib path.])])
+
+GAMEDATA_IN_LIB="false"
+if test "x$with_gamedata_in_lib" == "xyes"; then
+	GAMEDATA_IN_LIB="true"
+	AC_DEFINE(GAMEDATA_IN_LIB, 1, [Define to store the game data in the lib path.])
+fi
+AC_SUBST(GAMEDATA_IN_LIB)
 
 AC_SUBST([configdir])
 AC_SUBST([libdatadir])
@@ -518,6 +527,11 @@ echo "  config path:                            ${configdir}"
 echo "  lib path:                               ${libdatadir}"
 echo "  doc path:                               ${docdatadir}"
 echo "  var path:                               ${displayedvardatadir}"
+if test "x$with_gamedata_in_lib" == "xyes"; then
+	echo "  gamedata path:                          ${libdatadir}"
+else
+	echo "  gamedata path:                          ${configdir}"
+fi
 
 if test "x$wsetgid" = "xyes"; then
 	echo "  (as group ${SETEGID})"
diff --git a/lib/gamedata/Makefile b/lib/gamedata/Makefile
index 63cb9f6c7..0235393df 100644
--- a/lib/gamedata/Makefile
+++ b/lib/gamedata/Makefile
@@ -1,7 +1,7 @@
 MKPATH=../../mk/
 include $(MKPATH)buildsys.mk
 
-CONFIG = activation.txt artifact.txt body.txt blow_methods.txt \
+FILES = activation.txt artifact.txt body.txt blow_methods.txt \
  blow_effects.txt brand.txt chest_trap.txt class.txt constants.txt curse.txt \
  dungeon_profile.txt ego_item.txt flavor.txt hints.txt history.txt \
  monster.txt monster_base.txt monster_spell.txt names.txt object.txt \
@@ -10,4 +10,10 @@ CONFIG = activation.txt artifact.txt body.txt blow_methods.txt \
  room_template.txt shape.txt slay.txt store.txt summon.txt terrain.txt \
  trap.txt ui_entry.txt ui_entry_base.txt ui_entry_renderer.txt vault.txt \
  visuals.txt world.txt
+
+R1 = $(GAMEDATA_IN_LIB:true=$(FILES))
+DATA = $(R1:false=)
+R2 = $(GAMEDATA_IN_LIB:false=$(FILES))
+CONFIG = $(R2:true=)
+
 PACKAGE = gamedata
diff --git a/mk/extra.mk.in b/mk/extra.mk.in
index ea4061dd5..6d9980aaf 100644
--- a/mk/extra.mk.in
+++ b/mk/extra.mk.in
@@ -1,5 +1,6 @@
 LIB_CPPFLAGS = @LIB_CPPFLAGS@
 SETEGID = @SETEGID@
+GAMEDATA_IN_LIB = @GAMEDATA_IN_LIB@
 LIBDIR = ${libdir}
 libdatadir = @libdatadir@
 vardatadir = @vardatadir@
diff --git a/src/init.c b/src/init.c
index 0669c5988..1da3e45e5 100644
--- a/src/init.c
+++ b/src/init.c
@@ -336,7 +336,11 @@ void init_file_paths(const char *configpath, const char *libpath, const char *da
 }
 
 	/* Paths generally containing configuration data for Angband. */
+#ifdef GAMEDATA_IN_LIB
+	BUILD_DIRECTORY_PATH(ANGBAND_DIR_GAMEDATA, libpath, "gamedata");
+#else
 	BUILD_DIRECTORY_PATH(ANGBAND_DIR_GAMEDATA, configpath, "gamedata");
+#endif
 	BUILD_DIRECTORY_PATH(ANGBAND_DIR_CUSTOMIZE, configpath, "customize");
 	BUILD_DIRECTORY_PATH(ANGBAND_DIR_HELP, libpath, "help");
 	BUILD_DIRECTORY_PATH(ANGBAND_DIR_SCREENS, libpath, "screens");