1 2# Copyright (C) Igor Sysoev 3# Copyright (C) Nginx, Inc. 4 5 6if [ $EVENT_SELECT = NO -a $EVENT_FOUND = NO ]; then 7 EVENT_SELECT=YES 8fi 9 10if [ $EVENT_SELECT = YES ]; then 11 have=NGX_HAVE_SELECT . auto/have 12 CORE_SRCS="$CORE_SRCS $SELECT_SRCS" 13 EVENT_MODULES="$EVENT_MODULES $SELECT_MODULE" 14fi 15 16 17if [ $EVENT_POLL = NO -a $EVENT_FOUND = NO ]; then 18 EVENT_POLL=YES 19fi 20 21if [ $EVENT_POLL = YES ]; then 22 have=NGX_HAVE_POLL . auto/have 23 CORE_SRCS="$CORE_SRCS $POLL_SRCS" 24 EVENT_MODULES="$EVENT_MODULES $POLL_MODULE" 25fi 26 27 28if [ $NGX_TEST_BUILD_DEVPOLL = YES ]; then 29 have=NGX_HAVE_DEVPOLL . auto/have 30 have=NGX_TEST_BUILD_DEVPOLL . auto/have 31 EVENT_MODULES="$EVENT_MODULES $DEVPOLL_MODULE" 32 CORE_SRCS="$CORE_SRCS $DEVPOLL_SRCS" 33fi 34 35 36if [ $NGX_TEST_BUILD_EVENTPORT = YES ]; then 37 have=NGX_HAVE_EVENTPORT . auto/have 38 have=NGX_TEST_BUILD_EVENTPORT . auto/have 39 EVENT_MODULES="$EVENT_MODULES $EVENTPORT_MODULE" 40 CORE_SRCS="$CORE_SRCS $EVENTPORT_SRCS" 41fi 42 43if [ $NGX_TEST_BUILD_EPOLL = YES ]; then 44 have=NGX_HAVE_EPOLL . auto/have 45 have=NGX_HAVE_EPOLLRDHUP . auto/have 46 have=NGX_HAVE_EPOLLEXCLUSIVE . auto/have 47 have=NGX_HAVE_EVENTFD . auto/have 48 have=NGX_TEST_BUILD_EPOLL . auto/have 49 EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE" 50 CORE_SRCS="$CORE_SRCS $EPOLL_SRCS" 51fi 52 53if [ $NGX_TEST_BUILD_SOLARIS_SENDFILEV = YES ]; then 54 have=NGX_TEST_BUILD_SOLARIS_SENDFILEV . auto/have 55 CORE_SRCS="$CORE_SRCS $SOLARIS_SENDFILEV_SRCS" 56fi 57 58if [ $USE_FSTACK = YES ]; then 59 have=NGX_HAVE_FSTACK . auto/have 60 have=NGX_HAVE_FSTACK . auto/have_headers 61 have=SOCK_FSTACK value=0x1000 . auto/define 62 CORE_SRCS="$CORE_SRCS $KQUEUE_SRCS" 63 EVENT_MODULES="$EVENT_MODULES $KQUEUE_MODULE" 64fi 65 66 67if [ $HTTP = YES ]; then 68 HTTP_MODULES= 69 HTTP_DEPS= 70 HTTP_INCS= 71 72 ngx_module_type=HTTP 73 74 if :; then 75 ngx_module_name="ngx_http_module \ 76 ngx_http_core_module \ 77 ngx_http_log_module \ 78 ngx_http_upstream_module" 79 ngx_module_incs="src/http src/http/modules" 80 ngx_module_deps="src/http/ngx_http.h \ 81 src/http/ngx_http_request.h \ 82 src/http/ngx_http_config.h \ 83 src/http/ngx_http_core_module.h \ 84 src/http/ngx_http_cache.h \ 85 src/http/ngx_http_variables.h \ 86 src/http/ngx_http_script.h \ 87 src/http/ngx_http_upstream.h \ 88 src/http/ngx_http_upstream_round_robin.h" 89 ngx_module_srcs="src/http/ngx_http.c \ 90 src/http/ngx_http_core_module.c \ 91 src/http/ngx_http_special_response.c \ 92 src/http/ngx_http_request.c \ 93 src/http/ngx_http_parse.c \ 94 src/http/modules/ngx_http_log_module.c \ 95 src/http/ngx_http_request_body.c \ 96 src/http/ngx_http_variables.c \ 97 src/http/ngx_http_script.c \ 98 src/http/ngx_http_upstream.c \ 99 src/http/ngx_http_upstream_round_robin.c" 100 ngx_module_libs= 101 ngx_module_link=YES 102 103 . auto/module 104 fi 105 106 107 if [ $HTTP_CACHE = YES ]; then 108 have=NGX_HTTP_CACHE . auto/have 109 HTTP_SRCS="$HTTP_SRCS $HTTP_FILE_CACHE_SRCS" 110 fi 111 112 113 if [ $HTTP_SSI = YES ]; then 114 HTTP_POSTPONE=YES 115 fi 116 117 118 if [ $HTTP_SLICE = YES ]; then 119 HTTP_POSTPONE=YES 120 fi 121 122 123 if [ $HTTP_ADDITION = YES ]; then 124 HTTP_POSTPONE=YES 125 fi 126 127 128 # the module order is important 129 # ngx_http_static_module 130 # ngx_http_gzip_static_module 131 # ngx_http_dav_module 132 # ngx_http_autoindex_module 133 # ngx_http_index_module 134 # ngx_http_random_index_module 135 # 136 # ngx_http_access_module 137 # ngx_http_realip_module 138 # 139 # 140 # the filter order is important 141 # ngx_http_write_filter 142 # ngx_http_header_filter 143 # ngx_http_chunked_filter 144 # ngx_http_v2_filter 145 # ngx_http_range_header_filter 146 # ngx_http_gzip_filter 147 # ngx_http_postpone_filter 148 # ngx_http_ssi_filter 149 # ngx_http_charset_filter 150 # ngx_http_xslt_filter 151 # ngx_http_image_filter 152 # ngx_http_sub_filter 153 # ngx_http_addition_filter 154 # ngx_http_gunzip_filter 155 # ngx_http_userid_filter 156 # ngx_http_headers_filter 157 # ngx_http_copy_filter 158 # ngx_http_range_body_filter 159 # ngx_http_not_modified_filter 160 # ngx_http_slice_filter 161 162 ngx_module_type=HTTP_FILTER 163 HTTP_FILTER_MODULES= 164 165 ngx_module_order="ngx_http_static_module \ 166 ngx_http_gzip_static_module \ 167 ngx_http_dav_module \ 168 ngx_http_autoindex_module \ 169 ngx_http_index_module \ 170 ngx_http_random_index_module \ 171 ngx_http_access_module \ 172 ngx_http_realip_module \ 173 ngx_http_write_filter_module \ 174 ngx_http_header_filter_module \ 175 ngx_http_chunked_filter_module \ 176 ngx_http_v2_filter_module \ 177 ngx_http_range_header_filter_module \ 178 ngx_http_gzip_filter_module \ 179 ngx_http_postpone_filter_module \ 180 ngx_http_ssi_filter_module \ 181 ngx_http_charset_filter_module \ 182 ngx_http_xslt_filter_module \ 183 ngx_http_image_filter_module \ 184 ngx_http_sub_filter_module \ 185 ngx_http_addition_filter_module \ 186 ngx_http_gunzip_filter_module \ 187 ngx_http_userid_filter_module \ 188 ngx_http_headers_filter_module \ 189 ngx_http_copy_filter_module \ 190 ngx_http_range_body_filter_module \ 191 ngx_http_not_modified_filter_module \ 192 ngx_http_slice_filter_module" 193 194 if :; then 195 ngx_module_name=ngx_http_write_filter_module 196 ngx_module_incs= 197 ngx_module_deps= 198 ngx_module_srcs=src/http/ngx_http_write_filter_module.c 199 ngx_module_libs= 200 ngx_module_link=YES 201 202 . auto/module 203 fi 204 205 if :; then 206 ngx_module_name=ngx_http_header_filter_module 207 ngx_module_incs= 208 ngx_module_deps= 209 ngx_module_srcs=src/http/ngx_http_header_filter_module.c 210 ngx_module_libs= 211 ngx_module_link=YES 212 213 . auto/module 214 fi 215 216 if :; then 217 ngx_module_name=ngx_http_chunked_filter_module 218 ngx_module_incs= 219 ngx_module_deps= 220 ngx_module_srcs=src/http/modules/ngx_http_chunked_filter_module.c 221 ngx_module_libs= 222 ngx_module_link=YES 223 224 . auto/module 225 fi 226 227 if [ $HTTP_V2 = YES ]; then 228 ngx_module_name=ngx_http_v2_filter_module 229 ngx_module_incs= 230 ngx_module_deps= 231 ngx_module_srcs=src/http/v2/ngx_http_v2_filter_module.c 232 ngx_module_libs= 233 ngx_module_link=$HTTP_V2 234 235 . auto/module 236 fi 237 238 if :; then 239 ngx_module_name=ngx_http_range_header_filter_module 240 ngx_module_incs= 241 ngx_module_deps= 242 ngx_module_srcs=src/http/modules/ngx_http_range_filter_module.c 243 ngx_module_libs= 244 ngx_module_link=YES 245 246 . auto/module 247 fi 248 249 if [ $HTTP_GZIP = YES ]; then 250 have=NGX_HTTP_GZIP . auto/have 251 USE_ZLIB=YES 252 253 ngx_module_name=ngx_http_gzip_filter_module 254 ngx_module_incs= 255 ngx_module_deps= 256 ngx_module_srcs=src/http/modules/ngx_http_gzip_filter_module.c 257 ngx_module_libs= 258 ngx_module_link=$HTTP_GZIP 259 260 . auto/module 261 fi 262 263 if [ $HTTP_POSTPONE = YES ]; then 264 ngx_module_name=ngx_http_postpone_filter_module 265 ngx_module_incs= 266 ngx_module_deps= 267 ngx_module_srcs=src/http/ngx_http_postpone_filter_module.c 268 ngx_module_libs= 269 ngx_module_link=$HTTP_POSTPONE 270 271 . auto/module 272 fi 273 274 if [ $HTTP_SSI = YES ]; then 275 have=NGX_HTTP_SSI . auto/have 276 277 ngx_module_name=ngx_http_ssi_filter_module 278 ngx_module_incs= 279 ngx_module_deps=src/http/modules/ngx_http_ssi_filter_module.h 280 ngx_module_srcs=src/http/modules/ngx_http_ssi_filter_module.c 281 ngx_module_libs= 282 ngx_module_link=$HTTP_SSI 283 284 . auto/module 285 fi 286 287 if [ $HTTP_CHARSET = YES ]; then 288 ngx_module_name=ngx_http_charset_filter_module 289 ngx_module_incs= 290 ngx_module_deps= 291 ngx_module_srcs=src/http/modules/ngx_http_charset_filter_module.c 292 ngx_module_libs= 293 ngx_module_link=$HTTP_CHARSET 294 295 . auto/module 296 fi 297 298 if [ $HTTP_XSLT != NO ]; then 299 ngx_module_name=ngx_http_xslt_filter_module 300 ngx_module_incs= 301 ngx_module_deps= 302 ngx_module_srcs=src/http/modules/ngx_http_xslt_filter_module.c 303 ngx_module_libs=LIBXSLT 304 ngx_module_link=$HTTP_XSLT 305 306 . auto/module 307 fi 308 309 if [ $HTTP_IMAGE_FILTER != NO ]; then 310 ngx_module_name=ngx_http_image_filter_module 311 ngx_module_incs= 312 ngx_module_deps= 313 ngx_module_srcs=src/http/modules/ngx_http_image_filter_module.c 314 ngx_module_libs=LIBGD 315 ngx_module_link=$HTTP_IMAGE_FILTER 316 317 . auto/module 318 fi 319 320 if [ $HTTP_SUB = YES ]; then 321 ngx_module_name=ngx_http_sub_filter_module 322 ngx_module_incs= 323 ngx_module_deps= 324 ngx_module_srcs=src/http/modules/ngx_http_sub_filter_module.c 325 ngx_module_libs= 326 ngx_module_link=$HTTP_SUB 327 328 . auto/module 329 fi 330 331 if [ $HTTP_ADDITION = YES ]; then 332 ngx_module_name=ngx_http_addition_filter_module 333 ngx_module_incs= 334 ngx_module_deps= 335 ngx_module_srcs=src/http/modules/ngx_http_addition_filter_module.c 336 ngx_module_libs= 337 ngx_module_link=$HTTP_ADDITION 338 339 . auto/module 340 fi 341 342 if [ $HTTP_GUNZIP = YES ]; then 343 have=NGX_HTTP_GZIP . auto/have 344 USE_ZLIB=YES 345 346 ngx_module_name=ngx_http_gunzip_filter_module 347 ngx_module_incs= 348 ngx_module_deps= 349 ngx_module_srcs=src/http/modules/ngx_http_gunzip_filter_module.c 350 ngx_module_libs= 351 ngx_module_link=$HTTP_GUNZIP 352 353 . auto/module 354 fi 355 356 if [ $HTTP_USERID = YES ]; then 357 ngx_module_name=ngx_http_userid_filter_module 358 ngx_module_incs= 359 ngx_module_deps= 360 ngx_module_srcs=src/http/modules/ngx_http_userid_filter_module.c 361 ngx_module_libs= 362 ngx_module_link=$HTTP_USERID 363 364 . auto/module 365 fi 366 367 if :; then 368 ngx_module_name=ngx_http_headers_filter_module 369 ngx_module_incs= 370 ngx_module_deps= 371 ngx_module_srcs=src/http/modules/ngx_http_headers_filter_module.c 372 ngx_module_libs= 373 ngx_module_link=YES 374 375 . auto/module 376 fi 377 378 379 ngx_module_type=HTTP_INIT_FILTER 380 HTTP_INIT_FILTER_MODULES= 381 382 if :; then 383 ngx_module_name=ngx_http_copy_filter_module 384 ngx_module_incs= 385 ngx_module_deps= 386 ngx_module_srcs=src/http/ngx_http_copy_filter_module.c 387 ngx_module_libs= 388 ngx_module_link=YES 389 390 . auto/module 391 fi 392 393 if :; then 394 ngx_module_name=ngx_http_range_body_filter_module 395 ngx_module_incs= 396 ngx_module_deps= 397 ngx_module_srcs= 398 ngx_module_libs= 399 ngx_module_link=YES 400 401 . auto/module 402 fi 403 404 if :; then 405 ngx_module_name=ngx_http_not_modified_filter_module 406 ngx_module_incs= 407 ngx_module_deps= 408 ngx_module_srcs=src/http/modules/ngx_http_not_modified_filter_module.c 409 ngx_module_libs= 410 ngx_module_link=YES 411 412 . auto/module 413 fi 414 415 if [ $HTTP_SLICE = YES ]; then 416 ngx_module_name=ngx_http_slice_filter_module 417 ngx_module_incs= 418 ngx_module_deps= 419 ngx_module_srcs=src/http/modules/ngx_http_slice_filter_module.c 420 ngx_module_libs= 421 ngx_module_link=$HTTP_SLICE 422 423 . auto/module 424 fi 425 426 427 ngx_module_type=HTTP 428 429 if [ $HTTP_V2 = YES ]; then 430 have=NGX_HTTP_V2 . auto/have 431 have=NGX_HTTP_HEADERS . auto/have 432 433 ngx_module_name=ngx_http_v2_module 434 ngx_module_incs=src/http/v2 435 ngx_module_deps="src/http/v2/ngx_http_v2.h \ 436 src/http/v2/ngx_http_v2_module.h" 437 ngx_module_srcs="src/http/v2/ngx_http_v2.c \ 438 src/http/v2/ngx_http_v2_table.c \ 439 src/http/v2/ngx_http_v2_encode.c \ 440 src/http/v2/ngx_http_v2_huff_decode.c \ 441 src/http/v2/ngx_http_v2_huff_encode.c \ 442 src/http/v2/ngx_http_v2_module.c" 443 ngx_module_libs= 444 ngx_module_link=$HTTP_V2 445 446 . auto/module 447 fi 448 449 if :; then 450 ngx_module_name=ngx_http_static_module 451 ngx_module_incs= 452 ngx_module_deps= 453 ngx_module_srcs=src/http/modules/ngx_http_static_module.c 454 ngx_module_libs= 455 ngx_module_link=YES 456 457 . auto/module 458 fi 459 460 if [ $HTTP_GZIP_STATIC = YES ]; then 461 have=NGX_HTTP_GZIP . auto/have 462 463 ngx_module_name=ngx_http_gzip_static_module 464 ngx_module_incs= 465 ngx_module_deps= 466 ngx_module_srcs=src/http/modules/ngx_http_gzip_static_module.c 467 ngx_module_libs= 468 ngx_module_link=$HTTP_GZIP_STATIC 469 470 . auto/module 471 fi 472 473 if [ $HTTP_DAV = YES ]; then 474 have=NGX_HTTP_DAV . auto/have 475 476 ngx_module_name=ngx_http_dav_module 477 ngx_module_incs= 478 ngx_module_deps= 479 ngx_module_srcs=src/http/modules/ngx_http_dav_module.c 480 ngx_module_libs= 481 ngx_module_link=$HTTP_DAV 482 483 . auto/module 484 fi 485 486 if [ $HTTP_AUTOINDEX = YES ]; then 487 ngx_module_name=ngx_http_autoindex_module 488 ngx_module_incs= 489 ngx_module_deps= 490 ngx_module_srcs=src/http/modules/ngx_http_autoindex_module.c 491 ngx_module_libs= 492 ngx_module_link=$HTTP_AUTOINDEX 493 494 . auto/module 495 fi 496 497 if :; then 498 ngx_module_name=ngx_http_index_module 499 ngx_module_incs= 500 ngx_module_deps= 501 ngx_module_srcs=src/http/modules/ngx_http_index_module.c 502 ngx_module_libs= 503 ngx_module_link=YES 504 505 . auto/module 506 fi 507 508 if [ $HTTP_RANDOM_INDEX = YES ]; then 509 ngx_module_name=ngx_http_random_index_module 510 ngx_module_incs= 511 ngx_module_deps= 512 ngx_module_srcs=src/http/modules/ngx_http_random_index_module.c 513 ngx_module_libs= 514 ngx_module_link=$HTTP_RANDOM_INDEX 515 516 . auto/module 517 fi 518 519 if [ $HTTP_MIRROR = YES ]; then 520 ngx_module_name=ngx_http_mirror_module 521 ngx_module_incs= 522 ngx_module_deps= 523 ngx_module_srcs=src/http/modules/ngx_http_mirror_module.c 524 ngx_module_libs= 525 ngx_module_link=$HTTP_MIRROR 526 527 . auto/module 528 fi 529 530 if :; then 531 ngx_module_name=ngx_http_try_files_module 532 ngx_module_incs= 533 ngx_module_deps= 534 ngx_module_srcs=src/http/modules/ngx_http_try_files_module.c 535 ngx_module_libs= 536 ngx_module_link=YES 537 538 . auto/module 539 fi 540 541 if [ $HTTP_AUTH_REQUEST = YES ]; then 542 ngx_module_name=ngx_http_auth_request_module 543 ngx_module_incs= 544 ngx_module_deps= 545 ngx_module_srcs=src/http/modules/ngx_http_auth_request_module.c 546 ngx_module_libs= 547 ngx_module_link=$HTTP_AUTH_REQUEST 548 549 . auto/module 550 fi 551 552 if [ $HTTP_AUTH_BASIC = YES ]; then 553 have=NGX_CRYPT . auto/have 554 555 ngx_module_name=ngx_http_auth_basic_module 556 ngx_module_incs= 557 ngx_module_deps= 558 ngx_module_srcs=src/http/modules/ngx_http_auth_basic_module.c 559 ngx_module_libs=$CRYPT_LIB 560 ngx_module_link=$HTTP_AUTH_BASIC 561 562 . auto/module 563 fi 564 565 if [ $HTTP_ACCESS = YES ]; then 566 ngx_module_name=ngx_http_access_module 567 ngx_module_incs= 568 ngx_module_deps= 569 ngx_module_srcs=src/http/modules/ngx_http_access_module.c 570 ngx_module_libs= 571 ngx_module_link=$HTTP_ACCESS 572 573 . auto/module 574 fi 575 576 if [ $HTTP_LIMIT_CONN = YES ]; then 577 ngx_module_name=ngx_http_limit_conn_module 578 ngx_module_incs= 579 ngx_module_deps= 580 ngx_module_srcs=src/http/modules/ngx_http_limit_conn_module.c 581 ngx_module_libs= 582 ngx_module_link=$HTTP_LIMIT_CONN 583 584 . auto/module 585 fi 586 587 if [ $HTTP_LIMIT_REQ = YES ]; then 588 ngx_module_name=ngx_http_limit_req_module 589 ngx_module_incs= 590 ngx_module_deps= 591 ngx_module_srcs=src/http/modules/ngx_http_limit_req_module.c 592 ngx_module_libs= 593 ngx_module_link=$HTTP_LIMIT_REQ 594 595 . auto/module 596 fi 597 598 if [ $HTTP_REALIP = YES ]; then 599 have=NGX_HTTP_REALIP . auto/have 600 have=NGX_HTTP_X_FORWARDED_FOR . auto/have 601 602 ngx_module_name=ngx_http_realip_module 603 ngx_module_incs= 604 ngx_module_deps= 605 ngx_module_srcs=src/http/modules/ngx_http_realip_module.c 606 ngx_module_libs= 607 ngx_module_link=$HTTP_REALIP 608 609 . auto/module 610 fi 611 612 if [ $HTTP_STATUS = YES ]; then 613 ngx_module_name=ngx_http_status_module 614 ngx_module_incs= 615 ngx_module_deps= 616 ngx_module_srcs=src/http/modules/ngx_http_status_module.c 617 ngx_module_libs= 618 ngx_module_link=$HTTP_STATUS 619 620 . auto/module 621 fi 622 623 if [ $HTTP_GEO = YES ]; then 624 have=NGX_HTTP_X_FORWARDED_FOR . auto/have 625 626 ngx_module_name=ngx_http_geo_module 627 ngx_module_incs= 628 ngx_module_deps= 629 ngx_module_srcs=src/http/modules/ngx_http_geo_module.c 630 ngx_module_libs= 631 ngx_module_link=$HTTP_GEO 632 633 . auto/module 634 fi 635 636 if [ $HTTP_GEOIP != NO ]; then 637 have=NGX_HTTP_X_FORWARDED_FOR . auto/have 638 639 ngx_module_name=ngx_http_geoip_module 640 ngx_module_incs= 641 ngx_module_deps= 642 ngx_module_srcs=src/http/modules/ngx_http_geoip_module.c 643 ngx_module_libs=GEOIP 644 ngx_module_link=$HTTP_GEOIP 645 646 . auto/module 647 fi 648 649 if [ $HTTP_MAP = YES ]; then 650 ngx_module_name=ngx_http_map_module 651 ngx_module_incs= 652 ngx_module_deps= 653 ngx_module_srcs=src/http/modules/ngx_http_map_module.c 654 ngx_module_libs= 655 ngx_module_link=$HTTP_MAP 656 657 . auto/module 658 fi 659 660 if [ $HTTP_SPLIT_CLIENTS = YES ]; then 661 ngx_module_name=ngx_http_split_clients_module 662 ngx_module_incs= 663 ngx_module_deps= 664 ngx_module_srcs=src/http/modules/ngx_http_split_clients_module.c 665 ngx_module_libs= 666 ngx_module_link=$HTTP_SPLIT_CLIENTS 667 668 . auto/module 669 fi 670 671 if [ $HTTP_REFERER = YES ]; then 672 ngx_module_name=ngx_http_referer_module 673 ngx_module_incs= 674 ngx_module_deps= 675 ngx_module_srcs=src/http/modules/ngx_http_referer_module.c 676 ngx_module_libs= 677 ngx_module_link=$HTTP_REFERER 678 679 . auto/module 680 fi 681 682 if [ $HTTP_REWRITE = YES -a $USE_PCRE != DISABLED ]; then 683 USE_PCRE=YES 684 685 ngx_module_name=ngx_http_rewrite_module 686 ngx_module_incs= 687 ngx_module_deps= 688 ngx_module_srcs=src/http/modules/ngx_http_rewrite_module.c 689 ngx_module_libs= 690 ngx_module_link=$HTTP_REWRITE 691 692 . auto/module 693 fi 694 695 if [ $HTTP_SSL = YES ]; then 696 USE_OPENSSL=YES 697 have=NGX_HTTP_SSL . auto/have 698 699 ngx_module_name=ngx_http_ssl_module 700 ngx_module_incs= 701 ngx_module_deps=src/http/modules/ngx_http_ssl_module.h 702 ngx_module_srcs=src/http/modules/ngx_http_ssl_module.c 703 ngx_module_libs= 704 ngx_module_link=$HTTP_SSL 705 706 . auto/module 707 fi 708 709 if [ $HTTP_PROXY = YES ]; then 710 have=NGX_HTTP_X_FORWARDED_FOR . auto/have 711 712 ngx_module_name=ngx_http_proxy_module 713 ngx_module_incs= 714 ngx_module_deps= 715 ngx_module_srcs=src/http/modules/ngx_http_proxy_module.c 716 ngx_module_libs= 717 ngx_module_link=$HTTP_PROXY 718 719 . auto/module 720 fi 721 722 if [ $HTTP_FASTCGI = YES ]; then 723 ngx_module_name=ngx_http_fastcgi_module 724 ngx_module_incs= 725 ngx_module_deps= 726 ngx_module_srcs=src/http/modules/ngx_http_fastcgi_module.c 727 ngx_module_libs= 728 ngx_module_link=$HTTP_FASTCGI 729 730 . auto/module 731 fi 732 733 if [ $HTTP_UWSGI = YES ]; then 734 ngx_module_name=ngx_http_uwsgi_module 735 ngx_module_incs= 736 ngx_module_deps= 737 ngx_module_srcs=src/http/modules/ngx_http_uwsgi_module.c 738 ngx_module_libs= 739 ngx_module_link=$HTTP_UWSGI 740 741 . auto/module 742 fi 743 744 if [ $HTTP_SCGI = YES ]; then 745 ngx_module_name=ngx_http_scgi_module 746 ngx_module_incs= 747 ngx_module_deps= 748 ngx_module_srcs=src/http/modules/ngx_http_scgi_module.c 749 ngx_module_libs= 750 ngx_module_link=$HTTP_SCGI 751 752 . auto/module 753 fi 754 755 if [ $HTTP_GRPC = YES -a $HTTP_V2 = YES ]; then 756 ngx_module_name=ngx_http_grpc_module 757 ngx_module_incs= 758 ngx_module_deps= 759 ngx_module_srcs=src/http/modules/ngx_http_grpc_module.c 760 ngx_module_libs= 761 ngx_module_link=$HTTP_GRPC 762 763 . auto/module 764 fi 765 766 if [ $HTTP_PERL != NO ]; then 767 ngx_module_name=ngx_http_perl_module 768 ngx_module_incs=src/http/modules/perl 769 ngx_module_deps=src/http/modules/perl/ngx_http_perl_module.h 770 ngx_module_srcs=src/http/modules/perl/ngx_http_perl_module.c 771 ngx_module_libs=PERL 772 ngx_module_link=$HTTP_PERL 773 774 . auto/module 775 fi 776 777 if [ $HTTP_MEMCACHED = YES ]; then 778 ngx_module_name=ngx_http_memcached_module 779 ngx_module_incs= 780 ngx_module_deps= 781 ngx_module_srcs=src/http/modules/ngx_http_memcached_module.c 782 ngx_module_libs= 783 ngx_module_link=$HTTP_MEMCACHED 784 785 . auto/module 786 fi 787 788 if [ $HTTP_EMPTY_GIF = YES ]; then 789 ngx_module_name=ngx_http_empty_gif_module 790 ngx_module_incs= 791 ngx_module_deps= 792 ngx_module_srcs=src/http/modules/ngx_http_empty_gif_module.c 793 ngx_module_libs= 794 ngx_module_link=$HTTP_EMPTY_GIF 795 796 . auto/module 797 fi 798 799 if [ $HTTP_BROWSER = YES ]; then 800 ngx_module_name=ngx_http_browser_module 801 ngx_module_incs= 802 ngx_module_deps= 803 ngx_module_srcs=src/http/modules/ngx_http_browser_module.c 804 ngx_module_libs= 805 ngx_module_link=$HTTP_BROWSER 806 807 . auto/module 808 fi 809 810 if [ $HTTP_SECURE_LINK = YES ]; then 811 ngx_module_name=ngx_http_secure_link_module 812 ngx_module_incs= 813 ngx_module_deps= 814 ngx_module_srcs=src/http/modules/ngx_http_secure_link_module.c 815 ngx_module_libs= 816 ngx_module_link=$HTTP_SECURE_LINK 817 818 . auto/module 819 fi 820 821 if [ $HTTP_DEGRADATION = YES ]; then 822 have=NGX_HTTP_DEGRADATION . auto/have 823 824 ngx_module_name=ngx_http_degradation_module 825 ngx_module_incs= 826 ngx_module_deps= 827 ngx_module_srcs=src/http/modules/ngx_http_degradation_module.c 828 ngx_module_libs= 829 ngx_module_link=$HTTP_DEGRADATION 830 831 . auto/module 832 fi 833 834 if [ $HTTP_FLV = YES ]; then 835 ngx_module_name=ngx_http_flv_module 836 ngx_module_incs= 837 ngx_module_deps= 838 ngx_module_srcs=src/http/modules/ngx_http_flv_module.c 839 ngx_module_libs= 840 ngx_module_link=$HTTP_FLV 841 842 . auto/module 843 fi 844 845 if [ $HTTP_MP4 = YES ]; then 846 ngx_module_name=ngx_http_mp4_module 847 ngx_module_incs= 848 ngx_module_deps= 849 ngx_module_srcs=src/http/modules/ngx_http_mp4_module.c 850 ngx_module_libs= 851 ngx_module_link=$HTTP_MP4 852 853 . auto/module 854 fi 855 856 if [ $HTTP_UPSTREAM_HASH = YES ]; then 857 ngx_module_name=ngx_http_upstream_hash_module 858 ngx_module_incs= 859 ngx_module_deps= 860 ngx_module_srcs=src/http/modules/ngx_http_upstream_hash_module.c 861 ngx_module_libs= 862 ngx_module_link=$HTTP_UPSTREAM_HASH 863 864 . auto/module 865 fi 866 867 if [ $HTTP_UPSTREAM_IP_HASH = YES ]; then 868 ngx_module_name=ngx_http_upstream_ip_hash_module 869 ngx_module_incs= 870 ngx_module_deps= 871 ngx_module_srcs=src/http/modules/ngx_http_upstream_ip_hash_module.c 872 ngx_module_libs= 873 ngx_module_link=$HTTP_UPSTREAM_IP_HASH 874 875 . auto/module 876 fi 877 878 if [ $HTTP_UPSTREAM_LEAST_CONN = YES ]; then 879 ngx_module_name=ngx_http_upstream_least_conn_module 880 ngx_module_incs= 881 ngx_module_deps= 882 ngx_module_srcs=src/http/modules/ngx_http_upstream_least_conn_module.c 883 ngx_module_libs= 884 ngx_module_link=$HTTP_UPSTREAM_LEAST_CONN 885 886 . auto/module 887 fi 888 889 if [ $HTTP_UPSTREAM_RANDOM = YES ]; then 890 ngx_module_name=ngx_http_upstream_random_module 891 ngx_module_incs= 892 ngx_module_deps= 893 ngx_module_srcs=src/http/modules/ngx_http_upstream_random_module.c 894 ngx_module_libs= 895 ngx_module_link=$HTTP_UPSTREAM_RANDOM 896 897 . auto/module 898 fi 899 900 if [ $HTTP_UPSTREAM_KEEPALIVE = YES ]; then 901 ngx_module_name=ngx_http_upstream_keepalive_module 902 ngx_module_incs= 903 ngx_module_deps= 904 ngx_module_srcs=src/http/modules/ngx_http_upstream_keepalive_module.c 905 ngx_module_libs= 906 ngx_module_link=$HTTP_UPSTREAM_KEEPALIVE 907 908 . auto/module 909 fi 910 911 if [ $HTTP_UPSTREAM_ZONE = YES ]; then 912 have=NGX_HTTP_UPSTREAM_ZONE . auto/have 913 914 ngx_module_name=ngx_http_upstream_zone_module 915 ngx_module_incs= 916 ngx_module_deps= 917 ngx_module_srcs=src/http/modules/ngx_http_upstream_zone_module.c 918 ngx_module_libs= 919 ngx_module_link=$HTTP_UPSTREAM_ZONE 920 921 . auto/module 922 fi 923 924 if [ $HTTP_STUB_STATUS = YES ]; then 925 have=NGX_STAT_STUB . auto/have 926 927 ngx_module_name=ngx_http_stub_status_module 928 ngx_module_incs= 929 ngx_module_deps= 930 ngx_module_srcs=src/http/modules/ngx_http_stub_status_module.c 931 ngx_module_libs= 932 ngx_module_link=$HTTP_STUB_STATUS 933 934 . auto/module 935 fi 936fi 937 938 939if [ $MAIL != NO ]; then 940 MAIL_MODULES= 941 MAIL_DEPS= 942 MAIL_INCS= 943 944 ngx_module_type=MAIL 945 ngx_module_libs= 946 ngx_module_link=YES 947 948 ngx_module_order= 949 950 ngx_module_name="ngx_mail_module ngx_mail_core_module" 951 ngx_module_incs="src/mail" 952 ngx_module_deps="src/mail/ngx_mail.h" 953 ngx_module_srcs="src/mail/ngx_mail.c \ 954 src/mail/ngx_mail_core_module.c \ 955 src/mail/ngx_mail_handler.c \ 956 src/mail/ngx_mail_parse.c" 957 958 . auto/module 959 960 ngx_module_incs= 961 962 if [ $MAIL_SSL = YES ]; then 963 USE_OPENSSL=YES 964 have=NGX_MAIL_SSL . auto/have 965 966 ngx_module_name=ngx_mail_ssl_module 967 ngx_module_deps=src/mail/ngx_mail_ssl_module.h 968 ngx_module_srcs=src/mail/ngx_mail_ssl_module.c 969 970 . auto/module 971 fi 972 973 if [ $MAIL_POP3 = YES ]; then 974 ngx_module_name=ngx_mail_pop3_module 975 ngx_module_deps=src/mail/ngx_mail_pop3_module.h 976 ngx_module_srcs="src/mail/ngx_mail_pop3_module.c \ 977 src/mail/ngx_mail_pop3_handler.c" 978 979 . auto/module 980 fi 981 982 if [ $MAIL_IMAP = YES ]; then 983 ngx_module_name=ngx_mail_imap_module 984 ngx_module_deps=src/mail/ngx_mail_imap_module.h 985 ngx_module_srcs="src/mail/ngx_mail_imap_module.c \ 986 src/mail/ngx_mail_imap_handler.c" 987 988 . auto/module 989 fi 990 991 if [ $MAIL_SMTP = YES ]; then 992 ngx_module_name=ngx_mail_smtp_module 993 ngx_module_deps=src/mail/ngx_mail_smtp_module.h 994 ngx_module_srcs="src/mail/ngx_mail_smtp_module.c \ 995 src/mail/ngx_mail_smtp_handler.c" 996 997 . auto/module 998 fi 999 1000 ngx_module_name=ngx_mail_auth_http_module 1001 ngx_module_deps= 1002 ngx_module_srcs=src/mail/ngx_mail_auth_http_module.c 1003 1004 . auto/module 1005 1006 ngx_module_name=ngx_mail_proxy_module 1007 ngx_module_deps= 1008 ngx_module_srcs=src/mail/ngx_mail_proxy_module.c 1009 1010 . auto/module 1011fi 1012 1013 1014if [ $STREAM != NO ]; then 1015 STREAM_MODULES= 1016 STREAM_DEPS= 1017 STREAM_INCS= 1018 1019 ngx_module_type=STREAM 1020 ngx_module_libs= 1021 ngx_module_link=YES 1022 1023 ngx_module_order= 1024 1025 ngx_module_name="ngx_stream_module \ 1026 ngx_stream_core_module \ 1027 ngx_stream_log_module \ 1028 ngx_stream_proxy_module \ 1029 ngx_stream_upstream_module \ 1030 ngx_stream_write_filter_module" 1031 ngx_module_incs="src/stream" 1032 ngx_module_deps="src/stream/ngx_stream.h \ 1033 src/stream/ngx_stream_variables.h \ 1034 src/stream/ngx_stream_script.h \ 1035 src/stream/ngx_stream_upstream.h \ 1036 src/stream/ngx_stream_upstream_round_robin.h" 1037 ngx_module_srcs="src/stream/ngx_stream.c \ 1038 src/stream/ngx_stream_variables.c \ 1039 src/stream/ngx_stream_script.c \ 1040 src/stream/ngx_stream_handler.c \ 1041 src/stream/ngx_stream_core_module.c \ 1042 src/stream/ngx_stream_log_module.c \ 1043 src/stream/ngx_stream_proxy_module.c \ 1044 src/stream/ngx_stream_upstream.c \ 1045 src/stream/ngx_stream_upstream_round_robin.c \ 1046 src/stream/ngx_stream_write_filter_module.c" 1047 1048 . auto/module 1049 1050 ngx_module_incs= 1051 1052 if [ $STREAM_SSL = YES ]; then 1053 USE_OPENSSL=YES 1054 have=NGX_STREAM_SSL . auto/have 1055 1056 ngx_module_name=ngx_stream_ssl_module 1057 ngx_module_deps=src/stream/ngx_stream_ssl_module.h 1058 ngx_module_srcs=src/stream/ngx_stream_ssl_module.c 1059 ngx_module_libs= 1060 ngx_module_link=$STREAM_SSL 1061 1062 . auto/module 1063 fi 1064 1065 if [ $STREAM_REALIP = YES ]; then 1066 ngx_module_name=ngx_stream_realip_module 1067 ngx_module_deps= 1068 ngx_module_srcs=src/stream/ngx_stream_realip_module.c 1069 ngx_module_libs= 1070 ngx_module_link=$STREAM_REALIP 1071 1072 . auto/module 1073 fi 1074 1075 if [ $STREAM_LIMIT_CONN = YES ]; then 1076 ngx_module_name=ngx_stream_limit_conn_module 1077 ngx_module_deps= 1078 ngx_module_srcs=src/stream/ngx_stream_limit_conn_module.c 1079 ngx_module_libs= 1080 ngx_module_link=$STREAM_LIMIT_CONN 1081 1082 . auto/module 1083 fi 1084 1085 if [ $STREAM_ACCESS = YES ]; then 1086 ngx_module_name=ngx_stream_access_module 1087 ngx_module_deps= 1088 ngx_module_srcs=src/stream/ngx_stream_access_module.c 1089 ngx_module_libs= 1090 ngx_module_link=$STREAM_ACCESS 1091 1092 . auto/module 1093 fi 1094 1095 if [ $STREAM_GEO = YES ]; then 1096 ngx_module_name=ngx_stream_geo_module 1097 ngx_module_deps= 1098 ngx_module_srcs=src/stream/ngx_stream_geo_module.c 1099 ngx_module_libs= 1100 ngx_module_link=$STREAM_GEO 1101 1102 . auto/module 1103 fi 1104 1105 if [ $STREAM_GEOIP != NO ]; then 1106 ngx_module_name=ngx_stream_geoip_module 1107 ngx_module_deps= 1108 ngx_module_srcs=src/stream/ngx_stream_geoip_module.c 1109 ngx_module_libs=GEOIP 1110 ngx_module_link=$STREAM_GEOIP 1111 1112 . auto/module 1113 fi 1114 1115 if [ $STREAM_MAP = YES ]; then 1116 ngx_module_name=ngx_stream_map_module 1117 ngx_module_deps= 1118 ngx_module_srcs=src/stream/ngx_stream_map_module.c 1119 ngx_module_libs= 1120 ngx_module_link=$STREAM_MAP 1121 1122 . auto/module 1123 fi 1124 1125 if [ $STREAM_SPLIT_CLIENTS = YES ]; then 1126 ngx_module_name=ngx_stream_split_clients_module 1127 ngx_module_deps= 1128 ngx_module_srcs=src/stream/ngx_stream_split_clients_module.c 1129 ngx_module_libs= 1130 ngx_module_link=$STREAM_SPLIT_CLIENTS 1131 1132 . auto/module 1133 fi 1134 1135 if [ $STREAM_RETURN = YES ]; then 1136 ngx_module_name=ngx_stream_return_module 1137 ngx_module_deps= 1138 ngx_module_srcs=src/stream/ngx_stream_return_module.c 1139 ngx_module_libs= 1140 ngx_module_link=$STREAM_RETURN 1141 1142 . auto/module 1143 fi 1144 1145 if [ $STREAM_UPSTREAM_HASH = YES ]; then 1146 ngx_module_name=ngx_stream_upstream_hash_module 1147 ngx_module_deps= 1148 ngx_module_srcs=src/stream/ngx_stream_upstream_hash_module.c 1149 ngx_module_libs= 1150 ngx_module_link=$STREAM_UPSTREAM_HASH 1151 1152 . auto/module 1153 fi 1154 1155 if [ $STREAM_UPSTREAM_LEAST_CONN = YES ]; then 1156 ngx_module_name=ngx_stream_upstream_least_conn_module 1157 ngx_module_deps= 1158 ngx_module_srcs=src/stream/ngx_stream_upstream_least_conn_module.c 1159 ngx_module_libs= 1160 ngx_module_link=$STREAM_UPSTREAM_LEAST_CONN 1161 1162 . auto/module 1163 fi 1164 1165 if [ $STREAM_UPSTREAM_RANDOM = YES ]; then 1166 ngx_module_name=ngx_stream_upstream_random_module 1167 ngx_module_deps= 1168 ngx_module_srcs=src/stream/ngx_stream_upstream_random_module.c 1169 ngx_module_libs= 1170 ngx_module_link=$STREAM_UPSTREAM_RANDOM 1171 1172 . auto/module 1173 fi 1174 1175 if [ $STREAM_UPSTREAM_ZONE = YES ]; then 1176 have=NGX_STREAM_UPSTREAM_ZONE . auto/have 1177 1178 ngx_module_name=ngx_stream_upstream_zone_module 1179 ngx_module_deps= 1180 ngx_module_srcs=src/stream/ngx_stream_upstream_zone_module.c 1181 ngx_module_libs= 1182 ngx_module_link=$STREAM_UPSTREAM_ZONE 1183 1184 . auto/module 1185 fi 1186 1187 if [ $STREAM_SSL_PREREAD = YES ]; then 1188 ngx_module_name=ngx_stream_ssl_preread_module 1189 ngx_module_deps= 1190 ngx_module_srcs=src/stream/ngx_stream_ssl_preread_module.c 1191 ngx_module_libs= 1192 ngx_module_link=$STREAM_SSL_PREREAD 1193 1194 . auto/module 1195 fi 1196fi 1197 1198 1199#if [ -r $NGX_OBJS/auto ]; then 1200# . $NGX_OBJS/auto 1201#fi 1202 1203 1204if test -n "$NGX_ADDONS"; then 1205 1206 echo configuring additional modules 1207 1208 for ngx_addon_dir in $NGX_ADDONS 1209 do 1210 echo "adding module in $ngx_addon_dir" 1211 1212 ngx_module_type= 1213 ngx_module_name= 1214 ngx_module_incs= 1215 ngx_module_deps= 1216 ngx_module_srcs= 1217 ngx_module_libs= 1218 ngx_module_order= 1219 ngx_module_link=ADDON 1220 1221 if test -f $ngx_addon_dir/config; then 1222 . $ngx_addon_dir/config 1223 1224 echo " + $ngx_addon_name was configured" 1225 1226 else 1227 echo "$0: error: no $ngx_addon_dir/config was found" 1228 exit 1 1229 fi 1230 done 1231fi 1232 1233 1234if test -n "$DYNAMIC_ADDONS"; then 1235 1236 echo configuring additional dynamic modules 1237 1238 for ngx_addon_dir in $DYNAMIC_ADDONS 1239 do 1240 echo "adding module in $ngx_addon_dir" 1241 1242 ngx_module_type= 1243 ngx_module_name= 1244 ngx_module_incs= 1245 ngx_module_deps= 1246 ngx_module_srcs= 1247 ngx_module_libs= 1248 ngx_module_order= 1249 ngx_module_link=DYNAMIC 1250 1251 if test -f $ngx_addon_dir/config; then 1252 . $ngx_addon_dir/config 1253 1254 echo " + $ngx_addon_name was configured" 1255 1256 else 1257 echo "$0: error: no $ngx_addon_dir/config was found" 1258 exit 1 1259 fi 1260 done 1261fi 1262 1263 1264if [ $USE_OPENSSL = YES ]; then 1265 ngx_module_type=CORE 1266 ngx_module_name=ngx_openssl_module 1267 ngx_module_incs= 1268 ngx_module_deps=src/event/ngx_event_openssl.h 1269 ngx_module_srcs="src/event/ngx_event_openssl.c 1270 src/event/ngx_event_openssl_stapling.c" 1271 ngx_module_libs= 1272 ngx_module_link=YES 1273 ngx_module_order= 1274 1275 . auto/module 1276fi 1277 1278 1279if [ $USE_PCRE = YES ]; then 1280 ngx_module_type=CORE 1281 ngx_module_name=ngx_regex_module 1282 ngx_module_incs= 1283 ngx_module_deps=src/core/ngx_regex.h 1284 ngx_module_srcs=src/core/ngx_regex.c 1285 ngx_module_libs= 1286 ngx_module_link=YES 1287 ngx_module_order= 1288 1289 . auto/module 1290fi 1291 1292 1293modules="$CORE_MODULES $EVENT_MODULES" 1294 1295 1296# thread pool module should be initialized after events 1297if [ $USE_THREADS = YES ]; then 1298 modules="$modules $THREAD_POOL_MODULE" 1299fi 1300 1301 1302if [ $HTTP = YES ]; then 1303 modules="$modules $HTTP_MODULES $HTTP_FILTER_MODULES \ 1304 $HTTP_AUX_FILTER_MODULES $HTTP_INIT_FILTER_MODULES" 1305 1306 NGX_ADDON_DEPS="$NGX_ADDON_DEPS \$(HTTP_DEPS)" 1307fi 1308 1309 1310if [ $MAIL != NO ]; then 1311 1312 if [ $MAIL = YES ]; then 1313 modules="$modules $MAIL_MODULES" 1314 1315 elif [ $MAIL = DYNAMIC ]; then 1316 ngx_module_name=$MAIL_MODULES 1317 ngx_module_incs= 1318 ngx_module_deps= 1319 ngx_module_srcs=$MAIL_SRCS 1320 ngx_module_libs= 1321 ngx_module_link=DYNAMIC 1322 1323 . auto/module 1324 fi 1325 1326 NGX_ADDON_DEPS="$NGX_ADDON_DEPS \$(MAIL_DEPS)" 1327fi 1328 1329 1330if [ $STREAM != NO ]; then 1331 1332 if [ $STREAM = YES ]; then 1333 modules="$modules $STREAM_MODULES" 1334 1335 elif [ $STREAM = DYNAMIC ]; then 1336 ngx_module_name=$STREAM_MODULES 1337 ngx_module_incs= 1338 ngx_module_deps= 1339 ngx_module_srcs=$STREAM_SRCS 1340 ngx_module_libs= 1341 ngx_module_link=DYNAMIC 1342 1343 . auto/module 1344 fi 1345 1346 NGX_ADDON_DEPS="$NGX_ADDON_DEPS \$(STREAM_DEPS)" 1347fi 1348 1349 1350ngx_module_type=MISC 1351MISC_MODULES= 1352 1353if [ $NGX_GOOGLE_PERFTOOLS = YES ]; then 1354 ngx_module_name=ngx_google_perftools_module 1355 ngx_module_incs= 1356 ngx_module_deps= 1357 ngx_module_srcs=src/misc/ngx_google_perftools_module.c 1358 ngx_module_libs= 1359 ngx_module_link=$NGX_GOOGLE_PERFTOOLS 1360 1361 . auto/module 1362fi 1363 1364if [ $NGX_CPP_TEST = YES ]; then 1365 ngx_module_name= 1366 ngx_module_incs= 1367 ngx_module_deps= 1368 ngx_module_srcs=src/misc/ngx_cpp_test_module.cpp 1369 ngx_module_libs=-lstdc++ 1370 ngx_module_link=$NGX_CPP_TEST 1371 1372 . auto/module 1373fi 1374 1375modules="$modules $MISC_MODULES" 1376 1377 1378if [ $NGX_COMPAT = YES ]; then 1379 have=NGX_COMPAT . auto/have 1380 have=NGX_HTTP_GZIP . auto/have 1381 have=NGX_HTTP_DAV . auto/have 1382 have=NGX_HTTP_REALIP . auto/have 1383 have=NGX_HTTP_X_FORWARDED_FOR . auto/have 1384 have=NGX_HTTP_HEADERS . auto/have 1385 have=NGX_HTTP_UPSTREAM_ZONE . auto/have 1386 have=NGX_STREAM_UPSTREAM_ZONE . auto/have 1387fi 1388 1389 1390cat << END > $NGX_MODULES_C 1391 1392#include <ngx_config.h> 1393#include <ngx_core.h> 1394 1395$NGX_PRAGMA 1396 1397END 1398 1399for mod in $modules 1400do 1401 echo "extern ngx_module_t $mod;" >> $NGX_MODULES_C 1402done 1403 1404echo >> $NGX_MODULES_C 1405echo 'ngx_module_t *ngx_modules[] = {' >> $NGX_MODULES_C 1406 1407for mod in $modules 1408do 1409 echo " &$mod," >> $NGX_MODULES_C 1410done 1411 1412cat << END >> $NGX_MODULES_C 1413 NULL 1414}; 1415 1416END 1417 1418echo 'char *ngx_module_names[] = {' >> $NGX_MODULES_C 1419 1420for mod in $modules 1421do 1422 echo " \"$mod\"," >> $NGX_MODULES_C 1423done 1424 1425cat << END >> $NGX_MODULES_C 1426 NULL 1427}; 1428 1429END 1430