summaryrefslogtreecommitdiffstats
path: root/math/giacxcas/Makefile
blob: 30423cf0b6c72b26d314cfba749d0fd7c82ee6a6 (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
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
# Created by: Frederic Han <han@math.jussieu.fr>
# $FreeBSD$

PORTNAME=	giacxcas
DISTVERSION=	1.2.2-57
PORTREVISION=	3
CATEGORIES=	math
MASTER_SITES=	http://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/stable/main/source/:giac \
		http://www-fourier.ujf-grenoble.fr/~parisse/giac/freebsd/
DISTFILES=	giac_${DISTVERSION}${EXTRACT_SUFX}:giac \
		CoCoALib-0.9950.tgz \
		fltk-giac.tar.gz
DIST_SUBDIR=	${PORTNAME}

MAINTAINER=	ports@FreeBSD.org
COMMENT=	Computer algebra system

LICENSE=	GPLv3
LICENSE_FILE=	${WRKSRC}/COPYING

BUILD_DEPENDS=	bash:shells/bash
LIB_DEPENDS=	libgmp.so:math/gmp \
		libpng.so:graphics/png \
		libpari.so:math/pari \
		libmpfr.so:math/mpfr \
		libgsl.so:math/gsl
RUN_DEPENDS=	xdg-open:devel/xdg-utils

NO_CDROM=	French documentation is for non-commercial use only

GNU_CONFIGURE=	yes
USES=		blaslapack desktop-file-utils fortran gettext gmake jpeg \
		libtool readline shebangfix
USE_GL=		gl
USE_XORG=	x11 xcursor xext xft xi xinerama
USE_TEX=	latex:build dvipsk:build
USE_LDCONFIG=	yes
# Warning:  don't remove the USE_GCC without a runtime test *after* make install
USE_GCC=	yes
CONFIGURE_ENV=	ac_cv_lib_X11_main=yes \
		ac_cv_lib_cocoa_main=yes \
		ac_cv_lib_fltk_gl_main=yes \
		ac_cv_lib_fltk_main=yes \
		ac_cv_lib_fltk_images_main=yes \
		ac_cv_lib_jpeg_main=yes
SHEBANG_FILES=	src/pgiac
INSTALL_TARGET=	install-strip
INSTALLS_ICONS=	yes

CXXFLAGS+=	-I${LOCALBASE}/include
CPPFLAGS+=	-I${COCOALIB-GIAC}/include \
		-I${FLTKDEV-GIAC} \
		-I${LOCALBASE}/include
LDFLAGS+=	-L${COCOALIB-GIAC}/lib \
		-L${FLTKDEV-GIAC}/lib \
		-L${LOCALBASE}/lib

WRKSRC=		${WRKDIR}/giac-${DISTVERSION:C/-[0-9]*//}
FLTKDEV-GIAC=	${WRKDIR}/fltk-1.3.0
COCOALIB-GIAC=	${WRKDIR}/CoCoALib-0.9950

DATADIR=	${PREFIX}/share/giac
DOCSDIR=	${PREFIX}/share/doc/giac
EXAMPLESDIR=	${PREFIX}/share/examples/giac

INFO=		giac_es giac_us

OPTIONS_DEFINE=	DOCS EXAMPLES

#NB: built of giacxcas with USE_GCC and nlt is successfull if the ntl port is also
#    installed  with USE_GCC
CONFIGURE_ARGS+=	--disable-ntl

post-extract:
	@${FIND} ${WRKSRC}/examples/Exemples -name "._*" -delete

post-patch:
	@${GREP} -Rl --null /bin/bash ${COCOALIB-GIAC} | ${XARGS} -0 \
		${REINPLACE_CMD} -e 's|/bin/bash|/usr/bin/env bash|'
	@${REINPLACE_CMD} -e '/^SUBDIR/s|examples||' \
		${WRKSRC}/Makefile.in
	@${REINPLACE_CMD} -e 's|/usr/bin|${LOCALBASE}/bin|' \
		${WRKSRC}/xcas.applications
	@${REINPLACE_CMD} -e 's|cp -f \*|$$(INSTALL_DATA) WARNINGS [a-z]*|' \
		${WRKSRC}/doc/el/*/Makefile.in
	@${REINPLACE_CMD} -e '/browser=/s|"mozilla"|"xdg-open"|' \
		${WRKSRC}/src/global.cc
	@${FIND} ${WRKSRC} -name "Makefile.in" | ${XARGS} \
		${REINPLACE_CMD} -e 's|$$(prefix)/share/giac/doc|$$(docdir)|'
	@${FIND} ${COCOALIB-GIAC} -name "Makefile" | ${XARGS} \
		${REINPLACE_CMD} -e \
		's|\($$(MAKE) \)-s |\1|; s|\([[:blank:]]\)@|\1|'
	@${REINPLACE_CMD} -e '/.SILENT:/s|^|#|' \
		${FLTKDEV-GIAC}/makeinclude.in

pre-configure:
	@(cd ${COCOALIB-GIAC} && ${SETENV} ${CONFIGURE_ENV} ./configure \
		--with-libgmp=${LOCALBASE}/lib/libgmp.a \
		--with-cxx="${CXX}")
	@(cd ${FLTKDEV-GIAC} && ${SETENV} ${CONFIGURE_ENV} ./configure \
		--prefix=${FLTKDEV-GIAC} \
		CXX="${CXX}" CXXFLAGS="${CXXFLAGS}")

pre-build:
	@(cd ${COCOALIB-GIAC} && ${DO_MAKE_BUILD} \
		CXXFLAGS_SPECIFIC="${CXXFLAGS}" library)
	@(cd ${FLTKDEV-GIAC}/src && ${DO_MAKE_BUILD})

post-install-DOCS-on:
	@${LN} -sf ../doc/giac ${STAGEDIR}${DATADIR}/doc

post-install-EXAMPLES-on:
	@(cd ${WRKSRC}/examples && ${COPYTREE_SHARE} "Exemples [a-z]*" \
		${STAGEDIR}${EXAMPLESDIR})
	@${LN} -sf ../examples/giac ${STAGEDIR}${DATADIR}/examples

.include <bsd.port.mk>
OpenPOWER on IntegriCloud