all repos — 3ByteBadVM @ a002c494b77f4934829b0f2ddca0c6a7d241bdbf

3ByteBadVM

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
# TODO: enforce c99
# eventually add -Wextra

# Personal makefile notes:
# '$@' gets replaced with the target name
# '$^' gets replaced with the target's dependencies (to right of target name)
# For more, check out https://youtu.be/G5dNorAoeCM

# Note: I understand this makefile is not as optimal as it could/should be

CC       = gcc
CFLAGS  ?= -Wall -Wpedantic -Wextra -std=c99 
ROM      = rom.bin
TRACE_SUFFIX =

all: hard

trace: CFLAGS += -g -ggdb -DTRACE -lreadline
trace: TRACE_SUFFIX = -trace
trace: hard


disass: CFLAGS += -DTRACE -lreadline
disass: bin/disass.o bin/vm.o
	$(CC) $(CFLAGS) -o bin/$@ $^

bin/%.o: src/%.c
	$(CC) $(CFLAGS) -o $@ -c $^

bin/vm.o:
bin/main.o:
bin/disass.o:

rom: rom.bin
	xxd -i src/$^ > src/$@.h

rom.bin: src/rom.asm src/zeropage.incbin
	./ass.sh src/rom.asm src/zeropage.incbin

hard: bin/main.o bin/vm.o
	$(CC) $(CFLAGS) -o bin/$@$(TRACE_SUFFIX) $^

clean:
	rm -f bin/*
cleano:
	rm -f bin/*.o

.PHONY: all trace clean clean