mirror of
https://github.com/moparisthebest/curl
synced 2024-12-22 08:08:50 -05:00
zz40-xc-ovr.m4: provide XC_CONFIGURE_PREAMBLE macro
This commit is contained in:
parent
045c734e16
commit
8c6c42a67f
384
m4/zz40-xc-ovr.m4
Normal file
384
m4/zz40-xc-ovr.m4
Normal file
@ -0,0 +1,384 @@
|
||||
#---------------------------------------------------------------------------
|
||||
#
|
||||
# zz40-xc-ovr.m4
|
||||
#
|
||||
# Copyright (c) 2013 Daniel Stenberg <daniel@haxx.se>
|
||||
#
|
||||
# Permission to use, copy, modify, and distribute this software for any
|
||||
# purpose with or without fee is hereby granted, provided that the above
|
||||
# copyright notice and this permission notice appear in all copies.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
#
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# serial 1
|
||||
|
||||
|
||||
dnl The funny name of this file is intentional in order to make it
|
||||
dnl sort alphabetically after any libtool, autoconf or automake
|
||||
dnl provided .m4 macro file that might get copied into this same
|
||||
dnl subdirectory. This allows that macro (re)definitions from this
|
||||
dnl file may override those provided in other files.
|
||||
|
||||
|
||||
dnl _XC_CONFIGURE_PREAMBLE_COMMENT
|
||||
dnl -------------------------------------------------
|
||||
dnl Private macro.
|
||||
|
||||
AC_DEFUN([_XC_CONFIGURE_PREAMBLE_COMMENT],
|
||||
[
|
||||
## ---------------------------- ##
|
||||
## XC_CONFIGURE_PREAMBLE rev: 1 ##
|
||||
## ---------------------------- ##
|
||||
])
|
||||
|
||||
|
||||
dnl _XC_CHECK_COMMAND_TEST
|
||||
dnl -------------------------------------------------
|
||||
dnl Private macro.
|
||||
dnl
|
||||
dnl Check that 'test' command is available, else abort.
|
||||
|
||||
AC_DEFUN([_XC_CHECK_COMMAND_TEST],
|
||||
[dnl
|
||||
#
|
||||
# Require that 'test' command is available.
|
||||
#
|
||||
|
||||
xc_tst_str='unknown'
|
||||
test -n "$xc_tst_str" && xc_tst_str='success'
|
||||
case "x$xc_tst_str" in
|
||||
xsuccess)
|
||||
:
|
||||
;;
|
||||
*)
|
||||
echo "configure: error: 'test' command not found. Can not continue."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
])
|
||||
|
||||
|
||||
dnl _XC_CHECK_PATH
|
||||
dnl -------------------------------------------------
|
||||
dnl Private macro.
|
||||
dnl
|
||||
dnl Check that PATH is set, otherwise abort.
|
||||
|
||||
AC_DEFUN([_XC_CHECK_PATH],
|
||||
[dnl
|
||||
AC_REQUIRE([_XC_CHECK_COMMAND_TEST])dnl
|
||||
#
|
||||
# Require that PATH variable is set.
|
||||
#
|
||||
|
||||
xc_tst_str='unknown'
|
||||
test -n "$PATH" && xc_tst_str='success'
|
||||
case "x$xc_tst_str" in
|
||||
xsuccess)
|
||||
:
|
||||
;;
|
||||
*)
|
||||
echo "configure: error: PATH variable not set. Can not continue."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
])
|
||||
|
||||
|
||||
dnl _XC_CHECK_COMMAND_EXPR
|
||||
dnl -------------------------------------------------
|
||||
dnl Private macro.
|
||||
dnl
|
||||
dnl Check that 'expr' command is available, else abort.
|
||||
|
||||
AC_DEFUN([_XC_CHECK_COMMAND_EXPR],
|
||||
[dnl
|
||||
#
|
||||
# Require that 'expr' command is available.
|
||||
#
|
||||
|
||||
xc_tst_str='unknown'
|
||||
xc_tst_str=`expr "$xc_tst_str" : '.*'`
|
||||
case "x$xc_tst_str" in
|
||||
x7)
|
||||
:
|
||||
;;
|
||||
*)
|
||||
echo "configure: error: 'expr' command not found. Can not continue."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
])
|
||||
|
||||
|
||||
dnl _XC_CHECK_UTILITY_SED
|
||||
dnl -------------------------------------------------
|
||||
dnl Private macro.
|
||||
dnl
|
||||
dnl Check that 'sed' utility is found within PATH. This
|
||||
dnl 'sed' is required in order to allow configure script
|
||||
dnl bootstrapping itself. No fancy testing for a proper
|
||||
dnl 'sed' this early please, that should be done later.
|
||||
|
||||
AC_DEFUN([_XC_CHECK_UTILITY_SED],
|
||||
[dnl
|
||||
#
|
||||
# Require that 'sed' utility is found within PATH.
|
||||
#
|
||||
|
||||
xc_tst_str='unknown'
|
||||
xc_tst_str=`echo "$xc_tst_str" | sed -e 's:unknown:success:'`
|
||||
case "x$xc_tst_str" in
|
||||
xsuccess)
|
||||
:
|
||||
;;
|
||||
*)
|
||||
echo "configure: error: 'sed' utility not in PATH. Can not continue."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
])
|
||||
|
||||
|
||||
dnl _XC_CHECK_UTILITY_GREP
|
||||
dnl -------------------------------------------------
|
||||
dnl Private macro.
|
||||
dnl
|
||||
dnl Check that 'grep' utility is found within PATH. This
|
||||
dnl 'grep' is required in order to allow configure script
|
||||
dnl bootstrapping itself. No fancy testing for a proper
|
||||
dnl 'grep' this early please, that should be done later.
|
||||
|
||||
AC_DEFUN([_XC_CHECK_UTILITY_GREP],
|
||||
[dnl
|
||||
#
|
||||
# Require that 'grep' utility is found within PATH.
|
||||
#
|
||||
|
||||
xc_tst_str='unknown'
|
||||
echo "$xc_tst_str" | grep 'unknown' >/dev/null 2>&1 && xc_tst_str='success'
|
||||
case "x$xc_tst_str" in
|
||||
xsuccess)
|
||||
:
|
||||
;;
|
||||
*)
|
||||
echo "configure: error: 'grep' utility not in PATH. Can not continue."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
])
|
||||
|
||||
|
||||
dnl _XC_CHECK_PATH_SEPARATOR
|
||||
dnl -------------------------------------------------
|
||||
dnl Private macro.
|
||||
dnl
|
||||
dnl Check and compute the path separator for us. This
|
||||
dnl path separator is the symbol used to diferentiate
|
||||
dnl or separate paths inside the PATH environment var.
|
||||
dnl
|
||||
dnl User provided PATH_SEPARATOR always overrides the
|
||||
dnl auto-detected one.
|
||||
|
||||
AC_DEFUN([_XC_CHECK_PATH_SEPARATOR],
|
||||
[dnl
|
||||
AC_REQUIRE([_XC_CHECK_COMMAND_TEST])dnl
|
||||
AC_REQUIRE([_XC_CHECK_PATH])dnl
|
||||
AC_REQUIRE([_XC_CHECK_COMMAND_EXPR])dnl
|
||||
#
|
||||
# Auto-detect and set PATH_SEPARATOR, unless it is already set.
|
||||
#
|
||||
|
||||
# Directory count in PATH when using a colon separator.
|
||||
xc_tst_dirs_col=0
|
||||
xc_tst_prev_IFS=$IFS; IFS=':'
|
||||
for xc_tst_dir in $PATH; do
|
||||
IFS=$xc_tst_prev_IFS
|
||||
test -d "$xc_tst_dir" && xc_tst_dirs_col=`expr $xc_tst_dirs_col + 1`
|
||||
done
|
||||
IFS=$xc_tst_prev_IFS
|
||||
|
||||
# Directory count in PATH when using a semicolon separator.
|
||||
xc_tst_dirs_sem=0
|
||||
xc_tst_prev_IFS=$IFS; IFS=';'
|
||||
for xc_tst_dir in $PATH; do
|
||||
IFS=$xc_tst_prev_IFS
|
||||
test -d "$xc_tst_dir" && xc_tst_dirs_sem=`expr $xc_tst_dirs_sem + 1`
|
||||
done
|
||||
IFS=$xc_tst_prev_IFS
|
||||
|
||||
if test $xc_tst_dirs_sem -eq $xc_tst_dirs_col; then
|
||||
# When both counting methods give the same result we do not want to
|
||||
# chose one over the other, and consider auto-detection not possible.
|
||||
if test -z "$PATH_SEPARATOR"; then
|
||||
# Stop dead until user provides PATH_SEPARATOR definition.
|
||||
echo "configure: error: PATH_SEPARATOR variable not set. Can not continue."
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
# Separator with the greater directory count is the auto-detected one.
|
||||
if test $xc_tst_dirs_sem -gt $xc_tst_dirs_col; then
|
||||
xc_tst_auto_separator=';'
|
||||
else
|
||||
xc_tst_auto_separator=':'
|
||||
fi
|
||||
if test -z "$PATH_SEPARATOR"; then
|
||||
# Simply use the auto-detected one when not already set.
|
||||
PATH_SEPARATOR="$xc_tst_auto_separator"
|
||||
elif "x$PATH_SEPARATOR" != "x$xc_tst_auto_separator"; then
|
||||
echo "configure: warning: PATH_SEPARATOR does not match auto-detected one."
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([PATH_SEPARATOR])dnl
|
||||
])
|
||||
|
||||
|
||||
dnl _XC_CONFIGURE_PREAMBLE
|
||||
dnl -------------------------------------------------
|
||||
dnl Private macro.
|
||||
|
||||
AC_DEFUN([_XC_CONFIGURE_PREAMBLE],
|
||||
[dnl
|
||||
AC_REQUIRE([_XC_CONFIGURE_PREAMBLE_COMMENT])dnl
|
||||
AC_REQUIRE([_XC_CHECK_COMMAND_TEST])dnl
|
||||
AC_REQUIRE([_XC_CHECK_PATH])dnl
|
||||
AC_REQUIRE([_XC_CHECK_COMMAND_EXPR])dnl
|
||||
AC_REQUIRE([_XC_CHECK_UTILITY_SED])dnl
|
||||
AC_REQUIRE([_XC_CHECK_UTILITY_GREP])dnl
|
||||
AC_REQUIRE([_XC_CHECK_PATH_SEPARATOR])dnl
|
||||
echo "checking whether some basic commands and utilities are available... yes"
|
||||
])
|
||||
|
||||
|
||||
dnl XC_CONFIGURE_PREAMBLE
|
||||
dnl -------------------------------------------------
|
||||
dnl Public macro.
|
||||
dnl
|
||||
dnl This macro macro emits shell code which does some
|
||||
dnl very basic checks related with the availability
|
||||
dnl of some commands and utilities needed to allow
|
||||
dnl configure script bootstrapping itself when using
|
||||
dnl these to figure out other settings. Also performs
|
||||
dnl PATH_SEPARATOR auto-detection and sets its value
|
||||
dnl unless it is already set.
|
||||
dnl
|
||||
dnl These basic checks are intended to be placed and
|
||||
dnl executed as early as possible in the resulting
|
||||
dnl configure script, and as such these must be pure
|
||||
dnl shell code.
|
||||
dnl
|
||||
dnl Although this is a public macro it should not be
|
||||
dnl used directly from configure.ac given that in this
|
||||
dnl way its expansion is not placed early enough in
|
||||
dnl generated configure script, it simply makes little
|
||||
dnl sense to perform these basic checks once the script
|
||||
dnl is into more serious business.
|
||||
dnl
|
||||
dnl The proper way of making this macro expand early
|
||||
dnl enough in configure script is using XC_OVR_ZZ40
|
||||
dnl in configure.ac which takes care of everything.
|
||||
|
||||
AC_DEFUN([XC_CONFIGURE_PREAMBLE],
|
||||
[dnl
|
||||
AC_PREREQ([2.50])dnl
|
||||
AC_BEFORE([$0],[_XC_CONFIGURE_PREAMBLE])dnl
|
||||
AC_BEFORE([$0],[_XC_CHECK_COMMAND_TEST])dnl
|
||||
AC_BEFORE([$0],[_XC_CHECK_PATH])dnl
|
||||
AC_BEFORE([$0],[_XC_CHECK_COMMAND_EXPR])dnl
|
||||
AC_BEFORE([$0],[_XC_CHECK_UTILITY_SED])dnl
|
||||
AC_BEFORE([$0],[_XC_CHECK_UTILITY_GREP])dnl
|
||||
AC_BEFORE([$0],[_XC_CHECK_PATH_SEPARATOR])dnl
|
||||
AC_REQUIRE([_XC_CONFIGURE_PREAMBLE])dnl
|
||||
m4_define([$0],[])dnl
|
||||
])
|
||||
|
||||
|
||||
dnl Override autoconf's PATH_SEPARATOR check
|
||||
dnl -------------------------------------------------
|
||||
dnl This is done to ensure that the same check is
|
||||
dnl used across different autoconf versions and to
|
||||
dnl allow us to expand XC_CONFIGURE_PREAMBLE macro
|
||||
dnl early enough in the generated configure script.
|
||||
|
||||
dnl
|
||||
dnl Override when using autoconf 2.53 and newer.
|
||||
dnl
|
||||
|
||||
m4_defun([_AS_PATH_SEPARATOR_PREPARE],
|
||||
[dnl
|
||||
AC_REQUIRE([XC_CONFIGURE_PREAMBLE])dnl
|
||||
m4_define([$0],[])dnl
|
||||
])
|
||||
|
||||
dnl
|
||||
dnl Override when using autoconf 2.50 to 2.52
|
||||
dnl
|
||||
|
||||
m4_defun([_AC_INIT_PREPARE_FS_SEPARATORS],
|
||||
[dnl
|
||||
AC_REQUIRE([XC_CONFIGURE_PREAMBLE])dnl
|
||||
ac_path_separator=$PATH_SEPARATOR
|
||||
m4_define([$0],[])dnl
|
||||
])
|
||||
|
||||
dnl
|
||||
dnl Override when using libtool 1.4.2
|
||||
dnl
|
||||
|
||||
m4_defun([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR],
|
||||
[dnl
|
||||
AC_REQUIRE([XC_CONFIGURE_PREAMBLE])dnl
|
||||
lt_cv_sys_path_separator=$PATH_SEPARATOR
|
||||
m4_define([$0],[])dnl
|
||||
])
|
||||
|
||||
|
||||
dnl XC_OVR_ZZ40
|
||||
dnl -------------------------------------------------
|
||||
dnl Placing a call to this macro in configure.ac will
|
||||
dnl make macros in this file visible to other macros
|
||||
dnl used for same configure script, overriding those
|
||||
dnl provided elsewhere.
|
||||
dnl
|
||||
dnl This is the proper and intended way in which macro
|
||||
dnl XC_CONFIGURE_PREAMBLE will expand early enough in
|
||||
dnl generated configure script.
|
||||
|
||||
AC_DEFUN([XC_OVR_ZZ40],
|
||||
[dnl
|
||||
AC_BEFORE([$0],[AC_CHECK_TOOL])dnl
|
||||
AC_BEFORE([$0],[AC_CHECK_PROG])dnl
|
||||
AC_BEFORE([$0],[AC_CHECK_TOOLS])dnl
|
||||
AC_BEFORE([$0],[AC_CHECK_PROGS])dnl
|
||||
dnl
|
||||
AC_BEFORE([$0],[AC_PATH_TOOL])dnl
|
||||
AC_BEFORE([$0],[AC_PATH_PROG])dnl
|
||||
AC_BEFORE([$0],[AC_PATH_PROGS])dnl
|
||||
dnl
|
||||
AC_BEFORE([$0],[AC_PROG_SED])dnl
|
||||
AC_BEFORE([$0],[AC_PROG_GREP])dnl
|
||||
AC_BEFORE([$0],[AC_PROG_LN_S])dnl
|
||||
AC_BEFORE([$0],[AC_PROG_INSTALL])dnl
|
||||
AC_BEFORE([$0],[AC_PROG_MAKE_SET])dnl
|
||||
AC_BEFORE([$0],[AC_PROG_LIBTOOL])dnl
|
||||
dnl
|
||||
AC_BEFORE([$0],[LT_INIT])dnl
|
||||
AC_BEFORE([$0],[AM_INIT_AUTOMAKE])dnl
|
||||
AC_BEFORE([$0],[AC_LIBTOOL_WIN32_DLL])dnl
|
||||
dnl
|
||||
AC_BEFORE([$0],[AC_CONFIG_SRCDIR])dnl
|
||||
AC_BEFORE([$0],[AC_CONFIG_HEADERS])dnl
|
||||
AC_BEFORE([$0],[AC_CONFIG_MACRO_DIR])dnl
|
||||
AC_BEFORE([$0],[AC_CONFIG_MACRO_DIRS])dnl
|
||||
dnl
|
||||
m4_define([$0],[])dnl
|
||||
])
|
||||
|
Loading…
Reference in New Issue
Block a user