blob: 35dfb11b4b081299e8d4f4f42beb3f1ea2e5bb32 (
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
# Created by: keith@FreeBSD.org
PORTNAME= gap
DISTVERSION= 4.11.1
PORTREVISION= 2
CATEGORIES= math
MASTER_SITES= https://github.com/gap-system/gap/releases/download/v${DISTVERSION}/
MAINTAINER= yuri@FreeBSD.org
COMMENT= System for computational discrete algebra
LICENSE= GPLv2+
BROKEN_aarch64= fails to link: undefined reference to SyAllocBags
BROKEN_riscv64= fails to link: undefined reference to SyAllocBags
BUILD_DEPENDS= bash:shells/bash
LIB_DEPENDS= libgmp.so:math/gmp
USES= autoreconf:build gmake libtool localbase perl5 shebangfix \
readline
SHEBANG_FILES= .
USE_PERL5= run
OPTIONS_DEFINE= ADDPACK MANU
OPTIONS_DEFAULT=ADDPACK
OPTIONS_SUB= yes
ADDPACK_DESC= Additional packages typically "expected" out-of-the-box
ADDPACK_VARS= ADD_PACK="${ADDPACK}"
MANU_DESC= HTML and PDF manuals
MANU_USE= TEX=latex:build,formats,web2c
MANU_VARS= DOC_TARGET=doc
GNU_CONFIGURE= yes
MAKEFILE= GNUmakefile
ALL_TARGET= all ${DOC_TARGET}
INSTALL_TARGET= install-headers install-libgap
USE_LDCONFIG= yes
PORTDATA= doc/*
MAKE_JOBS_UNSAFE=yes
PLIST_SUB= ALNUTH_VER=3.1.2 AUTPGRP_VER=1.10.2 CRISP_VER=1.4.5 \
CTBLLIB_VER=1.3.1 FACT_INT_VER=1.6.3 GAP_DOC_VER=1.6.4 \
HELP_VER=3.5 IRREDSOL_VER=1.4.1 LAGUNA_VER=3.9.3 \
POLENTA_VER=1.3.9 POLYCYCLIC_VER=2.16 PRIMGRP_VER=3.4.1 \
RESCLASSES_VER=4.7.2 SOPHUS_VER=1.24 SMALL_GRP_VER=1.4.2 \
TOMLIB_VER=1.2.9
# The minimal packages GAP needs to run (do not need compilation)
MINPACK= GAPDoc- HeLP- primgrp- SmallGrp- transgrp
ADDPACK= atlasrep autpgrp- alnuth- crisp- ctbllib FactInt- fga \
irredsol- laguna- polenta- polycyclic- resclasses- \
sophus- tomlib-
ACLOCVER= 1.16 # Truncated version of aclocal / automake
.include <bsd.port.options.mk>
pre-configure:
# Avoid conflict with C++20 <version> by ignoring <...> under WRKSRC
${REINPLACE_CMD} -i .c++20 's/-I/-iquote/' \
${WRKSRC}/pkg/*/Makefile.in
.for f in aclocal.m4 configure
${FIND} ${WRKSRC} -name ${f} | ${XARGS} ${REINPLACE_CMD} -i '' \
-e "s|am__api_version='1.15'|am__api_version='${ACLOCVER}'|"
.endfor
post-build:
@cd ${WRKSRC}/pkg/simpcomp && \
${SETENV} ${CONFIGURE_ENV} ${SH} configure \
${CONFIGURE_ARGS:N--with-*} && \
${MAKE} ${MAKEFLAGS} && \
${MAKE} ${MAKEFLAGS} install-strip && \
${RM} bistellar
post-install:
# additional header
${INSTALL_DATA} ${WRKSRC}/gen/config.h ${STAGEDIR}${PREFIX}/include/gap
# install gap binary
${INSTALL_PROGRAM} ${WRKSRC}/gap ${STAGEDIR}${PREFIX}/bin/gap-bin
# strip
cd ${STAGEDIR}${PREFIX} && ${STRIP_CMD} bin/gap-bin lib/libgap.so.0.0.0
# install gac executable
${INSTALL_SCRIPT} ${WRKSRC}/gac ${STAGEDIR}${PREFIX}/bin/gac
${REINPLACE_CMD} -i '' -e ' \
s|^\. "$${abs_top_builddir}/sysinfo.gap"|. "${DATADIR}/sysinfo.gap"|; \
s|^abs_top_builddir=.*|abs_top_builddir="${DATADIR}/min-builddir"|; \
s|^abs_top_srcdir=.*|abs_top_srcdir="${DATADIR}/min-srcdir"| \
' ${STAGEDIR}${PREFIX}/bin/gac
# prepare and install wrapper
@${CAT} ${WRKSRC}/bin/gap.sh | ${SED} -e ' \
s:${WRKSRC}:${GAP_LIBDIR}:; \
s:GAP_DIR=.*:GAP_DIR=${DATADIR}:; \
s:GAP_EXE=.*:GAP_EXE=${PREFIX}/bin/gap-bin:; \
/^exec/s:/gap::; \
' > ${WRKSRC}/bin/gap
${INSTALL_SCRIPT} ${WRKSRC}/bin/gap ${STAGEDIR}${PREFIX}/bin
# min-builddir and min-srcdir
${MKDIR} ${STAGEDIR}${DATADIR}/min-builddir ${STAGEDIR}${DATADIR}/min-srcdir
${INSTALL_SCRIPT} ${WRKSRC}/libtool ${STAGEDIR}${DATADIR}/min-builddir
${RLN} ${STAGEDIR}${PREFIX}/bin/gap ${STAGEDIR}${DATADIR}/min-builddir/gap
cd ${WRKSRC}/ && ${COPYTREE_SHARE} obj ${STAGEDIR}${DATADIR}/min-builddir/
# install packages
${MKDIR} ${STAGEDIR}${DATADIR}/pkg
.for f in doc etc gen grp lib tst sysinfo.gap
${CP} -R ${WRKSRC}/${f} ${STAGEDIR}${DATADIR}/
.endfor
.for p in ${MINPACK} ${ADD_PACK}
cd ${WRKSRC}/pkg && ${CP} -R $$(ls -d ${p}*) ${STAGEDIR}${DATADIR}/pkg/
.endfor
# correct paths in sysinfo.gap
${REINPLACE_CMD} -i '' -e ' \
s|^GAP_BIN_DIR=.*|GAP_BIN_DIR="${PREFIX}/bin"|; \
s|^GAP_LIB_DIR=.*|GAP_LIB_DIR="${PREFIX}/lib"|; \
s| -isystem ${PREFIX}/include |&-I${PREFIX}/include/gap |; \
' ${STAGEDIR}${DATADIR}/sysinfo.gap
do-test:
@cd ${WRKSRC} && ./gap ${FILESDIR}/test.g
.include <bsd.port.mk>
|