Fix include guards and add PRESUBMIT

Also remove "include/" from the proto_to_cpp generated files.

Change-Id: If2cd4ce5ac3290ca9dffd114d48582ce2302efe8
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index c10e285..222d364 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -20,7 +20,6 @@
     # lines in them.
     long_line_sources = lambda x: input.FilterSourceFile(
             x, white_list=".*", black_list=['Android[.]bp'])
-
     results = []
     results += input.canned_checks.CheckDoNotSubmit(input, output)
     results += input.canned_checks.CheckChangeHasNoTabs(input, output)
@@ -28,6 +27,7 @@
             input, output, 80, source_file_filter=long_line_sources)
     results += input.canned_checks.CheckPatchFormatted(input, output)
     results += input.canned_checks.CheckGNFormatted(input, output)
+    results += CheckIncludeGuards(input, output)
     results += CheckAndroidBlueprint(input, output)
     results += CheckMergedTraceConfigProto(input, output)
     return results
@@ -51,6 +51,7 @@
 
     with open('Android.bp') as f:
         current_blueprint = f.read()
+
     new_blueprint = subprocess.check_output(
         ['tools/gen_android_bp', '--output', '/dev/stdout'])
 
@@ -63,6 +64,21 @@
     return []
 
 
+def CheckIncludeGuards(input_api, output_api):
+    tool = 'tools/fix_include_guards'
+    file_filter = lambda x: input_api.FilterSourceFile(
+          x,
+          white_list=('.*[.]cc$', '.*[.]h$', tool))
+    if not input_api.AffectedSourceFiles(file_filter):
+        return []
+    if subprocess.call([tool, '--check-only']):
+        return [
+            output_api.PresubmitError(
+                'Please run ' + tool + ' to fix include guards.')
+        ]
+    return []
+
+
 def CheckMergedTraceConfigProto(input_api, output_api):
     tool = 'tools/gen_merged_trace_config'
     build_file_filter = lambda x: input_api.FilterSourceFile(