Files
myRPC/Makefile

99 lines
4.3 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
CC = gcc
CFLAGS = -Wall -O2 -Ilibmysyslog
LDFLAGS = -Lbuild -lmysyslog -lconfig
BUILD_DIR = build
SRCS_CLIENT = myRPC-client.c
SRCS_SERVER = myRPC-server.c
OBJS_CLIENT = $(BUILD_DIR)/myRPC-client.o
OBJS_SERVER = $(BUILD_DIR)/myRPC-server.o
TARGET_CLIENT = $(BUILD_DIR)/myRPC-client
TARGET_SERVER = $(BUILD_DIR)/myRPC-server
LIB_SRC = libmysyslog/libmysyslog.c
LIB_OBJ = $(BUILD_DIR)/libmysyslog.o
LIB_A = $(BUILD_DIR)/libmysyslog.a
# Переменные для deb-пакетов
version = 1.0
revision = 0
architecture = all
.PHONY: all clean deb repo
all: $(BUILD_DIR) $(LIB_A) $(TARGET_CLIENT) $(TARGET_SERVER)
$(BUILD_DIR):
mkdir -p $(BUILD_DIR)
$(BUILD_DIR)/myRPC-client.o: myRPC-client.c | $(BUILD_DIR)
$(CC) $(CFLAGS) -c $< -o $@
$(BUILD_DIR)/myRPC-server.o: myRPC-server.c | $(BUILD_DIR)
$(CC) $(CFLAGS) -c $< -o $@
$(BUILD_DIR)/libmysyslog.o: $(LIB_SRC) | $(BUILD_DIR)
$(CC) $(CFLAGS) -fPIC -c $< -o $@
$(LIB_A): $(BUILD_DIR)/libmysyslog.o
ar rcs $@ $^
$(TARGET_CLIENT): $(OBJS_CLIENT)
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
$(TARGET_SERVER): $(OBJS_SERVER)
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
###############################################################################
# Создание deb-пакетов
###############################################################################
# Цель deb собирает deb-пакеты для клиента и сервера, а затем очищает временные директории
deb: deb_client deb_server
@rm -rf MyRPC_client_$(version)-$(revision)_$(architecture)
@rm -rf MyRPC_server_$(version)-$(revision)_$(architecture)
# Создание deb-пакета для myRPC-client
deb_client:
@mkdir -p MyRPC_client_$(version)-$(revision)_$(architecture)/DEBIAN
@echo "Package: myrpc-client" > MyRPC_client_$(version)-$(revision)_$(architecture)/DEBIAN/control
@echo "Version: $(version)" >> MyRPC_client_$(version)-$(revision)_$(architecture)/DEBIAN/control
@echo "Architecture: $(architecture)" >> MyRPC_client_$(version)-$(revision)_$(architecture)/DEBIAN/control
@echo "Maintainer: gandc <admin@gandc.ru>" >> MyRPC_client_$(version)-$(revision)_$(architecture)/DEBIAN/control
@echo "Description: Client for remote command execution via myRPC" >> MyRPC_client_$(version)-$(revision)_$(architecture)/DEBIAN/control
@mkdir -p MyRPC_client_$(version)-$(revision)_$(architecture)/usr/local/bin
@cp $(TARGET_CLIENT) MyRPC_client_$(version)-$(revision)_$(architecture)/usr/local/bin
@dpkg-deb --root-owner-group --build MyRPC_client_$(version)-$(revision)_$(architecture)
# Создание deb-пакета для myRPC-server
deb_server:
@mkdir -p MyRPC_server_$(version)-$(revision)_$(architecture)/DEBIAN
@echo "Package: myrpc-server" > MyRPC_server_$(version)-$(revision)_$(architecture)/DEBIAN/control
@echo "Version: $(version)" >> MyRPC_server_$(version)-$(revision)_$(architecture)/DEBIAN/control
@echo "Architecture: $(architecture)" >> MyRPC_server_$(version)-$(revision)_$(architecture)/DEBIAN/control
@echo "Maintainer: gandc <admin@gandc.ru>" >> MyRPC_server_$(version)-$(revision)_$(architecture)/DEBIAN/control
@echo "Description: Server for remote command execution via myRPC" >> MyRPC_server_$(version)-$(revision)_$(architecture)/DEBIAN/control
@mkdir -p MyRPC_server_$(version)-$(revision)_$(architecture)/usr/local/bin
@cp $(TARGET_SERVER) MyRPC_server_$(version)-$(revision)_$(architecture)/usr/local/bin
@dpkg-deb --root-owner-group --build MyRPC_server_$(version)-$(revision)_$(architecture)
###############################################################################
# Создание локального репозитория APT
###############################################################################
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 ./" | sudo tee /etc/apt/sources.list.d/myrpc.list
@sudo apt-get update
###############################################################################
# Очистка временных файлов
###############################################################################
clean:
rm -rf $(BUILD_DIR)
rm -f *.deb