export CC = clang export CXX = clang++ export SYSTEMC_HOME := $(PWD)/INSTALL V ?= 0 ifeq ($V,1) NINJA_FLAGS += --verbose CCTEST_FLAGS += --verbose endif SIMS = $(wildcard src/*.cc) BINS = $(SIMS:src/%.cc=BUILD/pg-%) # -- SYSTEMC PLAYGROUND -------------------------------------------------------- build: config ninja -C BUILD $(NINJA_FLAGS) run: build @for B in $(BINS); do \ echo "==> $$B"; \ $$B; \ done run/%: config ninja -C BUILD $(NINJA_FLAGS) pg-$* BUILD/pg-$* test: build cd BUILD/test && ctest --output-on-failure $(CCTEST_FLAGS) config: BUILD/CMakeCache.txt cmake/SystemC-external.cmake cmake/SystemC-fetch.cmake BUILD/CMakeCache.txt: CMakeLists.txt # SystemC options: # BUILD_SHARED_LIBS cmake -B BUILD -S . \ -G Ninja \ -DCMAKE_EXPORT_COMPILE_COMMANDS=1 \ -DCMAKE_BUILD_TYPE=DEBUG \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=OFF \ #-DCMAKE_FIND_DEBUG_MODE=ON ln -sfn BUILD/compile_commands.json # -- UTIL ---------------------------------------------------------------------- targets: ninja -C BUILD -t targets fmt: clang-format -i $(shell find src test -type f -name \*.h -or -name \*.cc) # -- CLEAN --------------------------------------------------------------------- clean: ninja -C BUILD clean distclean: $(RM) -r BUILD compile_commands.json