diff options
| author | elbachir-one <bachiralfa@gmail.com> | 2025-05-18 04:48:32 +0100 |
|---|---|---|
| committer | elbachir-one <bachiralfa@gmail.com> | 2025-05-18 04:48:32 +0100 |
| commit | 90050a84fcbfa0ee8668a0327b00ce62185c4d35 (patch) | |
| tree | fed33dd7b689a8b604b988a9375a99069fbe6df2 /Makefile | |
| parent | cbb199e65c4784007bc4c5aca32c6a89f03b9993 (diff) | |
Enable automatic dependency tracking and improve Makefile robustness
- Added automatic header dependency generation using -MMD and -MP
- Ensured build directories are created with mkdir -p
- Improved quoting for install/uninstall paths to handle spaces
- Adding a man page for SXWM
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 30 |
1 files changed, 21 insertions, 9 deletions
@@ -8,6 +8,10 @@ SRC_DIR := src OBJ_DIR := build SRC := $(wildcard $(SRC_DIR)/*.c) OBJ := $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRC)) +DEP := $(OBJ:.o=.d) + +MAN := sxwm.1 +MAN_DIR := $(PREFIX)/share/man/man1 XSESSIONS := $(DESTDIR)$(PREFIX)/share/xsessions @@ -17,28 +21,36 @@ $(BIN): $(OBJ) $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c | $(OBJ_DIR) - $(CC) $(CFLAGS) -c -o $@ $< + @mkdir -p $(dir $@) + $(CC) $(CFLAGS) -MMD -MP -c -o $@ $< + +-include $(DEP) $(OBJ_DIR): - mkdir -p $(OBJ_DIR) + @mkdir -p $@ clean: - rm -rf $(OBJ_DIR) $(BIN) + @rm -rf $(OBJ_DIR) $(BIN) install: all @echo "Installing $(BIN) to $(DESTDIR)$(PREFIX)/bin..." - @mkdir -p $(DESTDIR)$(PREFIX)/bin - @install -m 755 $(BIN) $(DESTDIR)$(PREFIX)/bin/$(BIN) + @mkdir -p "$(DESTDIR)$(PREFIX)/bin" + @install -m 755 $(BIN) "$(DESTDIR)$(PREFIX)/bin/$(BIN)" @echo "Installing sxwm.desktop to $(XSESSIONS)..." - @mkdir -p $(XSESSIONS) - @install -m 644 sxwm.desktop $(XSESSIONS)/sxwm.desktop + @mkdir -p "$(XSESSIONS)" + @install -m 644 sxwm.desktop "$(XSESSIONS)/sxwm.desktop" + @echo "Installing man page to $(DESTDIR)$(MAN_DIR)..." + @mkdir -p $(DESTDIR)$(MAN_DIR) + @install -m 644 $(MAN) $(DESTDIR)$(MAN_DIR)/ @echo "Installation complete." uninstall: @echo "Uninstalling $(BIN) from $(DESTDIR)$(PREFIX)/bin..." - @rm -f $(DESTDIR)$(PREFIX)/bin/$(BIN) + @rm -f "$(DESTDIR)$(PREFIX)/bin/$(BIN)" @echo "Uninstalling sxwm.desktop from $(XSESSIONS)..." - @rm -f $(XSESSIONS)/sxwm.desktop + @rm -f "$(XSESSIONS)/sxwm.desktop" + @echo "Uninstalling man page from $(DESTDIR)$(MAN_DIR)..." + @rm -f $(DESTDIR)$(MAN_DIR)/$(MAN) @echo "Uninstallation complete." .PHONY: all clean install uninstall |
