-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
25 lines (25 loc) · 808 Bytes
/
Makefile
File metadata and controls
25 lines (25 loc) · 808 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
TARGET = array_sort
SRC_DIR = src
OBJ_DIR = obj
CFLAGS = -Wall -Wextra -pedantic -Werror -O2
CC = gcc
SRC_FILES_C = $(shell find $(SRC_DIR) -name '*.c')
SRC_FILES_S = $(shell find $(SRC_DIR) -name '*.s')
OBJ_FILES_C = $(patsubst $(SRC_DIR)/%.c, $(OBJ_DIR)/%.o, $(SRC_FILES_C))
OBJ_FILES_S = $(patsubst $(SRC_DIR)/%.s, $(OBJ_DIR)/%.o, $(SRC_FILES_S))
OBJ_FILES = $(OBJ_FILES_C) $(OBJ_FILES_S)
$(TARGET): $(OBJ_FILES)
$(CC) $(CFLAGS) -o $@ $^
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c | $(OBJ_DIR)
@mkdir -p $(dir $@)
$(CC) $(CFLAGS) -c -o $@ $<
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.s | $(OBJ_DIR)
@mkdir -p $(dir $@)
$(CC) $(CFLAGS) -c -o $@ $<
$(OBJ_DIR):
mkdir -p $(OBJ_DIR)
clean:
rm -rf $(OBJ_DIR) $(TARGET)
format:
find . -regex '.*\.\(c\|h\|cpp\|hpp\)' -exec clang-format -style=file -i {} \;
.PHONY: clean format