-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
56 lines (45 loc) · 1.12 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
53
54
55
56
MAIN = src/boot/main.c
SRCS = $(filter-out $(MAIN),$(sort $(shell find src -name '*.c')))
OBJS = $(SRCS:.c=.o)
LDFLAGS =
CPPFLAGS = -DPLATFORM_NICE
CFLAGS = -pipe
CFLAGS_C99 = -std=c99
CFLAGS_MSEXT = -fms-extensions
CFLAGS_ERR = -Wall -Werror -Wextra
CFLAGS_DBG = -g -ggdb -gdwarf-2 -g3
CFLAGS_TORGO = -I./include/torgo
CFLAGS_ALL = $(CFLAGS_C99)
CFLAGS_ALL += $(CFLAGS_MSEXT)
CFLAGS_ALL += $(CFLAGS_ERR)
CFLAGS_ALL += $(CFLAGS_DBG)
CFLAGS_ALL += $(CFLAGS_TORGO)
CFLAGS_ALL += -I./include
CFLAGS_ALL += $(CPPFLAGS) $(CFLAGS)
AR = ar
RANLIB = ranlib
STATIC_LIBS = lib/libmanos.a
ALL_LIBS = $(STATIC_LIBS)
TESTS = t/sns-walk
ALL_PROGS = $(TESTS) manos-boot
all: $(ALL_LIBS) $(ALL_PROGS)
%.o: %.c
@$(CC) $(CFLAGS_ALL) -c -o $@ $<
@echo "CC $(@F)"
lib/libmanos.a: $(OBJS)
rm -f $@
@$(AR) rc $@ $(OBJS) 2>/dev/null
@$(RANLIB) $@
@echo "LINK $(@F)"
t/sns-walk: t/sns-walk.c $(ALL_LIBS)
@$(CC) $(CFLAGS_ALL) -o $@ $< -L./lib -lmanos
@echo "CC $@"
manos-boot: $(MAIN) lib/libmanos.a
rm -f $@
@$(CC) $(CFLAGS_ALL) -o $@ $< -L./lib -lmanos
@echo "BUILD $@"
clean:
rm -f $(OBJS)
rm -f $(ALL_LIBS)
rm -f $(ALL_PROGS)
.PHONY: all clean