#! /bin/sh # # ***** BEGIN LICENSE BLOCK ***** # Version: MPL 1.1/GPL 2.0/LGPL 2.1 # # The contents of this file are subject to the Mozilla Public License Version # 1.1 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # http://www.mozilla.org/MPL/ # # Software distributed under the License is distributed on an "AS IS" basis, # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License # for the specific language governing rights and limitations under the # License. # # The Original Code is mozilla.org code. # # The Initial Developer of the Original Code is # Netscape Communications Corporation. # Portions created by the Initial Developer are Copyright (C) 1999 # the Initial Developer. All Rights Reserved. # # Contributor(s): # Stephen Lamm # # Alternatively, the contents of this file may be used under the terms of # either of the GNU General Public License Version 2 or later (the "GPL"), # or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), # in which case the provisions of the GPL or the LGPL are applicable instead # of those above. If you wish to allow use of your version of this file only # under the terms of either the GPL or the LGPL, and not to allow others to # use your version of this file under the terms of the MPL, indicate your # decision by deleting the provisions above and replace them with the notice # and other provisions required by the GPL or the LGPL. If you do not delete # the provisions above, a recipient may use your version of this file under # the terms of any one of the MPL, the GPL or the LGPL. # # ***** END LICENSE BLOCK ***** # mozconfig2configure - Loads options from .mozconfig onto configure's # command-line. See find-mozconfig.sh 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. _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 $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 MOZCONFIG=`$_AUTOCONF_TOOLS_DIR/mozconfig-find $topsrcdir` if [ "$MOZCONFIG" ]; then . "$MOZCONFIG" fi if [ "$mozconfig_ac_options" ]; then ac_echo_options 1>&2 fi eval "set -- $mozconfig_ac_options $ac_options"