-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
52 lines (41 loc) · 1.49 KB
/
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
################################################################################
# CROSS Core Makefile
################################################################################
PROJECT_NAME = star_tracker_core
################################################################################
# Key paths and settings
################################################################################
CC = gcc -g3 -O0 -DDEBUG
ODIR = obj
SDIR = src
LSDIR = libsrc/ica
BDIR = bin
HDIR = hdr
CPPFLAGS = -Ihdr -MMD -MP -I$(LSDIR)
CFLAGS = -Wall -D_FILE_OFFSET_BITS=64
LDFLAGS = -Llib
LDLIBS = -Wl,-Bdynamic -lm
################################################################################
# Master inc/lib/obj/dep settings
################################################################################
EXE = $(BDIR)/$(PROJECT_NAME)
SRC = $(wildcard $(SDIR)/*.c)
LSRC = $(wildcard $(LSDIR)/*.c)
OBJ = $(patsubst $(SDIR)/%.c, $(ODIR)/%.o, $(SRC))
OBJ += $(patsubst $(LSDIR)/%.c, $(ODIR)/%.o, $(LSRC))
################################################################################
# Rules/recipes
################################################################################
.PHONY: all clean
all: $(EXE)
$(EXE): $(OBJ) | $(BDIR)
$(CC) -o $@ $(LDFLAGS) $^ $(LDLIBS)
$(ODIR)/%.o: $(SDIR)/%.c | $(ODIR)
$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
$(ODIR)/%.o: $(LSDIR)/%.c | $(ODIR)
$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
$(BDIR) $(ODIR):
mkdir -p $@
clean:
-del -f $(BDIR) $(ODIR)
-include $(OBJ:.o=.d)