export CC = clang export CXX = clang++ export SYSTEMC_HOME := $(PWD)/INSTALL V ?= 0 ifeq ($V,1) NINJA_FLAGS += --verbose CCTEST_FLAGS += --verbose endif SRCS = $(shell find src test -type f -name \*.h -or -name \*.cc) BINS = $(SRCS: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/CMakeLists-sysc-external.txt cmake/CMakeLists-sysc-fetch.txt 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=14 \ -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 $(SRCS) # -- CLEAN --------------------------------------------------------------------- clean: ninja -C BUILD clean distclean: $(RM) -r BUILD compile_commands.json