diff --git a/BUILD.gn b/BUILD.gn
index ae6a832..69ebdc9 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -29,11 +29,11 @@
 group("default") {
   # Auto select a toolchain based on host.
   if (host_os == "linux") {
-    _host_target_toolchain = "$dir_pigweed/targets/host:gcc_debug"
+    _host_target_toolchain = "$dir_pigweed/targets/host:host_gcc_debug"
   } else if (host_os == "mac") {
-    _host_target_toolchain = "$dir_pigweed/targets/host:clang_debug"
+    _host_target_toolchain = "$dir_pigweed/targets/host:host_clang_debug"
   } else if (host_os == "win") {
-    _host_target_toolchain = "$dir_pigweed/targets/host:gcc_debug"
+    _host_target_toolchain = "$dir_pigweed/targets/host:host_gcc_debug"
   } else {
     assert(false, "Please define a host config for your system: $host_os")
   }
diff --git a/targets/host/target_config.gni b/targets/host/target_config.gni
deleted file mode 100644
index 47a887b..0000000
--- a/targets/host/target_config.gni
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright 2019 The Pigweed Authors
-#
-# 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
-#
-#     https://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 is the target config to import when building for host. All this does is
-# import the appropriate target configuration for the current host OS.
-#
-# Due to GN-isms, lowest-precedence target variable definitions must be imported
-# at the deepest point. This causes the following structure:
-#
-# target_system.gni (e.g. Linux)
-#         └ host_common.gni
-#                  └ pw_vars_default.gni
-#
-# This allows host_common to override variables defined in pw_vars_default,
-# and target_system to override defaults in host_common.
-
-# Load target-specific config file for a host desktop system.
-if (host_os == "linux") {
-  import("linux.gni")
-} else if (host_os == "mac") {
-  import("macos.gni")
-} else if (host_os == "win") {
-  import("windows.gni")
-} else {
-  assert(false, "Please define a host config for your system: $host_os")
-}
diff --git a/targets/host/target_toolchains.gni b/targets/host/target_toolchains.gni
index 6ea32bb..4a6a233 100644
--- a/targets/host/target_toolchains.gni
+++ b/targets/host/target_toolchains.gni
@@ -62,16 +62,16 @@
 }
 
 pw_target_toolchain_host = {
+  _excluded_members = [
+    "defaults",
+    "name",
+  ]
+
   clang_debug = {
-    name = "clang_debug"
-    forward_variables_from(pw_toolchain_host_clang.debug,
-                           "*",
-                           [
-                             "defaults",
-                             "name",
-                           ])
+    name = "host_clang_debug"
+    _toolchain_base = pw_toolchain_host_clang.debug
+    forward_variables_from(_toolchain_base, "*", _excluded_members)
     defaults = {
-      _toolchain_base = pw_toolchain_host_clang.debug
       forward_variables_from(_toolchain_base.defaults, "*")
       forward_variables_from(_host_common, "*")
       forward_variables_from(_os_specific_config, "*")
@@ -79,15 +79,10 @@
   }
 
   clang_speed_optimized = {
-    name = "clang_speed_optimized"
-    forward_variables_from(pw_toolchain_host_clang.speed_optimized,
-                           "*",
-                           [
-                             "defaults",
-                             "name",
-                           ])
+    name = "host_clang_speed_optimized"
+    _toolchain_base = pw_toolchain_host_clang.speed_optimized
+    forward_variables_from(_toolchain_base, "*", _excluded_members)
     defaults = {
-      _toolchain_base = pw_toolchain_host_clang.speed_optimized
       forward_variables_from(_toolchain_base.defaults, "*")
       forward_variables_from(_host_common, "*")
       forward_variables_from(_os_specific_config, "*")
@@ -95,15 +90,10 @@
   }
 
   clang_size_optimized = {
-    name = "clang_size_optimized"
-    forward_variables_from(pw_toolchain_host_clang.size_optimized,
-                           "*",
-                           [
-                             "defaults",
-                             "name",
-                           ])
+    name = "host_clang_size_optimized"
+    _toolchain_base = pw_toolchain_host_clang.size_optimized
+    forward_variables_from(_toolchain_base, "*", _excluded_members)
     defaults = {
-      _toolchain_base = pw_toolchain_host_clang.size_optimized
       forward_variables_from(_toolchain_base.defaults, "*")
       forward_variables_from(_host_common, "*")
       forward_variables_from(_os_specific_config, "*")
@@ -111,15 +101,10 @@
   }
 
   gcc_debug = {
-    name = "gcc_debug"
-    forward_variables_from(pw_toolchain_host_gcc.debug,
-                           "*",
-                           [
-                             "defaults",
-                             "name",
-                           ])
+    name = "host_gcc_debug"
+    _toolchain_base = pw_toolchain_host_gcc.debug
+    forward_variables_from(_toolchain_base, "*", _excluded_members)
     defaults = {
-      _toolchain_base = pw_toolchain_host_gcc.debug
       forward_variables_from(_toolchain_base.defaults, "*")
       forward_variables_from(_host_common, "*")
       forward_variables_from(_os_specific_config, "*")
@@ -127,15 +112,10 @@
   }
 
   gcc_speed_optimized = {
-    name = "gcc_speed_optimized"
-    forward_variables_from(pw_toolchain_host_gcc.speed_optimized,
-                           "*",
-                           [
-                             "defaults",
-                             "name",
-                           ])
+    name = "host_gcc_speed_optimized"
+    _toolchain_base = pw_toolchain_host_gcc.speed_optimized
+    forward_variables_from(_toolchain_base, "*", _excluded_members)
     defaults = {
-      _toolchain_base = pw_toolchain_host_gcc.speed_optimized
       forward_variables_from(_toolchain_base.defaults, "*")
       forward_variables_from(_host_common, "*")
       forward_variables_from(_os_specific_config, "*")
@@ -143,15 +123,10 @@
   }
 
   gcc_size_optimized = {
-    name = "gcc_size_optimized"
-    forward_variables_from(pw_toolchain_host_gcc.size_optimized,
-                           "*",
-                           [
-                             "defaults",
-                             "name",
-                           ])
+    name = "host_gcc_size_optimized"
+    _toolchain_base = pw_toolchain_host_gcc.size_optimized
+    forward_variables_from(_toolchain_base, "*", _excluded_members)
     defaults = {
-      _toolchain_base = pw_toolchain_host_gcc.size_optimized
       forward_variables_from(_toolchain_base.defaults, "*")
       forward_variables_from(_host_common, "*")
       forward_variables_from(_os_specific_config, "*")
@@ -159,6 +134,9 @@
   }
 }
 
+# This list just contains the members of the above scope for convenience to make
+# it trivial to generate all the toolchains in this file via a
+# `generate_toolchains` target.
 pw_target_toolchain_host_list = [
   pw_target_toolchain_host.clang_debug,
   pw_target_toolchain_host.clang_speed_optimized,
