Fix issues reported by coverity
[vpp.git] / vpp / Makefile.am
index eef0ff6..52ce065 100644 (file)
 
 AUTOMAKE_OPTIONS = foreign subdir-objects
 
-AM_CFLAGS = -Wall @Q_PLATFORM_DEFINE@ @Q_PLATFORM_PLUGPATH@ @DPDK@
+AM_CFLAGS = -Wall @DPDK@ @IPSEC@ @VCGN@ @IPV6SR@
 
 noinst_PROGRAMS = 
 BUILT_SOURCES =
 bin_PROGRAMS = 
 CLEANFILES = 
-lib_LTLIBRARIES =
 
-bin_PROGRAMS += vpe
+bin_PROGRAMS += vpp
 
-vpe_SOURCES =                                  \
+vpp_SOURCES =                                  \
   vnet/main.c                                  \
   app/vpe_cli.c                                        \
   app/version.c                                        \
   oam/oam.c                                    \
   stats/stats.c
 
-vpe_SOURCES +=                                 \
-  api/api.c                                    \
-  api/custom_dump.c
+vpp_SOURCES +=                                 \
+  vpp-api/api.c                                        \
+  vpp-api/custom_dump.c
 
 # comment out to disable stats upload to gmond 
 
-vpe_SOURCES +=                                 \
-  api/gmon.c   
+vpp_SOURCES +=                                 \
+  vpp-api/gmon.c       
 
 nobase_include_HEADERS =                       \
-  api/vpe_all_api_h.h                          \
-  api/vpe_msg_enum.h                           \
-  api/vpe.api.h
+  vpp-api/vpe_all_api_h.h                      \
+  vpp-api/vpe_msg_enum.h                       \
+  vpp-api/vpe.api.h
 
 # install the API definition, so we can produce java bindings, etc.
 
-apidir = $(prefix)/api
-api_DATA = api/vpe.api
+apidir = $(prefix)/vpp-api
+api_DATA = vpp-api/vpe.api
 
-BUILT_SOURCES += api/vpe.api.h app/version.c
+BUILT_SOURCES += vpp-api/vpe.api.h app/version.h
 
-.PHONY:        app/version.c
+app/version.o: app/version.h
 
-app/version.c:
-       @pushd ../../../vpp ;                                   \
-       branch=`git rev-parse --abbrev-ref HEAD` ;              \
-       popd ;                                                  \
-       if [ x$$GITTAG = "x" ] ; then                           \
-          GITTAG=$$USER-private ;                              \
-       fi ;                                                    \
-       vppversion -p vpe -b $${branch}@$${GITTAG} -o $@
+.PHONY:        app/version.h
 
-vpe_LDADD = -lvlibapi -lvlibmemory  -lvlib_unix -lvlib 
+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)\"" >> $@
 
-vpe_LDADD += -l:libvnet.a
+# Generate a plugin configuration script. Misconfiguring a
+# plugin can cause very subtle problems.
 
-vpe_LDADD += -lsvm -lsvmdb -lrt
+bin_SCRIPTS = vpp_plugin_configure
 
-vpe_LDADD += -lvnetplugin
+BUILT_SOURCES += vpp_plugin_configure
+
+.PHONY: vpp_plugin_configure
+
+if WITH_DPDK
+PLUGIN_DPDK_ARG="--with-dpdk"
+else
+PLUGIN_DPDK_ARG=""
+endif
+
+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" >> $@
+
+vpp_LDADD = -lvlibapi -lvlibmemory  -lvlib_unix -lvlib
+
+vpp_LDADD += -lvnet
+
+vpp_LDADD += -lsvm -lsvmdb -lrt
+
+vpp_LDADD += -lvnetplugin
 
 if WITH_DPDK
-vpe_LDADD += -l:libdpdk.a
+vpp_LDFLAGS = -Wl,--whole-archive
+if ENABLE_DPDK_SHARED
+vpp_LDFLAGS += -ldpdk
+else
+vpp_LDFLAGS += -l:libdpdk.a
+endif
+vpp_LDFLAGS += -Wl,--no-whole-archive
 endif
 
-# These go last
+vpp_LDADD += -lvppinfra -lm -lpthread -ldl
 
-vpe_LDADD += -lvppinfra -lm -lpthread -lcrypto -ldl
+if WITH_IPV6SR
+  vpp_LDADD += -lcrypto
+endif
 
 SUFFIXES = .api.h .api
 
 %.api.h: %.api
        @echo "  APIGEN  " $@ ;                                 \
-       @mkdir -p `dirname $@` ;                                \
+       mkdir -p `dirname $@` ;                                 \
        $(CC) $(CPPFLAGS) -E -P -C -x c $^                      \
        | vppapigen --input - --output $@ --show-name $@
 
 
-noinst_PROGRAMS += test_client test_ha
+noinst_PROGRAMS += test_client
 
-test_client_SOURCES = api/test_client.c
+test_client_SOURCES = vpp-api/test_client.c
 test_client_LDADD = -lvlibmemoryclient -lvlibapi -lsvm -lvppinfra \
        -lpthread -lm -lrt
 
-test_ha_SOURCES = api/test_ha.c
+noinst_PROGRAMS += test_client test_ha
+
+test_ha_SOURCES = vpp-api/test_ha.c
 test_ha_LDADD = -lvlibmemoryclient -lvlibapi -lsvmdb -lsvm -lvppinfra \
                -lpthread -lm -lrt
 
+
 noinst_PROGRAMS += summary_stats_client
 
-summary_stats_client_SOURCES = api/summary_stats_client.c
+summary_stats_client_SOURCES = vpp-api/summary_stats_client.c
 summary_stats_client_LDADD = -lvlibmemoryclient -lvlibapi -lsvm -lvppinfra \
        -lpthread -lm -lrt
+
+bin_PROGRAMS += vpp_get_metrics
+
+vpp_get_metrics_SOURCES = vpp-api/vpp_get_metrics.c
+vpp_get_metrics_LDADD = -lsvmdb -lsvm -lvppinfra \
+               -lpthread -lm -lrt