-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
42 lines (31 loc) · 761 Bytes
/
Makefile
File metadata and controls
42 lines (31 loc) · 761 Bytes
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
CC=gcc
MKDIR=mkdir
MAKE=make
RM=rm -f
BIN:=bin
CFLAGS:=-g -O0 -Wall -std=c99 -fsanitize=address -fsanitize=undefined
ifdef release
CFLAGS:=-O2 -Wall -std=c99 -DNDEBUG
AOCAUX_FLAGS:=release=1
endif
ifndef verbose
SILENT=@
AOCAUX_FLAGS+=-s
else
AOCAUX_FLAGS+=verbose=1
endif
SOURCES:=$(wildcard */main.c)
LIB_DIR:=aocaux
LIBS_PATH:=$(LIB_DIR)/bin
LIBS_INCLUDE:=$(LIB_DIR)/src
vpath %.a $(LIBS_PATH)
-laocaux: | $(BIN)
$(SILENT) $(MAKE) -C $(LIB_DIR) $(AOCAUX_FLAGS)
$(BIN)/day%: -laocaux $(SOURCES) | $(BIN)
$(SILENT) $(CC) $(CFLAGS) -o $@ $(subst $(BIN)/,,$@)/main.c -I$(LIBS_INCLUDE) -L$(LIBS_PATH) $< -lm
$(BIN):
$(SILENT) $(MKDIR) -p $(BIN)
clean:
$(SILENT) $(RM) $(BIN)/*
$(SILENT) $(MAKE) clean -C $(LIB_DIR) $(AOCAUX_FLAGS)
.PHONY: clean