Files
Pluto-SDR/makefile
2026-07-10 16:25:29 +03:00

69 lines
2.9 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# pluto-link — кросс-сборка под ARM Pluto (armhf, static)
# Цели: all | tx | rx | bench | deploy | test | clean | help
# Переменные можно переопределить: make PLUTO_A=ip PLUTO_B=ip
# --- тулчейн (согласовано с toolchain.env) ---
CROSS ?= arm-linux-gnueabihf-
CC := $(CROSS)gcc
XARM ?= $(HOME)/xarm
CFLAGS := -O3 -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=hard -ffast-math \
-Wall -Wextra -static -I$(XARM)/include -Isrc
LDFLAGS := -L$(XARM)/lib
LDLIBS := -lliquid -lfec -lfftw3f -lm -lpthread
DEPS_LIBS := $(XARM)/lib/libliquid.a $(XARM)/lib/libfec.a $(XARM)/lib/libad9361.a $(XARM)/lib/libiio.a $(XARM)/lib/libfftw3f.a
# --- платы --- A == transmitter, B == receiver
PLUTO_A ?= 192.168.2.1
PLUTO_B ?= 192.168.3.1
BIN := build
SRC := src
all: $(BIN)/transmitter $(BIN)/receiver $(BIN)/ofdm_bench
$(BIN):
mkdir -p $(BIN)
$(BIN)/transmitter: $(SRC)/transmitter.c $(SRC)/common.c $(SRC)/common.h $(DEPS_LIBS) | $(BIN)
$(CC) $(CFLAGS) $(SRC)/transmitter.c $(SRC)/common.c -o $@ $(LDFLAGS) -lad9361 -liio $(LDLIBS)
$(BIN)/receiver: $(SRC)/receiver.c $(SRC)/common.c $(SRC)/common.h $(DEPS_LIBS) | $(BIN)
$(CC) $(CFLAGS) $(SRC)/receiver.c $(SRC)/common.c -o $@ $(LDFLAGS) -lad9361 -liio $(LDLIBS)
$(BIN)/ofdm_bench: $(SRC)/ofdm_bench.c | $(BIN)
$(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) $(LDLIBS)
tx: $(BIN)/transmitter
rx: $(BIN)/receiver
bench: $(BIN)/ofdm_bench
# --- деплой (scp -O: на прошивке v0.38 нет sftp-server) ---
deploy: all
scripts/deploy.sh $(PLUTO_A) $(PLUTO_B)
# --- e2e: файл через радио + md5 ---
test: deploy
scripts/test_file_link.sh $(PLUTO_A) $(PLUTO_B)
check-env:
@which $(CC) >/dev/null || { echo "нет $(CC): sudo apt install gcc-arm-linux-gnueabihf"; exit 1; }
@test -f $(XARM)/lib/libliquid.a || { echo "нет libliquid.a: запусти scripts/build_deps.sh"; exit 1; }
@test -f $(XARM)/lib/libfftw3f.a || { echo "нет libfftw3f.a: запусти scripts/build_deps.sh"; exit 1; }
@test -f $(XARM)/lib/libfec.a || { echo "нет libfec.a: запусти scripts/build_deps.sh"; exit 1; }
@test -f $(XARM)/lib/libad9361.a || { echo "нет libad9361.a: запусти scripts/build_deps.sh"; exit 1; }
@echo "OK: тулчейн и зависимости на месте"
clean:
rm -rf $(BIN)
help:
@echo "make [all] — собрать transmitter, receiver, ofdm_bench (static armhf)"
@echo "make tx|rx|bench — собрать отдельную цель"
@echo "make deploy — залить бинарники на обе платы (scp -O в /tmp)"
@echo "make test — e2e-тест передачи файла с md5-сверкой"
@echo "make check-env — проверить тулчейн и $(XARM)"
@echo "make clean — удалить build/"
@echo "переменные: PLUTO_A=$(PLUTO_A) PLUTO_B=$(PLUTO_B) XARM=$(XARM)"
.PHONY: all tx rx bench deploy test check-env clean help