#! /bin/sh # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # mozconfig2configure - Loads options from .mozconfig onto configure's # command-line. See mozconfig-find for how the config file is # found # # The options from .mozconfig are inserted into the command-line # before the real command-line options. This way the real options # will override any .mozconfig options. # # .mozconfig is a shell script. To add an option to configure's # command-line use the pre-defined function, ac_add_options, # # ac_add_options [ ... ] # # For example, # # ac_add_options --with-pthreads --enable-debug # # ac_add_options can be called multiple times in .mozconfig. # Each call adds more options to configure's command-line. # Note: $_AUTOCONF_TOOLS_DIR must be defined in the script that includes this. ac_add_options() { for _opt do # Escape shell characters, space, tab, dollar, quote, backslash, parentheses. _opt=`echo $_opt | sed -e 's/\([\ \ \$\"\\\(\)]\)/\\\\\1/g;s/@\([^@]*\)@/\$\1/g;'` _opt=`echo $_opt | sed -e 's/@\([^@]*\)@/\$(\1)/g'` # Avoid adding duplicates case "$ac_options" in # Note that all options in $ac_options are enclosed in quotes, # so there will always be a last character to match [^-A-Za-z0-9_] *"\"$_opt[^-A-Za-z0-9_]"* ) ;; * ) mozconfig_ac_options="$mozconfig_ac_options $_opt" ;; esac done } ac_add_app_options() { APP=$1 shift; if [ "$APP" = "$MOZ_BUILD_APP" ]; then ac_add_options "$*"; fi } mk_add_options() { # These options are for client.mk # configure can safely ignore them. : } ac_echo_options() { echo "Adding configure options from $FOUND_MOZCONFIG:" eval "set -- $mozconfig_ac_options" for _opt do echo " $_opt" done } # Main #-------------------------------------------------- topsrcdir=`dirname $0` ac_options= mozconfig_ac_options= # Save the real command-line options for _opt do # Escape shell characters, space, tab, dollar, quote, backslash. _opt=`echo $_opt | sed -e 's/\([\ \ \$\"\\]\)/\\\\\1/g;'` ac_options="$ac_options \"$_opt\"" done # If FOUND_MOZCONFIG isn't set, look for it and make sure the script doesn't error out isfoundset=${FOUND_MOZCONFIG+yes} if [ -z $isfoundset ]; then FOUND_MOZCONFIG=`$_AUTOCONF_TOOLS_DIR/mozconfig-find $topsrcdir` if [ $? -ne 0 ]; then echo "Fix above errors before continuing." 1>&2 exit 1 fi fi if [ "$FOUND_MOZCONFIG" ]; then . "$FOUND_MOZCONFIG" fi export FOUND_MOZCONFIG if [ "$mozconfig_ac_options" ]; then ac_echo_options 1>&2 fi eval "set -- $mozconfig_ac_options $ac_options"