118 lines
6.4 KiB
Makefile
118 lines
6.4 KiB
Makefile
# Определяем переменные для исходных файлов
|
|
LIB_DIR = libmysyslog
|
|
CLIENT_DIR = libmysyslog-client
|
|
DAEMON_DIR = libmysyslog-daemon
|
|
JSON_DIR = libmysyslog-json
|
|
TEXT_DIR = libmysyslog-text
|
|
|
|
LIB_SOURCE = $(LIB_DIR)/libmysyslog.c
|
|
JSON_SOURCE = $(JSON_DIR)/libmysyslog-json.c
|
|
TEXT_SOURCE = $(TEXT_DIR)/libmysyslog-text.c
|
|
CLIENT_SOURCE = $(CLIENT_DIR)/libmysyslog-client.c
|
|
DAEMON_SOURCE = $(DAEMON_DIR)/libmysyslog-daemon.c
|
|
|
|
# Пути для заголовочных файлов
|
|
INCLUDE_DIRS = -I$(LIB_DIR) -I$(JSON_DIR) -I$(TEXT_DIR)
|
|
|
|
# Пути для unit-файла systemd и переменные пакетов
|
|
UNIT_FILE = /etc/systemd/system/libmysyslog-daemon.service
|
|
|
|
version = 1.0
|
|
revision = 0
|
|
architecture = all
|
|
|
|
all: build_lib build_apps deb
|
|
@echo "\nСборка завершена. Используйте:\n"
|
|
@echo " make systemd_unit_file # Создание systemd unit-файла"
|
|
@echo " make astra_repo # Создание локального репозитория"
|
|
|
|
# Сборка библиотек
|
|
build_lib:
|
|
@cc $(LIB_SOURCE) -shared -o $(LIB_DIR)/libmysyslog.so
|
|
@cc $(JSON_SOURCE) -shared -o $(JSON_DIR)/libmysyslog-json.so
|
|
@cc $(TEXT_SOURCE) -shared -o $(TEXT_DIR)/libmysyslog-text.so
|
|
|
|
# Сборка клиентского приложения и демона
|
|
build_apps:
|
|
@cc $(INCLUDE_DIRS) $(CLIENT_SOURCE) -o log_client -L$(LIB_DIR) -lmysyslog
|
|
@cc $(INCLUDE_DIRS) $(DAEMON_SOURCE) -o log_daemon -L$(LIB_DIR) -lmysyslog
|
|
|
|
# Генерация systemd unit-файла
|
|
systemd_unit_file:
|
|
@touch $(UNIT_FILE)
|
|
@chmod 664 $(UNIT_FILE)
|
|
@echo "[Unit]" >> $(UNIT_FILE)
|
|
@echo "Description=Daemon for logging with libmysyslog" >> $(UNIT_FILE)
|
|
@echo "[Service]" >> $(UNIT_FILE)
|
|
@echo "ExecStart=/usr/local/bin/log_daemon" >> $(UNIT_FILE)
|
|
@echo "Type=forking" >> $(UNIT_FILE)
|
|
@echo "PIDFile=/run/libmysyslog-daemon.pid" >> $(UNIT_FILE)
|
|
@echo "[Install]" >> $(UNIT_FILE)
|
|
@echo "WantedBy=multi-user.target" >> $(UNIT_FILE)
|
|
|
|
# Создание пакетов .deb
|
|
deb: deb_client deb_daemon deb_lib
|
|
@rm -fr MySyslog_client_${version}-${revision}_${architecture}
|
|
@rm -fr MySyslog_daemon_${version}-${revision}_${architecture}
|
|
@rm -fr MySyslog_library_${version}-${revision}_${architecture}
|
|
|
|
deb_client:
|
|
@mkdir -p MySyslog_client_${version}-${revision}_${architecture}/DEBIAN
|
|
@touch MySyslog_client_${version}-${revision}_${architecture}/DEBIAN/control
|
|
|
|
@echo "Package: mysyslog-client" >> MySyslog_client_${version}-${revision}_${architecture}/DEBIAN/control
|
|
@echo "Version: $(version)" >> MySyslog_client_${version}-${revision}_${architecture}/DEBIAN/control
|
|
@echo "Architecture: $(architecture)" >> MySyslog_client_${version}-${revision}_${architecture}/DEBIAN/control
|
|
@echo "Maintainer: gandc <git.gandc.ru/gandc>" >> MySyslog_client_${version}-${revision}_${architecture}/DEBIAN/control
|
|
@echo "Description: Client for libmysyslog logging system" >> MySyslog_client_${version}-${revision}_${architecture}/DEBIAN/control
|
|
|
|
@mkdir -p MySyslog_client_${version}-${revision}_${architecture}/usr/local/bin
|
|
@cp log_client MySyslog_client_${version}-${revision}_${architecture}/usr/local/bin
|
|
@dpkg-deb --root-owner-group --build MySyslog_client_${version}-${revision}_${architecture}
|
|
|
|
deb_daemon:
|
|
@mkdir -p MySyslog_daemon_${version}-${revision}_${architecture}/DEBIAN
|
|
@touch MySyslog_daemon_${version}-${revision}_${architecture}/DEBIAN/control
|
|
|
|
@echo "Package: mysyslog-daemon" >> MySyslog_daemon_${version}-${revision}_${architecture}/DEBIAN/control
|
|
@echo "Version: $(version)" >> MySyslog_daemon_${version}-${revision}_${architecture}/DEBIAN/control
|
|
@echo "Architecture: $(architecture)" >> MySyslog_daemon_${version}-${revision}_${architecture}/DEBIAN/control
|
|
@echo "Maintainer: gandc <git.gandc.ru/gandc>" >> MySyslog_daemon_${version}-${revision}_${architecture}/DEBIAN/control
|
|
@echo "Description: Daemon for libmysyslog logging system" >> MySyslog_daemon_${version}-${revision}_${architecture}/DEBIAN/control
|
|
|
|
@mkdir -p MySyslog_daemon_${version}-${revision}_${architecture}/usr/local/bin
|
|
@cp log_daemon MySyslog_daemon_${version}-${revision}_${architecture}/usr/local/bin
|
|
@dpkg-deb --root-owner-group --build MySyslog_daemon_${version}-${revision}_${architecture}
|
|
|
|
deb_lib:
|
|
@mkdir -p MySyslog_library_${version}-${revision}_${architecture}/DEBIAN
|
|
@touch MySyslog_library_${version}-${revision}_${architecture}/DEBIAN/control
|
|
|
|
@echo "Package: libmysyslog" >> MySyslog_library_${version}-${revision}_${architecture}/DEBIAN/control
|
|
@echo "Version: $(version)" >> MySyslog_library_${version}-${revision}_${architecture}/DEBIAN/control
|
|
@echo "Architecture: $(architecture)" >> MySyslog_library_${version}-${revision}_${architecture}/DEBIAN/control
|
|
@echo "Maintainer: gandc <git.gandc.ru/gandc>" >> MySyslog_library_${version}-${revision}_${architecture}/DEBIAN/control
|
|
@echo "Description: Core library for mysyslog logging" >> MySyslog_library_${version}-${revision}_${architecture}/DEBIAN/control
|
|
|
|
@mkdir -p MySyslog_library_${version}-${revision}_${architecture}/usr/local/lib
|
|
@mkdir -p MySyslog_library_${version}-${revision}_${architecture}/usr/local/include
|
|
@cp $(LIB_DIR)/libmysyslog.so MySyslog_library_${version}-${revision}_${architecture}/usr/local/lib
|
|
@cp $(LIB_DIR)/libmysyslog.h MySyslog_library_${version}-${revision}_${architecture}/usr/local/include
|
|
@dpkg-deb --root-owner-group --build MySyslog_library_${version}-${revision}_${architecture}
|
|
|
|
# Создание локального репозитория APT
|
|
astra_repo:
|
|
@mkdir -p /usr/local/repos
|
|
@cp *.deb /usr/local/repos
|
|
@cd /usr/local/repos && dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
|
|
@echo "deb [trusted=yes] file:/usr/local/repos ./" > /etc/apt/sources.list.d/mysyslog.list
|
|
@sudo apt-get update
|
|
|
|
# Очистка временных файлов
|
|
clean:
|
|
@rm -f $(LIB_DIR)/libmysyslog.so $(JSON_DIR)/libmysyslog-json.so $(TEXT_DIR)/libmysyslog-text.so
|
|
@rm -f log_client log_daemon
|
|
@rm -fr MySyslog_client_${version}-${revision}_${architecture}*
|
|
@rm -fr MySyslog_daemon_${version}-${revision}_${architecture}*
|
|
@rm -fr MySyslog_library_${version}-${revision}_${architecture}*
|