# to deploy the wrappers DLLs
     find_package (ZLIB)
     find_package (PNG)
+endif (NOT WIN32)
+
+if (NOT WIN32)
     find_package (X11 REQUIRED)
 
-else (NOT WIN32)
-    find_package (DirectX)
+    # On Mac OS X, GLX is provided as a separate OpenGL implementation, different
+    # from the standard OpenGL framework which provides support for native Mac OS X
+    # applications.
+    if (APPLE)
+        find_path (X11_GL_INCLUDE_PATH GL/glx.h ${X11_INC_SEARCH_PATH})
+        if (NOT X11_GL_INCLUDE_PATH)
+            message (SEND_ERROR "Could not find GL/glx.h")
+        endif (NOT X11_GL_INCLUDE_PATH)
+        set (X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_GL_INCLUDE_PATH})
+
+        find_library (X11_GL_LIB GL ${X11_LIB_SEARCH_PATH})
+        if (NOT X11_GL_LIB)
+            message (SEND_ERROR "Could not find libGL.dylib")
+        endif (NOT X11_GL_LIB)
+    else ()
+        set (X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR})
+        set (X11_GL_LIB ${OPENGL_gl_LIBRARY})
+    endif ()
+
+    include_directories (${X11_INCLUDE_DIR})
 endif (NOT WIN32)
 
+if (WIN32)
+    find_package (DirectX)
+endif (WIN32)
+
 
 ##############################################################################
 # Set global build options
     install (TARGETS wgltrace LIBRARY DESTINATION wrappers)
 
 elseif (APPLE)
-    include_directories (${X11_INCLUDE_DIR})
-
     # OpenGL framework
     add_custom_command (
         OUTPUT cgltrace.cpp
     add_library (cgltrace SHARED cgltrace.cpp trace_writer.cpp os_posix.cpp ${CMAKE_CURRENT_BINARY_DIR}/glproc.hpp)
 
     set_target_properties (cgltrace PROPERTIES
-        # For
+        # OpenGL framework name
         PREFIX "" OUTPUT_NAME "OpenGL" SUFFIX ""
         # Specificy the version and reexport GLU symbols
         LINK_FLAGS "-compatibility_version 1 -current_version 1.0.0 -Wl,-reexport_library,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib"
 
     install (TARGETS cgltrace LIBRARY DESTINATION wrappers)
 else ()
-    include_directories (${X11_INCLUDE_DIR})
-
     # libGL.so
     add_custom_command (
         OUTPUT glxtrace.cpp
 
 target_link_libraries (glretrace
     trace
-    ${OPENGL_gl_LIBRARY}
 )
 
-if (NOT WIN32)
-    target_link_libraries (glretrace ${X11_X11_LIB})
-
-    # We use GLX on MacOSX, which is in a separate library
-    if (APPLE)
-        find_library (X11_GL_LIB GL ${X11_LIB_SEARCH_PATH})
-        find_library (APPLICATIONSERVICES ApplicationServices)
-        target_link_libraries (glretrace ${X11_GL_LIB} ${APPLICATIONSERVICES})
-    endif (APPLE)
-endif (NOT WIN32)
+if (WIN32)
+    target_link_libraries (glretrace ${OPENGL_gl_LIBRARY})
+elseif (APPLE)
+    # XXX: We use GLX on MacOSX, which is in a separate library.
+    target_link_libraries (glretrace
+        ${X11_GL_LIB}
+        ${X11_X11_LIB}
+        "-framework ApplicationServices" # CGS*
+        ${OPENGL_gl_LIBRARY} # CGL*
+    )
+else ()
+    target_link_libraries (glretrace ${OPENGL_gl_LIBRARY} ${X11_X11_LIB})
+endif ()
 
 install (TARGETS glretrace RUNTIME DESTINATION bin)