2012-08-03 23:47:28 -07:00
|
|
|
dnl This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
dnl License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
dnl file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
|
|
|
|
dnl For use in AC_SUBST replacement
|
|
|
|
define([MOZ_DIVERSION_SUBST], 11)
|
|
|
|
|
|
|
|
dnl Replace AC_SUBST to store values in a format suitable for python.
|
|
|
|
dnl The necessary comma after the tuple can't be put here because it
|
|
|
|
dnl can mess around with things like:
|
|
|
|
dnl AC_SOMETHING(foo,AC_SUBST(),bar)
|
|
|
|
define([AC_SUBST],
|
|
|
|
[ifdef([AC_SUBST_$1], ,
|
|
|
|
[define([AC_SUBST_$1], )dnl
|
|
|
|
AC_DIVERT_PUSH(MOZ_DIVERSION_SUBST)dnl
|
2012-08-28 23:55:58 -07:00
|
|
|
(''' $1 ''', r''' [$]$1 ''')
|
2012-08-03 23:47:28 -07:00
|
|
|
AC_DIVERT_POP()dnl
|
|
|
|
])])
|
|
|
|
|
|
|
|
dnl Wrap AC_DEFINE to store values in a format suitable for python.
|
|
|
|
dnl autoconf's AC_DEFINE still needs to be used to fill confdefs.h,
|
|
|
|
dnl which is #included during some compile checks.
|
|
|
|
dnl The necessary comma after the tuple can't be put here because it
|
|
|
|
dnl can mess around with things like:
|
|
|
|
dnl AC_SOMETHING(foo,AC_DEFINE(),bar)
|
|
|
|
define([_MOZ_AC_DEFINE], defn([AC_DEFINE]))
|
|
|
|
define([AC_DEFINE],
|
|
|
|
[cat >> confdefs.pytmp <<\EOF
|
2012-08-28 23:55:58 -07:00
|
|
|
(''' $1 ''', ifelse($#, 2, [r''' $2 '''], $#, 3, [r''' $2 '''], ' 1 '))
|
2012-08-03 23:47:28 -07:00
|
|
|
EOF
|
|
|
|
ifelse($#, 2, _MOZ_AC_DEFINE([$1], [$2]), $#, 3, _MOZ_AC_DEFINE([$1], [$2], [$3]),_MOZ_AC_DEFINE([$1]))dnl
|
|
|
|
])
|
|
|
|
|
|
|
|
dnl Wrap AC_DEFINE_UNQUOTED to store values in a format suitable for
|
|
|
|
dnl python.
|
|
|
|
define([_MOZ_AC_DEFINE_UNQUOTED], defn([AC_DEFINE_UNQUOTED]))
|
|
|
|
define([AC_DEFINE_UNQUOTED],
|
|
|
|
[cat >> confdefs.pytmp <<EOF
|
2012-08-28 23:55:58 -07:00
|
|
|
(''' $1 ''', ifelse($#, 2, [r''' $2 '''], $#, 3, [r''' $2 '''], ' 1 '))
|
2012-08-03 23:47:28 -07:00
|
|
|
EOF
|
|
|
|
ifelse($#, 2, _MOZ_AC_DEFINE_UNQUOTED($1, $2), $#, 3, _MOZ_AC_DEFINE_UNQUOTED($1, $2, $3),_MOZ_AC_DEFINE_UNQUOTED($1))dnl
|
|
|
|
])
|
|
|
|
|
|
|
|
dnl Replace AC_OUTPUT to create and call a python config.status
|
|
|
|
define([AC_OUTPUT],
|
|
|
|
[dnl Top source directory in Windows format (as opposed to msys format).
|
|
|
|
WIN_TOP_SRC=
|
2012-08-05 03:42:59 -07:00
|
|
|
encoding=utf-8
|
2012-08-03 23:47:28 -07:00
|
|
|
case "$host_os" in
|
|
|
|
mingw*)
|
|
|
|
WIN_TOP_SRC=`cd $srcdir; pwd -W`
|
2012-08-05 03:42:59 -07:00
|
|
|
encoding=mbcs
|
2012-08-03 23:47:28 -07:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
AC_SUBST(WIN_TOP_SRC)
|
|
|
|
|
|
|
|
dnl Used in all Makefile.in files
|
|
|
|
top_srcdir=$srcdir
|
|
|
|
AC_SUBST(top_srcdir)
|
|
|
|
|
|
|
|
dnl Picked from autoconf 2.13
|
|
|
|
trap '' 1 2 15
|
|
|
|
AC_CACHE_SAVE
|
|
|
|
|
|
|
|
test "x$prefix" = xNONE && prefix=$ac_default_prefix
|
|
|
|
# Let make expand exec_prefix.
|
|
|
|
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
|
|
|
|
|
|
|
|
trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
|
|
|
|
: ${CONFIG_STATUS=./config.status}
|
|
|
|
|
|
|
|
dnl We're going to need [ ] for python syntax.
|
|
|
|
changequote(<<<, >>>)dnl
|
|
|
|
echo creating $CONFIG_STATUS
|
|
|
|
|
2012-08-18 02:17:29 -07:00
|
|
|
extra_python_path=${COMM_BUILD:+"'mozilla', "}
|
|
|
|
|
2012-08-03 23:47:28 -07:00
|
|
|
cat > $CONFIG_STATUS <<EOF
|
|
|
|
#!${PYTHON}
|
2012-08-05 03:42:59 -07:00
|
|
|
# coding=$encoding
|
2012-08-03 23:47:28 -07:00
|
|
|
|
2012-08-28 23:55:58 -07:00
|
|
|
import os
|
2012-08-03 23:47:28 -07:00
|
|
|
dnl topsrcdir is the top source directory in native form, as opposed to a
|
|
|
|
dnl form suitable for make.
|
|
|
|
topsrcdir = '''${WIN_TOP_SRC:-$srcdir}'''
|
|
|
|
if not os.path.isabs(topsrcdir):
|
2013-02-21 10:55:55 -08:00
|
|
|
rel = os.path.join(os.path.dirname(<<<__file__>>>), topsrcdir)
|
|
|
|
topsrcdir = os.path.normpath(os.path.abspath(rel))
|
2012-08-03 23:47:28 -07:00
|
|
|
|
2013-05-20 09:45:54 -07:00
|
|
|
topobjdir = os.path.abspath(os.path.dirname(<<<__file__>>>))
|
2012-08-03 23:47:28 -07:00
|
|
|
|
|
|
|
dnl All defines and substs are stored with an additional space at the beginning
|
|
|
|
dnl and at the end of the string, to avoid any problem with values starting or
|
|
|
|
dnl ending with quotes.
|
2012-08-28 23:55:58 -07:00
|
|
|
defines = [(name[1:-1], value[1:-1]) for name, value in [
|
2012-08-03 23:47:28 -07:00
|
|
|
EOF
|
|
|
|
|
|
|
|
dnl confdefs.pytmp contains AC_DEFINEs, in the expected format, but
|
|
|
|
dnl lacks the final comma (see above).
|
|
|
|
sed 's/$/,/' confdefs.pytmp >> $CONFIG_STATUS
|
|
|
|
rm confdefs.pytmp confdefs.h
|
|
|
|
|
|
|
|
cat >> $CONFIG_STATUS <<\EOF
|
2012-08-28 23:55:58 -07:00
|
|
|
] ]
|
2012-08-03 23:47:28 -07:00
|
|
|
|
2012-08-28 23:55:58 -07:00
|
|
|
substs = [(name[1:-1], value[1:-1]) for name, value in [
|
2012-08-03 23:47:28 -07:00
|
|
|
EOF
|
|
|
|
|
|
|
|
dnl The MOZ_DIVERSION_SUBST output diversion contains AC_SUBSTs, in the
|
|
|
|
dnl expected format, but lacks the final comma (see above).
|
|
|
|
sed 's/$/,/' >> $CONFIG_STATUS <<EOF
|
|
|
|
undivert(MOZ_DIVERSION_SUBST)dnl
|
|
|
|
EOF
|
|
|
|
|
2013-02-26 11:45:52 -08:00
|
|
|
dnl Add in the output from the subconfigure script
|
|
|
|
for ac_subst_arg in $_subconfigure_ac_subst_args; do
|
|
|
|
variable='$'$ac_subst_arg
|
|
|
|
echo " (''' $ac_subst_arg ''', r''' `eval echo $variable` ''')," >> $CONFIG_STATUS
|
|
|
|
done
|
|
|
|
|
2012-08-03 23:47:28 -07:00
|
|
|
cat >> $CONFIG_STATUS <<\EOF
|
2012-08-28 23:55:58 -07:00
|
|
|
] ]
|
2012-08-03 23:47:28 -07:00
|
|
|
|
|
|
|
dnl List of files to apply AC_SUBSTs to. This is the list of files given
|
|
|
|
dnl as an argument to AC_OUTPUT ($1)
|
2012-08-28 23:55:58 -07:00
|
|
|
files = [
|
2012-08-03 23:47:28 -07:00
|
|
|
EOF
|
|
|
|
|
|
|
|
for out in $1; do
|
2012-08-28 23:55:58 -07:00
|
|
|
echo " '$out'," >> $CONFIG_STATUS
|
2012-08-03 23:47:28 -07:00
|
|
|
done
|
|
|
|
|
|
|
|
cat >> $CONFIG_STATUS <<\EOF
|
2012-08-28 23:55:58 -07:00
|
|
|
]
|
2012-08-03 23:47:28 -07:00
|
|
|
|
|
|
|
dnl List of header files to apply AC_DEFINEs to. This is stored in the
|
|
|
|
dnl AC_LIST_HEADER m4 macro by AC_CONFIG_HEADER.
|
2012-08-28 23:55:58 -07:00
|
|
|
headers = [
|
2012-08-03 23:47:28 -07:00
|
|
|
EOF
|
|
|
|
|
|
|
|
ifdef(<<<AC_LIST_HEADER>>>, <<<
|
|
|
|
HEADERS="AC_LIST_HEADER"
|
|
|
|
for header in $HEADERS; do
|
2012-08-28 23:55:58 -07:00
|
|
|
echo " '$header'," >> $CONFIG_STATUS
|
2012-08-03 23:47:28 -07:00
|
|
|
done
|
|
|
|
>>>)dnl
|
|
|
|
|
|
|
|
cat >> $CONFIG_STATUS <<\EOF
|
2012-08-28 23:55:58 -07:00
|
|
|
]
|
2012-08-03 23:47:28 -07:00
|
|
|
|
|
|
|
dnl List of AC_DEFINEs that aren't to be exposed in ALLDEFINES
|
2012-08-28 23:55:58 -07:00
|
|
|
non_global_defines = [
|
2012-08-03 23:47:28 -07:00
|
|
|
EOF
|
|
|
|
|
|
|
|
if test -n "$_NON_GLOBAL_ACDEFINES"; then
|
|
|
|
for var in $_NON_GLOBAL_ACDEFINES; do
|
2012-08-28 23:55:58 -07:00
|
|
|
echo " '$var'," >> $CONFIG_STATUS
|
2012-08-03 23:47:28 -07:00
|
|
|
done
|
|
|
|
fi
|
|
|
|
|
2012-08-28 23:55:58 -07:00
|
|
|
cat >> $CONFIG_STATUS <<EOF
|
|
|
|
]
|
|
|
|
|
|
|
|
__all__ = ['topobjdir', 'topsrcdir', 'defines', 'non_global_defines', 'substs', 'files', 'headers']
|
2012-08-03 23:47:28 -07:00
|
|
|
|
|
|
|
dnl Do the actual work
|
2012-08-28 23:55:58 -07:00
|
|
|
if __name__ == '__main__':
|
|
|
|
args = dict([(name, globals()[name]) for name in __all__])
|
|
|
|
import sys
|
|
|
|
dnl Don't rely on virtualenv here. Standalone js doesn't use it.
|
|
|
|
sys.path.append(os.path.join(topsrcdir, ${extra_python_path}'build'))
|
|
|
|
from ConfigStatus import config_status
|
|
|
|
config_status(**args)
|
2012-08-03 23:47:28 -07:00
|
|
|
EOF
|
|
|
|
changequote([, ])
|
|
|
|
chmod +x $CONFIG_STATUS
|
|
|
|
rm -fr confdefs* $ac_clean_files
|
|
|
|
dnl Execute config.status, unless --no-create was passed to configure.
|
2013-08-15 07:45:08 -07:00
|
|
|
if test "$no_create" != yes && ! ${PYTHON} $CONFIG_STATUS; then
|
|
|
|
trap '' EXIT
|
|
|
|
exit 1
|
|
|
|
fi
|
2012-08-03 23:47:28 -07:00
|
|
|
])
|
2013-09-19 18:44:11 -07:00
|
|
|
|
|
|
|
AC_SUBST([MOZ_PSEUDO_DERECURSE])
|