# 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 += libvlib.la
libvlib_la_LIBADD = libvppinfra.la -ldl -lpthread
libvlib_la_DEPENDENCIES = libvppinfra.la

BUILT_SOURCES += vlib/config.h

vlib/config.h:
	@echo "#define __PRE_DATA_SIZE" @PRE_DATA_SIZE@ > $@

libvlib_la_SOURCES =				\
  vlib/buffer.c					\
  vlib/buffer_serialize.c			\
  vlib/cli.c					\
  vlib/cli.h					\
  vlib/config.h					\
  vlib/counter.c				\
  vlib/error.c					\
  vlib/format.c					\
  vlib/i2c.c					\
  vlib/init.c					\
  vlib/linux/pci.c				\
  vlib/linux/physmem.c				\
  vlib/linux/vfio.c				\
  vlib/log.c					\
  vlib/main.c					\
  vlib/mc.c					\
  vlib/node.c					\
  vlib/node_cli.c				\
  vlib/node_format.c				\
  vlib/pci/pci.c				\
  vlib/threads.c				\
  vlib/threads_cli.c				\
  vlib/trace.c

nobase_include_HEADERS +=			\
  vlib/buffer_funcs.h				\
  vlib/buffer_node.h				\
  vlib/buffer.h					\
  vlib/cli.h					\
  vlib/cli_funcs.h				\
  vlib/config.h					\
  vlib/counter.h				\
  vlib/defs.h					\
  vlib/error_funcs.h				\
  vlib/error.h					\
  vlib/format_funcs.h				\
  vlib/global_funcs.h				\
  vlib/i2c.h					\
  vlib/init.h					\
  vlib/linux/vfio.h				\
  vlib/log.h					\
  vlib/main.h					\
  vlib/mc.h					\
  vlib/node_funcs.h				\
  vlib/node.h					\
  vlib/physmem.h				\
  vlib/pci/pci.h				\
  vlib/pci/pci_config.h				\
  vlib/physmem_funcs.h				\
  vlib/threads.h				\
  vlib/trace_funcs.h				\
  vlib/trace.h					\
  vlib/vlib.h

libvlib_la_SOURCES +=				\
  vlib/unix/cj.c				\
  vlib/unix/cli.c				\
  vlib/unix/input.c				\
  vlib/unix/main.c				\
  vlib/unix/mc_socket.c				\
  vlib/unix/plugin.c				\
  vlib/unix/plugin.h				\
  vlib/unix/util.c

nobase_include_HEADERS +=			\
  vlib/unix/cj.h				\
  vlib/unix/mc_socket.h				\
  vlib/unix/plugin.h				\
  vlib/unix/unix.h

noinst_PROGRAMS += vlib_unix

vlib_unix_SOURCES =				\
  examples/vlib/main_stub.c			\
  examples/vlib/mc_test.c

vlib_unix_LDADD = libvlib.la \
	          libvppinfra.la -lpthread -lm -ldl -lrt

# vi:syntax=automake
