modules 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272
  1. # Copyright (C) Igor Sysoev
  2. # Copyright (C) Nginx, Inc.
  3. if [ $EVENT_SELECT = NO -a $EVENT_FOUND = NO ]; then
  4. EVENT_SELECT=YES
  5. fi
  6. if [ $EVENT_SELECT = YES ]; then
  7. have=NGX_HAVE_SELECT . auto/have
  8. CORE_SRCS="$CORE_SRCS $SELECT_SRCS"
  9. EVENT_MODULES="$EVENT_MODULES $SELECT_MODULE"
  10. fi
  11. if [ $EVENT_POLL = NO -a $EVENT_FOUND = NO ]; then
  12. EVENT_POLL=YES
  13. fi
  14. if [ $EVENT_POLL = YES ]; then
  15. have=NGX_HAVE_POLL . auto/have
  16. CORE_SRCS="$CORE_SRCS $POLL_SRCS"
  17. EVENT_MODULES="$EVENT_MODULES $POLL_MODULE"
  18. fi
  19. if [ $NGX_TEST_BUILD_DEVPOLL = YES ]; then
  20. have=NGX_HAVE_DEVPOLL . auto/have
  21. have=NGX_TEST_BUILD_DEVPOLL . auto/have
  22. EVENT_MODULES="$EVENT_MODULES $DEVPOLL_MODULE"
  23. CORE_SRCS="$CORE_SRCS $DEVPOLL_SRCS"
  24. fi
  25. if [ $NGX_TEST_BUILD_EVENTPORT = YES ]; then
  26. have=NGX_HAVE_EVENTPORT . auto/have
  27. have=NGX_TEST_BUILD_EVENTPORT . auto/have
  28. EVENT_MODULES="$EVENT_MODULES $EVENTPORT_MODULE"
  29. CORE_SRCS="$CORE_SRCS $EVENTPORT_SRCS"
  30. fi
  31. if [ $NGX_TEST_BUILD_EPOLL = YES ]; then
  32. have=NGX_HAVE_EPOLL . auto/have
  33. have=NGX_HAVE_EPOLLRDHUP . auto/have
  34. have=NGX_HAVE_EVENTFD . auto/have
  35. have=NGX_TEST_BUILD_EPOLL . auto/have
  36. EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE"
  37. CORE_SRCS="$CORE_SRCS $EPOLL_SRCS"
  38. fi
  39. if [ $NGX_TEST_BUILD_SOLARIS_SENDFILEV = YES ]; then
  40. have=NGX_TEST_BUILD_SOLARIS_SENDFILEV . auto/have
  41. CORE_SRCS="$CORE_SRCS $SOLARIS_SENDFILEV_SRCS"
  42. fi
  43. HTTP_MODULES=
  44. HTTP_DEPS=
  45. HTTP_INCS=
  46. ngx_module_type=HTTP
  47. if :; then
  48. ngx_module_name="ngx_http_module \
  49. ngx_http_core_module \
  50. ngx_http_log_module \
  51. ngx_http_upstream_module"
  52. ngx_module_incs="src/http src/http/modules"
  53. ngx_module_deps="src/http/ngx_http.h \
  54. src/http/ngx_http_request.h \
  55. src/http/ngx_http_config.h \
  56. src/http/ngx_http_core_module.h \
  57. src/http/ngx_http_cache.h \
  58. src/http/ngx_http_variables.h \
  59. src/http/ngx_http_script.h \
  60. src/http/ngx_http_upstream.h \
  61. src/http/ngx_http_upstream_round_robin.h"
  62. ngx_module_srcs="src/http/ngx_http.c \
  63. src/http/ngx_http_core_module.c \
  64. src/http/ngx_http_special_response.c \
  65. src/http/ngx_http_request.c \
  66. src/http/ngx_http_parse.c \
  67. src/http/modules/ngx_http_log_module.c \
  68. src/http/ngx_http_request_body.c \
  69. src/http/ngx_http_variables.c \
  70. src/http/ngx_http_script.c \
  71. src/http/ngx_http_upstream.c \
  72. src/http/ngx_http_upstream_round_robin.c"
  73. ngx_module_libs=
  74. ngx_module_link=YES
  75. . auto/module
  76. fi
  77. if [ $HTTP != YES ]; then
  78. have=NGX_CRYPT . auto/nohave
  79. CRYPT_LIB=
  80. fi
  81. if [ $HTTP_CACHE = YES ]; then
  82. USE_MD5=YES
  83. have=NGX_HTTP_CACHE . auto/have
  84. HTTP_SRCS="$HTTP_SRCS $HTTP_FILE_CACHE_SRCS"
  85. fi
  86. if [ $HTTP_SSI = YES ]; then
  87. HTTP_POSTPONE=YES
  88. fi
  89. if [ $HTTP_SLICE = YES ]; then
  90. HTTP_POSTPONE=YES
  91. fi
  92. if [ $HTTP_ADDITION = YES ]; then
  93. HTTP_POSTPONE=YES
  94. fi
  95. # the module order is important
  96. # ngx_http_static_module
  97. # ngx_http_gzip_static_module
  98. # ngx_http_dav_module
  99. # ngx_http_autoindex_module
  100. # ngx_http_index_module
  101. # ngx_http_random_index_module
  102. #
  103. # ngx_http_access_module
  104. # ngx_http_realip_module
  105. #
  106. #
  107. # the filter order is important
  108. # ngx_http_write_filter
  109. # ngx_http_header_filter
  110. # ngx_http_chunked_filter
  111. # ngx_http_v2_filter
  112. # ngx_http_range_header_filter
  113. # ngx_http_gzip_filter
  114. # ngx_http_postpone_filter
  115. # ngx_http_ssi_filter
  116. # ngx_http_charset_filter
  117. # ngx_http_xslt_filter
  118. # ngx_http_image_filter
  119. # ngx_http_sub_filter
  120. # ngx_http_addition_filter
  121. # ngx_http_gunzip_filter
  122. # ngx_http_userid_filter
  123. # ngx_http_headers_filter
  124. # ngx_http_copy_filter
  125. # ngx_http_range_body_filter
  126. # ngx_http_not_modified_filter
  127. # ngx_http_slice_filter
  128. ngx_module_type=HTTP_FILTER
  129. HTTP_FILTER_MODULES=
  130. ngx_module_order="ngx_http_static_module \
  131. ngx_http_gzip_static_module \
  132. ngx_http_dav_module \
  133. ngx_http_autoindex_module \
  134. ngx_http_index_module \
  135. ngx_http_random_index_module \
  136. ngx_http_access_module \
  137. ngx_http_realip_module \
  138. ngx_http_write_filter_module \
  139. ngx_http_header_filter_module \
  140. ngx_http_chunked_filter_module \
  141. ngx_http_v2_filter_module \
  142. ngx_http_range_header_filter_module \
  143. ngx_http_gzip_filter_module \
  144. ngx_http_postpone_filter_module \
  145. ngx_http_ssi_filter_module \
  146. ngx_http_charset_filter_module \
  147. ngx_http_xslt_filter_module \
  148. ngx_http_image_filter_module \
  149. ngx_http_sub_filter_module \
  150. ngx_http_addition_filter_module \
  151. ngx_http_gunzip_filter_module \
  152. ngx_http_userid_filter_module \
  153. ngx_http_headers_filter_module \
  154. ngx_http_copy_filter_module \
  155. ngx_http_range_body_filter_module \
  156. ngx_http_not_modified_filter_module \
  157. ngx_http_slice_filter_module"
  158. if :; then
  159. ngx_module_name=ngx_http_write_filter_module
  160. ngx_module_incs=
  161. ngx_module_deps=
  162. ngx_module_srcs=src/http/ngx_http_write_filter_module.c
  163. ngx_module_libs=
  164. ngx_module_link=YES
  165. . auto/module
  166. fi
  167. if :; then
  168. ngx_module_name=ngx_http_header_filter_module
  169. ngx_module_incs=
  170. ngx_module_deps=
  171. ngx_module_srcs=src/http/ngx_http_header_filter_module.c
  172. ngx_module_libs=
  173. ngx_module_link=YES
  174. . auto/module
  175. fi
  176. if :; then
  177. ngx_module_name=ngx_http_chunked_filter_module
  178. ngx_module_incs=
  179. ngx_module_deps=
  180. ngx_module_srcs=src/http/modules/ngx_http_chunked_filter_module.c
  181. ngx_module_libs=
  182. ngx_module_link=YES
  183. . auto/module
  184. fi
  185. if [ $HTTP_V2 = YES ]; then
  186. ngx_module_name=ngx_http_v2_filter_module
  187. ngx_module_incs=
  188. ngx_module_deps=
  189. ngx_module_srcs=src/http/v2/ngx_http_v2_filter_module.c
  190. ngx_module_libs=
  191. ngx_module_link=$HTTP_V2
  192. . auto/module
  193. fi
  194. if :; then
  195. ngx_module_name=ngx_http_range_header_filter_module
  196. ngx_module_incs=
  197. ngx_module_deps=
  198. ngx_module_srcs=src/http/modules/ngx_http_range_filter_module.c
  199. ngx_module_libs=
  200. ngx_module_link=YES
  201. . auto/module
  202. fi
  203. if [ $HTTP_GZIP = YES ]; then
  204. have=NGX_HTTP_GZIP . auto/have
  205. USE_ZLIB=YES
  206. ngx_module_name=ngx_http_gzip_filter_module
  207. ngx_module_incs=
  208. ngx_module_deps=
  209. ngx_module_srcs=src/http/modules/ngx_http_gzip_filter_module.c
  210. ngx_module_libs=
  211. ngx_module_link=$HTTP_GZIP
  212. . auto/module
  213. fi
  214. if [ $HTTP_POSTPONE = YES ]; then
  215. ngx_module_name=ngx_http_postpone_filter_module
  216. ngx_module_incs=
  217. ngx_module_deps=
  218. ngx_module_srcs=src/http/ngx_http_postpone_filter_module.c
  219. ngx_module_libs=
  220. ngx_module_link=$HTTP_POSTPONE
  221. . auto/module
  222. fi
  223. if [ $HTTP_SSI = YES ]; then
  224. have=NGX_HTTP_SSI . auto/have
  225. ngx_module_name=ngx_http_ssi_filter_module
  226. ngx_module_incs=
  227. ngx_module_deps=src/http/modules/ngx_http_ssi_filter_module.h
  228. ngx_module_srcs=src/http/modules/ngx_http_ssi_filter_module.c
  229. ngx_module_libs=
  230. ngx_module_link=$HTTP_SSI
  231. . auto/module
  232. fi
  233. if [ $HTTP_CHARSET = YES ]; then
  234. ngx_module_name=ngx_http_charset_filter_module
  235. ngx_module_incs=
  236. ngx_module_deps=
  237. ngx_module_srcs=src/http/modules/ngx_http_charset_filter_module.c
  238. ngx_module_libs=
  239. ngx_module_link=$HTTP_CHARSET
  240. . auto/module
  241. fi
  242. if [ $HTTP_XSLT != NO ]; then
  243. ngx_module_name=ngx_http_xslt_filter_module
  244. ngx_module_incs=
  245. ngx_module_deps=
  246. ngx_module_srcs=src/http/modules/ngx_http_xslt_filter_module.c
  247. ngx_module_libs=LIBXSLT
  248. ngx_module_link=$HTTP_XSLT
  249. . auto/module
  250. fi
  251. if [ $HTTP_IMAGE_FILTER != NO ]; then
  252. ngx_module_name=ngx_http_image_filter_module
  253. ngx_module_incs=
  254. ngx_module_deps=
  255. ngx_module_srcs=src/http/modules/ngx_http_image_filter_module.c
  256. ngx_module_libs=LIBGD
  257. ngx_module_link=$HTTP_IMAGE_FILTER
  258. . auto/module
  259. fi
  260. if [ $HTTP_SUB = YES ]; then
  261. ngx_module_name=ngx_http_sub_filter_module
  262. ngx_module_incs=
  263. ngx_module_deps=
  264. ngx_module_srcs=src/http/modules/ngx_http_sub_filter_module.c
  265. ngx_module_libs=
  266. ngx_module_link=$HTTP_SUB
  267. . auto/module
  268. fi
  269. if [ $HTTP_ADDITION = YES ]; then
  270. ngx_module_name=ngx_http_addition_filter_module
  271. ngx_module_incs=
  272. ngx_module_deps=
  273. ngx_module_srcs=src/http/modules/ngx_http_addition_filter_module.c
  274. ngx_module_libs=
  275. ngx_module_link=$HTTP_ADDITION
  276. . auto/module
  277. fi
  278. if [ $HTTP_GUNZIP = YES ]; then
  279. have=NGX_HTTP_GZIP . auto/have
  280. USE_ZLIB=YES
  281. ngx_module_name=ngx_http_gunzip_filter_module
  282. ngx_module_incs=
  283. ngx_module_deps=
  284. ngx_module_srcs=src/http/modules/ngx_http_gunzip_filter_module.c
  285. ngx_module_libs=
  286. ngx_module_link=$HTTP_GUNZIP
  287. . auto/module
  288. fi
  289. if [ $HTTP_USERID = YES ]; then
  290. ngx_module_name=ngx_http_userid_filter_module
  291. ngx_module_incs=
  292. ngx_module_deps=
  293. ngx_module_srcs=src/http/modules/ngx_http_userid_filter_module.c
  294. ngx_module_libs=
  295. ngx_module_link=$HTTP_USERID
  296. . auto/module
  297. fi
  298. if :; then
  299. ngx_module_name=ngx_http_headers_filter_module
  300. ngx_module_incs=
  301. ngx_module_deps=
  302. ngx_module_srcs=src/http/modules/ngx_http_headers_filter_module.c
  303. ngx_module_libs=
  304. ngx_module_link=YES
  305. . auto/module
  306. fi
  307. ngx_module_type=HTTP_INIT_FILTER
  308. HTTP_INIT_FILTER_MODULES=
  309. if :; then
  310. ngx_module_name=ngx_http_copy_filter_module
  311. ngx_module_incs=
  312. ngx_module_deps=
  313. ngx_module_srcs=src/http/ngx_http_copy_filter_module.c
  314. ngx_module_libs=
  315. ngx_module_link=YES
  316. . auto/module
  317. fi
  318. if :; then
  319. ngx_module_name=ngx_http_range_body_filter_module
  320. ngx_module_incs=
  321. ngx_module_deps=
  322. ngx_module_srcs=
  323. ngx_module_libs=
  324. ngx_module_link=YES
  325. . auto/module
  326. fi
  327. if :; then
  328. ngx_module_name=ngx_http_not_modified_filter_module
  329. ngx_module_incs=
  330. ngx_module_deps=
  331. ngx_module_srcs=src/http/modules/ngx_http_not_modified_filter_module.c
  332. ngx_module_libs=
  333. ngx_module_link=YES
  334. . auto/module
  335. fi
  336. if [ $HTTP_SLICE = YES ]; then
  337. ngx_module_name=ngx_http_slice_filter_module
  338. ngx_module_incs=
  339. ngx_module_deps=
  340. ngx_module_srcs=src/http/modules/ngx_http_slice_filter_module.c
  341. ngx_module_libs=
  342. ngx_module_link=$HTTP_SLICE
  343. . auto/module
  344. fi
  345. ngx_module_type=HTTP
  346. if [ $HTTP_V2 = YES ]; then
  347. have=NGX_HTTP_V2 . auto/have
  348. ngx_module_name=ngx_http_v2_module
  349. ngx_module_incs=src/http/v2
  350. ngx_module_deps="src/http/v2/ngx_http_v2.h src/http/v2/ngx_http_v2_module.h"
  351. ngx_module_srcs="src/http/v2/ngx_http_v2.c \
  352. src/http/v2/ngx_http_v2_table.c \
  353. src/http/v2/ngx_http_v2_huff_decode.c \
  354. src/http/v2/ngx_http_v2_huff_encode.c \
  355. src/http/v2/ngx_http_v2_module.c"
  356. ngx_module_libs=
  357. ngx_module_link=$HTTP_V2
  358. . auto/module
  359. fi
  360. if :; then
  361. ngx_module_name=ngx_http_static_module
  362. ngx_module_incs=
  363. ngx_module_deps=
  364. ngx_module_srcs=src/http/modules/ngx_http_static_module.c
  365. ngx_module_libs=
  366. ngx_module_link=YES
  367. . auto/module
  368. fi
  369. if [ $HTTP_GZIP_STATIC = YES ]; then
  370. have=NGX_HTTP_GZIP . auto/have
  371. ngx_module_name=ngx_http_gzip_static_module
  372. ngx_module_incs=
  373. ngx_module_deps=
  374. ngx_module_srcs=src/http/modules/ngx_http_gzip_static_module.c
  375. ngx_module_libs=
  376. ngx_module_link=$HTTP_GZIP_STATIC
  377. . auto/module
  378. fi
  379. if [ $HTTP_DAV = YES ]; then
  380. have=NGX_HTTP_DAV . auto/have
  381. ngx_module_name=ngx_http_dav_module
  382. ngx_module_incs=
  383. ngx_module_deps=
  384. ngx_module_srcs=src/http/modules/ngx_http_dav_module.c
  385. ngx_module_libs=
  386. ngx_module_link=$HTTP_DAV
  387. . auto/module
  388. fi
  389. if [ $HTTP_AUTOINDEX = YES ]; then
  390. ngx_module_name=ngx_http_autoindex_module
  391. ngx_module_incs=
  392. ngx_module_deps=
  393. ngx_module_srcs=src/http/modules/ngx_http_autoindex_module.c
  394. ngx_module_libs=
  395. ngx_module_link=$HTTP_AUTOINDEX
  396. . auto/module
  397. fi
  398. if :; then
  399. ngx_module_name=ngx_http_index_module
  400. ngx_module_incs=
  401. ngx_module_deps=
  402. ngx_module_srcs=src/http/modules/ngx_http_index_module.c
  403. ngx_module_libs=
  404. ngx_module_link=YES
  405. . auto/module
  406. fi
  407. if [ $HTTP_RANDOM_INDEX = YES ]; then
  408. ngx_module_name=ngx_http_random_index_module
  409. ngx_module_incs=
  410. ngx_module_deps=
  411. ngx_module_srcs=src/http/modules/ngx_http_random_index_module.c
  412. ngx_module_libs=
  413. ngx_module_link=$HTTP_RANDOM_INDEX
  414. . auto/module
  415. fi
  416. if [ $HTTP_AUTH_REQUEST = YES ]; then
  417. ngx_module_name=ngx_http_auth_request_module
  418. ngx_module_incs=
  419. ngx_module_deps=
  420. ngx_module_srcs=src/http/modules/ngx_http_auth_request_module.c
  421. ngx_module_libs=
  422. ngx_module_link=$HTTP_AUTH_REQUEST
  423. . auto/module
  424. fi
  425. if [ $HTTP_AUTH_BASIC = YES ]; then
  426. USE_MD5=YES
  427. USE_SHA1=YES
  428. have=NGX_CRYPT . auto/have
  429. ngx_module_name=ngx_http_auth_basic_module
  430. ngx_module_incs=
  431. ngx_module_deps=
  432. ngx_module_srcs=src/http/modules/ngx_http_auth_basic_module.c
  433. ngx_module_libs=$CRYPT_LIB
  434. ngx_module_link=$HTTP_AUTH_BASIC
  435. . auto/module
  436. fi
  437. if [ $HTTP_ACCESS = YES ]; then
  438. ngx_module_name=ngx_http_access_module
  439. ngx_module_incs=
  440. ngx_module_deps=
  441. ngx_module_srcs=src/http/modules/ngx_http_access_module.c
  442. ngx_module_libs=
  443. ngx_module_link=$HTTP_ACCESS
  444. . auto/module
  445. fi
  446. if [ $HTTP_LIMIT_CONN = YES ]; then
  447. ngx_module_name=ngx_http_limit_conn_module
  448. ngx_module_incs=
  449. ngx_module_deps=
  450. ngx_module_srcs=src/http/modules/ngx_http_limit_conn_module.c
  451. ngx_module_libs=
  452. ngx_module_link=$HTTP_LIMIT_CONN
  453. . auto/module
  454. fi
  455. if [ $HTTP_LIMIT_REQ = YES ]; then
  456. ngx_module_name=ngx_http_limit_req_module
  457. ngx_module_incs=
  458. ngx_module_deps=
  459. ngx_module_srcs=src/http/modules/ngx_http_limit_req_module.c
  460. ngx_module_libs=
  461. ngx_module_link=$HTTP_LIMIT_REQ
  462. . auto/module
  463. fi
  464. if [ $HTTP_REALIP = YES ]; then
  465. have=NGX_HTTP_REALIP . auto/have
  466. have=NGX_HTTP_X_FORWARDED_FOR . auto/have
  467. ngx_module_name=ngx_http_realip_module
  468. ngx_module_incs=
  469. ngx_module_deps=
  470. ngx_module_srcs=src/http/modules/ngx_http_realip_module.c
  471. ngx_module_libs=
  472. ngx_module_link=$HTTP_REALIP
  473. . auto/module
  474. fi
  475. if [ $HTTP_STATUS = YES ]; then
  476. ngx_module_name=ngx_http_status_module
  477. ngx_module_incs=
  478. ngx_module_deps=
  479. ngx_module_srcs=src/http/modules/ngx_http_status_module.c
  480. ngx_module_libs=
  481. ngx_module_link=$HTTP_STATUS
  482. . auto/module
  483. fi
  484. if [ $HTTP_GEO = YES ]; then
  485. have=NGX_HTTP_X_FORWARDED_FOR . auto/have
  486. ngx_module_name=ngx_http_geo_module
  487. ngx_module_incs=
  488. ngx_module_deps=
  489. ngx_module_srcs=src/http/modules/ngx_http_geo_module.c
  490. ngx_module_libs=
  491. ngx_module_link=$HTTP_GEO
  492. . auto/module
  493. fi
  494. if [ $HTTP_GEOIP != NO ]; then
  495. have=NGX_HTTP_X_FORWARDED_FOR . auto/have
  496. ngx_module_name=ngx_http_geoip_module
  497. ngx_module_incs=
  498. ngx_module_deps=
  499. ngx_module_srcs=src/http/modules/ngx_http_geoip_module.c
  500. ngx_module_libs=GEOIP
  501. ngx_module_link=$HTTP_GEOIP
  502. . auto/module
  503. fi
  504. if [ $HTTP_MAP = YES ]; then
  505. ngx_module_name=ngx_http_map_module
  506. ngx_module_incs=
  507. ngx_module_deps=
  508. ngx_module_srcs=src/http/modules/ngx_http_map_module.c
  509. ngx_module_libs=
  510. ngx_module_link=$HTTP_MAP
  511. . auto/module
  512. fi
  513. if [ $HTTP_SPLIT_CLIENTS = YES ]; then
  514. ngx_module_name=ngx_http_split_clients_module
  515. ngx_module_incs=
  516. ngx_module_deps=
  517. ngx_module_srcs=src/http/modules/ngx_http_split_clients_module.c
  518. ngx_module_libs=
  519. ngx_module_link=$HTTP_SPLIT_CLIENTS
  520. . auto/module
  521. fi
  522. if [ $HTTP_REFERER = YES ]; then
  523. ngx_module_name=ngx_http_referer_module
  524. ngx_module_incs=
  525. ngx_module_deps=
  526. ngx_module_srcs=src/http/modules/ngx_http_referer_module.c
  527. ngx_module_libs=
  528. ngx_module_link=$HTTP_REFERER
  529. . auto/module
  530. fi
  531. if [ $HTTP_REWRITE = YES -a $USE_PCRE != DISABLED ]; then
  532. USE_PCRE=YES
  533. ngx_module_name=ngx_http_rewrite_module
  534. ngx_module_incs=
  535. ngx_module_deps=
  536. ngx_module_srcs=src/http/modules/ngx_http_rewrite_module.c
  537. ngx_module_libs=
  538. ngx_module_link=$HTTP_REWRITE
  539. . auto/module
  540. fi
  541. if [ $HTTP_SSL = YES ]; then
  542. USE_OPENSSL=YES
  543. have=NGX_HTTP_SSL . auto/have
  544. ngx_module_name=ngx_http_ssl_module
  545. ngx_module_incs=
  546. ngx_module_deps=src/http/modules/ngx_http_ssl_module.h
  547. ngx_module_srcs=src/http/modules/ngx_http_ssl_module.c
  548. ngx_module_libs=
  549. ngx_module_link=$HTTP_SSL
  550. . auto/module
  551. fi
  552. if [ $HTTP_PROXY = YES ]; then
  553. have=NGX_HTTP_X_FORWARDED_FOR . auto/have
  554. #USE_MD5=YES
  555. ngx_module_name=ngx_http_proxy_module
  556. ngx_module_incs=
  557. ngx_module_deps=
  558. ngx_module_srcs=src/http/modules/ngx_http_proxy_module.c
  559. ngx_module_libs=
  560. ngx_module_link=$HTTP_PROXY
  561. . auto/module
  562. fi
  563. if [ $HTTP_FASTCGI = YES ]; then
  564. ngx_module_name=ngx_http_fastcgi_module
  565. ngx_module_incs=
  566. ngx_module_deps=
  567. ngx_module_srcs=src/http/modules/ngx_http_fastcgi_module.c
  568. ngx_module_libs=
  569. ngx_module_link=$HTTP_FASTCGI
  570. . auto/module
  571. fi
  572. if [ $HTTP_UWSGI = YES ]; then
  573. ngx_module_name=ngx_http_uwsgi_module
  574. ngx_module_incs=
  575. ngx_module_deps=
  576. ngx_module_srcs=src/http/modules/ngx_http_uwsgi_module.c
  577. ngx_module_libs=
  578. ngx_module_link=$HTTP_UWSGI
  579. . auto/module
  580. fi
  581. if [ $HTTP_SCGI = YES ]; then
  582. ngx_module_name=ngx_http_scgi_module
  583. ngx_module_incs=
  584. ngx_module_deps=
  585. ngx_module_srcs=src/http/modules/ngx_http_scgi_module.c
  586. ngx_module_libs=
  587. ngx_module_link=$HTTP_SCGI
  588. . auto/module
  589. fi
  590. if [ $HTTP_PERL != NO ]; then
  591. ngx_module_name=ngx_http_perl_module
  592. ngx_module_incs=src/http/modules/perl
  593. ngx_module_deps=src/http/modules/perl/ngx_http_perl_module.h
  594. ngx_module_srcs=src/http/modules/perl/ngx_http_perl_module.c
  595. ngx_module_libs=PERL
  596. ngx_module_link=$HTTP_PERL
  597. . auto/module
  598. fi
  599. if [ $HTTP_MEMCACHED = YES ]; then
  600. ngx_module_name=ngx_http_memcached_module
  601. ngx_module_incs=
  602. ngx_module_deps=
  603. ngx_module_srcs=src/http/modules/ngx_http_memcached_module.c
  604. ngx_module_libs=
  605. ngx_module_link=$HTTP_MEMCACHED
  606. . auto/module
  607. fi
  608. if [ $HTTP_EMPTY_GIF = YES ]; then
  609. ngx_module_name=ngx_http_empty_gif_module
  610. ngx_module_incs=
  611. ngx_module_deps=
  612. ngx_module_srcs=src/http/modules/ngx_http_empty_gif_module.c
  613. ngx_module_libs=
  614. ngx_module_link=$HTTP_EMPTY_GIF
  615. . auto/module
  616. fi
  617. if [ $HTTP_BROWSER = YES ]; then
  618. ngx_module_name=ngx_http_browser_module
  619. ngx_module_incs=
  620. ngx_module_deps=
  621. ngx_module_srcs=src/http/modules/ngx_http_browser_module.c
  622. ngx_module_libs=
  623. ngx_module_link=$HTTP_BROWSER
  624. . auto/module
  625. fi
  626. if [ $HTTP_SECURE_LINK = YES ]; then
  627. USE_MD5=YES
  628. ngx_module_name=ngx_http_secure_link_module
  629. ngx_module_incs=
  630. ngx_module_deps=
  631. ngx_module_srcs=src/http/modules/ngx_http_secure_link_module.c
  632. ngx_module_libs=
  633. ngx_module_link=$HTTP_SECURE_LINK
  634. . auto/module
  635. fi
  636. if [ $HTTP_DEGRADATION = YES ]; then
  637. have=NGX_HTTP_DEGRADATION . auto/have
  638. ngx_module_name=ngx_http_degradation_module
  639. ngx_module_incs=
  640. ngx_module_deps=
  641. ngx_module_srcs=src/http/modules/ngx_http_degradation_module.c
  642. ngx_module_libs=
  643. ngx_module_link=$HTTP_DEGRADATION
  644. . auto/module
  645. fi
  646. if [ $HTTP_FLV = YES ]; then
  647. ngx_module_name=ngx_http_flv_module
  648. ngx_module_incs=
  649. ngx_module_deps=
  650. ngx_module_srcs=src/http/modules/ngx_http_flv_module.c
  651. ngx_module_libs=
  652. ngx_module_link=$HTTP_FLV
  653. . auto/module
  654. fi
  655. if [ $HTTP_MP4 = YES ]; then
  656. ngx_module_name=ngx_http_mp4_module
  657. ngx_module_incs=
  658. ngx_module_deps=
  659. ngx_module_srcs=src/http/modules/ngx_http_mp4_module.c
  660. ngx_module_libs=
  661. ngx_module_link=$HTTP_MP4
  662. . auto/module
  663. fi
  664. if [ $HTTP_UPSTREAM_HASH = YES ]; then
  665. ngx_module_name=ngx_http_upstream_hash_module
  666. ngx_module_incs=
  667. ngx_module_deps=
  668. ngx_module_srcs=src/http/modules/ngx_http_upstream_hash_module.c
  669. ngx_module_libs=
  670. ngx_module_link=$HTTP_UPSTREAM_HASH
  671. . auto/module
  672. fi
  673. if [ $HTTP_UPSTREAM_IP_HASH = YES ]; then
  674. ngx_module_name=ngx_http_upstream_ip_hash_module
  675. ngx_module_incs=
  676. ngx_module_deps=
  677. ngx_module_srcs=src/http/modules/ngx_http_upstream_ip_hash_module.c
  678. ngx_module_libs=
  679. ngx_module_link=$HTTP_UPSTREAM_IP_HASH
  680. . auto/module
  681. fi
  682. if [ $HTTP_UPSTREAM_LEAST_CONN = YES ]; then
  683. ngx_module_name=ngx_http_upstream_least_conn_module
  684. ngx_module_incs=
  685. ngx_module_deps=
  686. ngx_module_srcs=src/http/modules/ngx_http_upstream_least_conn_module.c
  687. ngx_module_libs=
  688. ngx_module_link=$HTTP_UPSTREAM_LEAST_CONN
  689. . auto/module
  690. fi
  691. if [ $HTTP_UPSTREAM_KEEPALIVE = YES ]; then
  692. ngx_module_name=ngx_http_upstream_keepalive_module
  693. ngx_module_incs=
  694. ngx_module_deps=
  695. ngx_module_srcs=src/http/modules/ngx_http_upstream_keepalive_module.c
  696. ngx_module_libs=
  697. ngx_module_link=$HTTP_UPSTREAM_KEEPALIVE
  698. . auto/module
  699. fi
  700. if [ $HTTP_UPSTREAM_ZONE = YES ]; then
  701. have=NGX_HTTP_UPSTREAM_ZONE . auto/have
  702. ngx_module_name=ngx_http_upstream_zone_module
  703. ngx_module_incs=
  704. ngx_module_deps=
  705. ngx_module_srcs=src/http/modules/ngx_http_upstream_zone_module.c
  706. ngx_module_libs=
  707. ngx_module_link=$HTTP_UPSTREAM_ZONE
  708. . auto/module
  709. fi
  710. if [ $HTTP_STUB_STATUS = YES ]; then
  711. have=NGX_STAT_STUB . auto/have
  712. ngx_module_name=ngx_http_stub_status_module
  713. ngx_module_incs=
  714. ngx_module_deps=
  715. ngx_module_srcs=src/http/modules/ngx_http_stub_status_module.c
  716. ngx_module_libs=
  717. ngx_module_link=$HTTP_STUB_STATUS
  718. . auto/module
  719. fi
  720. if [ $MAIL != NO ]; then
  721. MAIL_MODULES=
  722. MAIL_DEPS=
  723. MAIL_INCS=
  724. ngx_module_type=MAIL
  725. ngx_module_libs=
  726. ngx_module_link=YES
  727. ngx_module_order=
  728. ngx_module_name="ngx_mail_module ngx_mail_core_module"
  729. ngx_module_incs="src/mail"
  730. ngx_module_deps="src/mail/ngx_mail.h"
  731. ngx_module_srcs="src/mail/ngx_mail.c \
  732. src/mail/ngx_mail_core_module.c \
  733. src/mail/ngx_mail_handler.c \
  734. src/mail/ngx_mail_parse.c"
  735. . auto/module
  736. ngx_module_incs=
  737. if [ $MAIL_SSL = YES ]; then
  738. USE_OPENSSL=YES
  739. have=NGX_MAIL_SSL . auto/have
  740. ngx_module_name=ngx_mail_ssl_module
  741. ngx_module_deps=src/mail/ngx_mail_ssl_module.h
  742. ngx_module_srcs=src/mail/ngx_mail_ssl_module.c
  743. . auto/module
  744. fi
  745. if [ $MAIL_POP3 = YES ]; then
  746. ngx_module_name=ngx_mail_pop3_module
  747. ngx_module_deps=src/mail/ngx_mail_pop3_module.h
  748. ngx_module_srcs="src/mail/ngx_mail_pop3_module.c \
  749. src/mail/ngx_mail_pop3_handler.c"
  750. . auto/module
  751. fi
  752. if [ $MAIL_IMAP = YES ]; then
  753. ngx_module_name=ngx_mail_imap_module
  754. ngx_module_deps=src/mail/ngx_mail_imap_module.h
  755. ngx_module_srcs="src/mail/ngx_mail_imap_module.c \
  756. src/mail/ngx_mail_imap_handler.c"
  757. . auto/module
  758. fi
  759. if [ $MAIL_SMTP = YES ]; then
  760. ngx_module_name=ngx_mail_smtp_module
  761. ngx_module_deps=src/mail/ngx_mail_smtp_module.h
  762. ngx_module_srcs="src/mail/ngx_mail_smtp_module.c \
  763. src/mail/ngx_mail_smtp_handler.c"
  764. . auto/module
  765. fi
  766. ngx_module_name=ngx_mail_auth_http_module
  767. ngx_module_deps=
  768. ngx_module_srcs=src/mail/ngx_mail_auth_http_module.c
  769. . auto/module
  770. ngx_module_name=ngx_mail_proxy_module
  771. ngx_module_deps=
  772. ngx_module_srcs=src/mail/ngx_mail_proxy_module.c
  773. . auto/module
  774. fi
  775. if [ $STREAM != NO ]; then
  776. STREAM_MODULES=
  777. STREAM_DEPS=
  778. STREAM_INCS=
  779. ngx_module_type=STREAM
  780. ngx_module_libs=
  781. ngx_module_link=YES
  782. ngx_module_order=
  783. ngx_module_name="ngx_stream_module \
  784. ngx_stream_core_module \
  785. ngx_stream_proxy_module \
  786. ngx_stream_upstream_module"
  787. ngx_module_incs="src/stream"
  788. ngx_module_deps="src/stream/ngx_stream.h \
  789. src/stream/ngx_stream_upstream.h \
  790. src/stream/ngx_stream_upstream_round_robin.h"
  791. ngx_module_srcs="src/stream/ngx_stream.c \
  792. src/stream/ngx_stream_handler.c \
  793. src/stream/ngx_stream_core_module.c \
  794. src/stream/ngx_stream_proxy_module.c \
  795. src/stream/ngx_stream_upstream.c \
  796. src/stream/ngx_stream_upstream_round_robin.c"
  797. . auto/module
  798. ngx_module_incs=
  799. if [ $STREAM_SSL = YES ]; then
  800. USE_OPENSSL=YES
  801. have=NGX_STREAM_SSL . auto/have
  802. ngx_module_name=ngx_stream_ssl_module
  803. ngx_module_deps=src/stream/ngx_stream_ssl_module.h
  804. ngx_module_srcs=src/stream/ngx_stream_ssl_module.c
  805. . auto/module
  806. fi
  807. if [ $STREAM_LIMIT_CONN = YES ]; then
  808. ngx_module_name=ngx_stream_limit_conn_module
  809. ngx_module_deps=
  810. ngx_module_srcs=src/stream/ngx_stream_limit_conn_module.c
  811. . auto/module
  812. fi
  813. if [ $STREAM_ACCESS = YES ]; then
  814. ngx_module_name=ngx_stream_access_module
  815. ngx_module_deps=
  816. ngx_module_srcs=src/stream/ngx_stream_access_module.c
  817. . auto/module
  818. fi
  819. if [ $STREAM_UPSTREAM_HASH = YES ]; then
  820. ngx_module_name=ngx_stream_upstream_hash_module
  821. ngx_module_deps=
  822. ngx_module_srcs=src/stream/ngx_stream_upstream_hash_module.c
  823. . auto/module
  824. fi
  825. if [ $STREAM_UPSTREAM_LEAST_CONN = YES ]; then
  826. ngx_module_name=ngx_stream_upstream_least_conn_module
  827. ngx_module_deps=
  828. ngx_module_srcs=src/stream/ngx_stream_upstream_least_conn_module.c
  829. . auto/module
  830. fi
  831. if [ $STREAM_UPSTREAM_ZONE = YES ]; then
  832. have=NGX_STREAM_UPSTREAM_ZONE . auto/have
  833. ngx_module_name=ngx_stream_upstream_zone_module
  834. ngx_module_deps=
  835. ngx_module_srcs=src/stream/ngx_stream_upstream_zone_module.c
  836. . auto/module
  837. fi
  838. fi
  839. #if [ -r $NGX_OBJS/auto ]; then
  840. # . $NGX_OBJS/auto
  841. #fi
  842. if test -n "$NGX_ADDONS"; then
  843. echo configuring additional modules
  844. for ngx_addon_dir in $NGX_ADDONS
  845. do
  846. echo "adding module in $ngx_addon_dir"
  847. ngx_module_type=
  848. ngx_module_name=
  849. ngx_module_incs=
  850. ngx_module_deps=
  851. ngx_module_srcs=
  852. ngx_module_libs=
  853. ngx_module_order=
  854. ngx_module_link=ADDON
  855. if test -f $ngx_addon_dir/config; then
  856. . $ngx_addon_dir/config
  857. echo " + $ngx_addon_name was configured"
  858. else
  859. echo "$0: error: no $ngx_addon_dir/config was found"
  860. exit 1
  861. fi
  862. done
  863. fi
  864. if test -n "$DYNAMIC_ADDONS"; then
  865. echo configuring additional dynamic modules
  866. for ngx_addon_dir in $DYNAMIC_ADDONS
  867. do
  868. echo "adding module in $ngx_addon_dir"
  869. ngx_module_type=
  870. ngx_module_name=
  871. ngx_module_incs=
  872. ngx_module_deps=
  873. ngx_module_srcs=
  874. ngx_module_libs=
  875. ngx_module_order=
  876. ngx_module_link=DYNAMIC
  877. if test -f $ngx_addon_dir/config; then
  878. . $ngx_addon_dir/config
  879. echo " + $ngx_addon_name was configured"
  880. else
  881. echo "$0: error: no $ngx_addon_dir/config was found"
  882. exit 1
  883. fi
  884. done
  885. fi
  886. if [ $USE_OPENSSL = YES ]; then
  887. ngx_module_type=CORE
  888. ngx_module_name=ngx_openssl_module
  889. ngx_module_incs=
  890. ngx_module_deps=src/event/ngx_event_openssl.h
  891. ngx_module_srcs="src/event/ngx_event_openssl.c
  892. src/event/ngx_event_openssl_stapling.c"
  893. ngx_module_libs=
  894. ngx_module_link=YES
  895. ngx_module_order=
  896. . auto/module
  897. fi
  898. if [ $USE_PCRE = YES ]; then
  899. ngx_module_type=CORE
  900. ngx_module_name=ngx_regex_module
  901. ngx_module_incs=
  902. ngx_module_deps=src/core/ngx_regex.h
  903. ngx_module_srcs=src/core/ngx_regex.c
  904. ngx_module_libs=
  905. ngx_module_link=YES
  906. ngx_module_order=
  907. . auto/module
  908. fi
  909. modules="$CORE_MODULES $EVENT_MODULES"
  910. # thread pool module should be initialized after events
  911. if [ $USE_THREADS = YES ]; then
  912. modules="$modules $THREAD_POOL_MODULE"
  913. fi
  914. if [ $HTTP = YES ]; then
  915. modules="$modules $HTTP_MODULES $HTTP_FILTER_MODULES \
  916. $HTTP_AUX_FILTER_MODULES $HTTP_INIT_FILTER_MODULES"
  917. NGX_ADDON_DEPS="$NGX_ADDON_DEPS \$(HTTP_DEPS)"
  918. fi
  919. if [ $MAIL != NO ]; then
  920. if [ $MAIL = YES ]; then
  921. modules="$modules $MAIL_MODULES"
  922. elif [ $MAIL = DYNAMIC ]; then
  923. ngx_module_name=$MAIL_MODULES
  924. ngx_module_incs=
  925. ngx_module_deps=$MAIL_DEPS
  926. ngx_module_srcs=$MAIL_SRCS
  927. ngx_module_libs=
  928. ngx_module_link=DYNAMIC
  929. . auto/module
  930. fi
  931. NGX_ADDON_DEPS="$NGX_ADDON_DEPS \$(MAIL_DEPS)"
  932. fi
  933. if [ $STREAM != NO ]; then
  934. if [ $STREAM = YES ]; then
  935. modules="$modules $STREAM_MODULES"
  936. elif [ $STREAM = DYNAMIC ]; then
  937. ngx_module_name=$STREAM_MODULES
  938. ngx_module_incs=
  939. ngx_module_deps=$STREAM_DEPS
  940. ngx_module_srcs=$STREAM_SRCS
  941. ngx_module_libs=
  942. ngx_module_link=DYNAMIC
  943. . auto/module
  944. fi
  945. NGX_ADDON_DEPS="$NGX_ADDON_DEPS \$(STREAM_DEPS)"
  946. fi
  947. ngx_module_type=MISC
  948. MISC_MODULES=
  949. if [ $NGX_GOOGLE_PERFTOOLS = YES ]; then
  950. ngx_module_name=ngx_google_perftools_module
  951. ngx_module_incs=
  952. ngx_module_deps=
  953. ngx_module_srcs=src/misc/ngx_google_perftools_module.c
  954. ngx_module_libs=
  955. ngx_module_link=$NGX_GOOGLE_PERFTOOLS
  956. . auto/module
  957. fi
  958. if [ $NGX_CPP_TEST = YES ]; then
  959. ngx_module_name=
  960. ngx_module_incs=
  961. ngx_module_deps=
  962. ngx_module_srcs=src/misc/ngx_cpp_test_module.cpp
  963. ngx_module_libs=-lstdc++
  964. ngx_module_link=$NGX_CPP_TEST
  965. . auto/module
  966. fi
  967. modules="$modules $MISC_MODULES"
  968. cat << END > $NGX_MODULES_C
  969. #include <ngx_config.h>
  970. #include <ngx_core.h>
  971. $NGX_PRAGMA
  972. END
  973. for mod in $modules
  974. do
  975. echo "extern ngx_module_t $mod;" >> $NGX_MODULES_C
  976. done
  977. echo >> $NGX_MODULES_C
  978. echo 'ngx_module_t *ngx_modules[] = {' >> $NGX_MODULES_C
  979. for mod in $modules
  980. do
  981. echo " &$mod," >> $NGX_MODULES_C
  982. done
  983. cat << END >> $NGX_MODULES_C
  984. NULL
  985. };
  986. END
  987. echo 'char *ngx_module_names[] = {' >> $NGX_MODULES_C
  988. for mod in $modules
  989. do
  990. echo " \"$mod\"," >> $NGX_MODULES_C
  991. done
  992. cat << END >> $NGX_MODULES_C
  993. NULL
  994. };
  995. END