Add support for building code for Debian armhf

I think this will work with the Ubuntu-based distribution on the TK1
too.

Change-Id: I62350d2f7a8914fb13c421be427388c6e46c5481
diff --git a/tools/build_rules/select.bzl b/tools/build_rules/select.bzl
index 18701ef..151283f 100644
--- a/tools/build_rules/select.bzl
+++ b/tools/build_rules/select.bzl
@@ -3,18 +3,27 @@
 # quickly find issues where something new isn't handled.
 # It will also make adding ORs when it makes sense easy to do nicely.
 
-all_cpus = ['amd64', 'roborio']
+all_cpus = ['amd64', 'roborio', 'armhf']
 '''All of the CPUs we know about.'''
 
 '''A select wrapper for CPU architectures.
 
 Args:
   values: A mapping from architecture names (as strings) to other things.
-          Currently amd64 and roborio are recognized.
+          Currently amd64, roborio, and armhf are recognized.
           'else' is also allowed as a default.
+          'arm' is allowed instead of roborio and armhf.
 Returns a select which evaluates to the correct element of values.
 '''
 def cpu_select(values):
+  if 'arm' in values:
+    new_values = {}
+    for cpu in values:
+      if cpu != 'arm':
+        new_values[cpu] = values[cpu]
+    new_values['armhf'] = values['arm']
+    new_values['roborio'] = values['arm']
+    values = new_values
   for cpu in all_cpus:
     if cpu not in values:
       if 'else' in values:
@@ -27,6 +36,7 @@
   return select({
     '//tools:cpu_k8': values['amd64'],
     '//tools:cpu_roborio': values['roborio'],
+    '//tools:cpu_armhf': values['armhf'],
   })
 
 '''A select wrapper for address space sizes.