# Copyright 2020-2022 F4PGA Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# SPDX-License-Identifier: Apache-2.0

PLUGIN_DIR := $(abspath $(dir $(lastword $(MAKEFILE_LIST))))

NAME = systemverilog
SOURCES = UhdmAst.cc \
          uhdmastfrontend.cc \
          uhdmcommonfrontend.cc \
          uhdmsurelogastfrontend.cc \
          third_party/yosys/const2ast.cc \
          third_party/yosys/simplify.cc

# Directory to search for Surelog and UHDM libraries
UHDM_INSTALL_DIR ?= /usr/local

# Tell pkg-config to look in the provided install path first.
# PKG_CONFIG_PATH and PKG_CONFIG_PATH_FOR_TARGET are search paths it looks in
# so set the environment variables and prefix with our local install first
PKG_CONFIG_INVOKE = \
   PKG_CONFIG_PATH=$(UHDM_INSTALL_DIR)/lib/pkgconfig:${PKG_CONFIG_PATH} \
   PKG_CONFIG_PATH_FOR_TARGET=$(UHDM_INSTALL_DIR)/lib/pkgconfig:${PKG_CONFIG_PATH_FOR_TARGET} \
   pkg-config

include ../Makefile_plugin.common

# A litmus-test: make compilation fail if pkg-config fails
.SECONDARY: $(BUILD_DIR)/.$(NAME)-deps-test
$(BUILD_DIR)/.$(NAME)-deps-test:
	$(PKG_CONFIG_INVOKE) --cflags Surelog

${SO_LIB}: | $(BUILD_DIR)/.$(NAME)-deps-test

CXXFLAGS += -std=c++17 -Wall -W -Wextra \
            -Wno-deprecated-declarations \
            -Wno-unused-parameter \
            $(shell $(PKG_CONFIG_INVOKE) --cflags Surelog)

LDFLAGS += $(shell $(PKG_CONFIG_INVOKE) --libs-only-L Surelog)

LDLIBS += $(shell $(PKG_CONFIG_INVOKE) --libs-only-l --libs-only-other Surelog)
