aboutsummaryrefslogtreecommitdiffstats
path: root/src/examples
diff options
context:
space:
mode:
authorAnlu Yan <ayan@cisco.com>2017-02-22 09:18:11 -0800
committerDamjan Marion <dmarion.lists@gmail.com>2017-02-22 18:53:17 +0000
commit04f8d3fe25ab8f7088d6817350903197915e7669 (patch)
treeec9ec7a6902b10d1d0af87ed5bc5c71daa605a3e /src/examples
parenta9a20e7f69f4a91a4d5267ab5ce14125bdc7d6c6 (diff)
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 <ayan@cisco.com>
Diffstat (limited to 'src/examples')
-rw-r--r--src/examples/sample-plugin/Makefile.am35
-rw-r--r--src/examples/sample-plugin/configure.ac4
-rw-r--r--src/examples/sample-plugin/sample.am31
3 files changed, 52 insertions, 18 deletions
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