113498266Sopenharmony_ci#---------------------------------------------------------------------------
213498266Sopenharmony_ci#
313498266Sopenharmony_ci# xc-val-flgs.m4
413498266Sopenharmony_ci#
513498266Sopenharmony_ci# Copyright (C), Daniel Stenberg <daniel@haxx.se>
613498266Sopenharmony_ci#
713498266Sopenharmony_ci# Permission to use, copy, modify, and distribute this software for any
813498266Sopenharmony_ci# purpose with or without fee is hereby granted, provided that the above
913498266Sopenharmony_ci# copyright notice and this permission notice appear in all copies.
1013498266Sopenharmony_ci#
1113498266Sopenharmony_ci# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1213498266Sopenharmony_ci# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1313498266Sopenharmony_ci# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1413498266Sopenharmony_ci# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1513498266Sopenharmony_ci# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1613498266Sopenharmony_ci# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1713498266Sopenharmony_ci# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1813498266Sopenharmony_ci#
1913498266Sopenharmony_ci# SPDX-License-Identifier: ISC
2013498266Sopenharmony_ci#
2113498266Sopenharmony_ci#---------------------------------------------------------------------------
2213498266Sopenharmony_ci
2313498266Sopenharmony_ci# serial 1
2413498266Sopenharmony_ci
2513498266Sopenharmony_ci
2613498266Sopenharmony_cidnl _XC_CHECK_VAR_LIBS
2713498266Sopenharmony_cidnl -------------------------------------------------
2813498266Sopenharmony_cidnl Private macro.
2913498266Sopenharmony_ci
3013498266Sopenharmony_ciAC_DEFUN([_XC_CHECK_VAR_LIBS], [
3113498266Sopenharmony_ci  xc_bad_var_libs=no
3213498266Sopenharmony_ci  for xc_word in $LIBS; do
3313498266Sopenharmony_ci    case "$xc_word" in
3413498266Sopenharmony_ci      -l* | --library=*)
3513498266Sopenharmony_ci        :
3613498266Sopenharmony_ci        ;;
3713498266Sopenharmony_ci      *)
3813498266Sopenharmony_ci        xc_bad_var_libs=yes
3913498266Sopenharmony_ci        ;;
4013498266Sopenharmony_ci    esac
4113498266Sopenharmony_ci  done
4213498266Sopenharmony_ci  if test $xc_bad_var_libs = yes; then
4313498266Sopenharmony_ci    AC_MSG_NOTICE([using LIBS: $LIBS])
4413498266Sopenharmony_ci    AC_MSG_NOTICE([LIBS note: LIBS should only be used to specify libraries (-lname).])
4513498266Sopenharmony_ci  fi
4613498266Sopenharmony_ci])
4713498266Sopenharmony_ci
4813498266Sopenharmony_ci
4913498266Sopenharmony_cidnl _XC_CHECK_VAR_LDFLAGS
5013498266Sopenharmony_cidnl -------------------------------------------------
5113498266Sopenharmony_cidnl Private macro.
5213498266Sopenharmony_ci
5313498266Sopenharmony_ciAC_DEFUN([_XC_CHECK_VAR_LDFLAGS], [
5413498266Sopenharmony_ci  xc_bad_var_ldflags=no
5513498266Sopenharmony_ci  for xc_word in $LDFLAGS; do
5613498266Sopenharmony_ci    case "$xc_word" in
5713498266Sopenharmony_ci      -D*)
5813498266Sopenharmony_ci        xc_bad_var_ldflags=yes
5913498266Sopenharmony_ci        ;;
6013498266Sopenharmony_ci      -U*)
6113498266Sopenharmony_ci        xc_bad_var_ldflags=yes
6213498266Sopenharmony_ci        ;;
6313498266Sopenharmony_ci      -I*)
6413498266Sopenharmony_ci        xc_bad_var_ldflags=yes
6513498266Sopenharmony_ci        ;;
6613498266Sopenharmony_ci      -l* | --library=*)
6713498266Sopenharmony_ci        xc_bad_var_ldflags=yes
6813498266Sopenharmony_ci        ;;
6913498266Sopenharmony_ci    esac
7013498266Sopenharmony_ci  done
7113498266Sopenharmony_ci  if test $xc_bad_var_ldflags = yes; then
7213498266Sopenharmony_ci    AC_MSG_NOTICE([using LDFLAGS: $LDFLAGS])
7313498266Sopenharmony_ci    xc_bad_var_msg="LDFLAGS note: LDFLAGS should only be used to specify linker flags, not"
7413498266Sopenharmony_ci    for xc_word in $LDFLAGS; do
7513498266Sopenharmony_ci      case "$xc_word" in
7613498266Sopenharmony_ci        -D*)
7713498266Sopenharmony_ci          AC_MSG_NOTICE([$xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word])
7813498266Sopenharmony_ci          ;;
7913498266Sopenharmony_ci        -U*)
8013498266Sopenharmony_ci          AC_MSG_NOTICE([$xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word])
8113498266Sopenharmony_ci          ;;
8213498266Sopenharmony_ci        -I*)
8313498266Sopenharmony_ci          AC_MSG_NOTICE([$xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word])
8413498266Sopenharmony_ci          ;;
8513498266Sopenharmony_ci        -l* | --library=*)
8613498266Sopenharmony_ci          AC_MSG_NOTICE([$xc_bad_var_msg libraries. Use LIBS for: $xc_word])
8713498266Sopenharmony_ci          ;;
8813498266Sopenharmony_ci      esac
8913498266Sopenharmony_ci    done
9013498266Sopenharmony_ci  fi
9113498266Sopenharmony_ci])
9213498266Sopenharmony_ci
9313498266Sopenharmony_ci
9413498266Sopenharmony_cidnl _XC_CHECK_VAR_CPPFLAGS
9513498266Sopenharmony_cidnl -------------------------------------------------
9613498266Sopenharmony_cidnl Private macro.
9713498266Sopenharmony_ci
9813498266Sopenharmony_ciAC_DEFUN([_XC_CHECK_VAR_CPPFLAGS], [
9913498266Sopenharmony_ci  xc_bad_var_cppflags=no
10013498266Sopenharmony_ci  for xc_word in $CPPFLAGS; do
10113498266Sopenharmony_ci    case "$xc_word" in
10213498266Sopenharmony_ci      -rpath*)
10313498266Sopenharmony_ci        xc_bad_var_cppflags=yes
10413498266Sopenharmony_ci        ;;
10513498266Sopenharmony_ci      -L* | --library-path=*)
10613498266Sopenharmony_ci        xc_bad_var_cppflags=yes
10713498266Sopenharmony_ci        ;;
10813498266Sopenharmony_ci      -l* | --library=*)
10913498266Sopenharmony_ci        xc_bad_var_cppflags=yes
11013498266Sopenharmony_ci        ;;
11113498266Sopenharmony_ci    esac
11213498266Sopenharmony_ci  done
11313498266Sopenharmony_ci  if test $xc_bad_var_cppflags = yes; then
11413498266Sopenharmony_ci    AC_MSG_NOTICE([using CPPFLAGS: $CPPFLAGS])
11513498266Sopenharmony_ci    xc_bad_var_msg="CPPFLAGS note: CPPFLAGS should only be used to specify C preprocessor flags, not"
11613498266Sopenharmony_ci    for xc_word in $CPPFLAGS; do
11713498266Sopenharmony_ci      case "$xc_word" in
11813498266Sopenharmony_ci        -rpath*)
11913498266Sopenharmony_ci          AC_MSG_NOTICE([$xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word])
12013498266Sopenharmony_ci          ;;
12113498266Sopenharmony_ci        -L* | --library-path=*)
12213498266Sopenharmony_ci          AC_MSG_NOTICE([$xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word])
12313498266Sopenharmony_ci          ;;
12413498266Sopenharmony_ci        -l* | --library=*)
12513498266Sopenharmony_ci          AC_MSG_NOTICE([$xc_bad_var_msg libraries. Use LIBS for: $xc_word])
12613498266Sopenharmony_ci          ;;
12713498266Sopenharmony_ci      esac
12813498266Sopenharmony_ci    done
12913498266Sopenharmony_ci  fi
13013498266Sopenharmony_ci])
13113498266Sopenharmony_ci
13213498266Sopenharmony_ci
13313498266Sopenharmony_cidnl _XC_CHECK_VAR_CFLAGS
13413498266Sopenharmony_cidnl -------------------------------------------------
13513498266Sopenharmony_cidnl Private macro.
13613498266Sopenharmony_ci
13713498266Sopenharmony_ciAC_DEFUN([_XC_CHECK_VAR_CFLAGS], [
13813498266Sopenharmony_ci  xc_bad_var_cflags=no
13913498266Sopenharmony_ci  for xc_word in $CFLAGS; do
14013498266Sopenharmony_ci    case "$xc_word" in
14113498266Sopenharmony_ci      -D*)
14213498266Sopenharmony_ci        xc_bad_var_cflags=yes
14313498266Sopenharmony_ci        ;;
14413498266Sopenharmony_ci      -U*)
14513498266Sopenharmony_ci        xc_bad_var_cflags=yes
14613498266Sopenharmony_ci        ;;
14713498266Sopenharmony_ci      -I*)
14813498266Sopenharmony_ci        xc_bad_var_cflags=yes
14913498266Sopenharmony_ci        ;;
15013498266Sopenharmony_ci      -rpath*)
15113498266Sopenharmony_ci        xc_bad_var_cflags=yes
15213498266Sopenharmony_ci        ;;
15313498266Sopenharmony_ci      -L* | --library-path=*)
15413498266Sopenharmony_ci        xc_bad_var_cflags=yes
15513498266Sopenharmony_ci        ;;
15613498266Sopenharmony_ci      -l* | --library=*)
15713498266Sopenharmony_ci        xc_bad_var_cflags=yes
15813498266Sopenharmony_ci        ;;
15913498266Sopenharmony_ci    esac
16013498266Sopenharmony_ci  done
16113498266Sopenharmony_ci  if test $xc_bad_var_cflags = yes; then
16213498266Sopenharmony_ci    AC_MSG_NOTICE([using CFLAGS: $CFLAGS])
16313498266Sopenharmony_ci    xc_bad_var_msg="CFLAGS note: CFLAGS should only be used to specify C compiler flags, not"
16413498266Sopenharmony_ci    for xc_word in $CFLAGS; do
16513498266Sopenharmony_ci      case "$xc_word" in
16613498266Sopenharmony_ci        -D*)
16713498266Sopenharmony_ci          AC_MSG_NOTICE([$xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word])
16813498266Sopenharmony_ci          ;;
16913498266Sopenharmony_ci        -U*)
17013498266Sopenharmony_ci          AC_MSG_NOTICE([$xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word])
17113498266Sopenharmony_ci          ;;
17213498266Sopenharmony_ci        -I*)
17313498266Sopenharmony_ci          AC_MSG_NOTICE([$xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word])
17413498266Sopenharmony_ci          ;;
17513498266Sopenharmony_ci        -rpath*)
17613498266Sopenharmony_ci          AC_MSG_NOTICE([$xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word])
17713498266Sopenharmony_ci          ;;
17813498266Sopenharmony_ci        -L* | --library-path=*)
17913498266Sopenharmony_ci          AC_MSG_NOTICE([$xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word])
18013498266Sopenharmony_ci          ;;
18113498266Sopenharmony_ci        -l* | --library=*)
18213498266Sopenharmony_ci          AC_MSG_NOTICE([$xc_bad_var_msg libraries. Use LIBS for: $xc_word])
18313498266Sopenharmony_ci          ;;
18413498266Sopenharmony_ci      esac
18513498266Sopenharmony_ci    done
18613498266Sopenharmony_ci  fi
18713498266Sopenharmony_ci])
18813498266Sopenharmony_ci
18913498266Sopenharmony_ci
19013498266Sopenharmony_cidnl XC_CHECK_USER_FLAGS
19113498266Sopenharmony_cidnl -------------------------------------------------
19213498266Sopenharmony_cidnl Public macro.
19313498266Sopenharmony_cidnl
19413498266Sopenharmony_cidnl Performs some sanity checks for LIBS, LDFLAGS,
19513498266Sopenharmony_cidnl CPPFLAGS and CFLAGS values that the user might
19613498266Sopenharmony_cidnl have set. When checks fails, user is noticed
19713498266Sopenharmony_cidnl about errors detected in all of them and script
19813498266Sopenharmony_cidnl execution is halted.
19913498266Sopenharmony_cidnl
20013498266Sopenharmony_cidnl Intended to be used early in configure script.
20113498266Sopenharmony_ci
20213498266Sopenharmony_ciAC_DEFUN([XC_CHECK_USER_FLAGS], [
20313498266Sopenharmony_ci  AC_PREREQ([2.50])dnl
20413498266Sopenharmony_ci  AC_BEFORE([$0],[XC_CHECK_PROG_CC])dnl
20513498266Sopenharmony_ci  dnl check order below matters
20613498266Sopenharmony_ci  _XC_CHECK_VAR_LIBS
20713498266Sopenharmony_ci  _XC_CHECK_VAR_LDFLAGS
20813498266Sopenharmony_ci  _XC_CHECK_VAR_CPPFLAGS
20913498266Sopenharmony_ci  _XC_CHECK_VAR_CFLAGS
21013498266Sopenharmony_ci  if test $xc_bad_var_libs = yes ||
21113498266Sopenharmony_ci     test $xc_bad_var_cflags = yes ||
21213498266Sopenharmony_ci     test $xc_bad_var_ldflags = yes ||
21313498266Sopenharmony_ci     test $xc_bad_var_cppflags = yes; then
21413498266Sopenharmony_ci     AC_MSG_ERROR([Can not continue. Fix errors mentioned immediately above this line.])
21513498266Sopenharmony_ci  fi
21613498266Sopenharmony_ci])
21713498266Sopenharmony_ci
21813498266Sopenharmony_ci
21913498266Sopenharmony_cidnl XC_CHECK_BUILD_FLAGS
22013498266Sopenharmony_cidnl -------------------------------------------------
22113498266Sopenharmony_cidnl Public macro.
22213498266Sopenharmony_cidnl
22313498266Sopenharmony_cidnl Performs some sanity checks for LIBS, LDFLAGS,
22413498266Sopenharmony_cidnl CPPFLAGS and CFLAGS values that the configure
22513498266Sopenharmony_cidnl script might have set. When checks fails, user
22613498266Sopenharmony_cidnl is noticed about errors detected in all of them
22713498266Sopenharmony_cidnl but script continues execution.
22813498266Sopenharmony_cidnl
22913498266Sopenharmony_cidnl Intended to be used very late in configure script.
23013498266Sopenharmony_ci
23113498266Sopenharmony_ciAC_DEFUN([XC_CHECK_BUILD_FLAGS], [
23213498266Sopenharmony_ci  AC_PREREQ([2.50])dnl
23313498266Sopenharmony_ci  dnl check order below matters
23413498266Sopenharmony_ci  _XC_CHECK_VAR_LIBS
23513498266Sopenharmony_ci  _XC_CHECK_VAR_LDFLAGS
23613498266Sopenharmony_ci  _XC_CHECK_VAR_CPPFLAGS
23713498266Sopenharmony_ci  _XC_CHECK_VAR_CFLAGS
23813498266Sopenharmony_ci  if test $xc_bad_var_libs = yes ||
23913498266Sopenharmony_ci     test $xc_bad_var_cflags = yes ||
24013498266Sopenharmony_ci     test $xc_bad_var_ldflags = yes ||
24113498266Sopenharmony_ci     test $xc_bad_var_cppflags = yes; then
24213498266Sopenharmony_ci     AC_MSG_WARN([Continuing even with errors mentioned immediately above this line.])
24313498266Sopenharmony_ci  fi
24413498266Sopenharmony_ci])
245