Files
Pluto-SDR/makefile
Maxim 0f207b146d Initial commit: OFDM-радиолиния на двух Pluto+ (PHY/link, код на ARM)
- src: transmitter, receiver, ofdm_bench, common (libiio local: + liquid-dsp)
- scripts: кросс-сборка зависимостей, деплой scp -O, e2e-тест с md5
- docs: бенчмарк CPU (выбор rate 1.92 MSPS), грабли FDD/регуляторика
- все текстовые файлы нормализованы в LF (.gitattributes принудительно):
  CRLF в toolchain.env/makefile ломал source и make на Linux
- .vscode: IntelliSense в режиме linux-gcc-arm, заголовки из .xarm/include

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 11:00:38 +03:00

66 lines
2.5 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 -lfftw3f -lm -lpthread
# --- платы ---
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 | $(BIN)
$(CC) $(CFLAGS) $(SRC)/transmitter.c $(SRC)/common.c -o $@ $(LDFLAGS) -liio $(LDLIBS)
$(BIN)/receiver: $(SRC)/receiver.c $(SRC)/common.c $(SRC)/common.h | $(BIN)
$(CC) $(CFLAGS) $(SRC)/receiver.c $(SRC)/common.c -o $@ $(LDFLAGS) -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; }
@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