diff --git a/bench/nanobench.cpp b/bench/nanobench.cpp
index baa109e..1f5ae60 100644
--- a/bench/nanobench.cpp
+++ b/bench/nanobench.cpp
@@ -572,7 +572,9 @@
     int fCurrentSKP;
 };
 
+int nanobench_main();
 int nanobench_main() {
+    SetupCrashHandler();
     SkAutoGraphics ag;
 
 #if SK_SUPPORT_GPU
@@ -750,3 +752,9 @@
     return 0;
 }
 
+#if !defined SK_BUILD_FOR_IOS
+int main(int argc, char** argv) {
+    SkCommandLineFlags::Parse(argc, argv);
+    return nanobench_main();
+}
+#endif
diff --git a/bench/nanobench.h b/bench/nanobench.h
deleted file mode 100644
index 4616747..0000000
--- a/bench/nanobench.h
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * Copyright 2014 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-#ifndef nanobench_DEFINED
-#define nanobench_DEFINED
-
-// API for nanobench app.
-int nanobench_main();
-
-#endif
diff --git a/bench/nanobench_main.cpp b/bench/nanobench_main.cpp
deleted file mode 100644
index a598adc..0000000
--- a/bench/nanobench_main.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Copyright 2014 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-
-#include "CrashHandler.h"
-#include "SkCommandLineFlags.h"
-#include "nanobench.h"
-
-int main(int argc, char * const argv[]) {
-    SetupCrashHandler();
-    SkCommandLineFlags::Parse(argc, const_cast<char**>(argv));
-    return nanobench_main();
-
-}
diff --git a/dm/DM.cpp b/dm/DM.cpp
index 08a4587..52c86d5 100644
--- a/dm/DM.cpp
+++ b/dm/DM.cpp
@@ -1,6 +1,7 @@
 // Main binary for DM.
 // For a high-level overview, please see dm/README.
 
+#include "CrashHandler.h"
 #include "LazyDecodeBitmap.h"
 #include "SkCommonFlags.h"
 #include "SkForceLinking.h"
@@ -186,7 +187,9 @@
     }
 }
 
+int dm_main();
 int dm_main() {
+    SetupCrashHandler();
     SkAutoGraphics ag;
     SkTaskGroup::Enabler enabled(FLAGS_threads);
 
@@ -241,3 +244,10 @@
     report_failures(failures);
     return failures.count() > 0;
 }
+
+#if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL)
+int main(int argc, char** argv) {
+    SkCommandLineFlags::Parse(argc, argv);
+    return dm_main();
+}
+#endif
diff --git a/dm/dm.h b/dm/dm.h
deleted file mode 100644
index 99b6e10..0000000
--- a/dm/dm.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * Copyright 2014 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-#ifndef dm_DEFINED
-#define dm_DEFINED
-
-// API for dm app.
-
-int dm_main();
-
-#endif
diff --git a/dm/dm_main.cpp b/dm/dm_main.cpp
deleted file mode 100644
index ac8e0f3..0000000
--- a/dm/dm_main.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * Copyright 2014 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "CrashHandler.h"
-#include "SkCommandLineFlags.h"
-#include "dm.h"
-
-int main(int argc, char * const argv[]) {
-    SetupCrashHandler();
-    SkCommandLineFlags::Parse(argc, const_cast<char**>(argv));
-    return dm_main();
-}
diff --git a/gyp/bench.gyp b/gyp/bench.gyp
index e91c4f2..26849d5 100644
--- a/gyp/bench.gyp
+++ b/gyp/bench.gyp
@@ -13,7 +13,6 @@
         '../bench/GMBench.cpp',
         '../bench/RecordingBench.cpp',
         '../bench/SKPBench.cpp',
-        '../bench/nanobench_main.cpp',
         '../bench/nanobench.cpp',
       ],
       'includes': [
diff --git a/gyp/dm.gyp b/gyp/dm.gyp
index 0e5eebd..e4d6bd6 100644
--- a/gyp/dm.gyp
+++ b/gyp/dm.gyp
@@ -8,9 +8,6 @@
         'includes': [
           'dm.gypi',
         ],
-        'sources': [
-          '../dm/dm_main.cpp',
-        ],
         'conditions': [
           ['skia_android_framework', {
               'libraries': [ '-lskia' ],
diff --git a/gyp/most.gyp b/gyp/most.gyp
index 61efe1e..e22629a 100644
--- a/gyp/most.gyp
+++ b/gyp/most.gyp
@@ -29,7 +29,7 @@
           'dependencies': [ 'android_system.gyp:SampleApp_APK' ],
         }],
         ['skia_os == "ios"', {
-          'dependencies!': [ 'SampleApp.gyp:SampleApp', 'dm.gyp:dm', 'bench.gyp:*' ],
+          'dependencies!': [ 'SampleApp.gyp:SampleApp' ],
           'dependencies': ['iOSShell.gyp:iOSShell' ],
         }],
         ['skia_os == "mac" or skia_os == "linux"', {
diff --git a/tools/iOSShell.cpp b/tools/iOSShell.cpp
index 99d5ebd..8656e64 100644
--- a/tools/iOSShell.cpp
+++ b/tools/iOSShell.cpp
@@ -13,8 +13,6 @@
 #include "SkCommonFlags.h"
 #include "SkGraphics.h"
 #include "SkWindow.h"
-#include "dm.h"
-#include "nanobench.h"
 #include "sk_tool_utils.h"
 
 //////////////////////////////////////////////////////////////////////////////
@@ -58,6 +56,9 @@
 DEFINE_bool(dm, false, "run dm");
 DEFINE_bool(nanobench, false, "run nanobench");
 
+int nanobench_main();
+int dm_main();
+
 IOS_launch_type set_cmd_line_args(int argc, char *argv[], const char* resourceDir) {
     SkCommandLineFlags::Parse(argc, argv);
     SetResourcePath(resourceDir);
