export CC = clang export CXX = clang++ export SYSTEMC_HOME := $(PWD)/INSTALL V ?= 0 ifeq ($V,1) NINJA_FLAGS += --verbose endif SRCS = $(wildcard src/*.cc) BINS = $(SRCS:src/%.cc=BUILD/PLAYGROUND/%) # -- SYSTEMC PLAYGROUND -------------------------------------------------------- run: build @for B in $(BINS); do \ echo "==> $$B"; \ $$B; \ done build: INSTALL/lib/libsystemc.a BUILD/PLAYGROUND/CMakeCache.txt $(SRCS) ninja -C BUILD/PLAYGROUND $(NINJA_FLAGS) BUILD/PLAYGROUND/CMakeCache.txt: CMakeLists.txt cmake -B BUILD/PLAYGROUND $@ -S . \ -G Ninja \ -DCMAKE_EXPORT_COMPILE_COMMANDS=1 \ -DCMAKE_BUILD_TYPE=DEBUG \ #-DCMAKE_FIND_DEBUG_MODE=ON #ninja -C $@ -t compdb > compile_commands.json # -- SYSTEMC ------------------------------------------------------------------- INSTALL/lib/libsystemc.a: BUILD/SYSC/CMakeCache.txt ninja -C BUILD/SYSC install $(NINJA_FLAGS) BUILD/SYSC/CMakeCache.txt: systemc cmake -B BUILD/SYSC -S systemc \ -G Ninja \ -DCMAKE_EXPORT_COMPILE_COMMANDS=1 \ -DCMAKE_BUILD_TYPE=DEBUG \ -DCMAKE_INSTALL_PREFIX=$(PWD)/INSTALL \ -DBUILD_SHARED_LIBS=OFF \ -DCMAKE_CXX_STANDARD=14 systemc: git clone --depth=1 https://github.com/accellera-official/systemc.git # -- UTIL ---------------------------------------------------------------------- fmt: clang-format -i $(shell find src -type f) # -- CLEAN --------------------------------------------------------------------- clean: $(RM) -r BUILD/PLAYGROUND compile_commands.json distclean: clean $(RM) -r BUILD INSTALL systemc