VPPAPIGEN: Run tool directly from source tree.

This ensures that tool changes do not require re-bootstrap.
Disabled generation of temporary files (gentab / .pyc) to avoid polluting the source tree.

Change-Id: I4d6bc035fbb46550fa8f4e99f4091eef90e2d86c
Signed-off-by: Ole Troan <ot@cisco.com>
diff --git a/src/configure.ac b/src/configure.ac
index d9c8a47..1ee55e7 100644
--- a/src/configure.ac
+++ b/src/configure.ac
@@ -297,11 +297,6 @@
     ], [])
 ])
 
-AC_PATH_PROG([VPPAPIGEN], [vppapigen], [no])
-if test "$VPPAPIGEN" = "no"; then
-   VPPAPIGEN=\$\(top_srcdir\)/tools/vppapigen/vppapigen
-fi
-
 ###############################################################################
 # JAVA
 ###############################################################################
diff --git a/src/suffix-rules.mk b/src/suffix-rules.mk
index 495d828..8b1ab83 100644
--- a/src/suffix-rules.mk
+++ b/src/suffix-rules.mk
@@ -14,12 +14,13 @@
 # Shared suffix rules
 # Please do not set "SUFFIXES = .api.h .api" here
 
-%.api.h: %.api @VPPAPIGEN@
+VPPAPIGEN = $(top_srcdir)/tools/vppapigen/vppapigen
+%.api.h: %.api
 	@echo "  APIGEN  " $@ ;				                     \
 	mkdir -p `dirname $@` ;						     \
-	@VPPAPIGEN@ --includedir $(top_srcdir) --input $< --output $@
+	$(VPPAPIGEN) --includedir $(top_srcdir) --input $< --output $@
 
 %.api.json: %.api
 	@echo "  JSON API" $@ ;						     \
 	mkdir -p `dirname $@` ;						     \
-	@VPPAPIGEN@ --includedir $(top_srcdir) --input $< JSON --output $@
+	$(VPPAPIGEN) --includedir $(top_srcdir) --input $< JSON --output $@
diff --git a/src/tools/vppapigen/vppapigen.py b/src/tools/vppapigen/vppapigen.py
index e6237a7..628bb09 100755
--- a/src/tools/vppapigen/vppapigen.py
+++ b/src/tools/vppapigen/vppapigen.py
@@ -9,6 +9,9 @@
 import binascii
 import os
 
+# Ensure we don't leave temporary files around
+sys.dont_write_bytecode = True
+
 #
 # VPP API language
 #
@@ -527,7 +530,7 @@
     def __init__(self, debug=False, filename='', logger=None):
         self.lexer = lex.lex(module=VPPAPILexer(filename), debug=debug)
         self.parser = yacc.yacc(module=VPPAPIParser(filename, logger),
-                                tabmodule='vppapigentab', debug=debug)
+                                write_tables=False, debug=debug)
         self.logger = logger
 
     def parse_string(self, code, debug=0, lineno=1):