You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
197 lines
5.8 KiB
197 lines
5.8 KiB
CC = gcc
|
|
CXX = g++
|
|
STRIP = strip
|
|
armCC = arm-linux-gnueabihf-gcc
|
|
armCXX = arm-linux-gnueabihf-g++
|
|
armSTRIP = arm-linux-gnueabihf-strip
|
|
rpi-armCC = /opt/tools/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
|
|
rpi-armCXX = /opt/tools/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
|
|
rpi-armSTRIP= /opt/tools/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip
|
|
|
|
CFLAGS = -g -O3 -Wall -std=c++0x -pthread -I.
|
|
HSTFLAGS= -DENABLE_DMR -DENABLE_P25
|
|
CMDFLAGS = -I..
|
|
LIBS = -lpthread -lutil
|
|
LDFLAGS = -g
|
|
|
|
TAR_ARCH =
|
|
ifneq ($(ARCH),)
|
|
TAR_ARCH = "_$(ARCH)"
|
|
endif
|
|
|
|
GITFLAGS=
|
|
GIT_VER =
|
|
GIT_VER_HASH =
|
|
ifneq ("$(wildcard .git)",)
|
|
GIT_VER = \"$(shell git describe --abbrev=8 --dirty --always --tags)\"
|
|
GIT_VER_HASH = \"$(shell git describe --abbrev=8 --always --tags)\"
|
|
GITFLAGS= -D__GIT_VER__=$(GIT_VER) -D__GIT_VER_HASH__=$(GIT_VER_HASH)
|
|
endif
|
|
|
|
HOST_BIN = dvmhost
|
|
HOST_OBJECTS = \
|
|
edac/AMBEFEC.o \
|
|
edac/BCH.o \
|
|
edac/BPTC19696.o \
|
|
edac/CRC.o \
|
|
edac/Golay2087.o \
|
|
edac/Golay24128.o \
|
|
edac/Hamming.o \
|
|
edac/QR1676.o \
|
|
edac/RS129.o \
|
|
edac/RS634717.o \
|
|
edac/SHA256.o \
|
|
dmr/acl/AccessControl.o \
|
|
dmr/data/Data.o \
|
|
dmr/data/DataHeader.o \
|
|
dmr/data/EMB.o \
|
|
dmr/data/EmbeddedData.o \
|
|
dmr/edac/Trellis.o \
|
|
dmr/lc/CSBK.o \
|
|
dmr/lc/FullLC.o \
|
|
dmr/lc/LC.o \
|
|
dmr/lc/PrivacyLC.o \
|
|
dmr/lc/ShortLC.o \
|
|
dmr/packet/ControlSignaling.o \
|
|
dmr/packet/Data.o \
|
|
dmr/packet/Voice.o \
|
|
dmr/Control.o \
|
|
dmr/Slot.o \
|
|
dmr/SlotType.o \
|
|
dmr/Sync.o \
|
|
lookups/IdenTableLookup.o \
|
|
lookups/RadioIdLookup.o \
|
|
lookups/RSSIInterpolator.o \
|
|
lookups/TalkgroupIdLookup.o \
|
|
nxdn/acl/AccessControl.o \
|
|
nxdn/channel/FACCH1.o \
|
|
nxdn/channel/LICH.o \
|
|
nxdn/channel/SACCH.o \
|
|
nxdn/channel/UDCH.o \
|
|
nxdn/data/Layer3.o \
|
|
nxdn/packet/Data.o \
|
|
nxdn/packet/Voice.o \
|
|
nxdn/Audio.o \
|
|
nxdn/Control.o \
|
|
nxdn/Convolution.o \
|
|
nxdn/Sync.o \
|
|
p25/acl/AccessControl.o \
|
|
p25/data/DataBlock.o \
|
|
p25/data/DataHeader.o \
|
|
p25/data/LowSpeedData.o \
|
|
p25/dfsi/LC.o \
|
|
p25/dfsi/packet/DFSITrunk.o \
|
|
p25/dfsi/packet/DFSIVoice.o \
|
|
p25/edac/Trellis.o \
|
|
p25/lc/LC.o \
|
|
p25/lc/TDULC.o \
|
|
p25/lc/TSBK.o \
|
|
p25/packet/Data.o \
|
|
p25/packet/Trunk.o \
|
|
p25/packet/Voice.o \
|
|
p25/Audio.o \
|
|
p25/Control.o \
|
|
p25/NID.o \
|
|
p25/Sync.o \
|
|
p25/P25Utils.o \
|
|
modem/port/IModemPort.o \
|
|
modem/port/ISerialPort.o \
|
|
modem/port/ModemNullPort.o \
|
|
modem/port/UARTPort.o \
|
|
modem/port/PseudoPTYPort.o \
|
|
modem/port/UDPPort.o \
|
|
modem/Modem.o \
|
|
network/UDPSocket.o \
|
|
network/RemoteControl.o \
|
|
network/BaseNetwork.o \
|
|
network/Network.o \
|
|
yaml/Yaml.o \
|
|
host/calibrate/Console.o \
|
|
host/calibrate/HostCal.o \
|
|
host/setup/HostSetup.o \
|
|
host/Host.o \
|
|
Log.o \
|
|
Mutex.o \
|
|
Thread.o \
|
|
Timer.o \
|
|
StopWatch.o \
|
|
Utils.o \
|
|
HostMain.o
|
|
CMD_BIN = dvmcmd
|
|
CMD_OBJECTS = \
|
|
remote/RemoteCommand.cmd.o \
|
|
edac/SHA256.cmd.o \
|
|
network/UDPSocket.cmd.o \
|
|
Log.cmd.o
|
|
|
|
.PHONY: dvmhost dvmcmd all strip clean install dpkg tarball
|
|
|
|
all: dvmhost dvmcmd
|
|
dvmhost: $(HOST_OBJECTS)
|
|
$($(ARCH)CXX) $(HOST_OBJECTS) $(CFLAGS) $(HSTFLAGS) $(GITFLAGS) $(LIBS) -o $(HOST_BIN)
|
|
dvmcmd: $(CMD_OBJECTS)
|
|
$($(ARCH)CXX) $(CMD_OBJECTS) $(GITFLAGS) $(CFLAGS) $(CMDFLAGS) $(LIBS) -o $(CMD_BIN)
|
|
%.o: %.cpp
|
|
$($(ARCH)CXX) $(CFLAGS) $(HSTFLAGS) $(GITFLAGS) -c -o $@ $<
|
|
%.cmd.o: %.cpp
|
|
$($(ARCH)CXX) $(CFLAGS) $(HSTFLAGS) $(CMDFLAGS) $(GITFLAGS) -c -o $@ $<
|
|
strip:
|
|
-$($(ARCH)STRIP) $(HOST_BIN)
|
|
-$($(ARCH)STRIP) $(CMD_BIN)
|
|
clean:
|
|
$(RM) $(HOST_BIN) $(HOST_OBJECTS) $(CMD_BIN) $(CMD_OBJECTS) *.o *.d *.bak *~
|
|
$(RM) -r dpkg_build tar_build
|
|
$(RM) dvmhost_1.0.0* dvmhost-dbgsym*.deb
|
|
|
|
install: all
|
|
mkdir -p /opt/dvm/bin || true
|
|
install -m 755 $(HOST_BIN) /opt/dvm/bin/
|
|
install -m 755 $(CMD_BIN) /opt/dvm/bin/
|
|
mkdir -p /opt/dvm || true
|
|
install -m 644 config.example.yml /opt/dvm/config.yml
|
|
install -m 644 iden_table.dat /opt/dvm/iden_table.dat
|
|
install -m 644 RSSI.dat /opt/dvm/RSSI.dat
|
|
install -m 644 rid_acl.example.dat /opt/dvm/rid_acl.dat
|
|
install -m 644 tg_acl.example.dat /opt/dvm/tg_acl.dat
|
|
install -m 755 start-dvm.sh /opt/dvm
|
|
install -m 755 stop-dvm.sh /opt/dvm
|
|
install -m 755 dvm-watchdog.sh /opt/dvm
|
|
install -m 755 stop-watchdog.sh /opt/dvm
|
|
sed -i 's/filePath: ./filePath: \/opt\/dvm\/log\//' /opt/dvm/config.yml
|
|
sed -i 's/activityFilePath: ./activityFilePath: \/opt\/dvm\/log\//' /opt/dvm/config.yml
|
|
sed -i 's/file: iden_table.dat/file: \/opt\/dvm\/iden_table.dat/' /opt/dvm/config.yml
|
|
sed -i 's/file: rid_acl.dat/file: \/opt\/dvm\/rid_acl.dat/' /opt/dvm/config.yml
|
|
sed -i 's/file: tg_acl.dat/file: \/opt\/dvm\/tg_acl.dat/' /opt/dvm/config.yml
|
|
mkdir -p /opt/dvm/log || true
|
|
|
|
dpkg: clean
|
|
which debuild || (echo "debuild is missing? Is 'devscripts' package installed?"; exit 1)
|
|
tar -caf ../dvmhost_1.0.0.orig.tar.gz --exclude=.git --exclude=.gitattributes --exclude=.gitignore --exclude=.vscode -v .
|
|
mv ../dvmhost_1.0.0.orig.tar.gz .
|
|
mkdir -p dpkg_build
|
|
cd dpkg_build; tar xvf ../dvmhost_1.0.0.orig.tar.gz .; debuild -us -uc
|
|
tarball: clean dvmhost dvmcmd strip
|
|
mkdir -p tar_build/dvm
|
|
mkdir -p tar_build/dvm/bin
|
|
cp -v $(HOST_BIN) tar_build/dvm/bin
|
|
cp -v $(CMD_BIN) tar_build/dvm/bin
|
|
cp *.sh tar_build/dvm
|
|
chmod +x tar_build/dvm/*.sh
|
|
cp -v config*.yml tar_build/dvm
|
|
cp -v *.dat tar_build/dvm
|
|
cd tar_build; tar czvf ../dvmhost_1.0.0$(TAR_ARCH).tar.gz *
|
|
|
|
install-service: install
|
|
@useradd --user-group -M --system dvmhost --shell /bin/false || true
|
|
@usermod --groups dialout --append dvmhost || true
|
|
@chown dvmhost:dvmhost /opt/dvm/config.yml
|
|
@chown dvmhost:dvmhost /opt/dvm/iden_table.dat
|
|
@chown dvmhost:dvmhost /opt/dvm/RSSI.dat
|
|
@chown dvmhost:dvmhost /opt/dvm/rid_acl.dat
|
|
@chown dvmhost:dvmhost /opt/dvm/tg_acl.dat
|
|
@chown dvmhost:dvmhost /opt/dvm/log
|
|
@cp ./linux/dvmhost.service /lib/systemd/system/
|
|
|
|
uninstall-service:
|
|
@rm -f /lib/systemd/system/dvmhost.service || true
|