99 lines
4.3 KiB
Makefile
99 lines
4.3 KiB
Makefile
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
|