mirror of https://github.com/sfeakes/AqualinkD.git
Update 3.2.6
parent
322924617d
commit
7a27d80b73
|
@ -0,0 +1,66 @@
|
|||
#####################################
|
||||
#
|
||||
# Build container
|
||||
# The most basic build for aqualinkd latest version
|
||||
#####################################
|
||||
|
||||
FROM debian:bookworm AS aqualinkd-build
|
||||
|
||||
#ARG AQUALINKD_VERSION=2.3.3
|
||||
ARG AQUALINKD_VERSION
|
||||
ARG AQUALINKD_SOURCE
|
||||
|
||||
RUN test -n "$AQUALINKD_VERSION" || (echo "AQUALINKD_VERSION not set" && false)
|
||||
RUN test -n "$AQUALINKD_SOURCE" || (echo "AQUALINKD_SOURCE not set" && false)
|
||||
|
||||
#VOLUME ["/aqualinkd-build"]
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get -y install build-essential libsystemd-dev
|
||||
|
||||
# Seup working dir
|
||||
RUN mkdir /home/AqualinkD
|
||||
WORKDIR /home/AqualinkD
|
||||
|
||||
# Get latest release
|
||||
RUN curl -sL $(curl -s https://api.github.com/repos/sfeakes/AqualinkD/releases/latest | grep "tarball_url" | cut -d'"' -f4) | tar xz --strip-components=1
|
||||
|
||||
# Build aqualinkd
|
||||
RUN make clean && \
|
||||
make container
|
||||
|
||||
#####################################
|
||||
#
|
||||
# Runtime container
|
||||
#
|
||||
#####################################
|
||||
|
||||
FROM debian:bookworm-slim AS aqualinkd
|
||||
|
||||
#ARG AQUALINKD_VERSION
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -y cron curl && \
|
||||
apt-get clean
|
||||
|
||||
# Set cron to read local.d
|
||||
RUN sed -i '/EXTRA_OPTS=.-l./s/^#//g' /etc/default/cron
|
||||
|
||||
# Add Open Container Initiative (OCI) annotations.
|
||||
# See: https://github.com/opencontainers/image-spec/blob/main/annotations.md
|
||||
|
||||
LABEL org.opencontainers.image.title="AqualinkD"
|
||||
LABEL org.opencontainers.image.url="https://hub.docker.com/repository/docker/sfeakes/aqualinkd/general"
|
||||
LABEL org.opencontainers.image.source="https://github.com/sfeakes/AqualinkD"
|
||||
LABEL org.opencontainers.image.documentation="https://github.com/sfeakes/AqualinkD"
|
||||
#LABEL org.opencontainers.image.version=$AQUALINKD_VERSION
|
||||
|
||||
|
||||
COPY --from=aqualinkd-build /home/AqualinkD/release/aqualinkd /usr/local/bin/aqualinkd
|
||||
COPY --from=aqualinkd-build /home/AqualinkD/release/serial_logger /usr/local/bin/serial_logger
|
||||
COPY --from=aqualinkd-build /home/AqualinkD/web/ /var/www/aqualinkd/
|
||||
COPY --from=aqualinkd-build /home/AqualinkD/release/aqualinkd.conf /etc/aqualinkd.conf
|
||||
#COPY --from=aqualinkd-build /home/AqualinkD/docker/aqualinkd-docker.cmd /usr/local/bin/aqualinkd-docker
|
||||
RUN curl -s -o /usr/local/bin/aqualinkd-docker https://raw.githubusercontent.com/sfeakes/AqualinkD/master/extras/aqualinkd-docker.cmd
|
||||
|
||||
CMD ["sh", "-c", "/usr/local/bin/aqualinkd-docker"]
|
|
@ -37,7 +37,10 @@ else
|
|||
AQUA_CONF="/etc/aqualinkd.conf"
|
||||
fi
|
||||
|
||||
|
||||
# See if we have any execpre files to run.
|
||||
if [[ -x "$CONFDIR/aqexec-pre.sh" ]]; then
|
||||
"$CONFDIR/aqexec-pre.sh"
|
||||
fi
|
||||
|
||||
# Start cron
|
||||
service cron start
|
|
@ -2,7 +2,7 @@ services:
|
|||
aqualinkd:
|
||||
#image: sfeakes/aqualinkd:latest
|
||||
build:
|
||||
context: https://github.com/sfeakes/AqualinkD-Docker.git#main
|
||||
context: https://github.com/sfeakes/AqualinkD.git#main
|
||||
ports:
|
||||
- "6171:80"
|
||||
volumes:
|
337
Makefile
337
Makefile
|
@ -22,8 +22,11 @@ AQ_MANAGER =true
|
|||
# Turn off threadded net services
|
||||
AQ_NO_THREAD_NETSERVICE = false
|
||||
|
||||
# define the C compiler to use
|
||||
# define the C compiler(s) to use
|
||||
CC = gcc
|
||||
CC_ARM64 = aarch64-linux-gnu-gcc
|
||||
CC_ARMHF = arm-linux-gnueabihf-gcc
|
||||
CC_AMD64 = x86_64-linux-gnu-gcc
|
||||
|
||||
#LIBS := -lpthread -lm
|
||||
#LIBS := -l pthread -l m
|
||||
|
@ -60,16 +63,18 @@ else
|
|||
# Linux
|
||||
ifeq ($(UNAME_S),Linux)
|
||||
MKDIR = mkdir -p
|
||||
FixPath = $1
|
||||
FixPath = $1
|
||||
# Get some system information
|
||||
PI_OS_VERSION = $(shell cat /etc/os-release | grep VERSION= | cut -d\" -f2)
|
||||
$(info OS: $(PI_OS_VERSION) )
|
||||
GLIBC_VERSION = $(shell ldd --version | grep ldd)
|
||||
$(info GLIBC build with: $(GLIBC_VERSION) )
|
||||
$(info GLIBC Prefered : 2.24-11+deb9u1 2.24 )
|
||||
# PI_OS_VERSION = $(shell cat /etc/os-release | grep VERSION= | cut -d\" -f2)
|
||||
# $(info OS: $(PI_OS_VERSION) )
|
||||
# GLIBC_VERSION = $(shell ldd --version | grep ldd)
|
||||
# $(info GLIBC build with: $(GLIBC_VERSION) )
|
||||
# $(info GLIBC Prefered : 2.24-11+deb9u1 2.24 )
|
||||
endif
|
||||
# OSX
|
||||
ifeq ($(UNAME_S),Darwin)
|
||||
MKDIR = mkdir -p
|
||||
FixPath = $1
|
||||
endif
|
||||
endif
|
||||
|
||||
|
@ -139,19 +144,46 @@ OBJ_DIR := ./build
|
|||
DBG_OBJ_DIR := $(OBJ_DIR)/debug
|
||||
SL_OBJ_DIR := $(OBJ_DIR)/slog
|
||||
|
||||
OBJ_DIR_ARMHF := $(OBJ_DIR)/armhf
|
||||
OBJ_DIR_ARM64 := $(OBJ_DIR)/arm64
|
||||
SL_OBJ_DIR_ARMHF := $(OBJ_DIR_ARMHF)/slog
|
||||
SL_OBJ_DIR_ARM64 := $(OBJ_DIR_ARM64)/slog
|
||||
|
||||
# Object files
|
||||
OBJ_FILES := $(patsubst %.c,$(OBJ_DIR)/%.o,$(SRCS))
|
||||
DBG_OBJ_FILES := $(patsubst %.c,$(DBG_OBJ_DIR)/%.o,$(DBG_SRC))
|
||||
SL_OBJ_FILES := $(patsubst %.c,$(SL_OBJ_DIR)/%.o,$(SL_SRC))
|
||||
|
||||
OBJ_FILES_ARMHF := $(patsubst %.c,$(OBJ_DIR_ARMHF)/%.o,$(SRCS))
|
||||
OBJ_FILES_ARM64 := $(patsubst %.c,$(OBJ_DIR_ARM64)/%.o,$(SRCS))
|
||||
SL_OBJ_FILES_ARMHF := $(patsubst %.c,$(SL_OBJ_DIR_ARMHF)/%.o,$(SL_SRC))
|
||||
SL_OBJ_FILES_ARM64 := $(patsubst %.c,$(SL_OBJ_DIR_ARM64)/%.o,$(SL_SRC))
|
||||
#MG_OBJ_FILES := $(patsubst %.c,$(OBJ_DIR)/%.o,$(MG_SRC))
|
||||
|
||||
# define the executable file
|
||||
MAIN = ./release/aqualinkd
|
||||
SLOG = ./release/serial_logger
|
||||
DEBG = ./release/aqualinkd-debug
|
||||
|
||||
MAIN_ARM64 = ./release/aqualinkd-arm64
|
||||
MAIN_ARMHF = ./release/aqualinkd-armhf
|
||||
|
||||
SLOG_ARM64 = ./release/serial_logger-arm64
|
||||
SLOG_ARMHF = ./release/serial_logger-armhf
|
||||
#LOGR = ./release/log_reader
|
||||
#PLAY = ./release/aqualinkd-player
|
||||
|
||||
# Rules with no targets
|
||||
.PHONY: clean clean-buildfiles buildrelease release install
|
||||
|
||||
release:
|
||||
sudo docker run -it --mount type=bind,source=./,target=/build aqualinkd-releasebin make buildrelease
|
||||
$(info Binaries for release have been built)
|
||||
|
||||
# This is run inside container Dockerfile.releaseBinariies
|
||||
buildrelease: clean armhf arm64
|
||||
$(shell cd release && ln -s ./aqualinkd-armhf ./aqualinkd && ln -s ./serial_logger-armhf ./serial_logger)
|
||||
|
||||
|
||||
# Rules to pass to make.
|
||||
all: $(MAIN) $(SLOG)
|
||||
|
@ -170,14 +202,33 @@ container: $(MAIN) $(SLOG)
|
|||
$(info $(MAIN) has been compiled (** For Container use **))
|
||||
$(info $(SLOG) has been compiled (** For Container use **))
|
||||
|
||||
container-arm64: CC := $(CC_ARM64)
|
||||
container-arm64: container
|
||||
|
||||
container-amd64: CC := $(CC_AMD64)
|
||||
container-amd64: container
|
||||
|
||||
# armhf
|
||||
armhf: CC := $(CC_ARMHF)
|
||||
armhf: $(MAIN_ARMHF) $(SLOG_ARMHF)
|
||||
$(info $(MAIN_ARMHF) has been compiled)
|
||||
$(info $(SLOG_ARMHF) has been compiled)
|
||||
|
||||
# arm64
|
||||
arm64: CC := $(CC_ARM64)
|
||||
arm64: $(MAIN_ARM64) $(SLOG_ARM64)
|
||||
$(info $(MAIN_ARM64) has been compiled)
|
||||
$(info $(SLOG_ARM64) has been compiled)
|
||||
|
||||
#debug, Just change compile flags and call MAIN
|
||||
debug: CFLAGS = $(DFLAGS)
|
||||
debug: $(MAIN) $(SLOG)
|
||||
$(info $(MAIN) has been compiled (** DEBUG **))
|
||||
$(info $(SLOG) has been compiled (** DEBUG **))
|
||||
|
||||
install: $(MAIN)
|
||||
./release/install.sh
|
||||
#install: $(MAIN)
|
||||
install:
|
||||
./release/install.sh from-make
|
||||
|
||||
|
||||
# Rules to compile
|
||||
|
@ -190,9 +241,28 @@ $(DBG_OBJ_DIR)/%.o: %.c | $(DBG_OBJ_DIR)
|
|||
$(SL_OBJ_DIR)/%.o: %.c | $(SL_OBJ_DIR)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -c -o $@ $<
|
||||
|
||||
$(OBJ_DIR_ARMHF)/%.o: %.c | $(OBJ_DIR_ARMHF)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -c -o $@ $<
|
||||
|
||||
$(SL_OBJ_DIR_ARMHF)/%.o: %.c | $(SL_OBJ_DIR_ARMHF)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -c -o $@ $<
|
||||
|
||||
$(OBJ_DIR_ARM64)/%.o: %.c | $(OBJ_DIR_ARM64)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -c -o $@ $<
|
||||
|
||||
$(SL_OBJ_DIR_ARM64)/%.o: %.c | $(SL_OBJ_DIR_ARM64)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -c -o $@ $<
|
||||
|
||||
|
||||
# Rules to link
|
||||
$(MAIN): $(OBJ_FILES)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^ $(LIBS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^ $(LIBS)
|
||||
|
||||
$(MAIN_ARM64): $(OBJ_FILES_ARM64)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^ $(LIBS)
|
||||
|
||||
$(MAIN_ARMHF): $(OBJ_FILES_ARMHF)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^ $(LIBS)
|
||||
|
||||
$(DEBG): $(DBG_OBJ_FILES)
|
||||
$(CC) $(DBG_CFLAGS) $(INCLUDES) -o $@ $^ $(LIBS)
|
||||
|
@ -201,6 +271,15 @@ $(SLOG): CFLAGS := $(CFLAGS) -D SERIAL_LOGGER
|
|||
$(SLOG): $(SL_OBJ_FILES)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^ $(LIBS)
|
||||
|
||||
$(SLOG_ARMHF): CFLAGS := $(CFLAGS) -D SERIAL_LOGGER
|
||||
$(SLOG_ARMHF): $(SL_OBJ_FILES_ARMHF)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^ $(LIBS)
|
||||
|
||||
$(SLOG_ARM64): CFLAGS := $(CFLAGS) -D SERIAL_LOGGER
|
||||
$(SLOG_ARM64): $(SL_OBJ_FILES_ARM64)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $^ $(LIBS)
|
||||
|
||||
|
||||
# Rules to make object directories.
|
||||
$(OBJ_DIR):
|
||||
$(MKDIR) $(call FixPath,$@)
|
||||
|
@ -211,228 +290,26 @@ $(SL_OBJ_DIR):
|
|||
$(DBG_OBJ_DIR):
|
||||
$(MKDIR) $(call FixPath,$@)
|
||||
|
||||
$(OBJ_DIR_ARMHF):
|
||||
$(MKDIR) $(call FixPath,$@)
|
||||
|
||||
$(SL_OBJ_DIR_ARMHF):
|
||||
$(MKDIR) $(call FixPath,$@)
|
||||
|
||||
$(OBJ_DIR_ARM64):
|
||||
$(MKDIR) $(call FixPath,$@)
|
||||
|
||||
$(SL_OBJ_DIR_ARM64):
|
||||
$(MKDIR) $(call FixPath,$@)
|
||||
|
||||
|
||||
# Clean rules
|
||||
.PHONY: clean
|
||||
clean:
|
||||
|
||||
clean: clean-buildfiles
|
||||
$(RM) *.o *~ $(MAIN) $(MAIN_U) $(PLAY) $(PL_EXOBJ) $(DEBG)
|
||||
$(RM) $(wildcard *.o) $(wildcard *~) $(OBJ_FILES) $(DBG_OBJ_FILES) $(SL_OBJ_FILES) $(MAIN) $(MAIN_U) $(PLAY) $(PL_EXOBJ) $(LOGR) $(PLAY) $(DEBG)
|
||||
$(RM) $(wildcard *.o) $(wildcard *~) $(MAIN) $(MAIN_ARM64) $(MAIN_ARMHF) $(SLOG) $(SLOG_ARM64) $(SLOG_ARMHF) $(MAIN_U) $(PLAY) $(PL_EXOBJ) $(LOGR) $(PLAY) $(DEBG)
|
||||
|
||||
clean-buildfiles:
|
||||
$(RM) $(wildcard *.o) $(wildcard *~) $(OBJ_FILES) $(DBG_OBJ_FILES) $(SL_OBJ_FILES) $(OBJ_FILES_ARMHF) $(OBJ_FILES_ARM64) $(SL_OBJ_FILES_ARMHF) $(SL_OBJ_FILES_ARM64)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
define DO_NOT_USE
|
||||
|
||||
# OLD MAKEFILE, STILL NEED TO MOVE THE BELOW OVER TO NEW Makefile
|
||||
LOGR = ./release/log_reader
|
||||
PLAY = ./release/aqualinkd-player
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Options
|
||||
#
|
||||
# make // standard everything
|
||||
# make debug // Give standard binary just with debugging
|
||||
# make aqdebug // Compile with extra aqualink debug information like timings
|
||||
# make slog // Serial logger
|
||||
# make <other> // not documenting
|
||||
#
|
||||
|
||||
# Valid flags for AQ_FLAGS
|
||||
AQ_RS16 = true
|
||||
AQ_PDA = true
|
||||
AQ_ONETOUCH = true
|
||||
AQ_IAQTOUCH = true
|
||||
#AQ_MEMCMP = true // Not implimented correctly yet.
|
||||
|
||||
# Turn off threadded net services
|
||||
AQ_NO_THREAD_NETSERVICE = false
|
||||
|
||||
# Get some system information
|
||||
PI_OS_VERSION = $(shell cat /etc/os-release | grep VERSION= | cut -d\" -f2)
|
||||
$(info OS: $(PI_OS_VERSION) )
|
||||
GLIBC_VERSION = $(shell ldd --version | grep ldd)
|
||||
$(info GLIBC build with: $(GLIBC_VERSION) )
|
||||
$(info GLIBC Prefered : 2.24-11+deb9u1 2.24 )
|
||||
|
||||
|
||||
# define the C compiler to use
|
||||
CC = gcc
|
||||
|
||||
#LIBS := -lpthread -lm
|
||||
LIBS := -l pthread -l m
|
||||
#LIBS := -l pthread -l m -static # Take out -static, just for dev
|
||||
|
||||
# Standard compile flags
|
||||
GCCFLAGS = -Wall -O3
|
||||
#GCCFLAGS = -O3
|
||||
#GCCFLAGS = -Wall -O3 -Wextra
|
||||
#GCCFLAGS = -Wl,--gc-sections,--print-gc-sections
|
||||
#GCCFLAGS = -Wall -O3 -ffunction-sections -fdata-sections
|
||||
|
||||
# Standard debug flags
|
||||
DGCCFLAGS = -Wall -O0 -g
|
||||
|
||||
# Aqualink Debug flags
|
||||
#DBGFLAGS = -g -O0 -Wall -fsanitize=address -D AQ_DEBUG -D AQ_TM_DEBUG
|
||||
DBGFLAGS = -g -O0 -Wall -D AQ_DEBUG -D AQ_TM_DEBUG
|
||||
|
||||
# Mongoose flags
|
||||
#MGFLAGS = -D MG_DISABLE_MD5 -D MG_DISABLE_HTTP_DIGEST_AUTH -D MG_DISABLE_MD5 -D MG_DISABLE_JSON_RPC
|
||||
# Mongoose 6.18 flags
|
||||
MGFLAGS = -D MG_ENABLE_HTTP_SSI=0 -D MG_ENABLE_DIRECTORY_LISTING=0 -D MG_ENABLE_HTTP_CGI=0
|
||||
#MGFLAGS =
|
||||
|
||||
# define the C source files
|
||||
#SRCS = aqualinkd.c utils.c config.c aq_serial.c init_buttons.c aq_programmer.c net_services.c json_messages.c pda.c pda_menu.c \
|
||||
# pda_aq_programmer.c devices_jandy.c onetouch.c onetouch_aq_programmer.c packetLogger.c devices_pentair.c color_lights.c mongoose.c
|
||||
|
||||
SRCS = aqualinkd.c utils.c config.c aq_serial.c aq_panel.c aq_programmer.c net_services.c json_messages.c rs_msg_utils.c\
|
||||
devices_jandy.c packetLogger.c devices_pentair.c color_lights.c serialadapter.c aq_timer.c aq_scheduler.c web_config.c\
|
||||
mongoose.c
|
||||
|
||||
|
||||
AQ_FLAGS =
|
||||
# Add source and flags depending on protocols to support.
|
||||
ifeq ($(AQ_PDA), true)
|
||||
SRCS := $(SRCS) pda.c pda_menu.c pda_aq_programmer.c
|
||||
AQ_FLAGS := $(AQ_FLAGS) -D AQ_PDA
|
||||
endif
|
||||
|
||||
ifeq ($(AQ_ONETOUCH), true)
|
||||
SRCS := $(SRCS) onetouch.c onetouch_aq_programmer.c
|
||||
AQ_FLAGS := $(AQ_FLAGS) -D AQ_ONETOUCH
|
||||
endif
|
||||
|
||||
ifeq ($(AQ_IAQTOUCH), true)
|
||||
SRCS := $(SRCS) iaqtouch.c iaqtouch_aq_programmer.c
|
||||
AQ_FLAGS := $(AQ_FLAGS) -D AQ_IAQTOUCH
|
||||
endif
|
||||
|
||||
ifeq ($(AQ_RS16), true)
|
||||
AQ_FLAGS := $(AQ_FLAGS) -D AQ_RS16
|
||||
endif
|
||||
|
||||
ifeq ($(AQ_MEMCMP), true)
|
||||
AQ_FLAGS := $(AQ_FLAGS) -D AQ_MEMCMP
|
||||
endif
|
||||
|
||||
ifeq ($(AQ_NO_THREAD_NETSERVICE), true)
|
||||
AQ_FLAGS := $(AQ_FLAGS) -D AQ_NO_THREAD_NETSERVICE
|
||||
endif
|
||||
|
||||
|
||||
# Put all flags together.
|
||||
CFLAGS = $(GCCFLAGS) $(AQ_FLAGS) $(MGFLAGS)
|
||||
DFLAGS = $(DGCCFLAGS) $(AQ_FLAGS) $(MGFLAGS)
|
||||
DBG_CFLAGS = $(DBGFLAGS) $(AQ_FLAGS) $(MGFLAGS)
|
||||
|
||||
# Other sources.
|
||||
#DBG_SRC = timespec_subtract.c debug_timer.c
|
||||
DBG_SRC = debug_timer.c
|
||||
SL_SRC = serial_logger.c aq_serial.c utils.c packetLogger.c rs_msg_utils.c
|
||||
LR_SRC = log_reader.c aq_serial.c utils.c packetLogger.c
|
||||
PL_EXSRC = aq_serial.c
|
||||
PL_EXOBJ = aq_serial_player.o
|
||||
PL_SRC := $(filter-out aq_serial.c, $(SRCS))
|
||||
|
||||
OBJS = $(SRCS:.c=.o)
|
||||
DBG_OBJS = $(DBG_SRC:.c=.o)
|
||||
|
||||
SL_OBJS = $(SL_SRC:.c=.o)
|
||||
LR_OBJS = $(LR_SRC:.c=.o)
|
||||
PL_OBJS = $(PL_SRC:.c=.o)
|
||||
|
||||
|
||||
# define the executable file
|
||||
MAIN = ./release/aqualinkd
|
||||
SLOG = ./release/serial_logger
|
||||
LOGR = ./release/log_reader
|
||||
PLAY = ./release/aqualinkd-player
|
||||
DEBG = ./release/aqualinkd-debug
|
||||
|
||||
|
||||
all: $(MAIN) $(SLOG)
|
||||
$(info $(MAIN) has been compiled)
|
||||
$(info $(SLOG) has been compiled)
|
||||
|
||||
# debug, Just change compile flags and call MAIN
|
||||
debug: CFLAGS = $(DFLAGS)
|
||||
debug: $(MAIN)
|
||||
$(info $(MAIN) has been compiled)
|
||||
|
||||
$(MAIN): $(OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $(MAIN) $(OBJS) $(LIBS)
|
||||
$(info $(MAIN) has been compiled)
|
||||
|
||||
slog: $(SLOG)
|
||||
$(info $(SLOG) has been compiled)
|
||||
|
||||
$(SLOG): CFLAGS := $(CFLAGS) -D SERIAL_LOGGER
|
||||
$(SLOG): $(SL_OBJS)
|
||||
# $(CC) $(CFLAGS) $(INCLUDES) -o $(SLOG) $(SL_OBJS)
|
||||
$(CC) $(INCLUDES) -o $(SLOG) $(SL_OBJS)
|
||||
|
||||
|
||||
#.PHONY: clean_slog_o
|
||||
#clean_slog_o:
|
||||
# $(RM) $(SL_OBJS)
|
||||
#
|
||||
#.PHONY: test
|
||||
#test: $(SLOG)
|
||||
#test: clean_slog_o
|
||||
#test: $(MAIN)
|
||||
|
||||
# Shouldn't need to use any of these options unless you're developing.
|
||||
|
||||
aqdebug: $(DEBG)
|
||||
$(info $(DEBG) has been compiled)
|
||||
|
||||
$(DEBG): CFLAGS = $(DBG_CFLAGS)
|
||||
$(DEBG): $(OBJS) $(DBG_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $(DEBG) $(OBJS) $(DBG_OBJS) $(DBGFLAGS) $(LIBS)
|
||||
|
||||
logr: $(LOGR)
|
||||
$(info $(LOGR) has been compiled)
|
||||
|
||||
$(LOGR): $(LR_OBJS)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $(LOGR) $(LR_OBJS)
|
||||
|
||||
player: $(PLAY)
|
||||
$(info $(PLAY) has been compiled)
|
||||
|
||||
$(PL_EXOBJ): $(PL_EXSRC)
|
||||
$(CC) $(CFLAGS) -D PLAYBACK_MODE $(INCLUDES) -c $(PL_EXSRC) -o $(PL_EXOBJ)
|
||||
|
||||
$(PLAY): $(PL_OBJS) $(PL_EXOBJ)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $(PLAY) $(PL_OBJS) $(PL_EXOBJ)
|
||||
|
||||
# Fof github publishing
|
||||
.PHONY: git
|
||||
git: clean $(MAIN) $(SLOG)
|
||||
./release/git_version.sh
|
||||
|
||||
|
||||
# this is a suffix replacement rule for building .o's from .c's
|
||||
# it uses automatic variables $<: the name of the prerequisite of
|
||||
# the rule(a .c file) and $@: the name of the target of the rule (a .o file)
|
||||
# (see the gnu make manual section about automatic variables)
|
||||
.c.o:
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
|
||||
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
$(RM) *.o *~ $(MAIN) $(MAIN_U) $(PLAY) $(PL_EXOBJ) $(DEBG)
|
||||
$(RM) $(wildcard *.o) $(wildcard *~) $(MAIN) $(MAIN_U) $(PLAY) $(PL_EXOBJ) $(LOGR) $(PLAY) $(DEBG)
|
||||
|
||||
depend: $(SRCS)
|
||||
makedepend $(INCLUDES) $^
|
||||
|
||||
install: $(MAIN)
|
||||
./release/install.sh
|
||||
|
||||
endef
|
||||
|
||||
|
|
|
@ -110,6 +110,13 @@ Designed to mimic AqualinkRS devices, used to fully configure the master control
|
|||
# Call for Help.
|
||||
* The only Jandy devices I have not decoded yet are LX heater & Chemical Feeder. If you have either of these devices and are willing to post some logs, please let me know, or post in the [Discussions area](https://github.com/sfeakes/AqualinkD/discussions)
|
||||
|
||||
# Update in Release 2.3.6
|
||||
* No functionality changes
|
||||
* Build & Docker changes
|
||||
* Going forward AqualinkD will release binaries for both armhf & arm64
|
||||
* armhf = any Pi (or equiv board) running 32 bit Debain based OS, stretch or newer
|
||||
* arm64 = Pi3/4/2w running 64 bit Debain based OS, buster or newer
|
||||
|
||||
# Update in Release 2.3.5
|
||||
* Added Home Assistant integration through MQTT discover
|
||||
* Please read the Home Assistant section of the [Wiki - HASSIO](https://github.com/sfeakes/AqualinkD/wiki#HASSIO)
|
||||
|
|
Binary file not shown.
|
@ -0,0 +1 @@
|
|||
./aqualinkd-armhf
|
Binary file not shown.
Binary file not shown.
|
@ -5,6 +5,7 @@
|
|||
|
||||
|
||||
BUILD="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
PARENT_COMMAND=$(ps -o comm= $PPID)
|
||||
|
||||
SERVICE="aqualinkd"
|
||||
|
||||
|
@ -21,6 +22,8 @@ DEFLocation="/etc/default"
|
|||
WEBLocation="/var/www/aqualinkd/"
|
||||
MDNSLocation="/etc/avahi/services/"
|
||||
|
||||
SOURCEBIN=$BIN
|
||||
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "This script must be run as root"
|
||||
exit 1
|
||||
|
@ -31,6 +34,49 @@ if [[ $(mount | grep " / " | grep "(ro,") ]]; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
# Figure out what system we are on and set correct binary.
|
||||
# If we have been called from make, this is a custom build and install, so ignore check.
|
||||
if [ "$PARENT_COMMAND" != "make" ] && [ "$1" != "from-make" ] && [ "$1" != "ignorearch" ]; then
|
||||
# Use arch or uname -a to get above.
|
||||
# dpkg --print-architecture
|
||||
|
||||
# Exit if we can't find systemctl
|
||||
command -v dpkg >/dev/null 2>&1 || { echo -e "Can't detect system architecture, Please check path to 'dpkg' or install manually.\n"\
|
||||
"Or run '$0 ignorearch'" >&2; exit 1; }
|
||||
|
||||
ARCH=$(dpkg --print-architecture)
|
||||
BINEXT=""
|
||||
|
||||
case $ARCH in
|
||||
arm64)
|
||||
echo "Arch is $ARCH, Using 64bit AqualinkD"
|
||||
BINEXT="-arm64"
|
||||
;;
|
||||
armhf)
|
||||
echo "Arch is $ARCH, Using 32bit AqualinkD"
|
||||
BINEXT="-armhf"
|
||||
;;
|
||||
*)
|
||||
echo "Arch $ARCH is unknown, Default to using 32bit HF AqualinkD, you may need to manually try ./release/aqualnkd_arm64"
|
||||
BINEXT=""
|
||||
;;
|
||||
esac
|
||||
|
||||
# Need to check BINEXISTS
|
||||
if [ -f $BUILD/$SOURCEBIN$BINEXT ]; then
|
||||
SOURCEBIN=$BIN$BINEXT
|
||||
elif [ -f $BUILD/$SOURCEBIN ]; then
|
||||
# Not good
|
||||
echo "Can't find correct aqualnkd binary for $ARCH, '$BUILD/$SOURCEBIN$BINEXT' using '$BUILD/$SOURCEBIN' ";
|
||||
fi
|
||||
fi
|
||||
|
||||
# Exit if we can't find binary
|
||||
if [ ! -f $BUILD/$SOURCEBIN ]; then
|
||||
echo "Can't find aqualnkd binary `$BUILD/$SOURCEBIN` ";
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Exit if we can't find systemctl
|
||||
command -v systemctl >/dev/null 2>&1 || { echo "This script needs systemd's systemctl manager, Please check path or install manually" >&2; exit 1; }
|
||||
|
||||
|
@ -80,7 +126,7 @@ fi
|
|||
|
||||
# copy files to locations, but only copy cfg if it doesn;t already exist
|
||||
|
||||
cp $BUILD/$BIN $BINLocation/$BIN
|
||||
cp $BUILD/$SOURCEBIN $BINLocation/$BIN
|
||||
cp $BUILD/$SRV $SRVLocation/$SRV
|
||||
|
||||
if [ -f $CFGLocation/$CFG ]; then
|
||||
|
|
Binary file not shown.
|
@ -0,0 +1 @@
|
|||
./serial_logger-armhf
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue