diff --git a/Makefile b/Makefile index 4cb2b64..25e96fd 100644 --- a/Makefile +++ b/Makefile @@ -1,107 +1,31 @@ -CC = gcc -PKG_CONFIG = pkg-config -CONFIG_CFLAGS := $(shell $(PKG_CONFIG) --cflags libconfig) -CONFIG_LDFLAGS := $(shell $(PKG_CONFIG) --libs libconfig) - -CFLAGS = -Wall -O2 -Ilibmysyslog $(CONFIG_CFLAGS) -LDFLAGS = -L$(BUILD_DIR) -lmysyslog $(CONFIG_LDFLAGS) - -BUILD_DIR = build - -LIB_SRC = libmysyslog/libmysyslog.c -LIB_OBJ = $(BUILD_DIR)/libmysyslog.o -LIB_A = $(BUILD_DIR)/libmysyslog.a - -CLIENT_DIR := myRPC-client/src -CLIENT_SRC := $(CLIENT_DIR)/myRPC-client.c -CLIENT_OBJ := $(BUILD_DIR)/myRPC-client.o -CLIENT_BIN := $(BUILD_DIR)/myRPC-client - -SERVER_DIR := myRPC-server/src -SERVER_SRC := $(SERVER_DIR)/myRPC-server.c -SERVER_OBJ := $(BUILD_DIR)/myRPC-server.o -SERVER_BIN := $(BUILD_DIR)/myRPC-server - -version = 1.0 -revision = 0 -architecture = all - .PHONY: all clean deb repo systemd_install -all: $(BUILD_DIR) $(LIB_A) $(CLIENT_BIN) $(SERVER_BIN) - -$(BUILD_DIR): - mkdir -p $(BUILD_DIR) - -$(LIB_OBJ): $(LIB_SRC) | $(BUILD_DIR) - $(CC) $(CFLAGS) -fPIC -c $< -o $@ - -$(LIB_A): $(LIB_OBJ) - ar rcs $@ $^ - -$(CLIENT_OBJ): $(CLIENT_SRC) | $(BUILD_DIR) - $(CC) $(CFLAGS) -c $< -o $@ - -$(CLIENT_BIN): $(CLIENT_OBJ) - $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) - -$(SERVER_OBJ): $(SERVER_SRC) | $(BUILD_DIR) - $(CC) $(CFLAGS) -c $< -o $@ - -$(SERVER_BIN): $(SERVER_OBJ) - $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) - -############################################################################### -# Создание deb-пакетов -############################################################################### - -deb: deb_client deb_server - @rm -rf MyRPC_client_$(version)-$(revision)_$(architecture) - @rm -rf MyRPC_server_$(version)-$(revision)_$(architecture) - -deb_client: - @mkdir -p MyRPC_client_$(version)-$(revision)_$(architecture)/DEBIAN - @printf "Package: myrpc-client\nVersion: $(version)\nArchitecture: $(architecture)\nMaintainer: gandc \nDescription: Client for remote command execution via myRPC\n" > MyRPC_client_$(version)-$(revision)_$(architecture)/DEBIAN/control - @mkdir -p MyRPC_client_$(version)-$(revision)_$(architecture)/usr/local/bin - @cp $(CLIENT_BIN) MyRPC_client_$(version)-$(revision)_$(architecture)/usr/local/bin - @dpkg-deb --root-owner-group --build MyRPC_client_$(version)-$(revision)_$(architecture) - -deb_server: - @mkdir -p MyRPC_server_$(version)-$(revision)_$(architecture)/DEBIAN - @printf "Package: myrpc-server\nVersion: $(version)\nArchitecture: $(architecture)\nMaintainer: gandc \nDescription: Server for remote command execution via myRPC\n" > MyRPC_server_$(version)-$(revision)_$(architecture)/DEBIAN/control - @mkdir -p MyRPC_server_$(version)-$(revision)_$(architecture)/usr/local/bin - @cp $(SERVER_BIN) MyRPC_server_$(version)-$(revision)_$(architecture)/usr/local/bin - @mkdir -p MyRPC_server_$(version)-$(revision)_$(architecture)/lib/systemd/system - @cp systemd/myrpc-server.service MyRPC_server_$(version)-$(revision)_$(architecture)/lib/systemd/system - @printf "#!/bin/sh\nsystemctl daemon-reload\n" > MyRPC_server_$(version)-$(revision)_$(architecture)/DEBIAN/postinst - @chmod 755 MyRPC_server_$(version)-$(revision)_$(architecture)/DEBIAN/postinst - @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 - -############################################################################### -# Установка systemd unit-файла -############################################################################### - -systemd_install: - @echo "Installing systemd unit for myrpc-server..." - @sudo cp systemd/myrpc-server.service /etc/systemd/system/ - @sudo systemctl daemon-reload - @echo "Done. You can now sudo systemctl enable myrpc-server && sudo systemctl start myrpc-server" - -############################################################################### -# Очистка -############################################################################### +all: clean + $(MAKE) -C libmysyslog all + $(MAKE) -C myRPC-client all + $(MAKE) -C myRPC-server all clean: - rm -rf $(BUILD_DIR) - rm -f *.deb \ No newline at end of file + $(MAKE) -C libmysyslog clean + $(MAKE) -C myRPC-client clean + $(MAKE) -C myRPC-server clean + rm -f *.deb + +deb: all + $(MAKE) -C libmysyslog deb + $(MAKE) -C myRPC-client deb + $(MAKE) -C myRPC-server deb + mv libmysyslog/*.deb . + mv myRPC-client/*.deb . + mv myRPC-server/*.deb . + +repo: deb + 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 + +systemd_install: + sudo cp systemd/myrpc-server.service /etc/systemd/system/ + sudo systemctl daemon-reload \ No newline at end of file