-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
65 lines (50 loc) · 2 KB
/
Makefile
File metadata and controls
65 lines (50 loc) · 2 KB
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
XFILES := LuaCall LuaStack formatany keyescape streamout
XHEADER := include/LuaAide.h
CPPFLAGS := -Iinclude -I/usr/include/lua5.4 -I ../../../thirdparty/include
CXXFLAGS := --std=c++20 -Wall -Werror
BT := buildsys/gcc/bt
.PHONY: clean dir prerequisites test
all: prerequisites dir libLuaAide.a LuaAideTest b/a1 b/a2 b/a3 b/a4 b/m1.so b/m2.so b/m3.so ulutest/ulutest.so
clean:
@rm -rf b $(BT) libLuaAide.a LuaAideTest ulutest/ulutest.so
prerequisites:
@which objcopy > /dev/null || echo "objcopy not installed (required to build ulutest)" || false
dir:
@mkdir -p b buildsys/gcc/bt
test: TestSummary.lua
@lua $< --print
# ============================================================
libLuaAide.a: $(XFILES:%=b/%.o)
@echo $<
@ar -crs $@ $^
b/%.o: src/%.cpp $(XHEADER)
@echo $<
@g++ -fpic -o $@ -c $< $(CPPFLAGS) $(CXXFLAGS)
# ============================================================
LuaAideTest: src/testmain.cpp $(XFILES:%=$(BT)/%.o)
@echo $<
@g++ -o $@ $^ $(CPPFLAGS) $(CXXFLAGS) -DUNITTEST -DGTEST_HAS_PTHREAD=1 -llua5.4 -lgtest
$(BT)/%.o: src/%.cpp $(XHEADER)
@echo $<
@g++ -o $@ -c $< $(CPPFLAGS) $(CXXFLAGS) -DUNITTEST -DGTEST_HAS_PTHREAD=1
# ============================================================
b/a%: examples/a%.cpp libLuaAide.a $(XHEADER)
@echo $<
@g++ -o $@ $< $(CPPFLAGS) $(CXXFLAGS) -L. -lLuaAide -llua5.4
b/m%.so: examples/m%.cpp libLuaAide.a $(HEADER)
g++ -shared -fpic -o $@ $^ $(CPPFLAGS) $(CXXFLAGS)
# ============================================================
ulutest/ulutest.so:
make -C ulutest
# ============================================================
$(BT)/LuaAideTest.result: ./LuaAideTest
@./LuaAideTest > $@
$(BT)/m1test.result: examples/m1test.lua b/m2.so
@lua $< > $@
$(BT)/m2test.result: examples/m2test.lua b/m2.so
@lua $< > $@
TestSummary.lua: $(BT)/LuaAideTest.result $(BT)/m1test.result $(BT)/m2test.result
@lua buildsys/generic/summarise_tests.lua $@ $^
# ============================================================
lspcommands:
@bear -- make -B all