35 lines
621 B
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 $@ $^
|