# 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		\
	libsvm.la 		\
	libvlibmemoryclient.la

libvppcom_la_LIBADD = $(libvppcom_la_DEPENDENCIES) -lpthread -lrt
libvcl_ldpreload_la_LIBADD = -lpthread -lrt -ldl

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				\
  $(libvppcom_la_SOURCES)			\
  $(libvppinfra_la_SOURCES)			\
  $(libvlib_la_SOURCES)				\
  $(libsvm_la_SOURCES)				\
  $(libvlibmemoryclient_la_SOURCES)

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

# Link libvcl_ldpreload.la instead of vppcom.la
# to validate that all symbols are included in
# libvcl_ldpreload.la at build time.
#
# Not recommended for production VCL apps as
# it includes extraneous code which will never
# be executed.
vcl_test_client_LDADD = libvcl_ldpreload.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
