-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmakefile
More file actions
45 lines (31 loc) · 863 Bytes
/
makefile
File metadata and controls
45 lines (31 loc) · 863 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
CC = gcc
EXT = c
OPT =
DBG =
WARNINGS = -Wall -Wextra -Wsign-conversion -Wconversion
INC_DIRS = ./include/
INCS = $(foreach DIR,$(INC_DIRS),-I$(DIR))
CFLAGS = $(DBG) $(OPT) $(INCS) $(WARNINGS)
BUILD_DIR = ./build
CODE_DIR = ./src
SRC = $(shell find $(CODE_DIR) -name '*.$(EXT)')
OBJ = $(addprefix $(BUILD_DIR)/,$(notdir $(SRC:.$(EXT)=.o)))
PROJ = wstr
EXEC = $(PROJ)
all: $(BUILD_DIR)/$(EXEC)
@echo "========================================="
@echo " BUILD SUCCESS "
@echo "========================================="
release: OPT += -O2
release: all
debug: DBG += -g -gdwarf-2
debug: all
$(BUILD_DIR)/%.o: $(CODE_DIR)/%.$(EXT) | $(BUILD_DIR)
$(CC) -c $< -o $@ $(CFLAGS)
$(BUILD_DIR)/$(EXEC): $(OBJ)
$(CC) $^ -o $@ $(CFLAGS) $(LIBS)
$(BUILD_DIR):
mkdir -p $@
clean:
rm -rf $(BUILD_DIR)
.PHONY: all release debug clean