summaryrefslogtreecommitdiff
path: root/devel/compiler-rt/Makefile
blob: f144ccb95b9d1435e6d4e26434c6f7ac25427dc7 (plain)
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
# Created by: Brooks Davis
# $FreeBSD$

PORTNAME=	compiler-rt
DISTVERSION=	0.r${SVN_REV}
CATEGORIES=	devel
MASTER_SITES=	LOCAL/brooks

MAINTAINER=	brooks@FreeBSD.org
COMMENT=	Compiler runtime library with Blocks support

LICENSE=	BSD3CLAUSE MIT
LICENSE_COMB=	dual
LICENSE_FILE=	${WRKSRC}/LICENSE.TXT

BUILD_DEPENDS=	cmake:devel/cmake

BROKEN_powerpc64=	does not build: undefined reference to fmax

CONFIGURE_WRKSRC=	${WRKDIR}/build
BUILD_WRKSRC=		${WRKDIR}/build
INSTALL_WRKSRC=		${WRKDIR}/build
TEST_WRKSRC=		${WRKDIR}/build
TEST_TARGET=		test

CMAKE_SOURCE_PATH=	${WRKSRC}

USES=		cmake tar:bzip2
USE_LDCONFIG=	yes

LLVM_SVN=	http://llvm.org/svn/llvm-project

# fixuns?fti_test tests fail
# powi?f2_test tests fail to link due to lack of -lm
BROKEN_TESTS?=	fixunsdfti_test \
		fixunssfti_test \
		powidf2_test \
		powisf2_test \
		powixf2_test

PLIST_FILES=	include/Block.h \
		include/Block_private.h \
		lib/libBlocksRuntime.so

.include <bsd.port.pre.mk>

.if ${ARCH} == "i386"
CFLAGS+=	-march=i486
.elif ${ARCH} == "powerpc"
BROKEN=		Does not compile on powerpc
.endif

.if defined(BOOTSTRAP)
SVN_REV!=	svn info ${LLVM_SVN}/ | ${GREP} Revision | cut -d' ' -f2
.else
.include "Makefile.svn_rev"
.endif

.if defined(BOOTSTRAP)
FETCH_DEPENDS+=	svn:devel/subversion

do-fetch:
	${MKDIR} ${WRKDIR}
	svn export -r ${SVN_REV} \
	    ${LLVM_SVN}/compiler-rt/trunk ${WRKSRC}
	cd ${WRKDIR}; tar cvfy ${DISTDIR}/${DISTNAME}.tar.bz2 ${DISTNAME}
	echo "SVN_REV=	${SVN_REV}" > ${MASTERDIR}/Makefile.svn_rev
.if ${USER} == brooks
	scp ${DISTDIR}/${DISTNAME}.tar.bz2 \
	    freefall.freebsd.org:public_distfiles/
.endif
.endif

post-extract:
	${MKDIR} ${CONFIGURE_WRKSRC}

post-patch:
.for test in ${BROKEN_TESTS}
	${REINPLACE_CMD} -e 's/\(MACRO_ADD_CHECK_TEST( ${test}\)/# \1/' \
	    ${WRKSRC}/test/CMakeLists.txt
.endfor

.include <bsd.port.post.mk>