add target to build deb and create repo
This commit is contained in:
parent
bb0c66c70b
commit
27b09ad75d
61
Makefile
61
Makefile
@ -17,37 +17,82 @@ LIB_SRC = libmysyslog/libmysyslog.c
|
||||
LIB_OBJ = $(BUILD_DIR)/libmysyslog.o
|
||||
LIB_A = $(BUILD_DIR)/libmysyslog.a
|
||||
|
||||
.PHONY: all clean deb
|
||||
# Переменные для 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)
|
||||
|
||||
# Компиляция объектного файла для myRPC-client
|
||||
$(BUILD_DIR)/myRPC-client.o: myRPC-client.c | $(BUILD_DIR)
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
# Компиляция объектного файла для myRPC-server
|
||||
$(BUILD_DIR)/myRPC-server.o: myRPC-server.c | $(BUILD_DIR)
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
# Компиляция объекта для libmysyslog
|
||||
$(BUILD_DIR)/libmysyslog.o: $(LIB_SRC) | $(BUILD_DIR)
|
||||
$(CC) $(CFLAGS) -fPIC -c $< -o $@
|
||||
|
||||
# Создание статической библиотеки libmysyslog.a
|
||||
$(LIB_A): $(BUILD_DIR)/libmysyslog.o
|
||||
ar rcs $@ $^
|
||||
|
||||
# Линковка myRPC-client
|
||||
$(TARGET_CLIENT): $(OBJS_CLIENT)
|
||||
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
|
||||
|
||||
# Линковка myRPC-server
|
||||
$(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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user