Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

file 87 lines (77 sloc) 2.569 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
# $NetBSD: pthread.builtin.mk,v 1.10 2007/04/12 18:42:02 tnn Exp $

BUILTIN_PKG:= pthread

BUILTIN_FIND_LIBS:= pthread c_r rt
BUILTIN_FIND_FILES_VAR= H_PTHREAD
BUILTIN_FIND_FILES.H_PTHREAD= /usr/include/pthread.h

.include "../../mk/buildlink3/bsd.builtin.mk"

###
### Determine if there is a built-in implementation of the package and
### set IS_BUILTIN.<pkg> appropriately ("yes" or "no").
###
.if !defined(IS_BUILTIN.pthread)
IS_BUILTIN.pthread= no
. if empty(H_PTHREAD:M${LOCALBASE}/*) && exists(${H_PTHREAD})
IS_BUILTIN.pthread= yes
. endif
.endif
MAKEVARS+= IS_BUILTIN.pthread

###
### Determine whether we should use the built-in implementation if it
### exists, and set USE_BUILTIN.<pkg> appropriate ("yes" or "no").
###
#
# We ignore the value of PREFER_PKGSRC and PREFER_NATIVE. Whether we
# prefer one or the other is dependent on the value of
# PREFER_NATIVE_PTHREADS, which is yes/no.
#
.if !defined(USE_BUILTIN.pthread)
USE_BUILTIN.pthread= ${IS_BUILTIN.pthread}
. if !empty(PREFER_NATIVE_PTHREADS:M[nN][oO])
USE_BUILTIN.pthread= no
. endif
.endif
MAKEVARS+= USE_BUILTIN.pthread

###
### The section below only applies if we are not including this file
### solely to determine whether a built-in implementation exists.
###
CHECK_BUILTIN.pthread?= no
.if !empty(CHECK_BUILTIN.pthread:M[nN][oO])

. if !empty(USE_BUILTIN.pthread:M[yY][eE][sS])
BUILDLINK_PREFIX.pthread= /usr
BUILDLINK_CFLAGS.pthread= # empty
BUILDLINK_LDFLAGS.pthread= # empty

# only pass -pthread on platforms known to support it.
# XXX
# XXX This should really be a check for GCC!
# XXX
BUILDLINK_OPSYS_SUPPORT_PTHREAD= DragonFly FreeBSD Linux NetBSD
. if !empty(BUILDLINK_OPSYS_SUPPORT_PTHREAD:M${OPSYS})
BUILDLINK_CFLAGS.pthread+= -pthread
BUILDLINK_LDFLAGS.pthread+= -pthread
. elif ${OPSYS} == "OSF1"
BUILDLINK_CFLAGS.pthread+= -pthread
CFLAGS+= -D_REENTRANT
. else
BUILDLINK_CPPFLAGS.pthread+= -D_REENTRANT
. endif
. if ${OPSYS} == "FreeBSD"
BUILDLINK_CPPFLAGS.pthread+= -D_THREAD_SAFE
. endif

# Handle systems which have pthreads functions in libc_r such as
# FreeBSD 5.x, or fall back to libc if we don't find libc_r.
#
. if ${OPSYS} == "NetBSD"
BUILDLINK_LIBS.pthread= # empty
. elif !empty(BUILTIN_LIB_FOUND.pthread:M[yY][eE][sS])
BUILDLINK_LIBS.pthread= -lpthread
. if !empty(BUILTIN_LIB_FOUND.rt:M[yY][eE][sS])
BUILDLINK_LIBS.pthread+= -lrt
. endif
. elif !empty(BUILTIN_LIB_FOUND.c_r:M[yY][eE][sS])
BUILDLINK_LIBS.pthread= -lc_r
. else
BUILDLINK_LIBS.pthread= # empty
. endif
. endif

.endif # CHECK_BUILTIN.pthread
Something went wrong with that request. Please try again.