85 lines
2.1 KiB
Makefile
85 lines
2.1 KiB
Makefile
USE_OPENSSL := no
|
|
|
|
BUILD := $(shell date -u +%Y%m%d-%H%M%S)
|
|
OS := $(shell uname -s)
|
|
|
|
PREFIX = $(DESTDIR)/opt/CronosAgent
|
|
|
|
ifeq ($(OS), Linux)
|
|
FLAGS += -rdynamic
|
|
ifeq ($(shell lsb_release -i -s), Debian)
|
|
ifeq ($(shell grep -E "^6.0" /etc/debian_version > /dev/null ; echo $?), 0)
|
|
LIBRARIES += rt
|
|
endif
|
|
endif
|
|
ifeq ($(USE_OPENSSL), yes)
|
|
FLAGS += -DUSE_OPENSSL
|
|
DEPENDENCIES += openssl
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(OS), Darwin)
|
|
FLAGS += -Wno-deprecated-declarations
|
|
ifeq ($(USE_OPENSSL), yes)
|
|
FLAGS += -DUSE_OPENSSL -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift-migrator/sdk/MacOSX.sdk/usr/include/
|
|
LIBRARIES += crypto
|
|
endif
|
|
endif
|
|
|
|
OBJECTS = \
|
|
RingBuffer.o \
|
|
CronosAgent.o
|
|
|
|
ifneq ($(USE_OPENSSL), yes)
|
|
OBJECTS += sha256.o
|
|
endif
|
|
|
|
FLAGS += -g -fno-omit-frame-pointer -O3 -MMD $(foreach directory, $(DIRECTORIES), -I$(directory)) -DBUILD=\"$(BUILD)\"
|
|
LIBS += $(foreach library, $(LIBRARIES), -l$(library))
|
|
|
|
CC = gcc
|
|
CFLAGS += $(FLAGS) -std=gnu99
|
|
|
|
ifneq ($(strip $(DEPENDENCIES)), )
|
|
FLAGS += $(shell pkg-config --cflags $(DEPENDENCIES))
|
|
LIBS += $(shell pkg-config --libs $(DEPENDENCIES))
|
|
endif
|
|
|
|
all: build
|
|
|
|
build: $(PREREQUISITES) $(OBJECTS)
|
|
$(CC) $(OBJECTS) $(FLAGS) $(LIBS) -o cronosagent
|
|
|
|
install:
|
|
install -D -d $(PREFIX)
|
|
install -o root -g root cronosagent $(PREFIX)
|
|
install -o root -g root cronosagent.sh $(PREFIX)
|
|
install -o root -g root cronosagent.conf $(PREFIX)
|
|
ifeq ($(OS), Linux)
|
|
install -o root -g root cronosagent-init $(PREFIX)
|
|
install -m 644 -o root -g root cronosagent-monit $(PREFIX)
|
|
install -m 644 -o root -g root cronosagent.service $(PREFIX)
|
|
endif
|
|
ifeq ($(OS), Darwin)
|
|
install -m 644 -o root -g root cronosagent.plist $(DESTDIR)/Library/LaunchDaemons
|
|
endif
|
|
|
|
clean:
|
|
rm -f $(PREREQUISITES) $(OBJECTS) cronosagent
|
|
rm -f *.d
|
|
|
|
version:
|
|
echo "#define VERSION $(shell date -u +%Y%m%d)" > Version.h
|
|
|
|
debian-package:
|
|
./UpdateLog.sh
|
|
ifdef ARCH
|
|
dpkg-buildpackage -b -a$(ARCH) -tc
|
|
else
|
|
dpkg-buildpackage -b -tc
|
|
endif
|
|
|
|
macos-archive: build
|
|
zip ../CronosAgent-macOS.zip cronosagent cronosagent.sh cronosagent.conf cronosagent.plist
|
|
|
|
.PHONY: all build clean install
|