diff --git a/Android.bp b/Android.bp
index a77d471..83ca36b 100644
--- a/Android.bp
+++ b/Android.bp
@@ -215,7 +215,6 @@
   cflags: [
     "-DGOOGLE_PROTOBUF_NO_RTTI",
     "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-    "-DPERFETTO_BUILD_WITH_ANDROID",
   ],
 }
 
@@ -256,12 +255,15 @@
   static_libs: [
     "libasync_safe",
   ],
+  export_include_dirs: [
+    "include",
+    "include/perfetto/base/build_configs/android_tree",
+  ],
   defaults: [
     "perfetto_defaults",
   ],
   cflags: [
     "-DPERFETTO_ANDROID_ASYNC_SAFE_LOG",
-    "-DPERFETTO_BUILD_WITH_ANDROID",
   ],
   include_dirs: [
     "bionic/libc",
@@ -406,6 +408,10 @@
   static_libs: [
     "perfetto_src_tracing_ipc",
   ],
+  export_include_dirs: [
+    "include",
+    "include/perfetto/base/build_configs/android_tree",
+  ],
   generated_headers: [
     "perfetto_protos_perfetto_common_lite_gen_headers",
     "perfetto_protos_perfetto_common_zero_gen_headers",
@@ -451,7 +457,6 @@
   cflags: [
     "-DGOOGLE_PROTOBUF_NO_RTTI",
     "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-    "-DPERFETTO_BUILD_WITH_ANDROID",
   ],
 }
 
@@ -480,12 +485,13 @@
   static_libs: [
     "libhealthhalutils",
   ],
+  export_include_dirs: [
+    "include",
+    "include/perfetto/base/build_configs/android_tree",
+  ],
   defaults: [
     "perfetto_defaults",
   ],
-  cflags: [
-    "-DPERFETTO_BUILD_WITH_ANDROID",
-  ],
   product_variables: {
     pdk: {
       enabled: false,
@@ -606,6 +612,7 @@
   ],
   export_include_dirs: [
     "include",
+    "include/perfetto/base/build_configs/android_tree",
   ],
   generated_headers: [
     "perfetto_protos_perfetto_common_lite_gen_headers",
@@ -691,7 +698,6 @@
   cflags: [
     "-DGOOGLE_PROTOBUF_NO_RTTI",
     "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-    "-DPERFETTO_BUILD_WITH_ANDROID",
   ],
 }
 
@@ -856,7 +862,6 @@
     "-DGOOGLE_PROTOBUF_NO_RTTI",
     "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
     "-DHAVE_HIDDEN",
-    "-DPERFETTO_BUILD_WITH_ANDROID",
   ],
 }
 
@@ -870,8 +875,10 @@
     "-Wno-unused-parameter",
     "-fvisibility=hidden",
   ],
-  local_include_dirs: [
-    "include",
+  include_dirs: [
+    "external/perfetto",
+    "external/perfetto/include",
+    "external/perfetto/include/perfetto/base/build_configs/android_tree",
   ],
   product_variables: {
     debuggable: {
@@ -1132,7 +1139,6 @@
   cflags: [
     "-DGOOGLE_PROTOBUF_NO_RTTI",
     "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-    "-DPERFETTO_BUILD_WITH_ANDROID",
   ],
 }
 
@@ -3526,7 +3532,6 @@
   cflags: [
     "-DGOOGLE_PROTOBUF_NO_RTTI",
     "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-    "-DPERFETTO_BUILD_WITH_ANDROID",
   ],
 }
 
@@ -3660,7 +3665,6 @@
   cflags: [
     "-DGOOGLE_PROTOBUF_NO_RTTI",
     "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-    "-DPERFETTO_BUILD_WITH_ANDROID",
   ],
 }
 
@@ -3932,6 +3936,7 @@
   ],
   export_include_dirs: [
     "include",
+    "include/perfetto/base/build_configs/android_tree",
   ],
   generated_headers: [
     "perfetto_protos_perfetto_common_lite_gen_headers",
@@ -4017,7 +4022,6 @@
   cflags: [
     "-DGOOGLE_PROTOBUF_NO_RTTI",
     "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-    "-DPERFETTO_BUILD_WITH_ANDROID",
   ],
 }
 
@@ -4056,6 +4060,7 @@
   host_supported: true,
   export_include_dirs: [
     "include",
+    "include/perfetto/base/build_configs/android_tree",
   ],
   generated_headers: [
     "perfetto_protos_perfetto_common_lite_gen_headers",
@@ -4461,7 +4466,6 @@
     "-DGOOGLE_PROTOBUF_NO_RTTI",
     "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
     "-DHAVE_HIDDEN",
-    "-DPERFETTO_BUILD_WITH_ANDROID",
   ],
 }
 
@@ -4623,7 +4627,6 @@
     "-DGOOGLE_PROTOBUF_NO_RTTI",
     "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
     "-DHAVE_HIDDEN",
-    "-DPERFETTO_BUILD_WITH_ANDROID",
   ],
   target: {
     android: {
@@ -4865,7 +4868,6 @@
     "-DGOOGLE_PROTOBUF_NO_RTTI",
     "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
     "-DHAVE_HIDDEN",
-    "-DPERFETTO_BUILD_WITH_ANDROID",
   ],
 }
 
@@ -4885,9 +4887,6 @@
   defaults: [
     "perfetto_defaults",
   ],
-  cflags: [
-    "-DPERFETTO_BUILD_WITH_ANDROID",
-  ],
 }
 
 // GN target: //:traced_probes
@@ -4903,9 +4902,6 @@
   defaults: [
     "perfetto_defaults",
   ],
-  cflags: [
-    "-DPERFETTO_BUILD_WITH_ANDROID",
-  ],
   required: [
     "libperfetto_android_internal",
     "trigger_perfetto",
@@ -5065,7 +5061,6 @@
   cflags: [
     "-DGOOGLE_PROTOBUF_NO_RTTI",
     "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-    "-DPERFETTO_BUILD_WITH_ANDROID",
   ],
 }
 
@@ -5087,9 +5082,6 @@
     "test/task_runner_thread_delegates.cc",
     "test/test_helper.cc",
   ],
-  export_include_dirs: [
-    ".",
-  ],
   shared_libs: [
     "libprotobuf-cpp-lite",
   ],
@@ -5099,8 +5091,8 @@
     "perfetto_src_tracing_ipc",
     "perfetto_trace_protos",
   ],
-  cflags: [
-    "-DPERFETTO_BUILD_WITH_ANDROID",
+  defaults: [
+    "perfetto_defaults",
   ],
 }
 
@@ -5114,15 +5106,12 @@
   shared_libs: [
     "libprotobuf-cpp-lite",
   ],
-  export_include_dirs: [
-    ".",
-  ],
   static_libs: [
     "libgtest",
     "perfetto_src_tracing_ipc",
   ],
-  cflags: [
-    "-DPERFETTO_BUILD_WITH_ANDROID",
+  defaults: [
+    "perfetto_defaults",
   ],
 }
 
@@ -5152,12 +5141,11 @@
     "libprotobuf-cpp-lite",
     "liblog",
   ],
-  local_include_dirs: [
-    "include",
-  ],
   cflags: [
     "-DGOOGLE_PROTOBUF_NO_RTTI",
     "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-    "-DPERFETTO_BUILD_WITH_ANDROID",
+  ],
+  defaults: [
+    "perfetto_defaults",
   ],
 }
\ No newline at end of file
diff --git a/Android.bp.extras b/Android.bp.extras
index 1defc2e..354c97a 100644
--- a/Android.bp.extras
+++ b/Android.bp.extras
@@ -16,9 +16,6 @@
     "test/task_runner_thread_delegates.cc",
     "test/test_helper.cc",
   ],
-  export_include_dirs: [
-    ".",
-  ],
   shared_libs: [
     "libprotobuf-cpp-lite",
   ],
@@ -28,8 +25,8 @@
     "perfetto_src_tracing_ipc",
     "perfetto_trace_protos",
   ],
-  cflags: [
-    "-DPERFETTO_BUILD_WITH_ANDROID",
+  defaults: [
+    "perfetto_defaults",
   ],
 }
 
@@ -43,15 +40,12 @@
   shared_libs: [
     "libprotobuf-cpp-lite",
   ],
-  export_include_dirs: [
-    ".",
-  ],
   static_libs: [
     "libgtest",
     "perfetto_src_tracing_ipc",
   ],
-  cflags: [
-    "-DPERFETTO_BUILD_WITH_ANDROID",
+  defaults: [
+    "perfetto_defaults",
   ],
 }
 
@@ -81,12 +75,11 @@
     "libprotobuf-cpp-lite",
     "liblog",
   ],
-  local_include_dirs: [
-    "include",
-  ],
   cflags: [
     "-DGOOGLE_PROTOBUF_NO_RTTI",
     "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-    "-DPERFETTO_BUILD_WITH_ANDROID",
+  ],
+  defaults: [
+    "perfetto_defaults",
   ],
 }
diff --git a/gn/BUILD.gn b/gn/BUILD.gn
index 3bc618a..1bc618e 100644
--- a/gn/BUILD.gn
+++ b/gn/BUILD.gn
@@ -21,10 +21,62 @@
   import("//build/config/sanitizers/sanitizers.gni")
 }
 
+# Genereates a header files that contains a macro definition for each build flag
+# that is required by the codebase. This is to avoid sprinkling cflags all over
+# the places, which is very fragile especially for our codebase that needs to
+# deal with several build systems.
+# The way this works is the following:
+# - This rule generates a header that contains a bunch of lines like:
+#   #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_ANDROID_BUILD() (0)
+#   #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_EMBEDDER_BUILD() (0)
+# - The generated header is included by base/build_config.h
+# - Source files in the codebase #include base/build_config and use the
+#   pattern #if PERFETTO_BUILDFLAG(PERFETTO_ANDROID_BUILD)
+buildflag_gen_dir_ = "$root_gen_dir/$perfetto_root_path/build_config"
+action("gen_buildflags") {
+  script = "write_buildflag_header.py"
+  gen_header_path = "$buildflag_gen_dir_/perfetto_build_flags.h"
+
+  perfetto_component_build = false
+  if (defined(is_component_build) && is_component_build) {
+    perfetto_component_build = true
+  }
+  perfetto_force_dlog_on = perfetto_force_dlog == "on"
+  perfetto_force_dlog_off = perfetto_force_dlog == "off"
+
+  response_file_contents = [
+    "--flags",  # Keep this marker first.
+    "PERFETTO_ANDROID_BUILD=$perfetto_build_with_android",
+    "PERFETTO_EMBEDDER_BUILD=$perfetto_build_with_embedder",
+    "PERFETTO_CHROMIUM_BUILD=$build_with_chromium",
+    "PERFETTO_STANDALONE_BUILD=$perfetto_build_standalone",
+    "PERFETTO_START_DAEMONS=$start_daemons_for_testing",
+    "PERFETTO_IPC=$perfetto_build_with_ipc_layer",
+    "PERFETTO_COMPONENT_BUILD=$perfetto_component_build",
+    "PERFETTO_FORCE_DLOG_ON=$perfetto_force_dlog_on",
+    "PERFETTO_FORCE_DLOG_OFF=$perfetto_force_dlog_off",
+  ]
+
+  rel_out_path = rebase_path(gen_header_path, "$root_build_dir")
+  args = [
+    "--out",
+    rel_out_path,
+    "--rsp",
+    "{{response_file_name}}",
+  ]
+
+  outputs = [
+    gen_header_path,
+  ]
+}
+
 # All targets should depend on this target to inherit the right flags and
 # include directories.
 group("default_deps") {
   public_configs = [ ":default_config" ]
+  deps = [
+    ":gen_buildflags",
+  ]
   if (perfetto_build_standalone) {
     public_deps = [
       "//gn/standalone/libc++:deps",
@@ -54,36 +106,13 @@
   include_dirs = [
     "../include",
 
+    # For perfetto_build_flags.h
+    buildflag_gen_dir_,
+
     # The below are needed due to generated protobuf headers including other
     # headers with a path relative to the perfetto root.
     "${root_gen_dir}/${perfetto_root_path}/protos",
   ]
-
-  defines = []
-
-  if (perfetto_build_with_android) {
-    defines += [ "PERFETTO_BUILD_WITH_ANDROID" ]
-  } else if (perfetto_build_with_embedder) {
-    defines += [ "PERFETTO_BUILD_WITH_EMBEDDER" ]
-
-    if (build_with_chromium) {
-      defines += [ "PERFETTO_BUILD_WITH_CHROMIUM" ]
-    }  # if (build_with_chromium)
-
-    if (defined(is_component_build) && is_component_build) {
-      defines += [ "PERFETTO_BUILD_AS_COMPONENT" ]
-    }  # if (is_component_build)
-  }  # if (build_with_embedder)
-
-  if (perfetto_force_dlog == "on") {
-    defines += [ "PERFETTO_FORCE_DLOG=1" ]
-  } else if (perfetto_force_dlog == "off") {
-    defines += [ "PERFETTO_FORCE_DLOG=0" ]
-  }
-
-  if (perfetto_build_with_ipc_layer) {
-    defines += [ "PERFETTO_BUILD_IPC" ]
-  }
 }
 
 config("asan_instrumentation") {
diff --git a/gn/write_buildflag_header.py b/gn/write_buildflag_header.py
new file mode 100644
index 0000000..e9ef32e
--- /dev/null
+++ b/gn/write_buildflag_header.py
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+# Copyright (C) 2019 The Android Open Source Project
+#
+# 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.
+
+# This writes headers for build flags. See the gen_buildflags target in
+# /gn/BUILD.gn for usage.
+#
+# The parameters are passed in a response file so we don't have to worry
+# about command line lengths. The name of the response file is passed on the
+# command line.
+#
+# The format of the response file is:
+#    [--flags <list of one or more flag values>]
+
+import argparse
+import os
+import shlex
+import sys
+
+def main():
+  parser = argparse.ArgumentParser()
+  parser.add_argument('--rsp', help='Input response file containing the flags.')
+  parser.add_argument('--out', help='Output path of the generated header file.')
+  args = parser.parse_args()
+
+  flags = []
+  with open(args.rsp, 'r') as def_file:
+    marker_seen = False
+    for flag in shlex.split(def_file.read()):
+      if not marker_seen:
+        marker_seen = flag == '--flags'
+        continue
+      key, value = flag.split('=', 1)
+      value = '1' if value == 'true' else '0' if value == 'false' else value
+      flags.append((key, value))
+
+  guard = '%s_' % args.out.upper()
+  guard = guard.replace('/', '_').replace('\\', '_').replace('.', '_')
+  tmp_out = args.out + '.tmp'
+  with open(tmp_out, 'w') as out:
+    out.write('// Generated by %s\n\n' % __file__)
+    out.write('// fix_include_guards: off\n')
+    out.write('#ifndef %s\n' % guard)
+    out.write('#define %s\n\n' % guard)
+    for kv in flags:
+      out.write('#define PERFETTO_BUILDFLAG_DEFINE_%s() (%s)\n' % kv)
+    out.write('\n#endif  // %s\n' % guard)
+  os.rename(tmp_out, args.out)
+
+if __name__ == '__main__':
+  sys.exit(main())
+
diff --git a/include/perfetto/base/build_config.h b/include/perfetto/base/build_config.h
index e02bea1..0ed2cb2 100644
--- a/include/perfetto/base/build_config.h
+++ b/include/perfetto/base/build_config.h
@@ -17,6 +17,18 @@
 #ifndef INCLUDE_PERFETTO_BASE_BUILD_CONFIG_H_
 #define INCLUDE_PERFETTO_BASE_BUILD_CONFIG_H_
 
+// perfetto_build_flags.h contains the tweakable build flags defined via GN.
+// - In GN builds (e.g., standalone, chromium, v8) this file is generated at
+//   build time via the gen_rule //gn/gen_buildflags.
+// - In Android in-tree builds, this file is generated by tools/gen_android_bp
+//   and checked in into include/perfetto/base/build_configs/android_tree/. The
+//   default cflags add this path to the default include path.
+// - Similarly, in bazel builds, this file is generated by tools/gen_bazel and
+//   checked in into include/perfetto/base/build_configs/bazel/.
+// - In amaglamated builds, this file is generated by tools/gen_amalgamated and
+//   added to the amalgamated headers.
+#include "perfetto_build_flags.h"  // no-include-violation-check
+
 // Allows to define build flags that give a compiler error if the header that
 // defined the flag is not included, instead of silently ignoring the #if block.
 #define PERFETTO_BUILDFLAG_CAT_INDIRECT(a, b) a##b
@@ -88,75 +100,10 @@
 #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_COMPILER_MSVC() 0
 #endif
 
-// TODO(primiano): remove all the defines below that depend on GN variables
-// (as opposite to builtin defines coming from the compiler/sysroot). They
-// should be moved to a generated header file, using the same pattern of
-// chromium's buildflag_header.
-
-#if defined(PERFETTO_BUILD_WITH_ANDROID)
-#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_ANDROID_BUILD() 1
-#else
-#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_ANDROID_BUILD() 0
-#endif
-
-#if defined(PERFETTO_BUILD_WITH_EMBEDDER)
-#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_EMBEDDER_BUILD() 1
-#else
-#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_EMBEDDER_BUILD() 0
-#endif
-
-#if defined(PERFETTO_BUILD_WITH_CHROMIUM)
-#if !defined(PERFETTO_BUILD_WITH_EMBEDDER)
-#error PERFETTO_BUILD_WITH_EMBEDDER must be defined when \
-       PERFETTO_BUILD_WITH_CHROMIUM is defined
-#endif
-#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_CHROMIUM_BUILD() 1
-#else
-#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_CHROMIUM_BUILD() 0
-#endif
-
-#if !defined(PERFETTO_BUILD_WITH_EMBEDDER) && \
-    !defined(PERFETTO_BUILD_WITH_ANDROID)
-#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_STANDALONE_BUILD() 1
-#else
-#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_STANDALONE_BUILD() 0
-#endif
-
-#if defined(PERFETTO_START_DAEMONS_FOR_TESTING)
-#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_START_DAEMONS() 1
-#else
-#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_START_DAEMONS() 0
-#endif
-
 #if defined(PERFETTO_BUILD_WITH_ANDROID_USERDEBUG)
 #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_ANDROID_USERDEBUG_BUILD() 1
 #else
 #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_ANDROID_USERDEBUG_BUILD() 0
 #endif
 
-#if defined(PERFETTO_BUILD_IPC)
-#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_IPC() 1
-#else
-#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_IPC() 0
-#endif
-
-#if defined(PERFETTO_BUILD_AS_COMPONENT)
-#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_COMPONENT_BUILD() 1
-#else
-#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_COMPONENT_BUILD() 0
-#endif
-
-#if defined(PERFETTO_FORCE_DLOG)
-#if PERFETTO_FORCE_DLOG
-#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_FORCE_DLOG_ON() 1
-#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_FORCE_DLOG_OFF() 0
-#else
-#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_FORCE_DLOG_ON() 0
-#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_FORCE_DLOG_OFF() 1
-#endif
-#else  // defined(PERFETTO_FORCE_DLOG)
-#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_FORCE_DLOG_ON() 0
-#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_FORCE_DLOG_OFF() 0
-#endif
-
 #endif  // INCLUDE_PERFETTO_BASE_BUILD_CONFIG_H_
diff --git a/include/perfetto/base/build_configs/android_tree/perfetto_build_flags.h b/include/perfetto/base/build_configs/android_tree/perfetto_build_flags.h
new file mode 100644
index 0000000..ce2a9f3
--- /dev/null
+++ b/include/perfetto/base/build_configs/android_tree/perfetto_build_flags.h
@@ -0,0 +1,17 @@
+// Generated by ../../gn/write_buildflag_header.py
+
+// fix_include_guards: off
+#ifndef GEN_BUILD_CONFIG_PERFETTO_BUILD_FLAGS_H_
+#define GEN_BUILD_CONFIG_PERFETTO_BUILD_FLAGS_H_
+
+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_ANDROID_BUILD() (1)
+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_EMBEDDER_BUILD() (0)
+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_CHROMIUM_BUILD() (0)
+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_STANDALONE_BUILD() (0)
+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_START_DAEMONS() (0)
+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_IPC() (1)
+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_COMPONENT_BUILD() (0)
+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_FORCE_DLOG_ON() (0)
+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_FORCE_DLOG_OFF() (0)
+
+#endif  // GEN_BUILD_CONFIG_PERFETTO_BUILD_FLAGS_H_
diff --git a/include/perfetto/base/build_configs/bazel/perfetto_build_flags.h b/include/perfetto/base/build_configs/bazel/perfetto_build_flags.h
new file mode 100644
index 0000000..770d1c6
--- /dev/null
+++ b/include/perfetto/base/build_configs/bazel/perfetto_build_flags.h
@@ -0,0 +1,17 @@
+// Generated by ../../gn/write_buildflag_header.py
+
+// fix_include_guards: off
+#ifndef GEN_BUILD_CONFIG_PERFETTO_BUILD_FLAGS_H_
+#define GEN_BUILD_CONFIG_PERFETTO_BUILD_FLAGS_H_
+
+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_ANDROID_BUILD() (0)
+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_EMBEDDER_BUILD() (0)
+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_CHROMIUM_BUILD() (0)
+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_STANDALONE_BUILD() (1)
+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_START_DAEMONS() (1)
+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_IPC() (1)
+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_COMPONENT_BUILD() (0)
+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_FORCE_DLOG_ON() (0)
+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_FORCE_DLOG_OFF() (0)
+
+#endif  // GEN_BUILD_CONFIG_PERFETTO_BUILD_FLAGS_H_
diff --git a/test/cts/Android.bp b/test/cts/Android.bp
index 6340440..c7cee36 100644
--- a/test/cts/Android.bp
+++ b/test/cts/Android.bp
@@ -33,7 +33,7 @@
     },
   },
   stl: "libc++_static",
-  cflags: [
-    "-DPERFETTO_BUILD_WITH_ANDROID",
+  defaults: [
+    "perfetto_defaults",
   ],
 }
diff --git a/test/cts/heapprofd_test_apps/jni/Android.bp b/test/cts/heapprofd_test_apps/jni/Android.bp
index a518779..de090d2 100644
--- a/test/cts/heapprofd_test_apps/jni/Android.bp
+++ b/test/cts/heapprofd_test_apps/jni/Android.bp
@@ -28,4 +28,7 @@
   ],
   compile_multilib: "both",
   stl: "libc++_static",
+  defaults: [
+    "perfetto_defaults",
+  ],
 }
diff --git a/test/cts/producer/jni/Android.bp b/test/cts/producer/jni/Android.bp
index aae7201..939a37b 100644
--- a/test/cts/producer/jni/Android.bp
+++ b/test/cts/producer/jni/Android.bp
@@ -16,7 +16,7 @@
   ],
   compile_multilib: "both",
   stl: "libc++_static",
-  cflags: [
-    "-DPERFETTO_BUILD_WITH_ANDROID",
+  defaults: [
+    "perfetto_defaults",
   ],
 }
diff --git a/tools/gen_android_bp b/tools/gen_android_bp
index 2d57628..b07568c 100755
--- a/tools/gen_android_bp
+++ b/tools/gen_android_bp
@@ -111,7 +111,7 @@
 cflag_whitelist = r'^-DPERFETTO.*$'
 
 # Compiler defines which are passed through to the blueprint.
-define_whitelist = r'^(GOOGLE_PROTO.*)|(PERFETTO_BUILD_WITH_ANDROID)|(ZLIB_.*)|(USE_MMAP)|(HAVE_HIDDEN)$'
+define_whitelist = r'^(GOOGLE_PROTO.*)|(ZLIB_.*)|(USE_MMAP)|(HAVE_HIDDEN)$'
 
 # Shared libraries which are not in PDK.
 library_not_in_pdk = {
@@ -119,6 +119,9 @@
     'libservices',
 }
 
+# The directory where the generated perfetto_build_flags.h will be copied into.
+buildflags_dir = 'include/perfetto/base/build_configs/android_tree'
+
 # Additional arguments to apply to Android.bp rules.
 additional_args = {
     'heapprofd_client': [
@@ -133,7 +136,6 @@
     ],
 }
 
-
 def enable_gmock(module):
     module.static_libs.append('libgmock')
 
@@ -429,6 +431,11 @@
         if "gen_merged_sql_metrics" in dep_name:
           dep_mod = create_merged_sql_metrics_target(blueprint, desc, dep_name)
           module.generated_headers.append(dep_mod.name)
+        elif dep_name.startswith(gn_utils.BUILDFLAGS_TARGET):
+            # Ignore the dependency on the gen_buildflags genrule. That is run
+            # separately in this generator and the generated file is copied over
+            # into the repo (see usage of |buildflags_dir| in this script).
+            return
         else:
           create_modules_from_target(blueprint, desc, dep_name)
           # Depend both on the generated sources and headers -- see
@@ -619,6 +626,7 @@
         target_name: GN target for module generation.
     """
     target = desc[target_name]
+    export_include_dirs = [ 'include', buildflags_dir ]
     if target['type'] == 'executable':
         if 'host' in target['toolchain'] or target_name in target_host_only:
             module_type = 'cc_binary_host'
@@ -631,12 +639,12 @@
         modules = make_genrules_for_action(blueprint, desc, target_name)
     elif target['type'] == 'static_library':
         module = Module('cc_library_static', label_to_module_name(target_name))
-        module.export_include_dirs = ['include']
+        module.export_include_dirs = export_include_dirs
         modules = [module]
     elif target['type'] == 'shared_library':
-        modules = [
-            Module('cc_library_shared', label_to_module_name(target_name))
-        ]
+        module = Module('cc_library_shared', label_to_module_name(target_name))
+        module.export_include_dirs = export_include_dirs
+        modules = [module]
     else:
         raise Error('Unknown target type: %s' % target['type'])
 
@@ -705,7 +713,15 @@
 
     # Default settings used by all modules.
     defaults = Module('cc_defaults', defaults_module)
-    defaults.local_include_dirs = ['include']
+
+    # We have to use include_dirs passing the path relative to the android tree.
+    # This is because: (i) perfetto_cc_defaults is used also by
+    # test/**/Android.bp; (ii) if we use local_include_dirs instead, paths
+    # become relative to the Android.bp that *uses* cc_defaults (not the one
+    # that defines it).s
+    defaults.include_dirs = [tree_path,
+                             tree_path + '/include',
+                             tree_path + '/' + buildflags_dir]
     defaults.cflags = [
         '-Wno-error=return-type',
         '-Wno-sign-compare',
@@ -788,6 +804,9 @@
     with open(out_files[-1], 'w') as f:
         f.write('\n'.join(output))
 
+    # Generate the perfetto_build_flags.h file.
+    out_files.append(os.path.join(buildflags_dir, 'perfetto_build_flags.h.swp'))
+    gn_utils.gen_buildflags(gn_args, out_files[-1])
 
     # Either check the contents or move the files to their final destination.
     return gn_utils.check_or_commit_generated_files (out_files, args.check_only)
diff --git a/tools/gen_bazel b/tools/gen_bazel
index b47ca41..b8f3798 100755
--- a/tools/gen_bazel
+++ b/tools/gen_bazel
@@ -81,6 +81,9 @@
   '//tools/trace_to_text:trace_to_text_host': 'trace_to_text',
 }
 
+# The directory where the generated perfetto_build_flags.h will be copied into.
+buildflags_dir = 'include/perfetto/base/build_configs/bazel'
+
 
 def enable_sqlite(module):
   module.deps.add(Label('//third_party/sqlite'))
@@ -670,6 +673,10 @@
   with open(out_files[-1], 'w') as f:
     proto_build.write(Writer(f))
 
+  # Generate the build flags file.
+  out_files.append(os.path.join(buildflags_dir, 'perfetto_build_flags.h.swp'))
+  gn_utils.gen_buildflags(gn_args, out_files[-1])
+
   return gn_utils.check_or_commit_generated_files(out_files, args.check_only)
 
 
diff --git a/tools/gn_utils.py b/tools/gn_utils.py
index ca3e003..30c646b 100644
--- a/tools/gn_utils.py
+++ b/tools/gn_utils.py
@@ -26,6 +26,9 @@
 import sys
 
 
+BUILDFLAGS_TARGET = '//gn:gen_buildflags'
+
+
 def _check_command_output(cmd, cwd):
   try:
     output = subprocess.check_output(
@@ -147,6 +150,20 @@
   name = re.sub(r'[^a-zA-Z0-9_]', '_', name)
   return name
 
+
+def gen_buildflags(gn_args, target_file):
+    """Generates the perfetto_build_flags.h for the given config.
+
+    target_file: the path, relative to the repo root, where the generated
+        buildflag header will be copied into.
+    """
+    tmp_out = prepare_out_directory(gn_args, 'tmp.gen_buildflags')
+    build_targets(tmp_out, [BUILDFLAGS_TARGET], quiet=True)
+    src = os.path.join(tmp_out, 'gen', 'build_config', 'perfetto_build_flags.h')
+    shutil.copy(src, os.path.join(repo_root(), target_file))
+    shutil.rmtree(tmp_out)
+
+
 def check_or_commit_generated_files(tmp_files, check):
     """Checks that gen files are unchanged or renames them to the final location
 
