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_GPS to the end of the CFLAGS line to enable the use of gpsd, and add -lgps to
# end of the LIBS and GUILIBS lines.

export CXX     := $(shell wx-config --cxx)
export CFLAGS  := -O2 -Wall $(shell wx-config --cxxflags) -DLOG_DIR='$(LOGDIR)' -DCONF_DIR='$(CONFDIR)' -DDATA_DIR='$(DATADIR)'
export GUILIBS := $(shell wx-config --libs adv,core,base)
export LIBS    := $(shell wx-config --libs base,net) -lmosquitto
export LDFLAGS := 

.PHONY: all
all:	ircDDBGateway/ircddbgateway ircDDBGatewayConfig/ircddbgatewayconfig APRSTransmit/aprstransmitd RemoteControl/remotecontrol \
	TextTransmit/texttransmitd TimerControl/timercontrol TimeServer/timeserver VoiceTransmit/voicetransmitd

ircDDBGateway/ircddbgateway:	GUICommon/GUICommon.a Common/Common.a ircDDB/IRCDDB.a force
	$(MAKE) -C ircDDBGateway -f MakefileGUI

ircDDBGatewayConfig/ircddbgatewayconfig:	GUICommon/GUICommon.a Common/Common.a force
	$(MAKE) -C ircDDBGatewayConfig

APRSTransmit/aprstransmitd:	Common/Common.a force
	$(MAKE) -C APRSTransmit

RemoteControl/remotecontrol:	Common/Common.a force
	$(MAKE) -C RemoteControl -f MakefileGUI

TextTransmit/texttransmitd:	Common/Common.a force
	$(MAKE) -C TextTransmit

TimerControl/timercontrol:	Common/Common.a GUICommon/GUICommon.a force
	$(MAKE) -C TimerControl -f MakefileGUI

TimeServer/timeserver:	Common/Common.a GUICommon/GUICommon.a force
	$(MAKE) -C TimeServer -f MakefileGUI

VoiceTransmit/voicetransmitd:	Common/Common.a force
	$(MAKE) -C VoiceTransmit

GUICommon/GUICommon.a: force
	$(MAKE) -C GUICommon

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: install
install:	all
	$(MAKE) -C Data install
	$(MAKE) -C APRSTransmit install
	$(MAKE) -C ircDDBGateway -f MakefileGUI install
	$(MAKE) -C RemoteControl -f MakefileGUI install
	$(MAKE) -C TextTransmit install
	$(MAKE) -C TimerControl -f MakefileGUI install
	$(MAKE) -C TimeServer -f MakefileGUI install
	$(MAKE) -C VoiceTransmit install
	$(MAKE) -C ircDDBGatewayConfig install

.PHONY: clean
clean:
	$(MAKE) -C Common clean
	$(MAKE) -C ircDDB clean
	$(MAKE) -C GUICommon clean
	$(MAKE) -C APRSTransmit clean
	$(MAKE) -C ircDDBGateway -f MakefileGUI clean
	$(MAKE) -C RemoteControl -f MakefileGUI clean
	$(MAKE) -C TextTransmit clean
	$(MAKE) -C TimerControl -f MakefileGUI clean
	$(MAKE) -C TimeServer -f MakefileGUI clean
	$(MAKE) -C VoiceTransmit clean
	$(MAKE) -C ircDDBGatewayConfig clean

.PHONY: force
force:
	true;
