Add a basic TargetARM32 skeleton which knows nothing.

Later commits will add more information, but this tests the
conditional compilation and build setup.

One way to do conditional compilation: determine this
early, at LLVM configure/CMake time. Configure will
fill in the template of SZTargets.def.in to get
a SZTargets.def file.

LLVM change:
https://codereview.chromium.org/1084753002/

NaCl change:
https://codereview.chromium.org/1082953002/

I suppose an alternative is to fill in the .def file via
-D flags in CXXFLAGS.

For conditional lit testing, pnacl-sz dumps the attributes
when given the --build-atts so we just build on top of that.
We do that instead of go the LLVM way of filling in a
lit.site.cfg.in -> lit.site.cfg at configure/CMake time.

BUG= https://code.google.com/p/nativeclient/issues/detail?id=4076
R=stichnot@chromium.org

Review URL: https://codereview.chromium.org/1075363002
diff --git a/src/IceCompiler.cpp b/src/IceCompiler.cpp
index 47f1ba4..7c8b791 100644
--- a/src/IceCompiler.cpp
+++ b/src/IceCompiler.cpp
@@ -47,9 +47,15 @@
 // Validates values of build attributes. Prints them to Stream if
 // Stream is non-null.
 void ValidateAndGenerateBuildAttributes(const ClFlags &Flags, Ostream *Stream) {
-  if (Stream)
+  if (Stream) {
+    // List the requested target.
     *Stream << Flags.getTargetArch() << "\n";
 
+// List the supported targets.
+#define SUBZERO_TARGET(TARGET) *Stream << "target_" #TARGET << "\n";
+#include "llvm/Config/SZTargets.def"
+  }
+
   for (size_t i = 0; i < llvm::array_lengthof(ConditionalBuildAttributes);
        ++i) {
     switch (ConditionalBuildAttributes[i].FlagValue) {