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