blob: 2570a08a1be05992f3bac9159b3dbf2274bed632 (
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
45
46
47
48
49
50
51
52
53
54
55
56
57
|
PKGS=libtiff-4 libpng
DEFINES=
EXE=prog
BUILD_DIR=build/
OBJ_DIR=$(BUILD_DIR)obj/
SRC_DIR=src/
INC_DIR=include/
SRCS=$(shell find $(SRC_DIR) -iname \*.c)
OBJS_sub=$(subst $(SRC_DIR),$(OBJ_DIR),$(SRCS))
OBJS=$(OBJS_sub:.c=.o)
OBJ_DIRS_sub=$(shell find $(SRC_DIR) -type d)
OBJ_DIRS=$(subst $(SRC_DIR),$(OBJ_DIR),$(OBJ_DIRS_sub))
# Include raylib if we want a visual experience
ifdef RAYLIB
$(info "Visual Experience Selected")
PKGS+=raylib
DEFINES+=-DVISUAL
endif
ifeq ($(shell uname -s),Linux)
PKGCONF=pkgconf
endif
ifeq ($(shell uname -s),Darwin)
PKGCONF=pkg-config
endif
CFLAGS=
CFLAGS+=$(shell $(PKGCONF) --cflags $(PKGS))
CFLAGS+=-I$(INC_DIR)
CFLAGS+=$(DEFINES)
LDFLAGS=
LDFLAGS+=$(shell $(PKGCONF) --libs $(PKGS))
default: clean build
.PHONY: clean build run
build: $(BUILD_DIR)$(EXE)
$(BUILD_DIR)$(EXE): $(OBJS)
@echo LD --\> $@
@gcc -o $@ $(LDFLAGS) $^
$(OBJ_DIR)%.o: $(SRC_DIR)%.c
@echo CC $< --\> $@
@gcc -o $@ $(CFLAGS) -c $<
clean:
@echo Cleaning build files...
@-rm -rf $(OBJ_DIR) $(BUILD_DIR)
@mkdir -p $(OBJ_DIR) $(BUILD_DIR) $(OBJ_DIRS)
run: $(BUILD_DIR)$(EXE)
@echo Executing...
@./$(BUILD_DIR)$(EXE)
|