-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
38 lines (27 loc) · 741 Bytes
/
Copy pathMakefile
File metadata and controls
38 lines (27 loc) · 741 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
CC := gcc
CFLAGS := -g -Wall
SRC_DIR := src
BUILD_DIR := build
BIN_DIR := /usr/local/bin
C_FILES := $(wildcard $(SRC_DIR)/*.c)
BINS := $(patsubst $(SRC_DIR)/%.c,$(BUILD_DIR)/%,$(C_FILES))
.PHONY: all clean install uninstall
all: $(BUILD_DIR) $(BINS)
$(BUILD_DIR):
mkdir -p $(BUILD_DIR)
$(BUILD_DIR)/%: $(SRC_DIR)/%.c
$(CC) $(CFLAGS) $< -o $@
install: all
@echo "Installing binaries to $(BIN_DIR)..."
@for bin in $(BINS); do \
echo " installing $$(basename $$bin)"; \
install -m 755 $$bin $(BIN_DIR); \
done
uninstall:
@echo "Removing binaries from $(BIN_DIR)..."
@for bin in $(BINS); do \
echo " removing $$(basename $$bin)"; \
rm -f $(BIN_DIR)/$$(basename $$bin); \
done
clean:
rm -rf $(BUILD_DIR)