mirror of
https://github.com/curl/curl.git
synced 2026-01-18 17:21:26 +01:00
- drop x-hacks for curl internal variables and certain autotools ones that do not hold custom values. - make x-hacks consistently use `"x$var" = "xval"` style. - add a few x-hacks for input/external variables that may hold custom values. - prefer `-z` and `-n` to test empty/non-empty. This also makes some x-hacks unnecessary. - optimized negated test `-z` and `-n` options. - prefer `&&` and `||` over `-a` and `-o`. For better POSIX compatibility: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html - quote variables passed to `test`, where missing. - quote string literals in comparisons. - fix some indentation, whitespace. Note that a few `case` statements also use the x-hack, which looks unnecessary. This patch does not change them. Verified by comparing feature detection results with a reference CI run from before this patch (PR #19922). Refs: https://www.shellcheck.net/wiki/SC2268 https://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html https://www.vidarholen.net/contents/blog/?p=1035 https://mywiki.wooledge.org/BashPitfalls#A.5B_.24foo_.3D_.22bar.22_.5D Closes #18189
245 lines
6.9 KiB
Plaintext
245 lines
6.9 KiB
Plaintext
#---------------------------------------------------------------------------
|
|
#
|
|
# xc-val-flgs.m4
|
|
#
|
|
# Copyright (C) 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.
|
|
#
|
|
# SPDX-License-Identifier: ISC
|
|
#
|
|
#---------------------------------------------------------------------------
|
|
|
|
# serial 1
|
|
|
|
|
|
dnl _XC_CHECK_VAR_LIBS
|
|
dnl -------------------------------------------------
|
|
dnl Private macro.
|
|
|
|
AC_DEFUN([_XC_CHECK_VAR_LIBS], [
|
|
xc_bad_var_libs=no
|
|
for xc_word in $LIBS; do
|
|
case "$xc_word" in
|
|
-l* | --library=*)
|
|
:
|
|
;;
|
|
*)
|
|
xc_bad_var_libs=yes
|
|
;;
|
|
esac
|
|
done
|
|
if test "$xc_bad_var_libs" = "yes"; then
|
|
AC_MSG_NOTICE([using LIBS: $LIBS])
|
|
AC_MSG_NOTICE([LIBS note: LIBS should only be used to specify libraries (-lname).])
|
|
fi
|
|
])
|
|
|
|
|
|
dnl _XC_CHECK_VAR_LDFLAGS
|
|
dnl -------------------------------------------------
|
|
dnl Private macro.
|
|
|
|
AC_DEFUN([_XC_CHECK_VAR_LDFLAGS], [
|
|
xc_bad_var_ldflags=no
|
|
for xc_word in $LDFLAGS; do
|
|
case "$xc_word" in
|
|
-D*)
|
|
xc_bad_var_ldflags=yes
|
|
;;
|
|
-U*)
|
|
xc_bad_var_ldflags=yes
|
|
;;
|
|
-I*)
|
|
xc_bad_var_ldflags=yes
|
|
;;
|
|
-l* | --library=*)
|
|
xc_bad_var_ldflags=yes
|
|
;;
|
|
esac
|
|
done
|
|
if test "$xc_bad_var_ldflags" = "yes"; then
|
|
AC_MSG_NOTICE([using LDFLAGS: $LDFLAGS])
|
|
xc_bad_var_msg="LDFLAGS note: LDFLAGS should only be used to specify linker flags, not"
|
|
for xc_word in $LDFLAGS; do
|
|
case "$xc_word" in
|
|
-D*)
|
|
AC_MSG_NOTICE([$xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word])
|
|
;;
|
|
-U*)
|
|
AC_MSG_NOTICE([$xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word])
|
|
;;
|
|
-I*)
|
|
AC_MSG_NOTICE([$xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word])
|
|
;;
|
|
-l* | --library=*)
|
|
AC_MSG_NOTICE([$xc_bad_var_msg libraries. Use LIBS for: $xc_word])
|
|
;;
|
|
esac
|
|
done
|
|
fi
|
|
])
|
|
|
|
|
|
dnl _XC_CHECK_VAR_CPPFLAGS
|
|
dnl -------------------------------------------------
|
|
dnl Private macro.
|
|
|
|
AC_DEFUN([_XC_CHECK_VAR_CPPFLAGS], [
|
|
xc_bad_var_cppflags=no
|
|
for xc_word in $CPPFLAGS; do
|
|
case "$xc_word" in
|
|
-rpath*)
|
|
xc_bad_var_cppflags=yes
|
|
;;
|
|
-L* | --library-path=*)
|
|
xc_bad_var_cppflags=yes
|
|
;;
|
|
-l* | --library=*)
|
|
xc_bad_var_cppflags=yes
|
|
;;
|
|
esac
|
|
done
|
|
if test "$xc_bad_var_cppflags" = "yes"; then
|
|
AC_MSG_NOTICE([using CPPFLAGS: $CPPFLAGS])
|
|
xc_bad_var_msg="CPPFLAGS note: CPPFLAGS should only be used to specify C preprocessor flags, not"
|
|
for xc_word in $CPPFLAGS; do
|
|
case "$xc_word" in
|
|
-rpath*)
|
|
AC_MSG_NOTICE([$xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word])
|
|
;;
|
|
-L* | --library-path=*)
|
|
AC_MSG_NOTICE([$xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word])
|
|
;;
|
|
-l* | --library=*)
|
|
AC_MSG_NOTICE([$xc_bad_var_msg libraries. Use LIBS for: $xc_word])
|
|
;;
|
|
esac
|
|
done
|
|
fi
|
|
])
|
|
|
|
|
|
dnl _XC_CHECK_VAR_CFLAGS
|
|
dnl -------------------------------------------------
|
|
dnl Private macro.
|
|
|
|
AC_DEFUN([_XC_CHECK_VAR_CFLAGS], [
|
|
xc_bad_var_cflags=no
|
|
for xc_word in $CFLAGS; do
|
|
case "$xc_word" in
|
|
-D*)
|
|
xc_bad_var_cflags=yes
|
|
;;
|
|
-U*)
|
|
xc_bad_var_cflags=yes
|
|
;;
|
|
-I*)
|
|
xc_bad_var_cflags=yes
|
|
;;
|
|
-rpath*)
|
|
xc_bad_var_cflags=yes
|
|
;;
|
|
-L* | --library-path=*)
|
|
xc_bad_var_cflags=yes
|
|
;;
|
|
-l* | --library=*)
|
|
xc_bad_var_cflags=yes
|
|
;;
|
|
esac
|
|
done
|
|
if test "$xc_bad_var_cflags" = "yes"; then
|
|
AC_MSG_NOTICE([using CFLAGS: $CFLAGS])
|
|
xc_bad_var_msg="CFLAGS note: CFLAGS should only be used to specify C compiler flags, not"
|
|
for xc_word in $CFLAGS; do
|
|
case "$xc_word" in
|
|
-D*)
|
|
AC_MSG_NOTICE([$xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word])
|
|
;;
|
|
-U*)
|
|
AC_MSG_NOTICE([$xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word])
|
|
;;
|
|
-I*)
|
|
AC_MSG_NOTICE([$xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word])
|
|
;;
|
|
-rpath*)
|
|
AC_MSG_NOTICE([$xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word])
|
|
;;
|
|
-L* | --library-path=*)
|
|
AC_MSG_NOTICE([$xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word])
|
|
;;
|
|
-l* | --library=*)
|
|
AC_MSG_NOTICE([$xc_bad_var_msg libraries. Use LIBS for: $xc_word])
|
|
;;
|
|
esac
|
|
done
|
|
fi
|
|
])
|
|
|
|
|
|
dnl XC_CHECK_USER_FLAGS
|
|
dnl -------------------------------------------------
|
|
dnl Public macro.
|
|
dnl
|
|
dnl Performs some sanity checks for LIBS, LDFLAGS,
|
|
dnl CPPFLAGS and CFLAGS values that the user might
|
|
dnl have set. When checks fails, user is noticed
|
|
dnl about errors detected in all of them and script
|
|
dnl execution is halted.
|
|
dnl
|
|
dnl Intended to be used early in configure script.
|
|
|
|
AC_DEFUN([XC_CHECK_USER_FLAGS], [
|
|
AC_PREREQ([2.50])dnl
|
|
AC_BEFORE([$0],[XC_CHECK_PROG_CC])dnl
|
|
dnl check order below matters
|
|
_XC_CHECK_VAR_LIBS
|
|
_XC_CHECK_VAR_LDFLAGS
|
|
_XC_CHECK_VAR_CPPFLAGS
|
|
_XC_CHECK_VAR_CFLAGS
|
|
if test "$xc_bad_var_libs" = "yes" ||
|
|
test "$xc_bad_var_cflags" = "yes" ||
|
|
test "$xc_bad_var_ldflags" = "yes" ||
|
|
test "$xc_bad_var_cppflags" = "yes"; then
|
|
AC_MSG_ERROR([Can not continue. Fix errors mentioned immediately above this line.])
|
|
fi
|
|
])
|
|
|
|
|
|
dnl XC_CHECK_BUILD_FLAGS
|
|
dnl -------------------------------------------------
|
|
dnl Public macro.
|
|
dnl
|
|
dnl Performs some sanity checks for LIBS, LDFLAGS,
|
|
dnl CPPFLAGS and CFLAGS values that the configure
|
|
dnl script might have set. When checks fails, user
|
|
dnl is noticed about errors detected in all of them
|
|
dnl but script continues execution.
|
|
dnl
|
|
dnl Intended to be used late in configure script.
|
|
|
|
AC_DEFUN([XC_CHECK_BUILD_FLAGS], [
|
|
AC_PREREQ([2.50])dnl
|
|
dnl check order below matters
|
|
_XC_CHECK_VAR_LIBS
|
|
_XC_CHECK_VAR_LDFLAGS
|
|
_XC_CHECK_VAR_CPPFLAGS
|
|
_XC_CHECK_VAR_CFLAGS
|
|
if test "$xc_bad_var_libs" = "yes" ||
|
|
test "$xc_bad_var_cflags" = "yes" ||
|
|
test "$xc_bad_var_ldflags" = "yes" ||
|
|
test "$xc_bad_var_cppflags" = "yes"; then
|
|
AC_MSG_WARN([Continuing even with errors mentioned immediately above this line.])
|
|
fi
|
|
])
|