ircDDBGateway/Makefile
2023-07-21 11:44:45 +01:00

135 lines
4 KiB
Makefile

export BUILD ?= debug
ifeq ($(TARGET), opendv)
export DATADIR ?= /usr/share/opendv
export LOGDIR ?= /var/log/opendv
export CONFDIR ?= /etc
export BINDIR ?= /usr/sbin
else
export DATADIR ?= /usr/share/ircddbgateway
export LOGDIR ?= /var/log
export CONFDIR ?= /etc
export BINDIR ?= /usr/bin
endif
# Add -DDCS_LINK to the end of the CFLAGS line below to add DCS linking to StarNet
# Add -DDEXTRA_LINK to the end of the CFLAGS line below to add DExtra linking to StarNet
# Add -DUSE_GPSD to the end of the CFLAGS line to enable the use of gpsd, and add -lgps to
# end of the LIBS line.
DEBUGFLAGS := -g -D_DEBUG
RELEASEFLAGS := -DNDEBUG -DwxDEBUG_LEVEL=0
export CXX := $(shell wx-config --cxx)
export CFLAGS := -O2 -Wall $(shell wx-config --cxxflags) -DLOG_DIR='"$(LOGDIR)"' -DCONF_DIR='"$(CONFDIR)"' -DDATA_DIR='"$(DATADIR)"'
ifeq ($(BUILD), debug)
export CFLAGS := $(CFLAGS) $(DEBUGFLAGS)
else ifeq ($(BUILD), release)
export CFLAGS := $(CFLAGS) $(RELEASEFLAGS)
endif
export LIBS := $(shell wx-config --libs base,net) -lmosquitto
export LDFLAGS :=
.PHONY: all
all: ircDDBGateway/ircddbgatewayd APRSTransmit/aprstransmitd RemoteControl/remotecontrold \
TextTransmit/texttransmitd TimerControl/timercontrold TimeServer/timeserverd VoiceTransmit/voicetransmitd
ircDDBGateway/ircddbgatewayd: GitVersion.h Common/Common.a ircDDB/IRCDDB.a force
$(MAKE) -C ircDDBGateway
APRSTransmit/aprstransmitd: Common/Common.a force
$(MAKE) -C APRSTransmit
RemoteControl/remotecontrold: Common/Common.a force
$(MAKE) -C RemoteControl
TextTransmit/texttransmitd: Common/Common.a force
$(MAKE) -C TextTransmit
TimerControl/timercontrold: Common/Common.a force
$(MAKE) -C TimerControl
TimeServer/timeserverd: Common/Common.a force
$(MAKE) -C TimeServer
VoiceTransmit/voicetransmitd: Common/Common.a force
$(MAKE) -C VoiceTransmit
Common/Common.a: force
$(MAKE) -C Common
ircDDB/IRCDDB.a: force
$(MAKE) -C ircDDB
Common/Common.a: GitVersion.h
.PHONY: GitVersion.h
# Export the current git version if the index file exists, else 000...
GitVersion.h:
ifneq ("$(wildcard .git/index)","")
echo "const wxChar *gitversion = wxT(\"$(shell git rev-parse HEAD)\");" > $@
else
echo "const wxChar *gitversion = wxT(\"0000000000000000000000000000000000000000\");" > $@
endif
.PHONY: installdirs
installdirs: force
/bin/mkdir -p $(DESTDIR)$(DATADIR) $(DESTDIR)$(LOGDIR) $(DESTDIR)$(CONFDIR) $(DESTDIR)$(BINDIR)
.PHONY: install
install: all installdirs
ifeq ($(TARGET), opendv)
useradd --user-group -M --system opendv --shell /bin/false || true
# Add the opendv user to the audio group so that it can open audio
# devices when using the audio based drivers such as the Sound Card
# one. Maybe this should be moved to DStarRepeater instead ...
usermod --groups audio --append opendv || true
usermod --groups dialout --append opendv || true
usermod --groups gpio --append opendv || true
mkdir /var/log/opendv || true
chown opendv:opendv /var/log/opendv
endif
$(MAKE) -C Data install
$(MAKE) -C APRSTransmit install
$(MAKE) -C ircDDBGateway install
$(MAKE) -C RemoteControl install
$(MAKE) -C TextTransmit install
$(MAKE) -C TimerControl install
$(MAKE) -C TimeServer install
$(MAKE) -C VoiceTransmit install
.PHONY: clean
clean:
$(MAKE) -C Common clean
$(MAKE) -C ircDDB clean
$(MAKE) -C APRSTransmit clean
$(MAKE) -C ircDDBGateway clean
$(MAKE) -C RemoteControl clean
$(MAKE) -C TextTransmit clean
$(MAKE) -C TimerControl clean
$(MAKE) -C TimeServer clean
$(MAKE) -C VoiceTransmit clean
$(MAKE) -C ircDDBGatewayConfig clean
.PHONY: uninstall
uninstall:
ifeq ($(TARGET), opendv)
userdel opendv || true
rm -r /var/log/opendv || true
rm $(DESTDIR)/etc/systemd/system/ircddbgatewayd.service
endif
rm -r $(DESTDIR)$(DATADIR) || true
rm $(DESTDIR)$(BINDIR)/aprstransmitd || true
rm $(DESTDIR)$(BINDIR)/ircddbgatewayd || true
rm $(DESTDIR)$(BINDIR)/remotecontrold || true
rm $(DESTDIR)$(BINDIR)/texttransmitd || true
rm $(DESTDIR)$(BINDIR)/timercontrold || true
rm $(DESTDIR)$(BINDIR)/timeserverd || true
@echo "*** NOTE: Leaving /etc/ircddbgateway in place ***"
.PHONY: force
force :
@true