Finish auto-converting most of the gyp files.

I've also started writing down which ones need manual work.

Change-Id: I442782e1e3352e0de32b612f1bd2c167f231495a
diff --git a/y2015/BUILD b/y2015/BUILD
new file mode 100644
index 0000000..1219e63
--- /dev/null
+++ b/y2015/BUILD
@@ -0,0 +1,49 @@
+package(default_visibility = ['//visibility:public'])
+
+cc_library(
+  name = 'constants',
+  srcs = [
+    'constants.cc',
+  ],
+  hdrs = [
+    'constants.h',
+  ],
+  deps = [
+    '//aos/common/logging',
+    '//aos/common:once',
+    '//aos/common/network:team_number',
+    '//frc971/control_loops:state_feedback_loop',
+    '//y2015/control_loops/drivetrain:polydrivetrain_plants',
+  ],
+)
+
+cc_binary(
+  name = 'joystick_reader',
+  srcs = [
+    'joystick_reader.cc',
+  ],
+  deps = [
+    '//aos/prime/input:joystick_input',
+    '//aos/linux_code:init',
+    '//aos/common/logging',
+    '//aos/common:time',
+    '//aos/common/util:log_interval',
+    '//aos/common/actions:action_lib',
+    '//frc971/queues:gyro',
+    '//y2015/control_loops/claw:claw_queue',
+    '//y2015/control_loops/drivetrain:drivetrain_queue',
+    '//y2015/control_loops/fridge:fridge_queue',
+    '//y2015:constants',
+    '//frc971/autonomous:auto_queue',
+    '//y2015/actors:stack_action_lib',
+    '//y2015/actors:stack_and_lift_action_lib',
+    '//y2015/actors:stack_and_hold_action_lib',
+    '//y2015/actors:pickup_action_lib',
+    '//y2015/actors:lift_action_lib',
+    '//y2015/actors:held_to_lift_action_lib',
+    '//y2015/actors:can_pickup_action_lib',
+    '//y2015/actors:score_action_lib',
+    '//y2015/actors:horizontal_can_pickup_action_lib',
+    '//y2015/actors:fridge_profile_lib',
+  ],
+)
diff --git a/y2015/actors/BUILD b/y2015/actors/BUILD
new file mode 100644
index 0000000..8500bf0
--- /dev/null
+++ b/y2015/actors/BUILD
@@ -0,0 +1,539 @@
+package(default_visibility = ['//visibility:public'])
+
+load('/aos/build/queues', 'queue_library')
+
+filegroup(
+  name = 'binaries',
+  srcs = [
+    ':drivetrain_action',
+    ':score_action',
+    ':score_action_test',
+    ':pickup_action',
+    ':stack_action',
+    ':stack_and_lift_action',
+    ':stack_and_hold_action',
+    ':held_to_lift_action',
+    ':can_pickup_action',
+    ':horizontal_can_pickup_action',
+    ':lift_action',
+    ':stack_action_test',
+  ],
+)
+
+queue_library(
+  name = 'drivetrain_action_queue',
+  srcs = [
+    'drivetrain_action.q',
+  ],
+  deps = [
+    '//aos/common/actions:action_queue',
+  ],
+)
+
+cc_library(
+  name = 'drivetrain_action_lib',
+  srcs = [
+    'drivetrain_actor.cc',
+  ],
+  hdrs = [
+    'drivetrain_actor.h',
+  ],
+  deps = [
+    ':drivetrain_action_queue',
+    '//y2015:constants',
+    '//aos/common:time',
+    '//aos/common/util:phased_loop',
+    '//aos/common/logging',
+    '//aos/common/actions:action_lib',
+    '//aos/common/logging:queue_logging',
+    '//third_party/eigen',
+    '//aos/common/util:trapezoid_profile',
+    '//y2015/control_loops/drivetrain:drivetrain_queue',
+  ],
+)
+
+cc_binary(
+  name = 'drivetrain_action',
+  srcs = [
+    'drivetrain_actor_main.cc',
+  ],
+  deps = [
+    '//aos/linux_code:init',
+    '//aos/common/actions:action_lib',
+    ':drivetrain_action_queue',
+    ':drivetrain_action_lib',
+  ],
+)
+
+cc_library(
+  name = 'fridge_profile_lib',
+  srcs = [
+    'fridge_profile_lib.cc',
+  ],
+  hdrs = [
+    'fridge_profile_lib.h',
+  ],
+  deps = [
+    '//aos/common/logging:logging_interface',
+    '//aos/common/actions:action_lib',
+    '//y2015/control_loops/fridge:fridge_queue',
+  ],
+)
+
+queue_library(
+  name = 'score_action_queue',
+  srcs = [
+    'score_action.q',
+  ],
+  deps = [
+    '//aos/common/actions:action_queue',
+  ],
+)
+
+cc_library(
+  name = 'score_action_lib',
+  srcs = [
+    'score_actor.cc',
+  ],
+  hdrs = [
+    'score_actor.h',
+  ],
+  deps = [
+    ':score_action_queue',
+    '//aos/common/logging',
+    '//aos/common/actions:action_lib',
+    '//aos/common/controls:control_loop',
+    '//y2015:constants',
+    '//y2015/control_loops/fridge:fridge_queue',
+    '//third_party/eigen',
+  ],
+)
+
+cc_binary(
+  name = 'score_action',
+  srcs = [
+    'score_actor_main.cc',
+  ],
+  deps = [
+    '//aos/linux_code:init',
+    '//aos/common/actions:action_lib',
+    ':score_action_queue',
+    ':score_action_lib',
+  ],
+)
+
+cc_test(
+  name = 'score_action_test',
+  srcs = [
+    'score_actor_test.cc',
+  ],
+  deps = [
+    '//third_party/gtest',
+    '//aos/common:queue_testutils',
+    '//aos/common/logging:queue_logging',
+    '//aos/common:queues',
+    '//aos/common:time',
+    '//aos/linux_code:init',
+    '//aos/common/actions:action_lib',
+    '//y2015/control_loops/fridge:fridge_queue',
+    '//frc971/control_loops:team_number_test_environment',
+    ':score_action_queue',
+    ':score_action_lib',
+  ],
+)
+
+queue_library(
+  name = 'pickup_action_queue',
+  srcs = [
+    'pickup_action.q',
+  ],
+  deps = [
+    '//aos/common/actions:action_queue',
+  ],
+)
+
+cc_library(
+  name = 'pickup_action_lib',
+  srcs = [
+    'pickup_actor.cc',
+  ],
+  hdrs = [
+    'pickup_actor.h',
+  ],
+  deps = [
+    ':pickup_action_queue',
+    '//aos/common/logging',
+    '//aos/common/actions:action_lib',
+    '//aos/common/controls:control_loop',
+    '//y2015/control_loops/claw:claw_queue',
+  ],
+)
+
+cc_binary(
+  name = 'pickup_action',
+  srcs = [
+    'pickup_actor_main.cc',
+  ],
+  deps = [
+    '//aos/linux_code:init',
+    '//aos/common/actions:action_lib',
+    ':pickup_action_queue',
+    ':pickup_action_lib',
+  ],
+)
+
+queue_library(
+  name = 'can_pickup_action_queue',
+  srcs = [
+    'can_pickup_action.q',
+  ],
+  deps = [
+    '//aos/common/actions:action_queue',
+  ],
+)
+
+cc_library(
+  name = 'can_pickup_action_lib',
+  srcs = [
+    'can_pickup_actor.cc',
+  ],
+  hdrs = [
+    'can_pickup_actor.h',
+  ],
+  deps = [
+    ':fridge_profile_lib',
+    ':can_pickup_action_queue',
+    '//aos/common/logging',
+    '//aos/common/util:phased_loop',
+    '//aos/common/actions:action_lib',
+    '//y2015:constants',
+    '//y2015/control_loops/claw:claw_queue',
+    '//aos/common/controls:control_loop',
+  ],
+)
+
+cc_binary(
+  name = 'can_pickup_action',
+  srcs = [
+    'can_pickup_actor_main.cc',
+  ],
+  deps = [
+    '//aos/linux_code:init',
+    '//aos/common/actions:action_lib',
+    ':can_pickup_action_queue',
+    ':can_pickup_action_lib',
+  ],
+)
+
+queue_library(
+  name = 'horizontal_can_pickup_action_queue',
+  srcs = [
+    'horizontal_can_pickup_action.q',
+  ],
+  deps = [
+    '//aos/common/actions:action_queue',
+  ],
+)
+
+cc_library(
+  name = 'horizontal_can_pickup_action_lib',
+  srcs = [
+    'horizontal_can_pickup_actor.cc',
+  ],
+  hdrs = [
+    'horizontal_can_pickup_actor.h',
+  ],
+  deps = [
+    ':fridge_profile_lib',
+    ':horizontal_can_pickup_action_queue',
+    '//aos/common/logging',
+    '//aos/common/util:phased_loop',
+    '//aos/common/actions:action_lib',
+    '//y2015:constants',
+    '//y2015/control_loops/claw:claw_queue',
+    '//aos/common/controls:control_loop',
+  ],
+)
+
+cc_binary(
+  name = 'horizontal_can_pickup_action',
+  srcs = [
+    'horizontal_can_pickup_actor_main.cc',
+  ],
+  deps = [
+    '//aos/linux_code:init',
+    '//aos/common/actions:action_lib',
+    ':horizontal_can_pickup_action_queue',
+    ':horizontal_can_pickup_action_lib',
+  ],
+)
+
+queue_library(
+  name = 'held_to_lift_action_queue',
+  srcs = [
+    'held_to_lift_action.q',
+  ],
+  deps = [
+    '//aos/common/actions:action_queue',
+    ':lift_action_params',
+  ],
+)
+
+cc_library(
+  name = 'held_to_lift_action_lib',
+  srcs = [
+    'held_to_lift_actor.cc',
+  ],
+  hdrs = [
+    'held_to_lift_actor.h',
+  ],
+  deps = [
+    ':fridge_profile_lib',
+    ':held_to_lift_action_queue',
+    ':lift_action_lib',
+    '//aos/common/logging',
+    '//aos/common/util:phased_loop',
+    '//aos/common/actions:action_lib',
+    '//y2015:constants',
+    '//y2015/control_loops/claw:claw_queue',
+    '//aos/common/controls:control_loop',
+  ],
+)
+
+cc_binary(
+  name = 'held_to_lift_action',
+  srcs = [
+    'held_to_lift_actor_main.cc',
+  ],
+  deps = [
+    '//aos/linux_code:init',
+    '//aos/common/actions:action_lib',
+    ':held_to_lift_action_queue',
+    ':held_to_lift_action_lib',
+  ],
+)
+
+queue_library(
+  name = 'stack_and_hold_action_queue',
+  srcs = [
+    'stack_and_hold_action.q',
+  ],
+  deps = [
+    '//aos/common/actions:action_queue',
+    ':stack_action_params',
+  ],
+)
+
+cc_library(
+  name = 'stack_and_hold_action_lib',
+  srcs = [
+    'stack_and_hold_actor.cc',
+  ],
+  hdrs = [
+    'stack_and_hold_actor.h',
+  ],
+  deps = [
+    ':fridge_profile_lib',
+    ':stack_and_hold_action_queue',
+    ':stack_action_lib',
+    '//aos/common/logging',
+    '//aos/common/util:phased_loop',
+    '//aos/common/actions:action_lib',
+    '//y2015:constants',
+    '//y2015/control_loops/claw:claw_queue',
+    '//aos/common/controls:control_loop',
+  ],
+)
+
+cc_binary(
+  name = 'stack_and_hold_action',
+  srcs = [
+    'stack_and_hold_actor_main.cc',
+  ],
+  deps = [
+    '//aos/linux_code:init',
+    '//aos/common/actions:action_lib',
+    ':stack_and_hold_action_queue',
+    ':stack_and_hold_action_lib',
+  ],
+)
+
+queue_library(
+  name = 'stack_and_lift_action_queue',
+  srcs = [
+    'stack_and_lift_action.q',
+  ],
+  deps = [
+    '//aos/common/actions:action_queue',
+    ':stack_action_params',
+    ':lift_action_params',
+  ],
+)
+
+cc_library(
+  name = 'stack_and_lift_action_lib',
+  srcs = [
+    'stack_and_lift_actor.cc',
+  ],
+  hdrs = [
+    'stack_and_lift_actor.h',
+  ],
+  deps = [
+    ':fridge_profile_lib',
+    ':stack_and_lift_action_queue',
+    ':stack_action_lib',
+    ':lift_action_lib',
+    '//aos/common/logging',
+    '//aos/common/util:phased_loop',
+    '//aos/common/actions:action_lib',
+    '//y2015:constants',
+    '//y2015/control_loops/claw:claw_queue',
+    '//aos/common/controls:control_loop',
+  ],
+)
+
+cc_binary(
+  name = 'stack_and_lift_action',
+  srcs = [
+    'stack_and_lift_actor_main.cc',
+  ],
+  deps = [
+    '//aos/linux_code:init',
+    '//aos/common/actions:action_lib',
+    ':stack_and_lift_action_queue',
+    ':stack_and_lift_action_lib',
+  ],
+)
+
+filegroup(
+  name = 'stack_action_queue',
+  srcs = [
+    ':stack_action_queue_real',
+  ],
+)
+
+queue_library(
+  name = 'stack_action_queue_real',
+  srcs = [
+    'stack_action.q',
+  ],
+  deps = [
+    '//aos/common/actions:action_queue',
+    ':stack_action_params',
+  ],
+)
+
+queue_library(
+  name = 'stack_action_params',
+  srcs = [
+    'stack_action_params.q',
+  ],
+)
+
+cc_test(
+  name = 'stack_action_test',
+  srcs = [
+    'stack_actor_test.cc',
+  ],
+  deps = [
+    '//third_party/gtest',
+    '//aos/common:queue_testutils',
+    '//aos/common/logging:queue_logging',
+    '//aos/common:queues',
+    '//aos/common:time',
+    '//aos/linux_code:init',
+    '//aos/common/actions:action_lib',
+    '//y2015/control_loops/fridge:fridge_queue',
+    '//frc971/control_loops:team_number_test_environment',
+    ':stack_action_queue',
+    ':stack_action_lib',
+  ],
+)
+
+cc_library(
+  name = 'stack_action_lib',
+  srcs = [
+    'stack_actor.cc',
+  ],
+  hdrs = [
+    'stack_actor.h',
+  ],
+  deps = [
+    ':fridge_profile_lib',
+    ':stack_action_queue',
+    '//aos/common/logging',
+    '//aos/common/util:phased_loop',
+    '//aos/common/actions:action_lib',
+    '//y2015:constants',
+    '//y2015/control_loops/claw:claw_queue',
+  ],
+)
+
+cc_binary(
+  name = 'stack_action',
+  srcs = [
+    'stack_actor_main.cc',
+  ],
+  deps = [
+    '//aos/linux_code:init',
+    '//aos/common/actions:action_lib',
+    ':stack_action_queue',
+    ':stack_action_lib',
+  ],
+)
+
+filegroup(
+  name = 'lift_action_queue',
+  srcs = [
+    ':lift_action_queue_real',
+  ],
+)
+
+queue_library(
+  name = 'lift_action_queue_real',
+  srcs = [
+    'lift_action.q',
+  ],
+  deps = [
+    '//aos/common/actions:action_queue',
+    ':lift_action_params',
+  ],
+)
+
+queue_library(
+  name = 'lift_action_params',
+  srcs = [
+    'lift_action_params.q',
+  ],
+)
+
+cc_library(
+  name = 'lift_action_lib',
+  srcs = [
+    'lift_actor.cc',
+  ],
+  hdrs = [
+    'lift_actor.h',
+  ],
+  deps = [
+    ':fridge_profile_lib',
+    ':lift_action_queue',
+    '//aos/common/logging',
+    '//aos/common/actions:action_lib',
+    '//y2015:constants',
+    '//y2015/control_loops/claw:claw_queue',
+  ],
+)
+
+cc_binary(
+  name = 'lift_action',
+  srcs = [
+    'lift_actor_main.cc',
+  ],
+  deps = [
+    '//aos/linux_code:init',
+    '//aos/common/actions:action_lib',
+    ':lift_action_queue',
+    ':lift_action_lib',
+  ],
+)
diff --git a/y2015/autonomous/BUILD b/y2015/autonomous/BUILD
new file mode 100644
index 0000000..997c54f
--- /dev/null
+++ b/y2015/autonomous/BUILD
@@ -0,0 +1,40 @@
+package(default_visibility = ['//visibility:public'])
+
+cc_library(
+  name = 'auto_lib',
+  srcs = [
+    'auto.cc',
+  ],
+  hdrs = [
+    'auto.h',
+  ],
+  deps = [
+    '//frc971/autonomous:auto_queue',
+    '//aos/common/controls:control_loop',
+    '//y2015/control_loops/drivetrain:drivetrain_queue',
+    '//y2015:constants',
+    '//aos/common:time',
+    '//aos/common/util:phased_loop',
+    '//aos/common/util:trapezoid_profile',
+    '//aos/common/logging',
+    '//y2015/actors:drivetrain_action_lib',
+    '//aos/common/logging:queue_logging',
+    '//y2015/control_loops/claw:claw_queue',
+    '//y2015/control_loops/fridge:fridge_queue',
+    '//y2015/actors:stack_action_lib',
+    '//y2015/actors:held_to_lift_action_lib',
+    '//y2015/actors:pickup_action_lib',
+  ],
+)
+
+cc_binary(
+  name = 'auto',
+  srcs = [
+    'auto_main.cc',
+  ],
+  deps = [
+    '//aos/linux_code:init',
+    '//frc971/autonomous:auto_queue',
+    ':auto_lib',
+  ],
+)
diff --git a/y2015/control_loops/claw/BUILD b/y2015/control_loops/claw/BUILD
new file mode 100644
index 0000000..134ef55
--- /dev/null
+++ b/y2015/control_loops/claw/BUILD
@@ -0,0 +1,74 @@
+package(default_visibility = ['//visibility:public'])
+
+load('/aos/build/queues', 'queue_library')
+
+cc_binary(
+  name = 'replay_claw',
+  srcs = [
+    'replay_claw.cc',
+  ],
+  deps = [
+    ':claw_queue',
+    '//aos/common/controls:replay_control_loop',
+    '//aos/linux_code:init',
+  ],
+)
+
+queue_library(
+  name = 'claw_queue',
+  srcs = [
+    'claw.q',
+  ],
+  deps = [
+    '//aos/common/controls:control_loop_queues',
+    '//frc971/control_loops:queues',
+  ],
+)
+
+cc_library(
+  name = 'claw_lib',
+  srcs = [
+    'claw.cc',
+    'claw_motor_plant.cc',
+  ],
+  hdrs = [
+    'claw.h',
+    'claw_motor_plant.h',
+  ],
+  deps = [
+    ':claw_queue',
+    '//aos/common/controls:control_loop',
+    '//aos/common:time',
+    '//aos/common/util:trapezoid_profile',
+    '//y2015:constants',
+    '//frc971/control_loops:state_feedback_loop',
+    '//frc971/zeroing:zeroing',
+  ],
+)
+
+cc_test(
+  name = 'claw_lib_test',
+  srcs = [
+    'claw_lib_test.cc',
+  ],
+  deps = [
+    '//third_party/gtest',
+    ':claw_lib',
+    '//frc971/control_loops:state_feedback_loop',
+    '//aos/common/controls:control_loop_test',
+    '//aos/common:time',
+    '//frc971/control_loops:position_sensor_sim',
+    '//frc971/control_loops:team_number_test_environment',
+  ],
+)
+
+cc_binary(
+  name = 'claw',
+  srcs = [
+    'claw_main.cc',
+  ],
+  deps = [
+    '//aos/linux_code:init',
+    ':claw_lib',
+  ],
+)
diff --git a/y2015/control_loops/drivetrain/BUILD b/y2015/control_loops/drivetrain/BUILD
new file mode 100644
index 0000000..c08e4b0
--- /dev/null
+++ b/y2015/control_loops/drivetrain/BUILD
@@ -0,0 +1,92 @@
+package(default_visibility = ['//visibility:public'])
+
+load('/aos/build/queues', 'queue_library')
+
+cc_binary(
+  name = 'replay_drivetrain',
+  srcs = [
+    'replay_drivetrain.cc',
+  ],
+  deps = [
+    ':drivetrain_queue',
+    '//aos/common/controls:replay_control_loop',
+    '//aos/linux_code:init',
+  ],
+)
+
+queue_library(
+  name = 'drivetrain_queue',
+  srcs = [
+    'drivetrain.q',
+  ],
+  deps = [
+    '//aos/common/controls:control_loop_queues',
+  ],
+)
+
+cc_library(
+  name = 'polydrivetrain_plants',
+  srcs = [
+    'polydrivetrain_dog_motor_plant.cc',
+    'drivetrain_dog_motor_plant.cc',
+  ],
+  hdrs = [
+    'polydrivetrain_dog_motor_plant.h',
+    'drivetrain_dog_motor_plant.h',
+  ],
+  deps = [
+    '//frc971/control_loops:state_feedback_loop',
+  ],
+)
+
+cc_library(
+  name = 'drivetrain_lib',
+  srcs = [
+    'drivetrain.cc',
+    'polydrivetrain_cim_plant.cc',
+  ],
+  hdrs = [
+    'drivetrain.h',
+    'polydrivetrain_cim_plant.h',
+  ],
+  deps = [
+    ':drivetrain_queue',
+    '//aos/common/controls:control_loop',
+    '//y2015:constants',
+    '//aos/common/controls:polytope',
+    '//frc971/control_loops:state_feedback_loop',
+    '//frc971/control_loops:coerce_goal',
+    '//frc971/queues:gyro',
+    '//aos/common/util:log_interval',
+    '//aos/common/logging:queue_logging',
+    '//aos/common/logging:matrix_logging',
+  ],
+)
+
+cc_test(
+  name = 'drivetrain_lib_test',
+  srcs = [
+    'drivetrain_lib_test.cc',
+  ],
+  deps = [
+    '//third_party/gtest',
+    ':drivetrain_queue',
+    ':drivetrain_lib',
+    '//aos/common/controls:control_loop_test',
+    '//frc971/control_loops:state_feedback_loop',
+    '//frc971/queues:gyro',
+    '//aos/common:queues',
+  ],
+)
+
+cc_binary(
+  name = 'drivetrain',
+  srcs = [
+    'drivetrain_main.cc',
+  ],
+  deps = [
+    '//aos/linux_code:init',
+    ':drivetrain_lib',
+    ':drivetrain_queue',
+  ],
+)
diff --git a/y2015/control_loops/fridge/BUILD b/y2015/control_loops/fridge/BUILD
new file mode 100644
index 0000000..1304a82
--- /dev/null
+++ b/y2015/control_loops/fridge/BUILD
@@ -0,0 +1,80 @@
+package(default_visibility = ['//visibility:public'])
+
+load('/aos/build/queues', 'queue_library')
+
+cc_binary(
+  name = 'replay_fridge',
+  srcs = [
+    'replay_fridge.cc',
+  ],
+  deps = [
+    ':fridge_queue',
+    '//aos/common/controls:replay_control_loop',
+    '//aos/linux_code:init',
+  ],
+)
+
+queue_library(
+  name = 'fridge_queue',
+  srcs = [
+    'fridge.q',
+  ],
+  deps = [
+    '//aos/common/controls:control_loop_queues',
+    '//frc971/control_loops:queues',
+    '//frc971/zeroing:zeroing',
+  ],
+)
+
+cc_library(
+  name = 'fridge_lib',
+  srcs = [
+    'fridge.cc',
+    'integral_arm_plant.cc',
+    'elevator_motor_plant.cc',
+  ],
+  hdrs = [
+    'fridge.h',
+    'integral_arm_plant.h',
+    'elevator_motor_plant.h',
+  ],
+  deps = [
+    ':fridge_queue',
+    '//aos/common/controls:control_loop',
+    '//aos/common/util:trapezoid_profile',
+    '//y2015:constants',
+    '//frc971/control_loops:state_feedback_loop',
+    '//frc971/control_loops/voltage_cap:voltage_cap',
+  ],
+)
+
+cc_test(
+  name = 'fridge_lib_test',
+  srcs = [
+    'fridge_lib_test.cc',
+    'arm_motor_plant.cc',
+  ],
+  hdrs = [
+    'arm_motor_plant.h',
+  ],
+  deps = [
+    '//third_party/gtest',
+    ':fridge_lib',
+    '//frc971/control_loops:state_feedback_loop',
+    '//aos/common/controls:control_loop_test',
+    '//aos/common:time',
+    '//frc971/control_loops:position_sensor_sim',
+    '//frc971/control_loops:team_number_test_environment',
+  ],
+)
+
+cc_binary(
+  name = 'fridge',
+  srcs = [
+    'fridge_main.cc',
+  ],
+  deps = [
+    '//aos/linux_code:init',
+    ':fridge_lib',
+  ],
+)
diff --git a/y2015/http_status/BUILD b/y2015/http_status/BUILD
new file mode 100644
index 0000000..d71574c
--- /dev/null
+++ b/y2015/http_status/BUILD
@@ -0,0 +1,20 @@
+package(default_visibility = ['//visibility:public'])
+
+cc_binary(
+  name = 'http_status',
+  srcs = [
+    'http_status.cc',
+  ],
+  hdrs = [
+    'http_status.h',
+  ],
+  deps = [
+    '//aos/linux_code:init',
+    '//aos/common/logging',
+    '//third_party/seasocks',
+    '//y2015/control_loops/claw:claw_queue',
+    '//y2015/control_loops/fridge:fridge_queue',
+    '//aos/common/util:phased_loop',
+    '//aos/common:time',
+  ],
+)
diff --git a/y2015/prime/BUILD b/y2015/prime/BUILD
new file mode 100644
index 0000000..78a8280
--- /dev/null
+++ b/y2015/prime/BUILD
@@ -0,0 +1,22 @@
+package(default_visibility = ['//visibility:public'])
+
+filegroup(
+  name = 'All',
+  srcs = [
+    '//aos:prime_binaries',
+    '//y2015/control_loops/drivetrain:drivetrain',
+    '//y2015/control_loops/drivetrain:drivetrain_lib_test',
+    '//y2015/control_loops/drivetrain:replay_drivetrain',
+    '//y2015/control_loops/fridge:fridge',
+    '//y2015/control_loops/fridge:fridge_lib_test',
+    '//y2015/control_loops/fridge:replay_fridge',
+    '//y2015/control_loops/claw:claw',
+    '//y2015/control_loops/claw:claw_lib_test',
+    '//y2015/control_loops/claw:replay_claw',
+    '//y2015/autonomous:auto',
+    '//y2015:joystick_reader',
+    '//y2015/http_status:http_status',
+    '//y2015/util:kinematics_test',
+    '//y2015/actors:binaries',
+  ],
+)
diff --git a/y2015/util/BUILD b/y2015/util/BUILD
new file mode 100644
index 0000000..2a7250f
--- /dev/null
+++ b/y2015/util/BUILD
@@ -0,0 +1,23 @@
+package(default_visibility = ['//visibility:public'])
+
+cc_library(
+  name = 'kinematics',
+  deps = [
+    '//third_party/eigen',
+    '//y2015:constants',
+  ],
+)
+
+cc_test(
+  name = 'kinematics_test',
+  srcs = [
+    'kinematics_test.cc',
+  ],
+  deps = [
+    '//third_party/gtest',
+    '//aos/common:queue_testutils',
+    '//aos/common/logging',
+    '//frc971/control_loops:team_number_test_environment',
+    ':kinematics',
+  ],
+)
diff --git a/y2015/wpilib/BUILD b/y2015/wpilib/BUILD
new file mode 100644
index 0000000..d25c424
--- /dev/null
+++ b/y2015/wpilib/BUILD
@@ -0,0 +1,35 @@
+package(default_visibility = ['//visibility:public'])
+
+cc_binary(
+  name = 'wpilib_interface',
+  srcs = [
+    'wpilib_interface.cc',
+  ],
+  deps = [
+    '//aos/linux_code:init',
+    '//aos/common:stl_mutex',
+    '//aos/common/logging',
+    '//third_party/WPILib',
+    '//y2015:constants',
+    '//y2015/control_loops/drivetrain:drivetrain_queue',
+    '//y2015/control_loops/fridge:fridge_queue',
+    '//y2015/control_loops/claw:claw_queue',
+    '//aos/common/controls:control_loop',
+    '//aos/common/util:log_interval',
+    '//aos/common:time',
+    '//aos/common/logging:queue_logging',
+    '//aos/common/messages:robot_state',
+    '//aos/common/util:phased_loop',
+    '//aos/common/messages:robot_state',
+    '//frc971/wpilib:hall_effect',
+    '//frc971/wpilib:joystick_sender',
+    '//frc971/wpilib:loop_output_handler',
+    '//frc971/wpilib:buffered_pcm',
+    '//frc971/wpilib:gyro_sender',
+    '//frc971/wpilib:dma_edge_counting',
+    '//frc971/wpilib:interrupt_edge_counting',
+    '//frc971/wpilib:encoder_and_potentiometer',
+    '//frc971/control_loops:queues',
+    '//frc971/wpilib:logging_queue',
+  ],
+)