mirror of
https://github.com/RFnexus/modem73.git
synced 2026-04-27 14:30:33 +00:00
64 lines
1.7 KiB
Makefile
64 lines
1.7 KiB
Makefile
CXX = g++
|
|
CC = gcc
|
|
CXXFLAGS = -std=c++17 -O3 -march=native -Wall -Wextra
|
|
LDFLAGS = -lpthread -ltinfo -lncurses -ldl -lm -lhidapi-hidraw
|
|
|
|
# dependencies
|
|
AICODIX_DSP ?= ../dsp
|
|
AICODIX_CODE ?= ../code
|
|
MODEM_SRC ?= ../modem
|
|
|
|
INCLUDES = -I$(AICODIX_DSP) -I$(AICODIX_CODE) -I$(MODEM_SRC)
|
|
|
|
TARGET = modem73
|
|
|
|
SRCS = kiss_tnc.cc
|
|
HDRS = kiss_tnc.hh miniaudio_audio.hh rigctl_ptt.hh modem.hh tnc_ui.hh
|
|
OBJS = miniaudio.o
|
|
|
|
# defualt to build with UI, headless operations through --headless
|
|
UI_FLAGS = -DWITH_UI
|
|
|
|
.PHONY: all clean install debug help
|
|
|
|
all: $(TARGET)
|
|
|
|
miniaudio.o: miniaudio.c miniaudio.h
|
|
$(CC) -c -O2 -o $@ miniaudio.c
|
|
|
|
$(TARGET): $(SRCS) $(HDRS) $(OBJS)
|
|
$(CXX) $(CXXFLAGS) $(UI_FLAGS) $(INCLUDES) -o $@ $(SRCS) $(OBJS) $(LDFLAGS)
|
|
|
|
clean:
|
|
rm -f $(TARGET) $(OBJS)
|
|
|
|
install: $(TARGET)
|
|
install -m 755 $(TARGET) /usr/local/bin/
|
|
$(shell cp 50-cm108-ptt.rules /etc/udev/rules.d/)
|
|
|
|
# Debug build
|
|
debug: CXXFLAGS = -std=c++17 -g -O0 -Wall -Wextra -DDEBUG
|
|
debug: $(TARGET)
|
|
|
|
# Help
|
|
help:
|
|
@echo "MODEM73 makefile"
|
|
@echo ""
|
|
@echo "Targets:"
|
|
@echo " all - Build modem"
|
|
@echo " clean - Remove build"
|
|
@echo " install - Install to /usr/local/bin"
|
|
@echo " debug - Build with debug symbols"
|
|
@echo ""
|
|
@echo "Variables:"
|
|
@echo " AICODIX_DSP - Path to aicodix/dsp (default: ../dsp)"
|
|
@echo " AICODIX_CODE - Path to aicodix/code (default: ../code)"
|
|
@echo " MODEM_SRC - Path to modem source (default: ../modem)"
|
|
@echo ""
|
|
@echo "Example:"
|
|
@echo " make AICODIX_DSP=~/aicodix/dsp AICODIX_CODE=~/aicodix/code"
|
|
@echo ""
|
|
@echo "Runtime options:"
|
|
@echo " ./modem73 # Run with UI"
|
|
@echo " ./modem73 -h # Run headless"
|
|
@echo " ./modem73 --headless"
|