summaryrefslogtreecommitdiff
path: root/math/octave/Makefile
blob: 7489d7a94adf1da7f94297c2f35d6d50b26dcf35 (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
# $NetBSD: Makefile,v 1.69 2007/01/07 12:25:54 wiz Exp $

DISTNAME=	octave-${OCTAVE_VER}
PKGREVISION=	1
CATEGORIES=	math
MASTER_SITES=	ftp://ftp.che.wisc.edu/pub/octave/ \
		ftp://ftp.eos.hokudai.ac.jp/pub/GNU/misc/octave/ \
		ftp://ftp.u-aizu.ac.jp/pub/SciEng/numanal/Octave/ \
		ftp://ftp.task.gda.pl/pub/software/octave/
EXTRACT_SUFX=	.tar.bz2

MAINTAINER=	adam@NetBSD.org
HOMEPAGE=	http://www.octave.org/
COMMENT=	High-level language, intended for numerical computations

BUILD_DEPENDS+=	bison>=1.875:../../devel/bison
BUILD_DEPENDS+=	gperf>=2.7:../../devel/gperf
DEPENDS+=	gnuplot>=3.7:../../graphics/gnuplot

OCTAVE_VER=	2.1.73
CONFLICTS+=	octave-current-*

.if (${MACHINE_ARCH} == "arm32")
BROKEN=		Internal compiler error occurs on arm32 (even with gcc-2.95.3)
.endif

USE_GNU_READLINE=	yes
USE_LIBTOOL=		yes
USE_TOOLS+=		gmake makeinfo perl
GNU_CONFIGURE=		yes

GCC_REQD+=		3.0
USE_LANGUAGES=		c c++ fortran

# needed for loading of shared objects such as those in the
# octave-forge package or user written ones compiled with
# mkoctfile
CONFIGURE_ARGS+=	--enable-dl

.include "options.mk"

GNU_PLATFORM_DIR!=	${.CURDIR}/../../mk/gnu-config/config.sub ${MACHINE_GNU_PLATFORM}
PLIST_SUBST+=	GNU_PLATFORM_DIR=${GNU_PLATFORM_DIR:Q}

INFO_FILES=	# PLIST
OCTAVE_DOC=	faq/Octave-FAQ.ps interpreter/octave.ps \
		liboctave/liboctave.ps refcard/refcard-a4.ps \
		refcard/refcard-legal.ps  refcard/refcard-letter.ps
OCTAVE_HTML=	faq/Octave-FAQ_*.html interpreter/octave_*.html \
		liboctave/liboctave_*.html

UNWRAP_FILES+=	mkoctfile octave-bug src/oct-conf.h

post-extract:
	${FIND} ${WRKSRC}/doc -type f -name '*.info*' -print | ${XARGS} ${RM} -f
	${MKDIR} ${WRKSRC}/src/pic

# substitute in the real path to various bits of the toolchain because
# mkoctfile will be used potentially by users and it needs to point
# at the same compilers as were used in building octave.  We also
# fix up the path to sed otherwise we end up with the buildlink directory
# in mkoctfile
post-build:
	${MV} ${WRKSRC}/mkoctfile ${WRKSRC}/mkoctfile.bak
	${SED} \
		-e 's;"${CC}";"${CCPATH}";g' \
		-e 's;"${CXX}";"${CXXPATH}";g' \
		-e 's;"${FC}";"${FCPATH}";g' \
		-e 's@^:[ \t]*\$${SED=.*@: \$$\{SED="${SED}"\}@g' \
		${WRKSRC}/mkoctfile.bak > ${WRKSRC}/mkoctfile
	${CHMOD} a+x ${WRKSRC}/mkoctfile

post-install:
	cd ${WRKSRC}/doc/liboctave;					\
	for f in liboctave.info liboctave.info-[0-9]*; do		\
		${TEST} ! -f "$$f" ||					\
		${INSTALL_DATA} "$$f" ${PREFIX}/${PKGINFODIR};		\
	done
	${INSTALL_DATA_DIR} ${PREFIX}/share/octave/${OCTAVE_VER}/doc
.for f in ${OCTAVE_DOC}
	${INSTALL_DATA} ${WRKSRC}/doc/${f} ${PREFIX}/share/octave/${OCTAVE_VER}/doc
.endfor
	${INSTALL_DATA_DIR} ${PREFIX}/share/doc/octave
.for f in ${OCTAVE_HTML}
	${INSTALL_DATA} ${WRKSRC}/doc/${f} ${PREFIX}/share/doc/octave
.endfor

.include "../../audio/libsndfile/buildlink3.mk"
.include "../../devel/readline/buildlink3.mk"
.include "../../devel/ncurses/buildlink3.mk"
.include "../../math/blas/buildlink3.mk"
.include "../../math/fftw/buildlink3.mk"
.include "../../math/lapack/buildlink3.mk"

.include "../../mk/bsd.pkg.mk"