# Created by: Koop Mast <kwm@FreeBSD.org>
# $FreeBSD: head/devel/libc++/Makefile 383525 2015-04-07 17:52:36Z bdrewery $
# $MidnightBSD: trunk/devel/libc++/Makefile 21870 2016-08-23 12:08:40Z laffer1 $

PORTNAME?=	libc++
DISTNAME=	libc++-${PORTVERSION}
PORTVERSION=	${SVN_REV}
CATEGORIES=	devel
MASTER_SITES=	http://files.etoilebsd.net/libc++/ \
		FREEBSD_LOCAL/bapt

MAINTAINER=	ports@MidnightBSD.org
COMMENT?=	LLVM C++ standard library with c++11 support

LICENSE=  mit UIUC
LICENSE_COMB=	dual
LICENSE_NAME_UIUC=      University of Illinois/NCSA Open Source License
LICENSE_PERMS_UIUC=     dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
LICENSE_FILE_UIUC=	${WRKSRC}/LICENSE.TXT

SKIP_FAKE_CHECK=.*\.so

USES=		tar:xz

.ifndef MASTERDIR

LIB_DEPENDS=	libcxxrt.so:${PORTSDIR}/devel/libcxxrt
BUILD_DEPENDS+=	 ${LOCALBASE}/lib/libcxxrt.so:${PORTSDIR}/devel/libcxxrt

USES+=		cmake:outsource compiler:c++11-lang
USE_LDCONFIG=	yes
LDFLAGS+=	-L${LOCALBASE}/lib

.include <bsd.mport.options.mk>

.if exists(/usr/lib/libcxxrt.so)
CXXRT_INCS=	/usr/include/c++/v1/
CXXRT_LIB=	/usr/lib/libcxxrt.so
.else
CXXRT_INCS=	${LOCALBASE}/include/cxxrt/
CXXRT_LIB=	${LOCALBASE}/lib/libcxxrt.so
.endif

CMAKE_ARGS=	-DLIBCXX_CXX_ABI=libcxxrt -DLIBCXX_LIBCXXRT_INCLUDE_PATHS=${CXXRT_INCS}

.if !defined(SVN_REV)
.if defined(BOOTSTRAP)
SVN_REV!=       LC_ALL=C svn info http://llvm.org/svn/llvm-project/ | ${GREP} Revision | cut -d' ' -f2
.else
.include "Makefile.svn_rev"
.endif
.endif

.if defined(BOOTSTRAP) || defined(SVN_FETCH)
FETCH_DEPENDS+= svn:${PORTSDIR}/devel/subversion

post-patch:
	# remove .orig files because they can get installed in stagedir
	@${FIND} ${WRKSRC} -name "*.orig" -type f -delete

do-fetch:
	${MKDIR} ${WRKDIR}
	svn export -r ${SVN_REV} \
		http://llvm.org/svn/llvm-project/libcxx/trunk \
		${WRKSRC}
	cd ${WRKDIR}; tar cfJ ${DISTDIR}/${DISTNAME}.tar.xz ${DISTNAME}
	echo "SVN_REV=  ${SVN_REV}" > ${MASTERDIR}/Makefile.svn_rev
.endif

post-install:
	${LN} -sf c++/v1 ${STAGEDIR}${PREFIX}/include/c++/v1/tr1
	${RM} ${STAGEDIR}${PREFIX}/lib/libc++.so
	@${MKDIR} ${STAGEDIR}${PREFIX}/lib/c++/
	${ECHO} 'GROUP ( ${PREFIX}/lib/libc++.so.1 ${CXXRT_LIB} ${EXTRALIB})' > ${STAGEDIR}${PREFIX}/lib/libc++.so
	${ECHO} 'GROUP ( ${PREFIX}/lib/libc++.so.1 ${CXXRT_LIB} ${EXTRALIB})' > ${STAGEDIR}${PREFIX}/lib/c++/libstdc++.so

regression-test: build
	cd ${WRKSRC}/test && ${SH} ./testit

.endif
.include <bsd.port.mk>
