Massive cleanup of buildlink3.mk and builtin.mk files in pkgsrc.
Several changes are involved since they are all interrelated. These
changes affect about 1000 files.
The first major change is rewriting bsd.builtin.mk as well as all of
the builtin.mk files to follow the new example in bsd.builtin.mk.
The loop to include all of the builtin.mk files needed by the package
is moved from bsd.builtin.mk and into bsd.buildlink3.mk. bsd.builtin.mk
is now included by each of the individual builtin.mk files and provides
some common logic for all of the builtin.mk files. Currently, this
includes the computation for whether the native or pkgsrc version of
the package is preferred. This causes USE_BUILTIN.* to be correctly
set when one builtin.mk file includes another.
The second major change is teach the builtin.mk files to consider
files under ${LOCALBASE} to be from pkgsrc-controlled packages. Most
of the builtin.mk files test for the presence of built-in software by
checking for the existence of certain files, e.g. <pthread.h>, and we
now assume that if that file is under ${LOCALBASE}, then it must be
from pkgsrc. This modification is a nod toward LOCALBASE=/usr. The
exceptions to this new check are the X11 distribution packages, which
are handled specially as noted below.
The third major change is providing builtin.mk and version.mk files
for each of the X11 distribution packages in pkgsrc. The builtin.mk
file can detect whether the native X11 distribution is the same as
the one provided by pkgsrc, and the version.mk file computes the
version of the X11 distribution package, whether it's built-in or not.
The fourth major change is that the buildlink3.mk files for X11 packages
that install parts which are part of X11 distribution packages, e.g.
Xpm, Xcursor, etc., now use imake to query the X11 distribution for
whether the software is already provided by the X11 distribution.
This is more accurate than grepping for a symbol name in the imake
config files. Using imake required sprinkling various builtin-imake.mk
helper files into pkgsrc directories. These files are used as input
to imake since imake can't use stdin for that purpose.
The fifth major change is in how packages note that they use X11.
Instead of setting USE_X11, package Makefiles should now include
x11.buildlink3.mk instead. This causes the X11 package buildlink3
and builtin logic to be executed at the correct place for buildlink3.mk
and builtin.mk files that previously set USE_X11, and fixes packages
that relied on buildlink3.mk files to implicitly note that X11 is
needed. Package buildlink3.mk should also include x11.buildlink3.mk
when linking against the package libraries requires also linking
against the X11 libraries. Where it was obvious, redundant inclusions
of x11.buildlink3.mk have been removed.
2005-06-01 20:02:37 +02:00
|
|
|
# $NetBSD: Makefile,v 1.68 2005/06/01 18:03:00 jlam Exp $
|
1998-12-04 12:36:03 +01:00
|
|
|
|
2005-05-02 18:57:19 +02:00
|
|
|
DISTNAME= R-2.1.0
|
2000-04-19 17:30:05 +02:00
|
|
|
CATEGORIES= math
|
2004-11-18 13:31:29 +01:00
|
|
|
MASTER_SITES= ${MASTER_SITE_R_CRAN:=base/R-2/}
|
2000-04-19 17:30:05 +02:00
|
|
|
|
2003-07-17 23:41:05 +02:00
|
|
|
MAINTAINER= markd@NetBSD.org
|
2000-11-03 02:14:51 +01:00
|
|
|
HOMEPAGE= http://www.R-project.org/
|
2001-08-13 12:25:03 +02:00
|
|
|
COMMENT= Statistical language for data analysis and graphics
|
2000-04-19 17:30:05 +02:00
|
|
|
|
2002-06-16 04:56:50 +02:00
|
|
|
#needs FPC code not found in older versions of NetBSD
|
|
|
|
NOT_FOR_PLATFORM= NetBSD-1.[0-4]*-alpha NetBSD-1.5-alpha \
|
|
|
|
NetBSD-1.5.*-alpha NetBSD-1.5[A-U]-alpha
|
|
|
|
|
2004-05-18 13:27:29 +02:00
|
|
|
PKG_INSTALLATION_TYPES= overwrite pkgviews
|
|
|
|
|
2003-12-03 13:05:18 +01:00
|
|
|
TEST_TARGET= check
|
2000-04-19 17:30:05 +02:00
|
|
|
USE_PERL5= # defined
|
2005-05-22 22:07:36 +02:00
|
|
|
USE_TOOLS+= gmake xmkmf
|
2001-07-23 15:14:44 +02:00
|
|
|
USE_GNU_READLINE= # uses callback interface
|
2003-12-03 13:05:18 +01:00
|
|
|
USE_MAKEINFO= # defined
|
2004-11-18 13:31:29 +01:00
|
|
|
TEXINFO_REQD= 4.5
|
2000-04-19 17:30:05 +02:00
|
|
|
|
|
|
|
GNU_CONFIGURE= # defined
|
Update R to version 1.6.1.
Pkgsrc changes:
Now builds the libR.so and provides a buildlink2.mk for packages that want
to use it. From suggestions from Kent Polk.
Recommended library set is now included in the base package.
Changes:
CHANGES IN R VERSION 1.6.1
NEW FEATURES
o Added a few "trivial and obviously missing" functions to tcltk:
tkchooseDirectory, tkpopup, tkdialog, tkread
o barplot() has a new argument `axis.lty', which if set to 1
allows the pre-1.6.0 behaviour of plotting the axis and tick
marks for the categorical axis. (This was apparently not
intentional, but axis() used to ignore lty=0.)
The argument `border' is no longer ".NotYetUsed".
CHANGES IN R VERSION 1.6.0
USER-VISIBLE CHANGES
o The default colour palette now has "grey" instead of "white"
in location 8. See palette().
o grid(nx) behaves differently (but the same as in R versions <= 0.64).
NEW FEATURES
o Preparations for name space support:
o The objects created in the methods package to represent
classes, generic functions, method definitions, and
inheritance relations now themselves belong to true classes. In
particular, the "classRepresentation" objects follow the description
in "Programming with Data" (section 7.6).
o Other additions and changes to the methods package:
o New methods ([[, print, str) and extended plot() method
(incl. logical `horiz') for "dendrogram" class.
o sprintf() now checks the agreement between formats and object
types, and handles special values (NA, Inf, ...) correctly.
o chol() now uses a tolerance for non-positive-definiteness and
so should give more consistent results across platforms.
o New function agrep() for approximate (fuzzy) string matching.
o help.search() can now use both approximate (fuzzy) and regular
expression matching. By default, if the pattern to be matched
consists of only alphanumeric characters, whitespace or a dash,
approximate matching is used.
o axis() has three new optional arguments `col', `lty', and `lwd'
all for drawing the axis line and tick marks.
o Function vcov() (formerly in MASS), a generic function to
return the variance-covariance matrix of the parameter
estimates of a fitted model.
o duplicated() and unique() have methods for matrices and arrays
(based on ideas from Jens Oehlschl<E4>gel).
o Internally memory sizes and counts of cons cells are now stored
in unsigned longs. This allows memory limits to be set and
objects created in the range 2-4Gb on 32-bit platforms, and
allows 64-bit platforms to use much larger amounts of memory.
o Command-line flags to set memory can now use the suffix `G'
for gigabytes. The setting of maximum vsize is now only
limited by the platform's address space.
o All warning and error messages are truncated to a length set
by options(warning.length=), defaulting to 1000. (Previously
most (but not quite all) were truncated at 8192 characters.)
o [dpqr]gamma() check for shape parameter > 0.
o as.POSIX[cl]t can now convert logical NAs.
o All installed packages (even those shipped with R) are
given a `Built' field in the DESCRIPTION file.
o as.data.frame() now coerces logical matrices into logical
columns (rather than factors).
o [[<-.data.frame no longer coerces character replacement values
to factor. This is consistent with using $ to replace and
with S4.
o library() attempts to detect improperly installed packages, so
as from this version an installed package must have a
DESCRIPTION file and that file must have been stamped with a
`Built:' line (which was introduced in 1.2.0). Under
Unix-alikes, the platform is checked against that used for
installation.
o print.factor() has new arguments `max.levels' (with a smart default)
and `width'. print.ordered() is no longer needed.
o RNGkind() has an additional option for normal random generators:
"Inversion".
o data.frame() recycles factors and "AsIs" objects as well as
atomic vectors.
o rect() accepts additional graphics parameters through a ...
argument (in the same way as polygon).
o strwidth/strheight() now coerce their first argument in exactly
the same way text() does, so a wider range of inputs is allowed.
o prompt()'s default and data.frame methods have a new 3rd argument
`name' allowing them to used more easily in scripts and loops.
o rgb() has a new `maxColorValue' argument, allowing r,g,b in [0,M],
particularly in {0:255}, efficiently and non-error-prone.
o summaryRprof() provides the functionality of R CMD Rprof in R
code, though more slowly.
o pdf() now uses PDF not R code for clipping, which ensures that
partially visible text strings are (partially) shown.
o Each R session uses a per-session temporary directory which
is removed at normal termination. The directory name is given
by the tempdir() function, and filenames returned by
tempfile() will be within that directory.
o help.start() on Unix now uses a .R subdirectory of the
per-session temporary directory and not ~/.R. A side effect
is that ~/.R is now never deleted by R.
o cbind/rbind() used to ignore all zero-length vectors, an
undocumented quirk for S-compatibility. This caused problems
when combining zero-extent matrices and zero-length vectors, and
now zero-length vectors are ignored unless the result would
have zero rows/columns.
o plot.spec(x) now also works for other x than AR and Pgram results.
o New functions La.chol() and La.chol2inv() for Cholesky
decomposition and inverse of positive definite matrices using
Lapack.
o Changes to the tcltk package
o New function axTicks() returning tick mark locations like axis().
o grid() has a more sensible default behavior. Tick axis alignment
only happens when no numbers of grid cells are specified. New
arguments lwd and equilogs; nx/ny = NA for not drawing, see ?grid.
o installed.packages() has a new argument `priority'.
o termplot() uses factor levels rather than 1,2,3... for x-axis.
o The trace() function has been robustified and a new function
tracingState() added to turn tracing temporarily on and off.
o New cophenetic() in "mva" as utility for hierarchical clustering.
o p.adjust() has two new methods, 'Hommel' and 'FDR', contributed
by Gordon Smyth <smyth@wehi.edu.au>.
o stars() now has add and plot arguments.
and lots of bug fixes.
2002-12-10 12:58:10 +01:00
|
|
|
CONFIGURE_ARGS+= --enable-R-shlib
|
2000-08-12 01:02:37 +02:00
|
|
|
CONFIGURE_ARGS+= --with-x
|
|
|
|
CONFIGURE_ARGS+= --with-readline
|
2001-07-23 15:14:44 +02:00
|
|
|
CONFIGURE_ARGS+= --with-tcltk
|
2002-09-09 02:59:00 +02:00
|
|
|
CONFIGURE_ARGS+= --with-tcl-config=${BUILDLINK_PREFIX.tcl}/lib/tclConfig.sh
|
|
|
|
CONFIGURE_ARGS+= --with-tk-config=${BUILDLINK_PREFIX.tk}/lib/tkConfig.sh
|
2001-07-23 15:14:44 +02:00
|
|
|
CONFIGURE_ARGS+= --without-gnome # not yet stable
|
Update R to 1.9.0 and buildlink3ify
USER-VISIBLE CHANGES
o Underscore '_' is now allowed in syntactically valid names, and
make.names() no longer changes underscores. Very old code
that makes use of underscore for assignment may now give
confusing error messages.
o Package 'base' has been split into packages 'base', 'graphics',
'stats' and 'utils'. All four are loaded in a default
installation, but the separation allows a 'lean and mean'
version of R to be used for tasks such as building indices.
Packages ctest, eda, modreg, mva, nls, stepfun and ts have been
merged into stats, and lqs has been returned to MASS. In all
cases a stub has been left that will issue a warning and ensure
that the appropriate new home is loaded. All the time series
datasets have been moved to package stats. Sweave has been
moved to utils.
Package mle has been moved to stats4 which will become the
central place for statistical S4 classes and methods
distributed with base R. Package mle remains as a stub.
Users may notice that code in .Rprofile is run with only the
new base loaded and so functions may now not be found. For
example, ps.options(horizontal = TRUE) should be preceded by
library(graphics) or called as graphics::ps.options or,
better, set as a hook -- see ?setHook.
o There has been a concerted effort to speed up the startup of
an R session: it now takes about 2/3rds of the time of 1.8.1.
o A warning is issued at startup in a UTF-8 locale, as currently R
only supports single-byte encodings.
plus many new features and bug fixes.
2004-04-27 13:24:31 +02:00
|
|
|
CONFIGURE_ARGS+= --with-zlib
|
|
|
|
CONFIGURE_ARGS+= --with-bzlib
|
|
|
|
CONFIGURE_ARGS+= --with-pcre
|
2001-07-23 15:14:44 +02:00
|
|
|
|
|
|
|
# Use BLAS (math/blas)
|
|
|
|
#
|
2000-08-12 01:02:37 +02:00
|
|
|
CONFIGURE_ARGS+= --without-atlas
|
2003-12-04 14:42:37 +01:00
|
|
|
CONFIGURE_ARGS+= --with-blas
|
2000-08-12 01:02:37 +02:00
|
|
|
CONFIGURE_ARGS+= --without-blas_risc
|
2000-04-19 17:30:05 +02:00
|
|
|
CONFIGURE_ARGS+= --without-dxml
|
2000-08-12 01:02:37 +02:00
|
|
|
CONFIGURE_ARGS+= --without-libmoto
|
|
|
|
|
2001-07-23 15:14:44 +02:00
|
|
|
# Work around missing MAIN__() definition used in -lF77 by AC_CHECK_LIB.
|
|
|
|
CONFIGURE_ENV+= ac_cv_lib_blas_dgemm=yes
|
|
|
|
CONFIGURE_ENV+= ac_cv_lib_blas_dgemm_=yes
|
2000-08-12 01:02:37 +02:00
|
|
|
|
2001-07-23 15:14:44 +02:00
|
|
|
# Pass the Fortran compiler to the configure script in case it's overridden
|
|
|
|
# by the package builder.
|
|
|
|
#
|
2004-03-01 12:42:13 +01:00
|
|
|
USE_LANGUAGES= c fortran
|
1998-12-04 12:36:03 +01:00
|
|
|
|
2004-05-08 00:47:26 +02:00
|
|
|
# Package assumes it can append to files (specifically DESCRIPTION) that have
|
|
|
|
# been installed SHAREMODE
|
|
|
|
SHAREMODE= 644
|
|
|
|
|
1998-12-04 12:36:03 +01:00
|
|
|
.include "../../mk/bsd.prefs.mk"
|
|
|
|
|
|
|
|
# R_PAPERSIZE can be: A4, Letter, Legal, Executive
|
|
|
|
#
|
|
|
|
.if defined(PAPERSIZE)
|
2000-04-19 17:30:05 +02:00
|
|
|
R_PAPERSIZE?= ${PAPERSIZE}
|
1999-06-09 02:45:08 +02:00
|
|
|
.else
|
2000-04-19 17:30:05 +02:00
|
|
|
R_PAPERSIZE?= A4
|
1999-05-26 01:45:05 +02:00
|
|
|
.endif
|
1998-12-04 12:36:03 +01:00
|
|
|
.if (${R_PAPERSIZE} == "Letterdj")
|
2000-04-19 17:30:05 +02:00
|
|
|
R_PAPERSIZE= Letter
|
1998-12-04 12:36:03 +01:00
|
|
|
.endif
|
2000-04-19 17:30:05 +02:00
|
|
|
CONFIGURE_ENV+= R_PAPERSIZE="${R_PAPERSIZE}"
|
1998-12-04 12:36:03 +01:00
|
|
|
|
2000-08-12 01:02:37 +02:00
|
|
|
# These macros are used during the build, so strip off the -o,-g flags.
|
|
|
|
#
|
|
|
|
INSTALL_DATA= ${INSTALL} ${COPY} -m ${SHAREMODE}
|
|
|
|
INSTALL_SCRIPT= ${INSTALL} ${COPY} -m ${BINMODE}
|
2000-04-19 17:30:05 +02:00
|
|
|
|
2000-08-16 21:04:42 +02:00
|
|
|
PLIST_SRC= ${WRKDIR}/.PLIST_SRC
|
|
|
|
R_LIBDIR= ${PREFIX}/lib/R
|
2002-09-26 07:36:48 +02:00
|
|
|
R_INSTALL_DIRS= ${R_LIBDIR}
|
2000-08-16 21:04:42 +02:00
|
|
|
|
2005-01-12 23:49:35 +01:00
|
|
|
# R does ugly things in the configure to get the default list of
|
|
|
|
# arguments for linking Fortran and exposes the buildlink directory
|
|
|
|
# in various files and scripts that will later be installed, so clean
|
|
|
|
# up after configure is complete.
|
2002-09-09 02:59:00 +02:00
|
|
|
#
|
2005-01-12 23:49:35 +01:00
|
|
|
SUBST_CLASSES+= fix-R
|
|
|
|
SUBST_STAGE.fix-R= post-configure
|
|
|
|
SUBST_MESSAGE.fix-R= ${SUBST_MESSAGE.unwrap}
|
|
|
|
SUBST_FILES.fix-R= etc/Makeconf src/scripts/R.sh src/scripts/f77
|
|
|
|
SUBST_SED.fix-R= ${SUBST_SED.unwrap} \
|
|
|
|
-e "s|${BUILDLINK_DIR}/|${LOCALBASE}/|g" \
|
|
|
|
-e "s|${BUILDLINK_X11_DIR}/|${X11BASE}/|g"
|
2001-07-23 15:14:44 +02:00
|
|
|
|
2005-01-12 23:50:20 +01:00
|
|
|
BUILDLINK_DEPENDS.zlib+= zlib>=1.2.1
|
|
|
|
|
2005-05-19 15:12:52 +02:00
|
|
|
.if ${OPSYS} == "NetBSD" && !empty(OS_VERSION:M1.[0-6]*)
|
|
|
|
CONFIGURE_ARGS+= --enable-mbcs=no
|
|
|
|
.endif
|
|
|
|
|
2005-01-12 23:50:20 +01:00
|
|
|
.include "../../archivers/bzip2/buildlink3.mk"
|
|
|
|
.include "../../devel/pcre/buildlink3.mk"
|
|
|
|
.include "../../devel/readline/buildlink3.mk"
|
|
|
|
.include "../../devel/zlib/buildlink3.mk"
|
|
|
|
.include "../../graphics/jpeg/buildlink3.mk"
|
|
|
|
.include "../../graphics/png/buildlink3.mk"
|
|
|
|
.include "../../math/blas/buildlink3.mk"
|
|
|
|
.include "../../x11/tk/buildlink3.mk"
|
|
|
|
|
2000-08-16 21:04:42 +02:00
|
|
|
# Generate the PLIST dynamically as it changes in each version only in a
|
|
|
|
# specific subtree. This will make maintaining this package a little easier
|
|
|
|
# when updating.
|
|
|
|
#
|
1998-12-21 11:29:39 +01:00
|
|
|
post-install:
|
2000-08-16 21:04:42 +02:00
|
|
|
${CHOWN} -R ${SHAREOWN}:${SHAREGRP} ${R_LIBDIR}
|
|
|
|
${RM} -f ${PLIST_SRC}
|
|
|
|
${CAT} ${PKGDIR}/PLIST > ${PLIST_SRC}
|
2001-07-23 15:14:44 +02:00
|
|
|
( cd ${PREFIX}; \
|
2002-09-26 07:36:48 +02:00
|
|
|
for dir in ${R_INSTALL_DIRS}; do \
|
2002-09-23 15:41:15 +02:00
|
|
|
${FIND} $${dir#${PREFIX}/} \( -type f -o -type l \) -print; \
|
2001-07-23 15:14:44 +02:00
|
|
|
done; \
|
2002-04-23 03:14:49 +02:00
|
|
|
) | ${GREP} -v "lib/R/doc/html/packages.html" | \
|
|
|
|
${GREP} -v "lib/R/doc/html/search/index.txt" | \
|
|
|
|
${SORT} -u >> ${PLIST_SRC}
|
2002-05-24 15:24:36 +02:00
|
|
|
${ECHO} "@unexec ${RM} -f %D/lib/R/doc/html/packages.html" >> ${PLIST_SRC}
|
|
|
|
${ECHO} "@unexec ${RM} -f %D/lib/R/doc/html/search/index.txt" >> ${PLIST_SRC}
|
2001-07-23 15:14:44 +02:00
|
|
|
( cd ${PREFIX}; \
|
2002-09-26 07:36:48 +02:00
|
|
|
for dir in ${R_INSTALL_DIRS}; do \
|
2001-07-23 15:14:44 +02:00
|
|
|
${FIND} $${dir#${PREFIX}/} -type d -print; \
|
|
|
|
done; \
|
|
|
|
) | ${SORT} -ur | ${SED} -e "s|^|@dirrm |" >> ${PLIST_SRC}
|
2002-04-23 03:14:49 +02:00
|
|
|
${ECHO} "@exec R CMD ${PERL5} %D/lib/R/share/perl/build-help.pl --htmllists 2>/dev/null" >> ${PLIST_SRC}
|
|
|
|
${ECHO} "@exec ${CAT} %D/lib/R/library/*/CONTENTS > %D/lib/R/doc/html/search/index.txt 2>/dev/null" >> ${PLIST_SRC}
|
1998-12-04 12:36:03 +01:00
|
|
|
|
|
|
|
.include "../../mk/bsd.pkg.mk"
|