Add config option to use dlmalloc instead of mheap
[vpp.git] / src / vpp.am
index a02206f..c5fd48a 100644 (file)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-bin_PROGRAMS += bin/vpp
+bin_PROGRAMS += bin/vpp 
 
 bin_vpp_SOURCES =                              \
   vpp/vnet/main.c                              \
   vpp/app/vpe_cli.c                            \
   vpp/app/version.c                            \
   vpp/oam/oam.c                                        \
-  vpp/stats/stats.c
+  vpp/oam/oam_api.c                            \
+  vpp/stats/stats.c                            \
+  vpp/stats/stat_segment.c
 
 bin_vpp_SOURCES +=                             \
   vpp/api/api.c                                        \
@@ -28,86 +30,73 @@ bin_vpp_SOURCES +=                          \
 if WITH_APICLI
   bin_vpp_SOURCES +=                           \
   vpp/api/api_format.c                         \
-  vpp/api/api_main.c
+  vpp/api/api_main.c                           \
+  vpp/api/plugin.c                             \
+  vpp/api/plugin.h
 endif
 
-# comment out to disable stats upload to gmond
+# uncomment to enable stats upload to gmond
+# bin_vpp_SOURCES +=                           \
+#  vpp/api/gmon.c
 
-bin_vpp_CFLAGS = @APICLI@
-bin_vpp_SOURCES +=                             \
-  vpp/api/gmon.c
+bin_vpp_CFLAGS = @APICLI@ @DLMALLOC@
 
 nobase_include_HEADERS +=                      \
   vpp/api/vpe_all_api_h.h                      \
   vpp/api/vpe_msg_enum.h                       \
+  vpp/stats/stats.api.h                        \
+  vpp/oam/oam.api.h                            \
   vpp/api/vpe.api.h
 
-API_FILES += vpp/api/vpe.api
+API_FILES +=                                   \
+  vpp/api/vpe.api                              \
+  vpp/stats/stats.api                          \
+  vpp/oam/oam.api
 
-BUILT_SOURCES += vpp/app/version.h
+BUILT_SOURCES += .version
 
 vpp/app/version.o:     vpp/app/version.h
 
-.PHONY:        vpp/app/version.h
-
-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 \"$$(git rev-parse --show-toplevel)\""  >> $@
-       @echo "#define VPP_BUILD_VER \"$$(../../scripts/version)\"" >> $@
-
-# Generate a plugin configuration script. Misconfiguring a
-# plugin can cause very subtle problems.
-
-bin_SCRIPTS = vpp_plugin_configure
+.PHONY:        .version
 
-BUILT_SOURCES += vpp_plugin_configure
+VPP_VERSION = $(shell $(srcdir)/scripts/version)
 
-.PHONY: vpp_plugin_configure
+VPP_BUILD_DATE ?= $$(date)
+VPP_BUILD_USER ?= $$(whoami)
+VPP_BUILD_HOST ?= $$(hostname)
 
-if WITH_DPDK
-PLUGIN_DPDK_ARG="--with-dpdk"
-else
-PLUGIN_DPDK_ARG=""
-endif
+# update version.h only when version changes, to avoid
+# unnecessary re-linking of vpp binary
 
-vpp_plugin_configure:
-       @echo "PLUGIN CONFIGURE " $@ 
-       @echo "#!/bin/bash" > $@
-       @echo " " >> $@
-       @echo "set +eu" >> $@
-       @echo " " >> $@
-       @echo "if [ -f ./configure ] ; then" >> $@
-       @echo "    CFLAGS='$(CFLAGS) $(AM_CFLAGS) -I/usr/include/vpp-dpdk' ./configure --with-plugin-toolkit $(PLUGIN_DPDK_ARG)" >> $@
-       @echo "else" >> $@
-       @echo "    if [ -f ../configure ] ; then" >> $@
-       @echo "        CFLAGS='$(CFLAGS) $(AM_CFLAGS) -I/usr/include/vpp-dpdk' ../configure --with-plugin-toolkit $(PLUGIN_DPDK_ARG)" >> $@
-       @echo "    else" >> $@
-       @echo "        echo Couldnt find ./configure or ../configure " >> $@
-       @echo "        exit 1" >> $@
-       @echo "    fi" >> $@
-       @echo "fi" >> $@
+.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 \"$(VPP_BUILD_DATE)\"" > $$f                             ;\
+          echo "#define VPP_BUILD_USER \"$(VPP_BUILD_USER)\"" >> $$f                            ;\
+          echo "#define VPP_BUILD_HOST \"$(VPP_BUILD_HOST)\"" >> $$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
 
 bin_vpp_LDADD = \
-  libvlibapi.la \
   libvlibmemory.la \
-  libvlib_unix.la \
   libvlib.la \
   libvnet.la \
   libsvm.la \
   libsvmdb.la \
-  libvnetplugin.la \
-  -lrt
+  libvppinfra.la \
+  -lrt -lm -lpthread -ldl
 
-bin_vpp_LDFLAGS = $(DPDK_LD_FLAGS)
-bin_vpp_LDADD += libvppinfra.la -lm -lpthread -ldl $(DPDK_LD_ADD)
+bin_vpp_LDFLAGS = -Wl,--export-dynamic
 
-if WITH_IPV6SR
-  bin_vpp_LDADD += -lcrypto
-endif
+bin_PROGRAMS += bin/vppctl
+bin_vppctl_SOURCES = vpp/app/vppctl.c
+bin_vppctl_LDADD = libvppinfra.la
 
+if ENABLE_TESTS
 noinst_PROGRAMS += bin/test_client
 
 bin_test_client_SOURCES = \
@@ -115,7 +104,6 @@ bin_test_client_SOURCES = \
 
 bin_test_client_LDADD = \
   libvlibmemoryclient.la \
-  libvlibapi.la \
   libsvm.la \
   libvppinfra.la \
   -lpthread -lm -lrt
@@ -127,24 +115,36 @@ bin_test_ha_SOURCES = \
 
 bin_test_ha_LDADD = \
   libvlibmemoryclient.la \
-  libvlibapi.la \
-  libsvmdb.la \
   libsvm.la \
   libvppinfra.la \
   -lpthread -lm -lrt
+endif
 
 noinst_PROGRAMS += bin/summary_stats_client
 
 bin_summary_stats_client_SOURCES = \
-  vpp/api/summary_stats_client.c
+   vpp/api/summary_stats_client.c
 
 bin_summary_stats_client_LDADD = \
+   libvlibmemoryclient.la \
+   libsvm.la \
+   libvppinfra.la \
+   -lpthread -lm -lrt
+
+noinst_PROGRAMS += bin/stat_client
+
+bin_stat_client_SOURCES = \
+  vpp/app/stat_client.c \
+  vpp/app/stat_client.h
+
+bin_stat_client_LDADD = \
   libvlibmemoryclient.la \
-  libvlibapi.la \
   libsvm.la \
   libvppinfra.la \
   -lpthread -lm -lrt
 
+
+
 bin_PROGRAMS += bin/vpp_get_metrics
 
 bin_vpp_get_metrics_SOURCES = \
@@ -156,4 +156,6 @@ bin_vpp_get_metrics_LDADD = \
   libvppinfra.la \
   -lpthread -lm -lrt
 
+CLEANFILES += vpp/app/version.h
+
 # vi:syntax=automake