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