copied everything over from 2012 and removed all of the actual robot code except the drivetrain stuff


git-svn-id: https://robotics.mvla.net/svn/frc971/2013/trunk/src@4078 f308d9b7-e957-4cde-b6ac-9a88185e7312
diff --git a/aos/build/aos.gypi b/aos/build/aos.gypi
new file mode 100644
index 0000000..08bf975
--- /dev/null
+++ b/aos/build/aos.gypi
@@ -0,0 +1,194 @@
+# This file gets passed to gyp with -I so that it gets included everywhere.
+{
+  'variables': {
+    'AOS': '<(DEPTH)/aos',
+# A directory with everything in it ignored from source control.
+    'TMPDIR': '<(DEPTH)/aos/build/temp',
+    'aos_abs': '<!(readlink -f <(DEPTH)/aos)', # for use in non-path contexts
+# the .gyp file that has targets for the various external libraries
+    'EXTERNALS': '<(AOS)/build/externals.gyp',
+# the directory that gets rsynced to the atom
+    'rsync_dir': '<(PRODUCT_DIR)/outputs',
+# The directory that loadable_module and shared_library targets get put into
+# There's a target_conditions that puts loadable_modules here and
+#   shared_librarys automatically get put here.
+    'so_dir': '<(PRODUCT_DIR)/lib',
+# the directory that executables that depend on <(EXTERNALS):gtest get put into
+    'test_dir': '<(PRODUCT_DIR)/tests',
+# 'executable' for the atom and 'static_library' for the cRIO
+# Useful for targets that should either be an executable or get compiled into
+# a .out file depending on the current platform.
+#   'aos_target': platform-dependent,
+  },
+  'conditions': [
+    ['OS=="crio"', {
+        'make_global_settings': [
+          ['CC', '<!(which powerpc-wrs-vxworks-gcc)'],
+          ['CXX', '<!(which powerpc-wrs-vxworks-g++)'],
+          ['LD', '<!(readlink -f <(AOS)/build/crio_link_out)'],
+          #['LD', 'powerpc-wrs-vxworks-ld'],
+          #['AR', '<!(which powerpc-wrs-vxworks-ar)'],
+          #['NM', '<!(which powerpc-wrs-vxworks-nm)'],
+        ],
+        'variables': {
+          'aos_target': 'static_library',
+        },
+      }, {
+        'variables': {
+          'aos_target': 'executable',
+        },
+      }
+    ],
+  ],
+  'target_defaults': {
+    'defines': [
+      '__STDC_FORMAT_MACROS',
+      '_FORTIFY_SOURCE=2',
+    ],
+    'ldflags': [
+      '-pipe',
+    ],
+    'cflags': [
+      '-pipe',
+
+      '-Wall',
+      '-Wextra',
+      '-Wswitch-enum',
+      '-Wpointer-arith',
+      '-Wstrict-aliasing=2',
+      '-Wcast-qual',
+      '-Wcast-align',
+      '-Wwrite-strings',
+      '-Wtype-limits',
+      '-Wsign-compare',
+      '-Wformat=2',
+      '-Werror',
+    ],
+    'cflags_c': [
+      '-std=gnu99',
+    ],
+    'cflags_cc': [
+      '-std=gnu++0x',
+    ],
+    'include_dirs': [
+      '<(DEPTH)',
+    ],
+    'conditions': [
+      ['DEBUG=="yes"', {
+          'cflags': [
+            '-ggdb3',
+            '-O0',
+          ],
+          'ldflags': [
+            '-O3',
+          ],
+        }, {
+          'cflags': [
+            '-O3',
+          ],
+          'conditions': [['OS=="crio"', {
+              'cflags': [
+                '-fstrength-reduce',
+                '-fno-builtin',
+                '-fno-strict-aliasing',
+              ],
+            }, {
+              'cflags': [
+                # core2 says the same stuff as atom in the gcc docs but is supported by 4.4.5
+                '-march=core2',
+                '-mtune=generic',
+                '-msse3',
+                '-mfpmath=sse',
+
+                '-fstack-protector',
+              ],
+            }
+          ]],
+        }
+      ],
+      ['OS=="crio"', {
+          'target_conditions': [
+            ['_type=="shared_library"', {
+                'ldflags': [
+                  '-r',
+                  '-nostdlib',
+                  '-Wl,-X',
+                ],
+              }
+            ],
+          ],
+          'ldflags': [
+            '-mcpu=603',
+            '-mstrict-align',
+            '-mlongcall',
+          ],
+          'cflags': [
+            '-mcpu=603',
+            '-mstrict-align',
+            '-mlongcall',
+            '-isystem', '<(aos_abs)/externals/gccdist/WindRiver/gnu/3.4.4-vxworks-6.3/x86-win32/lib/gcc/powerpc-wrs-vxworks/3.4.4/include/',
+            '-isystem', '<(aos_abs)/externals/gccdist/WindRiver/vxworks-6.3/target/h/',
+            '-isystem', '<(aos_abs)/externals/gccdist/WindRiver/gnu/3.4.4-vxworks-6.3/x86-win32/include/c++/3.4.4/',
+            '-isystem', '<(aos_abs)/externals/gccdist/WindRiver/gnu/3.4.4-vxworks-6.3/x86-win32/include/c++/3.4.4/powerpc-wrs-vxworks/',
+            '-isystem', '<(WIND_BASE)/target/h',
+            '-isystem', '<(WIND_BASE)/target/h/wrn/coreip',
+          ],
+          'defines': [
+            'CPU=PPC603',
+            'TOOL_FAMILY=gnu',
+            'TOOL=gnu',
+            '_WRS_KERNEL',
+            '__PPC__',
+# This tells eigen to not do anything with alignment at all. See
+# <http://eigen.tuxfamily.org/dox/TopicPreprocessorDirectives.html> for
+# details. It really doesn't like to work without this.
+            'EIGEN_DONT_ALIGN',
+# prevent the vxworks system headers from being dumb and #defining min and max
+            'NOMINMAX',
+          ],
+        }, {
+          'variables': {
+            'no_rsync%': 0,
+          },
+          'target_conditions': [
+# default to putting outputs into rsync_dir
+            ['no_rsync==0 and _type!="static_library"', {
+                'product_dir': '<(rsync_dir)',
+              },
+            ],
+            ['_type=="loadable_module"', {
+                'product_dir': '<(so_dir)',
+              }
+            ],
+            ['_type=="loadable_module" or _type=="shared_library"', {
+                'ldflags': [
+# Support loading other shared objects that are in the same directory but not
+#   the shared object load path. Required for using the swig-generated libs.
+                  '-Wl,-rpath=\\$$ORIGIN',
+                ],
+              }
+            ],
+          ],
+          'ldflags': [
+            '-pthread',
+            '-m32',
+          ],
+          'library_dirs': [
+            '/usr/lib32',
+          ],
+          'cflags': [
+            '-pthread',
+            '-m32',
+          ],
+          'defines': [
+            '_LARGEFILE64_SOURCE',
+          ],
+          'libraries': [
+            '-lm',
+            '-lrt',
+          ],
+        }
+      ]
+    ],
+  },
+}