mirror of
https://github.com/libretro/RetroArch.git
synced 2026-11-07 08:36:02 -10:00
Built with ffmpeg 8, libaom 3.13, x265 4.1, glibc 2.43 and clang 21, five lanes failed on the 26.04 runners: - AV1 fixtures: a monochrome sequence comes out full range with no matrix whatever is asked for; the oracle takes the colour ffprobe reads instead of assuming it. - Preview audio oracle: ffmpeg 8 leaves a timestamp gap at every seam of a -stream_loop copy, which the mixer honours and ffmpeg's raw decode does not. trailing_large loops its picture and encodes its sound as one track. - rh265 multi-slice oracle: x265 4.1 writes unreadable slice headers when two slices are encoded on several threads; those cases encode on one worker. - vkms: the kernel follows the runner's own release, its modules may sit under /usr/lib/modules, and modules-extra is fetched only where it exists. - clang -std=c89 -pedantic: glibc's const-generic strchr/strstr under _GNU_SOURCE are _Generic; -Wno-c11-extensions goes wherever -Wno-c99-extensions already does. ci_paths filters a file at the top of a samples tree by its own path. rh264 and rh265 lose the parameters no instantiation reads, the 8-bit H.264 kernels mark the depth they ignore, and the AV1 WebM fixtures leave out the MP4 box writer they never use.
72 lines
5.3 KiB
Makefile
72 lines
5.3 KiB
Makefile
CC ?= cc
|
|
LRC := ../../..
|
|
include ../../sample_objdir.mk
|
|
CFLAGS += -O1 -g1 -std=c89 -pedantic -Wall -Wextra -Werror -Wframe-larger-than=2048 -I$(LRC)/include
|
|
ifneq ($(findstring clang,$(shell $(CC) --version 2>/dev/null)),)
|
|
CFLAGS += -Wno-c99-extensions -Wno-c11-extensions
|
|
endif
|
|
ifneq ($(SANITIZER),)
|
|
CFLAGS += -fsanitize=$(SANITIZER) -fno-omit-frame-pointer
|
|
LDFLAGS += -fsanitize=$(SANITIZER)
|
|
endif
|
|
all: rtmp_chunk_test$(EXE) rtmp_handshake_test$(EXE) rtmp_receive_test$(EXE) rtmp_command_test$(EXE) rtmp_reply_test$(EXE) rtmp_publish_test$(EXE) rtmp_control_test$(EXE) rtmp_session_test$(EXE) rtmp_socket_test$(EXE) rtmp_socket_native_test$(EXE)
|
|
SESSION := $(LRC)/net/net_rtmp_session.c $(LRC)/net/net_rtmp_handshake.c $(LRC)/net/net_rtmp_chunk.c $(LRC)/net/net_rtmp_receive.c $(LRC)/net/net_rtmp_publish.c $(LRC)/net/net_rtmp_command.c $(LRC)/net/net_rtmp_reply.c $(LRC)/net/net_rtmp_control.c
|
|
rtmp_session_test$(EXE): rtmp_session_test.c $(SESSION) $(wildcard $(LRC)/include/net/net_rtmp*.h)
|
|
$(CC) $(CFLAGS) -o $@ rtmp_session_test.c $(SESSION) $(LDFLAGS)
|
|
rtmp_socket_test$(EXE): rtmp_socket_test.c $(SESSION) $(LRC)/net/net_rtmp_socket.c $(wildcard $(LRC)/include/net/net_rtmp*.h)
|
|
$(CC) $(CFLAGS) -D_GNU_SOURCE -o $@ rtmp_socket_test.c $(SESSION) $(LDFLAGS)
|
|
NETWORK := $(LRC)/net/net_socket.c $(LRC)/net/net_compat.c $(LRC)/features/features_cpu.c $(LRC)/string/stdstring.c $(LRC)/string/rstrtod.c $(LRC)/compat/compat_strl.c $(LRC)/compat/compat_posix_string.c $(LRC)/encodings/encoding_utf.c $(LRC)/time/rtime.c
|
|
NETWORK_OBJS := $(call sample_objs,$(NETWORK:.c=.o))
|
|
NETWORK_LIBS := -lm $(if $(findstring mingw,$(shell $(CC) -dumpmachine)),-lws2_32 -lwinmm,)
|
|
rtmp_socket_native_test$(EXE): rtmp_socket_native_test.c $(SESSION) $(NETWORK_OBJS) $(LRC)/net/net_rtmp_socket.c $(wildcard $(LRC)/include/net/net_rtmp*.h)
|
|
$(CC) $(CFLAGS) -D_GNU_SOURCE -o $@ rtmp_socket_native_test.c $(SESSION) $(LRC)/net/net_rtmp_socket.c $(NETWORK_OBJS) $(LDFLAGS) $(NETWORK_LIBS)
|
|
$(SAMPLE_OBJDIR)/%.o: $$(call sample_src,$$*).c
|
|
@mkdir -p $(@D)
|
|
$(CC) $(filter-out -pedantic -Werror,$(CFLAGS)) -D_GNU_SOURCE -c -o $@ $<
|
|
rtmp_control_test$(EXE): rtmp_control_test.c $(LRC)/net/net_rtmp_control.c $(LRC)/net/net_rtmp_receive.c $(LRC)/include/net/net_rtmp_control.h
|
|
$(CC) $(CFLAGS) -o $@ rtmp_control_test.c $(LRC)/net/net_rtmp_control.c $(LRC)/net/net_rtmp_receive.c $(LDFLAGS)
|
|
rtmp_chunk_test$(EXE): rtmp_chunk_test.c $(LRC)/net/net_rtmp_chunk.c $(LRC)/include/net/net_rtmp_chunk.h
|
|
$(CC) $(CFLAGS) -o $@ rtmp_chunk_test.c $(LRC)/net/net_rtmp_chunk.c $(LDFLAGS)
|
|
rtmp_handshake_test$(EXE): rtmp_handshake_test.c $(LRC)/net/net_rtmp_handshake.c $(LRC)/include/net/net_rtmp_handshake.h $(LRC)/include/net/net_rtmp_chunk.h
|
|
$(CC) $(CFLAGS) -o $@ rtmp_handshake_test.c $(LRC)/net/net_rtmp_handshake.c $(LDFLAGS)
|
|
rtmp_receive_test$(EXE): rtmp_receive_test.c $(LRC)/net/net_rtmp_receive.c $(LRC)/include/net/net_rtmp_receive.h $(LRC)/include/net/net_rtmp_chunk.h
|
|
$(CC) $(CFLAGS) -o $@ rtmp_receive_test.c $(LRC)/net/net_rtmp_receive.c $(LDFLAGS)
|
|
rtmp_command_test$(EXE): rtmp_command_test.c $(LRC)/net/net_rtmp_command.c $(LRC)/include/net/net_rtmp_command.h $(LRC)/include/net/net_rtmp_chunk.h
|
|
$(CC) $(CFLAGS) -o $@ rtmp_command_test.c $(LRC)/net/net_rtmp_command.c $(LDFLAGS)
|
|
rtmp_reply_test$(EXE): rtmp_reply_test.c $(LRC)/net/net_rtmp_reply.c $(LRC)/include/net/net_rtmp_reply.h $(LRC)/include/net/net_rtmp_chunk.h
|
|
$(CC) $(CFLAGS) -o $@ rtmp_reply_test.c $(LRC)/net/net_rtmp_reply.c $(LDFLAGS)
|
|
PUBLISH := $(LRC)/net/net_rtmp_publish.c $(LRC)/net/net_rtmp_command.c $(LRC)/net/net_rtmp_reply.c
|
|
PUBLISH_HEADERS := $(LRC)/include/net/net_rtmp_publish.h $(LRC)/include/net/net_rtmp_command.h $(LRC)/include/net/net_rtmp_reply.h $(LRC)/include/net/net_rtmp_receive.h $(LRC)/include/net/net_rtmp_chunk.h
|
|
rtmp_publish_test$(EXE): rtmp_publish_test.c $(PUBLISH) $(PUBLISH_HEADERS)
|
|
$(CC) $(CFLAGS) -o $@ rtmp_publish_test.c $(PUBLISH) $(LDFLAGS)
|
|
check: all
|
|
$(RUNNER) ./rtmp_chunk_test$(EXE)
|
|
$(RUNNER) ./rtmp_handshake_test$(EXE)
|
|
$(RUNNER) ./rtmp_receive_test$(EXE)
|
|
$(RUNNER) ./rtmp_command_test$(EXE)
|
|
$(RUNNER) ./rtmp_reply_test$(EXE)
|
|
$(RUNNER) ./rtmp_publish_test$(EXE)
|
|
$(RUNNER) ./rtmp_control_test$(EXE)
|
|
$(RUNNER) ./rtmp_session_test$(EXE)
|
|
$(RUNNER) ./rtmp_socket_test$(EXE)
|
|
python3 run.py --runner "$(RUNNER)" ./rtmp_chunk_test$(EXE)
|
|
python3 receive.py --runner "$(RUNNER)" ./rtmp_receive_test$(EXE)
|
|
python3 command.py --runner "$(RUNNER)" ./rtmp_command_test$(EXE)
|
|
python3 reply.py --runner "$(RUNNER)" ./rtmp_reply_test$(EXE)
|
|
peer-check: all
|
|
python3 peer.py --runner "$(RUNNER)" --receive-binary ./rtmp_receive_test$(EXE) --command-binary ./rtmp_command_test$(EXE) --reply-binary ./rtmp_reply_test$(EXE) ./rtmp_handshake_test$(EXE)
|
|
python3 session_peer.py --runner "$(RUNNER)" ./rtmp_session_test$(EXE)
|
|
python3 session_peer.py --runner "$(RUNNER)" --socket-binary ./rtmp_socket_native_test$(EXE) ./rtmp_session_test$(EXE)
|
|
clean:
|
|
rm -rf $(SAMPLE_OBJDIR)
|
|
rm -f rtmp_chunk_test rtmp_chunk_test.exe rtmp_handshake_test rtmp_handshake_test.exe
|
|
rm -f rtmp_receive_test rtmp_receive_test.exe
|
|
rm -f rtmp_command_test rtmp_command_test.exe
|
|
rm -f rtmp_reply_test rtmp_reply_test.exe
|
|
rm -f rtmp_publish_test rtmp_publish_test.exe
|
|
rm -f rtmp_control_test rtmp_control_test.exe
|
|
rm -f rtmp_session_test rtmp_session_test.exe
|
|
rm -f rtmp_socket_test rtmp_socket_test.exe
|
|
rm -f rtmp_socket_native_test rtmp_socket_native_test.exe
|
|
.PHONY: all check peer-check clean
|