xref: /f-stack/app/nginx-1.16.1/auto/make (revision 8d76b62e)
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