| 1 |
# Created by: Mike McGaughey <mmcg@cs.monash.edu.au> |
| 2 |
# $FreeBSD$ |
| 3 |
|
| 4 |
PORTNAME= gc |
| 5 |
PORTVERSION= 7.4.2 |
| 6 |
CATEGORIES= devel |
| 7 |
MASTER_SITES= http://www.hboehm.info/gc/gc_source/ |
| 8 |
PKGNAMEPREFIX= boehm- |
| 9 |
.ifdef GC_VARIANT |
| 10 |
PKGNAMESUFFIX= -${GC_VARIANT} |
| 11 |
.endif |
| 12 |
|
| 13 |
MAINTAINER= cjpugmed@gmail.com |
| 14 |
COMMENT= Garbage collection and memory leak detection for C and C++ |
| 15 |
|
| 16 |
LICENSE= BDWGC |
| 17 |
LICENSE_NAME= Boehm-Demers-Weiser Garbage Collector License |
| 18 |
LICENSE_TEXT= License can be found at http://www.hboehm.info/gc/license.txt |
| 19 |
LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept |
| 20 |
|
| 21 |
BUILD_DEPENDS= ${LOCALBASE}/lib/libatomic_ops.a:${PORTSDIR}/devel/libatomic_ops |
| 22 |
|
| 23 |
GNU_CONFIGURE= yes |
| 24 |
USES= libtool pathfix pkgconfig |
| 25 |
USE_AUTOTOOLS= aclocal autoconf libtoolize |
| 26 |
USE_LDCONFIG= yes |
| 27 |
INSTALL_TARGET= install-strip |
| 28 |
CONFIGURE_ARGS= --enable-cplusplus --disable-static |
| 29 |
MAKE_JOBS_UNSAFE= yes |
| 30 |
|
| 31 |
WRKSRC= ${WRKDIR}/${DISTNAME:C/[a-z]$//} |
| 32 |
|
| 33 |
OPTIONS_DEFINE= DEBUG |
| 34 |
|
| 35 |
.ifdef GC_VARIANT |
| 36 |
INSTLIBS= cord gc gccpp |
| 37 |
PLIST= ${NONEXISTENT} |
| 38 |
PLIST_FILES= ${INSTLIBS:S,^,lib/lib,g:S,$,-${GC_VARIANT}.so.${SOVER},g} \ |
| 39 |
${INSTLIBS:S,^,lib/lib,g:S,$,-${GC_VARIANT}.so,g} \ |
| 40 |
libdata/pkgconfig/bdw-gc-${GC_VARIANT}.pc |
| 41 |
RUN_DEPENDS+= ${LOCALBASE}/include/gc/gc.h:${PORTSDIR}/devel/boehm-gc |
| 42 |
SOVER= 1 |
| 43 |
. if ${GC_VARIANT} == "redirect" |
| 44 |
CONFIGURE_ARGS+=--disable-threads --enable-redirect-malloc |
| 45 |
. endif |
| 46 |
. if ${GC_VARIANT} == "threaded" |
| 47 |
CONFIGURE_ARGS+=--enable-threads=posix --disable-redirect-malloc |
| 48 |
OPTIONS_DEFINE+=PARALLEL_MARK |
| 49 |
PARALLEL_MARK_DESC= Parallel-thread marking (faster for SMP) |
| 50 |
. endif |
| 51 |
.else |
| 52 |
CONFIGURE_ARGS+=--disable-threads --disable-redirect-malloc |
| 53 |
OPTIONS_DEFINE+=DOCS |
| 54 |
PORTDOCS= * |
| 55 |
.endif |
| 56 |
|
| 57 |
.include <bsd.port.pre.mk> |
| 58 |
|
| 59 |
NOT_FOR_ARCHS= ia64 |
| 60 |
|
| 61 |
.if ${PORT_OPTIONS:MDEBUG} |
| 62 |
CONFIGURE_ARGS+=--enable-gc-debug |
| 63 |
PKGNAMESUFFIX:= ${PKGNAMESUFFIX}+fulldebug |
| 64 |
.endif |
| 65 |
|
| 66 |
.if defined(GC_VARIANT) && ${GC_VARIANT} == "threaded" |
| 67 |
. if ${PORT_OPTIONS:MPARALLEL_MARK} |
| 68 |
CONFIGURE_ARGS+=--enable-parallel-mark |
| 69 |
. endif |
| 70 |
.endif |
| 71 |
|
| 72 |
.ifdef GC_VARIANT |
| 73 |
post-patch: |
| 74 |
@${REINPLACE_CMD} -e \ |
| 75 |
's,libgc\.la,libgc-${GC_VARIANT}.la,g ; \ |
| 76 |
s,libgccpp\.la,libgccpp-${GC_VARIANT}.la,g ; \ |
| 77 |
s,libcord\.la,libcord-${GC_VARIANT}.la,g' ${WRKSRC}/Makefile.in |
| 78 |
@${REINPLACE_CMD} -e \ |
| 79 |
's,-lgc,-lgc-${GC_VARIANT},' ${WRKSRC}/bdw-gc.pc.in |
| 80 |
|
| 81 |
do-install: |
| 82 |
.for LIB in ${INSTLIBS} |
| 83 |
${INSTALL_DATA} ${WRKSRC}/.libs/lib${LIB}-${GC_VARIANT}.so.${SOVER} \ |
| 84 |
${STAGEDIR}${PREFIX}/lib/lib${LIB}-${GC_VARIANT}.so.${SOVER} |
| 85 |
${LN} -sf lib${LIB}-${GC_VARIANT}.so.${SOVER} \ |
| 86 |
${STAGEDIR}${PREFIX}/lib/lib${LIB}-${GC_VARIANT}.so |
| 87 |
.endfor |
| 88 |
${INSTALL_DATA} ${WRKSRC}/bdw-gc.pc \ |
| 89 |
${STAGEDIR}${PREFIX}/libdata/pkgconfig/bdw-gc-${GC_VARIANT}.pc |
| 90 |
.else # ! GC_VARIANT |
| 91 |
|
| 92 |
post-patch: |
| 93 |
@${REINPLACE_CMD} -e "s|%%PREFIX%%|${PREFIX}|g" ${WRKSRC}/doc/gc.man |
| 94 |
@${REINPLACE_CMD} \ |
| 95 |
-e "s|(datadir)/@PACKAGE@|(datadir)/doc/@PACKAGE@|" \ |
| 96 |
${WRKSRC}/Makefile.in |
| 97 |
|
| 98 |
post-install: |
| 99 |
${INSTALL_MAN} ${WRKSRC}/doc/gc.man ${STAGEDIR}${MAN3PREFIX}/man/man3/gc.3 |
| 100 |
@${MKDIR} ${STAGEDIR}${DOCSDIR} |
| 101 |
(cd ${WRKSRC}/doc && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}) |
| 102 |
|
| 103 |
.endif |
| 104 |
|
| 105 |
# Get rid of .la and static library files |
| 106 |
# |
| 107 |
post-configure: |
| 108 |
@${REINPLACE_CMD} -E -e \ |
| 109 |
'/Install the pseudo-library/,/staticlibs=/s,^,#,' ${WRKSRC}/libtool |
| 110 |
|
| 111 |
regression-test: build |
| 112 |
cd ${WRKSRC} && ${MAKE} check |
| 113 |
|
| 114 |
.include <bsd.port.post.mk> |