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