# Copyright (c) 2015 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 += libvlibapi.la libvlibmemory.la libvlibmemoryclient.la \
	           libvlibsocket.la

libvlibapi_la_LIBADD = libvppinfra.la
libvlibapi_la_DEPENDENCIES = libvppinfra.la libvlib.la
libvlibapi_la_SOURCES = 			\
	vlibapi/api.h				\
        vlibapi/api_helper_macros.h		\
	vlibapi/api_shared.c			\
	vlibapi/node_serialize.c

nobase_include_HEADERS += vlibapi/api.h vlibapi/api_helper_macros.h

libvlibmemory_la_LIBADD = libvppinfra.la libsvm.la -lpthread
libvlibmemory_la_DEPENDENCIES = libvppinfra.la libsvm.la libvlib.la
libvlibmemory_la_SOURCES =			\
	vlibmemory/api.h			\
	vlibmemory/memclnt.api			\
	vlibmemory/memory_shared.c		\
	vlibmemory/memory_vlib.c		\
	vlibmemory/vl_memory_api_h.h		\
	vlibmemory/vl_memory_msg_enum.h		\
	vlibmemory/unix_shared_memory_queue.c	\
	vlibmemory/unix_shared_memory_queue.h

libvlibmemoryclient_la_LIBADD = libvppinfra.la libsvm.la -lpthread
libvlibmemoryclient_la_DEPENDENCIES = libvppinfra.la libsvm.la libvlib.la
libvlibmemoryclient_la_SOURCES = 		\
	vlibmemory/api.h			\
	vlibmemory/memclnt.api			\
	vlibmemory/memory_shared.c		\
	vlibmemory/memory_client.c		\
	vlibmemory/vl_memory_api_h.h		\
	vlibmemory/vl_memory_msg_enum.h		\
	vlibmemory/unix_shared_memory_queue.c	\
	vlibmemory/unix_shared_memory_queue.h

nobase_include_HEADERS +=			\
	vlibmemory/api.h			\
	vlibmemory/vl_memory_api_h.h		\
	vlibmemory/vl_memory_msg_enum.h		\
	vlibmemory/unix_shared_memory_queue.h 	\
	vlibmemory/memclnt.api.h

libvlibsocket_la_LIBADD = libvppinfra.la
libvlibsocket_la_DEPENDENCIES = libvppinfra.la
libvlibsocket_la_SOURCES =			\
	vlibsocket/api.h			\
	vlibsocket/sockclnt.api			\
	vlibsocket/sockclnt_vlib.c		\
	vlibsocket/socksvr_vlib.c		\
	vlibsocket/vl_socket_api_h.h		\
	vlibsocket/vl_socket_msg_enum.h

nobase_include_HEADERS +=			\
	vlibsocket/api.h			\
	vlibsocket/vl_socket_api_h.h		\
	vlibsocket/vl_socket_msg_enum.h		\
	vlibsocket/sockclnt.api.h

BUILT_SOURCES +=					\
	vlibsocket/sockclnt.api.h		\
	vlibmemory/memclnt.api.h		\
	vlibmemory/memclnt.api.json

API_FILES += vlibmemory/memclnt.api

# vi:syntax=automake
