mirror of
https://github.com/oasislinux/oasis.git
synced 2026-05-12 21:34:47 +02:00
158 lines
2.9 KiB
Lua
158 lines
2.9 KiB
Lua
cflags{
|
|
'-Wall', '-Wno-maybe-uninitialized',
|
|
'-D _XOPEN_SOURCE=700',
|
|
'-I $srcdir',
|
|
'-I $srcdir/include',
|
|
'-I $srcdir/tools',
|
|
'-I $outdir',
|
|
'-I $outdir/include/dav1d',
|
|
'-I $dir',
|
|
}
|
|
nasmflags{
|
|
'-i $srcdir/src/',
|
|
'-i $outdir/',
|
|
'-f elf64',
|
|
}
|
|
|
|
pkg.hdrs = {
|
|
copy('$outdir/include/dav1d', '$srcdir/include/dav1d', {
|
|
'common.h',
|
|
'data.h',
|
|
'dav1d.h',
|
|
'headers.h',
|
|
'picture.h',
|
|
}),
|
|
'$outdir/include/dav1d/version.h',
|
|
}
|
|
pkg.deps = {
|
|
'$gendir/headers',
|
|
'$outdir/cli_config.h',
|
|
'$outdir/vcs_version.h',
|
|
'$outdir/config.asm',
|
|
}
|
|
|
|
build('sed', '$outdir/include/dav1d/version.h', '$srcdir/include/dav1d/version.h.in', {
|
|
expr={
|
|
'-e s,@DAV1D_API_VERSION_MAJOR@,5,',
|
|
'-e s,@DAV1D_API_VERSION_MINOR@,0,',
|
|
'-e s,@DAV1D_API_VERSION_PATCH@,0,',
|
|
},
|
|
})
|
|
build('awk', '$outdir/vcs_version.h', '$dir/ver', {
|
|
expr=[['{printf "#define DAV1D_VERSION \"%s\"\n", $$1}']],
|
|
})
|
|
build('awk', '$outdir/config.asm', '$dir/config.h', {
|
|
expr=[['$$1 == "#define" {print "%define " substr($$0, length("#define ") + 1)} END {print "%define private_prefix dav1d"}']],
|
|
})
|
|
build('touch', '$outdir/cli_config.h')
|
|
|
|
local srcs = paths[[
|
|
src/(
|
|
cdf.c
|
|
cpu.c
|
|
data.c
|
|
decode.c
|
|
dequant_tables.c
|
|
getbits.c
|
|
intra_edge.c
|
|
itx_1d.c
|
|
lf_mask.c
|
|
log.c
|
|
mem.c
|
|
msac.c
|
|
obu.c
|
|
picture.c
|
|
qm.c
|
|
ref.c
|
|
refmvs.c
|
|
scan.c
|
|
tables.c
|
|
warpmv.c
|
|
wedge.c
|
|
|
|
lib.c
|
|
thread_task.c
|
|
|
|
@x86_64 x86/(
|
|
cpu.c msac_init.c refmvs_init.c
|
|
cpuid.asm msac.asm refmvs.asm cdef_avx2.asm itx_avx2.asm
|
|
looprestoration_avx2.asm cdef_sse.asm itx_sse.asm
|
|
|
|
cdef_avx512.asm
|
|
mc_avx512.asm
|
|
mc_avx2.asm
|
|
film_grain_avx2.asm
|
|
ipred_avx2.asm
|
|
loopfilter_avx2.asm
|
|
film_grain_sse.asm
|
|
ipred_sse.asm
|
|
loopfilter_sse.asm
|
|
looprestoration_sse.asm
|
|
mc_sse.asm
|
|
|
|
cdef16_avx2.asm
|
|
film_grain16_avx2.asm
|
|
ipred16_avx2.asm
|
|
itx16_avx2.asm
|
|
loopfilter16_avx2.asm
|
|
looprestoration16_avx2.asm
|
|
mc16_avx2.asm
|
|
cdef16_sse.asm
|
|
film_grain16_sse.asm
|
|
ipred16_sse.asm
|
|
itx16_sse.asm
|
|
loopfilter16_sse.asm
|
|
looprestoration16_sse.asm
|
|
mc16_sse.asm
|
|
)
|
|
)
|
|
]]
|
|
|
|
local tmpl = paths[[
|
|
cdef_apply_tmpl.c
|
|
cdef_tmpl.c
|
|
fg_apply_tmpl.c
|
|
film_grain_tmpl.c
|
|
ipred_prepare_tmpl.c
|
|
ipred_tmpl.c
|
|
itx_tmpl.c
|
|
lf_apply_tmpl.c
|
|
loopfilter_tmpl.c
|
|
looprestoration_tmpl.c
|
|
lr_apply_tmpl.c
|
|
mc_tmpl.c
|
|
recon_tmpl.c
|
|
|
|
@x86_64 x86/(
|
|
cdef_init_tmpl.c
|
|
film_grain_init_tmpl.c
|
|
ipred_init_tmpl.c
|
|
itx_init_tmpl.c
|
|
loopfilter_init_tmpl.c
|
|
looprestoration_init_tmpl.c
|
|
mc_init_tmpl.c
|
|
)
|
|
]]
|
|
for _, bit in ipairs{'8', '16'} do
|
|
for _, src in ipairs(tmpl) do
|
|
local obj = ('$outdir/%s/%s.o'):format(bit, src)
|
|
build('cc', obj, {'$srcdir/src/'..src, '||', '$gendir/deps'}, {cflags='$cflags -D BITDEPTH='..bit})
|
|
table.insert(srcs, obj)
|
|
end
|
|
end
|
|
|
|
lib('libdav1d.a', srcs)
|
|
|
|
exe('dav1d', [[
|
|
tools/(
|
|
dav1d.c
|
|
dav1d_cli_parse.c
|
|
input/(input.c annexb.c ivf.c section5.c)
|
|
output/(md5.c null.c output.c y4m2.c yuv.c)
|
|
)
|
|
libdav1d.a
|
|
]])
|
|
file('bin/dav1d', '755', '$outdir/dav1d')
|
|
|
|
fetch 'git'
|