architecture.md: replace JSON control payloads with binary serialization; add Protocol Serialization section describing little-endian wire format, put/get buffer layer, and write_*/read_* protocol layer. planning.md: mark common/media_ctrl/v4l2_ctrl done; insert serial (#4) and protocol (#6) modules with descriptions. conventions.md: document -flto and its implication (no manual static for inlining — compiler handles it at link time). Makefiles: add -flto to CFLAGS in all four Makefiles. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
30 lines
841 B
Makefile
30 lines
841 B
Makefile
ROOT := $(abspath ../..)
|
|
CC = gcc
|
|
CFLAGS = -std=c11 -Wall -Wextra -D_GNU_SOURCE -flto -I$(ROOT)/include
|
|
BUILD = $(ROOT)/build
|
|
|
|
COMMON_OBJ = $(BUILD)/common/error.o
|
|
MEDIA_CTRL_OBJ = $(BUILD)/media_ctrl/media_ctrl.o
|
|
V4L2_CTRL_OBJ = $(BUILD)/v4l2_ctrl/v4l2_ctrl.o
|
|
|
|
.PHONY: all clean modules
|
|
|
|
all: modules $(BUILD)/cli/media_ctrl_cli $(BUILD)/cli/v4l2_ctrl_cli
|
|
|
|
modules:
|
|
$(MAKE) -C $(ROOT)/src/modules/common
|
|
$(MAKE) -C $(ROOT)/src/modules/media_ctrl
|
|
$(MAKE) -C $(ROOT)/src/modules/v4l2_ctrl
|
|
|
|
$(BUILD)/cli/media_ctrl_cli: media_ctrl_cli.c $(COMMON_OBJ) $(MEDIA_CTRL_OBJ) | $(BUILD)/cli
|
|
$(CC) $(CFLAGS) -o $@ $^
|
|
|
|
$(BUILD)/cli/v4l2_ctrl_cli: v4l2_ctrl_cli.c $(COMMON_OBJ) $(V4L2_CTRL_OBJ) | $(BUILD)/cli
|
|
$(CC) $(CFLAGS) -o $@ $^
|
|
|
|
$(BUILD)/cli:
|
|
mkdir -p $@
|
|
|
|
clean:
|
|
rm -f $(BUILD)/cli/media_ctrl_cli $(BUILD)/cli/v4l2_ctrl_cli
|