summaryrefslogtreecommitdiff
path: root/devel/linuxthreads/Makefile
blob: 2f7afeaf5b0d04ee8796c2137bc3255670179006 (plain) (blame)
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
88
89
90
91
# New ports collection makefile for: linuxthreads
# Date created:		14 Jan 1999
# Whom:			Richard Seaman, Jr. <dick@tar.com>
#
# $FreeBSD$
#

PORTNAME=	linuxthreads
PORTVERSION=	2.2.3
PORTREVISION=	4
CATEGORIES=	devel
MASTER_SITES=	${MASTER_SITE_GNU}
MASTER_SITE_SUBDIR=	glibc
DISTNAME=	glibc-linuxthreads-${PORTVERSION}

MAINTAINER=	tegge@freebsd.org

.include <bsd.port.pre.mk>

# This port only works on i386 right now.
ONLY_FOR_ARCHS=	i386

.if ${OSVERSION} < 400015
BROKEN="Requires FreeBSD 4.0 or newer"
.endif

threads_files := README.FreeBSD clone.S clone.h freebsd-compat.h getgr_r.c \
	gethostby_r.c getnetby_r.c getprotoby_r.c getpw_r.c getservby_r.c \
	lclone.c libc_calls.c libc_thread.c sched.c uthread_file.c \
	wraputhread.c localtime.c

WRKSRC=		${WRKDIR}/${PKGNAME}
SRC_BASE=	/usr/src
LIBSRC_BASE=	${SRC_BASE}/lib

pre-fetch:
.if !defined(WITH_CONDWAIT_PATCH)
	@${ECHO}
	@${ECHO} You can use an experimental patch to reduce the number of
	@${ECHO} condition variable triggered context switches by defining
	@${ECHO} WITH_CONDWAIT_PATCH
	@${ECHO}
.endif
	@if test -f /usr/src/gnu/lib/libgcc/Makefile; then \
          : ; \
        else \
          ${ECHO_MSG} ">>The linuxthreads port needs source code for libgcc"; \
          ${ECHO_MSG} ">>Please install FreeBSD source code in /usr/src"; \
	  false; \
	fi

post-extract:
	@mv ${WRKDIR}/linuxthreads ${WRKSRC}
	@mv ${WRKDIR}/linuxthreads_db ${WRKSRC}
.for src in lockfile.c no-tsd.c oldsemaphore.c weaks.c \
	sysdeps/pthread/semaphore.h
	@mv ${WRKSRC}/$(src) ${WRKSRC}/$(src).unused
.endfor
	@cd ${FILESDIR} ; \
		${CP} -p ${threads_files} ${WRKSRC}/.
	@${MKDIR} -p ${WRKSRC}/libgcc_r
	@test -f ${WRKSRC}/libgcc_r/Makefile || \
	${LN} -s ${FILESDIR}/Makefile.libgcc_r ${WRKSRC}/libgcc_r/Makefile

.if defined(WITH_CONDWAIT_PATCH)
post-patch:
	@${ECHO_MSG} "===>  Applying experimental patch condwait-patch"
	@if ${PATCH} ${PATCH_ARGS} < ${PATCHDIR}/condwait-patch; then \
	  ${ECHO_MSG} "===>  Patch condwait-patch applied successfully"; \
	else \
	  ${ECHO_MSG} ">>Patch condwait-patch failed to apply cleanly"; \
	  false ; \
	fi
.endif

pre-build:
	@cd ${WRKSRC}/libgcc_r ; \
		${MAKE}

pre-install:
	@cd ${WRKSRC}/libgcc_r ; \
		${MAKE} install

post-install:
	${SETENV} OBJFORMAT=${PORTOBJFORMAT} ${LDCONFIG} -m ${PREFIX}/lib
	${SETENV} OBJFORMAT=${PORTOBJFORMAT} ${LDCONFIG} -m /usr/lib
	${CAT} ${PKGMESSAGE}

#	@sh ${PKGINSTALL} ${PKGNAME} POST-INSTALL

.include <bsd.port.post.mk>