Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/pkgsrc/mk/pthread.buildlink3.mk,v rcsdiff: /ftp/cvs/cvsroot/pkgsrc/mk/pthread.buildlink3.mk,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.1 retrieving revision 1.17.2.3 diff -u -p -r1.1 -r1.17.2.3 --- pkgsrc/mk/pthread.buildlink3.mk 2004/01/03 23:06:44 1.1 +++ pkgsrc/mk/pthread.buildlink3.mk 2005/05/17 18:29:44 1.17.2.3 @@ -1,4 +1,4 @@ -# $NetBSD: pthread.buildlink3.mk,v 1.1 2004/01/03 23:06:44 jlam Exp $ +# $NetBSD: pthread.buildlink3.mk,v 1.17.2.3 2005/05/17 18:29:44 tv Exp $ # # The pthreads strategy for pkgsrc is to "bless" a particular pthread # package as the Official Pthread Replacement (OPR). A package that uses @@ -94,6 +94,10 @@ # include the word "native" to denote that only native pthreads are # 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 "no". +# # _PKG_PTHREAD is the fall-back package pthread implementation use by # pthread.buildlink3.mk. # @@ -101,6 +105,8 @@ # Makefile for ${_PKG_PTHREAD}. It's used to see if ${_PKG_PTHREADS} # can actually be used to replace a native pthreads. # +PTHREAD_BUILDLINK3_MK:= ${PTHREAD_BUILDLINK3_MK}+ + _PKG_PTHREAD?= pth _PKG_PTHREAD_DEPENDS?= pth>=2.0.0 _PKG_PTHREAD_PKGSRCDIR?= ../../devel/${_PKG_PTHREAD} @@ -115,8 +121,8 @@ PTHREAD_OPTS?= # empty # of /usr/include/pthread.h (we might want to make this check stricter). # .undef PTHREAD_TYPE -PREFER_NATIVE_PTHREADS?= YES -.if exists(/usr/include/pthread.h) && ${PREFER_NATIVE_PTHREADS} == "YES" +.if exists(/usr/include/pthread.h) && \ + !empty(PREFER_NATIVE_PTHREADS:M[yY][eE][sS]) PTHREAD_TYPE= native .else . if !empty(PTHREAD_OPTS:Mnative) @@ -138,51 +144,51 @@ PKG_SKIP_REASON= "${PKGNAME} requires a . endif .endif -.if !defined(PTHREAD_BUILDLINK3_MK) -PTHREAD_BUILDLINK3_MK= # defined +PTHREAD_AUTO_VARS?= no .if ${PTHREAD_TYPE} == "native" -# -# 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 - +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}" . if exists(${_PKG_PTHREAD_BUILDLINK3_MK}) . if !empty(_PKG_PTHREAD_DEPENDS) -BUILDLINK_DEPENDS.${_PKG_PTHREAD}= ${_PKG_PTHREAD_DEPENDS} +BUILDLINK_DEPENDS.${_PKG_PTHREAD}+= ${_PKG_PTHREAD_DEPENDS} . 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}" +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 -PKG_SKIP_REASON= "${PKGNAME} needs pthreads, but ${_PKG_PTHREAD_BUILDLINK3_MK} is missing." +PKG_SKIP_REASON= ${PKGNAME:Q}" needs pthreads, but "${_PKG_PTHREAD_BUILDLINK3_MK:Q}" is missing." . endif .endif -# Define user-visible PTHREAD_CFLAGS and PTHREAD_LDFLAGS as compiler -# options used to compile/link pthreaded code. +.if !empty(PTHREAD_BUILDLINK3_MK:M+) +# +# Define user-visible PTHREAD_{CFLAGS,LDFLAGS,LIBS} as compiler options +# used to compile/link pthreaded code. # 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:Q} +CONFIGURE_ENV+= PTHREAD_LDFLAGS=${PTHREAD_LDFLAGS:Q} +CONFIGURE_ENV+= PTHREAD_LIBS=${PTHREAD_LIBS:Q} +MAKE_ENV+= PTHREAD_CFLAGS=${PTHREAD_CFLAGS:Q} +MAKE_ENV+= PTHREAD_LDFLAGS=${PTHREAD_LDFLAGS:Q} +MAKE_ENV+= PTHREAD_LIBS=${PTHREAD_LIBS:Q} PTHREADBASE= ${BUILDLINK_PREFIX.pthread} -CONFIGURE_ENV+= PTHREADBASE=${PTHREADBASE} -MAKE_ENV+= PTHREADBASE=${PTHREADBASE} +CONFIGURE_ENV+= PTHREADBASE=${PTHREADBASE:Q} +MAKE_ENV+= PTHREADBASE=${PTHREADBASE:Q} .endif # PTHREAD_BUILDLINK3_MK