diff --git a/sc2/Makeinfo b/sc2/Makeinfo index 1d3a853e3..ab537e113 100644 --- a/sc2/Makeinfo +++ b/sc2/Makeinfo @@ -13,14 +13,18 @@ uqm_CFLAGS="$uqm_CFLAGS -I src -I src/sc2code -I src/sc2code/libs" # Stuff to install under the directory for libraries, as specified during # config. -uqm_INSTALL_LIBS="content executable" -uqm_INSTALL_LIB_content_SRC=content -uqm_INSTALL_LIB_content_DEST=uqm/ -uqm_INSTALL_LIB_content_MODE="go+rX" +uqm_INSTALL_LIBS="executable" uqm_INSTALL_LIB_executable_SRC="$uqm_NAME" uqm_INSTALL_LIB_executable_DEST=uqm/uqm uqm_INSTALL_LIB_executable_MODE="0755" +# Stuff to install under the directory for system-independant data, as +# specified during config. +uqm_INSTALL_SHARED="content" +uqm_INSTALL_SHARED_content_SRC=content +uqm_INSTALL_SHARED_content_DEST=uqm/ +uqm_INSTALL_SHARED_content_MODE="go+rX" + # Stuff to install under the directory for binaries, as specified during # config. uqm_INSTALL_BINS=wrapper diff --git a/sc2/build.vars.in b/sc2/build.vars.in index 498f6ae70..0aa55f53b 100644 --- a/sc2/build.vars.in +++ b/sc2/build.vars.in @@ -23,6 +23,7 @@ uqm_LDFLAGS="@LDFLAGS@" DEBUG="@DEBUG@" uqm_INSTALL_BINDIR="@INSTALL_BINDIR@" uqm_INSTALL_LIBDIR="@INSTALL_LIBDIR@" +uqm_INSTALL_SHAREDIR="@INSTALL_SHAREDIR@" # Exported variables are available from all the Makeinfo files # Non-exported files only where build.vars is explicitely included. diff --git a/sc2/build/unix/build.config b/sc2/build/unix/build.config index 132deec83..fcde15fb8 100644 --- a/sc2/build/unix/build.config +++ b/sc2/build/unix/build.config @@ -157,11 +157,13 @@ CHOICE_ioformat_DEFAULT=stdio_zip #CHOICE_link_OPTION_dynamic_TITLE="Dynamically linked libraries" #CHOICE_link_DEFAULT=dynamic -MENU_install_path_ITEMS="install_prefix install_bindir install_libdir" +MENU_install_path_ITEMS="install_prefix install_bindir install_libdir \ + install_sharedir" MENU_install_path_TITLE="Installation paths" MENU_install_path_ITEM_install_prefix_TYPE=INPUT -MENU_install_path_ITEM_install_libdir_TYPE=INPUT MENU_install_path_ITEM_install_bindir_TYPE=INPUT +MENU_install_path_ITEM_install_libdir_TYPE=INPUT +MENU_install_path_ITEM_install_sharedir_TYPE=INPUT INPUT_install_prefix_DEFAULT="/usr/local/games" INPUT_install_prefix_TITLE="Installation prefix" @@ -173,23 +175,29 @@ INPUT_install_bindir_TITLE="Location for binaries" INPUT_install_bindir_VALIDATOR=validate_path INPUT_install_libdir_DEFAULT='$prefix/lib' -INPUT_install_libdir_TITLE="Location for libraries" +INPUT_install_libdir_TITLE="Location for non-sharable data" INPUT_install_libdir_VALIDATOR=validate_path +INPUT_install_sharedir_DEFAULT='$prefix/share' +INPUT_install_sharedir_TITLE="Location for sharable data" +INPUT_install_sharedir_VALIDATOR=validate_path + # Show the menu and let people set things do_menu MENU main config.state echo "Configuration complete." -# Set INSTALL_LIBDIR and INSTALL_BINDIR by to their set values, replacing -# '$prefix' to the prefix set. +# Set INSTALL_LIBDIR, INSTALL_BINDIR, and INSTALL_SHAREDIR to the specified +# values, replacing '$prefix' to the prefix set. +prefix="$INPUT_install_prefix_VALUE" \ + eval INSTALL_BINDIR="${INPUT_install_bindir_VALUE%/}/" prefix="$INPUT_install_prefix_VALUE" \ eval INSTALL_LIBDIR="${INPUT_install_libdir_VALUE%/}/" prefix="$INPUT_install_prefix_VALUE" \ - eval INSTALL_BINDIR="${INPUT_install_bindir_VALUE%/}/" + eval INSTALL_SHAREDIR="${INPUT_install_sharedir_VALUE%/}/" # Set the content dir -CONTENTDIR="${INSTALL_LIBDIR}uqm/content" +CONTENTDIR="${INSTALL_SHAREDIR}uqm/content" # Export the HAVE_ symbols to config.h, using config.h.in as template @@ -200,12 +208,13 @@ substitute_vars SUBSTITUTE_VARS SUBSTITUTE_FILES # Make build.vars from build.vars.in, substituting variables. SUBSTITUTE_VARS="CFLAGS LDFLAGS MAKE DEBUG SOUNDMODULE HAVE_OPENGL \ USE_ZIP_IO \ - INSTALL_LIBDIR INSTALL_BINDIR WINDRES" + INSTALL_LIBDIR INSTALL_BINDIR INSTALL_SHAREDIR WINDRES" SUBSTITUTE_FILES="build.vars" substitute_vars SUBSTITUTE_VARS SUBSTITUTE_FILES # Make 'uqm' shell script from build.vars.in, substituting variables. -SUBSTITUTE_VARS="INSTALL_LIBDIR INSTALL_BINDIR uqm_NAME" +SUBSTITUTE_VARS="INSTALL_LIBDIR INSTALL_BINDIR INSTALL_SHAREDIR uqm_NAME" SUBSTITUTE_FILES="build/unix/uqm" substitute_vars SUBSTITUTE_VARS SUBSTITUTE_FILES + diff --git a/sc2/build/unix/build_functions b/sc2/build/unix/build_functions index b9030ecfc..bd7ecc158 100644 --- a/sc2/build/unix/build_functions +++ b/sc2/build/unix/build_functions @@ -263,9 +263,10 @@ installsome() { # Install the program build_install() { - local BINS LIBS SRC SRCNAME DEST MODE OWNER BINDIR LIBDIR + local SRC DEST MODE OWNER - echo "Installing libraries..." 1>&2 + local LIB LIBS LIBDIR + echo "Installing system-dependant data..." 1>&2 eval LIBS="\${${BUILD_PROJECT}_INSTALL_LIBS}" eval LIBDIR="\${${BUILD_PROJECT}_INSTALL_LIBDIR%/}/" mkdirhier "$LIBDIR" 0755 @@ -277,6 +278,20 @@ build_install() { installsome "$SRC" "$DEST" "$MODE" "$OWNER" done + local SHARE SHARED SHAREDIR + echo "Installing system-independant data..." 1>&2 + eval SHARED="\${${BUILD_PROJECT}_INSTALL_SHARED}" + eval SHAREDIR="\${${BUILD_PROJECT}_INSTALL_SHAREDIR%/}/" + mkdirhier "$SHAREDIR" 0755 + for SHARE in $SHARED; do + eval SRC="\${${BUILD_PROJECT}_INSTALL_SHARED_${SHARE}_SRC%/}" + eval DEST="\$SHAREDIR\${${BUILD_PROJECT}_INSTALL_SHARED_${SHARE}_DEST}" + eval MODE="\${${BUILD_PROJECT}_INSTALL_SHARED_${SHARE}_MODE}" + eval OWNER="\${${BUILD_PROJECT}_INSTALL_SHARED_${SHARE}_OWNER}" + installsome "$SRC" "$DEST" "$MODE" "$OWNER" + done + + local BINS BINDIR echo "Installing binaries..." 1>&2 eval BINS="\${${BUILD_PROJECT}_INSTALL_BINS}" eval BINDIR="\${${BUILD_PROJECT}_INSTALL_BINDIR%/}/" @@ -290,3 +305,4 @@ build_install() { done } + diff --git a/sc2/build/unix/uqm.in b/sc2/build/unix/uqm.in index f382d9b62..3ae7ea20f 100755 --- a/sc2/build/unix/uqm.in +++ b/sc2/build/unix/uqm.in @@ -1,3 +1,4 @@ #!/bin/sh # Wrapper script for starting The Ur-Quan Masters -"@INSTALL_LIBDIR@uqm/uqm" "--contentdir=@INSTALL_LIBDIR@uqm/content" "$@" +"@INSTALL_LIBDIR@uqm/uqm" "--contentdir=@INSTALL_SHAREDIR@uqm/content" "$@" +