From 801939096d66d68d5c91c86f823712b88fefdddb Mon Sep 17 00:00:00 2001 From: Ahurac Date: Wed, 27 Mar 2024 12:54:28 +0100 Subject: [PATCH] =?UTF-8?q?Makefile=20:=20r=C3=A9=C3=A9criture?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 77 ++++++++++++++++++++------------------------------------ 1 file changed, 27 insertions(+), 50 deletions(-) diff --git a/Makefile b/Makefile index 9699390..50cb05d 100644 --- a/Makefile +++ b/Makefile @@ -1,65 +1,42 @@ +# SRC = source +# DST = destination +# *D = folder containing * + NAME := qemush - -# qemu Unix user QEMU_USER := qemu -# sudo as qemu -SUDO_QEMU := sudo -u $(QEMU_USER) -QEMUSH := /usr/local/bin/$(NAME) -SRC_QEMUSH := bin/$(NAME) -SRCD := src +SRC_BIN := bin/$(NAME) +DST_BIN := /usr/local/$(SRC_BIN) -# This repo's equivalent of effective qemu Unix user home -SRC_QEMU_HOME := qemu -SRC_QEMU_BIN := $(SRC_QEMU_HOME)/bin -SRC_LAUNCHERSD := $(SRC_QEMU_HOME)/launchers -# Actual qemu Unix user home -QEMU_HOME := $(shell echo ~$(QEMU_USER)) -QEMU_BIN := $(QEMU_HOME)/bin -LAUNCHERSD := $(QEMU_HOME)/launchers +SRC_HOME := $(QEMU_USER) +DST_HOME := $(shell echo ~$(QEMU_USER)) -# Names of all qemush modules -SRC_MODULES_NAMES := $(notdir $(wildcard $(SRC_QEMU_BIN)/*)) -# Target location of modules -MODULES := $(addprefix $(QEMU_BIN)/,$(SRC_MODULES_NAMES)) -# Names of launchers scripts -SRC_LAUNCHERS_NAMES := $(notdir $(wildcard $(SRC_LAUNCHERSD)/*)) -# Target location of launchers -LAUNCHERS := $(addprefix $(LAUNCHERSD)/,$(SRC_LAUNCHERS_NAMES)) -# Mode to apply -BINS_MODE := 740 +SRC_BIND := $(SRC_HOME)/bin +SRC_LAUNCHERSD := $(SRC_HOME)/launchers +DST_BIND := $(DST_HOME)/bin +DST_LAUNCHERSD := $(DST_HOME)/launchers -# Compiler options -CC := cc -CC_OPTIONS = -O2 -# C sources file format -SRC_FMT := .c -# Names of C programs to compile -SRC_C_SOURCES_NAMES := $(notdir $(basename $(wildcard $(SRCD)/*$(SRC_FMT)))) -# Location of C binaries -C_BINARIES := $(addprefix $(QEMU_BIN)/,$(SRC_C_SOURCES_NAMES)) +MODULES_NAMES := $(notdir $(wildcard $(SRC_BIND)/*)) +LAUNCHERS_NAMES := $(notdir $(wildcard $(SRC_LAUNCHERSD)/*)) -# Directories in ~qemu necessary for qemush to work -QEMUSH_DIRS_NAMES := bin launchers disks sockets/monitors sockets/spice -QEMUSH_DIRS := $(addprefix $(QEMU_HOME)/,$(QEMUSH_DIRS_NAMES)) +DST_MODULES := $(addprefix $(DST_BIND)/,$(MODULES_NAMES)) +DST_LAUNCHERS := $(addprefix $(DST_LAUNCHERSD)/,$(LAUNCHERS_NAMES)) + +QEMUSH_DIRS := $(addprefix $(DST_HOME)/,bin launchers disks sockets/monitors sockets/spice) .PHONY: install -install: $(QEMUSH_DIRS) $(MODULES) $(C_BINARIES) $(QEMUSH) $(LAUNCHERS) +install: $(QEMUSH_DIRS) $(DST_MODULES) $(DST_BIN) $(DST_LAUNCHERS) $(QEMUSH_DIRS): - $(SUDO_QEMU) mkdir -p $@ - $(SUDO_QEMU) chmod 750 $@ + sudo -u $(QEMU_USER) mkdir -p -- $@ + sudo -u $(QEMU_USER) chmod -- 750 $@ -$(QEMUSH): $(SRC_QEMUSH) - sudo install -m 755 $^ $@ +$(DST_BIN): $(SRC_BIN) + sudo install -m 755 -- $^ $@ -$(MODULES): $(QEMU_HOME)%: $(SRC_QEMU_HOME)% - $(SUDO_QEMU) install -m $(BINS_MODE) $^ $@ +$(DST_MODULES): $(DST_HOME)%: $(SRC_HOME)% + sudo -u $(QEMU_USER) install -m 740 -- $^ $@ -$(C_BINARIES): $(QEMU_BIN)%: $(SRCD)%$(SRC_FMT) - $(SUDO_QEMU) $(CC) $(CC_OPTIONS) -o $@ $^ - $(SUDO_QEMU) chmod $(BINS_MODE) $@ - -$(LAUNCHERS): $(LAUNCHERSD)%: $(SRC_LAUNCHERSD)% - $(SUDO_QEMU) install -m $(BINS_MODE) $^ $@ +$(LAUNCHERS): $(DST_LAUNCHERSD)%: $(SRC_LAUNCHERSD)% + sudo -u $(QEMU_USER) install -m 740 -- $^ $@