Share search paths across various library searches.
Fix typos in glog search.
Split the error messages for include and lib.
Enable building of tests by default.
Made building on homebrew installations a bit better.
Remove temporary variables for glog and gflags.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c00d8b9..0002fbf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -38,29 +38,45 @@
 
 ENABLE_TESTING()
 
+OPTION(BUILD_TESTING
+       "Enable tests"
+       ON)
+
+# Default locations to search for on various platforms.
+SET(SEARCH_LIBS
+    ${SEARCH_LIBS}
+    /usr/lib
+    /usr/local/lib
+    /usr/local/homebrew/lib     # Mac OS X
+    /opt/local/lib
+    )
+
+SET(SEARCH_HEADERS
+    ${SEARCH_HEADERS}
+    /usr/include
+    /usr/local/include
+    /usr/local/homebrew/include  # Mac OS X
+    /opt/local/include/
+    )
+
+# To get a more static build, try the following line on Mac and Linux:
+# SET(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
+
 # SuiteSparse
 OPTION(SUITESPARSE
        "Enable SuiteSparse. Needed for efficient solutions of large problems."
        ON)
 
-# To get a more static build, try the following line on Mac and Linux:
-# SET(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
-
 IF (SUITESPARSE)
   SET(SUITESPARSE_SEARCH_LIBS
       ${SEARCH_LIBS}
-      /usr/lib
       /usr/lib/suitesparse             # Ubuntu
-      /usr/local/lib/
       /usr/local/lib/suitesparse
       /opt/local/lib/ufsparse          # Mac OS X
       )
-
   SET(SUITESPARSE_SEARCH_HEADERS
       ${SEARCH_HEADERS}
-      /usr/include
       /usr/include/suitesparse         # Ubuntu
-      /usr/local/include
       /usr/local/include/suitesparse,
       /opt/local/include/ufsparse      # Mac os X
       )
@@ -167,28 +183,20 @@
        ON)
 
 IF (GFLAGS)
-  SET(GFLAGS_SEARCH_LIBS
-     ${SEARCH_LIBS}
-     /usr/lib
-     /usr/local/lib
-     )
-     
- SET(GFLAGS_SEARCH_HEADERS
-     ${SEARCH_HEADERS}
-     /usr/include
-     /usr/local/include
-     )
-
   MESSAGE("-- Check for Google Flags")
-  FIND_LIBRARY(GFLAGS_LIB NAMES gflags PATHS ${GFLAGS_SEARCH_LIBS})
-  FIND_PATH(GFLAGS_INCLUDE NAMES gflags/gflags.h PATHS ${GFLAGS_SEARCH_HEADERS})
-
-  IF (NOT EXISTS ${GFLAGS_LIB} OR NOT EXISTS ${GFLAGS_INCLUDE})
+  FIND_LIBRARY(GFLAGS_LIB NAMES gflags PATHS ${SEARCH_LIBS})
+  IF (NOT EXISTS ${GFLAGS_LIB})
     MESSAGE(FATAL_ERROR
             "Can't find Google Flags. Please specify: "
-            "-DGFLAGS_INCLUDE=... and -DGFLAGS_LIB=...")
-  ENDIF (NOT EXISTS ${GFLAGS_LIB} OR NOT EXISTS ${GFLAGS_INCLUDE})
+            "-DGFLAGS_LIB=...")
+  ENDIF (NOT EXISTS ${GFLAGS_LIB})
   MESSAGE("-- Found Google Flags library: ${GFLAGS_LIB}")
+  FIND_PATH(GFLAGS_INCLUDE NAMES gflags/gflags.h PATHS ${SEARCH_HEADERS})
+  IF (NOT EXISTS ${GFLAGS_INCLUDE})
+    MESSAGE(FATAL_ERROR
+            "Can't find Google Flags. Please specify: "
+            "-DGFLAGS_INCLUDE=...")
+  ENDIF (NOT EXISTS ${GFLAGS_INCLUDE})
   MESSAGE("-- Found Google Flags header in: ${GFLAGS_INCLUDE}")
 ELSE (GFLAGS)
   MESSAGE("-- Google Flags disabled; no tests or tools will be built!")
@@ -196,38 +204,32 @@
 ENDIF (GFLAGS)
 
 # Google Logging
-SET(GFLOG_SEARCH_LIBS
-    ${SEARCH_LIBS}
-    /usr/lib
-    /usr/local/lib
-    )
-     
-SET(GLOG_SEARCH_HEADERS
-    ${SEARCH_HEADERS}
-    /usr/include
-    /usr/local/include
-    )
-
 MESSAGE("-- Check for Google Log")
-FIND_LIBRARY(GLOG_LIB NAMES glog PATHS GLOG_SEARCH_LIBS)
-FIND_PATH(GLOG_INCLUDE NAMES glog/logging.h GLOG_SEARCH_HEADERS)
-IF (NOT EXISTS ${GLOG_LIB} OR NOT EXISTS ${GLOG_INCLUDE})
+FIND_LIBRARY(GLOG_LIB NAMES glog PATHS ${SEARCH_LIBS})
+IF (NOT EXISTS ${GLOG_LIB})
   MESSAGE(FATAL_ERROR
           "Can't find Google Log. Please specify: "
-          "-DGLOG_INCLUDE=... and -DGLOG_LIB=...")
-ENDIF (NOT EXISTS ${GLOG_LIB} OR NOT EXISTS ${GLOG_INCLUDE})
+          "-DGLOG_LIB=...")
+ENDIF (NOT EXISTS ${GLOG_LIB})
 MESSAGE("-- Found Google Log library: ${GLOG_LIB}")
+
+FIND_PATH(GLOG_INCLUDE NAMES glog/logging.h PATHS ${SEARCH_HEADERS})
+IF (NOT EXISTS ${GLOG_INCLUDE})
+  MESSAGE(FATAL_ERROR
+          "Can't find Google Log. Please specify: "
+          "-DGLOG_INCLUDE=...")
+ENDIF (NOT EXISTS ${GLOG_INCLUDE})
 MESSAGE("-- Found Google Log header in: ${GLOG_INCLUDE}")
 
 # Eigen
 MESSAGE("-- Check for Eigen 3.0")
 SET(EIGEN_SEARCH_HEADERS
     ${SEARCH_HEADERS}
-    /usr/include
     /usr/include/eigen3  # Ubuntu 10.04's default location.
-    /usr/local/include
     /usr/local/include/eigen3
-    /opt/local/var/macports/software/eigen3/opt/local/include/eigen3/)
+    /usr/local/homebrew/include/eigen3  # Mac OS X
+    /opt/local/var/macports/software/eigen3/opt/local/include/eigen3/
+    )
 FIND_PATH(EIGEN_INCLUDE NAMES Eigen/Core PATHS ${EIGEN_SEARCH_HEADERS})
 IF (NOT EXISTS ${EIGEN_INCLUDE})
   MESSAGE(FATAL_ERROR "Can't find Eigen. Try passing -DEIGEN_INCLUDE=...")