diff options
-rw-r--r-- | config.lib | 32 | ||||
-rw-r--r-- | src/fileio.cpp | 7 |
2 files changed, 38 insertions, 1 deletions
diff --git a/config.lib b/config.lib index afc492a4c..3b13c2f77 100644 --- a/config.lib +++ b/config.lib @@ -30,6 +30,7 @@ set_default() { data_dir="share/games/openttd" icon_dir="share/pixmaps" personal_dir="1" + shared_dir="1" install_dir="/" enable_debug="0" enable_desync_debug="0" @@ -86,6 +87,7 @@ set_default() { data_dir icon_dir personal_dir + shared_dir install_dir enable_debug enable_desync_debug @@ -193,6 +195,10 @@ detect_params() { --personal-dir=*) personal_dir="$optarg";; --without-personal-dir) personal_dir="";; + --shared-dir) prevp_p="shared-dir";; + --shared-dir=*) shared_dir="$optarg";; + --without-shared-dir) shared_dir="";; + --install-dir) prevp_p="install-dir";; --install-dir=*) install_dir="$optarg";; @@ -814,6 +820,15 @@ check_params() { fi fi + if [ "$shared_dir" = "1" ]; then + # we are using default values + if [ "$os" = "OSX" ]; then + shared_dir='/Library/Application\\ Support/OpenTTD' + else + shared_dir="" + fi + fi + if [ -n "$personal_dir" ] then log 1 "personal home directory... $personal_dir" @@ -821,6 +836,13 @@ check_params() { log 1 "personal home directory... none" fi + if [ -n "$shared_dir" ] + then + log 1 "shared data directory... $shared_dir" + else + log 1 "shared data directory... none" + fi + if [ -n "$install_dir" ] then log 1 "installation directory... $install_dir" @@ -1181,6 +1203,10 @@ make_cflags_and_ldflags() { CFLAGS="$CFLAGS -DWITH_PERSONAL_DIR -DPERSONAL_DIR=\\\\\"$personal_dir\\\\\"" fi + if [ -n "$shared_dir" ]; then + CFLAGS="$CFLAGS -DWITH_SHARED_DIR -DSHARED_DIR=\\\\\"$shared_dir\\\\\"" + fi + CFLAGS="$CFLAGS -DGLOBAL_DATA_DIR=\\\\\"$prefix_dir/$data_dir\\\\\"" log 1 "using CFLAGS... $CFLAGS $CC_CFLAGS" @@ -2151,6 +2177,7 @@ make_sed() { s#!!DATA_DIR!!#$prefix_dir/$data_dir#g; s#!!ICON_DIR!!#$prefix_dir/$icon_dir#g; s#!!PERSONAL_DIR!!#$personal_dir#g; + s#!!SHARED_DIR!!#$shared_dir#g; s#!!INSTALL_DIR!!#$install_dir#g; s#!!STRGEN!!#$STRGEN#g; s#!!ENDIAN_CHECK!!#$ENDIAN_CHECK#g; @@ -2291,7 +2318,10 @@ showhelp() { echo " [share/games/openttd]" echo " --icon-dir=dir location of icons. Will be prefixed" echo " with the prefix-dir [share/pixmaps]" - echo " --personal-dir=dir location of the personal directory [.openttd]" + echo " --personal-dir=dir location of the personal directory" + echo " [os-dependent default]" + echo " --shared-dir=dir location of shared data files" + echo " [os-dependent default]" echo " --install-dir=dir specifies the root to install to." echo " Useful to install into jails [/]" echo "" diff --git a/src/fileio.cpp b/src/fileio.cpp index 12ee60868..34b3cf835 100644 --- a/src/fileio.cpp +++ b/src/fileio.cpp @@ -646,7 +646,14 @@ void DetermineBasePaths(const char *exe) _searchpaths[SP_PERSONAL_DIR] = strdup(tmp); #endif + +#if defined(WITH_SHARED_DIR) + snprintf(tmp, MAX_PATH, "%s", SHARED_DIR); + AppendPathSeparator(tmp, MAX_PATH); + _searchpaths[SP_SHARED_DIR] = strdup(tmp); +#else _searchpaths[SP_SHARED_DIR] = NULL; +#endif #if defined(__MORPHOS__) || defined(__AMIGA__) _searchpaths[SP_WORKING_DIR] = NULL; |