merging in the most recent version of everything else
diff --git a/aos/build/externals.gyp b/aos/build/externals.gyp
index 5f85b5c..34564e1 100644
--- a/aos/build/externals.gyp
+++ b/aos/build/externals.gyp
@@ -2,12 +2,14 @@
 # download_externals.sh makes sure that all of them have been downloaded.
 {
   'variables': {
-    'externals': '<(AOS)/externals',
-    'externals_abs': '<!(readlink -f ../externals)',
+    'externals': '<(AOS)/../output/downloaded',
+    'externals_abs': '<!(readlink -f ../../output/downloaded)',
+    'compiled': '<(externals)/../compiled-arm',
+    'compiled_abs': '<(externals_abs)/../compiled-arm',
 
 # These versions have to be kept in sync with the ones in download_externals.sh.
     'eigen_version': '3.1.3',
-    'gtest_version': '1.6.0-p2',
+    'gtest_version': '1.6.0-p1',
     'onejar_version': '0.97',
     'ctemplate_version': '129',
     'gflags_version': '2.0',
@@ -15,13 +17,14 @@
     'libusb_apiversion': '1.0',
     'compiler_rt_version': 'RELEASE_32_final',
     'libevent_version': '2.0.21',
+    'libcdd_version': '094g',
   },
   'targets': [
     {
       'target_name': 'WPILib',
       'type': 'static_library',
       'sources': [
-        '<!@(find <(externals)/WPILib/WPILib/ -name *.cpp)',
+        '<!@(find <(AOS)/externals/WPILib/WPILib/ -name *.cpp)',
       ],
       'cflags!': [
         '-Werror',
@@ -33,13 +36,13 @@
         '-O3'
       ],
       'include_dirs': [
-        '<(externals)/WPILib',
-        '<(externals)/WPILib/WPILib',
+        '<(AOS)/externals/WPILib',
+        '<(AOS)/externals/WPILib/WPILib',
       ],
       'direct_dependent_settings': {
         'cflags': [
-          '-isystem', '<(externals_abs)/WPILib',
-          '-isystem', '<(externals_abs)/WPILib/WPILib',
+          '-isystem', '<(AOS)/externals/WPILib',
+          '-isystem', '<(AOS)/externals/WPILib/WPILib',
         ],
       },
     },
@@ -47,14 +50,14 @@
       'target_name': 'WPILib-NetworkRobotValues',
       'type': 'static_library',
       'sources': [
-        '<(externals)/WPILib/WPILib/NetworkRobot/NetworkRobotValues.cpp'
+        '<(AOS)/externals/WPILib/WPILib/NetworkRobot/NetworkRobotValues.cpp'
       ],
       'include_dirs': [
-        '<(externals)/WPILib',
+        '<(AOS)/externals/WPILib',
       ],
       'direct_dependent_settings': {
         'include_dirs': [
-          '<(externals)/WPILib',
+          '<(AOS)/externals/WPILib',
         ],
       },
     },
@@ -101,10 +104,10 @@
       'target_name': 'libevent',
       'type': 'none',
       'link_settings': {
-        'libraries': ['<(externals_abs)/libevent-<(libevent_version)-prefix/lib/libevent.a'],
+        'libraries': ['<(compiled_abs)/libevent-<(libevent_version)-prefix/lib/libevent.a'],
       },
       'direct_dependent_settings': {
-        'include_dirs': ['<(externals)/libevent-<(libevent_version)-prefix/include'],
+        'include_dirs': ['<(compiled)/libevent-<(libevent_version)-prefix/include'],
       },
     },
     {
@@ -120,7 +123,10 @@
       'target_name': 'libjpeg',
       'type': 'none',
       'direct_dependent_settings': {
-        'libraries': ['<(externals_abs)/libjpeg/lib/libjpeg.a'],
+        'libraries': ['<(compiled_abs)/libjpeg/lib/libjpeg.a'],
+        'cflags': [
+          '-isystem', '<(compiled)',
+        ],
       },
     },
     {
@@ -184,30 +190,43 @@
       'target_name': 'ctemplate',
       'type': 'none',
       'link_settings': {
-        'libraries': ['<(externals_abs)/ctemplate-<(ctemplate_version)-prefix/lib/libctemplate.a'],
+        'libraries': ['<(compiled_abs)/ctemplate-<(ctemplate_version)-prefix/lib/libctemplate.a'],
       },
       'direct_dependent_settings': {
-        'include_dirs': ['<(externals)/ctemplate-<(ctemplate_version)-prefix/include'],
+        'include_dirs': ['<(compiled)/ctemplate-<(ctemplate_version)-prefix/include'],
       },
     },
     {
       'target_name': 'gflags',
       'type': 'none',
       'link_settings': {
-        'libraries': ['<(externals_abs)/gflags-<(gflags_version)-prefix/lib/libgflags.a'],
+        'libraries': ['<(compiled_abs)/gflags-<(gflags_version)-prefix/lib/libgflags.a'],
       },
       'direct_dependent_settings': {
-        'include_dirs': ['<(externals)/gflags-<(gflags_version)-prefix/include'],
+        'include_dirs': ['<(compiled)/gflags-<(gflags_version)-prefix/include'],
       },
     },
     {
       'target_name': 'libusb',
       'type': 'none',
       'link_settings': {
-        'libraries': ['<(externals_abs)/libusb-<(libusb_version)-prefix/lib/libusb-<(libusb_apiversion).a'],
+        'libraries': ['<(compiled_abs)/libusb-<(libusb_version)-prefix/lib/libusb-<(libusb_apiversion).a'],
       },
       'direct_dependent_settings': {
-        'include_dirs': ['<(externals)/libusb-<(libusb_version)-prefix/include'],
+        'include_dirs': ['<(compiled)/libusb-<(libusb_version)-prefix/include'],
+        'cflags': [
+          '-Wno-error=cast-align',
+        ],
+      },
+    },
+    {
+      'target_name': 'libcdd',
+      'type': 'none',
+      'link_settings': {
+        'libraries': ['<(compiled_abs)/libcdd-<(libcdd_version)-prefix/lib/libcdd.a'],
+      },
+      'direct_dependent_settings': {
+        'include_dirs': ['<(compiled_abs)/'],
       },
     },
   ],