blob: 00e0263694c7a3c6e2fd32b28249c9abe868fe44 [file] [log] [blame]
# Copyright (C) 2020-2021 The SymbiFlow Authors.
#
# Use of this source code is governed by a ISC-style
# license that can be found in the LICENSE file or at
# https://opensource.org/licenses/ISC
#
# SPDX-License-Identifier:ISC
PLUGIN_LIST := fasm xdc params sdc ql-iob design_introspection integrateinv ql-qlf uhdm dsp-ff
PLUGINS := $(foreach plugin,$(PLUGIN_LIST),$(plugin).so)
PLUGINS_INSTALL := $(foreach plugin,$(PLUGIN_LIST),install_$(plugin))
PLUGINS_CLEAN := $(foreach plugin,$(PLUGIN_LIST),clean_$(plugin))
PLUGINS_TEST := $(foreach plugin,$(PLUGIN_LIST),test_$(plugin))
all: plugins
TOP_DIR := $(realpath $(dir $(lastword $(MAKEFILE_LIST))))
REQUIREMENTS_FILE ?= requirements.txt
ENVIRONMENT_FILE ?= environment.yml
-include third_party/make-env/conda.mk
define install_plugin =
$(1).so:
$$(MAKE) -C $(1)-plugin $$@
install_$(1):
$$(MAKE) -C $(1)-plugin install
clean_$(1):
$$(MAKE) -C $(1)-plugin clean
test_$(1):
@$$(MAKE) --no-print-directory -C $(1)-plugin test
endef
$(foreach plugin,$(PLUGIN_LIST),$(eval $(call install_plugin,$(plugin))))
plugins: $(PLUGINS)
install: $(PLUGINS_INSTALL)
test: $(PLUGINS_TEST)
plugins_clean: $(PLUGINS_CLEAN)
clean:: plugins_clean
CLANG_FORMAT ?= clang-format-8
format:
find . \( -name "*.h" -o -name "*.cc" \) -and -not -path './third_party/*' -print0 | xargs -0 -P $$(nproc) ${CLANG_FORMAT} -style=file -i
VERIBLE_FORMAT ?= verible-verilog-format
format-verilog:
find */tests \( -name "*.v" -o -name "*.sv" \) -and -not -path './third_party/*' -print0 | xargs -0 $(VERIBLE_FORMAT) --inplace