summaryrefslogtreecommitdiff
path: root/biology/avida/Makefile
blob: 9a549c532fc78c6721ed7e3fc294d813c22cd9b2 (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
# Created by: Jeremy <karlj000@unbc.ca>
# $FreeBSD$

PORTNAME=	avida
PORTVERSION=	2.12.4
DISTVERSIONSUFFIX=	-src
CATEGORIES=	biology
MASTER_SITES=	SF/${PORTNAME}/${PORTNAME}-stable/${PORTVERSION}

MAINTAINER=	ports@FreeBSD.org
COMMENT=	Auto-adaptive genetic system designed for ALife research

LICENSE=	GPLv3

BROKEN_aarch64=		invokes x86 assembler
BROKEN_armv6=		invokes x86 assembler
BROKEN_armv7=		invokes x86 assembler
BROKEN_mips=		invokes x86 assembler
BROKEN_mips64=		invokes x86 assembler
BROKEN_sparc64=		missing atomics implementation
BROKEN_powerpc64=	fails to compile: sibling call optimization does not allow automatic multiple TOCs

USES=		cmake ncurses
USE_CXXSTD=	gnu++98
CMAKE_ARGS=	-DAPTO_UNIT_TESTS:BOOL=OFF \
		-DAVD_UNIT_TESTS:BOOL=OFF \
		-DNCURSES_INCLUDE_PATH:STRING="${NCURSESINC}"

PORTDOCS=	*
PLIST_FILES=	${BIN_FILES:S|^|bin/|} \
		${BIN_FILES:S|^|lib/${PORTNAME}/|} \
		${DATA_FILES:S|^|lib/${PORTNAME}/|}

BIN_FILES=	avida avida-viewer
DATA_FILES=	analyze.cfg avida.cfg default-gx.org \
		default-heads-sex.org default-heads.org default-smt.org \
		default-transsmt.org environment.cfg events.cfg \
		experimental.org instset-experimental.cfg instset-gx.cfg \
		instset-heads-sex.cfg instset-heads.cfg instset-smt.cfg \
		instset-transsmt.cfg

OPTIONS_DEFINE=	DOCS

post-patch:
	@${FIND} ${WRKSRC} -name "CMakeLists.txt" | ${XARGS} \
		${REINPLACE_CMD} -e \
		's|-O[0-9]|| ; \
		 s| pthread| -pthread|'
	@${REINPLACE_CMD} -e '/long long int/s|std::abs|llabs|' \
		${WRKSRC}/avida-core/source/main/cPopulationInterface.cc
	@${REINPLACE_CMD} -e '/__PPC__/s|linux|${OPSYS}|' \
		${WRKSRC}/libs/tcmalloc-1.4/src/atomicops.h

pre-build:
.for exec in ${BIN_FILES}
	@(cd ${WRKSRC} && ${ECHO_CMD} \
		'cd ${PREFIX}/lib/${PORTNAME} && ./${exec} $$@' > ${exec}.sh)
.endfor

do-install:
	@${MKDIR} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}
.for exec in ${BIN_FILES}
	${INSTALL_SCRIPT} ${WRKSRC}/${exec}.sh \
		${STAGEDIR}${PREFIX}/bin/${exec}
	${INSTALL_PROGRAM} ${BUILD_WRKSRC}/bin/${exec} \
		${STAGEDIR}${PREFIX}/lib/${PORTNAME}
.endfor
	${INSTALL_DATA} \
		${WRKSRC}/avida-core/support/config/*.cfg \
		${WRKSRC}/avida-core/support/config/*.org \
			${STAGEDIR}${PREFIX}/lib/${PORTNAME}

do-install-DOCS-on:
	@${MKDIR} ${STAGEDIR}${DOCSDIR}
	@(cd ${WRKSRC}/avida-core/documentation && ${COPYTREE_SHARE} . \
		${STAGEDIR}${DOCSDIR})

.include <bsd.port.mk>