vgbc/Makefile

35 lines
621 B
Makefile

include Makeconf
emu-objs := $(addsuffix .o,$(modules))
test-targets := $(patsubst %,tests/%.bin, $(tests))
clean-objs := $(emu-objs) $(test-targets) libemu.a vgbc
.PHONY: all test clean
all: vgbc $(test-targets)
clean:
rm -rf $(clean-objs)
test: $(test-targets)
@for test in $(tests); do \
if ./tests/$$test.bin; then \
echo "-- $$test successful"; \
else \
echo "-- $$test failed"; \
exit 1; \
fi \
done
%.o: %.cpp
g++ $(CXX_FLAGS) -c -o $@ $^
libemu.a: $(emu-objs)
ar -rc $@ $^
tests/%.bin: tests/%.cpp libemu.a
g++ $(CXX_FLAGS) -o $@ $^
vgbc: main.c libemu.a
g++ $(CXX_FLAGS) -o $@ $^