1UNAME_S := $(shell uname -s)
2
3ifeq ($(UNAME_S),Linux)
4 LLVM_PREFIX := /usr/lib/llvm/21
5 CXX := clang++
6 CC := clang
7 CXXFLAGS := -I$(LLVM_PREFIX)/include -std=c++17
8 LDFLAGS := -L$(LLVM_PREFIX)/lib -Wl,-rpath,$(LLVM_PREFIX)/lib -llldb
9endif
10
11ifeq ($(UNAME_S),Darwin)
12 LLVM_PREFIX := /System/Volumes/Data/opt/homebrew/Cellar/llvm/21.1.8
13 CXX := $(LLVM_PREFIX)/bin/clang++
14 CC := $(LLVM_PREFIX)/bin/clang
15 SDKROOT := $(shell xcrun --show-sdk-path)
16 CXXFLAGS := -isysroot $(SDKROOT) -I$(LLVM_PREFIX)/include -std=c++17 -stdlib=libc++
17 LDFLAGS := -L$(LLVM_PREFIX)/lib -Wl,-rpath,$(LLVM_PREFIX)/lib -llldb
18endif
19
20all: tdbg example
21
22tdbg: tdbg.cpp
23 $(CXX) tdbg.cpp -o tdbg $(CXXFLAGS) $(LDFLAGS)
24
25example: example.c
26 $(CC) -g -o example example.c
27
28clean:
29 rm -f tdbg example