+# ------
+
+MESSAGE(STATUS "Check for pthreads ...")
+
+# ------
+
+IF(PTHREADS_IS_MANDATORY STREQUAL 0)
+ SET(PTHREADS_IS_MANDATORY 0)
+ SET(PTHREADS_IS_OPTIONAL 1)
+ENDIF(PTHREADS_IS_MANDATORY STREQUAL 0)
+IF(PTHREADS_IS_OPTIONAL STREQUAL 0)
+ SET(PTHREADS_IS_MANDATORY 1)
+ SET(PTHREADS_IS_OPTIONAL 0)
+ENDIF(PTHREADS_IS_OPTIONAL STREQUAL 0)
+IF(NOT PTHREADS_IS_MANDATORY AND NOT PTHREADS_IS_OPTIONAL)
+ SET(PTHREADS_IS_MANDATORY 1)
+ SET(PTHREADS_IS_OPTIONAL 0)
+ENDIF(NOT PTHREADS_IS_MANDATORY AND NOT PTHREADS_IS_OPTIONAL)
+
+# ------
+
+SET(PTHREADS_STATUS 1)
+IF(WITHOUT_PTHREADS OR WITH_PTHREADS STREQUAL 0)
+ SET(PTHREADS_STATUS 0)
+ MESSAGE(STATUS "pthreads disabled from command line.")
+ENDIF(WITHOUT_PTHREADS OR WITH_PTHREADS STREQUAL 0)
+
+# ------
+
+IF(PTHREADS_STATUS)
+ IF(WITH_PTHREADS)
+ SET(PTHREADS_ROOT_USER ${WITH_PTHREADS})
+ ELSE(WITH_PTHREADS)
+ SET(PTHREADS_ROOT_USER $ENV{PTHREADS_ROOT})
+ ENDIF(WITH_PTHREADS)
+ENDIF(PTHREADS_STATUS)
+
+# -----
+
+IF(PTHREADS_STATUS)
+ IF(PTHREADS_ROOT_USER)
+ SET(PTHREADS_FIND_PATHS_OPTION NO_DEFAULT_PATH)
+ ELSE(PTHREADS_ROOT_USER)
+ SET(PTHREADS_FIND_PATHS_OPTION)
+ ENDIF(PTHREADS_ROOT_USER)
+ENDIF(PTHREADS_STATUS)
+
+# -----
+
+IF(PTHREADS_STATUS)
+ IF(PTHREADS_ROOT_USER)
+ SET(PTHREADS_INCLUDE_PATHS ${PTHREADS_ROOT_USER}/include)
+ ELSE(PTHREADS_ROOT_USER)
+ SET(PTHREADS_INCLUDE_PATHS)
+ ENDIF(PTHREADS_ROOT_USER)
+ SET(PTHREADS_INCLUDE_TO_FIND pthread.h)
+ FIND_PATH(PTHREADS_INCLUDE_DIR ${PTHREADS_INCLUDE_TO_FIND} PATHS ${PTHREADS_INCLUDE_PATHS} ${PTHREADS_FIND_PATHS_OPTION})