13da8d17dSfengbojiang(姜凤波) 23da8d17dSfengbojiang(姜凤波)# Copyright (C) Igor Sysoev 33da8d17dSfengbojiang(姜凤波)# Copyright (C) Nginx, Inc. 43da8d17dSfengbojiang(姜凤波) 53da8d17dSfengbojiang(姜凤波) 63da8d17dSfengbojiang(姜凤波)echo "creating $NGX_MAKEFILE" 73da8d17dSfengbojiang(姜凤波) 83da8d17dSfengbojiang(姜凤波)mkdir -p $NGX_OBJS/src/core $NGX_OBJS/src/event $NGX_OBJS/src/event/modules \ 93da8d17dSfengbojiang(姜凤波) $NGX_OBJS/src/os/unix $NGX_OBJS/src/os/win32 \ 103da8d17dSfengbojiang(姜凤波) $NGX_OBJS/src/http $NGX_OBJS/src/http/v2 $NGX_OBJS/src/http/modules \ 113da8d17dSfengbojiang(姜凤波) $NGX_OBJS/src/http/modules/perl \ 123da8d17dSfengbojiang(姜凤波) $NGX_OBJS/src/mail \ 133da8d17dSfengbojiang(姜凤波) $NGX_OBJS/src/stream \ 143da8d17dSfengbojiang(姜凤波) $NGX_OBJS/src/misc 153da8d17dSfengbojiang(姜凤波) 163da8d17dSfengbojiang(姜凤波) 173da8d17dSfengbojiang(姜凤波)ngx_objs_dir=$NGX_OBJS$ngx_regex_dirsep 183da8d17dSfengbojiang(姜凤波)ngx_use_pch=`echo $NGX_USE_PCH | sed -e "s/\//$ngx_regex_dirsep/g"` 193da8d17dSfengbojiang(姜凤波) 203da8d17dSfengbojiang(姜凤波) 213da8d17dSfengbojiang(姜凤波)if [ ! $FF_PATH ]; then 223da8d17dSfengbojiang(姜凤波) FF_PATH=/usr/local 233da8d17dSfengbojiang(姜凤波) echo "FF_PATH environment variable not defined, default FF_PATH=$FF_PATH" 243da8d17dSfengbojiang(姜凤波)fi 253da8d17dSfengbojiang(姜凤波) 26*8d76b62eSfengbojiangif [ ! $(pkg-config --exists libdpdk && echo 1) ]; then 27*8d76b62eSfengbojiang echo "error: no installation of DPDK found, maybe you shuld export environment variable \`PKG_CONFIG_PATH\`" 28*8d76b62eSfengbojiang exit 1 293da8d17dSfengbojiang(姜凤波)fi 303da8d17dSfengbojiang(姜凤波) 31*8d76b62eSfengbojiangCORE_LIBS="$CORE_LIBS \$(shell pkg-config --static --libs libdpdk)" 323da8d17dSfengbojiang(姜凤波)CORE_LIBS="$CORE_LIBS -L$FF_PATH/lib -Wl,--whole-archive,-lfstack,--no-whole-archive" 333da8d17dSfengbojiang(姜凤波)CORE_LIBS="$CORE_LIBS -Wl,--no-whole-archive -lrt -lm -ldl -lcrypto -lpthread -lnuma" 343da8d17dSfengbojiang(姜凤波) 353da8d17dSfengbojiang(姜凤波)cat << END > $NGX_MAKEFILE 363da8d17dSfengbojiang(姜凤波) 373da8d17dSfengbojiang(姜凤波)CC = $CC 383da8d17dSfengbojiang(姜凤波)CFLAGS = $CFLAGS 393da8d17dSfengbojiang(姜凤波)CPP = $CPP 403da8d17dSfengbojiang(姜凤波)LINK = $LINK 413da8d17dSfengbojiang(姜凤波) 423da8d17dSfengbojiang(姜凤波)CFLAGS += -I$FF_PATH/lib 433da8d17dSfengbojiang(姜凤波) 443da8d17dSfengbojiang(姜凤波)END 453da8d17dSfengbojiang(姜凤波) 463da8d17dSfengbojiang(姜凤波) 473da8d17dSfengbojiang(姜凤波)if test -n "$NGX_PERL_CFLAGS"; then 483da8d17dSfengbojiang(姜凤波) echo NGX_PERL_CFLAGS = $NGX_PERL_CFLAGS >> $NGX_MAKEFILE 493da8d17dSfengbojiang(姜凤波) echo NGX_PM_CFLAGS = $NGX_PM_CFLAGS >> $NGX_MAKEFILE 503da8d17dSfengbojiang(姜凤波) echo NGX_PM_LDFLAGS = $NGX_PM_LDFLAGS >> $NGX_MAKEFILE 513da8d17dSfengbojiang(姜凤波)fi 523da8d17dSfengbojiang(姜凤波) 533da8d17dSfengbojiang(姜凤波) 543da8d17dSfengbojiang(姜凤波)# ALL_INCS, required by the addons and by OpenWatcom C precompiled headers 553da8d17dSfengbojiang(姜凤波) 563da8d17dSfengbojiang(姜凤波)ngx_incs=`echo $CORE_INCS $NGX_OBJS $HTTP_INCS $MAIL_INCS $STREAM_INCS\ 573da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \ 583da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 593da8d17dSfengbojiang(姜凤波) 603da8d17dSfengbojiang(姜凤波)cat << END >> $NGX_MAKEFILE 613da8d17dSfengbojiang(姜凤波) 623da8d17dSfengbojiang(姜凤波)ALL_INCS = $ngx_include_opt$ngx_incs 633da8d17dSfengbojiang(姜凤波) 643da8d17dSfengbojiang(姜凤波)END 653da8d17dSfengbojiang(姜凤波) 663da8d17dSfengbojiang(姜凤波) 673da8d17dSfengbojiang(姜凤波)ngx_all_srcs="$CORE_SRCS" 683da8d17dSfengbojiang(姜凤波) 693da8d17dSfengbojiang(姜凤波) 703da8d17dSfengbojiang(姜凤波)# the core dependencies and include paths 713da8d17dSfengbojiang(姜凤波) 723da8d17dSfengbojiang(姜凤波)ngx_deps=`echo $CORE_DEPS $NGX_AUTO_CONFIG_H $NGX_PCH \ 733da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \ 743da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 753da8d17dSfengbojiang(姜凤波) 763da8d17dSfengbojiang(姜凤波)ngx_incs=`echo $CORE_INCS $NGX_OBJS \ 773da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \ 783da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 793da8d17dSfengbojiang(姜凤波) 803da8d17dSfengbojiang(姜凤波)cat << END >> $NGX_MAKEFILE 813da8d17dSfengbojiang(姜凤波) 823da8d17dSfengbojiang(姜凤波)CORE_DEPS = $ngx_deps 833da8d17dSfengbojiang(姜凤波) 843da8d17dSfengbojiang(姜凤波) 853da8d17dSfengbojiang(姜凤波)CORE_INCS = $ngx_include_opt$ngx_incs 863da8d17dSfengbojiang(姜凤波) 873da8d17dSfengbojiang(姜凤波)END 883da8d17dSfengbojiang(姜凤波) 893da8d17dSfengbojiang(姜凤波) 903da8d17dSfengbojiang(姜凤波)# the http dependencies and include paths 913da8d17dSfengbojiang(姜凤波) 923da8d17dSfengbojiang(姜凤波)if [ $HTTP = YES ]; then 933da8d17dSfengbojiang(姜凤波) 943da8d17dSfengbojiang(姜凤波) ngx_all_srcs="$ngx_all_srcs $HTTP_SRCS" 953da8d17dSfengbojiang(姜凤波) 963da8d17dSfengbojiang(姜凤波) ngx_deps=`echo $HTTP_DEPS \ 973da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \ 983da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 993da8d17dSfengbojiang(姜凤波) 1003da8d17dSfengbojiang(姜凤波) ngx_incs=`echo $HTTP_INCS \ 1013da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \ 1023da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 1033da8d17dSfengbojiang(姜凤波) 1043da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 1053da8d17dSfengbojiang(姜凤波) 1063da8d17dSfengbojiang(姜凤波)HTTP_DEPS = $ngx_deps 1073da8d17dSfengbojiang(姜凤波) 1083da8d17dSfengbojiang(姜凤波) 1093da8d17dSfengbojiang(姜凤波)HTTP_INCS = $ngx_include_opt$ngx_incs 1103da8d17dSfengbojiang(姜凤波) 1113da8d17dSfengbojiang(姜凤波)END 1123da8d17dSfengbojiang(姜凤波) 1133da8d17dSfengbojiang(姜凤波)fi 1143da8d17dSfengbojiang(姜凤波) 1153da8d17dSfengbojiang(姜凤波) 1163da8d17dSfengbojiang(姜凤波)# the mail dependencies and include paths 1173da8d17dSfengbojiang(姜凤波) 1183da8d17dSfengbojiang(姜凤波)if [ $MAIL != NO ]; then 1193da8d17dSfengbojiang(姜凤波) 1203da8d17dSfengbojiang(姜凤波) if [ $MAIL = YES ]; then 1213da8d17dSfengbojiang(姜凤波) ngx_all_srcs="$ngx_all_srcs $MAIL_SRCS" 1223da8d17dSfengbojiang(姜凤波) fi 1233da8d17dSfengbojiang(姜凤波) 1243da8d17dSfengbojiang(姜凤波) ngx_deps=`echo $MAIL_DEPS \ 1253da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \ 1263da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 1273da8d17dSfengbojiang(姜凤波) 1283da8d17dSfengbojiang(姜凤波) ngx_incs=`echo $MAIL_INCS \ 1293da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \ 1303da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 1313da8d17dSfengbojiang(姜凤波) 1323da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 1333da8d17dSfengbojiang(姜凤波) 1343da8d17dSfengbojiang(姜凤波)MAIL_DEPS = $ngx_deps 1353da8d17dSfengbojiang(姜凤波) 1363da8d17dSfengbojiang(姜凤波) 1373da8d17dSfengbojiang(姜凤波)MAIL_INCS = $ngx_include_opt$ngx_incs 1383da8d17dSfengbojiang(姜凤波) 1393da8d17dSfengbojiang(姜凤波)END 1403da8d17dSfengbojiang(姜凤波) 1413da8d17dSfengbojiang(姜凤波)fi 1423da8d17dSfengbojiang(姜凤波) 1433da8d17dSfengbojiang(姜凤波) 1443da8d17dSfengbojiang(姜凤波)# the stream dependencies and include paths 1453da8d17dSfengbojiang(姜凤波) 1463da8d17dSfengbojiang(姜凤波)if [ $STREAM != NO ]; then 1473da8d17dSfengbojiang(姜凤波) 1483da8d17dSfengbojiang(姜凤波) if [ $STREAM = YES ]; then 1493da8d17dSfengbojiang(姜凤波) ngx_all_srcs="$ngx_all_srcs $STREAM_SRCS" 1503da8d17dSfengbojiang(姜凤波) fi 1513da8d17dSfengbojiang(姜凤波) 1523da8d17dSfengbojiang(姜凤波) ngx_deps=`echo $STREAM_DEPS \ 1533da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \ 1543da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 1553da8d17dSfengbojiang(姜凤波) 1563da8d17dSfengbojiang(姜凤波) ngx_incs=`echo $STREAM_INCS \ 1573da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \ 1583da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 1593da8d17dSfengbojiang(姜凤波) 1603da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 1613da8d17dSfengbojiang(姜凤波) 1623da8d17dSfengbojiang(姜凤波)STREAM_DEPS = $ngx_deps 1633da8d17dSfengbojiang(姜凤波) 1643da8d17dSfengbojiang(姜凤波) 1653da8d17dSfengbojiang(姜凤波)STREAM_INCS = $ngx_include_opt$ngx_incs 1663da8d17dSfengbojiang(姜凤波) 1673da8d17dSfengbojiang(姜凤波)END 1683da8d17dSfengbojiang(姜凤波) 1693da8d17dSfengbojiang(姜凤波)fi 1703da8d17dSfengbojiang(姜凤波) 1713da8d17dSfengbojiang(姜凤波) 1723da8d17dSfengbojiang(姜凤波)ngx_all_srcs="$ngx_all_srcs $MISC_SRCS" 1733da8d17dSfengbojiang(姜凤波) 1743da8d17dSfengbojiang(姜凤波) 1753da8d17dSfengbojiang(姜凤波)if test -n "$NGX_ADDON_SRCS$DYNAMIC_MODULES"; then 1763da8d17dSfengbojiang(姜凤波) 1773da8d17dSfengbojiang(姜凤波)cat << END >> $NGX_MAKEFILE 1783da8d17dSfengbojiang(姜凤波) 1793da8d17dSfengbojiang(姜凤波)ADDON_DEPS = \$(CORE_DEPS) $NGX_ADDON_DEPS 1803da8d17dSfengbojiang(姜凤波) 1813da8d17dSfengbojiang(姜凤波)END 1823da8d17dSfengbojiang(姜凤波) 1833da8d17dSfengbojiang(姜凤波)fi 1843da8d17dSfengbojiang(姜凤波) 1853da8d17dSfengbojiang(姜凤波) 1863da8d17dSfengbojiang(姜凤波)# nginx 1873da8d17dSfengbojiang(姜凤波) 1883da8d17dSfengbojiang(姜凤波)ngx_all_srcs=`echo $ngx_all_srcs | sed -e "s/\//$ngx_regex_dirsep/g"` 1893da8d17dSfengbojiang(姜凤波) 1903da8d17dSfengbojiang(姜凤波)for ngx_src in $NGX_ADDON_SRCS 1913da8d17dSfengbojiang(姜凤波)do 1923da8d17dSfengbojiang(姜凤波) ngx_obj="addon/`basename \`dirname $ngx_src\``" 1933da8d17dSfengbojiang(姜凤波) 1943da8d17dSfengbojiang(姜凤波) test -d $NGX_OBJS/$ngx_obj || mkdir -p $NGX_OBJS/$ngx_obj 1953da8d17dSfengbojiang(姜凤波) 1963da8d17dSfengbojiang(姜凤波) ngx_obj=`echo $ngx_obj/\`basename $ngx_src\` \ 1973da8d17dSfengbojiang(姜凤波) | sed -e "s/\//$ngx_regex_dirsep/g"` 1983da8d17dSfengbojiang(姜凤波) 1993da8d17dSfengbojiang(姜凤波) ngx_all_srcs="$ngx_all_srcs $ngx_obj" 2003da8d17dSfengbojiang(姜凤波)done 2013da8d17dSfengbojiang(姜凤波) 2023da8d17dSfengbojiang(姜凤波)ngx_all_objs=`echo $ngx_all_srcs \ 2033da8d17dSfengbojiang(姜凤波) | sed -e "s#\([^ ]*\.\)cpp#$NGX_OBJS\/\1$ngx_objext#g" \ 2043da8d17dSfengbojiang(姜凤波) -e "s#\([^ ]*\.\)cc#$NGX_OBJS\/\1$ngx_objext#g" \ 2053da8d17dSfengbojiang(姜凤波) -e "s#\([^ ]*\.\)c#$NGX_OBJS\/\1$ngx_objext#g" \ 2063da8d17dSfengbojiang(姜凤波) -e "s#\([^ ]*\.\)S#$NGX_OBJS\/\1$ngx_objext#g"` 2073da8d17dSfengbojiang(姜凤波) 2083da8d17dSfengbojiang(姜凤波)ngx_modules_c=`echo $NGX_MODULES_C | sed -e "s/\//$ngx_regex_dirsep/g"` 2093da8d17dSfengbojiang(姜凤波) 2103da8d17dSfengbojiang(姜凤波)ngx_modules_obj=`echo $ngx_modules_c | sed -e "s/\(.*\.\)c/\1$ngx_objext/"` 2113da8d17dSfengbojiang(姜凤波) 2123da8d17dSfengbojiang(姜凤波) 2133da8d17dSfengbojiang(姜凤波)if test -n "$NGX_RES"; then 2143da8d17dSfengbojiang(姜凤波) ngx_res=$NGX_RES 2153da8d17dSfengbojiang(姜凤波)else 2163da8d17dSfengbojiang(姜凤波) ngx_res="$NGX_RC $NGX_ICONS" 2173da8d17dSfengbojiang(姜凤波) ngx_rcc=`echo $NGX_RCC | sed -e "s/\//$ngx_regex_dirsep/g"` 2183da8d17dSfengbojiang(姜凤波)fi 2193da8d17dSfengbojiang(姜凤波) 2203da8d17dSfengbojiang(姜凤波)ngx_deps=`echo $ngx_all_objs $ngx_modules_obj $ngx_res $LINK_DEPS \ 2213da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \ 2223da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 2233da8d17dSfengbojiang(姜凤波) 2243da8d17dSfengbojiang(姜凤波)ngx_objs=`echo $ngx_all_objs $ngx_modules_obj \ 2253da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_long_regex_cont\1/g" \ 2263da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 2273da8d17dSfengbojiang(姜凤波) 2283da8d17dSfengbojiang(姜凤波)ngx_libs= 2293da8d17dSfengbojiang(姜凤波)if test -n "$NGX_LD_OPT$CORE_LIBS"; then 2303da8d17dSfengbojiang(姜凤波) ngx_libs=`echo $NGX_LD_OPT $CORE_LIBS \ 2313da8d17dSfengbojiang(姜凤波) | sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"` 2323da8d17dSfengbojiang(姜凤波)fi 2333da8d17dSfengbojiang(姜凤波) 2343da8d17dSfengbojiang(姜凤波)ngx_link=${CORE_LINK:+`echo $CORE_LINK \ 2353da8d17dSfengbojiang(姜凤波) | sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"`} 2363da8d17dSfengbojiang(姜凤波) 2373da8d17dSfengbojiang(姜凤波)ngx_main_link=${MAIN_LINK:+`echo $MAIN_LINK \ 2383da8d17dSfengbojiang(姜凤波) | sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"`} 2393da8d17dSfengbojiang(姜凤波) 2403da8d17dSfengbojiang(姜凤波) 2413da8d17dSfengbojiang(姜凤波)cat << END >> $NGX_MAKEFILE 2423da8d17dSfengbojiang(姜凤波) 2433da8d17dSfengbojiang(姜凤波)build: binary modules manpage 2443da8d17dSfengbojiang(姜凤波) 2453da8d17dSfengbojiang(姜凤波)binary: $NGX_OBJS${ngx_dirsep}nginx$ngx_binext 2463da8d17dSfengbojiang(姜凤波) 2473da8d17dSfengbojiang(姜凤波)$NGX_OBJS${ngx_dirsep}nginx$ngx_binext: $ngx_deps$ngx_spacer 2483da8d17dSfengbojiang(姜凤波) \$(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 2493da8d17dSfengbojiang(姜凤波) $ngx_rcc 2503da8d17dSfengbojiang(姜凤波)$ngx_long_end 2513da8d17dSfengbojiang(姜凤波) 2523da8d17dSfengbojiang(姜凤波)modules: 2533da8d17dSfengbojiang(姜凤波)END 2543da8d17dSfengbojiang(姜凤波) 2553da8d17dSfengbojiang(姜凤波) 2563da8d17dSfengbojiang(姜凤波)# ngx_modules.c 2573da8d17dSfengbojiang(姜凤波) 2583da8d17dSfengbojiang(姜凤波)if test -n "$NGX_PCH"; then 2593da8d17dSfengbojiang(姜凤波) ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)" 2603da8d17dSfengbojiang(姜凤波)else 2613da8d17dSfengbojiang(姜凤波) ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS)" 2623da8d17dSfengbojiang(姜凤波)fi 2633da8d17dSfengbojiang(姜凤波) 2643da8d17dSfengbojiang(姜凤波)cat << END >> $NGX_MAKEFILE 2653da8d17dSfengbojiang(姜凤波) 2663da8d17dSfengbojiang(姜凤波)$ngx_modules_obj: \$(CORE_DEPS)$ngx_cont$ngx_modules_c 2673da8d17dSfengbojiang(姜凤波) $ngx_cc$ngx_tab$ngx_objout$ngx_modules_obj$ngx_tab$ngx_modules_c$NGX_AUX 2683da8d17dSfengbojiang(姜凤波) 2693da8d17dSfengbojiang(姜凤波)END 2703da8d17dSfengbojiang(姜凤波) 2713da8d17dSfengbojiang(姜凤波) 2723da8d17dSfengbojiang(姜凤波)# the core sources 2733da8d17dSfengbojiang(姜凤波) 2743da8d17dSfengbojiang(姜凤波)for ngx_src in $CORE_SRCS 2753da8d17dSfengbojiang(姜凤波)do 2763da8d17dSfengbojiang(姜凤波) ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"` 2773da8d17dSfengbojiang(姜凤波) ngx_obj=`echo $ngx_src \ 2783da8d17dSfengbojiang(姜凤波) | sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \ 2793da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \ 2803da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \ 2813da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"` 2823da8d17dSfengbojiang(姜凤波) 2833da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 2843da8d17dSfengbojiang(姜凤波) 2853da8d17dSfengbojiang(姜凤波)$ngx_obj: \$(CORE_DEPS)$ngx_cont$ngx_src 2863da8d17dSfengbojiang(姜凤波) $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX 2873da8d17dSfengbojiang(姜凤波) 2883da8d17dSfengbojiang(姜凤波)END 2893da8d17dSfengbojiang(姜凤波) 2903da8d17dSfengbojiang(姜凤波)done 2913da8d17dSfengbojiang(姜凤波) 2923da8d17dSfengbojiang(姜凤波) 2933da8d17dSfengbojiang(姜凤波)# the http sources 2943da8d17dSfengbojiang(姜凤波) 2953da8d17dSfengbojiang(姜凤波)if [ $HTTP = YES ]; then 2963da8d17dSfengbojiang(姜凤波) 2973da8d17dSfengbojiang(姜凤波) if test -n "$NGX_PCH"; then 2983da8d17dSfengbojiang(姜凤波) ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)" 2993da8d17dSfengbojiang(姜凤波) else 3003da8d17dSfengbojiang(姜凤波) ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS) \$(HTTP_INCS)" 3013da8d17dSfengbojiang(姜凤波) ngx_perl_cc="\$(CC) $ngx_compile_opt \$(NGX_PERL_CFLAGS)" 3023da8d17dSfengbojiang(姜凤波) ngx_perl_cc="$ngx_perl_cc \$(CORE_INCS) \$(HTTP_INCS)" 3033da8d17dSfengbojiang(姜凤波) fi 3043da8d17dSfengbojiang(姜凤波) 3053da8d17dSfengbojiang(姜凤波) for ngx_source in $HTTP_SRCS 3063da8d17dSfengbojiang(姜凤波) do 3073da8d17dSfengbojiang(姜凤波) ngx_src=`echo $ngx_source | sed -e "s/\//$ngx_regex_dirsep/g"` 3083da8d17dSfengbojiang(姜凤波) ngx_obj=`echo $ngx_src \ 3093da8d17dSfengbojiang(姜凤波) | sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \ 3103da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \ 3113da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \ 3123da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"` 3133da8d17dSfengbojiang(姜凤波) 3143da8d17dSfengbojiang(姜凤波) if [ $ngx_source = src/http/modules/perl/ngx_http_perl_module.c ]; then 3153da8d17dSfengbojiang(姜凤波) 3163da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 3173da8d17dSfengbojiang(姜凤波) 3183da8d17dSfengbojiang(姜凤波)$ngx_obj: \$(CORE_DEPS) \$(HTTP_DEPS)$ngx_cont$ngx_src 3193da8d17dSfengbojiang(姜凤波) $ngx_perl_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX 3203da8d17dSfengbojiang(姜凤波) 3213da8d17dSfengbojiang(姜凤波)END 3223da8d17dSfengbojiang(姜凤波) else 3233da8d17dSfengbojiang(姜凤波) 3243da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 3253da8d17dSfengbojiang(姜凤波) 3263da8d17dSfengbojiang(姜凤波)$ngx_obj: \$(CORE_DEPS) \$(HTTP_DEPS)$ngx_cont$ngx_src 3273da8d17dSfengbojiang(姜凤波) $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX 3283da8d17dSfengbojiang(姜凤波) 3293da8d17dSfengbojiang(姜凤波)END 3303da8d17dSfengbojiang(姜凤波) 3313da8d17dSfengbojiang(姜凤波) fi 3323da8d17dSfengbojiang(姜凤波) done 3333da8d17dSfengbojiang(姜凤波) 3343da8d17dSfengbojiang(姜凤波)fi 3353da8d17dSfengbojiang(姜凤波) 3363da8d17dSfengbojiang(姜凤波) 3373da8d17dSfengbojiang(姜凤波)# the mail sources 3383da8d17dSfengbojiang(姜凤波) 3393da8d17dSfengbojiang(姜凤波)if [ $MAIL = YES ]; then 3403da8d17dSfengbojiang(姜凤波) 3413da8d17dSfengbojiang(姜凤波) if test -n "$NGX_PCH"; then 3423da8d17dSfengbojiang(姜凤波) ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)" 3433da8d17dSfengbojiang(姜凤波) else 3443da8d17dSfengbojiang(姜凤波) ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS) \$(MAIL_INCS)" 3453da8d17dSfengbojiang(姜凤波) fi 3463da8d17dSfengbojiang(姜凤波) 3473da8d17dSfengbojiang(姜凤波) for ngx_src in $MAIL_SRCS 3483da8d17dSfengbojiang(姜凤波) do 3493da8d17dSfengbojiang(姜凤波) ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"` 3503da8d17dSfengbojiang(姜凤波) ngx_obj=`echo $ngx_src \ 3513da8d17dSfengbojiang(姜凤波) | sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \ 3523da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \ 3533da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \ 3543da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"` 3553da8d17dSfengbojiang(姜凤波) 3563da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 3573da8d17dSfengbojiang(姜凤波) 3583da8d17dSfengbojiang(姜凤波)$ngx_obj: \$(CORE_DEPS) \$(MAIL_DEPS)$ngx_cont$ngx_src 3593da8d17dSfengbojiang(姜凤波) $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX 3603da8d17dSfengbojiang(姜凤波) 3613da8d17dSfengbojiang(姜凤波)END 3623da8d17dSfengbojiang(姜凤波) done 3633da8d17dSfengbojiang(姜凤波) 3643da8d17dSfengbojiang(姜凤波)fi 3653da8d17dSfengbojiang(姜凤波) 3663da8d17dSfengbojiang(姜凤波) 3673da8d17dSfengbojiang(姜凤波)# the stream sources 3683da8d17dSfengbojiang(姜凤波) 3693da8d17dSfengbojiang(姜凤波)if [ $STREAM = YES ]; then 3703da8d17dSfengbojiang(姜凤波) 3713da8d17dSfengbojiang(姜凤波) if test -n "$NGX_PCH"; then 3723da8d17dSfengbojiang(姜凤波) ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)" 3733da8d17dSfengbojiang(姜凤波) else 3743da8d17dSfengbojiang(姜凤波) ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS) \$(STREAM_INCS)" 3753da8d17dSfengbojiang(姜凤波) fi 3763da8d17dSfengbojiang(姜凤波) 3773da8d17dSfengbojiang(姜凤波) for ngx_src in $STREAM_SRCS 3783da8d17dSfengbojiang(姜凤波) do 3793da8d17dSfengbojiang(姜凤波) ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"` 3803da8d17dSfengbojiang(姜凤波) ngx_obj=`echo $ngx_src \ 3813da8d17dSfengbojiang(姜凤波) | sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \ 3823da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \ 3833da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \ 3843da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"` 3853da8d17dSfengbojiang(姜凤波) 3863da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 3873da8d17dSfengbojiang(姜凤波) 3883da8d17dSfengbojiang(姜凤波)$ngx_obj: \$(CORE_DEPS) \$(STREAM_DEPS)$ngx_cont$ngx_src 3893da8d17dSfengbojiang(姜凤波) $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX 3903da8d17dSfengbojiang(姜凤波) 3913da8d17dSfengbojiang(姜凤波)END 3923da8d17dSfengbojiang(姜凤波) done 3933da8d17dSfengbojiang(姜凤波) 3943da8d17dSfengbojiang(姜凤波)fi 3953da8d17dSfengbojiang(姜凤波) 3963da8d17dSfengbojiang(姜凤波) 3973da8d17dSfengbojiang(姜凤波)# the misc sources 3983da8d17dSfengbojiang(姜凤波) 3993da8d17dSfengbojiang(姜凤波)if test -n "$MISC_SRCS"; then 4003da8d17dSfengbojiang(姜凤波) 4013da8d17dSfengbojiang(姜凤波) ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)" 4023da8d17dSfengbojiang(姜凤波) 4033da8d17dSfengbojiang(姜凤波) for ngx_src in $MISC_SRCS 4043da8d17dSfengbojiang(姜凤波) do 4053da8d17dSfengbojiang(姜凤波) ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"` 4063da8d17dSfengbojiang(姜凤波) ngx_obj=`echo $ngx_src \ 4073da8d17dSfengbojiang(姜凤波) | sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \ 4083da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \ 4093da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \ 4103da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"` 4113da8d17dSfengbojiang(姜凤波) 4123da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 4133da8d17dSfengbojiang(姜凤波) 4143da8d17dSfengbojiang(姜凤波)$ngx_obj: \$(CORE_DEPS) $ngx_cont$ngx_src 4153da8d17dSfengbojiang(姜凤波) $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX 4163da8d17dSfengbojiang(姜凤波) 4173da8d17dSfengbojiang(姜凤波)END 4183da8d17dSfengbojiang(姜凤波) done 4193da8d17dSfengbojiang(姜凤波) 4203da8d17dSfengbojiang(姜凤波)fi 4213da8d17dSfengbojiang(姜凤波) 4223da8d17dSfengbojiang(姜凤波) 4233da8d17dSfengbojiang(姜凤波)# the addons sources 4243da8d17dSfengbojiang(姜凤波) 4253da8d17dSfengbojiang(姜凤波)if test -n "$NGX_ADDON_SRCS"; then 4263da8d17dSfengbojiang(姜凤波) 4273da8d17dSfengbojiang(姜凤波) ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)" 4283da8d17dSfengbojiang(姜凤波) 4293da8d17dSfengbojiang(姜凤波) for ngx_src in $NGX_ADDON_SRCS 4303da8d17dSfengbojiang(姜凤波) do 4313da8d17dSfengbojiang(姜凤波) ngx_obj="addon/`basename \`dirname $ngx_src\``" 4323da8d17dSfengbojiang(姜凤波) 4333da8d17dSfengbojiang(姜凤波) ngx_obj=`echo $ngx_obj/\`basename $ngx_src\` \ 4343da8d17dSfengbojiang(姜凤波) | sed -e "s/\//$ngx_regex_dirsep/g"` 4353da8d17dSfengbojiang(姜凤波) 4363da8d17dSfengbojiang(姜凤波) ngx_obj=`echo $ngx_obj \ 4373da8d17dSfengbojiang(姜凤波) | sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \ 4383da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \ 4393da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \ 4403da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"` 4413da8d17dSfengbojiang(姜凤波) 4423da8d17dSfengbojiang(姜凤波) ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"` 4433da8d17dSfengbojiang(姜凤波) 4443da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 4453da8d17dSfengbojiang(姜凤波) 4463da8d17dSfengbojiang(姜凤波)$ngx_obj: \$(ADDON_DEPS)$ngx_cont$ngx_src 4473da8d17dSfengbojiang(姜凤波) $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX 4483da8d17dSfengbojiang(姜凤波) 4493da8d17dSfengbojiang(姜凤波)END 4503da8d17dSfengbojiang(姜凤波) done 4513da8d17dSfengbojiang(姜凤波) 4523da8d17dSfengbojiang(姜凤波)fi 4533da8d17dSfengbojiang(姜凤波) 4543da8d17dSfengbojiang(姜凤波) 4553da8d17dSfengbojiang(姜凤波)# the addons config.make 4563da8d17dSfengbojiang(姜凤波) 4573da8d17dSfengbojiang(姜凤波)if test -n "$NGX_ADDONS$DYNAMIC_ADDONS"; then 4583da8d17dSfengbojiang(姜凤波) 4593da8d17dSfengbojiang(姜凤波) for ngx_addon_dir in $NGX_ADDONS $DYNAMIC_ADDONS 4603da8d17dSfengbojiang(姜凤波) do 4613da8d17dSfengbojiang(姜凤波) if test -f $ngx_addon_dir/config.make; then 4623da8d17dSfengbojiang(姜凤波) . $ngx_addon_dir/config.make 4633da8d17dSfengbojiang(姜凤波) fi 4643da8d17dSfengbojiang(姜凤波) done 4653da8d17dSfengbojiang(姜凤波)fi 4663da8d17dSfengbojiang(姜凤波) 4673da8d17dSfengbojiang(姜凤波) 4683da8d17dSfengbojiang(姜凤波)# Win32 resource file 4693da8d17dSfengbojiang(姜凤波) 4703da8d17dSfengbojiang(姜凤波)if test -n "$NGX_RES"; then 4713da8d17dSfengbojiang(姜凤波) 4723da8d17dSfengbojiang(姜凤波) ngx_res=`echo "$NGX_RES: $NGX_RC $NGX_ICONS" \ 4733da8d17dSfengbojiang(姜凤波) | sed -e "s/\//$ngx_regex_dirsep/g"` 4743da8d17dSfengbojiang(姜凤波) ngx_rcc=`echo $NGX_RCC | sed -e "s/\//$ngx_regex_dirsep/g"` 4753da8d17dSfengbojiang(姜凤波) 4763da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 4773da8d17dSfengbojiang(姜凤波) 4783da8d17dSfengbojiang(姜凤波)$ngx_res 4793da8d17dSfengbojiang(姜凤波) $ngx_rcc 4803da8d17dSfengbojiang(姜凤波) 4813da8d17dSfengbojiang(姜凤波)END 4823da8d17dSfengbojiang(姜凤波) 4833da8d17dSfengbojiang(姜凤波)fi 4843da8d17dSfengbojiang(姜凤波) 4853da8d17dSfengbojiang(姜凤波) 4863da8d17dSfengbojiang(姜凤波)# the precompiled headers 4873da8d17dSfengbojiang(姜凤波) 4883da8d17dSfengbojiang(姜凤波)if test -n "$NGX_PCH"; then 4893da8d17dSfengbojiang(姜凤波) echo "#include <ngx_config.h>" > $NGX_OBJS/ngx_pch.c 4903da8d17dSfengbojiang(姜凤波) 4913da8d17dSfengbojiang(姜凤波) ngx_pch="src/core/ngx_config.h $OS_CONFIG $NGX_OBJS/ngx_auto_config.h" 4923da8d17dSfengbojiang(姜凤波) ngx_pch=`echo "$NGX_PCH: $ngx_pch" | sed -e "s/\//$ngx_regex_dirsep/g"` 4933da8d17dSfengbojiang(姜凤波) 4943da8d17dSfengbojiang(姜凤波) ngx_src="\$(CC) \$(CFLAGS) $NGX_BUILD_PCH $ngx_compile_opt \$(ALL_INCS)" 4953da8d17dSfengbojiang(姜凤波) ngx_src="$ngx_src $ngx_objout$NGX_OBJS/ngx_pch.obj $NGX_OBJS/ngx_pch.c" 4963da8d17dSfengbojiang(姜凤波) ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"` 4973da8d17dSfengbojiang(姜凤波) 4983da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 4993da8d17dSfengbojiang(姜凤波) 5003da8d17dSfengbojiang(姜凤波)$ngx_pch 5013da8d17dSfengbojiang(姜凤波) $ngx_src 5023da8d17dSfengbojiang(姜凤波) 5033da8d17dSfengbojiang(姜凤波)END 5043da8d17dSfengbojiang(姜凤波) 5053da8d17dSfengbojiang(姜凤波)fi 5063da8d17dSfengbojiang(姜凤波) 5073da8d17dSfengbojiang(姜凤波) 5083da8d17dSfengbojiang(姜凤波)# dynamic modules 5093da8d17dSfengbojiang(姜凤波) 5103da8d17dSfengbojiang(姜凤波)if test -n "$NGX_PCH"; then 5113da8d17dSfengbojiang(姜凤波) ngx_cc="\$(CC) $ngx_compile_opt $ngx_pic_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)" 5123da8d17dSfengbojiang(姜凤波)else 5133da8d17dSfengbojiang(姜凤波) ngx_cc="\$(CC) $ngx_compile_opt $ngx_pic_opt \$(CFLAGS) \$(ALL_INCS)" 5143da8d17dSfengbojiang(姜凤波) ngx_perl_cc="\$(CC) $ngx_compile_opt $ngx_pic_opt \$(NGX_PERL_CFLAGS)" 5153da8d17dSfengbojiang(姜凤波) ngx_perl_cc="$ngx_perl_cc \$(ALL_INCS)" 5163da8d17dSfengbojiang(姜凤波)fi 5173da8d17dSfengbojiang(姜凤波) 5183da8d17dSfengbojiang(姜凤波)for ngx_module in $DYNAMIC_MODULES 5193da8d17dSfengbojiang(姜凤波)do 5203da8d17dSfengbojiang(姜凤波) eval ngx_module_srcs="\$${ngx_module}_SRCS" 5213da8d17dSfengbojiang(姜凤波) eval eval ngx_module_libs="\\\"\$${ngx_module}_LIBS\\\"" 5223da8d17dSfengbojiang(姜凤波) 5233da8d17dSfengbojiang(姜凤波) eval ngx_module_modules="\$${ngx_module}_MODULES" 5243da8d17dSfengbojiang(姜凤波) eval ngx_module_order="\$${ngx_module}_ORDER" 5253da8d17dSfengbojiang(姜凤波) 5263da8d17dSfengbojiang(姜凤波) ngx_modules_c=$NGX_OBJS/${ngx_module}_modules.c 5273da8d17dSfengbojiang(姜凤波) 5283da8d17dSfengbojiang(姜凤波) cat << END > $ngx_modules_c 5293da8d17dSfengbojiang(姜凤波) 5303da8d17dSfengbojiang(姜凤波)#include <ngx_config.h> 5313da8d17dSfengbojiang(姜凤波)#include <ngx_core.h> 5323da8d17dSfengbojiang(姜凤波) 5333da8d17dSfengbojiang(姜凤波)END 5343da8d17dSfengbojiang(姜凤波) 5353da8d17dSfengbojiang(姜凤波) for mod in $ngx_module_modules 5363da8d17dSfengbojiang(姜凤波) do 5373da8d17dSfengbojiang(姜凤波) echo "extern ngx_module_t $mod;" >> $ngx_modules_c 5383da8d17dSfengbojiang(姜凤波) done 5393da8d17dSfengbojiang(姜凤波) 5403da8d17dSfengbojiang(姜凤波) echo >> $ngx_modules_c 5413da8d17dSfengbojiang(姜凤波) echo 'ngx_module_t *ngx_modules[] = {' >> $ngx_modules_c 5423da8d17dSfengbojiang(姜凤波) 5433da8d17dSfengbojiang(姜凤波) for mod in $ngx_module_modules 5443da8d17dSfengbojiang(姜凤波) do 5453da8d17dSfengbojiang(姜凤波) echo " &$mod," >> $ngx_modules_c 5463da8d17dSfengbojiang(姜凤波) done 5473da8d17dSfengbojiang(姜凤波) 5483da8d17dSfengbojiang(姜凤波) cat << END >> $ngx_modules_c 5493da8d17dSfengbojiang(姜凤波) NULL 5503da8d17dSfengbojiang(姜凤波)}; 5513da8d17dSfengbojiang(姜凤波) 5523da8d17dSfengbojiang(姜凤波)END 5533da8d17dSfengbojiang(姜凤波) 5543da8d17dSfengbojiang(姜凤波) echo 'char *ngx_module_names[] = {' >> $ngx_modules_c 5553da8d17dSfengbojiang(姜凤波) 5563da8d17dSfengbojiang(姜凤波) for mod in $ngx_module_modules 5573da8d17dSfengbojiang(姜凤波) do 5583da8d17dSfengbojiang(姜凤波) echo " \"$mod\"," >> $ngx_modules_c 5593da8d17dSfengbojiang(姜凤波) done 5603da8d17dSfengbojiang(姜凤波) 5613da8d17dSfengbojiang(姜凤波) cat << END >> $ngx_modules_c 5623da8d17dSfengbojiang(姜凤波) NULL 5633da8d17dSfengbojiang(姜凤波)}; 5643da8d17dSfengbojiang(姜凤波) 5653da8d17dSfengbojiang(姜凤波)END 5663da8d17dSfengbojiang(姜凤波) 5673da8d17dSfengbojiang(姜凤波) echo 'char *ngx_module_order[] = {' >> $ngx_modules_c 5683da8d17dSfengbojiang(姜凤波) 5693da8d17dSfengbojiang(姜凤波) for mod in $ngx_module_order 5703da8d17dSfengbojiang(姜凤波) do 5713da8d17dSfengbojiang(姜凤波) echo " \"$mod\"," >> $ngx_modules_c 5723da8d17dSfengbojiang(姜凤波) done 5733da8d17dSfengbojiang(姜凤波) 5743da8d17dSfengbojiang(姜凤波) cat << END >> $ngx_modules_c 5753da8d17dSfengbojiang(姜凤波) NULL 5763da8d17dSfengbojiang(姜凤波)}; 5773da8d17dSfengbojiang(姜凤波) 5783da8d17dSfengbojiang(姜凤波)END 5793da8d17dSfengbojiang(姜凤波) 5803da8d17dSfengbojiang(姜凤波) ngx_modules_c=`echo $ngx_modules_c | sed -e "s/\//$ngx_regex_dirsep/g"` 5813da8d17dSfengbojiang(姜凤波) 5823da8d17dSfengbojiang(姜凤波) ngx_modules_obj=`echo $ngx_modules_c \ 5833da8d17dSfengbojiang(姜凤波) | sed -e "s/\(.*\.\)c/\1$ngx_objext/"` 5843da8d17dSfengbojiang(姜凤波) 5853da8d17dSfengbojiang(姜凤波) ngx_module_objs= 5863da8d17dSfengbojiang(姜凤波) for ngx_src in $ngx_module_srcs 5873da8d17dSfengbojiang(姜凤波) do 5883da8d17dSfengbojiang(姜凤波) case "$ngx_src" in 5893da8d17dSfengbojiang(姜凤波) src/*) 5903da8d17dSfengbojiang(姜凤波) ngx_obj=$ngx_src 5913da8d17dSfengbojiang(姜凤波) ;; 5923da8d17dSfengbojiang(姜凤波) *) 5933da8d17dSfengbojiang(姜凤波) ngx_obj="addon/`basename \`dirname $ngx_src\``" 5943da8d17dSfengbojiang(姜凤波) mkdir -p $NGX_OBJS/$ngx_obj 5953da8d17dSfengbojiang(姜凤波) ngx_obj="$ngx_obj/`basename $ngx_src`" 5963da8d17dSfengbojiang(姜凤波) ;; 5973da8d17dSfengbojiang(姜凤波) esac 5983da8d17dSfengbojiang(姜凤波) 5993da8d17dSfengbojiang(姜凤波) ngx_module_objs="$ngx_module_objs $ngx_obj" 6003da8d17dSfengbojiang(姜凤波) done 6013da8d17dSfengbojiang(姜凤波) 6023da8d17dSfengbojiang(姜凤波) ngx_module_objs=`echo $ngx_module_objs \ 6033da8d17dSfengbojiang(姜凤波) | sed -e "s#\([^ ]*\.\)cpp#$NGX_OBJS\/\1$ngx_objext#g" \ 6043da8d17dSfengbojiang(姜凤波) -e "s#\([^ ]*\.\)cc#$NGX_OBJS\/\1$ngx_objext#g" \ 6053da8d17dSfengbojiang(姜凤波) -e "s#\([^ ]*\.\)c#$NGX_OBJS\/\1$ngx_objext#g" \ 6063da8d17dSfengbojiang(姜凤波) -e "s#\([^ ]*\.\)S#$NGX_OBJS\/\1$ngx_objext#g"` 6073da8d17dSfengbojiang(姜凤波) 6083da8d17dSfengbojiang(姜凤波) ngx_deps=`echo $ngx_module_objs $ngx_modules_obj $LINK_DEPS \ 6093da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \ 6103da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 6113da8d17dSfengbojiang(姜凤波) 6123da8d17dSfengbojiang(姜凤波) ngx_objs=`echo $ngx_module_objs $ngx_modules_obj \ 6133da8d17dSfengbojiang(姜凤波) | sed -e "s/ *\([^ ][^ ]*\)/$ngx_long_regex_cont\1/g" \ 6143da8d17dSfengbojiang(姜凤波) -e "s/\//$ngx_regex_dirsep/g"` 6153da8d17dSfengbojiang(姜凤波) 6163da8d17dSfengbojiang(姜凤波) ngx_obj=$NGX_OBJS$ngx_dirsep$ngx_module$ngx_modext 6173da8d17dSfengbojiang(姜凤波) 6183da8d17dSfengbojiang(姜凤波) if [ "$NGX_PLATFORM" = win32 ]; then 6193da8d17dSfengbojiang(姜凤波) ngx_module_libs="$CORE_LIBS $ngx_module_libs" 6203da8d17dSfengbojiang(姜凤波) fi 6213da8d17dSfengbojiang(姜凤波) 6223da8d17dSfengbojiang(姜凤波) ngx_libs= 6233da8d17dSfengbojiang(姜凤波) if test -n "$NGX_LD_OPT$ngx_module_libs"; then 6243da8d17dSfengbojiang(姜凤波) ngx_libs=`echo $NGX_LD_OPT $ngx_module_libs \ 6253da8d17dSfengbojiang(姜凤波) | sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"` 6263da8d17dSfengbojiang(姜凤波) fi 6273da8d17dSfengbojiang(姜凤波) 6283da8d17dSfengbojiang(姜凤波) ngx_link=${CORE_LINK:+`echo $CORE_LINK \ 6293da8d17dSfengbojiang(姜凤波) | sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"`} 6303da8d17dSfengbojiang(姜凤波) 6313da8d17dSfengbojiang(姜凤波) ngx_module_link=${MODULE_LINK:+`echo $MODULE_LINK \ 6323da8d17dSfengbojiang(姜凤波) | sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"`} 6333da8d17dSfengbojiang(姜凤波) 6343da8d17dSfengbojiang(姜凤波) 6353da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 6363da8d17dSfengbojiang(姜凤波) 6373da8d17dSfengbojiang(姜凤波)modules: $ngx_obj 6383da8d17dSfengbojiang(姜凤波) 6393da8d17dSfengbojiang(姜凤波)$ngx_obj: $ngx_deps$ngx_spacer 6403da8d17dSfengbojiang(姜凤波) \$(LINK) $ngx_long_start$ngx_binout$ngx_obj$ngx_long_cont$ngx_objs$ngx_libs$ngx_link$ngx_module_link 6413da8d17dSfengbojiang(姜凤波)$ngx_long_end 6423da8d17dSfengbojiang(姜凤波) 6433da8d17dSfengbojiang(姜凤波)$ngx_modules_obj: \$(CORE_DEPS)$ngx_cont$ngx_modules_c 6443da8d17dSfengbojiang(姜凤波) $ngx_cc$ngx_tab$ngx_objout$ngx_modules_obj$ngx_tab$ngx_modules_c$NGX_AUX 6453da8d17dSfengbojiang(姜凤波) 6463da8d17dSfengbojiang(姜凤波)END 6473da8d17dSfengbojiang(姜凤波) 6483da8d17dSfengbojiang(姜凤波) for ngx_source in $ngx_module_srcs 6493da8d17dSfengbojiang(姜凤波) do 6503da8d17dSfengbojiang(姜凤波) case "$ngx_source" in 6513da8d17dSfengbojiang(姜凤波) src/*) 6523da8d17dSfengbojiang(姜凤波) ngx_obj=`echo $ngx_source | sed -e "s/\//$ngx_regex_dirsep/g"` 6533da8d17dSfengbojiang(姜凤波) ;; 6543da8d17dSfengbojiang(姜凤波) *) 6553da8d17dSfengbojiang(姜凤波) ngx_obj="addon/`basename \`dirname $ngx_source\``" 6563da8d17dSfengbojiang(姜凤波) ngx_obj=`echo $ngx_obj/\`basename $ngx_source\` \ 6573da8d17dSfengbojiang(姜凤波) | sed -e "s/\//$ngx_regex_dirsep/g"` 6583da8d17dSfengbojiang(姜凤波) ;; 6593da8d17dSfengbojiang(姜凤波) esac 6603da8d17dSfengbojiang(姜凤波) 6613da8d17dSfengbojiang(姜凤波) ngx_obj=`echo $ngx_obj \ 6623da8d17dSfengbojiang(姜凤波) | sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \ 6633da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \ 6643da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \ 6653da8d17dSfengbojiang(姜凤波) -e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"` 6663da8d17dSfengbojiang(姜凤波) 6673da8d17dSfengbojiang(姜凤波) ngx_src=`echo $ngx_source | sed -e "s/\//$ngx_regex_dirsep/g"` 6683da8d17dSfengbojiang(姜凤波) 6693da8d17dSfengbojiang(姜凤波) if [ $ngx_source = src/http/modules/perl/ngx_http_perl_module.c ]; then 6703da8d17dSfengbojiang(姜凤波) 6713da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 6723da8d17dSfengbojiang(姜凤波) 6733da8d17dSfengbojiang(姜凤波)$ngx_obj: \$(ADDON_DEPS)$ngx_cont$ngx_src 6743da8d17dSfengbojiang(姜凤波) $ngx_perl_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX 6753da8d17dSfengbojiang(姜凤波) 6763da8d17dSfengbojiang(姜凤波)END 6773da8d17dSfengbojiang(姜凤波) else 6783da8d17dSfengbojiang(姜凤波) 6793da8d17dSfengbojiang(姜凤波) cat << END >> $NGX_MAKEFILE 6803da8d17dSfengbojiang(姜凤波) 6813da8d17dSfengbojiang(姜凤波)$ngx_obj: \$(ADDON_DEPS)$ngx_cont$ngx_src 6823da8d17dSfengbojiang(姜凤波) $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX 6833da8d17dSfengbojiang(姜凤波) 6843da8d17dSfengbojiang(姜凤波)END 6853da8d17dSfengbojiang(姜凤波) 6863da8d17dSfengbojiang(姜凤波) fi 6873da8d17dSfengbojiang(姜凤波) done 6883da8d17dSfengbojiang(姜凤波)done 689