Merging all ioam plugin libraries to single library
[vpp.git] / plugins / ioam-plugin / Makefile.am
index 9a87767..ac2421d 100644 (file)
@@ -17,20 +17,8 @@ AM_CFLAGS = -Wall
 AM_LDFLAGS = -module -shared -avoid-version
 
 ########################################
-# iOAM Proof of Transit
+# iOAM APIs
 ########################################
-
-ioam_pot_plugin_la_SOURCES =                   \
-       ioam/lib-pot/pot_util.c                 \
-       ioam/encap/ip6_ioam_pot.c               \
-       ioam/lib-pot/pot_util.h                 \
-       ioam/lib-pot/math64.h                   \
-       ioam/lib-pot/pot_api.c
-
-BUILT_SOURCES =                                        \
-       ioam/lib-pot/pot.api.h                  \
-       ioam/lib-pot/pot.api.json
-
 SUFFIXES = .api.h .api
 
 %.api.h: %.api
@@ -39,129 +27,135 @@ SUFFIXES = .api.h .api
        | vppapigen --input - --output $@ --show-name $@
 
 %.api.json: %.api
-       @echo "  JSON APIGEN  " $@ ;                            \
+       @echo "  JSON APIGEN  " $@ ;                    \
        mkdir -p `dirname $@` ;                                 \
-       $(CC) $(CPPFLAGS) -E -P -C -x c $^                      \
+       $(CC) $(CPPFLAGS) -E -P -C -x c $^              \
        | vppapigen --input - --json $@
 
 apidir = $(prefix)/ioam/
-api_DATA =                                     \
-       ioam/lib-pot/pot.api.json               \
+api_DATA =                                                             \
+       ioam/lib-pot/pot.api.json                       \
        ioam/lib-trace/trace.api.json           \
        ioam/export/ioam_export.api.json
 
-noinst_HEADERS =                               \
-  ioam/lib-pot/pot_all_api_h.h                 \
-  ioam/lib-pot/pot_msg_enum.h                  \
-  ioam/lib-pot/pot.api.h                       \
-  ioam/lib-pot/pot_util.h                      \
-  ioam/lib-pot/math64.h
+########################################
+# iOAM Proof of Transit
+########################################
+
+IOAM_POT_SRC =                                         \
+       ioam/lib-pot/pot_util.c                 \
+       ioam/encap/ip6_ioam_pot.c               \
+       ioam/lib-pot/pot_util.h                 \
+       ioam/lib-pot/math64.h                   \
+       ioam/lib-pot/pot_api.c
+
+IOAM_POT_BUILT_SRC =                           \
+       ioam/lib-pot/pot.api.h                  \
+       ioam/lib-pot/pot.api.json
+
+IOAM_POT_NOINST_HDR =                          \
+       ioam/lib-pot/pot_all_api_h.h    \
+       ioam/lib-pot/pot_msg_enum.h             \
+       ioam/lib-pot/pot.api.h                  \
+       ioam/lib-pot/pot_util.h                 \
+       ioam/lib-pot/math64.h
 
-ioam_pot_test_plugin_la_SOURCES =              \
+ioam_pot_test_plugin_la_SOURCES =      \
        ioam/lib-pot/pot_test.c                 \
        ioam/lib-pot/pot_plugin.api.h
 
-vppapitestpluginsdir = ${libdir}/vpp_api_test_plugins
-vpppluginsdir = ${libdir}/vpp_plugins
-
 vppapitestplugins_LTLIBRARIES = ioam_pot_test_plugin.la
-vppplugins_LTLIBRARIES = ioam_pot_plugin.la
 
 ########################################
 # iOAM trace export for IPv6
 ########################################
 
-ioam_export_plugin_la_SOURCES =   \
-ioam/export/ioam_export.c         \
-ioam/export/node.c                \
-ioam/export/ioam_export.api.h     \
-ioam/export/ioam_export_thread.c
+IOAM_EXPORT_SRC =                                      \
+    ioam/export/ioam_export.c          \
+    ioam/export/node.c                 \
+    ioam/export/ioam_export.api.h      \
+    ioam/export/ioam_export_thread.c
 
-BUILT_SOURCES +=                               \
+IOAM_EXPORT_BUILT_SRC =                                        \
        ioam/export/ioam_export.api.h           \
        ioam/export/ioam_export.api.json
 
-noinst_HEADERS +=                       \
-  ioam/export/ioam_export_all_api_h.h   \
-  ioam/export/ioam_export_msg_enum.h    \
-  ioam/export/ioam_export.api.h
+IOAM_EXPORT_NOINST_HDR =                               \
+       ioam/export/ioam_export_all_api_h.h \
+       ioam/export/ioam_export_msg_enum.h  \
+       ioam/export/ioam_export.api.h
 
-ioam_export_test_plugin_la_SOURCES =  \
-  ioam/export/ioam_export_test.c      \
-  ioam/export/ioam_export_plugin.api.h
+ioam_export_test_plugin_la_SOURCES =   \
+       ioam/export/ioam_export_test.c      \
+       ioam/export/ioam_export_plugin.api.h
 
 vppapitestplugins_LTLIBRARIES += ioam_export_test_plugin.la
-vppplugins_LTLIBRARIES += ioam_export_plugin.la
 
 ########################################
 # iOAM Trace
 ########################################
-libioam_trace_plugin_la_SOURCES =              \
+IOAM_TRACE_SRC =                                       \
        ioam/lib-trace/trace_util.c             \
        ioam/encap/ip6_ioam_trace.c             \
        ioam/lib-trace/trace_util.h             \
        ioam/lib-trace/trace_api.c
 
-BUILT_SOURCES +=                               \
+IOAM_TRACE_BUILT_SRC =                         \
        ioam/lib-trace/trace.api.h              \
        ioam/lib-trace/trace.api.json
 
-noinst_HEADERS +=                       \
+IOAM_TRACE_NOINST_HDR =                            \
   ioam/export/ioam_export_all_api_h.h   \
-  ioam/lib-trace/trace_all_api_h.h     \
-  ioam/lib-trace/trace_msg_enum.h      \
-  ioam/lib-trace/trace.api.h           \
+  ioam/lib-trace/trace_all_api_h.h             \
+  ioam/lib-trace/trace_msg_enum.h              \
+  ioam/lib-trace/trace.api.h                   \
   ioam/lib-trace/trace_util.h
 
 ioam_trace_test_plugin_la_SOURCES =            \
-       ioam/lib-trace/trace_test.c             \
+       ioam/lib-trace/trace_test.c                     \
        ioam/lib-trace/trace_plugin.api.h
 
 vppapitestplugins_LTLIBRARIES += ioam_trace_test_plugin.la
-vppplugins_LTLIBRARIES += libioam_trace_plugin.la
 
 ########################################
 # VxLAN-GPE
 ########################################
-libioam_vxlan_gpe_plugin_la_SOURCES =                  \
-       ioam/lib-vxlan-gpe/ioam_encap.c                 \
-       ioam/lib-vxlan-gpe/ioam_decap.c                 \
-       ioam/lib-vxlan-gpe/ioam_transit.c               \
-       ioam/lib-vxlan-gpe/ioam_pop.c                   \
-       ioam/lib-vxlan-gpe/vxlan_gpe_api.c              \
-       ioam/lib-vxlan-gpe/vxlan_gpe_ioam_trace.c       \
-       ioam/lib-vxlan-gpe/vxlan_gpe_ioam.c             \
-       ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.c   \
-       ioam/export-vxlan-gpe/vxlan_gpe_node.c          \
-       ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.api.h\
+IOAM_VXLAN_GPE_SRC =                                                                           \
+       ioam/lib-vxlan-gpe/ioam_encap.c                                                 \
+       ioam/lib-vxlan-gpe/ioam_decap.c                                                 \
+       ioam/lib-vxlan-gpe/ioam_transit.c                                               \
+       ioam/lib-vxlan-gpe/ioam_pop.c                                                   \
+       ioam/lib-vxlan-gpe/vxlan_gpe_api.c                                              \
+       ioam/lib-vxlan-gpe/vxlan_gpe_ioam_trace.c                               \
+       ioam/lib-vxlan-gpe/vxlan_gpe_ioam.c                                             \
+       ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.c                   \
+       ioam/export-vxlan-gpe/vxlan_gpe_node.c                                  \
+       ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.api.h               \
        ioam/export-vxlan-gpe/vxlan_gpe_ioam_export_thread.c
 
-BUILT_SOURCES +=                               \
-       ioam/lib-vxlan-gpe/vxlan_gpe.api.h              \
-       ioam/lib-vxlan-gpe/vxlan_gpe.api.json           \
+IOAM_VXLAN_GPE_BUILT_SRC =                                                                     \
+       ioam/lib-vxlan-gpe/vxlan_gpe.api.h                                              \
+       ioam/lib-vxlan-gpe/vxlan_gpe.api.json                                   \
        ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.api.h               \
        ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.api.json
 
-noinst_HEADERS +=                       \
-  ioam/export/ioam_export_all_api_h.h   \
-  ioam/lib-vxlan-gpe/vxlan_gpe_all_api_h.h                     \
-  ioam/lib-vxlan-gpe/vxlan_gpe_msg_enum.h                      \
-  ioam/lib-vxlan-gpe/vxlan_gpe.api.h                   \
-  ioam/lib-vxlan-gpe/vxlan_gpe_ioam_util.h                     \
-  ioam/lib-vxlan-gpe/vxlan_gpe_ioam_packet.h                    \
-  ioam/lib-vxlan-gpe/vxlan_gpe_ioam.h          \
-  ioam/export-vxlan-gpe/vxlan_gpe_ioam_export_all_api_h.h       \
-  ioam/export-vxlan-gpe/vxlan_gpe_ioam_export_msg_enum.h        \
+IOAM_VXLAN_GPE_NOINST_HDR =                                            \
+  ioam/export/ioam_export_all_api_h.h                                          \
+  ioam/lib-vxlan-gpe/vxlan_gpe_all_api_h.h                                     \
+  ioam/lib-vxlan-gpe/vxlan_gpe_msg_enum.h                                      \
+  ioam/lib-vxlan-gpe/vxlan_gpe.api.h                                           \
+  ioam/lib-vxlan-gpe/vxlan_gpe_ioam_util.h                                     \
+  ioam/lib-vxlan-gpe/vxlan_gpe_ioam_packet.h                \
+  ioam/lib-vxlan-gpe/vxlan_gpe_ioam.h                                          \
+  ioam/export-vxlan-gpe/vxlan_gpe_ioam_export_all_api_h.h   \
+  ioam/export-vxlan-gpe/vxlan_gpe_ioam_export_msg_enum.h    \
   ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.api.h
 
-ioam_vxlan_gpe_test_plugin_la_SOURCES =                \
+ioam_vxlan_gpe_test_plugin_la_SOURCES =                        \
        ioam/lib-vxlan-gpe/vxlan_gpe_test.c                     \
        ioam/lib-vxlan-gpe/vxlan_gpe_plugin.api.h
 
-libioam_vxlan_gpe_plugin_la_LIBADD = libioam_trace_plugin.la
-
 vppapitestplugins_LTLIBRARIES += ioam_vxlan_gpe_test_plugin.la
-vppplugins_LTLIBRARIES += libioam_vxlan_gpe_plugin.la
 
 vxlan_gpe_ioam_export_test_plugin_la_SOURCES =          \
   ioam/export-vxlan-gpe/vxlan_gpe_ioam_export_test.c      \
@@ -170,26 +164,53 @@ vxlan_gpe_ioam_export_test_plugin_la_SOURCES =          \
 vppapitestplugins_LTLIBRARIES += vxlan_gpe_ioam_export_test_plugin.la
 
 ########################################
-# iOAM E2E plugin
+# iOAM E2E
 ########################################
 
-ioam_e2e_plugin_la_SOURCES =                \
+IOAM_E2E_SRC =                                         \
        ioam/encap/ip6_ioam_e2e.c               \
        ioam/encap/ip6_ioam_seqno.c             \
        ioam/encap/ip6_ioam_seqno_analyse.c
 
-noinst_HEADERS +=                    \
-       ioam/encap/ip6_ioam_e2e.h        \
+IOAM_E2E_BUILT_SRC =                           \
+       ioam/encap/ip6_ioam_e2e.h       \
        ioam/encap/ip6_ioam_seqno.h
 
-vppplugins_LTLIBRARIES += ioam_e2e_plugin.la
+########################################
+# iOAM plugins
+########################################
+
+vppapitestpluginsdir = ${libdir}/vpp_api_test_plugins
+vpppluginsdir = ${libdir}/vpp_plugins
+
+ioam_plugin_la_SOURCES =       \
+       $(IOAM_POT_SRC)                 \
+       $(IOAM_EXPORT_SRC)              \
+       $(IOAM_TRACE_SRC)               \
+       $(IOAM_VXLAN_GPE_SRC)   \
+       $(IOAM_E2E_SRC)
+
+BUILT_SOURCES =                                \
+       $(IOAM_POT_BUILT_SRC)           \
+       $(IOAM_EXPORT_BUILT_SRC)        \
+       $(IOAM_TRACE_BUILT_SRC)         \
+       $(IOAM_VXLAN_GPE_BUILT_SRC)     \
+       $(IOAM_E2E_BUILT_SRC)
+
+noinst_HEADERS =                                       \
+       $(IOAM_POT_NOINST_HDR)                  \
+       $(IOAM_EXPORT_NOINST_HDR)               \
+       $(IOAM_TRACE_NOINST_HDR)                \
+       $(IOAM_VXLAN_GPE_NOINST_HDR)    \
+       $(IOAM_E2E_NOINST_HDR)
+
+vppplugins_LTLIBRARIES = ioam_plugin.la
 
 # Remove *.la files
 install-data-hook:
        @(cd $(vpppluginsdir) && $(RM) $(vppplugins_LTLIBRARIES))
        @(cd $(vppapitestpluginsdir) && $(RM) $(vppapitestplugins_LTLIBRARIES))
 
-
 #
 # Java code generation
 #