|
1 | 1 | # Standard stuff |
2 | 2 |
|
3 | 3 | .SUFFIXES: |
4 | | -$(VERBOSE).SILENT: |
5 | 4 |
|
6 | | -MAKEFLAGS+= --no-builtin-rules |
7 | | -MAKEFLAGS+= --warn-undefined-variables |
| 5 | +MAKEFLAGS+= --no-builtin-rules # Disable the built-in implicit rules. |
| 6 | +# MAKEFLAGS+= --warn-undefined-variables # Warn when an undefined variable is referenced. |
| 7 | +# MAKEFLAGS+= --include-dir=$(CURDIR)/conan # Search DIRECTORY for included makefiles (*.mk). |
8 | 8 |
|
9 | 9 | export hostSystemName=$(shell uname) |
10 | 10 |
|
11 | 11 | ifeq (${hostSystemName},Darwin) |
12 | | - export LLVM_PREFIX:=$(shell brew --prefix llvm) |
13 | | - export LLVM_DIR?=$(shell realpath ${LLVM_PREFIX}) |
| 12 | + export LLVM_PREFIX=$(shell brew --prefix llvm) |
| 13 | + export LLVM_DIR=$(shell realpath ${LLVM_PREFIX}) |
14 | 14 | export PATH:=${LLVM_DIR}/bin:${PATH} |
15 | | - # export CXX:=clang++ |
16 | 15 |
|
17 | | - # to test g++-15: |
| 16 | + # export CMAKE_CXX_STDLIB_MODULES_JSON=${LLVM_DIR}/lib/c++/libc++.modules.json |
| 17 | + # export CXX=clang++ |
| 18 | + # export LDFLAGS=-L$(LLVM_DIR)/lib/c++ -lc++abi -lc++ -lc++experimental |
| 19 | + # export GCOV="llvm-cov gcov" |
| 20 | + |
| 21 | + ### TODO: to test g++-15: |
| 22 | + export GCC_PREFIX=$(shell brew --prefix gcc) |
| 23 | + export GCC_DIR=$(shell realpath ${GCC_PREFIX}) |
| 24 | + |
| 25 | + export CMAKE_CXX_STDLIB_MODULES_JSON=${GCC_DIR}/lib/gcc/current/libstdc++.modules.json |
18 | 26 | export CXX:=g++-15 |
19 | 27 | export CXXFLAGS:=-stdlib=libstdc++ |
| 28 | + export GCOV="gcov" |
20 | 29 | else ifeq (${hostSystemName},Linux) |
21 | | - export LLVM_DIR?=/usr/lib/llvm-20 |
| 30 | + export LLVM_DIR=/usr/lib/llvm-20 |
22 | 31 | export PATH:=${LLVM_DIR}/bin:${PATH} |
23 | | - export CXX:=clang++-20 |
| 32 | + export CXX=clang++-20 |
24 | 33 | endif |
25 | 34 |
|
26 | 35 | .PHONY: all check test example format clean distclean |
@@ -67,6 +76,5 @@ GNUmakefile :: ; |
67 | 76 | *.json :: ; |
68 | 77 |
|
69 | 78 | # Anything we don't know how to build will use this rule. |
70 | | -# The command is a do-nothing command. |
71 | | -# |
72 | | -% :: ; |
| 79 | +% :: |
| 80 | + ninja -C build $(@) |
0 commit comments