Tue, 25 Feb 2025 18:46:17 +0100
add total commits counters
fixes #605
0 | 1 | #!/bin/sh |
2 | ||
3 | dir="$1" | |
4 | target="$2" | |
5 | extra_flags="$3" | |
6 | ||
7 | if [ -z "$dir" ]; then | |
8 | echo "Usage: $0 <src_dir>" | |
9 | exit 1 | |
10 | fi | |
11 | ||
12 | if [ -z "$target" ]; then | |
13 | target='../build' | |
14 | fi | |
15 | ||
16 | if [ -d "$dir" ]; then | |
17 | : | |
18 | else | |
19 | echo "'$dir' is not a directory" | |
20 | exit 1 | |
21 | fi | |
22 | ||
23 | if [ -z "$CXX" ]; then | |
24 | for cxx in g++ clang++ ; do | |
25 | if command -v "$cxx" > /dev/null ; then | |
26 | CXX="$cxx" | |
27 | break | |
28 | fi | |
29 | done | |
30 | fi | |
31 | ||
32 | if [ -z "$CXX" ]; then | |
33 | echo "No suitable compiler found to generate make rules" | |
34 | exit 1 | |
35 | fi | |
36 | ||
37 | if command -v sed > /dev/null ; then | |
38 | : | |
39 | else | |
40 | echo "You need the 'sed' program for this script to work." | |
41 | exit 1 | |
42 | fi | |
43 | ||
44 | cd "$dir" | |
45 | ||
46 | mv Makefile Makefile.old | |
47 | sed '/FORCE:/q' Makefile.old > Makefile | |
48 | echo >> Makefile | |
49 | for file in `ls *.cpp` ; do | |
50 | "$CXX" -MT "$target/${file/.cpp/\.o}" -MM $CXXFLAGS $extra_flags "$file" | |
51 | printf '\t@echo "Compiling $<"\n' | |
52 | printf '\t$(CXX) -o $@ $(CXXFLAGS) %s -c $<\n\n' "$extra_flags" | |
53 | done >> Makefile | |
54 | rm Makefile.old | |
55 |