1*3da8d17dSfengbojiang(姜凤波) 2*3da8d17dSfengbojiang(姜凤波)# Copyright (C) Igor Sysoev 3*3da8d17dSfengbojiang(姜凤波)# Copyright (C) Nginx, Inc. 4*3da8d17dSfengbojiang(姜凤波) 5*3da8d17dSfengbojiang(姜凤波) 6*3da8d17dSfengbojiang(姜凤波)LINK="\$(CC)" 7*3da8d17dSfengbojiang(姜凤波) 8*3da8d17dSfengbojiang(姜凤波)MAIN_LINK= 9*3da8d17dSfengbojiang(姜凤波)MODULE_LINK="-shared" 10*3da8d17dSfengbojiang(姜凤波) 11*3da8d17dSfengbojiang(姜凤波)ngx_include_opt="-I " 12*3da8d17dSfengbojiang(姜凤波)ngx_compile_opt="-c" 13*3da8d17dSfengbojiang(姜凤波)ngx_pic_opt="-fPIC" 14*3da8d17dSfengbojiang(姜凤波)ngx_objout="-o " 15*3da8d17dSfengbojiang(姜凤波)ngx_binout="-o " 16*3da8d17dSfengbojiang(姜凤波)ngx_objext="o" 17*3da8d17dSfengbojiang(姜凤波)ngx_binext= 18*3da8d17dSfengbojiang(姜凤波)ngx_modext=".so" 19*3da8d17dSfengbojiang(姜凤波) 20*3da8d17dSfengbojiang(姜凤波)ngx_long_start= 21*3da8d17dSfengbojiang(姜凤波)ngx_long_end= 22*3da8d17dSfengbojiang(姜凤波) 23*3da8d17dSfengbojiang(姜凤波)ngx_regex_dirsep="\/" 24*3da8d17dSfengbojiang(姜凤波)ngx_dirsep='/' 25*3da8d17dSfengbojiang(姜凤波) 26*3da8d17dSfengbojiang(姜凤波)ngx_regex_cont=' \\\ 27*3da8d17dSfengbojiang(姜凤波) ' 28*3da8d17dSfengbojiang(姜凤波)ngx_cont=' \ 29*3da8d17dSfengbojiang(姜凤波) ' 30*3da8d17dSfengbojiang(姜凤波)ngx_tab=' \ 31*3da8d17dSfengbojiang(姜凤波) ' 32*3da8d17dSfengbojiang(姜凤波)ngx_spacer= 33*3da8d17dSfengbojiang(姜凤波) 34*3da8d17dSfengbojiang(姜凤波)ngx_long_regex_cont=$ngx_regex_cont 35*3da8d17dSfengbojiang(姜凤波)ngx_long_cont=$ngx_cont 36*3da8d17dSfengbojiang(姜凤波) 37*3da8d17dSfengbojiang(姜凤波). auto/cc/name 38*3da8d17dSfengbojiang(姜凤波) 39*3da8d17dSfengbojiang(姜凤波)if test -n "$CFLAGS"; then 40*3da8d17dSfengbojiang(姜凤波) 41*3da8d17dSfengbojiang(姜凤波) CC_TEST_FLAGS="$CFLAGS $NGX_CC_OPT" 42*3da8d17dSfengbojiang(姜凤波) 43*3da8d17dSfengbojiang(姜凤波) case $NGX_CC_NAME in 44*3da8d17dSfengbojiang(姜凤波) 45*3da8d17dSfengbojiang(姜凤波) ccc) 46*3da8d17dSfengbojiang(姜凤波) # Compaq C V6.5-207 47*3da8d17dSfengbojiang(姜凤波) 48*3da8d17dSfengbojiang(姜凤波) ngx_include_opt="-I" 49*3da8d17dSfengbojiang(姜凤波) ;; 50*3da8d17dSfengbojiang(姜凤波) 51*3da8d17dSfengbojiang(姜凤波) sunc) 52*3da8d17dSfengbojiang(姜凤波) 53*3da8d17dSfengbojiang(姜凤波) MAIN_LINK= 54*3da8d17dSfengbojiang(姜凤波) MODULE_LINK="-G" 55*3da8d17dSfengbojiang(姜凤波) 56*3da8d17dSfengbojiang(姜凤波) case "$NGX_MACHINE" in 57*3da8d17dSfengbojiang(姜凤波) 58*3da8d17dSfengbojiang(姜凤波) i86pc) 59*3da8d17dSfengbojiang(姜凤波) NGX_AUX=" src/os/unix/ngx_sunpro_x86.il" 60*3da8d17dSfengbojiang(姜凤波) ;; 61*3da8d17dSfengbojiang(姜凤波) 62*3da8d17dSfengbojiang(姜凤波) sun4u | sun4v) 63*3da8d17dSfengbojiang(姜凤波) NGX_AUX=" src/os/unix/ngx_sunpro_sparc64.il" 64*3da8d17dSfengbojiang(姜凤波) ;; 65*3da8d17dSfengbojiang(姜凤波) 66*3da8d17dSfengbojiang(姜凤波) esac 67*3da8d17dSfengbojiang(姜凤波) 68*3da8d17dSfengbojiang(姜凤波) case $CPU in 69*3da8d17dSfengbojiang(姜凤波) 70*3da8d17dSfengbojiang(姜凤波) amd64) 71*3da8d17dSfengbojiang(姜凤波) NGX_AUX=" src/os/unix/ngx_sunpro_amd64.il" 72*3da8d17dSfengbojiang(姜凤波) ;; 73*3da8d17dSfengbojiang(姜凤波) 74*3da8d17dSfengbojiang(姜凤波) esac 75*3da8d17dSfengbojiang(姜凤波) ;; 76*3da8d17dSfengbojiang(姜凤波) 77*3da8d17dSfengbojiang(姜凤波) esac 78*3da8d17dSfengbojiang(姜凤波) 79*3da8d17dSfengbojiang(姜凤波)else 80*3da8d17dSfengbojiang(姜凤波) 81*3da8d17dSfengbojiang(姜凤波) case $NGX_CC_NAME in 82*3da8d17dSfengbojiang(姜凤波) gcc) 83*3da8d17dSfengbojiang(姜凤波) # gcc 2.7.2.3, 2.8.1, 2.95.4, egcs-1.1.2 84*3da8d17dSfengbojiang(姜凤波) # 3.0.4, 3.1.1, 3.2.3, 3.3.2, 3.3.3, 3.3.4, 3.4.0, 3.4.2 85*3da8d17dSfengbojiang(姜凤波) # 4.0.0, 4.0.1, 4.1.0 86*3da8d17dSfengbojiang(姜凤波) 87*3da8d17dSfengbojiang(姜凤波) . auto/cc/gcc 88*3da8d17dSfengbojiang(姜凤波) ;; 89*3da8d17dSfengbojiang(姜凤波) 90*3da8d17dSfengbojiang(姜凤波) clang) 91*3da8d17dSfengbojiang(姜凤波) # Clang C compiler 92*3da8d17dSfengbojiang(姜凤波) 93*3da8d17dSfengbojiang(姜凤波) . auto/cc/clang 94*3da8d17dSfengbojiang(姜凤波) ;; 95*3da8d17dSfengbojiang(姜凤波) 96*3da8d17dSfengbojiang(姜凤波) icc) 97*3da8d17dSfengbojiang(姜凤波) # Intel C++ compiler 7.1, 8.0, 8.1 98*3da8d17dSfengbojiang(姜凤波) 99*3da8d17dSfengbojiang(姜凤波) . auto/cc/icc 100*3da8d17dSfengbojiang(姜凤波) ;; 101*3da8d17dSfengbojiang(姜凤波) 102*3da8d17dSfengbojiang(姜凤波) sunc) 103*3da8d17dSfengbojiang(姜凤波) # Sun C 5.7 Patch 117837-04 2005/05/11 104*3da8d17dSfengbojiang(姜凤波) 105*3da8d17dSfengbojiang(姜凤波) . auto/cc/sunc 106*3da8d17dSfengbojiang(姜凤波) ;; 107*3da8d17dSfengbojiang(姜凤波) 108*3da8d17dSfengbojiang(姜凤波) ccc) 109*3da8d17dSfengbojiang(姜凤波) # Compaq C V6.5-207 110*3da8d17dSfengbojiang(姜凤波) 111*3da8d17dSfengbojiang(姜凤波) . auto/cc/ccc 112*3da8d17dSfengbojiang(姜凤波) ;; 113*3da8d17dSfengbojiang(姜凤波) 114*3da8d17dSfengbojiang(姜凤波) acc) 115*3da8d17dSfengbojiang(姜凤波) # aCC: HP ANSI C++ B3910B A.03.55.02 116*3da8d17dSfengbojiang(姜凤波) 117*3da8d17dSfengbojiang(姜凤波) . auto/cc/acc 118*3da8d17dSfengbojiang(姜凤波) ;; 119*3da8d17dSfengbojiang(姜凤波) 120*3da8d17dSfengbojiang(姜凤波) msvc*) 121*3da8d17dSfengbojiang(姜凤波) # MSVC++ 6.0 SP2, MSVC++ Toolkit 2003 122*3da8d17dSfengbojiang(姜凤波) 123*3da8d17dSfengbojiang(姜凤波) . auto/cc/msvc 124*3da8d17dSfengbojiang(姜凤波) ;; 125*3da8d17dSfengbojiang(姜凤波) 126*3da8d17dSfengbojiang(姜凤波) owc) 127*3da8d17dSfengbojiang(姜凤波) # Open Watcom C 1.0, 1.2 128*3da8d17dSfengbojiang(姜凤波) 129*3da8d17dSfengbojiang(姜凤波) . auto/cc/owc 130*3da8d17dSfengbojiang(姜凤波) ;; 131*3da8d17dSfengbojiang(姜凤波) 132*3da8d17dSfengbojiang(姜凤波) bcc) 133*3da8d17dSfengbojiang(姜凤波) # Borland C++ 5.5 134*3da8d17dSfengbojiang(姜凤波) 135*3da8d17dSfengbojiang(姜凤波) . auto/cc/bcc 136*3da8d17dSfengbojiang(姜凤波) ;; 137*3da8d17dSfengbojiang(姜凤波) 138*3da8d17dSfengbojiang(姜凤波) esac 139*3da8d17dSfengbojiang(姜凤波) 140*3da8d17dSfengbojiang(姜凤波) CC_TEST_FLAGS="$CC_TEST_FLAGS $NGX_CC_OPT" 141*3da8d17dSfengbojiang(姜凤波) 142*3da8d17dSfengbojiang(姜凤波)fi 143*3da8d17dSfengbojiang(姜凤波) 144*3da8d17dSfengbojiang(姜凤波)CFLAGS="$CFLAGS $NGX_CC_OPT" 145*3da8d17dSfengbojiang(姜凤波)NGX_TEST_LD_OPT="$NGX_LD_OPT" 146*3da8d17dSfengbojiang(姜凤波) 147*3da8d17dSfengbojiang(姜凤波)if [ "$NGX_PLATFORM" != win32 ]; then 148*3da8d17dSfengbojiang(姜凤波) 149*3da8d17dSfengbojiang(姜凤波) if test -n "$NGX_LD_OPT"; then 150*3da8d17dSfengbojiang(姜凤波) ngx_feature=--with-ld-opt=\"$NGX_LD_OPT\" 151*3da8d17dSfengbojiang(姜凤波) ngx_feature_name= 152*3da8d17dSfengbojiang(姜凤波) ngx_feature_run=no 153*3da8d17dSfengbojiang(姜凤波) ngx_feature_incs= 154*3da8d17dSfengbojiang(姜凤波) ngx_feature_path= 155*3da8d17dSfengbojiang(姜凤波) ngx_feature_libs= 156*3da8d17dSfengbojiang(姜凤波) ngx_feature_test= 157*3da8d17dSfengbojiang(姜凤波) . auto/feature 158*3da8d17dSfengbojiang(姜凤波) 159*3da8d17dSfengbojiang(姜凤波) if [ $ngx_found = no ]; then 160*3da8d17dSfengbojiang(姜凤波) echo $0: error: the invalid value in --with-ld-opt=\"$NGX_LD_OPT\" 161*3da8d17dSfengbojiang(姜凤波) echo 162*3da8d17dSfengbojiang(姜凤波) exit 1 163*3da8d17dSfengbojiang(姜凤波) fi 164*3da8d17dSfengbojiang(姜凤波) fi 165*3da8d17dSfengbojiang(姜凤波) 166*3da8d17dSfengbojiang(姜凤波) 167*3da8d17dSfengbojiang(姜凤波) ngx_feature="-Wl,-E switch" 168*3da8d17dSfengbojiang(姜凤波) ngx_feature_name= 169*3da8d17dSfengbojiang(姜凤波) ngx_feature_run=no 170*3da8d17dSfengbojiang(姜凤波) ngx_feature_incs= 171*3da8d17dSfengbojiang(姜凤波) ngx_feature_path= 172*3da8d17dSfengbojiang(姜凤波) ngx_feature_libs=-Wl,-E 173*3da8d17dSfengbojiang(姜凤波) ngx_feature_test= 174*3da8d17dSfengbojiang(姜凤波) . auto/feature 175*3da8d17dSfengbojiang(姜凤波) 176*3da8d17dSfengbojiang(姜凤波) if [ $ngx_found = yes ]; then 177*3da8d17dSfengbojiang(姜凤波) MAIN_LINK="-Wl,-E" 178*3da8d17dSfengbojiang(姜凤波) fi 179*3da8d17dSfengbojiang(姜凤波) 180*3da8d17dSfengbojiang(姜凤波) 181*3da8d17dSfengbojiang(姜凤波) if [ "$NGX_CC_NAME" = "sunc" ]; then 182*3da8d17dSfengbojiang(姜凤波) echo "checking for gcc builtin atomic operations ... disabled" 183*3da8d17dSfengbojiang(姜凤波) else 184*3da8d17dSfengbojiang(姜凤波) ngx_feature="gcc builtin atomic operations" 185*3da8d17dSfengbojiang(姜凤波) ngx_feature_name=NGX_HAVE_GCC_ATOMIC 186*3da8d17dSfengbojiang(姜凤波) ngx_feature_run=yes 187*3da8d17dSfengbojiang(姜凤波) ngx_feature_incs= 188*3da8d17dSfengbojiang(姜凤波) ngx_feature_path= 189*3da8d17dSfengbojiang(姜凤波) ngx_feature_libs= 190*3da8d17dSfengbojiang(姜凤波) ngx_feature_test="long n = 0; 191*3da8d17dSfengbojiang(姜凤波) if (!__sync_bool_compare_and_swap(&n, 0, 1)) 192*3da8d17dSfengbojiang(姜凤波) return 1; 193*3da8d17dSfengbojiang(姜凤波) if (__sync_fetch_and_add(&n, 1) != 1) 194*3da8d17dSfengbojiang(姜凤波) return 1; 195*3da8d17dSfengbojiang(姜凤波) if (n != 2) 196*3da8d17dSfengbojiang(姜凤波) return 1; 197*3da8d17dSfengbojiang(姜凤波) __sync_synchronize();" 198*3da8d17dSfengbojiang(姜凤波) . auto/feature 199*3da8d17dSfengbojiang(姜凤波) fi 200*3da8d17dSfengbojiang(姜凤波) 201*3da8d17dSfengbojiang(姜凤波) 202*3da8d17dSfengbojiang(姜凤波) if [ "$NGX_CC_NAME" = "ccc" ]; then 203*3da8d17dSfengbojiang(姜凤波) echo "checking for C99 variadic macros ... disabled" 204*3da8d17dSfengbojiang(姜凤波) else 205*3da8d17dSfengbojiang(姜凤波) ngx_feature="C99 variadic macros" 206*3da8d17dSfengbojiang(姜凤波) ngx_feature_name="NGX_HAVE_C99_VARIADIC_MACROS" 207*3da8d17dSfengbojiang(姜凤波) ngx_feature_run=yes 208*3da8d17dSfengbojiang(姜凤波) ngx_feature_incs="#include <stdio.h> 209*3da8d17dSfengbojiang(姜凤波)#define var(dummy, ...) sprintf(__VA_ARGS__)" 210*3da8d17dSfengbojiang(姜凤波) ngx_feature_path= 211*3da8d17dSfengbojiang(姜凤波) ngx_feature_libs= 212*3da8d17dSfengbojiang(姜凤波) ngx_feature_test="char buf[30]; buf[0] = '0'; 213*3da8d17dSfengbojiang(姜凤波) var(0, buf, \"%d\", 1); 214*3da8d17dSfengbojiang(姜凤波) if (buf[0] != '1') return 1" 215*3da8d17dSfengbojiang(姜凤波) . auto/feature 216*3da8d17dSfengbojiang(姜凤波) fi 217*3da8d17dSfengbojiang(姜凤波) 218*3da8d17dSfengbojiang(姜凤波) 219*3da8d17dSfengbojiang(姜凤波) ngx_feature="gcc variadic macros" 220*3da8d17dSfengbojiang(姜凤波) ngx_feature_name="NGX_HAVE_GCC_VARIADIC_MACROS" 221*3da8d17dSfengbojiang(姜凤波) ngx_feature_run=yes 222*3da8d17dSfengbojiang(姜凤波) ngx_feature_incs="#include <stdio.h> 223*3da8d17dSfengbojiang(姜凤波)#define var(dummy, args...) sprintf(args)" 224*3da8d17dSfengbojiang(姜凤波) ngx_feature_path= 225*3da8d17dSfengbojiang(姜凤波) ngx_feature_libs= 226*3da8d17dSfengbojiang(姜凤波) ngx_feature_test="char buf[30]; buf[0] = '0'; 227*3da8d17dSfengbojiang(姜凤波) var(0, buf, \"%d\", 1); 228*3da8d17dSfengbojiang(姜凤波) if (buf[0] != '1') return 1" 229*3da8d17dSfengbojiang(姜凤波) . auto/feature 230*3da8d17dSfengbojiang(姜凤波) 231*3da8d17dSfengbojiang(姜凤波) 232*3da8d17dSfengbojiang(姜凤波) ngx_feature="gcc builtin 64 bit byteswap" 233*3da8d17dSfengbojiang(姜凤波) ngx_feature_name="NGX_HAVE_GCC_BSWAP64" 234*3da8d17dSfengbojiang(姜凤波) ngx_feature_run=no 235*3da8d17dSfengbojiang(姜凤波) ngx_feature_incs= 236*3da8d17dSfengbojiang(姜凤波) ngx_feature_path= 237*3da8d17dSfengbojiang(姜凤波) ngx_feature_libs= 238*3da8d17dSfengbojiang(姜凤波) ngx_feature_test="if (__builtin_bswap64(0)) return 1" 239*3da8d17dSfengbojiang(姜凤波) . auto/feature 240*3da8d17dSfengbojiang(姜凤波) 241*3da8d17dSfengbojiang(姜凤波) 242*3da8d17dSfengbojiang(姜凤波)# ngx_feature="inline" 243*3da8d17dSfengbojiang(姜凤波)# ngx_feature_name= 244*3da8d17dSfengbojiang(姜凤波)# ngx_feature_run=no 245*3da8d17dSfengbojiang(姜凤波)# ngx_feature_incs="int inline f(void) { return 1 }" 246*3da8d17dSfengbojiang(姜凤波)# ngx_feature_path= 247*3da8d17dSfengbojiang(姜凤波)# ngx_feature_libs= 248*3da8d17dSfengbojiang(姜凤波)# ngx_feature_test= 249*3da8d17dSfengbojiang(姜凤波)# . auto/feature 250*3da8d17dSfengbojiang(姜凤波)# 251*3da8d17dSfengbojiang(姜凤波)# if [ $ngx_found = yes ]; then 252*3da8d17dSfengbojiang(姜凤波)# fi 253*3da8d17dSfengbojiang(姜凤波) 254*3da8d17dSfengbojiang(姜凤波)fi 255