-
Notifications
You must be signed in to change notification settings - Fork 28
/
Copy pathMakefile
56 lines (39 loc) · 997 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
51
52
53
54
CC = $(CROSS_COMPILE)gcc
AR = $(CROSS_COMPILE)ar
RM = rm
CFLAGS = -O0 -g -Wall -c
OUTPUT_DIR = bin
OBJ_DIR = obj
TARGET_LIB = $(OUTPUT_DIR)/libVL53L0X_Rasp.a
INCLUDES = \
-I. \
-I${API_DIR}/Api/core/inc \
-I./platform/inc
VPATH = \
${API_DIR}/Api/core/src \
./platform/src/
LIB_SRCS = \
vl53l0x_api_calibration.c \
vl53l0x_api_core.c \
vl53l0x_api_ranging.c \
vl53l0x_api_strings.c \
vl53l0x_api.c \
vl53l0x_platform.c
LIB_OBJS = $(LIB_SRCS:%.c=$(OBJ_DIR)/%.o)
EXAMPLES_SRC = $(wildcard examples/*)
EXAMPLES_BIN = $(EXAMPLES_SRC:examples/%.c=$(OUTPUT_DIR)/%)
.PHONY: all
all: ${TARGET_LIB}
$(TARGET_LIB): $(LIB_OBJS)
mkdir -p $(dir $@)
$(AR) -rcs $@ $^
$(OBJ_DIR)/%.o:%.c
mkdir -p $(dir $@)
$(CC) $(CFLAGS) $(INCLUDES) $< -o $@
$(EXAMPLES_BIN): bin/%:examples/%.c
mkdir -p $(dir $@)
$(CC) -L$(OUTPUT_DIR) $^ -lVL53L0X_Rasp $(INCLUDES) -o $@
examples:${OUTPUT_DIR} ${TARGET_LIB} $(EXAMPLES_BIN)
.PHONY: clean
clean:
-${RM} -rf ./$(OUTPUT_DIR)/* ./$(OBJ_DIR)/*