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