CC=gcc
SDIR=src
CRONDIR=cron
INSTALL=/usr/bin/install -c
MODBUSLOGCFLAGS=-I/usr/include/modbus
MODBUSLOGLIBS=-lmodbus -lconfig
MODBUSLOGBINDIR=/usr/sbin
MODBUSLOGCFGDIR=/etc
MODBUSLOGLOGDIR=/var/modbuslog
MODBUSLOGCRONDIR=/etc/cron.d
FTPUPLOADCFLAGS=
FTPUPLOADLIBS=-lconfig
FTPUPLOADCFGDIR=/etc
FTPUPLOADBINDIR=/usr/bin
LIGHTINGCONTROLCFLAGS=
LIGHTINGCONTROLLIBS=-lconfig
LIGHTINGCONTROLBINDIR=/usr/sbin
LIGHTINGCONTROLCFGDIR=/etc
LIGHTINGCONTROLLOGDIR=
LIGHTINGCONTROLCRONDIR=/etc/cron.d
PHIDGETCONTROLCFLAGS=
PHIDGETCONTROLLIBS=-lconfig -lphidget21
PHIDGETCONTROLBINDIR=/usr/sbin
PHIDGETCONTROLCFGDIR=/etc
PHIDGETCONTROLLOGDIR=/var/phidgetcontrol
PHIDGETCONTROLCRONDIR=/etc/cron.d
PHPSDIR=php
WWWDIR=/var/www

GITTAGFLAG := -D'VERSION_STRING="$(shell LC_ALL=C git describe --tags)"'
MODBUSLOGCFLAGS += $(GITTAGFLAG)
FTPUPLOADCFLAGS += $(GITTAGFLAG)
LIGHTINGCONTROLCFLAGS += $(GITTAGFLAG)
PHIDGETCONTROLCFLAGS += $(GITTAGFLAG)

all:	modbuslog ftpupload lightingcontrol phidgetcontrol weatherstation_test

clean:
	rm -f $(SDIR)/modbuslog
	rm -f $(SDIR)/ftphelper
	rm -f $(SDIR)/lightingcontrol
	rm -f $(SDIR)/phidgetcontrol
	rm -f $(SDIR)/weatherstation_test

modbuslog:	$(SDIR)/modbuslog.c
	$(CC) -o $(SDIR)/$@ $^ $(MODBUSLOGCFLAGS) $(MODBUSLOGLIBS)

ftpupload:	$(SDIR)/ftphelper.c
	$(CC) -o $(SDIR)/ftphelper $^ $(FTPUPLOADCFLAGS) $(FTPUPLOADLIBS)

lightingcontrol:	$(SDIR)/lightingcontrol.c
	$(CC) -o $(SDIR)/$@ $^ $(LIGHTINGCONTROLCFLAGS) $(LIGHTINGCONTROLLIBS)

phidgetcontrol:	$(SDIR)/phidgetcontrol.c
	$(CC) -o $(SDIR)/$@ $^ $(PHIDGETCONTROLCFLAGS) $(PHIDGETCONTROLLIBS)

weatherstation_test:	$(SDIR)/weatherstation_test.c
	$(CC) -o $(SDIR)/$@ $^ $(MODBUSLOGCFLAGS) $(MODBUSLOGLIBS)

install_modbuslog:
	$(INSTALL) $(SDIR)/modbuslog $(MODBUSLOGBINDIR)/modbuslog
	test -f $(MODBUSLOGCFGDIR)/modbuslog.cfg || $(INSTALL) -m 644 $(SDIR)/modbuslog.cfg $(MODBUSLOGCFGDIR)/modbuslog.cfg
	@if [ ! -d $(MODBUSLOGLOGDIR) ]; \
	then \
		mkdir $(MODBUSLOGLOGDIR); \
		mkdir $(MODBUSLOGLOGDIR)/interval; \
		mkdir $(MODBUSLOGLOGDIR)/archive; \
	fi
	test -f $(MODBUSLOGLOGDIR)/interval/interval.txt || $(INSTALL) -m 644 $(SDIR)/interval.txt $(MODBUSLOGLOGDIR)/interval/interval.txt
	test -f $(MODBUSLOGCRONDIR)/modbuslog || $(INSTALL) -m 644 $(CRONDIR)/modbuslog $(MODBUSLOGCRONDIR)/modbuslog
	$(INSTALL) $(PHPSDIR)/readfile.php $(WWWDIR)/readfile.php

install_ftpupload:
	test -f $(CFGDIR)/ftpupload.cfg || $(INSTALL) -m 644 $(SDIR)/ftpupload.cfg $(FTPUPLOADCFGDIR)/ftpupload.cfg
	$(INSTALL) $(SDIR)/ftpupload $(FTPUPLOADBINDIR)/ftpupload
	$(INSTALL) $(SDIR)/ftphelper $(FTPUPLOADBINDIR)/ftphelper

install_lightingcontrol:
	$(INSTALL) $(SDIR)/lightingcontrol $(LIGHTINGCONTROLDIR)/lightingcontrol
	test -f $(LIGHTINGCONTROLCFGDIR)/lightingcontrol.cfg || $(INSTALL) -m 644 $(SDIR)/lightingcontrol.cfg $(LIGHTINGCONTROLCFGDIR)/lightingcontrol.cfg
	test -f $(LIGHTINGCONTROLCRONDIR)/lightingcontrol || $(INSTALL) -m 644 $(CRONDIR)/lightingcontrol $(LIGHTINGCONTROLCRONDIR)/lightingcontrol

install_phidgetcontrol:
	$(INSTALL) $(SDIR)/phidgetcontrol $(PHIDGETCONTROLBINDIR)/phidgetcontrol
	test -f $(PHIDGETCONTROLCFGDIR)/phidgetcontrol.cfg || $(INSTALL) -m 644 $(SDIR)/phidgetcontrol.cfg $(PHIDGETCONTROLCFGDIR)/phidgetcontrol.cfg
	@if [ ! -d $(PHIDGETCONTROLLOGDIR) ]; \
	then \
		mkdir $(PHIDGETCONTROLLOGDIR); \
		mkdir $(PHIDGETCONTROLLOGDIR)/interval; \
		mkdir $(PHIDGETCONTROLLOGDIR)/archive; \
	fi
	test -f $(PHIDGETCONTROLCRONDIR)/phidgetcontrol || $(INSTALL) -m 644 $(CRONDIR)/phidgetcontrol $(PHIDGETCONTROLCRONDIR)/phidgetcontrol

installall:	install_modbuslog install_ftpupload install_lightingcontrol install_phidgetcontrol

install:	all installall