CXX = g++ CXX_FLAGS = -Wall -std=c++14 -lpthread -s BUILDDIR = ./build/ SRC_SERVER = ./src/server.cpp SRC_CLIENT = ./src/client.cpp DESTDIR = /usr/local/bin/ GREEN = \033[0;32m YELLOW = \033[0;33m RESET = \033[0m RED = \033[0;31m DEBVERSION = 1.0.1 ARCH = amd64 DEBPACKAGENAME = udpchat-$(DEBVERSION)-1_$(ARCH) build: @if [ ! -d ${BUILDDIR} ]; then \ mkdir ${BUILDDIR}; \ fi @printf "$(GREEN)[ $(YELLOW)25%% $(GREEN)] $(RESET)CC SERVER\n" @$(CXX) -o $(BUILDDIR)server $(SRC_SERVER) $(CXX_FLAGS) @printf "$(GREEN)[ $(YELLOW)50%% $(GREEN)] $(RESET)CC CLIENT\n" @$(CXX) -o $(BUILDDIR)client $(SRC_CLIENT) $(CXX_FLAGS) @printf "$(GREEN)[ $(YELLOW)75%% $(GREEN)] $(RESET)STRIP SERVER\n" @strip $(BUILDDIR)server >> /dev/null @printf "$(GREEN)[ $(YELLOW)100%% $(GREEN)] $(RESET)STRIP CLIENT\n" @strip $(BUILDDIR)client >> /dev/null @printf "$(GREEN)BUILD SUCCESS$(RESET)\n" clean: @if [ -d ${BUILDDIR} ]; then \ rm -rv ${BUILDDIR}; \ fi runserver: @$(BUILDDIR)server 127.0.0.1 43243 runclient: @$(BUILDDIR)client 127.0.0.1 43243 install: @if [ ! -d ${DESTDIR} ]; then \ mkdir -p $(DESTDIR); \ fi @printf "$(GREEN)[ $(YELLOW)50%% $(GREEN)] $(RESET)INSTALL SERVER\n" @cp -rf $(BUILDDIR)server $(DESTDIR)udpchatserver @printf "$(GREEN)[ $(YELLOW)100%% $(GREEN)] $(RESET)INSTALL CLIENT\n" @cp -rf $(BUILDDIR)client $(DESTDIR)udpchatclient @printf "$(GREEN)INSTALL SUCCESS$(RESET)\n" debpkg: @printf "$(GREEN)[ $(YELLOW)15%% $(GREEN)] $(RESET)CREATE PACKAGE DIRECTORIES\n" @rm -rf $(DEBPACKAGENAME) @mkdir -p $(DEBPACKAGENAME)/usr/local/bin @printf "$(GREEN)[ $(YELLOW)45%% $(GREEN)] $(RESET)COPY PACKAGE FILES\n" @cp -rf $(BUILDDIR)server $(DEBPACKAGENAME)/usr/local/bin/udpchatserver @cp -rf $(BUILDDIR)client $(DEBPACKAGENAME)/usr/local/bin/udpchatclient @printf "$(GREEN)[ $(YELLOW)75%% $(GREEN)] $(RESET)CREATE PACKAGE METADATA\n" @mkdir $(DEBPACKAGENAME)/DEBIAN @touch $(DEBPACKAGENAME)/DEBIAN/control @printf "$(GREEN)[ $(YELLOW)100%% $(GREEN)] $(RESET)CREATE PACKAGE\n" @printf "Package: udpchat\nVersion: 1.0.1\nArchitecture: $(ARCH)\nMaintainer: Tola Mironcenko \nDescription: This is small chat in terminal\n" >> $(DEBPACKAGENAME)/DEBIAN/control @dpkg-deb --build --root-owner-group $(DEBPACKAGENAME) @printf "$(GREEN)BUILDING DEBIAN PACKAGE SUCCESS$(RESET)\n" archlinuxpkg: @makepkg -f all: @make build @make debpkg @make archlinuxpkg