-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
66 lines (52 loc) · 1.84 KB
/
Makefile
File metadata and controls
66 lines (52 loc) · 1.84 KB
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# ============================================================
# BlackBox — Minimal macOS Makefile
# ============================================================
LIBNAME = blackbox
SRC = src/blackbox.c
HDR = blackbox.h
PREFIX = /usr/local
INCLUDEDIR = $(PREFIX)/include
LIBDIR = $(PREFIX)/lib
TARGET = lib$(LIBNAME).dylib
CC = clang
CFLAGS = -Wall -Wextra -O2 -fpic -I.
LDFLAGS = -dynamiclib -install_name $(LIBDIR)/$(TARGET)
# ============================================================
# Build
# ============================================================
all: $(TARGET)
$(TARGET): $(SRC) $(HDR)
@echo "==> Building BlackBox shared library"
@$(CC) $(CFLAGS) $(LDFLAGS) -o $(TARGET) $(SRC)
@echo " - Built $(TARGET)"
# ============================================================
# Install
# ============================================================
install: $(TARGET)
@echo "==> Installing BlackBox..."
@echo " - Ensuring directories exist"
@mkdir -p $(INCLUDEDIR)
@mkdir -p $(LIBDIR)
@echo " - Installing header -> $(INCLUDEDIR)/$(HDR)"
@sudo cp $(HDR) $(INCLUDEDIR)/
@echo " - Installing library -> $(LIBDIR)/$(TARGET)"
@sudo cp $(TARGET) $(LIBDIR)/
@echo "==> Install complete."
# ============================================================
# Uninstall
# ============================================================
uninstall:
@echo "==> Uninstalling BlackBox..."
@echo " - Removing header"
@sudo rm -f $(INCLUDEDIR)/$(HDR)
@echo " - Removing library"
@sudo rm -f $(LIBDIR)/$(TARGET)
@echo "==> Uninstall complete."
# ============================================================
# Clean
# ============================================================
clean:
@echo "==> Cleaning build artifacts"
@rm -f $(TARGET)
@echo " ✓ Clean"
.PHONY: all install uninstall clean