mirror of
https://github.com/oasislinux/oasis.git
synced 2026-02-05 11:33:57 +01:00
162 lines
3.4 KiB
Lua
162 lines
3.4 KiB
Lua
cflags{
|
|
'-I $dir',
|
|
'-I $srcdir/src/core',
|
|
'-I $srcdir/src/event',
|
|
'-I $srcdir/src/os/unix',
|
|
}
|
|
local libs = {}
|
|
pkg.deps = {}
|
|
|
|
local modules = {}
|
|
for line in io.lines(pkg.dir..'/modules.txt') do
|
|
if #line > 0 then
|
|
modules[line] = true
|
|
end
|
|
end
|
|
|
|
if modules['openssl'] then
|
|
cflags{'-I $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{'-I $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 io.lines(pkg.dir..'/ngx_auto_config.h') do
|
|
if line == 'NGX_ZLIB 1' then
|
|
zlib = true
|
|
break
|
|
end
|
|
end
|
|
if zlib then
|
|
cflags{'-I $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', {'$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_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 io.lines(pkg.dir..'/sources.txt') do
|
|
if #line > 0 and not line:hasprefix('#') then
|
|
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
|
|
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'
|
|
table.insert(pkg.inputs.gen, {'$dir/sources.txt', '$dir/modules.txt', '$dir/ngx_auto_config.h'})
|