#
#           File: Makefile
#     Created By: Keith Edwin Smith
#        Created: Mon Dec 12 19:47:36 2022
#  Last Modified: 2023-01-08 08:41:29
#

CC=gcc -g -Werror

# Needed Libraries
LIBS=
LIBS+= /usr/lib/libax.a
LIBS+= ../hidrelay/libhidrelay.a -lhidapi-hidraw
LIBS+= -lmodbus
LIBS+= -lpq

HFILES=\
	panelmonitor.h\
	relay.h

OFILES=\
	add_table_entry.o\
	check_periodic.o\
	current_timestamptz.o\
	db_open.o\
	end_program.o\
	parse_args.o\
	parse_config.o\
	parse_config_relay.o\
	panelmonitor.o\
	relay_check.o\
	reset_check.o\
	sensor_calibrate.o\
	sensor_create.o\
	sensor_open.o\
	sensor_poll_all.o\
	sensor_poll_id.o\
	sensor_reset_energy.o\
	sensor_set_id.o\
	show_config.o\
	usage.o

panelmonitor: $(OFILES)
	$(CC) -o $@ $^ $(LIBS)

$(OFILES): $(HFILES)
clean:
	rm -f *.o

distclean: clean
	rm -f panelmonitor

#	- [ ! -f /etc/panelmonitor/panelmonitor.cfg ] &&
install: panelmonitor
	- [ ! -d /etc/panelmonitor ] && sudo mkdir /etc/panelmonitor
	sudo cp ./panelmonitor.cfg /etc/panelmonitor/
	- sudo systemctl stop panelmonitor
	- [ -x /usr/bin/panelmonitor ] && sudo mv /usr/bin/panelmonitor /usr/bin/panelmonitor.old
	sudo cp panelmonitor /usr/bin/panelmonitor
	sudo strip /usr/bin/panelmonitor
	sudo chmod 0775 /usr/bin/panelmonitor
	sudo cp panelmonitor.service /lib/systemd/system/
	sudo systemctl daemon-reload
	sudo systemctl start panelmonitor
	sudo rm -f /usr/bin/panelmonitor.old
