blob: e7f549040fe3a8b2ea636761a2dce19d42bdfa11 [file] [log] [blame]
Igor Sysoeva8fa0a62003-11-25 20:44:56 +00001
Igor Sysoevff8da912004-09-29 16:00:49 +00002# Copyright (C) Igor Sysoev
Maxim Konovalovf8d59e32012-01-18 15:07:43 +00003# Copyright (C) Nginx, Inc.
Igor Sysoevff8da912004-09-29 16:00:49 +00004
5
Igor Sysoev393ce882009-05-10 18:38:11 +00006echo "creating $NGX_MAKEFILE"
7
Igor Sysoevf6906042004-11-25 16:17:31 +00008mkdir -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 \
10 $NGX_OBJS/src/http $NGX_OBJS/src/http/modules \
Igor Sysoev9bf11aa2006-01-16 14:56:53 +000011 $NGX_OBJS/src/http/modules/perl \
Igor Sysoev85dd8fc2008-03-18 10:36:27 +000012 $NGX_OBJS/src/mail \
13 $NGX_OBJS/src/misc
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000014
15
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000016ngx_objs_dir=$NGX_OBJS$ngx_regex_dirsep
17ngx_use_pch=`echo $NGX_USE_PCH | sed -e "s/\//$ngx_regex_dirsep/g"`
18
19
Igor Sysoevd43bee82004-11-20 19:52:20 +000020cat << END > $NGX_MAKEFILE
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000021
22CC = $CC
23CFLAGS = $CFLAGS
24CPP = $CPP
25LINK = $LINK
26
27END
28
Igor Sysoev98c4dd72009-05-10 18:35:08 +000029
Igor Sysoevda173ab2006-08-30 10:39:17 +000030if test -n "$NGX_PERL_CFLAGS"; then
31 echo NGX_PERL_CFLAGS = $NGX_PERL_CFLAGS >> $NGX_MAKEFILE
32 echo NGX_PM_CFLAGS = $NGX_PM_CFLAGS >> $NGX_MAKEFILE
33fi
34
Igor Sysoevfc5a10a2004-03-09 19:47:07 +000035
Igor Sysoev1ebfead2005-02-16 13:40:36 +000036# ALL_INCS, required by the addons and by OpenWatcom C precompiled headers
Igor Sysoevfc5a10a2004-03-09 19:47:07 +000037
Igor Sysoev02c8d182007-03-19 13:36:56 +000038ngx_incs=`echo $CORE_INCS $NGX_OBJS $HTTP_INCS $MAIL_INCS\
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000039 | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \
40 -e "s/\//$ngx_regex_dirsep/g"`
41
42cat << END >> $NGX_MAKEFILE
43
44ALL_INCS = $ngx_include_opt$ngx_incs
45
46END
Igor Sysoev59cf56c2004-09-07 15:29:22 +000047
Igor Sysoevfc5a10a2004-03-09 19:47:07 +000048
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000049ngx_all_srcs="$CORE_SRCS"
Igor Sysoevab9d5fd2004-03-05 08:34:24 +000050
51
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000052# the core dependences and include pathes
Igor Sysoevab9d5fd2004-03-05 08:34:24 +000053
Igor Sysoevd43bee82004-11-20 19:52:20 +000054ngx_deps=`echo $CORE_DEPS $NGX_AUTO_CONFIG_H $NGX_PCH \
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000055 | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \
56 -e "s/\//$ngx_regex_dirsep/g"`
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000057
Igor Sysoevf6906042004-11-25 16:17:31 +000058ngx_incs=`echo $CORE_INCS $NGX_OBJS \
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000059 | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \
60 -e "s/\//$ngx_regex_dirsep/g"`
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000061
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000062cat << END >> $NGX_MAKEFILE
Igor Sysoevab9d5fd2004-03-05 08:34:24 +000063
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000064CORE_DEPS = $ngx_deps
65
66
67CORE_INCS = $ngx_include_opt$ngx_incs
68
69END
70
71
72# the http dependences and include pathes
Igor Sysoevab9d5fd2004-03-05 08:34:24 +000073
Igor Sysoev59cf56c2004-09-07 15:29:22 +000074if [ $HTTP = YES ]; then
Igor Sysoevab9d5fd2004-03-05 08:34:24 +000075
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000076 ngx_all_srcs="$ngx_all_srcs $HTTP_SRCS"
Igor Sysoevab9d5fd2004-03-05 08:34:24 +000077
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000078 ngx_deps=`echo $HTTP_DEPS \
79 | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \
80 -e "s/\//$ngx_regex_dirsep/g"`
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000081
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000082 ngx_incs=`echo $HTTP_INCS \
83 | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \
84 -e "s/\//$ngx_regex_dirsep/g"`
Igor Sysoevab9d5fd2004-03-05 08:34:24 +000085
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000086 cat << END >> $NGX_MAKEFILE
Igor Sysoevab9d5fd2004-03-05 08:34:24 +000087
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000088HTTP_DEPS = $ngx_deps
Igor Sysoev59cf56c2004-09-07 15:29:22 +000089
90
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000091HTTP_INCS = $ngx_include_opt$ngx_incs
Igor Sysoev59cf56c2004-09-07 15:29:22 +000092
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000093END
Igor Sysoev59cf56c2004-09-07 15:29:22 +000094
Igor Sysoevab9d5fd2004-03-05 08:34:24 +000095fi
96
Igor Sysoevab9d5fd2004-03-05 08:34:24 +000097
Igor Sysoev02c8d182007-03-19 13:36:56 +000098# the mail dependences and include pathes
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000099
Igor Sysoev02c8d182007-03-19 13:36:56 +0000100if [ $MAIL = YES ]; then
Igor Sysoev59cf56c2004-09-07 15:29:22 +0000101
Igor Sysoev02c8d182007-03-19 13:36:56 +0000102 ngx_all_srcs="$ngx_all_srcs $MAIL_SRCS"
Igor Sysoev59cf56c2004-09-07 15:29:22 +0000103
Igor Sysoev02c8d182007-03-19 13:36:56 +0000104 ngx_deps=`echo $MAIL_DEPS \
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000105 | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \
106 -e "s/\//$ngx_regex_dirsep/g"`
Igor Sysoev59cf56c2004-09-07 15:29:22 +0000107
Igor Sysoev02c8d182007-03-19 13:36:56 +0000108 ngx_incs=`echo $MAIL_INCS \
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000109 | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \
110 -e "s/\//$ngx_regex_dirsep/g"`
Igor Sysoev59cf56c2004-09-07 15:29:22 +0000111
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000112 cat << END >> $NGX_MAKEFILE
Igor Sysoev59cf56c2004-09-07 15:29:22 +0000113
Igor Sysoev02c8d182007-03-19 13:36:56 +0000114MAIL_DEPS = $ngx_deps
Igor Sysoev59cf56c2004-09-07 15:29:22 +0000115
116
Igor Sysoev02c8d182007-03-19 13:36:56 +0000117MAIL_INCS = $ngx_include_opt$ngx_incs
Igor Sysoev59cf56c2004-09-07 15:29:22 +0000118
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000119END
Igor Sysoev59cf56c2004-09-07 15:29:22 +0000120
121fi
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000122
123
Igor Sysoev85dd8fc2008-03-18 10:36:27 +0000124ngx_all_srcs="$ngx_all_srcs $NGX_MISC_SRCS"
125
126
Igor Sysoev1ebfead2005-02-16 13:40:36 +0000127if test -n "$NGX_ADDON_SRCS"; then
128
129cat << END >> $NGX_MAKEFILE
130
Igor Sysoeve5733802005-09-08 14:36:09 +0000131ADDON_DEPS = \$(CORE_DEPS) $NGX_ADDON_DEPS
Igor Sysoev1ebfead2005-02-16 13:40:36 +0000132
133END
134
135fi
136
137
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000138# nginx
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000139
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000140ngx_all_srcs=`echo $ngx_all_srcs | sed -e "s/\//$ngx_regex_dirsep/g"`
Igor Sysoev1ebfead2005-02-16 13:40:36 +0000141
142for ngx_src in $NGX_ADDON_SRCS
143do
144 ngx_obj="addon/`basename \`dirname $ngx_src\``"
145
146 test -d $NGX_OBJS/$ngx_obj || mkdir -p $NGX_OBJS/$ngx_obj
147
148 ngx_obj=`echo $ngx_obj/\`basename $ngx_src\` \
149 | sed -e "s/\//$ngx_regex_dirsep/g"`
150
151 ngx_all_srcs="$ngx_all_srcs $ngx_obj"
152done
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000153
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000154ngx_all_objs=`echo $ngx_all_srcs \
Igor Sysoevbb28b6d2006-07-11 13:20:19 +0000155 | sed -e "s#\([^ ]*\.\)cpp#$NGX_OBJS\/\1$ngx_objext#g" \
156 -e "s#\([^ ]*\.\)cc#$NGX_OBJS\/\1$ngx_objext#g" \
157 -e "s#\([^ ]*\.\)c#$NGX_OBJS\/\1$ngx_objext#g" \
158 -e "s#\([^ ]*\.\)S#$NGX_OBJS\/\1$ngx_objext#g"`
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000159
Igor Sysoev1ebfead2005-02-16 13:40:36 +0000160ngx_modules_c=`echo $NGX_MODULES_C | sed -e "s/\//$ngx_regex_dirsep/g"`
161
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000162ngx_modules_obj=`echo $ngx_modules_c | sed -e "s/\(.*\.\)c/\1$ngx_objext/"`
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000163
Igor Sysoev1b735832004-11-11 14:07:14 +0000164
165if test -n "$NGX_RES"; then
166 ngx_res=$NGX_RES
167else
168 ngx_res="$NGX_RC $NGX_ICONS"
169 ngx_rcc=`echo $NGX_RCC | sed -e "s/\//$ngx_regex_dirsep/g"`
170fi
171
172ngx_deps=`echo $ngx_all_objs $ngx_modules_obj $ngx_res $LINK_DEPS \
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000173 | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \
174 -e "s/\//$ngx_regex_dirsep/g"`
Igor Sysoeva5362982004-03-04 07:04:55 +0000175
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000176ngx_objs=`echo $ngx_all_objs $ngx_modules_obj \
Igor Sysoev09c684b2005-11-09 17:25:55 +0000177 | sed -e "s/ *\([^ ][^ ]*\)/$ngx_long_regex_cont\1/g" \
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000178 -e "s/\//$ngx_regex_dirsep/g"`
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000179
Igor Sysoev8f125582006-07-28 15:16:17 +0000180if test -n "$NGX_LD_OPT$CORE_LIBS"; then
181 ngx_libs=`echo $NGX_LD_OPT $CORE_LIBS \
182 | sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"`
183fi
Igor Sysoeva5362982004-03-04 07:04:55 +0000184
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000185ngx_link=${CORE_LINK:+`echo $CORE_LINK \
Igor Sysoev09c684b2005-11-09 17:25:55 +0000186 | sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"`}
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000187
Igor Sysoev1b735832004-11-11 14:07:14 +0000188
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000189cat << END >> $NGX_MAKEFILE
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000190
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000191$NGX_OBJS${ngx_dirsep}nginx${ngx_binext}: $ngx_deps$ngx_spacer
Igor Sysoev09c684b2005-11-09 17:25:55 +0000192 \$(LINK) ${ngx_long_start}${ngx_binout}$NGX_OBJS${ngx_dirsep}nginx$ngx_long_cont$ngx_objs$ngx_libs$ngx_link
Igor Sysoev1b735832004-11-11 14:07:14 +0000193 $ngx_rcc
Igor Sysoev09c684b2005-11-09 17:25:55 +0000194${ngx_long_end}
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000195END
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000196
197
198# ngx_modules.c
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000199
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000200if test -n "$NGX_PCH"; then
201 ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)"
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000202else
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000203 ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS)"
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000204fi
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000205
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000206cat << END >> $NGX_MAKEFILE
207
208$ngx_modules_obj: \$(CORE_DEPS)$ngx_cont$ngx_modules_c
Igor Sysoev78452232005-10-12 13:50:36 +0000209 $ngx_cc$ngx_tab$ngx_objout$ngx_modules_obj$ngx_tab$ngx_modules_c$NGX_AUX
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000210
211END
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000212
213
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000214# the core sources
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000215
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000216for ngx_src in $CORE_SRCS
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000217do
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000218 ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"`
219 ngx_obj=`echo $ngx_src \
Igor Sysoevbb28b6d2006-07-11 13:20:19 +0000220 | sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \
221 -e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \
222 -e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \
223 -e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"`
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000224
225 cat << END >> $NGX_MAKEFILE
226
227$ngx_obj: \$(CORE_DEPS)$ngx_cont$ngx_src
Igor Sysoev78452232005-10-12 13:50:36 +0000228 $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000229
230END
231
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000232done
233
234
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000235# the http sources
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000236
Igor Sysoev59cf56c2004-09-07 15:29:22 +0000237if [ $HTTP = YES ]; then
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000238
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000239 if test -n "$NGX_PCH"; then
240 ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)"
Igor Sysoev59cf56c2004-09-07 15:29:22 +0000241 else
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000242 ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS) \$(HTTP_INCS)"
Igor Sysoevda173ab2006-08-30 10:39:17 +0000243 ngx_perl_cc="\$(CC) $ngx_compile_opt \$(NGX_PERL_CFLAGS) "
244 ngx_perl_cc="$ngx_perl_cc \$(CORE_INCS) \$(HTTP_INCS)"
Igor Sysoev59cf56c2004-09-07 15:29:22 +0000245 fi
246
Igor Sysoevda173ab2006-08-30 10:39:17 +0000247 for ngx_source in $HTTP_SRCS
Igor Sysoev59cf56c2004-09-07 15:29:22 +0000248 do
Igor Sysoevda173ab2006-08-30 10:39:17 +0000249 ngx_src=`echo $ngx_source | sed -e "s/\//$ngx_regex_dirsep/g"`
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000250 ngx_obj=`echo $ngx_src \
Igor Sysoevbb28b6d2006-07-11 13:20:19 +0000251 | sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \
252 -e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \
253 -e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \
254 -e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"`
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000255
Igor Sysoevda173ab2006-08-30 10:39:17 +0000256 if [ $ngx_source = src/http/modules/perl/ngx_http_perl_module.c ]; then
257
258 cat << END >> $NGX_MAKEFILE
259
260$ngx_obj: \$(CORE_DEPS) \$(HTTP_DEPS)$ngx_cont$ngx_src
261 $ngx_perl_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
262
263END
264 else
265
266 cat << END >> $NGX_MAKEFILE
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000267
268$ngx_obj: \$(CORE_DEPS) \$(HTTP_DEPS)$ngx_cont$ngx_src
Igor Sysoev78452232005-10-12 13:50:36 +0000269 $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000270
271END
Igor Sysoevda173ab2006-08-30 10:39:17 +0000272
273 fi
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000274 done
Igor Sysoev59cf56c2004-09-07 15:29:22 +0000275
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000276fi
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000277
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000278
Igor Sysoev02c8d182007-03-19 13:36:56 +0000279# the mail sources
Igor Sysoev59cf56c2004-09-07 15:29:22 +0000280
Igor Sysoev02c8d182007-03-19 13:36:56 +0000281if [ $MAIL = YES ]; then
Igor Sysoev59cf56c2004-09-07 15:29:22 +0000282
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000283 if test -n "$NGX_PCH"; then
284 ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)"
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000285 else
Igor Sysoev02c8d182007-03-19 13:36:56 +0000286 ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS) \$(MAIL_INCS)"
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000287 fi
Igor Sysoev59cf56c2004-09-07 15:29:22 +0000288
Igor Sysoev02c8d182007-03-19 13:36:56 +0000289 for ngx_src in $MAIL_SRCS
Igor Sysoev59cf56c2004-09-07 15:29:22 +0000290 do
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000291 ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"`
292 ngx_obj=`echo $ngx_src \
Igor Sysoevbb28b6d2006-07-11 13:20:19 +0000293 | 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"`
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000297
298 cat << END >> $NGX_MAKEFILE
299
Igor Sysoev02c8d182007-03-19 13:36:56 +0000300$ngx_obj: \$(CORE_DEPS) \$(MAIL_DEPS)$ngx_cont$ngx_src
Igor Sysoev78452232005-10-12 13:50:36 +0000301 $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000302
303END
Igor Sysoev1ebfead2005-02-16 13:40:36 +0000304 done
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000305
Igor Sysoev1ebfead2005-02-16 13:40:36 +0000306fi
307
308
Igor Sysoev85dd8fc2008-03-18 10:36:27 +0000309# the misc sources
310
311if test -n "$NGX_MISC_SRCS"; then
312
313 ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)"
314
315 for ngx_src in $NGX_MISC_SRCS
316 do
317 ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"`
318 ngx_obj=`echo $ngx_src \
319 | sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \
320 -e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \
321 -e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \
322 -e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"`
323
324 cat << END >> $NGX_MAKEFILE
325
326$ngx_obj: \$(CORE_DEPS) $ngx_cont$ngx_src
327 $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
328
329END
330 done
331
332fi
333
334
Igor Sysoev1ebfead2005-02-16 13:40:36 +0000335# the addons sources
336
337if test -n "$NGX_ADDON_SRCS"; then
338
339 ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)"
340
341 for ngx_src in $NGX_ADDON_SRCS
342 do
343 ngx_obj="addon/`basename \`dirname $ngx_src\``"
344
345 ngx_obj=`echo $ngx_obj/\`basename $ngx_src\` \
346 | sed -e "s/\//$ngx_regex_dirsep/g"`
347
348 ngx_obj=`echo $ngx_obj \
Igor Sysoevbb28b6d2006-07-11 13:20:19 +0000349 | sed -e "s#^\(.*\.\)cpp\\$#$ngx_objs_dir\1$ngx_objext#g" \
350 -e "s#^\(.*\.\)cc\\$#$ngx_objs_dir\1$ngx_objext#g" \
351 -e "s#^\(.*\.\)c\\$#$ngx_objs_dir\1$ngx_objext#g" \
352 -e "s#^\(.*\.\)S\\$#$ngx_objs_dir\1$ngx_objext#g"`
Igor Sysoev1ebfead2005-02-16 13:40:36 +0000353
354 ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"`
355
356 cat << END >> $NGX_MAKEFILE
357
358$ngx_obj: \$(ADDON_DEPS)$ngx_cont$ngx_src
Igor Sysoev78452232005-10-12 13:50:36 +0000359 $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
Igor Sysoev1ebfead2005-02-16 13:40:36 +0000360
361END
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000362 done
Igor Sysoev59cf56c2004-09-07 15:29:22 +0000363
364fi
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000365
366
Igor Sysoev305a9d82005-12-26 17:07:48 +0000367# the addons config.make
368
369if test -n "$NGX_ADDONS"; then
370
371 for ngx_addon_dir in $NGX_ADDONS
372 do
373 if test -f $ngx_addon_dir/config.make; then
374 . $ngx_addon_dir/config.make
375 fi
376 done
377fi
378
379
Igor Sysoev1b735832004-11-11 14:07:14 +0000380# Win32 resource file
381
382if test -n "$NGX_RES"; then
383
384 ngx_res=`echo "$NGX_RES: $NGX_RC $NGX_ICONS" \
385 | sed -e "s/\//$ngx_regex_dirsep/g"`
386 ngx_rcc=`echo $NGX_RCC | sed -e "s/\//$ngx_regex_dirsep/g"`
387
388 cat << END >> $NGX_MAKEFILE
389
390$ngx_res
391 $ngx_rcc
392
393END
394
395fi
396
397
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000398# the precompiled headers
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000399
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000400if test -n "$NGX_PCH"; then
Igor Sysoevf6906042004-11-25 16:17:31 +0000401 echo "#include <ngx_config.h>" > $NGX_OBJS/ngx_pch.c
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000402
Igor Sysoevf6906042004-11-25 16:17:31 +0000403 ngx_pch="src/core/ngx_config.h $OS_CONFIG $NGX_OBJS/ngx_auto_config.h"
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000404 ngx_pch=`echo "$NGX_PCH: $ngx_pch" | sed -e "s/\//$ngx_regex_dirsep/g"`
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000405
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000406 ngx_src="\$(CC) \$(CFLAGS) $NGX_BUILD_PCH $ngx_compile_opt \$(ALL_INCS)"
Igor Sysoevf6906042004-11-25 16:17:31 +0000407 ngx_src="$ngx_src $ngx_objout$NGX_OBJS/ngx_pch.obj $NGX_OBJS/ngx_pch.c"
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000408 ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"`
409
410 cat << END >> $NGX_MAKEFILE
411
412$ngx_pch
413 $ngx_src
414
415END
416
Igor Sysoevfc5a10a2004-03-09 19:47:07 +0000417fi