54 lines
947 B
Makefile
Executable File
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)
|
|
|