# SPDX-License-Identifier: GPL-2.0
#
# Makefile for Kernel vSwitch.
#

SRCKVS := kvs_main.c \
          vpc/port.c \
          vpc/vpc.c \
          vpc/subnet.c \
          vpc/subnet-gw.c \
          vpc/qos.c \
          vpc/vpc_acl.c \
          vpc/pkt_parse.c \
          vpc/udp_tunnel.c \
          vpc/tunnel.c \
          vpc/route-table-nh.c \
          vpc/lpm.c \
          vpc/action.c \
          vpc/flow_table.c \
          vpc/kvnc-rib.c \
          vpc/route-table.c \
          vpc/node/kvnc-csum.c \
          vpc/node/kvnc-trace.c \
          vpc/node/kvnc-dp-packets.c \
          vpc/node/kvnc-packets.c \
          vpc/node/dp-node-recv.c \
          vpc/node/dp-node-output.c \
          vpc/node/ls-node-in-sec.c \
          vpc/node/ls-node-out-sec.c \
          vpc/node/ls-node-recv.c \
          vpc/node/ls-node-in-qos.c \
          vpc/node/ls-node-out-qos.c \
          vpc/node/ls-node-dhcp.c \
          vpc/node/ls-node-output.c \
          vpc/node/ls-node-l2-fwd.c \
          vpc/node/ls-node-port-cls.c \
          vpc/node/ls-node-l2-proxy.c \
          vpc/node/ls-node-in-prev-sec.c \
          vpc/node/ls-node-out-prev-sec.c \
          vpc/node/ls-node-local-svc-filter.c \
          vpc/node/ls-node-l3-in-acl.c \
          vpc/node/ls-node-l3-out-acl.c \
          vpc/node/ls-node-l3-lookup.c \
          vpc/node/ls-node-l3-rewrite.c \
          vpc/node/ls-node-icmp-proxy.c \
          vpc/node/ls-node-flow-table-lookup.c \
          vpc/node/ls-node-fast-path.c \
          vpc/node/ls-node-drop.c \
          vpc/lsw/lsw_device.c \
          vpc/lsw/lsw_forward.c \
          vpc/lsw/lsw_input.c \
          vpc/lsw/init.c \
          vpc/lsw/lsw_fdb.c \
          vpc/lsw/lsw_if.c \
          vpc/lsw/lsw_ioctl.c \
          vpc/lsw/lsw_sysfs_if.c \
          vpc/lsw/lsw_notify.c \
          vpc/vpc_test.c \
          vpc/vxlan_test.c \
          graph/graph_debug.c \
          graph/graph.c \
          graph/graph_stats.c \
          graph/graph_ops.c \
          graph/graph_populate.c \
          graph/graph_utils.c \
          graph/graph_test.c \
          graph/node.c \
          acl/acl_run_scalar.c \
          acl/kvnc-acl-table.c \
          acl/kvnc-acl-util.c \
          acl/kvnc-acl.c \
          acl/sal_acl.c \
          acl/acl_bld.c \
          acl/tb_mem.c \
          acl/acl_gen.c \
          ctl/netlink.c \
          ctl/ctl.c \
          ctl/ctl_acl.c \
          ctl/ctl_qos.c \
          ctl/ctl_pb.c \
          ctl/ctl_subnet.c \
          ctl/ctl_rtb_assoc.c \
          ctl/ctl_rtb.c \
          ctl/ctl_vpc.c \
          ctl/ctl_port.c \
          ctl/ctl_trace.c

KVS_DEBUG ?= off

ifeq ($(KVS_DEBUG),on)
	ccflags-y += -O0
	ccflags-y += -DDEBUG
endif

ccflags-y += -Inet/kvs/include

MODULE_NAME = kvs
$(MODULE_NAME)-objs = $(SRCKVS:.c=.o)
obj-$(CONFIG_KVS) := $(MODULE_NAME).o
