blob: 4891508a493784cef30383aba4fa5a065f4159d5 (
plain)
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
# pkh - header-only library
# See LICENSE file for copyright and license details.
include config.mk
.PHONY: pkmem-types pkmem
SRC = \
pkmacros.h \
pkmem-types.h \
pkmem.h \
pkstr.h \
test/pkmacros.c \
test/pkmacros.cpp \
test/pkmem-types.c \
test/pkmem-types.cpp \
test/pkmem.c \
test/pkmem.cpp \
test/pkstr.c \
test/pkstr.cpp \
OBJ = $(SRC:%.c=.o)
PPOBJ = $(SRC:%.cpp=.so)
HOBJ = $(SRC:%.h=.gch)
HPPOBJ = $(SRC:%.h=.gchpp)
all: options .WAIT clean .WAIT \
pkmacros \
pkmem-types \
pkmem \
pkstr \
test-pkmem test-pkmem-cpp \
test-types-pkmem test-types-pkmem-cpp \
test-pkmacros test-pkmacros-cpp \
test-pkstr test-pkstr-cpp \
options:
@echo at-suite build options:
@echo "CFLAGS = $(CFLAGS)"
@echo "CPPFLAGS = $(CPPFLAGS)"
@echo "LDFLAGS = $(LDFLAGS)"
@echo "CC = $(CC)"
@echo "CXX = $(CXX)"
%.gch: %.h
$(CC) -std=c2x $(CFLAGS) -c $< -o $@
%.gchpp: %.h
$(CXX) -std=c++23 $(CPPFLAGS) -x c++-header -c $< -o $@
%.o: %.c
$(CC) -std=c2x $(CFLAGS) -g -O0 -c $< -o $@
%.so: %.cpp
$(CXX) -std=c++23 $(CPPFLAGS) -g -O0 -c $< -o $@
$(OBJ): config.mk
$(PPOBJ): config.mk
$(HOBJ): config.mk
$(HPPOBJ): config.mk
pkmacros: pkmacros.gch pkmacros.gchpp
pkmem-types: pkmacros pkmem-types.gch pkmem-types.gchpp
pkmem: pkmem-types pkmem.gch pkmem.gchpp
pkstr: pkmacros pkstr.gch pkstr.gchpp
test-pkmacros: test/pkmacros.o
$(CC) -g -O0 -std=c2x $(CFLAGS) -o test/$@ $^ $(LDFLAGS)
test-pkmacros-cpp: test/pkmacros.so
$(CXX) -g -O0 -std=c++23 $(CPPFLAGS) -o test/$@ $^ $(LDFLAGS)
test-pkmem-types: test/pkmem-types.o
$(CC) -g -O0 -std=c2x $(CFLAGS) -o test/$@ $^ $(LDFLAGS)
test-pkmem-types-cpp: test/pkmem-types.so
$(CXX) -g -O0 -std=c++23 $(CPPFLAGS) -o test/$@ $^ $(LDFLAGS)
test-pkmem: test/pkmem.o
$(CC) -g -O0 -std=c2x $(CFLAGS) -o test/$@ $^ $(LDFLAGS)
test-pkmem-cpp: test/pkmem.so
$(CXX) -g -O0 -std=c++23 $(CPPFLAGS) -o test/$@ $^ $(LDFLAGS)
test-pkstr: test/pkstr.o
$(CC) -g -O0 -std=c2x $(CFLAGS) -o test/$@ $^ $(LDFLAGS)
test-pkstr-cpp: test/pkstr.so
$(CXX) -g -O0 -std=c++23 $(CPPFLAGS) -o test/$@ $^ $(LDFLAGS)
test: pkmacros pkmem-types pkmem
test: test-pkmacros test-pkmacros-cpp
test: test-pkmem-types test-pkmem-types-cpp
test: test-pkmem test-pkmem-cpp
test: test-pkstr test-pkstr-cpp
test:
@echo ""
./test/test-pkmacros ; echo Result: $$? "\n"
./test/test-pkmacros-cpp ; echo Result: $$? "\n"
./test/test-pkmem-types ; echo Result: $$? "\n"
./test/test-pkmem-types-cpp ; echo Result: $$? "\n"
./test/test-pkmem ; echo Result: $$? "\n"
./test/test-pkmem-cpp ; echo Result: $$? "\n"
./test/test-pkstr ; echo Result: $$? "\n"
./test/test-pkstr-cpp ; echo Result: $$? "\n"
clean:
rm -f *.plist *.gch *.gchpp *.o *.so test/*.o test/*.so test/test-*
|