Update emacs plugin generator skeleton 15/4515/2
authorDave Barach <dave@barachs.net>
Mon, 2 Jan 2017 17:22:48 +0000 (12:22 -0500)
committerFlorin Coras <florin.coras@gmail.com>
Mon, 2 Jan 2017 18:59:50 +0000 (18:59 +0000)
Generated code compiles with the new build scheme, works, etc.

Change-Id: I147aa5fa580a71ef25615b02277870867e475042
Signed-off-by: Dave Barach <dave@barachs.net>
build-root/emacs-lisp/all-skel.el
build-root/emacs-lisp/plugin-am-skel.el [moved from build-root/emacs-lisp/plugin-makefile-skel.el with 52% similarity]
build-root/emacs-lisp/plugin-configure-skel.el [deleted file]
build-root/emacs-lisp/plugin-main-skel.el
build-root/emacs-lisp/plugin.el

index 2bf15b2..f0cc9fe 100644 (file)
 (load-file "./periodic-skel.el")
 (load-file "./pipe-skel.el")
 (load-file "./plugin-all-apih-skel.el")
+(load-file "./plugin-am-skel.el")
 (load-file "./plugin-api-skel.el")
-(load-file "./plugin-configure-skel.el")
 (load-file "./plugin-h-skel.el")
 (load-file "./plugin-main-skel.el")
-(load-file "./plugin-makefile-skel.el")
 (load-file "./plugin-msg-enum-skel.el")
 (load-file "./plugin-node-skel.el")
 (load-file "./plugin-test-skel.el")
similarity index 52%
rename from build-root/emacs-lisp/plugin-makefile-skel.el
rename to build-root/emacs-lisp/plugin-am-skel.el
index 7cb6cbf..5a082b4 100644 (file)
@@ -1,4 +1,4 @@
-;;; plugin-makefile-skel.el - vpp engine plug-in "main.c" skeleton
+;;; plugin-am-skel.el - vpp engine plug-in foo.am skeleton
 ;;;
 ;;; Copyright (c) 2016 Cisco and/or its affiliates.
 ;;; Licensed under the Apache License, Version 2.0 (the "License");
@@ -15,8 +15,8 @@
 
 (require 'skeleton)
 
-(define-skeleton skel-plugin-makefile
-"Insert a plug-in 'Makefile.am' skeleton "
+(define-skeleton skel-plugin-makefile-am-fragment
+"Insert a plug-in 'foo.am' skeleton "
 nil
 '(if (not (boundp 'plugin-name))
      (setq plugin-name (read-string "Plugin name: ")))
@@ -35,41 +35,26 @@ nil
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-AUTOMAKE_OPTIONS = foreign subdir-objects
+vppapitestplugins_LTLIBRARIES += " plugin-name "_test_plugin.la
+vppplugins_LTLIBRARIES += " plugin-name "_plugin.la
 
-AM_CFLAGS = -Wall
-AM_LDFLAGS = -module -shared -avoid-version
+" plugin-name "_plugin_la_SOURCES = \\
+  " plugin-name "/node.c \\
+  " plugin-name "/" plugin-name ".c \\
+  " plugin-name "/" plugin-name ".h \\
+  " plugin-name "/" plugin-name "_all_api_h.h \\
+  " plugin-name "/" plugin-name "_msg_enum.h
 
-vppapitestpluginsdir = ${libdir}/vpp_api_test_plugins
-vpppluginsdir = ${libdir}/vpp_plugins
+API_FILES += " plugin-name "/" plugin-name ".api
 
-vppplugins_LTLIBRARIES = " plugin-name "_plugin.la
-vppapitestplugins_LTLIBRARIES = " plugin-name "_test_plugin.la
-
-" plugin-name "_plugin_la_SOURCES = " plugin-name "/" plugin-name ".c  \\
-        " plugin-name "/node.c \\
-       " plugin-name "/" plugin-name "_plugin.api.h
-" plugin-name "_plugin_la_LDFLAGS = -module
-
-BUILT_SOURCES = " plugin-name "/" plugin-name ".api.h
-
-SUFFIXES = .api.h .api
-
-%.api.h: %.api
-       mkdir -p `dirname $@` ; \\
-       $(CC) $(CPPFLAGS) -E -P -C -x c $^ \\
-       | vppapigen --input - --output $@ --show-name $@
-
-noinst_HEADERS =                       \\
-  " plugin-name "/" plugin-name "_all_api_h.h                  \\
-  " plugin-name "/" plugin-name "_msg_enum.h                   \\
-  " plugin-name "/" plugin-name ".api.h
+nobase_apiinclude_HEADERS +=           \\
+  " plugin-name "/" plugin-name "_all_api_h.h \\
+  " plugin-name "/" plugin-name "_msg_enum.h \\
+  " plugin-name "/" plugin-name ".api.h 
 
 " plugin-name "_test_plugin_la_SOURCES = \\
-  " plugin-name "/" plugin-name "_test.c " plugin-name "/" plugin-name "_plugin.api.h
+  " plugin-name "/" plugin-name "_test.c \\
+  " plugin-name "/" plugin-name ".api.h 
 
-# Remove *.la files
-install-data-hook:
-       @(cd $(vpppluginsdir) && $(RM) $(vppplugins_LTLIBRARIES))
-       @(cd $(vppapitestpluginsdir) && $(RM) $(vppapitestplugins_LTLIBRARIES))
+# vi:syntax=automake
 ")
diff --git a/build-root/emacs-lisp/plugin-configure-skel.el b/build-root/emacs-lisp/plugin-configure-skel.el
deleted file mode 100644 (file)
index ebf0bf6..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-;;; plugin-configure-skel.el - vpp engine plug-in "main.c" skeleton
-;;;
-;;; 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.
-
-(require 'skeleton)
-
-(define-skeleton skel-plugin-configure
-"Insert a plug-in 'configure.ac' skeleton "
-nil
-'(if (not (boundp 'plugin-name))
-     (setq plugin-name (read-string "Plugin name: ")))
-'(setq PLUGIN-NAME (upcase plugin-name))
-"
-AC_INIT(" plugin-name "_plugin, 1.0)
-AM_INIT_AUTOMAKE
-AM_SILENT_RULES([yes])
-
-AC_PROG_LIBTOOL
-AC_PROG_CC
-
-AC_OUTPUT([Makefile])
-")
index 4724069..90b9894 100644 (file)
@@ -258,6 +258,9 @@ static clib_error_t * " plugin-name "_init (vlib_main_t * vm)
 
   error = " plugin-name "_plugin_api_hookup (vm);
 
+  /* Add our API messages to the global name_crc hash table */
+  setup_message_id_table (sm, &api_main);
+
   vec_free(name);
 
   return error;
index 006ae54..4f1361a 100644 (file)
@@ -8,15 +8,12 @@
       (makunbound 'PLUGIN-NAME)
       (setq plugin-name (read-string "Plugin name: "))
       (setq PLUGIN-NAME (upcase plugin-name))
-      (setq cmd-args (concat "mkdir -p " plugin-name "-plugin/" plugin-name))
+      (find-file (concat plugin-name ".am"))
+      (skel-plugin-makefile-am-fragment)
+      (setq cmd-args (concat "mkdir -p " plugin-name))
       (shell-command cmd-args)
-      (setq cd-args (concat start-dir plugin-name "-plugin"))
+      (setq cd-args (concat start-dir "/" plugin-name))
       (setq default-directory cd-args)
-      (find-file "Makefile.am")
-      (skel-plugin-makefile)
-      (find-file "configure.ac")
-      (skel-plugin-configure)
-      (setq default-directory (concat cd-args "/" plugin-name))
       (find-file (concat plugin-name ".api"))
       (skel-plugin-api)
       (find-file (concat plugin-name "_all_api_h.h"))