aboutsummaryrefslogtreecommitdiff
path: root/lang/nim/Makefile
blob: 44ec0f999b8247f90a2c88ce800386748014188d (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
# Created by: Neal Nelson <ports@nicandneal.net>
# $FreeBSD$

PORTNAME=	nim
PORTVERSION=	1.0.4
CATEGORIES=	lang
MASTER_SITES=	https://nim-lang.org/download/

MAINTAINER=	ports@nicandneal.net
COMMENT=	Nim programming language

LICENSE=	MIT
LICENSE_FILE=	${WRKSRC}/copying.txt

BROKEN_aarch64=		fails to compile: crt1.c: undefined reference to main
BROKEN_armv6=		fails to compile: crt1.c: undefined reference to main
BROKEN_armv7=		fails to compile: crt1.c: undefined reference to main
BROKEN_mips64=		fails to build: build.sh: clang: not found
BROKEN_sparc64=		fails to build: build.sh: clang: not found

TOOLS_DESC=	Build and install nimgrep and nimsuggest

OPTIONS_DEFINE=	DOCS TOOLS
OPTIONS_SUB=	yes

MAKE_JOBS_UNSAFE=	yes
USES=		compiler tar:xz

.include <bsd.port.pre.mk>

TLIST=	nimgrep nimsuggest

.if ${ARCH} == "powerpc64"
.  if defined(PPC_ABI) && ${PPC_ABI} == ELFv1 
EXTRA_PATCHES=	${PATCHDIR}/elfv1-patch-build.sh
.  endif
.endif

post-patch:
.if defined(PPC_ABI) && ${PPC_ABI} == ELFv1
	@${REINPLACE_CMD} -e '/cc =/s/clang/gcc/' ${WRKSRC}/config/nim.cfg
.endif

do-build:
	cd ${WRKSRC} && ${SETENV} CC="${CC}" LINKER="${CC}" \
		COMP_FLAGS="${CPPFLAGS} ${CFLAGS}" LINK_FLAGS="${LDFLAGS}" \
		${SH} build.sh
	cd ${WRKSRC} && bin/nim c --parallelBuild=${MAKE_JOBS_NUMBER} --nimcache=${WRKSRC}/nimcache koch
	cd ${WRKSRC} && ./koch boot --parallelBuild=${MAKE_JOBS_NUMBER} \
		-d:release

do-build-TOOLS-on:
	cd ${WRKSRC} && ./koch tools --parallelBuild=${MAKE_JOBS_NUMBER} \
		-d:release

do-install:
	cd ${WRKSRC} && ${SH} install.sh ${STAGEDIR}${PREFIX}
	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/nim

do-install-TOOLS-on:
.for t in ${TLIST}
	${INSTALL_PROGRAM} ${WRKSRC}/bin/${t} ${STAGEDIR}${PREFIX}/bin
.endfor

.include <bsd.port.post.mk>