-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile
50 lines (37 loc) · 1006 Bytes
/
Makefile
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#################################################
# Makefile boilerplate version 0.1.0 (20190416)
TARGET_INITIAL := paint
TARGET := $(TARGET_INITIAL)
CC := gcc
CFLAGS := -Wall -Ofast -std=gnu11
LIB :=
TARGET_DIR := bin
SRC_DIR := src
INC_DIR := include
OBJ_DIR := build
SRC_EXT := c
OBJ_EXT := o
FLAGS := -DVERBOSE=1
#################################################
## DO NOT EDIT BELOW ##
SOURCES := $(shell find $(SRC_DIR) -type f -name *.$(SRC_EXT))
OBJECTS := $(patsubst $(SRC_DIR)/%, $(OBJ_DIR)/%, $(SOURCES:.$(SRC_EXT)=.$(OBJ_EXT)))
all: directories $(TARGET)
@echo [$@]
@echo "All done."
directories:
@echo [$@]
@mkdir -p $(TARGET_DIR) $(OBJ_DIR)
clean:
@echo [$@]
rm -rf $(TARGET_DIR) $(OBJ_DIR)
rm $(TARGET)
# LINK
$(TARGET): $(OBJECTS)
@echo [$@]
$(LINK.c) -o $(TARGET_DIR)/$(TARGET) $^ $(LIB)
@ln -sf $(TARGET_DIR)/$(TARGET) ./
# COMPILE
$(OBJ_DIR)/%.$(OBJ_EXT): $(SRC_DIR)/%.$(SRC_EXT)
@echo [$@]
$(CC) $(CFLAGS) -c -o $@ $< -I$(INC_DIR) $(FLAGS)