# --- Sterling OS Build System --- #TARGET := x86_64-linux-gnu #PREFIX := $(HOME)/gnulinux_sterling #CC := $(PREFIX)/bin/$(TARGET)-gcc NAME := sl_linux CC := gcc #-static -fsanitize=thread CFLAGS := -g -ggdb -fsanitize=address -fsanitize=undefined -Og -Wall -Wextra -Werror -std=c99 -pedantic -I/usr/include/drm LDFLAGS := -Llib LDLIBS := -lasan -lubsan -lGL -lm -lpthread -ldl -lrt -ldrm -lreadline -lraylib SRC_DIR := source OBJ_DIR := obj BUILD_DIR := build SRC := $(wildcard $(SRC_DIR)/*.c) OBJ := $(SRC:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o) all: $(NAME) $(NAME): $(OBJ) | $(BUILD_DIR) $(CC) $(OBJ) $(LDFLAGS) $(LDLIBS) -o $(BUILD_DIR)/$(NAME) $(OBJ_DIR)/%.o : $(SRC_DIR)/%.c $(wildcard $(SRC_DIR)/*.h) $(CC) $(CFLAGS) -c $< -o $@ $(OBJ_DIR): mkdir $(OBJ_DIR) $(BUILD_DIR): mkdir $(BUILD_DIR) $(OBJ): | $(OBJ_DIR) clean: rm -f myshell fclean: clean rm -rf $(OBJ_DIR) re: fclean all .PHONY: all clean fclean re $(NAME)