2026-03-21 19:41:43 +01:00

54 lines
947 B
Makefile
Executable File

# --- 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)