logo

oasis

Own branch of Oasis Linux (upstream: <https://git.sr.ht/~mcf/oasis/>) git clone https://anongit.hacktivis.me/git/oasis.git

gen.lua (3436B)


  1. cflags{
  2. '-I $dir',
  3. '-I $srcdir/src/core',
  4. '-I $srcdir/src/event',
  5. '-I $srcdir/src/http/v2',
  6. '-I $srcdir/src/os/unix',
  7. '-isystem $builddir/pkg/linux-headers/include',
  8. }
  9. local libs = {}
  10. pkg.deps = {'pkg/linux-headers/headers'}
  11. local modules = {}
  12. for line in iterlines('modules.txt') do
  13. modules[line] = true
  14. end
  15. if modules['openssl'] then
  16. cflags{'-isystem $builddir/pkg/libressl/include'}
  17. table.insert(libs, {
  18. '$builddir/pkg/libressl/libssl.a.d',
  19. '$builddir/pkg/libressl/libcrypto.a.d',
  20. })
  21. table.insert(pkg.deps, 'pkg/libressl/headers')
  22. end
  23. if modules['regex'] then
  24. cflags{'-isystem $builddir/pkg/pcre/include'}
  25. table.insert(libs, '$builddir/pkg/pcre/libpcre.a')
  26. table.insert(pkg.deps, 'pkg/pcre/headers')
  27. end
  28. local zlib = modules['http_gzip_filter'] or modules['http_gunzip_filter']
  29. for line in iterlines('ngx_auto_config.h', 1) do
  30. if line == 'NGX_ZLIB 1' then
  31. zlib = true
  32. break
  33. end
  34. end
  35. if zlib then
  36. cflags{'-isystem $builddir/pkg/zlib/include'}
  37. table.insert(libs, '$builddir/pkg/zlib/libz.a')
  38. table.insert(pkg.deps, 'pkg/zlib/headers')
  39. end
  40. if modules['http'] then
  41. cflags{'-I $srcdir/src/http', '-I $srcdir/src/http/modules'}
  42. end
  43. if modules['mail'] then
  44. cflags{'-I $srcdir/src/mail'}
  45. end
  46. if modules['stream'] then
  47. cflags{'-I $srcdir/src/stream'}
  48. end
  49. build('awk', '$outdir/ngx_modules.c', {'$dir/modules.txt', '|', '$dir/modules.awk', '$dir/sources.txt'}, {
  50. expr='-f $dir/modules.awk -v sources=$dir/sources.txt'
  51. })
  52. cc('$outdir/ngx_modules.c', {'$gendir/deps', '$dir/fetch'})
  53. local sources = paths[[src/(
  54. core/(
  55. nginx.c
  56. ngx_log.c
  57. ngx_palloc.c
  58. ngx_array.c
  59. ngx_list.c
  60. ngx_hash.c
  61. ngx_buf.c
  62. ngx_queue.c
  63. ngx_output_chain.c
  64. ngx_string.c
  65. ngx_parse.c
  66. ngx_parse_time.c
  67. ngx_inet.c
  68. ngx_file.c
  69. ngx_crc32.c
  70. ngx_murmurhash.c
  71. ngx_md5.c
  72. ngx_sha1.c
  73. ngx_rbtree.c
  74. ngx_radix_tree.c
  75. ngx_slab.c
  76. ngx_times.c
  77. ngx_shmtx.c
  78. ngx_connection.c
  79. ngx_cycle.c
  80. ngx_spinlock.c
  81. ngx_rwlock.c
  82. ngx_cpuinfo.c
  83. ngx_conf_file.c
  84. ngx_module.c
  85. ngx_resolver.c
  86. ngx_open_file_cache.c
  87. ngx_crypt.c
  88. ngx_proxy_protocol.c
  89. ngx_syslog.c
  90. )
  91. event/(
  92. ngx_event.c
  93. ngx_event_timer.c
  94. ngx_event_posted.c
  95. ngx_event_accept.c
  96. ngx_event_udp.c
  97. ngx_event_connect.c
  98. ngx_event_pipe.c
  99. modules/ngx_epoll_module.c
  100. )
  101. http/ngx_http_file_cache.c
  102. os/unix/(
  103. ngx_time.c
  104. ngx_errno.c
  105. ngx_alloc.c
  106. ngx_files.c
  107. ngx_socket.c
  108. ngx_recv.c
  109. ngx_readv_chain.c
  110. ngx_udp_recv.c
  111. ngx_send.c
  112. ngx_writev_chain.c
  113. ngx_udp_send.c
  114. ngx_udp_sendmsg_chain.c
  115. ngx_channel.c
  116. ngx_shmem.c
  117. ngx_process.c
  118. ngx_daemon.c
  119. ngx_setaffinity.c
  120. ngx_setproctitle.c
  121. ngx_posix_init.c
  122. ngx_user.c
  123. ngx_dlopen.c
  124. ngx_process_cycle.c
  125. ngx_linux_init.c
  126. ngx_linux_sendfile_chain.c
  127. )
  128. )]]
  129. for line in iterlines('sources.txt') do
  130. local i = line:find(' ', 1, true)
  131. if modules[line:sub(1, i and i - 1)] then
  132. while i do
  133. local j = line:find(' ', i + 1, true)
  134. table.insert(sources, 'src/'..line:sub(i + 1, j and j - 1))
  135. i = j
  136. end
  137. end
  138. end
  139. exe('nginx', {sources, 'ngx_modules.c.o', libs})
  140. file('bin/nginx', '755', '$outdir/nginx')
  141. file('share/nginx/mime.types', '644', '$srcdir/conf/mime.types')
  142. build('sed', '$outdir/nginx.8', '$srcdir/docs/man/nginx.8', {
  143. expr={
  144. '-e s,%%PREFIX%%,/run/nginx/,',
  145. '-e s,%%PID_PATH%%,/run/nginx/nginx.pid,',
  146. '-e s,%%CONF_PATH%%,/etc/nginx/nginx.conf,',
  147. '-e s,%%ERROR_LOG_PATH%%,/var/log/nginx/error.log,',
  148. },
  149. })
  150. man{'$outdir/nginx.8'}
  151. fetch 'git'