-
Notifications
You must be signed in to change notification settings - Fork 1
/
GNUmakefile
55 lines (39 loc) · 978 Bytes
/
GNUmakefile
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
########################################
# Find which compilers are installed.
#
CC ?= $(shell which gcc)
VOLT ?= $(shell which volt)
SDL2_CONFIG ?= $(shell which sdl2-config)
########################################
# Basic settings.
#
BUILD_DIR ?= make
CFLAGS ?= -g
VFLAGS ?= -d --internal-perf
LDFLAGS ?= -lm $(shell $(SDL2_CONFIG) --libs)
TARGET ?= charge
########################################
# Setting up the source.
#
include sources.mk
SRC:= $(shell ls $(SRC))
STB = .obj/$(BUILD_DIR)/stb.o
OBJ = $(STB)
########################################
# Targets.
#
all: $(TARGET)
$(STB): src/lib/stb/stb.c src/lib/stb/stb_image.h
@echo " CC $@"
@mkdir -p $(dir $@)
@$(CC) $(CFLAGS) src/lib/stb/stb.c -c -o $@
$(TARGET): $(OBJ) $(SRC) GNUmakefile
@echo " VOLT $@"
@$(VOLT) -I src $(VFLAGS) $(LDFLAGS) -o $(TARGET) $(SRC) $(OBJ)
run: all
@./$(TARGET)
debug: all
@gdb --args ./$(TARGET)
clean:
@rm -rf $(TARGET) .obj
.PHONY: all run debug clean