forked from dargueta/unicorn-lua
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
71 lines (42 loc) · 1.49 KB
/
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
include Makefile.in
EXAMPLES_ROOT=$(REPO_ROOT)/examples
X86_BINARY_IMAGES=$(X86_ASM_SOURCE_FILES:%.asm=%.x86.bin)
MIPS_BINARY_IMAGES=$(MIPS_ASM_SOURCE_FILES:%.s=%.mips32.bin)
.PHONY: all
all: $(BUILD_DIR)
$(MAKE) -C $(BUILD_DIR)
.PHONY: clean
clean:
cmake -E rm -rf $(DOXYGEN_OUTPUT_BASE) $(BUILD_DIR) $(VIRTUALENV_DIR) core* *.in configuration.cmake
$(BUILD_DIR):
cmake -S $(REPO_ROOT) -B $(BUILD_DIR) -DCMAKE_VERBOSE_MAKEFILE=YES
$(SHARED_LIB_FILE): $(BUILD_DIR)
$(MAKE) -C $(BUILD_DIR) unicornlua_library
$(TEST_EXE_FILE): $(SHARED_LIB_FILE) $(TEST_SOURCES)
$(MAKE) -C $(BUILD_DIR) cpp_test
.PHONY: install
install: $(SHARED_LIB_FILE)
$(MAKE) -C $(BUILD_DIR) install
.PHONY: docs
docs:
$(MAKE) -C $(BUILD_DIR) docs
.PHONY: examples
examples: $(X86_BINARY_IMAGES) $(SHARED_LIB_FILE)
.PHONY: test
test: $(BUILT_LIBRARY_DIRECTORY)/.test-sentinel
$(BUILT_LIBRARY_DIRECTORY)/.test-sentinel: $(TEST_EXE_FILE) $(BUSTED_EXE)
cmake -E touch $@
$(MAKE) -C $(BUILD_DIR) test "ARGS=--output-on-failure -VV"
$(BUSTED_EXE):
$(LUAROCKS_EXE) install busted
.PHONY: run_example
run_example: examples
cd $(EXAMPLES_ROOT)/$(EXAMPLE) && \
LUA_CPATH="$(BUILT_LIBRARY_DIRECTORY)/?$(LIBRARY_EXTENSION);$(LUAROCKS_CPATH);;" \
LUA_PATH="$(LUAROCKS_LPATH);;" \
$(LUA_EXE) $(EXAMPLES_ROOT)/$(EXAMPLE)/run.lua
%.x86.bin : %.asm
$(X86_ASM) $(X86_ASM_FLAGS) -o $@ $<
%.mips32.bin : %.s
mips-linux-gnu-as -o $@.o -mips32 -EB $<
mips-linux-gnu-ld -o $@ --oformat=binary -e main -sN $@.o