modules 36 KB

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