# Copyright (c) 2017 Cisco and/or its affiliates.
# 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.

lib_LTLIBRARIES += libvppcom.la libvcl_ldpreload.la

libvppcom_la_SOURCES =
libvcl_ldpreload_la_SOURCES =
libvppcom_la_DEPENDENCIES = 	\
	libvppinfra.la		\
	libvlib.la		\
	libsvmdb.la		\
	libsvm.la 		\
	libvlibmemory.la 	\
	libvlibmemoryclient.la

libvcl_ldpreload_la_DEPENDENCIES = $(libvppcom_la_DEPENDENCIES)

libvppcom_la_LIBADD = $(libvppcom_la_DEPENDENCIES) -lpthread
libvcl_ldpreload_la_LIBADD = $(libvcl_ldpreload_la_DEPENDENCIES) -lpthread

libvppcom_la_SOURCES +=				\
  vcl/vppcom.c

nobase_include_HEADERS +=			\
  vcl/vppcom.h

libvcl_ldpreload_la_SOURCES +=			\
  vcl/vcom_socket_wrapper.c			\
  vcl/vcom.c					\
  vcl/vcom_socket.c				\
  vcl/vppcom.c

nobase_include_HEADERS +=			\
  vcl/vcom_socket_wrapper.h			\
  vcl/vcom_glibc_socket.h			\
  vcl/vcom.h					\
  vcl/vcom_socket.h

noinst_PROGRAMS +=				\
	vcl_test_server				\
	vcl_test_client				\
	sock_test_server			\
	sock_test_client

vcl_test_server_SOURCES = vcl/vcl_test_server.c
vcl_test_server_LDADD = libvppcom.la

vcl_test_client_SOURCES = vcl/vcl_test_client.c
vcl_test_client_LDADD = libvppcom.la

sock_test_server_SOURCES = vcl/sock_test_server.c
sock_test_client_SOURCES = vcl/sock_test_client.c

nobase_include_HEADERS +=			\
  vcl/sock_test.h
