diff options
author | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-01-11 17:40:46 +0330 |
---|---|---|
committer | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-01-11 17:40:46 +0330 |
commit | fb38f415bfce68d21152fa24d95d86665fa0c748 (patch) | |
tree | b71bab2c512a6aaeaeeba2fde32aa5ac85bf4d44 /Makefile |
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..995ab1e --- /dev/null +++ b/Makefile @@ -0,0 +1,62 @@ +CC := gcc +# CC := tcc + +PROJECT_NAME := noise + +BUILD_DIR := ./build +SRC_DIR := ./src +GEN_DIR := ./generated + +SRCS := $(shell find $(SRC_DIR) -name "*.c") +OBJS := $(BUILD_DIR)/xdg-shell.c.o $(SRCS:%=$(BUILD_DIR)/%.o) + +RED := \033[0;31m +GREEN := \033[0;32m +NC := \033[0m + +# INC_DIRS := $(shell find $(SRC_DIRS) -type d) +INC_DIRS := $(SRC_DIR) $(GEN_DIR) +INC_FLAGS := $(addprefix -I,$(INC_DIRS)) + +CFLAGS := $(INC_FLAGS) -Wall -Wextra -lwayland-client -std=gnu23 -Ofast +# CFLAGS := $(INC_FLAGS) -Wall -Wextra -lwayland-client -std=gnu23 -Oz +# CFLAGS := $(INC_FLAGS) -Wall -Wextra -lwayland-client -std=gnu23 -g + +EXEC_FILE := $(BUILD_DIR)/$(PROJECT_NAME) + +all: $(EXEC_FILE) + +$(EXEC_FILE): $(shell find $(SRC_DIR) -name "*.c") $(OBJS) + $(CC) $(CFLAGS) $(OBJS) -o $@ $(LDFLAGS) + +$(BUILD_DIR)/%.c.o: %.c + mkdir -p $(dir $@) + $(CC) $(CFLAGS) -c $< -o $@ + +$(BUILD_DIR)/xdg-shell.c.o: + mkdir -p $(GEN_DIR) + mkdir -p $(BUILD_DIR) + wayland-scanner client-header /usr/share/wayland-protocols/stable/xdg-shell/xdg-shell.xml $(GEN_DIR)/xdg-shell.h + wayland-scanner public-code /usr/share/wayland-protocols/stable/xdg-shell/xdg-shell.xml $(GEN_DIR)/xdg-shell.c + gcc -c $(GEN_DIR)/xdg-shell.c -o $(BUILD_DIR)/xdg-shell.c.o $(CFLAGS) + +lsp-files: clean + bear -- make all + +.PHONY: clean +clean: + rm -rf $(BUILD_DIR) + rm -rf $(GEN_DIR) + +run: $(EXEC_FILE) + $(EXEC_FILE) $(args) + +val-run: $(EXEC_FILE) + valgrind --log-file="val.log" --leak-check=full --track-origins=yes --show-leak-kinds=all -s $(EXEC_FILE) $(args) + +gdb-run: $(EXEC_FILE) + gdb $(EXEC_FILE) $(args) + +# $@ = left hand of : +# $< = right hand of : first one of them +# $^ = right hand of : all |