CMake bug fixes.

1. Make the default build Release.
2. Add march/mtune flags on unix.

Change-Id: I562cc4216db9d4d147ac4d566152254335346efb
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 20ac076..9fe4aba 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -409,16 +409,33 @@
   INCLUDE_DIRECTORIES(${GFLAGS_INCLUDE})
 ENDIF (${GFLAGS})
 
-# Change the default build type from Debug to Release, while still
-# supporting overriding the build type.
-IF (NOT ${CMAKE_BUILD_TYPE})
-  SET(CMAKE_BUILD_TYPE Release)
-ENDIF (NOT ${CMAKE_BUILD_TYPE})
-
 ADD_SUBDIRECTORY(internal/ceres)
 ADD_SUBDIRECTORY(examples)
 
-# TODO(sameeragarwal): The following flags break the old gcc that
-# ships on Mac OS X. Make this conditional on operating system and
-# compiler.
-#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mtune=native -march=native")
+# The following flags break the old gcc that ships on Mac OS X, so we
+# only do it for linux right now.
+IF (${UNIX})
+  SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mtune=native -march=native")
+ENDIF (${UNIX})
+
+# Change the default build type from Debug to Release, while still
+# supporting overriding the build type.
+
+IF (DEFINED CMAKE_BUILD_TYPE)
+  IF (CMAKE_BUILD_TYPE STREQUAL "Debug")
+    MESSAGE("\n=================================================================================")
+    MESSAGE("\n-- Build type: Debug. Performance will be terrible!")
+    MESSAGE("-- Add -DCMAKE_BUILD_TYPE=Release to the CMake command line to get an optimized build.")
+    MESSAGE("\n=================================================================================")
+  ELSE (CMAKE_BUILD_TYPE STREQUAL "Debug")
+    IF (CMAKE_BUILD_TYPE STREQUAL "")
+      MESSAGE("-- No build type specified; defaulting to CMAKE_BUILD_TYPE=Release.")
+      SET(CMAKE_BUILD_TYPE Release)
+    ELSE (CMAKE_BUILD_TYPE STREQUAL "")
+      MESSAGE ("-- Build type: ${CMAKE_BUILD_TYPE}.")
+    ENDIF (CMAKE_BUILD_TYPE STREQUAL "")
+  ENDIF (CMAKE_BUILD_TYPE STREQUAL "Debug")
+ELSE (DEFINED CMAKE_BUILD_TYPE)
+  MESSAGE("-- No build type specified; defaulting to CMAKE_BUILD_TYPE=Release.")
+  SET(CMAKE_BUILD_TYPE Release)
+ENDIF (DEFINED CMAKE_BUILD_TYPE)