From 04f8d3fe25ab8f7088d6817350903197915e7669 Mon Sep 17 00:00:00 2001 From: Anlu Yan Date: Wed, 22 Feb 2017 09:18:11 -0800 Subject: Support multiple plugin build in the sample-plugin This follows the setup in the src/plugins directory, and allows multiple plugin build independent of the main vpp source tree. Change-Id: I9e20f4087d72ad89c6dc3f505bace4628385a40e Signed-off-by: Anlu Yan --- src/examples/sample-plugin/Makefile.am | 35 +++++++++++++++++---------------- src/examples/sample-plugin/configure.ac | 4 +++- src/examples/sample-plugin/sample.am | 31 +++++++++++++++++++++++++++++ 3 files changed, 52 insertions(+), 18 deletions(-) create mode 100644 src/examples/sample-plugin/sample.am (limited to 'src/examples/sample-plugin') diff --git a/src/examples/sample-plugin/Makefile.am b/src/examples/sample-plugin/Makefile.am index a105afdd52b..a3a9a8d6ed4 100644 --- a/src/examples/sample-plugin/Makefile.am +++ b/src/examples/sample-plugin/Makefile.am @@ -13,21 +13,22 @@ AUTOMAKE_OPTIONS = foreign subdir-objects -AM_CFLAGS = -Wall +AM_CFLAGS = -Wall -I${top_srcdir} -I${top_builddir} AM_LDFLAGS = -module -shared -avoid-version +AM_LIBTOOLFLAGS = --quiet +SUFFIXES = .api.h .api .api.json +API_FILES = +BUILT_SOURCES = +vppplugins_LTLIBRARIES = +vppapitestplugins_LTLIBRARIES = +noinst_HEADERS = +nobase_apiinclude_HEADERS = +ACLOCAL_AMFLAGS = -I m4 vppapitestpluginsdir = ${libdir}/vpp_api_test_plugins vpppluginsdir = ${libdir}/vpp_plugins -vppapitestplugins_LTLIBRARIES = sample_test_plugin.la -vppplugins_LTLIBRARIES = sample_plugin.la - -sample_plugin_la_SOURCES = sample/sample.c sample/node.c \ - sample/sample_plugin.api.h - -BUILT_SOURCES = sample/sample.api.h sample/sample.api.json - -SUFFIXES = .api.h .api +include sample.am %.api.h: %.api mkdir -p `dirname $@` ; \ @@ -40,15 +41,15 @@ SUFFIXES = .api.h .api $(CC) $(CPPFLAGS) -E -P -C -x c $^ \ | vppapigen --input - --json $@ -apidir = $(prefix)/sample/ -api_DATA = sample/sample.api.json +apidir = $(prefix)/api/plugins +apiincludedir = ${includedir}/vpp_plugins + +api_DATA = \ + $(patsubst %.api,%.api.json,$(API_FILES)) -noinst_HEADERS = \ - sample/sample_all_api_h.h \ - sample/sample_msg_enum.h \ - sample/sample.api.h +BUILT_SOURCES += \ + $(patsubst %.api,%.api.h,$(API_FILES)) -sample_test_plugin_la_SOURCES = sample/sample_test.c sample/sample_plugin.api.h # Remove *.la files install-data-hook: diff --git a/src/examples/sample-plugin/configure.ac b/src/examples/sample-plugin/configure.ac index 43642732950..204da2fe1de 100644 --- a/src/examples/sample-plugin/configure.ac +++ b/src/examples/sample-plugin/configure.ac @@ -1,4 +1,4 @@ -AC_INIT(sample_plugin, 1.0) +AC_INIT(vpp_plugins, 1.0) LT_INIT AM_INIT_AUTOMAKE AM_SILENT_RULES([yes]) @@ -7,3 +7,5 @@ AC_PREFIX_DEFAULT([/usr]) AC_PROG_CC AC_OUTPUT([Makefile]) + +AC_CONFIG_MACRO_DIR([m4]) diff --git a/src/examples/sample-plugin/sample.am b/src/examples/sample-plugin/sample.am new file mode 100644 index 00000000000..871b610aa73 --- /dev/null +++ b/src/examples/sample-plugin/sample.am @@ -0,0 +1,31 @@ +# Copyright (c) 2016 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. + +vppapitestplugins_LTLIBRARIES += sample_test_plugin.la +vppplugins_LTLIBRARIES += sample_plugin.la + +sample_plugin_la_SOURCES = \ + sample/sample.c \ + sample/node.c \ + sample/sample_plugin.api.h + +API_FILES += sample/sample.api + +nobase_apiinclude_HEADERS += \ + sample/sample_all_api_h.h \ + sample/sample_msg_enum.h \ + sample/sample.api.h + +sample_test_plugin_la_SOURCES = sample/sample_test.c sample/sample_plugin.api.h + +# vi:syntax=automake -- cgit 1.2.3-korg