Files

61 lines
1.8 KiB
Makefile

CC = g++
CFLAGS = -DSPDLOG_FMT_EXTERNAL -Wall -Wextra -std=c++20 -O2 -Iinclude/ -MMD
ELECTRICITY_LOGGER_LFLAGS = -lsqlite3 -lspdlog -lfmt
SOLAR_LOGGER_LFLAGS = -lsqlite3 -lcurl -lspdlog -lfmt
SOLAR_LOGGER_CPPS = $(shell find src/solar-logger/ -name *.cpp)
SOLAR_LOGGER_OBJS = $(patsubst src/%.cpp, build/%.o, ${SOLAR_LOGGER_CPPS})
SOLAR_LOGGER_DEPS = $(patsubst src/%.cpp, build/%.d, ${SOLAR_LOGGER_CPPS})
ELECT_LOGGER_CPPS = $(shell find src/electricity-logger/ -name *.cpp)
ELECT_LOGGER_OBJS = $(patsubst src/%.cpp, build/%.o, ${ELECT_LOGGER_CPPS})
ELECT_LOGGER_DEPS = $(patsubst src/%.cpp, build/%.d, ${ELECT_LOGGER_CPPS})
SOLAR_LOGGER_BINARY_PATH = bin/solar-logger
ELECT_LOGGER_BINARY_PATH = bin/electricity-logger
INSTALL_PATH = /usr/local/bin/
# Test variables
SOLAR_TEST_DATABASE = solarpaneloutput.db
all: ${SOLAR_LOGGER_BINARY_PATH} ${ELECT_LOGGER_BINARY_PATH}
clean:
-rm -rf bin/* build/*
check-solar-logger: ${SOLAR_LOGGER_BINARY_PATH} ${SOLAR_TEST_DATABASE}
./${SOLAR_LOGGER_BINARY_PATH} -d ${SOLAR_TEST_DATABASE} -u "http://192.168.2.26/home.cgi"
check-electricity-logger: ${ELECT_LOGGER_BINARY_PATH}
./${ELECT_LOGGER_BINARY_PATH} -d /dev/ttyUSB0 -c additional_column_value
install: install-loggers
install-loggers: ${SOLAR_LOGGER_BINARY_PATH} ${ELECT_LOGGER_BINARY_PATH}
cp -uv ${SOLAR_LOGGER_BINARY_PATH} ${INSTALL_PATH}
cp -uv ${ELECT_LOGGER_BINARY_PATH} ${INSTALL_PATH}
.PHONY: all \
clean \
check-solar-logger \
install \
install-loggers
${SOLAR_TEST_DATABASE}:
./script/createdb.sh ${SOLAR_TEST_DATABASE}
${SOLAR_LOGGER_BINARY_PATH}: ${SOLAR_LOGGER_OBJS}
mkdir -p ${@D}
${CC} $^ ${SOLAR_LOGGER_LFLAGS} -o $@
${ELECT_LOGGER_BINARY_PATH}: ${ELECT_LOGGER_OBJS}
mkdir -p ${@D}
${CC} $^ ${ELECTRICITY_LOGGER_LFLAGS} -o $@
build/%.o: src/%.cpp
mkdir -p ${@D}
${CC} ${CFLAGS} -c $< -o $@
-include ${SOLAR_LOGGER_DEPS}
-include ${ELECT_LOGGER_DEPS}