nobase_include_HEADERS += svm/svm.h svm/ssvm.h svm/svmdb.h
-libsvmdir = ${libdir}
-libsvm_LTLIBRARIES = libsvm.la libsvmdb.la
+lib_LTLIBRARIES += libsvm.la libsvmdb.la
+libsvm_la_LIBADD = libvppinfra.la -lrt -lpthread
+libsvm_la_DEPENDENCIES = libvppinfra.la
libsvm_la_SOURCES = svm/svm.c svm/ssvm.c
svmtool_SOURCES = svm/svmtool.c
svmtool_LDADD = libsvm.la libvppinfra.la -lpthread -lrt
+libsvmdb_la_LIBADD = libvppinfra.la libsvm.la
+libsvmdb_la_DEPENDENCIES = libvppinfra.la libsvm.la
libsvmdb_la_SOURCES = svm/svmdb.c
svmdbtool_SOURCES = svm/svmdbtool.c
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 \
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/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/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 \
libvnet_la_SOURCES =
libvnetplugin_la_SOURCES =
-libvnet_la_LIBAD = libvppinfra.la libvlib.la libsvm.la
+libvnet_la_LIBADD = libvppinfra.la libsvm.la
+libvnet_la_DEPENDENCIES = libvppinfra.la libvlib.la libsvmdb.la libsvm.la libvlibapi.la libvlibmemory.la libvlibmemoryclient.la
+
+if WITH_IPV6SR
+libvnet_la_LIBADD += -lcrypto
+endif
########################################
# Generic stuff
# See the License for the specific language governing permissions and
# limitations under the License.
+libvatplugin_la_LIBADD = libvppinfra.la
+libvatplugin_la_DEPENDENCIES = libvppinfra.la
libvatplugin_la_SOURCES = \
vat/plugin_api.c
API_FILES += vpp/api/vpe.api
-BUILT_SOURCES += vpp/app/version.h
+BUILT_SOURCES += .version
vpp/app/version.o: vpp/app/version.h
-.PHONY: vpp/app/version.h
+.PHONY: .version
+
+VPP_VERSION = $(shell $(srcdir)/scripts/version)
+
+# update version.h only when version changes, to avoid
+# unnecessary re-linking of vpp binary
+
+.version:
+ @if [ "$$(cat .version 2> /dev/null)" != "$(VPP_VERSION)" ] ; then \
+ f="vpp/app/version.h" ;\
+ echo " VERSION $$f ($(VPP_VERSION))" ;\
+ echo $(VPP_VERSION) > .version ;\
+ echo "#define VPP_BUILD_DATE \"$$(date)\"" > $$f ;\
+ echo "#define VPP_BUILD_USER \"$$(whoami)\"" >> $$f ;\
+ echo "#define VPP_BUILD_HOST \"$$(hostname)\"" >> $$f ;\
+ echo -n "#define VPP_BUILD_TOPDIR " >> $$f ;\
+ echo "\"$$(cd $(srcdir) && git rev-parse --show-toplevel)\"" >> $$f ;\
+ echo "#define VPP_BUILD_VER \"$(VPP_VERSION)\"" >> $$f ;\
+ fi
-vpp/app/version.h:
- @echo " VERSION " $@
- @echo "#define VPP_BUILD_DATE \"$$(date)\"" > $@
- @echo "#define VPP_BUILD_USER \"$$(whoami)\"" >> $@
- @echo "#define VPP_BUILD_HOST \"$$(hostname)\"" >> $@
- @echo "#define VPP_BUILD_TOPDIR \"$$(cd $(srcdir) && git rev-parse --show-toplevel)\"" >> $@
- @echo "#define VPP_BUILD_VER \"$$($(srcdir)/scripts/version)\"" >> $@
# Generate a plugin configuration script. Misconfiguring a
# plugin can cause very subtle problems.
bin_vpp_LDFLAGS = $(DPDK_LD_FLAGS)
bin_vpp_LDADD += libvppinfra.la -lm -lpthread -ldl $(DPDK_LD_ADD)
-if WITH_IPV6SR
- bin_vpp_LDADD += -lcrypto
-endif
-
noinst_PROGRAMS += bin/test_client
bin_test_client_SOURCES = \