xref: /aosp_15_r20/external/curl/m4/xc-val-flgs.m4 (revision 6236dae45794135f37c4eb022389c904c8b0090d)
1*6236dae4SAndroid Build Coastguard Worker#---------------------------------------------------------------------------
2*6236dae4SAndroid Build Coastguard Worker#
3*6236dae4SAndroid Build Coastguard Worker# xc-val-flgs.m4
4*6236dae4SAndroid Build Coastguard Worker#
5*6236dae4SAndroid Build Coastguard Worker# Copyright (C) Daniel Stenberg, <[email protected]>
6*6236dae4SAndroid Build Coastguard Worker#
7*6236dae4SAndroid Build Coastguard Worker# Permission to use, copy, modify, and distribute this software for any
8*6236dae4SAndroid Build Coastguard Worker# purpose with or without fee is hereby granted, provided that the above
9*6236dae4SAndroid Build Coastguard Worker# copyright notice and this permission notice appear in all copies.
10*6236dae4SAndroid Build Coastguard Worker#
11*6236dae4SAndroid Build Coastguard Worker# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12*6236dae4SAndroid Build Coastguard Worker# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13*6236dae4SAndroid Build Coastguard Worker# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14*6236dae4SAndroid Build Coastguard Worker# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15*6236dae4SAndroid Build Coastguard Worker# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16*6236dae4SAndroid Build Coastguard Worker# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17*6236dae4SAndroid Build Coastguard Worker# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18*6236dae4SAndroid Build Coastguard Worker#
19*6236dae4SAndroid Build Coastguard Worker# SPDX-License-Identifier: ISC
20*6236dae4SAndroid Build Coastguard Worker#
21*6236dae4SAndroid Build Coastguard Worker#---------------------------------------------------------------------------
22*6236dae4SAndroid Build Coastguard Worker
23*6236dae4SAndroid Build Coastguard Worker# serial 1
24*6236dae4SAndroid Build Coastguard Worker
25*6236dae4SAndroid Build Coastguard Worker
26*6236dae4SAndroid Build Coastguard Workerdnl _XC_CHECK_VAR_LIBS
27*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
28*6236dae4SAndroid Build Coastguard Workerdnl Private macro.
29*6236dae4SAndroid Build Coastguard Worker
30*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([_XC_CHECK_VAR_LIBS], [
31*6236dae4SAndroid Build Coastguard Worker  xc_bad_var_libs=no
32*6236dae4SAndroid Build Coastguard Worker  for xc_word in $LIBS; do
33*6236dae4SAndroid Build Coastguard Worker    case "$xc_word" in
34*6236dae4SAndroid Build Coastguard Worker      -l* | --library=*)
35*6236dae4SAndroid Build Coastguard Worker        :
36*6236dae4SAndroid Build Coastguard Worker        ;;
37*6236dae4SAndroid Build Coastguard Worker      *)
38*6236dae4SAndroid Build Coastguard Worker        xc_bad_var_libs=yes
39*6236dae4SAndroid Build Coastguard Worker        ;;
40*6236dae4SAndroid Build Coastguard Worker    esac
41*6236dae4SAndroid Build Coastguard Worker  done
42*6236dae4SAndroid Build Coastguard Worker  if test $xc_bad_var_libs = yes; then
43*6236dae4SAndroid Build Coastguard Worker    AC_MSG_NOTICE([using LIBS: $LIBS])
44*6236dae4SAndroid Build Coastguard Worker    AC_MSG_NOTICE([LIBS note: LIBS should only be used to specify libraries (-lname).])
45*6236dae4SAndroid Build Coastguard Worker  fi
46*6236dae4SAndroid Build Coastguard Worker])
47*6236dae4SAndroid Build Coastguard Worker
48*6236dae4SAndroid Build Coastguard Worker
49*6236dae4SAndroid Build Coastguard Workerdnl _XC_CHECK_VAR_LDFLAGS
50*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
51*6236dae4SAndroid Build Coastguard Workerdnl Private macro.
52*6236dae4SAndroid Build Coastguard Worker
53*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([_XC_CHECK_VAR_LDFLAGS], [
54*6236dae4SAndroid Build Coastguard Worker  xc_bad_var_ldflags=no
55*6236dae4SAndroid Build Coastguard Worker  for xc_word in $LDFLAGS; do
56*6236dae4SAndroid Build Coastguard Worker    case "$xc_word" in
57*6236dae4SAndroid Build Coastguard Worker      -D*)
58*6236dae4SAndroid Build Coastguard Worker        xc_bad_var_ldflags=yes
59*6236dae4SAndroid Build Coastguard Worker        ;;
60*6236dae4SAndroid Build Coastguard Worker      -U*)
61*6236dae4SAndroid Build Coastguard Worker        xc_bad_var_ldflags=yes
62*6236dae4SAndroid Build Coastguard Worker        ;;
63*6236dae4SAndroid Build Coastguard Worker      -I*)
64*6236dae4SAndroid Build Coastguard Worker        xc_bad_var_ldflags=yes
65*6236dae4SAndroid Build Coastguard Worker        ;;
66*6236dae4SAndroid Build Coastguard Worker      -l* | --library=*)
67*6236dae4SAndroid Build Coastguard Worker        xc_bad_var_ldflags=yes
68*6236dae4SAndroid Build Coastguard Worker        ;;
69*6236dae4SAndroid Build Coastguard Worker    esac
70*6236dae4SAndroid Build Coastguard Worker  done
71*6236dae4SAndroid Build Coastguard Worker  if test $xc_bad_var_ldflags = yes; then
72*6236dae4SAndroid Build Coastguard Worker    AC_MSG_NOTICE([using LDFLAGS: $LDFLAGS])
73*6236dae4SAndroid Build Coastguard Worker    xc_bad_var_msg="LDFLAGS note: LDFLAGS should only be used to specify linker flags, not"
74*6236dae4SAndroid Build Coastguard Worker    for xc_word in $LDFLAGS; do
75*6236dae4SAndroid Build Coastguard Worker      case "$xc_word" in
76*6236dae4SAndroid Build Coastguard Worker        -D*)
77*6236dae4SAndroid Build Coastguard Worker          AC_MSG_NOTICE([$xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word])
78*6236dae4SAndroid Build Coastguard Worker          ;;
79*6236dae4SAndroid Build Coastguard Worker        -U*)
80*6236dae4SAndroid Build Coastguard Worker          AC_MSG_NOTICE([$xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word])
81*6236dae4SAndroid Build Coastguard Worker          ;;
82*6236dae4SAndroid Build Coastguard Worker        -I*)
83*6236dae4SAndroid Build Coastguard Worker          AC_MSG_NOTICE([$xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word])
84*6236dae4SAndroid Build Coastguard Worker          ;;
85*6236dae4SAndroid Build Coastguard Worker        -l* | --library=*)
86*6236dae4SAndroid Build Coastguard Worker          AC_MSG_NOTICE([$xc_bad_var_msg libraries. Use LIBS for: $xc_word])
87*6236dae4SAndroid Build Coastguard Worker          ;;
88*6236dae4SAndroid Build Coastguard Worker      esac
89*6236dae4SAndroid Build Coastguard Worker    done
90*6236dae4SAndroid Build Coastguard Worker  fi
91*6236dae4SAndroid Build Coastguard Worker])
92*6236dae4SAndroid Build Coastguard Worker
93*6236dae4SAndroid Build Coastguard Worker
94*6236dae4SAndroid Build Coastguard Workerdnl _XC_CHECK_VAR_CPPFLAGS
95*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
96*6236dae4SAndroid Build Coastguard Workerdnl Private macro.
97*6236dae4SAndroid Build Coastguard Worker
98*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([_XC_CHECK_VAR_CPPFLAGS], [
99*6236dae4SAndroid Build Coastguard Worker  xc_bad_var_cppflags=no
100*6236dae4SAndroid Build Coastguard Worker  for xc_word in $CPPFLAGS; do
101*6236dae4SAndroid Build Coastguard Worker    case "$xc_word" in
102*6236dae4SAndroid Build Coastguard Worker      -rpath*)
103*6236dae4SAndroid Build Coastguard Worker        xc_bad_var_cppflags=yes
104*6236dae4SAndroid Build Coastguard Worker        ;;
105*6236dae4SAndroid Build Coastguard Worker      -L* | --library-path=*)
106*6236dae4SAndroid Build Coastguard Worker        xc_bad_var_cppflags=yes
107*6236dae4SAndroid Build Coastguard Worker        ;;
108*6236dae4SAndroid Build Coastguard Worker      -l* | --library=*)
109*6236dae4SAndroid Build Coastguard Worker        xc_bad_var_cppflags=yes
110*6236dae4SAndroid Build Coastguard Worker        ;;
111*6236dae4SAndroid Build Coastguard Worker    esac
112*6236dae4SAndroid Build Coastguard Worker  done
113*6236dae4SAndroid Build Coastguard Worker  if test $xc_bad_var_cppflags = yes; then
114*6236dae4SAndroid Build Coastguard Worker    AC_MSG_NOTICE([using CPPFLAGS: $CPPFLAGS])
115*6236dae4SAndroid Build Coastguard Worker    xc_bad_var_msg="CPPFLAGS note: CPPFLAGS should only be used to specify C preprocessor flags, not"
116*6236dae4SAndroid Build Coastguard Worker    for xc_word in $CPPFLAGS; do
117*6236dae4SAndroid Build Coastguard Worker      case "$xc_word" in
118*6236dae4SAndroid Build Coastguard Worker        -rpath*)
119*6236dae4SAndroid Build Coastguard Worker          AC_MSG_NOTICE([$xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word])
120*6236dae4SAndroid Build Coastguard Worker          ;;
121*6236dae4SAndroid Build Coastguard Worker        -L* | --library-path=*)
122*6236dae4SAndroid Build Coastguard Worker          AC_MSG_NOTICE([$xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word])
123*6236dae4SAndroid Build Coastguard Worker          ;;
124*6236dae4SAndroid Build Coastguard Worker        -l* | --library=*)
125*6236dae4SAndroid Build Coastguard Worker          AC_MSG_NOTICE([$xc_bad_var_msg libraries. Use LIBS for: $xc_word])
126*6236dae4SAndroid Build Coastguard Worker          ;;
127*6236dae4SAndroid Build Coastguard Worker      esac
128*6236dae4SAndroid Build Coastguard Worker    done
129*6236dae4SAndroid Build Coastguard Worker  fi
130*6236dae4SAndroid Build Coastguard Worker])
131*6236dae4SAndroid Build Coastguard Worker
132*6236dae4SAndroid Build Coastguard Worker
133*6236dae4SAndroid Build Coastguard Workerdnl _XC_CHECK_VAR_CFLAGS
134*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
135*6236dae4SAndroid Build Coastguard Workerdnl Private macro.
136*6236dae4SAndroid Build Coastguard Worker
137*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([_XC_CHECK_VAR_CFLAGS], [
138*6236dae4SAndroid Build Coastguard Worker  xc_bad_var_cflags=no
139*6236dae4SAndroid Build Coastguard Worker  for xc_word in $CFLAGS; do
140*6236dae4SAndroid Build Coastguard Worker    case "$xc_word" in
141*6236dae4SAndroid Build Coastguard Worker      -D*)
142*6236dae4SAndroid Build Coastguard Worker        xc_bad_var_cflags=yes
143*6236dae4SAndroid Build Coastguard Worker        ;;
144*6236dae4SAndroid Build Coastguard Worker      -U*)
145*6236dae4SAndroid Build Coastguard Worker        xc_bad_var_cflags=yes
146*6236dae4SAndroid Build Coastguard Worker        ;;
147*6236dae4SAndroid Build Coastguard Worker      -I*)
148*6236dae4SAndroid Build Coastguard Worker        xc_bad_var_cflags=yes
149*6236dae4SAndroid Build Coastguard Worker        ;;
150*6236dae4SAndroid Build Coastguard Worker      -rpath*)
151*6236dae4SAndroid Build Coastguard Worker        xc_bad_var_cflags=yes
152*6236dae4SAndroid Build Coastguard Worker        ;;
153*6236dae4SAndroid Build Coastguard Worker      -L* | --library-path=*)
154*6236dae4SAndroid Build Coastguard Worker        xc_bad_var_cflags=yes
155*6236dae4SAndroid Build Coastguard Worker        ;;
156*6236dae4SAndroid Build Coastguard Worker      -l* | --library=*)
157*6236dae4SAndroid Build Coastguard Worker        xc_bad_var_cflags=yes
158*6236dae4SAndroid Build Coastguard Worker        ;;
159*6236dae4SAndroid Build Coastguard Worker    esac
160*6236dae4SAndroid Build Coastguard Worker  done
161*6236dae4SAndroid Build Coastguard Worker  if test $xc_bad_var_cflags = yes; then
162*6236dae4SAndroid Build Coastguard Worker    AC_MSG_NOTICE([using CFLAGS: $CFLAGS])
163*6236dae4SAndroid Build Coastguard Worker    xc_bad_var_msg="CFLAGS note: CFLAGS should only be used to specify C compiler flags, not"
164*6236dae4SAndroid Build Coastguard Worker    for xc_word in $CFLAGS; do
165*6236dae4SAndroid Build Coastguard Worker      case "$xc_word" in
166*6236dae4SAndroid Build Coastguard Worker        -D*)
167*6236dae4SAndroid Build Coastguard Worker          AC_MSG_NOTICE([$xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word])
168*6236dae4SAndroid Build Coastguard Worker          ;;
169*6236dae4SAndroid Build Coastguard Worker        -U*)
170*6236dae4SAndroid Build Coastguard Worker          AC_MSG_NOTICE([$xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word])
171*6236dae4SAndroid Build Coastguard Worker          ;;
172*6236dae4SAndroid Build Coastguard Worker        -I*)
173*6236dae4SAndroid Build Coastguard Worker          AC_MSG_NOTICE([$xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word])
174*6236dae4SAndroid Build Coastguard Worker          ;;
175*6236dae4SAndroid Build Coastguard Worker        -rpath*)
176*6236dae4SAndroid Build Coastguard Worker          AC_MSG_NOTICE([$xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word])
177*6236dae4SAndroid Build Coastguard Worker          ;;
178*6236dae4SAndroid Build Coastguard Worker        -L* | --library-path=*)
179*6236dae4SAndroid Build Coastguard Worker          AC_MSG_NOTICE([$xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word])
180*6236dae4SAndroid Build Coastguard Worker          ;;
181*6236dae4SAndroid Build Coastguard Worker        -l* | --library=*)
182*6236dae4SAndroid Build Coastguard Worker          AC_MSG_NOTICE([$xc_bad_var_msg libraries. Use LIBS for: $xc_word])
183*6236dae4SAndroid Build Coastguard Worker          ;;
184*6236dae4SAndroid Build Coastguard Worker      esac
185*6236dae4SAndroid Build Coastguard Worker    done
186*6236dae4SAndroid Build Coastguard Worker  fi
187*6236dae4SAndroid Build Coastguard Worker])
188*6236dae4SAndroid Build Coastguard Worker
189*6236dae4SAndroid Build Coastguard Worker
190*6236dae4SAndroid Build Coastguard Workerdnl XC_CHECK_USER_FLAGS
191*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
192*6236dae4SAndroid Build Coastguard Workerdnl Public macro.
193*6236dae4SAndroid Build Coastguard Workerdnl
194*6236dae4SAndroid Build Coastguard Workerdnl Performs some sanity checks for LIBS, LDFLAGS,
195*6236dae4SAndroid Build Coastguard Workerdnl CPPFLAGS and CFLAGS values that the user might
196*6236dae4SAndroid Build Coastguard Workerdnl have set. When checks fails, user is noticed
197*6236dae4SAndroid Build Coastguard Workerdnl about errors detected in all of them and script
198*6236dae4SAndroid Build Coastguard Workerdnl execution is halted.
199*6236dae4SAndroid Build Coastguard Workerdnl
200*6236dae4SAndroid Build Coastguard Workerdnl Intended to be used early in configure script.
201*6236dae4SAndroid Build Coastguard Worker
202*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([XC_CHECK_USER_FLAGS], [
203*6236dae4SAndroid Build Coastguard Worker  AC_PREREQ([2.50])dnl
204*6236dae4SAndroid Build Coastguard Worker  AC_BEFORE([$0],[XC_CHECK_PROG_CC])dnl
205*6236dae4SAndroid Build Coastguard Worker  dnl check order below matters
206*6236dae4SAndroid Build Coastguard Worker  _XC_CHECK_VAR_LIBS
207*6236dae4SAndroid Build Coastguard Worker  _XC_CHECK_VAR_LDFLAGS
208*6236dae4SAndroid Build Coastguard Worker  _XC_CHECK_VAR_CPPFLAGS
209*6236dae4SAndroid Build Coastguard Worker  _XC_CHECK_VAR_CFLAGS
210*6236dae4SAndroid Build Coastguard Worker  if test $xc_bad_var_libs = yes ||
211*6236dae4SAndroid Build Coastguard Worker     test $xc_bad_var_cflags = yes ||
212*6236dae4SAndroid Build Coastguard Worker     test $xc_bad_var_ldflags = yes ||
213*6236dae4SAndroid Build Coastguard Worker     test $xc_bad_var_cppflags = yes; then
214*6236dae4SAndroid Build Coastguard Worker    AC_MSG_ERROR([Can not continue. Fix errors mentioned immediately above this line.])
215*6236dae4SAndroid Build Coastguard Worker  fi
216*6236dae4SAndroid Build Coastguard Worker])
217*6236dae4SAndroid Build Coastguard Worker
218*6236dae4SAndroid Build Coastguard Worker
219*6236dae4SAndroid Build Coastguard Workerdnl XC_CHECK_BUILD_FLAGS
220*6236dae4SAndroid Build Coastguard Workerdnl -------------------------------------------------
221*6236dae4SAndroid Build Coastguard Workerdnl Public macro.
222*6236dae4SAndroid Build Coastguard Workerdnl
223*6236dae4SAndroid Build Coastguard Workerdnl Performs some sanity checks for LIBS, LDFLAGS,
224*6236dae4SAndroid Build Coastguard Workerdnl CPPFLAGS and CFLAGS values that the configure
225*6236dae4SAndroid Build Coastguard Workerdnl script might have set. When checks fails, user
226*6236dae4SAndroid Build Coastguard Workerdnl is noticed about errors detected in all of them
227*6236dae4SAndroid Build Coastguard Workerdnl but script continues execution.
228*6236dae4SAndroid Build Coastguard Workerdnl
229*6236dae4SAndroid Build Coastguard Workerdnl Intended to be used very late in configure script.
230*6236dae4SAndroid Build Coastguard Worker
231*6236dae4SAndroid Build Coastguard WorkerAC_DEFUN([XC_CHECK_BUILD_FLAGS], [
232*6236dae4SAndroid Build Coastguard Worker  AC_PREREQ([2.50])dnl
233*6236dae4SAndroid Build Coastguard Worker  dnl check order below matters
234*6236dae4SAndroid Build Coastguard Worker  _XC_CHECK_VAR_LIBS
235*6236dae4SAndroid Build Coastguard Worker  _XC_CHECK_VAR_LDFLAGS
236*6236dae4SAndroid Build Coastguard Worker  _XC_CHECK_VAR_CPPFLAGS
237*6236dae4SAndroid Build Coastguard Worker  _XC_CHECK_VAR_CFLAGS
238*6236dae4SAndroid Build Coastguard Worker  if test $xc_bad_var_libs = yes ||
239*6236dae4SAndroid Build Coastguard Worker     test $xc_bad_var_cflags = yes ||
240*6236dae4SAndroid Build Coastguard Worker     test $xc_bad_var_ldflags = yes ||
241*6236dae4SAndroid Build Coastguard Worker     test $xc_bad_var_cppflags = yes; then
242*6236dae4SAndroid Build Coastguard Worker    AC_MSG_WARN([Continuing even with errors mentioned immediately above this line.])
243*6236dae4SAndroid Build Coastguard Worker  fi
244*6236dae4SAndroid Build Coastguard Worker])
245