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'}, {expr='-f $dir/modules.awk'}) cc('$outdir/ngx_modules.c', {'$gendir/deps', '$dir/fetch'}) local srcs = 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 mod, modsrcs in pairs(load 'sources.lua') do if modules[mod] then table.insert(srcs, expand{'src/', modsrcs}) end end exe('nginx', {srcs, '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'