blob: 61c60b294134b2b93fd2c63901926e4eed14b05f (
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
|
#!/bin/bash
# These are the project-specific variables
EXECUTABLE="dmtool"
# e.g., foo.so
LIBRARY=
TEST=
# List of libs as given to pkg-config
LIBS="libconfuse nlohmann_json"
CXXFLAGS="-Wall -fPIC -std=c++20"
LDFLAGS=
SOURCE_DIR="src"
EXTRAS="
parsed: parser/scrapeToJson.py parser/utils.py parser/verified.txt
python parser/scrapeToJson.py
touch parsed/
"
INSTALL='
install: $(EXECUTABLE) parsed
install -d $(DESTDIR)$(PREFIX)/share/dmtool/
cp -r parsed/* $(DESTDIR)$(PREFIX)/share/dmtool/
install -d $(DESTDIR)$(PREFIX)/bin/
install -m 755 $(EXECUTABLE) $(DESTDIR)$(PREFIX)/bin/
install -m 644 files/dmtool.bash $(DESTDIR)`pkg-config --variable=completionsdir bash-completion`/dmtool
install -m 644 files/dmtool.conf $(DESTDIR)/etc/dmtool.conf
'
# Below here shouldn't need editing
SOURCES=`find $SOURCE_DIR | grep .cc$ | tr '\n' ' '`
PKG_CONFIG_CFLAGS=
PKG_CONFIG_LIBS=
if [ -n "$LIBS" ]; then
PKG_CONFIG_CFLAGS='`pkg-config $(LIBS) --cflags`'
PKG_CONFIG_LIBS='`pkg-config $(LIBS) --libs`'
fi
ALL="all: \$(SOURCES)"
LIBRULE=
if [ -n "$LIBRARY" ]; then
LIBRULE="
\$(LIBRARY): \$(OBJECTS)
\$(CXX) \$(OBJECTS) -shared -o \$@ \$(LDFLAGS) \$(LDLIBS)
"
ALL="$ALL \$(LIBRARY)"
fi
EXERULE=
if [ -n "$EXECUTABLE" ]; then
EXERULE="
\$(EXECUTABLE): \$(OBJECTS)
\$(CXX) \$(OBJECTS) -o \$@ \$(LDFLAGS) \$(LDLIBS)
"
ALL="$ALL \$(EXECUTABLE)"
fi
TESTRULE=
if [ -n "$TEST" ]; then
TESTRULE="
\$(TEST): \$(OBJECTS)
\$(CXX) \$(OBJECTS) -o \$@ \$(LDFLAGS) \$(LDLIBS) -lcppunit
test: \$(TEST)
./\$(TEST)
"
ALL="$ALL \$(TEST)"
fi
ORULES=$(for cc in `find $SOURCE_DIR | grep .cc$`; do g++ -MM -MT `cut -d'.' -f-1 <<< $cc`.o $cc; done)
cat << EOF > Makefile
LIBS=$LIBS
override CXXFLAGS += $CXXFLAGS $PKG_CONFIG_CFLAGS
override LDFLAGS += $LDFLAGS $PKG_CONFIG_LIBS
CC=\$(CXX)
SOURCES=$SOURCES
OBJECTS=\$(SOURCES:.cc=.o)
LIBRARY=$LIBRARY
EXECUTABLE=$EXECUTABLE
PREFIX := /usr
$ALL
$EXTRAS$INSTALL$LIBRULE$EXERULE$TESTRULE
$ORULES
clean:
\$(RM) \$(LIBRARY) \$(EXECUTABLE) \$(TEST) \$(OBJECTS)
EOF
|