upgrade vpx to 1.8.1, rm meson prereq and add dav1d Makefile, warn/gettid patch
[goodguy/cinelerra.git] / cinelerra-5.1 / thirdparty / src / dav1d-0.4.0.patch1
1 diff -uN dav1d-0.4.0.orig/Makefile dav1d-0.4.0/Makefile
2 --- dav1d-0.4.0.orig/Makefile   1969-12-31 17:00:00.000000000 -0700
3 +++ dav1d-0.4.0/Makefile        2019-08-30 10:30:39.846512952 -0600
4 @@ -0,0 +1,342 @@
5 +BUILD=build
6 +DESTDIR=/
7 +PREFIX=usr/local
8 +LIBDIR=$(PREFIX)/lib
9 +INCDIR=$(PREFIX)/include
10 +# make Q="" for verbose
11 +Q?=@echo == $@; 
12 +OBJDIR?=$(BUILD)/static
13 +NASM_BLD=$(OBJDIR)/nasm
14 +ENTRY_BLD=$(OBJDIR)/entry
15 +SRC_BLD=$(OBJDIR)/src
16 +BIT8_BLD=$(OBJDIR)/bits8
17 +BIT16_BLD=$(OBJDIR)/bits16
18 +TOOLS_BLD=$(BUILD)/tools
19 +TESTS_BLD=$(BUILD)/tests
20 +
21 +STATIC_LIB=$(BUILD)/src/libdav1d.a
22 +SHARED_LIB=$(BUILD)/src/libdav1d.so
23 +DEFS= -DNDEBUG -D_FILE_OFFSET_BITS=64 -D_POSIX_C_SOURCE=200112L
24 +FUZZ= -DDAV1D_MT_FUZZING
25 +
26 +BLD_INCL= $(DEFS) -I. -Isrc -Iinclude/dav1d -Iinclude \
27 +       -I$(BUILD) -I$(BUILD)/include -I$(BUILD)/include/dav1d
28 +TOOLS_INCL= $(DEFS) -Itools -I. -I$(BUILD) -I$(BUILD)/tools \
29 +       -Iinclude -Iinclude/dav1d -I$(BUILD)/include/dav1d \
30 +       -I$(BUILD)/include -I/usr/include/SDL2
31 +
32 +NP?=.NOTPARALLEL:
33 +$(NP)
34 +MAKE_P:=$(MAKE) -j NP=""
35 +
36 +all: meson_data
37 +       $(MAKE_P) $(STATIC_LIB) OBJDIR=$(BUILD)/static
38 +       $(MAKE_P) $(SHARED_LIB) OBJDIR=$(BUILD)/shared
39 +# req SDL
40 +#      $(MAKE_P) $(TOOLS) OBJDIR=$(BUILD)/static
41 +#      $(MAKE_P) $(TESTS) OBJDIR=$(BUILD)/static
42 +
43 +CC_DEFS=\
44 +       -DNDEBUG \
45 +       -D_FILE_OFFSET_BITS=64 \
46 +       -D_POSIX_C_SOURCE=200112L \
47 +
48 +CC_OPTS=\
49 +       -pipe \
50 +       -Wall \
51 +       -Winvalid-pch \
52 +       -Wextra \
53 +       -std=c99 \
54 +       -O3 \
55 +       -fvisibility=hidden \
56 +       -Wundef \
57 +       -Werror=vla \
58 +       -Wno-maybe-uninitialized \
59 +       -Wno-missing-field-initializers \
60 +       -Wno-unused-parameter \
61 +       -Werror=missing-prototypes \
62 +       -fomit-frame-pointer \
63 +       -ffast-math \
64 +       -fPIC \
65 +       -mpreferred-stack-boundary=5 \
66 +       -MD -MQ $@ -MF $@.d \
67 +
68 +SHA_OPTS=\
69 +       -Wl,--no-undefined \
70 +       -Wl,--as-needed \
71 +       -Wl,-O1 \
72 +       -shared \
73 +       -fPIC \
74 +       -Wl,--start-group \
75 +       -Wl,-soname,libdav1d.so.2 \
76 +       -Wl,--end-group \
77 +       -pthread \
78 +
79 +CC_CC=$(Q)cc $(CC_OPTS) $(CFLAGS)
80 +NASM=$(Q)/usr/bin/nasm
81 +any=$(foreach i,$(2),$(1)/$(i))
82 +
83 +# nasm
84 +NASM_OBJS=$(call any,$(NASM_BLD), \
85 +       cdef.obj \
86 +       cdef_sse.obj \
87 +       cpuid.obj \
88 +       ipred.obj \
89 +       ipred_ssse3.obj \
90 +       itx.obj \
91 +       itx_ssse3.obj \
92 +       loopfilter.obj \
93 +       looprestoration.obj \
94 +       looprestoration_ssse3.obj \
95 +       mc.obj \
96 +       mc_ssse3.obj \
97 +       msac.obj)
98 +$(NASM_BLD)/%.obj: src/x86/%.asm
99 +       $(NASM) -f elf64 \
100 +               -I src/ -I $(BUILD)/ -MQ $@ -MF $@.ndep \
101 +               $< -o $@
102 +
103 +# entry
104 +ENTRY_OBJS=$(call any,$(ENTRY_BLD), \
105 +       lib.c.o \
106 +       thread_task.c.o)
107 +$(ENTRY_BLD)/%.c.o: src/%.c
108 +       $(CC_CC) -Iinclude -Ibuild/include/dav1d -Isrc/entry $(BLD_INCL) \
109 +               -mincoming-stack-boundary=4 -o $@ -c $<
110 +
111 +# src
112 +SRC_OBJS=$(call any,$(SRC_BLD), \
113 +       cdf.o \
114 +       cpu.o \
115 +       data.o \
116 +       decode.o \
117 +       dequant_tables.o \
118 +       getbits.o \
119 +       intra_edge.o \
120 +       lf_mask.o \
121 +       log.o \
122 +       msac.o \
123 +       obu.o \
124 +       picture.o \
125 +       qm.o \
126 +       ref.o \
127 +       ref_mvs.o \
128 +       scan.o \
129 +       tables.o \
130 +       warpmv.o \
131 +       wedge.o \
132 +       x86/cpu.c.o)
133 +$(SRC_BLD)/%.o: src/%.c
134 +       $(CC_CC) $(BLD_INCL) -pthread -o $@ -c $<
135 +$(SRC_BLD)/x86/%.c.o: src/x86/%.c
136 +       $(CC_CC) $(BLD_INCL) -o $@ -c $<
137 +
138 +# bits
139 +BITS_OBJS= \
140 +       cdef_tmpl.o \
141 +       cdef_apply_tmpl.o \
142 +       film_grain_tmpl.o \
143 +       ipred_tmpl.o \
144 +       ipred_prepare_tmpl.o \
145 +       itx_tmpl.o \
146 +       lf_apply_tmpl.o \
147 +       loopfilter_tmpl.o \
148 +       looprestoration_tmpl.o \
149 +       lr_apply_tmpl.o \
150 +       mc_tmpl.o \
151 +       recon_tmpl.o \
152 +       x86/cdef_init_tmpl.c.o \
153 +       x86/ipred_init_tmpl.c.o \
154 +       x86/itx_init_tmpl.c.o \
155 +       x86/loopfilter_init_tmpl.c.o \
156 +       x86/looprestoration_init_tmpl.c.o \
157 +       x86/mc_init_tmpl.c.o \
158 +
159 +BIT8_OBJS=$(call any,$(BIT8_BLD),$(BITS_OBJS))
160 +$(BIT8_BLD)/x86/%.c.o: src/x86/%.c
161 +       $(CC_CC) $(BLD_INCL) -DBITDEPTH=8 -o $@ -c $<
162 +$(BIT8_BLD)/%.o: src/%.c
163 +       $(CC_CC) $(BLD_INCL) -DBITDEPTH=8 -o $@ -c $<
164 +
165 +BIT16_OBJS=$(call any,$(BIT16_BLD),$(BITS_OBJS))
166 +$(BIT16_BLD)/x86/%.c.o: src/x86/%.c
167 +       $(CC_CC) $(BLD_INCL) -DBITDEPTH=16 -o $@ -c $<
168 +$(BIT16_BLD)/%.o: src/%.c
169 +       $(CC_CC) $(BLD_INCL) -DBITDEPTH=16 -o $@ -c $<
170 +
171 +$(BUILD)/config.h:
172 +       echo  > $@ "#pragma once"
173 +       echo >> $@ "#define ARCH_AARCH64 0"
174 +       echo >> $@ "#define ARCH_ARM 0"
175 +       echo >> $@ "#define ARCH_PPC64LE 0"
176 +       echo >> $@ "#define ARCH_X86 1"
177 +       echo >> $@ "#define ARCH_X86_32 0"
178 +       echo >> $@ "#define ARCH_X86_64 1"
179 +       echo >> $@ "#define CONFIG_16BPC 1"
180 +       echo >> $@ "#define CONFIG_8BPC 1"
181 +       echo >> $@ "#define CONFIG_LOG 1"
182 +       echo >> $@ "#define ENDIANNESS_BIG 0"
183 +       echo >> $@ "#define HAVE_ASM 1"
184 +       echo >> $@ "#define HAVE_POSIX_MEMALIGN 1"
185 +       echo >> $@ "#define HAVE_UNISTD_H 1"
186 +       echo >> $@ "#define STACK_ALIGNMENT 32"
187 +
188 +$(BUILD)/config.asm:
189 +       echo  > $@ "%define ARCH_X86_32 0"
190 +       echo >> $@ "%define ARCH_X86_64 1"
191 +       echo >> $@ "%define PIC 1"
192 +       echo >> $@ "%define STACK_ALIGNMENT 32"
193 +
194 +$(BUILD)/include/vcs_version.h:
195 +       mkdir -p $(BUILD)/include
196 +       echo  > $@ "#define DAV1D_VERSION \"0.4.0\""
197 +
198 +$(BUILD)/include/dav1d/version.h:
199 +       mkdir -p $(BUILD)/include/dav1d
200 +       echo  > $@ "#ifndef DAV1D_VERSION_H"
201 +       echo >> $@ "#define DAV1D_VERSION_H"
202 +       echo >> $@ "#define DAV1D_API_VERSION_MAJOR 2"
203 +       echo >> $@ "#define DAV1D_API_VERSION_MINOR 0"
204 +       echo >> $@ "#define DAV1D_API_VERSION_PATCH 0"
205 +       echo >> $@ "#endif /* DAV1D_VERSION_H */"
206 +
207 +$(TOOLS_BLD)/cli_config.h:
208 +       mkdir -p $(TOOLS_BLD)
209 +       echo  > $@ "#pragma once"
210 +       echo >> $@ "#define HAVE_CLOCK_GETTIME 1"
211 +
212 +.PHONY: meson_data
213 +meson_data:
214 +       make meson_dirs OBJDIR=$(BUILD)/static
215 +       make meson_dirs OBJDIR=$(BUILD)/shared
216 +       ln -sf ./include/compat/gcc/stdatomic.h .
217 +
218 +.PHONY: meson_dirs
219 +meson_dirs: $(OBJDIR) \
220 +       $(BUILD)/config.h $(BUILD)/config.asm \
221 +       $(BUILD)/include/vcs_version.h \
222 +       $(BUILD)/include/dav1d/version.h \
223 +       $(TOOLS_BLD)/cli_config.h \
224 +
225 +LIB_OBJS=$(ENTRY_OBJS) $(NASM_OBJS) $(SRC_OBJS) $(BIT8_OBJS) $(BIT16_OBJS)
226 +
227 +$(STATIC_LIB): DIR?=static
228 +$(STATIC_LIB): $(LIB_OBJS)
229 +       rm -f $@
230 +       gcc-ar csrD $@ $(LIB_OBJS)
231 +
232 +$(SHARED_LIB): DIR?=shared
233 +$(SHARED_LIB): $(LIB_OBJS)
234 +       rm -f $@
235 +       cc -o $@ $(LIB_OBJS) $(SHA_OPTS)
236 +
237 +# tools
238 +DAV1D_OBJS=$(call any,$(TOOLS_BLD),\
239 +       dav1d.o \
240 +       dav1d_cli_parse.o \
241 +       input/annexb.o \
242 +       input/ivf.o \
243 +       input/input.o \
244 +       output/md5.o \
245 +       output/null.o \
246 +       output/output.o \
247 +       output/y4m2.o \
248 +       output/yuv.o)
249 +
250 +DAV1DPLAY_OBJS=$(call any,$(TOOLS_BLD),\
251 +       dav1dplay.o \
252 +       input/annexb.o \
253 +       input/ivf.o \
254 +       input/input.o)
255 +
256 +$(TOOLS_BLD)/%.o: tools/%.c
257 +       $(CC_CC) $(TOOLS_INCL) -o $@ -c $<
258 +
259 +DAV1D=$(TOOLS_BLD)/dav1d
260 +$(DAV1D): $(DAV1D_OBJS)
261 +       $(CC_CC) -pthread -I$(BUILD) -o $@ $(DAV1D_OBJS) $(STATIC_LIB)
262 +
263 +DAV1DPLAY=$(TOOLS_BLD)/dav1dplay
264 +$(DAV1DPLAY): $(DAV1DPLAY_OBJS)
265 +       $(CC_CC) -pthread -o $(TOOLS_BLD)/dav1dplay $(DAV1DPLAY_OBJS) $(STATIC_LIB) -lSDL2
266 +
267 +TOOLS=$(DAV1D) $(DAV1DPLAY)
268 +.PHONY:        tools
269 +tools: $(TOOLS)
270 +
271 +# tests
272 +TESTS_CHKASM=tests/checkasm
273 +TESTS_CHKASM_BLD=$(TESTS_BLD)/checkasm
274 +CHKASM_BIT8=$(TESTS_CHKASM_BLD)/bit8
275 +CHKASM_BIT16=$(TESTS_CHKASM_BLD)/bit16
276 +CHKASM_BITS= \
277 +       cdef.o \
278 +       ipred.o \
279 +       itx.o \
280 +       loopfilter.o \
281 +       looprestoration.o \
282 +       mc.o \
283 +
284 +CHKASM_BIT8_OBJS=$(call any,$(CHKASM_BIT8),$(CHKASM_BITS))
285 +CHKASM_BIT16_OBJS=$(call any,$(CHKASM_BIT16),$(CHKASM_BITS))
286 +
287 +TESTS_CHKASM_OBJS= \
288 +       $(TESTS_CHKASM_BLD)/checkasm.o \
289 +       $(TESTS_CHKASM_BLD)/msac.o \
290 +       $(CHKASM_BIT8_OBJS) $(CHKASM_BIT16_OBJS) \
291 +       $(TESTS_CHKASM_BLD)/x86/checkasm.obj \
292 +
293 +$(TESTS_CHKASM_BLD)/%.o: $(TESTS_CHKASM)/%.c
294 +       $(CC_CC) $(BLD_INCL) -o $@ -c $<
295 +$(CHKASM_BIT8)/%.o: $(TESTS_CHKASM)/%.c
296 +       $(CC_CC) $(BLD_INCL) -DBITDEPTH=8 -o $@ -c $<
297 +$(CHKASM_BIT16)/%.o: $(TESTS_CHKASM)/%.c
298 +       $(CC_CC) $(BLD_INCL) -DBITDEPTH=16 -o $@ -c $<
299 +$(TESTS_CHKASM_BLD)/x86/%.obj: $(TESTS_CHKASM)/x86/%.asm
300 +       @$(NASM) -f elf64 \
301 +               -I src/ -I $(BUILD)/ -MQ $@ -MF $@.ndep \
302 +               $< -o $@
303 +
304 +CHECKASM=$(TESTS_BLD)/checkasm/checkasm
305 +$(CHECKASM): $(TESTS_CHKASM_OBJS) $(STATIC_LIB)
306 +       $(CC_CC) -pthread -o $@ $(TESTS_CHKASM_OBJS) $(STATIC_LIB) -lm
307 +
308 +TESTS_FUZZER=tests/libfuzzer
309 +TESTS_FUZZER_BLD=$(TESTS_BLD)/libfuzzer
310 +TESTS_FUZZER_OBJS= \
311 +       $(TESTS_FUZZER_BLD)/main.o \
312 +       $(TESTS_FUZZER_BLD)/dav1d_fuzzer.o \
313 +
314 +$(TESTS_FUZZER_BLD)/%.o: $(TESTS_FUZZER)/%.c
315 +       $(CC_CC) $(BLD_INCL) -o $@ -c $<
316 +
317 +DAV1D_FUZZER=$(TESTS_BLD)/dav1d_fuzzer
318 +$(DAV1D_FUZZER): $(TESTS_FUZZER_OBJS) $(STATIC_LIB)
319 +       $(CC_CC) -pthread -o $@ $(TESTS_FUZZER_OBJS) $(STATIC_LIB)
320 +
321 +TESTS=$(CHECKASM) $(DAV1D_FUZZER)
322 +.PHONY:        tests
323 +tests: $(TESTS)
324 +
325 +$(OBJDIR):
326 +       mkdir -p $@/include/dav1d \
327 +               $(BUILD)/src $(BUILD)/include \
328 +               $(ENTRY_BLD) $(NASM_BLD) \
329 +               $(SRC_BLD)/x86 $(BIT8_BLD)/x86 $(BIT16_BLD)/x86 \
330 +               $(TOOLS_BLD) $(TOOLS_BLD)/input $(TOOLS_BLD)/output \
331 +               $(TESTS_CHKASM_BLD)/bit8 $(TESTS_CHKASM_BLD)/bit16 \
332 +               $(TESTS_CHKASM_BLD)/x86 $(TESTS_FUZZER_BLD) \
333 +
334 +clean:
335 +       rm -rf $(BUILD)
336 +
337 +install:
338 +       mkdir -p $(DESTDIR)$(LIBDIR)
339 +       cp -a $(STATIC_LIB) $(DESTDIR)$(LIBDIR)
340 +       cp -a $(SHARED_LIB) $(DESTDIR)$(LIBDIR)
341 +       mkdir -p $(DESTDIR)$(INCDIR)
342 +       cp -a include/dav1d $(DESTDIR)$(INCDIR)
343 +       rm -f $(DESTDIR)$(INCDIR)/dav1d/meson.build
344 +       rm -f $(DESTDIR)$(INCDIR)/dav1d/version.h.in
345 +       cp -a $(BUILD)/include/dav1d/version.h $(DESTDIR)$(INCDIR)/version.h
346 +