MAKEFILE_ABS_PATH := $(abspath $(lastword $(MAKEFILE_LIST))) MAKEFILE_DIR := $(dir $(MAKEFILE_ABS_PATH)) PWD_DIR := $(CURDIR)/ BUILD_DIR := $(addprefix $(MAKEFILE_DIR),build) SRC_DIR := $(addprefix $(MAKEFILE_DIR),src/) TARGET_NAME := zswm TARGET := $(addprefix $(MAKEFILE_DIR),$(TARGET_NAME)) ifneq ($(PWD_DIR),$(MAKEFILE_DIR)) TARGET := $(addprefix $(MAKEFILE_DIR),$(TARGET_NAME)) endif $(TARGET_NAME): build clean: ${RM} $(TARGET) ${RM} -r $(BUILD_DIR) run: -$(shell Xephyr :3 -screen 1920x1080 &) wm: $(TARGET_NAME) DISPLAY=:3 $(TARGET) prepare: @cmake -S $(SRC_DIR) -B $(BUILD_DIR) @cp $(BUILD_DIR)/compile_commands.json $(MAKEFILE_DIR) build: prepare @cmake --build $(BUILD_DIR) @cp $(BUILD_DIR)/$(TARGET_NAME) $(TARGET) install: $(TARGET_NAME) @cp $(BUILD_DIR)/$(TARGET_NAME) ~/.local/bin/$(TARGET_NAME) uninstall: ${RM} -r ~/.local/bin/$(TARGET_NAME) reinstall: uninstall install .PHONY: clean run wm prepare build install uninstall reinstall