1*3da8d17dSfengbojiang(姜凤波) 2*3da8d17dSfengbojiang(姜凤波)# Copyright (C) Igor Sysoev 3*3da8d17dSfengbojiang(姜凤波)# Copyright (C) Nginx, Inc. 4*3da8d17dSfengbojiang(姜凤波) 5*3da8d17dSfengbojiang(姜凤波) 6*3da8d17dSfengbojiang(姜凤波)echo "creating $NGX_MAKEFILE" 7*3da8d17dSfengbojiang(姜凤波) 8*3da8d17dSfengbojiang(姜凤波)mkdir -p $NGX_OBJS/src/core $NGX_OBJS/src/event $NGX_OBJS/src/event/modules \ 9*3da8d17dSfengbojiang(姜凤波) $NGX_OBJS/src/os/unix $NGX_OBJS/src/os/win32 \ 10*3da8d17dSfengbojiang(姜凤波) $NGX_OBJS/src/http $NGX_OBJS/src/http/v2 $NGX_OBJS/src/http/modules \ 11*3da8d17dSfengbojiang(姜凤波) $NGX_OBJS/src/http/modules/perl \ 12*3da8d17dSfengbojiang(姜凤波) $NGX_OBJS/src/mail \ 13*3da8d17dSfengbojiang(姜凤波) $NGX_OBJS/src/stream \ 14*3da8d17dSfengbojiang(姜凤波) $NGX_OBJS/src/misc 15*3da8d17dSfengbojiang(姜凤波) 16*3da8d17dSfengbojiang(姜凤波) 17*3da8d17dSfengbojiang(姜凤波)ngx_objs_dir=$NGX_OBJS$ngx_regex_dirsep 18*3da8d17dSfengbojiang(姜凤波)ngx_use_pch=`echo $NGX_USE_PCH | sed -e "s/\//$ngx_regex_dirsep/g"` 19*3da8d17dSfengbojiang(姜凤波) 20*3da8d17dSfengbojiang(姜凤波) 21*3da8d17dSfengbojiang(姜凤波)if [ ! $FF_PATH ]; then 22*3da8d17dSfengbojiang(姜凤波) FF_PATH=/usr/local 23*3da8d17dSfengbojiang(姜凤波) echo "FF_PATH environment variable not defined, default FF_PATH=$FF_PATH" 24*3da8d17dSfengbojiang(姜凤波)fi 25*3da8d17dSfengbojiang(姜凤波) 26*3da8d17dSfengbojiang(姜凤波)if [ ! $FF_DPDK ]; then 27*3da8d17dSfengbojiang(姜凤波) FF_DPDK=/usr/local 28*3da8d17dSfengbojiang(姜凤波) echo "FF_DPDK environment variable not defined, default FF_DPDK=$FF_DPDK" 29*3da8d17dSfengbojiang(姜凤波)fi 30*3da8d17dSfengbojiang(姜凤波) 31*3da8d17dSfengbojiang(姜凤波)CORE_LIBS="$CORE_LIBS -L$FF_PATH/lib -Wl,--whole-archive,-lfstack,--no-whole-archive" 32*3da8d17dSfengbojiang(姜凤波)CORE_LIBS="$CORE_LIBS -L$FF_DPDK/lib -Wl,--whole-archive,-ldpdk,--no-whole-archive" 33*3da8d17dSfengbojiang(姜凤波)CORE_LIBS="$CORE_LIBS -Wl,--no-whole-archive -lrt -lm -ldl -lcrypto -lpthread -lnuma" 34*3da8d17dSfengbojiang(姜凤波) 35*3da8d17dSfengbojiang(姜凤波)cat << END > $NGX_MAKEFILE 36*3da8d17dSfengbojiang(姜凤波) 37*3da8d17dSfengbojiang(姜凤波)CC = $CC 38*3da8d17dSfengbojiang(姜凤波)CFLAGS = $CFLAGS 39*3da8d17dSfengbojiang(姜凤波)CPP = $CPP 40*3da8d17dSfengbojiang(姜凤波)LINK = $LINK 41*3da8d17dSfengbojiang(姜凤波) 42*3da8d17dSfengbojiang(姜凤波)CFLAGS += -I$FF_PATH/lib 43*3da8d17dSfengbojiang(姜凤波) 44*3da8d17dSfengbojiang(姜凤波)END 45*3da8d17dSfengbojiang(姜凤波) 46*3da8d17dSfengbojiang(姜凤波) 47*3da8d17dSfengbojiang(姜凤波)if test -n "$NGX_PERL_CFLAGS"; then 48*3da8d17dSfengbojiang(姜凤波) echo NGX_PERL_CFLAGS = $NGX_PERL_CFLAGS >> $NGX_MAKEFILE 49*3da8d17dSfengbojiang(姜凤波) echo NGX_PM_CFLAGS = $NGX_PM_CFLAGS >> $NGX_MAKEFILE 50*3da8d17dSfengbojiang(姜凤波) echo NGX_PM_LDFLAGS = $NGX_PM_LDFLAGS >> $NGX_MAKEFILE 51*3da8d17dSfengbojiang(姜凤波)fi 52*3da8d17dSfengbojiang(姜凤波) 53*3da8d17dSfengbojiang(姜凤波) 54*3da8d17dSfengbojiang(姜凤波)# ALL_INCS, required by the addons and by OpenWatcom C precompiled headers 55*3da8d17dSfengbojiang(姜凤波) 56*3da8d17dSfengbojiang(姜凤波)ngx_incs=`echo $CORE_INCS $NGX_OBJS $HTTP_INCS $MAIL_INCS $STREAM_INCS\ 57*3da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \ 58*3da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 59*3da8d17dSfengbojiang(姜凤波) 60*3da8d17dSfengbojiang(姜凤波)cat << END >> $NGX_MAKEFILE 61*3da8d17dSfengbojiang(姜凤波) 62*3da8d17dSfengbojiang(姜凤波)ALL_INCS = $ngx_include_opt$ngx_incs 63*3da8d17dSfengbojiang(姜凤波) 64*3da8d17dSfengbojiang(姜凤波)END 65*3da8d17dSfengbojiang(姜凤波) 66*3da8d17dSfengbojiang(姜凤波) 67*3da8d17dSfengbojiang(姜凤波)ngx_all_srcs="$CORE_SRCS" 68*3da8d17dSfengbojiang(姜凤波) 69*3da8d17dSfengbojiang(姜凤波) 70*3da8d17dSfengbojiang(姜凤波)# the core dependencies and include paths 71*3da8d17dSfengbojiang(姜凤波) 72*3da8d17dSfengbojiang(姜凤波)ngx_deps=`echo $CORE_DEPS $NGX_AUTO_CONFIG_H $NGX_PCH \ 73*3da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \ 74*3da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 75*3da8d17dSfengbojiang(姜凤波) 76*3da8d17dSfengbojiang(姜凤波)ngx_incs=`echo $CORE_INCS $NGX_OBJS \ 77*3da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \ 78*3da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 79*3da8d17dSfengbojiang(姜凤波) 80*3da8d17dSfengbojiang(姜凤波)cat << END >> $NGX_MAKEFILE 81*3da8d17dSfengbojiang(姜凤波) 82*3da8d17dSfengbojiang(姜凤波)CORE_DEPS = $ngx_deps 83*3da8d17dSfengbojiang(姜凤波) 84*3da8d17dSfengbojiang(姜凤波) 85*3da8d17dSfengbojiang(姜凤波)CORE_INCS = $ngx_include_opt$ngx_incs 86*3da8d17dSfengbojiang(姜凤波) 87*3da8d17dSfengbojiang(姜凤波)END 88*3da8d17dSfengbojiang(姜凤波) 89*3da8d17dSfengbojiang(姜凤波) 90*3da8d17dSfengbojiang(姜凤波)# the http dependencies and include paths 91*3da8d17dSfengbojiang(姜凤波) 92*3da8d17dSfengbojiang(姜凤波)if [ $HTTP = YES ]; then 93*3da8d17dSfengbojiang(姜凤波) 94*3da8d17dSfengbojiang(姜凤波) ngx_all_srcs="$ngx_all_srcs $HTTP_SRCS" 95*3da8d17dSfengbojiang(姜凤波) 96*3da8d17dSfengbojiang(姜凤波) ngx_deps=`echo $HTTP_DEPS \ 97*3da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \ 98*3da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 99*3da8d17dSfengbojiang(姜凤波) 100*3da8d17dSfengbojiang(姜凤波) ngx_incs=`echo $HTTP_INCS \ 101*3da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \ 102*3da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 103*3da8d17dSfengbojiang(姜凤波) 104*3da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 105*3da8d17dSfengbojiang(姜凤波) 106*3da8d17dSfengbojiang(姜凤波)HTTP_DEPS = $ngx_deps 107*3da8d17dSfengbojiang(姜凤波) 108*3da8d17dSfengbojiang(姜凤波) 109*3da8d17dSfengbojiang(姜凤波)HTTP_INCS = $ngx_include_opt$ngx_incs 110*3da8d17dSfengbojiang(姜凤波) 111*3da8d17dSfengbojiang(姜凤波)END 112*3da8d17dSfengbojiang(姜凤波) 113*3da8d17dSfengbojiang(姜凤波)fi 114*3da8d17dSfengbojiang(姜凤波) 115*3da8d17dSfengbojiang(姜凤波) 116*3da8d17dSfengbojiang(姜凤波)# the mail dependencies and include paths 117*3da8d17dSfengbojiang(姜凤波) 118*3da8d17dSfengbojiang(姜凤波)if [ $MAIL != NO ]; then 119*3da8d17dSfengbojiang(姜凤波) 120*3da8d17dSfengbojiang(姜凤波) if [ $MAIL = YES ]; then 121*3da8d17dSfengbojiang(姜凤波) ngx_all_srcs="$ngx_all_srcs $MAIL_SRCS" 122*3da8d17dSfengbojiang(姜凤波) fi 123*3da8d17dSfengbojiang(姜凤波) 124*3da8d17dSfengbojiang(姜凤波) ngx_deps=`echo $MAIL_DEPS \ 125*3da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \ 126*3da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 127*3da8d17dSfengbojiang(姜凤波) 128*3da8d17dSfengbojiang(姜凤波) ngx_incs=`echo $MAIL_INCS \ 129*3da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \ 130*3da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 131*3da8d17dSfengbojiang(姜凤波) 132*3da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 133*3da8d17dSfengbojiang(姜凤波) 134*3da8d17dSfengbojiang(姜凤波)MAIL_DEPS = $ngx_deps 135*3da8d17dSfengbojiang(姜凤波) 136*3da8d17dSfengbojiang(姜凤波) 137*3da8d17dSfengbojiang(姜凤波)MAIL_INCS = $ngx_include_opt$ngx_incs 138*3da8d17dSfengbojiang(姜凤波) 139*3da8d17dSfengbojiang(姜凤波)END 140*3da8d17dSfengbojiang(姜凤波) 141*3da8d17dSfengbojiang(姜凤波)fi 142*3da8d17dSfengbojiang(姜凤波) 143*3da8d17dSfengbojiang(姜凤波) 144*3da8d17dSfengbojiang(姜凤波)# the stream dependencies and include paths 145*3da8d17dSfengbojiang(姜凤波) 146*3da8d17dSfengbojiang(姜凤波)if [ $STREAM != NO ]; then 147*3da8d17dSfengbojiang(姜凤波) 148*3da8d17dSfengbojiang(姜凤波) if [ $STREAM = YES ]; then 149*3da8d17dSfengbojiang(姜凤波) ngx_all_srcs="$ngx_all_srcs $STREAM_SRCS" 150*3da8d17dSfengbojiang(姜凤波) fi 151*3da8d17dSfengbojiang(姜凤波) 152*3da8d17dSfengbojiang(姜凤波) ngx_deps=`echo $STREAM_DEPS \ 153*3da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \ 154*3da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 155*3da8d17dSfengbojiang(姜凤波) 156*3da8d17dSfengbojiang(姜凤波) ngx_incs=`echo $STREAM_INCS \ 157*3da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \ 158*3da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 159*3da8d17dSfengbojiang(姜凤波) 160*3da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 161*3da8d17dSfengbojiang(姜凤波) 162*3da8d17dSfengbojiang(姜凤波)STREAM_DEPS = $ngx_deps 163*3da8d17dSfengbojiang(姜凤波) 164*3da8d17dSfengbojiang(姜凤波) 165*3da8d17dSfengbojiang(姜凤波)STREAM_INCS = $ngx_include_opt$ngx_incs 166*3da8d17dSfengbojiang(姜凤波) 167*3da8d17dSfengbojiang(姜凤波)END 168*3da8d17dSfengbojiang(姜凤波) 169*3da8d17dSfengbojiang(姜凤波)fi 170*3da8d17dSfengbojiang(姜凤波) 171*3da8d17dSfengbojiang(姜凤波) 172*3da8d17dSfengbojiang(姜凤波)ngx_all_srcs="$ngx_all_srcs $MISC_SRCS" 173*3da8d17dSfengbojiang(姜凤波) 174*3da8d17dSfengbojiang(姜凤波) 175*3da8d17dSfengbojiang(姜凤波)if test -n "$NGX_ADDON_SRCS$DYNAMIC_MODULES"; then 176*3da8d17dSfengbojiang(姜凤波) 177*3da8d17dSfengbojiang(姜凤波)cat << END >> $NGX_MAKEFILE 178*3da8d17dSfengbojiang(姜凤波) 179*3da8d17dSfengbojiang(姜凤波)ADDON_DEPS = \$(CORE_DEPS) $NGX_ADDON_DEPS 180*3da8d17dSfengbojiang(姜凤波) 181*3da8d17dSfengbojiang(姜凤波)END 182*3da8d17dSfengbojiang(姜凤波) 183*3da8d17dSfengbojiang(姜凤波)fi 184*3da8d17dSfengbojiang(姜凤波) 185*3da8d17dSfengbojiang(姜凤波) 186*3da8d17dSfengbojiang(姜凤波)# nginx 187*3da8d17dSfengbojiang(姜凤波) 188*3da8d17dSfengbojiang(姜凤波)ngx_all_srcs=`echo $ngx_all_srcs | sed -e "s/\//$ngx_regex_dirsep/g"` 189*3da8d17dSfengbojiang(姜凤波) 190*3da8d17dSfengbojiang(姜凤波)for ngx_src in $NGX_ADDON_SRCS 191*3da8d17dSfengbojiang(姜凤波)do 192*3da8d17dSfengbojiang(姜凤波) ngx_obj="addon/`basename \`dirname $ngx_src\``" 193*3da8d17dSfengbojiang(姜凤波) 194*3da8d17dSfengbojiang(姜凤波) test -d $NGX_OBJS/$ngx_obj || mkdir -p $NGX_OBJS/$ngx_obj 195*3da8d17dSfengbojiang(姜凤波) 196*3da8d17dSfengbojiang(姜凤波) ngx_obj=`echo $ngx_obj/\`basename $ngx_src\` \ 197*3da8d17dSfengbojiang(姜凤波) | sed -e "s/\//$ngx_regex_dirsep/g"` 198*3da8d17dSfengbojiang(姜凤波) 199*3da8d17dSfengbojiang(姜凤波) ngx_all_srcs="$ngx_all_srcs $ngx_obj" 200*3da8d17dSfengbojiang(姜凤波)done 201*3da8d17dSfengbojiang(姜凤波) 202*3da8d17dSfengbojiang(姜凤波)ngx_all_objs=`echo $ngx_all_srcs \ 203*3da8d17dSfengbojiang(姜凤波) | sed -e "s#\([^ ]*\.\)cpp#$NGX_OBJS\/\1$ngx_objext#g" \ 204*3da8d17dSfengbojiang(姜凤波) -e "s#\([^ ]*\.\)cc#$NGX_OBJS\/\1$ngx_objext#g" \ 205*3da8d17dSfengbojiang(姜凤波) -e "s#\([^ ]*\.\)c#$NGX_OBJS\/\1$ngx_objext#g" \ 206*3da8d17dSfengbojiang(姜凤波) -e "s#\([^ ]*\.\)S#$NGX_OBJS\/\1$ngx_objext#g"` 207*3da8d17dSfengbojiang(姜凤波) 208*3da8d17dSfengbojiang(姜凤波)ngx_modules_c=`echo $NGX_MODULES_C | sed -e "s/\//$ngx_regex_dirsep/g"` 209*3da8d17dSfengbojiang(姜凤波) 210*3da8d17dSfengbojiang(姜凤波)ngx_modules_obj=`echo $ngx_modules_c | sed -e "s/\(.*\.\)c/\1$ngx_objext/"` 211*3da8d17dSfengbojiang(姜凤波) 212*3da8d17dSfengbojiang(姜凤波) 213*3da8d17dSfengbojiang(姜凤波)if test -n "$NGX_RES"; then 214*3da8d17dSfengbojiang(姜凤波) ngx_res=$NGX_RES 215*3da8d17dSfengbojiang(姜凤波)else 216*3da8d17dSfengbojiang(姜凤波) ngx_res="$NGX_RC $NGX_ICONS" 217*3da8d17dSfengbojiang(姜凤波) ngx_rcc=`echo $NGX_RCC | sed -e "s/\//$ngx_regex_dirsep/g"` 218*3da8d17dSfengbojiang(姜凤波)fi 219*3da8d17dSfengbojiang(姜凤波) 220*3da8d17dSfengbojiang(姜凤波)ngx_deps=`echo $ngx_all_objs $ngx_modules_obj $ngx_res $LINK_DEPS \ 221*3da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \ 222*3da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 223*3da8d17dSfengbojiang(姜凤波) 224*3da8d17dSfengbojiang(姜凤波)ngx_objs=`echo $ngx_all_objs $ngx_modules_obj \ 225*3da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_long_regex_cont\1/g" \ 226*3da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 227*3da8d17dSfengbojiang(姜凤波) 228*3da8d17dSfengbojiang(姜凤波)ngx_libs= 229*3da8d17dSfengbojiang(姜凤波)if test -n "$NGX_LD_OPT$CORE_LIBS"; then 230*3da8d17dSfengbojiang(姜凤波) ngx_libs=`echo $NGX_LD_OPT $CORE_LIBS \ 231*3da8d17dSfengbojiang(姜凤波) | sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"` 232*3da8d17dSfengbojiang(姜凤波)fi 233*3da8d17dSfengbojiang(姜凤波) 234*3da8d17dSfengbojiang(姜凤波)ngx_link=${CORE_LINK:+`echo $CORE_LINK \ 235*3da8d17dSfengbojiang(姜凤波) | sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"`} 236*3da8d17dSfengbojiang(姜凤波) 237*3da8d17dSfengbojiang(姜凤波)ngx_main_link=${MAIN_LINK:+`echo $MAIN_LINK \ 238*3da8d17dSfengbojiang(姜凤波) | sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"`} 239*3da8d17dSfengbojiang(姜凤波) 240*3da8d17dSfengbojiang(姜凤波) 241*3da8d17dSfengbojiang(姜凤波)cat << END >> $NGX_MAKEFILE 242*3da8d17dSfengbojiang(姜凤波) 243*3da8d17dSfengbojiang(姜凤波)build: binary modules manpage 244*3da8d17dSfengbojiang(姜凤波) 245*3da8d17dSfengbojiang(姜凤波)binary: $NGX_OBJS${ngx_dirsep}nginx$ngx_binext 246*3da8d17dSfengbojiang(姜凤波) 247*3da8d17dSfengbojiang(姜凤波)$NGX_OBJS${ngx_dirsep}nginx$ngx_binext: $ngx_deps$ngx_spacer 248*3da8d17dSfengbojiang(姜凤波) \$(LINK) $ngx_long_start$ngx_binout$NGX_OBJS${ngx_dirsep}nginx$ngx_binext$ngx_long_cont$ngx_objs$ngx_libs$ngx_link$ngx_main_link 249*3da8d17dSfengbojiang(姜凤波) $ngx_rcc 250*3da8d17dSfengbojiang(姜凤波)$ngx_long_end 251*3da8d17dSfengbojiang(姜凤波) 252*3da8d17dSfengbojiang(姜凤波)modules: 253*3da8d17dSfengbojiang(姜凤波)END 254*3da8d17dSfengbojiang(姜凤波) 255*3da8d17dSfengbojiang(姜凤波) 256*3da8d17dSfengbojiang(姜凤波)# ngx_modules.c 257*3da8d17dSfengbojiang(姜凤波) 258*3da8d17dSfengbojiang(姜凤波)if test -n "$NGX_PCH"; then 259*3da8d17dSfengbojiang(姜凤波) ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)" 260*3da8d17dSfengbojiang(姜凤波)else 261*3da8d17dSfengbojiang(姜凤波) ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS)" 262*3da8d17dSfengbojiang(姜凤波)fi 263*3da8d17dSfengbojiang(姜凤波) 264*3da8d17dSfengbojiang(姜凤波)cat << END >> $NGX_MAKEFILE 265*3da8d17dSfengbojiang(姜凤波) 266*3da8d17dSfengbojiang(姜凤波)$ngx_modules_obj: \$(CORE_DEPS)$ngx_cont$ngx_modules_c 267*3da8d17dSfengbojiang(姜凤波) $ngx_cc$ngx_tab$ngx_objout$ngx_modules_obj$ngx_tab$ngx_modules_c$NGX_AUX 268*3da8d17dSfengbojiang(姜凤波) 269*3da8d17dSfengbojiang(姜凤波)END 270*3da8d17dSfengbojiang(姜凤波) 271*3da8d17dSfengbojiang(姜凤波) 272*3da8d17dSfengbojiang(姜凤波)# the core sources 273*3da8d17dSfengbojiang(姜凤波) 274*3da8d17dSfengbojiang(姜凤波)for ngx_src in $CORE_SRCS 275*3da8d17dSfengbojiang(姜凤波)do 276*3da8d17dSfengbojiang(姜凤波) ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"` 277*3da8d17dSfengbojiang(姜凤波) ngx_obj=`echo $ngx_src \ 278*3da8d17dSfengbojiang(姜凤波) | sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \ 279*3da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \ 280*3da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \ 281*3da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"` 282*3da8d17dSfengbojiang(姜凤波) 283*3da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 284*3da8d17dSfengbojiang(姜凤波) 285*3da8d17dSfengbojiang(姜凤波)$ngx_obj: \$(CORE_DEPS)$ngx_cont$ngx_src 286*3da8d17dSfengbojiang(姜凤波) $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX 287*3da8d17dSfengbojiang(姜凤波) 288*3da8d17dSfengbojiang(姜凤波)END 289*3da8d17dSfengbojiang(姜凤波) 290*3da8d17dSfengbojiang(姜凤波)done 291*3da8d17dSfengbojiang(姜凤波) 292*3da8d17dSfengbojiang(姜凤波) 293*3da8d17dSfengbojiang(姜凤波)# the http sources 294*3da8d17dSfengbojiang(姜凤波) 295*3da8d17dSfengbojiang(姜凤波)if [ $HTTP = YES ]; then 296*3da8d17dSfengbojiang(姜凤波) 297*3da8d17dSfengbojiang(姜凤波) if test -n "$NGX_PCH"; then 298*3da8d17dSfengbojiang(姜凤波) ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)" 299*3da8d17dSfengbojiang(姜凤波) else 300*3da8d17dSfengbojiang(姜凤波) ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS) \$(HTTP_INCS)" 301*3da8d17dSfengbojiang(姜凤波) ngx_perl_cc="\$(CC) $ngx_compile_opt \$(NGX_PERL_CFLAGS)" 302*3da8d17dSfengbojiang(姜凤波) ngx_perl_cc="$ngx_perl_cc \$(CORE_INCS) \$(HTTP_INCS)" 303*3da8d17dSfengbojiang(姜凤波) fi 304*3da8d17dSfengbojiang(姜凤波) 305*3da8d17dSfengbojiang(姜凤波) for ngx_source in $HTTP_SRCS 306*3da8d17dSfengbojiang(姜凤波) do 307*3da8d17dSfengbojiang(姜凤波) ngx_src=`echo $ngx_source | sed -e "s/\//$ngx_regex_dirsep/g"` 308*3da8d17dSfengbojiang(姜凤波) ngx_obj=`echo $ngx_src \ 309*3da8d17dSfengbojiang(姜凤波) | sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \ 310*3da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \ 311*3da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \ 312*3da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"` 313*3da8d17dSfengbojiang(姜凤波) 314*3da8d17dSfengbojiang(姜凤波) if [ $ngx_source = src/http/modules/perl/ngx_http_perl_module.c ]; then 315*3da8d17dSfengbojiang(姜凤波) 316*3da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 317*3da8d17dSfengbojiang(姜凤波) 318*3da8d17dSfengbojiang(姜凤波)$ngx_obj: \$(CORE_DEPS) \$(HTTP_DEPS)$ngx_cont$ngx_src 319*3da8d17dSfengbojiang(姜凤波) $ngx_perl_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX 320*3da8d17dSfengbojiang(姜凤波) 321*3da8d17dSfengbojiang(姜凤波)END 322*3da8d17dSfengbojiang(姜凤波) else 323*3da8d17dSfengbojiang(姜凤波) 324*3da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 325*3da8d17dSfengbojiang(姜凤波) 326*3da8d17dSfengbojiang(姜凤波)$ngx_obj: \$(CORE_DEPS) \$(HTTP_DEPS)$ngx_cont$ngx_src 327*3da8d17dSfengbojiang(姜凤波) $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX 328*3da8d17dSfengbojiang(姜凤波) 329*3da8d17dSfengbojiang(姜凤波)END 330*3da8d17dSfengbojiang(姜凤波) 331*3da8d17dSfengbojiang(姜凤波) fi 332*3da8d17dSfengbojiang(姜凤波) done 333*3da8d17dSfengbojiang(姜凤波) 334*3da8d17dSfengbojiang(姜凤波)fi 335*3da8d17dSfengbojiang(姜凤波) 336*3da8d17dSfengbojiang(姜凤波) 337*3da8d17dSfengbojiang(姜凤波)# the mail sources 338*3da8d17dSfengbojiang(姜凤波) 339*3da8d17dSfengbojiang(姜凤波)if [ $MAIL = YES ]; then 340*3da8d17dSfengbojiang(姜凤波) 341*3da8d17dSfengbojiang(姜凤波) if test -n "$NGX_PCH"; then 342*3da8d17dSfengbojiang(姜凤波) ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)" 343*3da8d17dSfengbojiang(姜凤波) else 344*3da8d17dSfengbojiang(姜凤波) ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS) \$(MAIL_INCS)" 345*3da8d17dSfengbojiang(姜凤波) fi 346*3da8d17dSfengbojiang(姜凤波) 347*3da8d17dSfengbojiang(姜凤波) for ngx_src in $MAIL_SRCS 348*3da8d17dSfengbojiang(姜凤波) do 349*3da8d17dSfengbojiang(姜凤波) ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"` 350*3da8d17dSfengbojiang(姜凤波) ngx_obj=`echo $ngx_src \ 351*3da8d17dSfengbojiang(姜凤波) | sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \ 352*3da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \ 353*3da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \ 354*3da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"` 355*3da8d17dSfengbojiang(姜凤波) 356*3da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 357*3da8d17dSfengbojiang(姜凤波) 358*3da8d17dSfengbojiang(姜凤波)$ngx_obj: \$(CORE_DEPS) \$(MAIL_DEPS)$ngx_cont$ngx_src 359*3da8d17dSfengbojiang(姜凤波) $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX 360*3da8d17dSfengbojiang(姜凤波) 361*3da8d17dSfengbojiang(姜凤波)END 362*3da8d17dSfengbojiang(姜凤波) done 363*3da8d17dSfengbojiang(姜凤波) 364*3da8d17dSfengbojiang(姜凤波)fi 365*3da8d17dSfengbojiang(姜凤波) 366*3da8d17dSfengbojiang(姜凤波) 367*3da8d17dSfengbojiang(姜凤波)# the stream sources 368*3da8d17dSfengbojiang(姜凤波) 369*3da8d17dSfengbojiang(姜凤波)if [ $STREAM = YES ]; then 370*3da8d17dSfengbojiang(姜凤波) 371*3da8d17dSfengbojiang(姜凤波) if test -n "$NGX_PCH"; then 372*3da8d17dSfengbojiang(姜凤波) ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)" 373*3da8d17dSfengbojiang(姜凤波) else 374*3da8d17dSfengbojiang(姜凤波) ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS) \$(STREAM_INCS)" 375*3da8d17dSfengbojiang(姜凤波) fi 376*3da8d17dSfengbojiang(姜凤波) 377*3da8d17dSfengbojiang(姜凤波) for ngx_src in $STREAM_SRCS 378*3da8d17dSfengbojiang(姜凤波) do 379*3da8d17dSfengbojiang(姜凤波) ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"` 380*3da8d17dSfengbojiang(姜凤波) ngx_obj=`echo $ngx_src \ 381*3da8d17dSfengbojiang(姜凤波) | sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \ 382*3da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \ 383*3da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \ 384*3da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"` 385*3da8d17dSfengbojiang(姜凤波) 386*3da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 387*3da8d17dSfengbojiang(姜凤波) 388*3da8d17dSfengbojiang(姜凤波)$ngx_obj: \$(CORE_DEPS) \$(STREAM_DEPS)$ngx_cont$ngx_src 389*3da8d17dSfengbojiang(姜凤波) $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX 390*3da8d17dSfengbojiang(姜凤波) 391*3da8d17dSfengbojiang(姜凤波)END 392*3da8d17dSfengbojiang(姜凤波) done 393*3da8d17dSfengbojiang(姜凤波) 394*3da8d17dSfengbojiang(姜凤波)fi 395*3da8d17dSfengbojiang(姜凤波) 396*3da8d17dSfengbojiang(姜凤波) 397*3da8d17dSfengbojiang(姜凤波)# the misc sources 398*3da8d17dSfengbojiang(姜凤波) 399*3da8d17dSfengbojiang(姜凤波)if test -n "$MISC_SRCS"; then 400*3da8d17dSfengbojiang(姜凤波) 401*3da8d17dSfengbojiang(姜凤波) ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)" 402*3da8d17dSfengbojiang(姜凤波) 403*3da8d17dSfengbojiang(姜凤波) for ngx_src in $MISC_SRCS 404*3da8d17dSfengbojiang(姜凤波) do 405*3da8d17dSfengbojiang(姜凤波) ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"` 406*3da8d17dSfengbojiang(姜凤波) ngx_obj=`echo $ngx_src \ 407*3da8d17dSfengbojiang(姜凤波) | sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \ 408*3da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \ 409*3da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \ 410*3da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"` 411*3da8d17dSfengbojiang(姜凤波) 412*3da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 413*3da8d17dSfengbojiang(姜凤波) 414*3da8d17dSfengbojiang(姜凤波)$ngx_obj: \$(CORE_DEPS) $ngx_cont$ngx_src 415*3da8d17dSfengbojiang(姜凤波) $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX 416*3da8d17dSfengbojiang(姜凤波) 417*3da8d17dSfengbojiang(姜凤波)END 418*3da8d17dSfengbojiang(姜凤波) done 419*3da8d17dSfengbojiang(姜凤波) 420*3da8d17dSfengbojiang(姜凤波)fi 421*3da8d17dSfengbojiang(姜凤波) 422*3da8d17dSfengbojiang(姜凤波) 423*3da8d17dSfengbojiang(姜凤波)# the addons sources 424*3da8d17dSfengbojiang(姜凤波) 425*3da8d17dSfengbojiang(姜凤波)if test -n "$NGX_ADDON_SRCS"; then 426*3da8d17dSfengbojiang(姜凤波) 427*3da8d17dSfengbojiang(姜凤波) ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)" 428*3da8d17dSfengbojiang(姜凤波) 429*3da8d17dSfengbojiang(姜凤波) for ngx_src in $NGX_ADDON_SRCS 430*3da8d17dSfengbojiang(姜凤波) do 431*3da8d17dSfengbojiang(姜凤波) ngx_obj="addon/`basename \`dirname $ngx_src\``" 432*3da8d17dSfengbojiang(姜凤波) 433*3da8d17dSfengbojiang(姜凤波) ngx_obj=`echo $ngx_obj/\`basename $ngx_src\` \ 434*3da8d17dSfengbojiang(姜凤波) | sed -e "s/\//$ngx_regex_dirsep/g"` 435*3da8d17dSfengbojiang(姜凤波) 436*3da8d17dSfengbojiang(姜凤波) ngx_obj=`echo $ngx_obj \ 437*3da8d17dSfengbojiang(姜凤波) | sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \ 438*3da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \ 439*3da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \ 440*3da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"` 441*3da8d17dSfengbojiang(姜凤波) 442*3da8d17dSfengbojiang(姜凤波) ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"` 443*3da8d17dSfengbojiang(姜凤波) 444*3da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 445*3da8d17dSfengbojiang(姜凤波) 446*3da8d17dSfengbojiang(姜凤波)$ngx_obj: \$(ADDON_DEPS)$ngx_cont$ngx_src 447*3da8d17dSfengbojiang(姜凤波) $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX 448*3da8d17dSfengbojiang(姜凤波) 449*3da8d17dSfengbojiang(姜凤波)END 450*3da8d17dSfengbojiang(姜凤波) done 451*3da8d17dSfengbojiang(姜凤波) 452*3da8d17dSfengbojiang(姜凤波)fi 453*3da8d17dSfengbojiang(姜凤波) 454*3da8d17dSfengbojiang(姜凤波) 455*3da8d17dSfengbojiang(姜凤波)# the addons config.make 456*3da8d17dSfengbojiang(姜凤波) 457*3da8d17dSfengbojiang(姜凤波)if test -n "$NGX_ADDONS$DYNAMIC_ADDONS"; then 458*3da8d17dSfengbojiang(姜凤波) 459*3da8d17dSfengbojiang(姜凤波) for ngx_addon_dir in $NGX_ADDONS $DYNAMIC_ADDONS 460*3da8d17dSfengbojiang(姜凤波) do 461*3da8d17dSfengbojiang(姜凤波) if test -f $ngx_addon_dir/config.make; then 462*3da8d17dSfengbojiang(姜凤波) . $ngx_addon_dir/config.make 463*3da8d17dSfengbojiang(姜凤波) fi 464*3da8d17dSfengbojiang(姜凤波) done 465*3da8d17dSfengbojiang(姜凤波)fi 466*3da8d17dSfengbojiang(姜凤波) 467*3da8d17dSfengbojiang(姜凤波) 468*3da8d17dSfengbojiang(姜凤波)# Win32 resource file 469*3da8d17dSfengbojiang(姜凤波) 470*3da8d17dSfengbojiang(姜凤波)if test -n "$NGX_RES"; then 471*3da8d17dSfengbojiang(姜凤波) 472*3da8d17dSfengbojiang(姜凤波) ngx_res=`echo "$NGX_RES: $NGX_RC $NGX_ICONS" \ 473*3da8d17dSfengbojiang(姜凤波) | sed -e "s/\//$ngx_regex_dirsep/g"` 474*3da8d17dSfengbojiang(姜凤波) ngx_rcc=`echo $NGX_RCC | sed -e "s/\//$ngx_regex_dirsep/g"` 475*3da8d17dSfengbojiang(姜凤波) 476*3da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 477*3da8d17dSfengbojiang(姜凤波) 478*3da8d17dSfengbojiang(姜凤波)$ngx_res 479*3da8d17dSfengbojiang(姜凤波) $ngx_rcc 480*3da8d17dSfengbojiang(姜凤波) 481*3da8d17dSfengbojiang(姜凤波)END 482*3da8d17dSfengbojiang(姜凤波) 483*3da8d17dSfengbojiang(姜凤波)fi 484*3da8d17dSfengbojiang(姜凤波) 485*3da8d17dSfengbojiang(姜凤波) 486*3da8d17dSfengbojiang(姜凤波)# the precompiled headers 487*3da8d17dSfengbojiang(姜凤波) 488*3da8d17dSfengbojiang(姜凤波)if test -n "$NGX_PCH"; then 489*3da8d17dSfengbojiang(姜凤波) echo "#include <ngx_config.h>" > $NGX_OBJS/ngx_pch.c 490*3da8d17dSfengbojiang(姜凤波) 491*3da8d17dSfengbojiang(姜凤波) ngx_pch="src/core/ngx_config.h $OS_CONFIG $NGX_OBJS/ngx_auto_config.h" 492*3da8d17dSfengbojiang(姜凤波) ngx_pch=`echo "$NGX_PCH: $ngx_pch" | sed -e "s/\//$ngx_regex_dirsep/g"` 493*3da8d17dSfengbojiang(姜凤波) 494*3da8d17dSfengbojiang(姜凤波) ngx_src="\$(CC) \$(CFLAGS) $NGX_BUILD_PCH $ngx_compile_opt \$(ALL_INCS)" 495*3da8d17dSfengbojiang(姜凤波) ngx_src="$ngx_src $ngx_objout$NGX_OBJS/ngx_pch.obj $NGX_OBJS/ngx_pch.c" 496*3da8d17dSfengbojiang(姜凤波) ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"` 497*3da8d17dSfengbojiang(姜凤波) 498*3da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 499*3da8d17dSfengbojiang(姜凤波) 500*3da8d17dSfengbojiang(姜凤波)$ngx_pch 501*3da8d17dSfengbojiang(姜凤波) $ngx_src 502*3da8d17dSfengbojiang(姜凤波) 503*3da8d17dSfengbojiang(姜凤波)END 504*3da8d17dSfengbojiang(姜凤波) 505*3da8d17dSfengbojiang(姜凤波)fi 506*3da8d17dSfengbojiang(姜凤波) 507*3da8d17dSfengbojiang(姜凤波) 508*3da8d17dSfengbojiang(姜凤波)# dynamic modules 509*3da8d17dSfengbojiang(姜凤波) 510*3da8d17dSfengbojiang(姜凤波)if test -n "$NGX_PCH"; then 511*3da8d17dSfengbojiang(姜凤波) ngx_cc="\$(CC) $ngx_compile_opt $ngx_pic_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)" 512*3da8d17dSfengbojiang(姜凤波)else 513*3da8d17dSfengbojiang(姜凤波) ngx_cc="\$(CC) $ngx_compile_opt $ngx_pic_opt \$(CFLAGS) \$(ALL_INCS)" 514*3da8d17dSfengbojiang(姜凤波) ngx_perl_cc="\$(CC) $ngx_compile_opt $ngx_pic_opt \$(NGX_PERL_CFLAGS)" 515*3da8d17dSfengbojiang(姜凤波) ngx_perl_cc="$ngx_perl_cc \$(ALL_INCS)" 516*3da8d17dSfengbojiang(姜凤波)fi 517*3da8d17dSfengbojiang(姜凤波) 518*3da8d17dSfengbojiang(姜凤波)for ngx_module in $DYNAMIC_MODULES 519*3da8d17dSfengbojiang(姜凤波)do 520*3da8d17dSfengbojiang(姜凤波) eval ngx_module_srcs="\$${ngx_module}_SRCS" 521*3da8d17dSfengbojiang(姜凤波) eval eval ngx_module_libs="\\\"\$${ngx_module}_LIBS\\\"" 522*3da8d17dSfengbojiang(姜凤波) 523*3da8d17dSfengbojiang(姜凤波) eval ngx_module_modules="\$${ngx_module}_MODULES" 524*3da8d17dSfengbojiang(姜凤波) eval ngx_module_order="\$${ngx_module}_ORDER" 525*3da8d17dSfengbojiang(姜凤波) 526*3da8d17dSfengbojiang(姜凤波) ngx_modules_c=$NGX_OBJS/${ngx_module}_modules.c 527*3da8d17dSfengbojiang(姜凤波) 528*3da8d17dSfengbojiang(姜凤波) cat << END > $ngx_modules_c 529*3da8d17dSfengbojiang(姜凤波) 530*3da8d17dSfengbojiang(姜凤波)#include <ngx_config.h> 531*3da8d17dSfengbojiang(姜凤波)#include <ngx_core.h> 532*3da8d17dSfengbojiang(姜凤波) 533*3da8d17dSfengbojiang(姜凤波)END 534*3da8d17dSfengbojiang(姜凤波) 535*3da8d17dSfengbojiang(姜凤波) for mod in $ngx_module_modules 536*3da8d17dSfengbojiang(姜凤波) do 537*3da8d17dSfengbojiang(姜凤波) echo "extern ngx_module_t $mod;" >> $ngx_modules_c 538*3da8d17dSfengbojiang(姜凤波) done 539*3da8d17dSfengbojiang(姜凤波) 540*3da8d17dSfengbojiang(姜凤波) echo >> $ngx_modules_c 541*3da8d17dSfengbojiang(姜凤波) echo 'ngx_module_t *ngx_modules[] = {' >> $ngx_modules_c 542*3da8d17dSfengbojiang(姜凤波) 543*3da8d17dSfengbojiang(姜凤波) for mod in $ngx_module_modules 544*3da8d17dSfengbojiang(姜凤波) do 545*3da8d17dSfengbojiang(姜凤波) echo " &$mod," >> $ngx_modules_c 546*3da8d17dSfengbojiang(姜凤波) done 547*3da8d17dSfengbojiang(姜凤波) 548*3da8d17dSfengbojiang(姜凤波) cat << END >> $ngx_modules_c 549*3da8d17dSfengbojiang(姜凤波) NULL 550*3da8d17dSfengbojiang(姜凤波)}; 551*3da8d17dSfengbojiang(姜凤波) 552*3da8d17dSfengbojiang(姜凤波)END 553*3da8d17dSfengbojiang(姜凤波) 554*3da8d17dSfengbojiang(姜凤波) echo 'char *ngx_module_names[] = {' >> $ngx_modules_c 555*3da8d17dSfengbojiang(姜凤波) 556*3da8d17dSfengbojiang(姜凤波) for mod in $ngx_module_modules 557*3da8d17dSfengbojiang(姜凤波) do 558*3da8d17dSfengbojiang(姜凤波) echo " \"$mod\"," >> $ngx_modules_c 559*3da8d17dSfengbojiang(姜凤波) done 560*3da8d17dSfengbojiang(姜凤波) 561*3da8d17dSfengbojiang(姜凤波) cat << END >> $ngx_modules_c 562*3da8d17dSfengbojiang(姜凤波) NULL 563*3da8d17dSfengbojiang(姜凤波)}; 564*3da8d17dSfengbojiang(姜凤波) 565*3da8d17dSfengbojiang(姜凤波)END 566*3da8d17dSfengbojiang(姜凤波) 567*3da8d17dSfengbojiang(姜凤波) echo 'char *ngx_module_order[] = {' >> $ngx_modules_c 568*3da8d17dSfengbojiang(姜凤波) 569*3da8d17dSfengbojiang(姜凤波) for mod in $ngx_module_order 570*3da8d17dSfengbojiang(姜凤波) do 571*3da8d17dSfengbojiang(姜凤波) echo " \"$mod\"," >> $ngx_modules_c 572*3da8d17dSfengbojiang(姜凤波) done 573*3da8d17dSfengbojiang(姜凤波) 574*3da8d17dSfengbojiang(姜凤波) cat << END >> $ngx_modules_c 575*3da8d17dSfengbojiang(姜凤波) NULL 576*3da8d17dSfengbojiang(姜凤波)}; 577*3da8d17dSfengbojiang(姜凤波) 578*3da8d17dSfengbojiang(姜凤波)END 579*3da8d17dSfengbojiang(姜凤波) 580*3da8d17dSfengbojiang(姜凤波) ngx_modules_c=`echo $ngx_modules_c | sed -e "s/\//$ngx_regex_dirsep/g"` 581*3da8d17dSfengbojiang(姜凤波) 582*3da8d17dSfengbojiang(姜凤波) ngx_modules_obj=`echo $ngx_modules_c \ 583*3da8d17dSfengbojiang(姜凤波) | sed -e "s/\(.*\.\)c/\1$ngx_objext/"` 584*3da8d17dSfengbojiang(姜凤波) 585*3da8d17dSfengbojiang(姜凤波) ngx_module_objs= 586*3da8d17dSfengbojiang(姜凤波) for ngx_src in $ngx_module_srcs 587*3da8d17dSfengbojiang(姜凤波) do 588*3da8d17dSfengbojiang(姜凤波) case "$ngx_src" in 589*3da8d17dSfengbojiang(姜凤波) src/*) 590*3da8d17dSfengbojiang(姜凤波) ngx_obj=$ngx_src 591*3da8d17dSfengbojiang(姜凤波) ;; 592*3da8d17dSfengbojiang(姜凤波) *) 593*3da8d17dSfengbojiang(姜凤波) ngx_obj="addon/`basename \`dirname $ngx_src\``" 594*3da8d17dSfengbojiang(姜凤波) mkdir -p $NGX_OBJS/$ngx_obj 595*3da8d17dSfengbojiang(姜凤波) ngx_obj="$ngx_obj/`basename $ngx_src`" 596*3da8d17dSfengbojiang(姜凤波) ;; 597*3da8d17dSfengbojiang(姜凤波) esac 598*3da8d17dSfengbojiang(姜凤波) 599*3da8d17dSfengbojiang(姜凤波) ngx_module_objs="$ngx_module_objs $ngx_obj" 600*3da8d17dSfengbojiang(姜凤波) done 601*3da8d17dSfengbojiang(姜凤波) 602*3da8d17dSfengbojiang(姜凤波) ngx_module_objs=`echo $ngx_module_objs \ 603*3da8d17dSfengbojiang(姜凤波) | sed -e "s#\([^ ]*\.\)cpp#$NGX_OBJS\/\1$ngx_objext#g" \ 604*3da8d17dSfengbojiang(姜凤波) -e "s#\([^ ]*\.\)cc#$NGX_OBJS\/\1$ngx_objext#g" \ 605*3da8d17dSfengbojiang(姜凤波) -e "s#\([^ ]*\.\)c#$NGX_OBJS\/\1$ngx_objext#g" \ 606*3da8d17dSfengbojiang(姜凤波) -e "s#\([^ ]*\.\)S#$NGX_OBJS\/\1$ngx_objext#g"` 607*3da8d17dSfengbojiang(姜凤波) 608*3da8d17dSfengbojiang(姜凤波) ngx_deps=`echo $ngx_module_objs $ngx_modules_obj $LINK_DEPS \ 609*3da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \ 610*3da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 611*3da8d17dSfengbojiang(姜凤波) 612*3da8d17dSfengbojiang(姜凤波) ngx_objs=`echo $ngx_module_objs $ngx_modules_obj \ 613*3da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_long_regex_cont\1/g" \ 614*3da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 615*3da8d17dSfengbojiang(姜凤波) 616*3da8d17dSfengbojiang(姜凤波) ngx_obj=$NGX_OBJS$ngx_dirsep$ngx_module$ngx_modext 617*3da8d17dSfengbojiang(姜凤波) 618*3da8d17dSfengbojiang(姜凤波) if [ "$NGX_PLATFORM" = win32 ]; then 619*3da8d17dSfengbojiang(姜凤波) ngx_module_libs="$CORE_LIBS $ngx_module_libs" 620*3da8d17dSfengbojiang(姜凤波) fi 621*3da8d17dSfengbojiang(姜凤波) 622*3da8d17dSfengbojiang(姜凤波) ngx_libs= 623*3da8d17dSfengbojiang(姜凤波) if test -n "$NGX_LD_OPT$ngx_module_libs"; then 624*3da8d17dSfengbojiang(姜凤波) ngx_libs=`echo $NGX_LD_OPT $ngx_module_libs \ 625*3da8d17dSfengbojiang(姜凤波) | sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"` 626*3da8d17dSfengbojiang(姜凤波) fi 627*3da8d17dSfengbojiang(姜凤波) 628*3da8d17dSfengbojiang(姜凤波) ngx_link=${CORE_LINK:+`echo $CORE_LINK \ 629*3da8d17dSfengbojiang(姜凤波) | sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"`} 630*3da8d17dSfengbojiang(姜凤波) 631*3da8d17dSfengbojiang(姜凤波) ngx_module_link=${MODULE_LINK:+`echo $MODULE_LINK \ 632*3da8d17dSfengbojiang(姜凤波) | sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"`} 633*3da8d17dSfengbojiang(姜凤波) 634*3da8d17dSfengbojiang(姜凤波) 635*3da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 636*3da8d17dSfengbojiang(姜凤波) 637*3da8d17dSfengbojiang(姜凤波)modules: $ngx_obj 638*3da8d17dSfengbojiang(姜凤波) 639*3da8d17dSfengbojiang(姜凤波)$ngx_obj: $ngx_deps$ngx_spacer 640*3da8d17dSfengbojiang(姜凤波) \$(LINK) $ngx_long_start$ngx_binout$ngx_obj$ngx_long_cont$ngx_objs$ngx_libs$ngx_link$ngx_module_link 641*3da8d17dSfengbojiang(姜凤波)$ngx_long_end 642*3da8d17dSfengbojiang(姜凤波) 643*3da8d17dSfengbojiang(姜凤波)$ngx_modules_obj: \$(CORE_DEPS)$ngx_cont$ngx_modules_c 644*3da8d17dSfengbojiang(姜凤波) $ngx_cc$ngx_tab$ngx_objout$ngx_modules_obj$ngx_tab$ngx_modules_c$NGX_AUX 645*3da8d17dSfengbojiang(姜凤波) 646*3da8d17dSfengbojiang(姜凤波)END 647*3da8d17dSfengbojiang(姜凤波) 648*3da8d17dSfengbojiang(姜凤波) for ngx_source in $ngx_module_srcs 649*3da8d17dSfengbojiang(姜凤波) do 650*3da8d17dSfengbojiang(姜凤波) case "$ngx_source" in 651*3da8d17dSfengbojiang(姜凤波) src/*) 652*3da8d17dSfengbojiang(姜凤波) ngx_obj=`echo $ngx_source | sed -e "s/\//$ngx_regex_dirsep/g"` 653*3da8d17dSfengbojiang(姜凤波) ;; 654*3da8d17dSfengbojiang(姜凤波) *) 655*3da8d17dSfengbojiang(姜凤波) ngx_obj="addon/`basename \`dirname $ngx_source\``" 656*3da8d17dSfengbojiang(姜凤波) ngx_obj=`echo $ngx_obj/\`basename $ngx_source\` \ 657*3da8d17dSfengbojiang(姜凤波) | sed -e "s/\//$ngx_regex_dirsep/g"` 658*3da8d17dSfengbojiang(姜凤波) ;; 659*3da8d17dSfengbojiang(姜凤波) esac 660*3da8d17dSfengbojiang(姜凤波) 661*3da8d17dSfengbojiang(姜凤波) ngx_obj=`echo $ngx_obj \ 662*3da8d17dSfengbojiang(姜凤波) | sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \ 663*3da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \ 664*3da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \ 665*3da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"` 666*3da8d17dSfengbojiang(姜凤波) 667*3da8d17dSfengbojiang(姜凤波) ngx_src=`echo $ngx_source | sed -e "s/\//$ngx_regex_dirsep/g"` 668*3da8d17dSfengbojiang(姜凤波) 669*3da8d17dSfengbojiang(姜凤波) if [ $ngx_source = src/http/modules/perl/ngx_http_perl_module.c ]; then 670*3da8d17dSfengbojiang(姜凤波) 671*3da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 672*3da8d17dSfengbojiang(姜凤波) 673*3da8d17dSfengbojiang(姜凤波)$ngx_obj: \$(ADDON_DEPS)$ngx_cont$ngx_src 674*3da8d17dSfengbojiang(姜凤波) $ngx_perl_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX 675*3da8d17dSfengbojiang(姜凤波) 676*3da8d17dSfengbojiang(姜凤波)END 677*3da8d17dSfengbojiang(姜凤波) else 678*3da8d17dSfengbojiang(姜凤波) 679*3da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 680*3da8d17dSfengbojiang(姜凤波) 681*3da8d17dSfengbojiang(姜凤波)$ngx_obj: \$(ADDON_DEPS)$ngx_cont$ngx_src 682*3da8d17dSfengbojiang(姜凤波) $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX 683*3da8d17dSfengbojiang(姜凤波) 684*3da8d17dSfengbojiang(姜凤波)END 685*3da8d17dSfengbojiang(姜凤波) 686*3da8d17dSfengbojiang(姜凤波) fi 687*3da8d17dSfengbojiang(姜凤波) done 688*3da8d17dSfengbojiang(姜凤波)done 689