Annotation of embedaddon/nginx/auto/make, revision 1.1.1.1

1.1       misho       1: 
                      2: # Copyright (C) Igor Sysoev
                      3: # Copyright (C) Nginx, Inc.
                      4: 
                      5: 
                      6: echo "creating $NGX_MAKEFILE"
                      7: 
                      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 \
                     11:         $NGX_OBJS/src/http/modules/perl \
                     12:          $NGX_OBJS/src/mail \
                     13:          $NGX_OBJS/src/misc
                     14: 
                     15: 
                     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: 
                     20: cat << END                                                     > $NGX_MAKEFILE
                     21: 
                     22: CC =   $CC
                     23: CFLAGS = $CFLAGS
                     24: CPP =  $CPP
                     25: LINK = $LINK
                     26: 
                     27: END
                     28: 
                     29: 
                     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: 
                     35: 
                     36: # ALL_INCS, required by the addons and by OpenWatcom C precompiled headers
                     37: 
                     38: ngx_incs=`echo $CORE_INCS $NGX_OBJS $HTTP_INCS $MAIL_INCS\
                     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
                     47: 
                     48: 
                     49: ngx_all_srcs="$CORE_SRCS"
                     50: 
                     51: 
                     52: # the core dependences and include paths
                     53: 
                     54: ngx_deps=`echo $CORE_DEPS $NGX_AUTO_CONFIG_H $NGX_PCH \
                     55:     | sed -e "s/  *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \
                     56:           -e "s/\//$ngx_regex_dirsep/g"`
                     57: 
                     58: ngx_incs=`echo $CORE_INCS $NGX_OBJS \
                     59:     | sed -e "s/  *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \
                     60:           -e "s/\//$ngx_regex_dirsep/g"`
                     61: 
                     62: cat << END                                                    >> $NGX_MAKEFILE
                     63: 
                     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 paths
                     73: 
                     74: if [ $HTTP = YES ]; then
                     75: 
                     76:     ngx_all_srcs="$ngx_all_srcs $HTTP_SRCS"
                     77: 
                     78:     ngx_deps=`echo $HTTP_DEPS \
                     79:         | sed -e "s/  *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \
                     80:               -e "s/\//$ngx_regex_dirsep/g"`
                     81: 
                     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"`
                     85: 
                     86:     cat << END                                                >> $NGX_MAKEFILE
                     87: 
                     88: HTTP_DEPS = $ngx_deps
                     89: 
                     90: 
                     91: HTTP_INCS = $ngx_include_opt$ngx_incs
                     92: 
                     93: END
                     94: 
                     95: fi
                     96: 
                     97: 
                     98: # the mail dependences and include paths
                     99: 
                    100: if [ $MAIL = YES ]; then
                    101: 
                    102:     ngx_all_srcs="$ngx_all_srcs $MAIL_SRCS"
                    103: 
                    104:     ngx_deps=`echo $MAIL_DEPS \
                    105:         | sed -e "s/  *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \
                    106:               -e "s/\//$ngx_regex_dirsep/g"`
                    107: 
                    108:     ngx_incs=`echo $MAIL_INCS \
                    109:         | sed -e "s/  *\([^ ][^ ]*\)/$ngx_regex_cont$ngx_include_opt\1/g" \
                    110:               -e "s/\//$ngx_regex_dirsep/g"`
                    111: 
                    112:     cat << END                                                >> $NGX_MAKEFILE
                    113: 
                    114: MAIL_DEPS = $ngx_deps
                    115: 
                    116: 
                    117: MAIL_INCS = $ngx_include_opt$ngx_incs
                    118: 
                    119: END
                    120: 
                    121: fi
                    122: 
                    123: 
                    124: ngx_all_srcs="$ngx_all_srcs $NGX_MISC_SRCS"
                    125: 
                    126: 
                    127: if test -n "$NGX_ADDON_SRCS"; then
                    128: 
                    129: cat << END                                                >> $NGX_MAKEFILE
                    130: 
                    131: ADDON_DEPS = \$(CORE_DEPS) $NGX_ADDON_DEPS
                    132: 
                    133: END
                    134: 
                    135: fi
                    136: 
                    137: 
                    138: # nginx
                    139: 
                    140: ngx_all_srcs=`echo $ngx_all_srcs | sed -e "s/\//$ngx_regex_dirsep/g"`
                    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
                    153: 
                    154: ngx_all_objs=`echo $ngx_all_srcs \
                    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"`
                    159: 
                    160: ngx_modules_c=`echo $NGX_MODULES_C | sed -e "s/\//$ngx_regex_dirsep/g"`
                    161: 
                    162: ngx_modules_obj=`echo $ngx_modules_c | sed -e "s/\(.*\.\)c/\1$ngx_objext/"`
                    163: 
                    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 \
                    173:     | sed -e "s/  *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \
                    174:           -e "s/\//$ngx_regex_dirsep/g"`
                    175: 
                    176: ngx_objs=`echo $ngx_all_objs $ngx_modules_obj \
                    177:     | sed -e "s/  *\([^ ][^ ]*\)/$ngx_long_regex_cont\1/g" \
                    178:           -e "s/\//$ngx_regex_dirsep/g"`
                    179: 
                    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
                    184: 
                    185: ngx_link=${CORE_LINK:+`echo $CORE_LINK \
                    186:     | sed -e "s/\//$ngx_regex_dirsep/g" -e "s/^/$ngx_long_regex_cont/"`}
                    187: 
                    188: 
                    189: cat << END                                                    >> $NGX_MAKEFILE
                    190: 
                    191: $NGX_OBJS${ngx_dirsep}nginx${ngx_binext}:      $ngx_deps$ngx_spacer
                    192:        \$(LINK) ${ngx_long_start}${ngx_binout}$NGX_OBJS${ngx_dirsep}nginx$ngx_long_cont$ngx_objs$ngx_libs$ngx_link
                    193:        $ngx_rcc
                    194: ${ngx_long_end}
                    195: END
                    196: 
                    197: 
                    198: # ngx_modules.c
                    199: 
                    200: if test -n "$NGX_PCH"; then
                    201:     ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)"
                    202: else
                    203:     ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS)"
                    204: fi
                    205: 
                    206: cat << END                                                    >> $NGX_MAKEFILE
                    207: 
                    208: $ngx_modules_obj:      \$(CORE_DEPS)$ngx_cont$ngx_modules_c
                    209:        $ngx_cc$ngx_tab$ngx_objout$ngx_modules_obj$ngx_tab$ngx_modules_c$NGX_AUX
                    210: 
                    211: END
                    212: 
                    213: 
                    214: # the core sources
                    215: 
                    216: for ngx_src in $CORE_SRCS
                    217: do
                    218:     ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"`
                    219:     ngx_obj=`echo $ngx_src \
                    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"`
                    224: 
                    225:     cat << END                                                >> $NGX_MAKEFILE
                    226: 
                    227: $ngx_obj:      \$(CORE_DEPS)$ngx_cont$ngx_src
                    228:        $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
                    229: 
                    230: END
                    231: 
                    232: done
                    233: 
                    234: 
                    235: # the http sources
                    236: 
                    237: if [ $HTTP = YES ]; then
                    238: 
                    239:     if test -n "$NGX_PCH"; then
                    240:         ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)"
                    241:     else
                    242:         ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS) \$(HTTP_INCS)"
                    243:         ngx_perl_cc="\$(CC) $ngx_compile_opt \$(NGX_PERL_CFLAGS) "
                    244:         ngx_perl_cc="$ngx_perl_cc \$(CORE_INCS) \$(HTTP_INCS)"
                    245:     fi
                    246: 
                    247:     for ngx_source in $HTTP_SRCS
                    248:     do
                    249:         ngx_src=`echo $ngx_source | sed -e "s/\//$ngx_regex_dirsep/g"`
                    250:         ngx_obj=`echo $ngx_src \
                    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"`
                    255: 
                    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
                    267: 
                    268: $ngx_obj:      \$(CORE_DEPS) \$(HTTP_DEPS)$ngx_cont$ngx_src
                    269:        $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
                    270: 
                    271: END
                    272: 
                    273:         fi
                    274:      done
                    275: 
                    276: fi
                    277: 
                    278: 
                    279: # the mail sources
                    280: 
                    281: if [ $MAIL = YES ]; then
                    282: 
                    283:     if test -n "$NGX_PCH"; then
                    284:         ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) $ngx_use_pch \$(ALL_INCS)"
                    285:     else
                    286:         ngx_cc="\$(CC) $ngx_compile_opt \$(CFLAGS) \$(CORE_INCS) \$(MAIL_INCS)"
                    287:     fi
                    288: 
                    289:     for ngx_src in $MAIL_SRCS
                    290:     do
                    291:         ngx_src=`echo $ngx_src | sed -e "s/\//$ngx_regex_dirsep/g"`
                    292:         ngx_obj=`echo $ngx_src \
                    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"`
                    297: 
                    298:         cat << END                                            >> $NGX_MAKEFILE
                    299: 
                    300: $ngx_obj:      \$(CORE_DEPS) \$(MAIL_DEPS)$ngx_cont$ngx_src
                    301:        $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
                    302: 
                    303: END
                    304:      done
                    305: 
                    306: fi
                    307: 
                    308: 
                    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: 
                    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 \
                    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"`
                    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
                    359:        $ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
                    360: 
                    361: END
                    362:      done
                    363: 
                    364: fi
                    365: 
                    366: 
                    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: 
                    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: 
                    398: # the precompiled headers
                    399: 
                    400: if test -n "$NGX_PCH"; then
                    401:     echo "#include <ngx_config.h>" > $NGX_OBJS/ngx_pch.c
                    402: 
                    403:     ngx_pch="src/core/ngx_config.h $OS_CONFIG $NGX_OBJS/ngx_auto_config.h"
                    404:     ngx_pch=`echo "$NGX_PCH:   $ngx_pch" | sed -e "s/\//$ngx_regex_dirsep/g"`
                    405: 
                    406:     ngx_src="\$(CC) \$(CFLAGS) $NGX_BUILD_PCH $ngx_compile_opt \$(ALL_INCS)"
                    407:     ngx_src="$ngx_src $ngx_objout$NGX_OBJS/ngx_pch.obj $NGX_OBJS/ngx_pch.c"
                    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: 
                    417: fi

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>