blob: 61fa1aa9512a6c008703351654ff05ea90c2697a (
plain)
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
|
CC := gcc
AR := ar
ifeq ($(PROD),1)
CFLAGS := -std=c99 -O2 # production flags
else
CFLAGS := -std=c99 -Wall -Wextra -Wpedantic -g -DDEBUG # debug flags
endif
SRCD := src
OBJD := obj
BIND := bin
FILES = $(shell find $(SRCD)/ -type f 2> /dev/null)
CSRCS = $(filter %.c, $(FILES))
COBJS = $(CSRCS:$(SRCD)/%.c=$(OBJD)/%.o)
CDEPS = $(COBJS:%.o=%.d)
-include $(CDEPS)
NAME := kociemba
all: standalone lib
standalone $(NAME): $(BIND)/$(NAME)
static $(NAME).a: $(BIND)/$(NAME).a
clean:
rm -rf $(OBJD)
rm -rf $(BIND)
$(OBJD)/%.o: $(SRCD)/%.c
@mkdir -p $(dir $@)
$(CC) $(CFLAGS) -MMD -MF $(@:%.o=%.d) -c $< -o $@
$(BIND)/$(NAME): $(COBJS)
@mkdir -p $(dir $@)
$(CC) $(CFLAGS) $^ -o $@
$(BIND)/$(NAME).a: $(COBJS)
@mkdir -p $(dir $@)
$(AR) rsc $@ $^
.PHONY: all standalone lib clean $(NAME) $(NAME).a
|