version 1.5, 2004/03/31 20:18:46 |
version 1.17, 2004/11/17 21:05:24 |
|
|
# include the word "native" to denote that only native pthreads are |
# include the word "native" to denote that only native pthreads are |
# acceptable. |
# acceptable. |
# |
# |
|
# PTHREAD_AUTO_VARS is "yes" or "no" for whether the values of the variables |
|
# PTHREAD_{CFLAGS,CPPFLAGS,LDFLAGS,LIBS} should be automatically added |
|
# to their respective variables. Defaults to "yes". |
|
# |
# _PKG_PTHREAD is the fall-back package pthread implementation use by |
# _PKG_PTHREAD is the fall-back package pthread implementation use by |
# pthread.buildlink3.mk. |
# pthread.buildlink3.mk. |
# |
# |
Line 117 PTHREAD_OPTS?= # empty |
|
Line 121 PTHREAD_OPTS?= # empty |
|
# of /usr/include/pthread.h (we might want to make this check stricter). |
# of /usr/include/pthread.h (we might want to make this check stricter). |
# |
# |
.undef PTHREAD_TYPE |
.undef PTHREAD_TYPE |
PREFER_NATIVE_PTHREADS?= YES |
.if exists(/usr/include/pthread.h) && \ |
.if exists(/usr/include/pthread.h) && ${PREFER_NATIVE_PTHREADS} == "YES" |
!empty(PREFER_NATIVE_PTHREADS:M[yY][eE][sS]) |
PTHREAD_TYPE= native |
PTHREAD_TYPE= native |
.else |
.else |
. if !empty(PTHREAD_OPTS:Mnative) |
. if !empty(PTHREAD_OPTS:Mnative) |
Line 140 PKG_SKIP_REASON= "${PKGNAME} requires a |
|
Line 144 PKG_SKIP_REASON= "${PKGNAME} requires a |
|
. endif |
. endif |
.endif |
.endif |
|
|
.if ${PTHREAD_TYPE} == "native" |
PTHREAD_AUTO_VARS?= yes |
# |
|
# Link the native pthread libraries and headers into ${BUILDLINK_DIR}. |
|
# |
|
BUILDLINK_PREFIX.pthread= /usr |
|
BUILDLINK_CFLAGS.pthread= -pthread |
|
BUILDLINK_LDFLAGS.pthread= # empty |
|
# |
|
# 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 exists(/usr/lib/libpthread.so) || exists(/lib/libpthread.so) |
|
BUILDLINK_LDADD.pthread= -lpthread |
|
. elif exists(/usr/lib/libc_r.so) |
|
BUILDLINK_LDADD.pthread= -lc_r |
|
. else |
|
BUILDLINK_LDADD.pthread= # empty |
|
. endif |
|
|
|
|
.if ${PTHREAD_TYPE} == "native" |
|
BUILDLINK_PACKAGES:= ${BUILDLINK_PACKAGES:Npthread} |
|
BUILDLINK_PACKAGES+= pthread |
|
BUILDLINK_BUILTIN_MK.pthread= ../../mk/pthread.builtin.mk |
|
BUILDLINK_AUTO_VARS.pthread?= ${PTHREAD_AUTO_VARS} |
.elif ${PTHREAD_TYPE} == "${_PKG_PTHREAD}" |
.elif ${PTHREAD_TYPE} == "${_PKG_PTHREAD}" |
. if exists(${_PKG_PTHREAD_BUILDLINK3_MK}) |
. if exists(${_PKG_PTHREAD_BUILDLINK3_MK}) |
. if !empty(_PKG_PTHREAD_DEPENDS) |
. if !empty(_PKG_PTHREAD_DEPENDS) |
BUILDLINK_DEPENDS.${_PKG_PTHREAD}+= ${_PKG_PTHREAD_DEPENDS} |
BUILDLINK_DEPENDS.${_PKG_PTHREAD}+= ${_PKG_PTHREAD_DEPENDS} |
. endif |
. endif |
BUILDLINK_PREFIX.pthread= ${BUILDLINK_PREFIX.${_PKG_PTHREAD}} |
|
BUILDLINK_CFLAGS.pthread= ${BUILDLINK_CFLAGS.${_PKG_PTHREAD}} |
|
BUILDLINK_LDFLAGS.pthread= ${BUILDLINK_LDFLAGS.${_PKG_PTHREAD}} |
|
BUILDLINK_LDADD.pthread= -lpthread |
|
. include "${_PKG_PTHREAD_BUILDLINK3_MK}" |
. include "${_PKG_PTHREAD_BUILDLINK3_MK}" |
|
BUILDLINK_PREFIX.pthread= ${BUILDLINK_PREFIX.${_PKG_PTHREAD}} |
|
BUILDLINK_CFLAGS.pthread= ${BUILDLINK_CFLAGS.${_PKG_PTHREAD}} |
|
BUILDLINK_CPPFLAGS.${_PKG_PTHREAD}?= -D_REENTRANT |
|
BUILDLINK_CPPFLAGS.pthread= ${BUILDLINK_CPPFLAGS.${_PKG_PTHREAD}} |
|
BUILDLINK_LDFLAGS.pthread= ${BUILDLINK_LDFLAGS.${_PKG_PTHREAD}} |
|
BUILDLINK_LIBS.${_PKG_PTHREAD}?= -lpthread |
|
BUILDLINK_LIBS.pthread= ${BUILDLINK_LIBS.${_PKG_PTHREAD}} |
|
BUILDLINK_AUTO_VARS.${_PKG_PTHREAD}?= ${PTHREAD_AUTO_VARS} |
|
BUILDLINK_AUTO_VARS.pthread= ${BUILDLINK_AUTO_VARS.${_PKG_PTHREAD}} |
. else |
. else |
PKG_SKIP_REASON= "${PKGNAME} needs pthreads, but ${_PKG_PTHREAD_BUILDLINK3_MK} is missing." |
PKG_SKIP_REASON= "${PKGNAME} needs pthreads, but ${_PKG_PTHREAD_BUILDLINK3_MK} is missing." |
. endif |
. endif |
Line 176 PKG_SKIP_REASON= "${PKGNAME} needs pthre |
|
Line 173 PKG_SKIP_REASON= "${PKGNAME} needs pthre |
|
|
|
.if !empty(PTHREAD_BUILDLINK3_MK:M+) |
.if !empty(PTHREAD_BUILDLINK3_MK:M+) |
# |
# |
# Define user-visible PTHREAD_CFLAGS and PTHREAD_LDFLAGS as compiler |
# Define user-visible PTHREAD_{CFLAGS,LDFLAGS,LIBS} as compiler options |
# options used to compile/link pthreaded code. |
# used to compile/link pthreaded code. |
# |
# |
PTHREAD_CFLAGS= ${BUILDLINK_CFLAGS.pthread} |
PTHREAD_CFLAGS= ${BUILDLINK_CFLAGS.pthread} |
PTHREAD_LDFLAGS= ${BUILDLINK_LDFLAGS.pthread} ${BUILDLINK_LDADD.pthread} |
PTHREAD_CFLAGS+= ${BUILDLINK_CPPFLAGS.pthread} |
|
PTHREAD_LDFLAGS= ${BUILDLINK_LDFLAGS.pthread} |
|
PTHREAD_LIBS= ${BUILDLINK_LIBS.pthread} |
|
CONFIGURE_ENV+= PTHREAD_CFLAGS="${PTHREAD_CFLAGS}" |
|
CONFIGURE_ENV+= PTHREAD_LDFLAGS="${PTHREAD_LDFLAGS}" |
|
CONFIGURE_ENV+= PTHREAD_LIBS="${PTHREAD_LIBS}" |
|
MAKE_ENV+= PTHREAD_CFLAGS="${PTHREAD_CFLAGS}" |
|
MAKE_ENV+= PTHREAD_LDFLAGS="${PTHREAD_LDFLAGS}" |
|
MAKE_ENV+= PTHREAD_LIBS="${PTHREAD_LIBS}" |
|
|
PTHREADBASE= ${BUILDLINK_PREFIX.pthread} |
PTHREADBASE= ${BUILDLINK_PREFIX.pthread} |
CONFIGURE_ENV+= PTHREADBASE=${PTHREADBASE} |
CONFIGURE_ENV+= PTHREADBASE=${PTHREADBASE} |
MAKE_ENV+= PTHREADBASE=${PTHREADBASE} |
MAKE_ENV+= PTHREADBASE=${PTHREADBASE} |
|
|
.endif # PTHREAD_BUILDLINK3_MK |
.endif # PTHREAD_BUILDLINK3_MK |