Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 1 | |
Igor Sysoev | ff8da91 | 2004-09-29 16:00:49 +0000 | [diff] [blame] | 2 | # Copyright (C) Igor Sysoev |
Maxim Konovalov | f8d59e3 | 2012-01-18 15:07:43 +0000 | [diff] [blame] | 3 | # Copyright (C) Nginx, Inc. |
Igor Sysoev | ff8da91 | 2004-09-29 16:00:49 +0000 | [diff] [blame] | 4 | |
| 5 | |
Igor Sysoev | 393ce88 | 2009-05-10 18:38:11 +0000 | [diff] [blame] | 6 | echo "creating $NGX_MAKEFILE" |
| 7 | |
Igor Sysoev | f690604 | 2004-11-25 16:17:31 +0000 | [diff] [blame] | 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 \ |
| 10 | $NGX_OBJS/src/http $NGX_OBJS/src/http/modules \ |
Igor Sysoev | 9bf11aa | 2006-01-16 14:56:53 +0000 | [diff] [blame] | 11 | $NGX_OBJS/src/http/modules/perl \ |
Igor Sysoev | 85dd8fc | 2008-03-18 10:36:27 +0000 | [diff] [blame] | 12 | $NGX_OBJS/src/mail \ |
| 13 | $NGX_OBJS/src/misc |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 14 | |
| 15 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 16 | ngx_objs_dir=$NGX_OBJS$ngx_regex_dirsep |
| 17 | ngx_use_pch=`echo $NGX_USE_PCH | sed -e "s/\//$ngx_regex_dirsep/g"` |
| 18 | |
| 19 | |
Igor Sysoev | d43bee8 | 2004-11-20 19:52:20 +0000 | [diff] [blame] | 20 | cat << END > $NGX_MAKEFILE |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 21 | |
| 22 | CC = $CC |
| 23 | CFLAGS = $CFLAGS |
| 24 | CPP = $CPP |
| 25 | LINK = $LINK |
| 26 | |
| 27 | END |
| 28 | |
Igor Sysoev | 98c4dd7 | 2009-05-10 18:35:08 +0000 | [diff] [blame] | 29 | |
Igor Sysoev | da173ab | 2006-08-30 10:39:17 +0000 | [diff] [blame] | 30 | if 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 |
| 33 | fi |
| 34 | |
Igor Sysoev | fc5a10a | 2004-03-09 19:47:07 +0000 | [diff] [blame] | 35 | |
Igor Sysoev | 1ebfead | 2005-02-16 13:40:36 +0000 | [diff] [blame] | 36 | # ALL_INCS, required by the addons and by OpenWatcom C precompiled headers |
Igor Sysoev | fc5a10a | 2004-03-09 19:47:07 +0000 | [diff] [blame] | 37 | |
Igor Sysoev | 02c8d18 | 2007-03-19 13:36:56 +0000 | [diff] [blame] | 38 | ngx_incs=`echo $CORE_INCS $NGX_OBJS $HTTP_INCS $MAIL_INCS\ |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 39 | | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \ |
| 40 | -e "s/\//$ngx_regex_dirsep/g"` |
| 41 | |
| 42 | cat << END >> $NGX_MAKEFILE |
| 43 | |
| 44 | ALL_INCS = $ngx_include_opt$ngx_incs |
| 45 | |
| 46 | END |
Igor Sysoev | 59cf56c | 2004-09-07 15:29:22 +0000 | [diff] [blame] | 47 | |
Igor Sysoev | fc5a10a | 2004-03-09 19:47:07 +0000 | [diff] [blame] | 48 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 49 | ngx_all_srcs="$CORE_SRCS" |
Igor Sysoev | ab9d5fd | 2004-03-05 08:34:24 +0000 | [diff] [blame] | 50 | |
| 51 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 52 | # the core dependences and include pathes |
Igor Sysoev | ab9d5fd | 2004-03-05 08:34:24 +0000 | [diff] [blame] | 53 | |
Igor Sysoev | d43bee8 | 2004-11-20 19:52:20 +0000 | [diff] [blame] | 54 | ngx_deps=`echo $CORE_DEPS $NGX_AUTO_CONFIG_H $NGX_PCH \ |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 55 | | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \ |
| 56 | -e "s/\//$ngx_regex_dirsep/g"` |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 57 | |
Igor Sysoev | f690604 | 2004-11-25 16:17:31 +0000 | [diff] [blame] | 58 | ngx_incs=`echo $CORE_INCS $NGX_OBJS \ |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 59 | | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \ |
| 60 | -e "s/\//$ngx_regex_dirsep/g"` |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 61 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 62 | cat << END >> $NGX_MAKEFILE |
Igor Sysoev | ab9d5fd | 2004-03-05 08:34:24 +0000 | [diff] [blame] | 63 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 64 | CORE_DEPS = $ngx_deps |
| 65 | |
| 66 | |
| 67 | CORE_INCS = $ngx_include_opt$ngx_incs |
| 68 | |
| 69 | END |
| 70 | |
| 71 | |
| 72 | # the http dependences and include pathes |
Igor Sysoev | ab9d5fd | 2004-03-05 08:34:24 +0000 | [diff] [blame] | 73 | |
Igor Sysoev | 59cf56c | 2004-09-07 15:29:22 +0000 | [diff] [blame] | 74 | if [ $HTTP = YES ]; then |
Igor Sysoev | ab9d5fd | 2004-03-05 08:34:24 +0000 | [diff] [blame] | 75 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 76 | ngx_all_srcs="$ngx_all_srcs $HTTP_SRCS" |
Igor Sysoev | ab9d5fd | 2004-03-05 08:34:24 +0000 | [diff] [blame] | 77 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 78 | ngx_deps=`echo $HTTP_DEPS \ |
| 79 | | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \ |
| 80 | -e "s/\//$ngx_regex_dirsep/g"` |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 81 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 82 | 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 Sysoev | ab9d5fd | 2004-03-05 08:34:24 +0000 | [diff] [blame] | 85 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 86 | cat << END >> $NGX_MAKEFILE |
Igor Sysoev | ab9d5fd | 2004-03-05 08:34:24 +0000 | [diff] [blame] | 87 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 88 | HTTP_DEPS = $ngx_deps |
Igor Sysoev | 59cf56c | 2004-09-07 15:29:22 +0000 | [diff] [blame] | 89 | |
| 90 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 91 | HTTP_INCS = $ngx_include_opt$ngx_incs |
Igor Sysoev | 59cf56c | 2004-09-07 15:29:22 +0000 | [diff] [blame] | 92 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 93 | END |
Igor Sysoev | 59cf56c | 2004-09-07 15:29:22 +0000 | [diff] [blame] | 94 | |
Igor Sysoev | ab9d5fd | 2004-03-05 08:34:24 +0000 | [diff] [blame] | 95 | fi |
| 96 | |
Igor Sysoev | ab9d5fd | 2004-03-05 08:34:24 +0000 | [diff] [blame] | 97 | |
Igor Sysoev | 02c8d18 | 2007-03-19 13:36:56 +0000 | [diff] [blame] | 98 | # the mail dependences and include pathes |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 99 | |
Igor Sysoev | 02c8d18 | 2007-03-19 13:36:56 +0000 | [diff] [blame] | 100 | if [ $MAIL = YES ]; then |
Igor Sysoev | 59cf56c | 2004-09-07 15:29:22 +0000 | [diff] [blame] | 101 | |
Igor Sysoev | 02c8d18 | 2007-03-19 13:36:56 +0000 | [diff] [blame] | 102 | ngx_all_srcs="$ngx_all_srcs $MAIL_SRCS" |
Igor Sysoev | 59cf56c | 2004-09-07 15:29:22 +0000 | [diff] [blame] | 103 | |
Igor Sysoev | 02c8d18 | 2007-03-19 13:36:56 +0000 | [diff] [blame] | 104 | ngx_deps=`echo $MAIL_DEPS \ |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 105 | | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \ |
| 106 | -e "s/\//$ngx_regex_dirsep/g"` |
Igor Sysoev | 59cf56c | 2004-09-07 15:29:22 +0000 | [diff] [blame] | 107 | |
Igor Sysoev | 02c8d18 | 2007-03-19 13:36:56 +0000 | [diff] [blame] | 108 | ngx_incs=`echo $MAIL_INCS \ |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 109 | | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \ |
| 110 | -e "s/\//$ngx_regex_dirsep/g"` |
Igor Sysoev | 59cf56c | 2004-09-07 15:29:22 +0000 | [diff] [blame] | 111 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 112 | cat << END >> $NGX_MAKEFILE |
Igor Sysoev | 59cf56c | 2004-09-07 15:29:22 +0000 | [diff] [blame] | 113 | |
Igor Sysoev | 02c8d18 | 2007-03-19 13:36:56 +0000 | [diff] [blame] | 114 | MAIL_DEPS = $ngx_deps |
Igor Sysoev | 59cf56c | 2004-09-07 15:29:22 +0000 | [diff] [blame] | 115 | |
| 116 | |
Igor Sysoev | 02c8d18 | 2007-03-19 13:36:56 +0000 | [diff] [blame] | 117 | MAIL_INCS = $ngx_include_opt$ngx_incs |
Igor Sysoev | 59cf56c | 2004-09-07 15:29:22 +0000 | [diff] [blame] | 118 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 119 | END |
Igor Sysoev | 59cf56c | 2004-09-07 15:29:22 +0000 | [diff] [blame] | 120 | |
| 121 | fi |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 122 | |
| 123 | |
Igor Sysoev | 85dd8fc | 2008-03-18 10:36:27 +0000 | [diff] [blame] | 124 | ngx_all_srcs="$ngx_all_srcs $NGX_MISC_SRCS" |
| 125 | |
| 126 | |
Igor Sysoev | 1ebfead | 2005-02-16 13:40:36 +0000 | [diff] [blame] | 127 | if test -n "$NGX_ADDON_SRCS"; then |
| 128 | |
| 129 | cat << END >> $NGX_MAKEFILE |
| 130 | |
Igor Sysoev | e573380 | 2005-09-08 14:36:09 +0000 | [diff] [blame] | 131 | ADDON_DEPS = \$(CORE_DEPS) $NGX_ADDON_DEPS |
Igor Sysoev | 1ebfead | 2005-02-16 13:40:36 +0000 | [diff] [blame] | 132 | |
| 133 | END |
| 134 | |
| 135 | fi |
| 136 | |
| 137 | |
Igor Sysoev | ab9d5fd | 2004-03-05 08:34:24 +0000 | [diff] [blame] | 138 | # nginx |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 139 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 140 | ngx_all_srcs=`echo $ngx_all_srcs | sed -e "s/\//$ngx_regex_dirsep/g"` |
Igor Sysoev | 1ebfead | 2005-02-16 13:40:36 +0000 | [diff] [blame] | 141 | |
| 142 | for ngx_src in $NGX_ADDON_SRCS |
| 143 | do |
| 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" |
| 152 | done |
Igor Sysoev | ab9d5fd | 2004-03-05 08:34:24 +0000 | [diff] [blame] | 153 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 154 | ngx_all_objs=`echo $ngx_all_srcs \ |
Igor Sysoev | bb28b6d | 2006-07-11 13:20:19 +0000 | [diff] [blame] | 155 | | 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 Sysoev | ab9d5fd | 2004-03-05 08:34:24 +0000 | [diff] [blame] | 159 | |
Igor Sysoev | 1ebfead | 2005-02-16 13:40:36 +0000 | [diff] [blame] | 160 | ngx_modules_c=`echo $NGX_MODULES_C | sed -e "s/\//$ngx_regex_dirsep/g"` |
| 161 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 162 | ngx_modules_obj=`echo $ngx_modules_c | sed -e "s/\(.*\.\)c/\1$ngx_objext/"` |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 163 | |
Igor Sysoev | 1b73583 | 2004-11-11 14:07:14 +0000 | [diff] [blame] | 164 | |
| 165 | if test -n "$NGX_RES"; then |
| 166 | ngx_res=$NGX_RES |
| 167 | else |
| 168 | ngx_res="$NGX_RC $NGX_ICONS" |
| 169 | ngx_rcc=`echo $NGX_RCC | sed -e "s/\//$ngx_regex_dirsep/g"` |
| 170 | fi |
| 171 | |
| 172 | ngx_deps=`echo $ngx_all_objs $ngx_modules_obj $ngx_res $LINK_DEPS \ |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 173 | | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \ |
| 174 | -e "s/\//$ngx_regex_dirsep/g"` |
Igor Sysoev | a536298 | 2004-03-04 07:04:55 +0000 | [diff] [blame] | 175 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 176 | ngx_objs=`echo $ngx_all_objs $ngx_modules_obj \ |
Igor Sysoev | 09c684b | 2005-11-09 17:25:55 +0000 | [diff] [blame] | 177 | | sed -e "s/ *\([^ ][^ ]*\)/$ngx_long_regex_cont\1/g" \ |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 178 | -e "s/\//$ngx_regex_dirsep/g"` |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 179 | |
Igor Sysoev | 8f12558 | 2006-07-28 15:16:17 +0000 | [diff] [blame] | 180 | if 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/"` |
| 183 | fi |
Igor Sysoev | a536298 | 2004-03-04 07:04:55 +0000 | [diff] [blame] | 184 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 185 | ngx_link=${CORE_LINK:+`echo $CORE_LINK \ |
Igor Sysoev | 09c684b | 2005-11-09 17:25:55 +0000 | [diff] [blame] | 186 | | sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"`} |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 187 | |
Igor Sysoev | 1b73583 | 2004-11-11 14:07:14 +0000 | [diff] [blame] | 188 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 189 | cat << END >> $NGX_MAKEFILE |
Igor Sysoev | ab9d5fd | 2004-03-05 08:34:24 +0000 | [diff] [blame] | 190 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 191 | $NGX_OBJS${ngx_dirsep}nginx${ngx_binext}: $ngx_deps$ngx_spacer |
Igor Sysoev | 09c684b | 2005-11-09 17:25:55 +0000 | [diff] [blame] | 192 | \$(LINK) ${ngx_long_start}${ngx_binout}$NGX_OBJS${ngx_dirsep}nginx$ngx_long_cont$ngx_objs$ngx_libs$ngx_link |
Igor Sysoev | 1b73583 | 2004-11-11 14:07:14 +0000 | [diff] [blame] | 193 | $ngx_rcc |
Igor Sysoev | 09c684b | 2005-11-09 17:25:55 +0000 | [diff] [blame] | 194 | ${ngx_long_end} |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 195 | END |
Igor Sysoev | ab9d5fd | 2004-03-05 08:34:24 +0000 | [diff] [blame] | 196 | |
| 197 | |
| 198 | # ngx_modules.c |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 199 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 200 | if test -n "$NGX_PCH"; then |
| 201 | ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)" |
Igor Sysoev | fc5a10a | 2004-03-09 19:47:07 +0000 | [diff] [blame] | 202 | else |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 203 | ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS)" |
Igor Sysoev | fc5a10a | 2004-03-09 19:47:07 +0000 | [diff] [blame] | 204 | fi |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 205 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 206 | cat << END >> $NGX_MAKEFILE |
| 207 | |
| 208 | $ngx_modules_obj: \$(CORE_DEPS)$ngx_cont$ngx_modules_c |
Igor Sysoev | 7845223 | 2005-10-12 13:50:36 +0000 | [diff] [blame] | 209 | $ngx_cc$ngx_tab$ngx_objout$ngx_modules_obj$ngx_tab$ngx_modules_c$NGX_AUX |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 210 | |
| 211 | END |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 212 | |
| 213 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 214 | # the core sources |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 215 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 216 | for ngx_src in $CORE_SRCS |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 217 | do |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 218 | ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"` |
| 219 | ngx_obj=`echo $ngx_src \ |
Igor Sysoev | bb28b6d | 2006-07-11 13:20:19 +0000 | [diff] [blame] | 220 | | 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 Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 224 | |
| 225 | cat << END >> $NGX_MAKEFILE |
| 226 | |
| 227 | $ngx_obj: \$(CORE_DEPS)$ngx_cont$ngx_src |
Igor Sysoev | 7845223 | 2005-10-12 13:50:36 +0000 | [diff] [blame] | 228 | $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 229 | |
| 230 | END |
| 231 | |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 232 | done |
| 233 | |
| 234 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 235 | # the http sources |
Igor Sysoev | ab9d5fd | 2004-03-05 08:34:24 +0000 | [diff] [blame] | 236 | |
Igor Sysoev | 59cf56c | 2004-09-07 15:29:22 +0000 | [diff] [blame] | 237 | if [ $HTTP = YES ]; then |
Igor Sysoev | fc5a10a | 2004-03-09 19:47:07 +0000 | [diff] [blame] | 238 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 239 | if test -n "$NGX_PCH"; then |
| 240 | ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)" |
Igor Sysoev | 59cf56c | 2004-09-07 15:29:22 +0000 | [diff] [blame] | 241 | else |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 242 | ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS) \$(HTTP_INCS)" |
Igor Sysoev | da173ab | 2006-08-30 10:39:17 +0000 | [diff] [blame] | 243 | ngx_perl_cc="\$(CC) $ngx_compile_opt \$(NGX_PERL_CFLAGS) " |
| 244 | ngx_perl_cc="$ngx_perl_cc \$(CORE_INCS) \$(HTTP_INCS)" |
Igor Sysoev | 59cf56c | 2004-09-07 15:29:22 +0000 | [diff] [blame] | 245 | fi |
| 246 | |
Igor Sysoev | da173ab | 2006-08-30 10:39:17 +0000 | [diff] [blame] | 247 | for ngx_source in $HTTP_SRCS |
Igor Sysoev | 59cf56c | 2004-09-07 15:29:22 +0000 | [diff] [blame] | 248 | do |
Igor Sysoev | da173ab | 2006-08-30 10:39:17 +0000 | [diff] [blame] | 249 | ngx_src=`echo $ngx_source | sed -e "s/\//$ngx_regex_dirsep/g"` |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 250 | ngx_obj=`echo $ngx_src \ |
Igor Sysoev | bb28b6d | 2006-07-11 13:20:19 +0000 | [diff] [blame] | 251 | | 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 Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 255 | |
Igor Sysoev | da173ab | 2006-08-30 10:39:17 +0000 | [diff] [blame] | 256 | 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 | |
| 263 | END |
| 264 | else |
| 265 | |
| 266 | cat << END >> $NGX_MAKEFILE |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 267 | |
| 268 | $ngx_obj: \$(CORE_DEPS) \$(HTTP_DEPS)$ngx_cont$ngx_src |
Igor Sysoev | 7845223 | 2005-10-12 13:50:36 +0000 | [diff] [blame] | 269 | $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 270 | |
| 271 | END |
Igor Sysoev | da173ab | 2006-08-30 10:39:17 +0000 | [diff] [blame] | 272 | |
| 273 | fi |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 274 | done |
Igor Sysoev | 59cf56c | 2004-09-07 15:29:22 +0000 | [diff] [blame] | 275 | |
Igor Sysoev | fc5a10a | 2004-03-09 19:47:07 +0000 | [diff] [blame] | 276 | fi |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 277 | |
Igor Sysoev | ab9d5fd | 2004-03-05 08:34:24 +0000 | [diff] [blame] | 278 | |
Igor Sysoev | 02c8d18 | 2007-03-19 13:36:56 +0000 | [diff] [blame] | 279 | # the mail sources |
Igor Sysoev | 59cf56c | 2004-09-07 15:29:22 +0000 | [diff] [blame] | 280 | |
Igor Sysoev | 02c8d18 | 2007-03-19 13:36:56 +0000 | [diff] [blame] | 281 | if [ $MAIL = YES ]; then |
Igor Sysoev | 59cf56c | 2004-09-07 15:29:22 +0000 | [diff] [blame] | 282 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 283 | if test -n "$NGX_PCH"; then |
| 284 | ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)" |
Igor Sysoev | ab9d5fd | 2004-03-05 08:34:24 +0000 | [diff] [blame] | 285 | else |
Igor Sysoev | 02c8d18 | 2007-03-19 13:36:56 +0000 | [diff] [blame] | 286 | ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS) \$(MAIL_INCS)" |
Igor Sysoev | ab9d5fd | 2004-03-05 08:34:24 +0000 | [diff] [blame] | 287 | fi |
Igor Sysoev | 59cf56c | 2004-09-07 15:29:22 +0000 | [diff] [blame] | 288 | |
Igor Sysoev | 02c8d18 | 2007-03-19 13:36:56 +0000 | [diff] [blame] | 289 | for ngx_src in $MAIL_SRCS |
Igor Sysoev | 59cf56c | 2004-09-07 15:29:22 +0000 | [diff] [blame] | 290 | do |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 291 | ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"` |
| 292 | ngx_obj=`echo $ngx_src \ |
Igor Sysoev | bb28b6d | 2006-07-11 13:20:19 +0000 | [diff] [blame] | 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"` |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 297 | |
| 298 | cat << END >> $NGX_MAKEFILE |
| 299 | |
Igor Sysoev | 02c8d18 | 2007-03-19 13:36:56 +0000 | [diff] [blame] | 300 | $ngx_obj: \$(CORE_DEPS) \$(MAIL_DEPS)$ngx_cont$ngx_src |
Igor Sysoev | 7845223 | 2005-10-12 13:50:36 +0000 | [diff] [blame] | 301 | $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 302 | |
| 303 | END |
Igor Sysoev | 1ebfead | 2005-02-16 13:40:36 +0000 | [diff] [blame] | 304 | done |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 305 | |
Igor Sysoev | 1ebfead | 2005-02-16 13:40:36 +0000 | [diff] [blame] | 306 | fi |
| 307 | |
| 308 | |
Igor Sysoev | 85dd8fc | 2008-03-18 10:36:27 +0000 | [diff] [blame] | 309 | # the misc sources |
| 310 | |
| 311 | if 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 | |
| 329 | END |
| 330 | done |
| 331 | |
| 332 | fi |
| 333 | |
| 334 | |
Igor Sysoev | 1ebfead | 2005-02-16 13:40:36 +0000 | [diff] [blame] | 335 | # the addons sources |
| 336 | |
| 337 | if 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 Sysoev | bb28b6d | 2006-07-11 13:20:19 +0000 | [diff] [blame] | 349 | | 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 Sysoev | 1ebfead | 2005-02-16 13:40:36 +0000 | [diff] [blame] | 353 | |
| 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 Sysoev | 7845223 | 2005-10-12 13:50:36 +0000 | [diff] [blame] | 359 | $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX |
Igor Sysoev | 1ebfead | 2005-02-16 13:40:36 +0000 | [diff] [blame] | 360 | |
| 361 | END |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 362 | done |
Igor Sysoev | 59cf56c | 2004-09-07 15:29:22 +0000 | [diff] [blame] | 363 | |
| 364 | fi |
Igor Sysoev | fc5a10a | 2004-03-09 19:47:07 +0000 | [diff] [blame] | 365 | |
| 366 | |
Igor Sysoev | 305a9d8 | 2005-12-26 17:07:48 +0000 | [diff] [blame] | 367 | # the addons config.make |
| 368 | |
| 369 | if 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 |
| 377 | fi |
| 378 | |
| 379 | |
Igor Sysoev | 1b73583 | 2004-11-11 14:07:14 +0000 | [diff] [blame] | 380 | # Win32 resource file |
| 381 | |
| 382 | if 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 | |
| 393 | END |
| 394 | |
| 395 | fi |
| 396 | |
| 397 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 398 | # the precompiled headers |
Igor Sysoev | fc5a10a | 2004-03-09 19:47:07 +0000 | [diff] [blame] | 399 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 400 | if test -n "$NGX_PCH"; then |
Igor Sysoev | f690604 | 2004-11-25 16:17:31 +0000 | [diff] [blame] | 401 | echo "#include <ngx_config.h>" > $NGX_OBJS/ngx_pch.c |
Igor Sysoev | fc5a10a | 2004-03-09 19:47:07 +0000 | [diff] [blame] | 402 | |
Igor Sysoev | f690604 | 2004-11-25 16:17:31 +0000 | [diff] [blame] | 403 | ngx_pch="src/core/ngx_config.h $OS_CONFIG $NGX_OBJS/ngx_auto_config.h" |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 404 | ngx_pch=`echo "$NGX_PCH: $ngx_pch" | sed -e "s/\//$ngx_regex_dirsep/g"` |
Igor Sysoev | fc5a10a | 2004-03-09 19:47:07 +0000 | [diff] [blame] | 405 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 406 | ngx_src="\$(CC) \$(CFLAGS) $NGX_BUILD_PCH $ngx_compile_opt \$(ALL_INCS)" |
Igor Sysoev | f690604 | 2004-11-25 16:17:31 +0000 | [diff] [blame] | 407 | ngx_src="$ngx_src $ngx_objout$NGX_OBJS/ngx_pch.obj $NGX_OBJS/ngx_pch.c" |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame] | 408 | 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 | |
| 415 | END |
| 416 | |
Igor Sysoev | fc5a10a | 2004-03-09 19:47:07 +0000 | [diff] [blame] | 417 | fi |