-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
50 lines (34 loc) · 912 Bytes
/
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
CC = gcc
OPT = -O0
CFLAGS = -std=c99 -g -Wall $(OPT)
CFLAGS = -std=c99 -g -Wall -Wextra -pedantic $(OPT)
INCLUDES= -I ./include
LIBRARIES= -lSDL2 -lSDL2_ttf
CFILES_DIR := ./src
BUILD_DIR := ./build
CFILES := $(wildcard ./src/*.c)
OBJECTS := $(CFILES:$(CFILES_DIR)/%.c=$(BUILD_DIR)/%.o)
EXEC := ./bin/nchip8D
TESTGAME := ./games/INVADERS
TESTROM := ./tests/chip8-test-suite.ch8
${EXEC}: ${OBJECTS}
mkdir -p $(dir $@)
$(CC) ${CFLAGS} ${INCLUDES} ${OBJECTS} -o $@ ${LIBRARIES}
${BUILD_DIR}/%.o: ${CFILES_DIR}/%.c
mkdir -p $(dir $@)
$(CC) ${CFLAGS} ${INCLUDES} -c $< -o $@
clean:
rm -rf ${OBJECTS}
rm -rf ${EXEC}
run: ${EXEC}
$^ ${TESTGAME}
testrom: ${EXEC}
$^ ${TESTROM}
install:
mkdir -p ${DESTDIR}${PREFIX}/bin
cp -f ${EXEC} ${DESTDIR}${PREFIX}/bin
chmod 755 ${DESTDIR}${PREFIX}/bin/nchip8D
uninstall:
rm -f ${DESTDIR}${PREFIX}/bin/nchip8D\
debug: ${EXEC}
cgdb --args $^ ${TESTGAME}