gen.lua (3436B)
- cflags{
- '-I $dir',
- '-I $srcdir/src/core',
- '-I $srcdir/src/event',
- '-I $srcdir/src/http/v2',
- '-I $srcdir/src/os/unix',
- '-isystem $builddir/pkg/linux-headers/include',
- }
- local libs = {}
- pkg.deps = {'pkg/linux-headers/headers'}
- local modules = {}
- for line in iterlines('modules.txt') do
- modules[line] = true
- end
- if modules['openssl'] then
- cflags{'-isystem $builddir/pkg/libressl/include'}
- table.insert(libs, {
- '$builddir/pkg/libressl/libssl.a.d',
- '$builddir/pkg/libressl/libcrypto.a.d',
- })
- table.insert(pkg.deps, 'pkg/libressl/headers')
- end
- if modules['regex'] then
- cflags{'-isystem $builddir/pkg/pcre/include'}
- table.insert(libs, '$builddir/pkg/pcre/libpcre.a')
- table.insert(pkg.deps, 'pkg/pcre/headers')
- end
- local zlib = modules['http_gzip_filter'] or modules['http_gunzip_filter']
- for line in iterlines('ngx_auto_config.h', 1) do
- if line == 'NGX_ZLIB 1' then
- zlib = true
- break
- end
- end
- if zlib then
- cflags{'-isystem $builddir/pkg/zlib/include'}
- table.insert(libs, '$builddir/pkg/zlib/libz.a')
- table.insert(pkg.deps, 'pkg/zlib/headers')
- end
- if modules['http'] then
- cflags{'-I $srcdir/src/http', '-I $srcdir/src/http/modules'}
- end
- if modules['mail'] then
- cflags{'-I $srcdir/src/mail'}
- end
- if modules['stream'] then
- cflags{'-I $srcdir/src/stream'}
- end
- build('awk', '$outdir/ngx_modules.c', {'$dir/modules.txt', '|', '$dir/modules.awk', '$dir/sources.txt'}, {
- expr='-f $dir/modules.awk -v sources=$dir/sources.txt'
- })
- cc('$outdir/ngx_modules.c', {'$gendir/deps', '$dir/fetch'})
- local sources = paths[[src/(
- core/(
- nginx.c
- ngx_log.c
- ngx_palloc.c
- ngx_array.c
- ngx_list.c
- ngx_hash.c
- ngx_buf.c
- ngx_queue.c
- ngx_output_chain.c
- ngx_string.c
- ngx_parse.c
- ngx_parse_time.c
- ngx_inet.c
- ngx_file.c
- ngx_crc32.c
- ngx_murmurhash.c
- ngx_md5.c
- ngx_sha1.c
- ngx_rbtree.c
- ngx_radix_tree.c
- ngx_slab.c
- ngx_times.c
- ngx_shmtx.c
- ngx_connection.c
- ngx_cycle.c
- ngx_spinlock.c
- ngx_rwlock.c
- ngx_cpuinfo.c
- ngx_conf_file.c
- ngx_module.c
- ngx_resolver.c
- ngx_open_file_cache.c
- ngx_crypt.c
- ngx_proxy_protocol.c
- ngx_syslog.c
- )
- event/(
- ngx_event.c
- ngx_event_timer.c
- ngx_event_posted.c
- ngx_event_accept.c
- ngx_event_udp.c
- ngx_event_connect.c
- ngx_event_pipe.c
- modules/ngx_epoll_module.c
- )
- http/ngx_http_file_cache.c
- os/unix/(
- ngx_time.c
- ngx_errno.c
- ngx_alloc.c
- ngx_files.c
- ngx_socket.c
- ngx_recv.c
- ngx_readv_chain.c
- ngx_udp_recv.c
- ngx_send.c
- ngx_writev_chain.c
- ngx_udp_send.c
- ngx_udp_sendmsg_chain.c
- ngx_channel.c
- ngx_shmem.c
- ngx_process.c
- ngx_daemon.c
- ngx_setaffinity.c
- ngx_setproctitle.c
- ngx_posix_init.c
- ngx_user.c
- ngx_dlopen.c
- ngx_process_cycle.c
- ngx_linux_init.c
- ngx_linux_sendfile_chain.c
- )
- )]]
- for line in iterlines('sources.txt') do
- local i = line:find(' ', 1, true)
- if modules[line:sub(1, i and i - 1)] then
- while i do
- local j = line:find(' ', i + 1, true)
- table.insert(sources, 'src/'..line:sub(i + 1, j and j - 1))
- i = j
- end
- end
- end
- exe('nginx', {sources, 'ngx_modules.c.o', libs})
- file('bin/nginx', '755', '$outdir/nginx')
- file('share/nginx/mime.types', '644', '$srcdir/conf/mime.types')
- build('sed', '$outdir/nginx.8', '$srcdir/docs/man/nginx.8', {
- expr={
- '-e s,%%PREFIX%%,/run/nginx/,',
- '-e s,%%PID_PATH%%,/run/nginx/nginx.pid,',
- '-e s,%%CONF_PATH%%,/etc/nginx/nginx.conf,',
- '-e s,%%ERROR_LOG_PATH%%,/var/log/nginx/error.log,',
- },
- })
- man{'$outdir/nginx.8'}
- fetch 'git'