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.
156 lines
4.9 KiB
156 lines
4.9 KiB
#
|
|
# Copyright (C) 2021 by Geoffrey Merck F4FXL / KC3FRA
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
#
|
|
|
|
export BIN_DIR=/usr/local/bin
|
|
export CFG_DIR=/usr/local/etc/
|
|
export DATA_DIR=/usr/local/share/dstargateway.d/
|
|
export LOG_DIR=/var/log/dstargateway/
|
|
|
|
ifeq ($(ENABLE_DEBUG), 1)
|
|
# choose this if you want debugging help
|
|
export CPPFLAGS=-g -rdynamic -DBOOST_STACKTRACE_USE_ADDR2LINE -DDEBUG_DSTARGW -no-pie -fno-pie -ggdb -W -Wall -Werror -std=c++17
|
|
export LDFLAGS=-ldl -no-pie -fno-pie
|
|
else
|
|
# or, you can choose this for a much smaller executable without debugging help
|
|
export CPPFLAGS=-W -O3 -Wall -Werror -std=c++17
|
|
endif
|
|
|
|
export CC=g++
|
|
export LDFLAGS+= -lcurl -pthread
|
|
|
|
ifeq ($(USE_GPSD), 1)
|
|
export CPPFLAGS+= -DUSE_GPSD
|
|
export LDFLAGS+= -lgps
|
|
endif
|
|
|
|
.PHONY: all
|
|
all: DStarGateway/dstargateway DGWRemoteControl/dgwremotecontrol DGWTextTransmit/dgwtexttransmit DGWTimeServer/dgwtimeserver DGWVoiceTransmit/dgwvoicetransmit #tests
|
|
|
|
APRS/APRS.a: BaseCommon/BaseCommon.a FORCE
|
|
$(MAKE) -C APRS
|
|
|
|
Common/Common.a: VersionInfo/GitVersion.h APRS/APRS.a BaseCommon/BaseCommon.a FORCE
|
|
$(MAKE) -C Common
|
|
|
|
BaseCommon/BaseCommon.a: FORCE
|
|
$(MAKE) -C BaseCommon
|
|
|
|
DStarBase/DStarBase.a: BaseCommon/BaseCommon.a FORCE
|
|
$(MAKE) -C DStarBase
|
|
|
|
DStarGateway/dstargateway : VersionInfo/GitVersion.h $(OBJS) APRS/APRS.a Common/Common.a DStarBase/DStarBase.a IRCDDB/IRCDDB.a BaseCommon/BaseCommon.a FORCE
|
|
$(MAKE) -C DStarGateway
|
|
|
|
DGWRemoteControl/dgwremotecontrol: VersionInfo/GitVersion.h $(OBJS) DStarBase/DStarBase.a BaseCommon/BaseCommon.a FORCE
|
|
$(MAKE) -C DGWRemoteControl
|
|
|
|
DGWTextTransmit/dgwtexttransmit: VersionInfo/GitVersion.h $(OBJS) DStarBase/DStarBase.a BaseCommon/BaseCommon.a FORCE
|
|
$(MAKE) -C DGWTextTransmit
|
|
|
|
DGWTimeServer/dgwtimeserver: VersionInfo/GitVersion.h $(OBJS) DStarBase/DStarBase.a BaseCommon/BaseCommon.a FORCE
|
|
$(MAKE) -C DGWTimeServer
|
|
|
|
DGWVoiceTransmit/dgwvoicetransmit: VersionInfo/GitVersion.h $(OBJS) DStarBase/DStarBase.a BaseCommon/BaseCommon.a FORCE
|
|
$(MAKE) -C DGWVoiceTransmit
|
|
|
|
IRCDDB/IRCDDB.a: VersionInfo/GitVersion.h BaseCommon/BaseCommon.a FORCE
|
|
$(MAKE) -C IRCDDB
|
|
|
|
VersionInfo/GitVersion.h: FORCE
|
|
$(MAKE) -C VersionInfo
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
$(MAKE) -C Tests clean
|
|
$(MAKE) -C APRS clean
|
|
$(MAKE) -C BaseCommon clean
|
|
$(MAKE) -C Common clean
|
|
$(MAKE) -C DGWRemoteControl clean
|
|
$(MAKE) -C DGWTextTransmit clean
|
|
$(MAKE) -C DGWTimeServer clean
|
|
$(MAKE) -C DGWVoiceTransmit clean
|
|
$(MAKE) -C DStarBase clean
|
|
$(MAKE) -C DStarGateway clean
|
|
$(MAKE) -C IRCDDB clean
|
|
$(MAKE) -C VersionInfo
|
|
|
|
-include $(DEPS)
|
|
|
|
# install, uninstall and removehostfiles need root priviledges
|
|
.PHONY: newhostfiles
|
|
newhostfiles :
|
|
@echo "Fetching new host files"
|
|
@mkdir -p $(DATA_DIR)
|
|
@wget http://www.pistar.uk/downloads/DExtra_Hosts.txt -nv -O $(DATA_DIR)/DExtra_Hosts.txt
|
|
@wget http://www.pistar.uk/downloads/DCS_Hosts.txt -nv -O $(DATA_DIR)/DCS_Hosts.txt
|
|
@wget http://www.pistar.uk/downloads/DPlus_Hosts.txt -nv -O $(DATA_DIR)/DPlus_Hosts.txt
|
|
|
|
.PHONY: install
|
|
install : DStarGateway/dstargateway DGWRemoteControl/dgwremotecontrol
|
|
# install accessories
|
|
$(MAKE) -C DGWRemoteControl install
|
|
$(MAKE) -C DGWTextTransmit install
|
|
$(MAKE) -C DGWTimeServer install
|
|
$(MAKE) -C DGWVoiceTransmit install
|
|
|
|
# create user for daemon
|
|
@useradd --user-group -M --system dstar --shell /bin/false || true
|
|
|
|
# Create directories
|
|
@mkdir -p $(CFG_DIR)
|
|
@mkdir -p $(DATA_DIR)
|
|
@mkdir -p $(BIN_DIR)
|
|
@mkdir -p $(LOG_DIR)
|
|
@chown dstar:dstar $(LOG_DIR)
|
|
@chown dstar:dstar $(DATA_DIR)
|
|
|
|
# Install data
|
|
$(MAKE) -C Data install
|
|
@chown -R dstar:dstar $(DATA_DIR)
|
|
|
|
# install services executables
|
|
$(MAKE) -C DStarGateway install
|
|
|
|
.PHONY: uninstall
|
|
uninstall :
|
|
systemctl stop dstargateway.service || true
|
|
systemctl disable dstargateway.service || true
|
|
@rm -f /lib/systemd/system/dstargateway.service
|
|
@systemctl daemon-reload
|
|
@rm -f $(BIN_DIR)/dstargateway
|
|
# @rm -f $(CFG_DIR)/dstargateway.cfg
|
|
# Only remove folder content
|
|
@rm -f $(DATA_DIR)/*
|
|
|
|
.PHONY: removehostfiles
|
|
removehostfiles :
|
|
@rm -f $(DATA_DIR)/DExtra_Hosts.txt
|
|
@rm -f $(DATA_DIR)/DCS_Hosts.txt
|
|
@rm -f $(DATA_DIR)/DPlus_Hosts.txt
|
|
|
|
.PHONY tests:
|
|
tests : VersionInfo/GitVersion.h $(OBJS) APRS/APRS.a Common/Common.a DStarBase/DStarBase.a IRCDDB/IRCDDB.a BaseCommon/BaseCommon.a FORCE
|
|
@$(MAKE) -C Tests dstargateway_tests
|
|
|
|
.PHONY run-tests:
|
|
run-tests: tests
|
|
@$(MAKE) -C Tests run-tests
|
|
|
|
FORCE:
|
|
@true
|