Makefile revision 5680
181e56d8b348d301d615ccf5465ae600fee2867berikabele#
181e56d8b348d301d615ccf5465ae600fee2867berikabele# CDDL HEADER START
181e56d8b348d301d615ccf5465ae600fee2867berikabele#
dd9f0e560e29dc86fba5f5d4fa5e72cda5cefb16slive# The contents of this file are subject to the terms of the
dd9f0e560e29dc86fba5f5d4fa5e72cda5cefb16slive# Common Development and Distribution License (the "License").
dd9f0e560e29dc86fba5f5d4fa5e72cda5cefb16slive# You may not use this file except in compliance with the License.
5a58787efeb02a1c3f06569d019ad81fd2efa06end#
5a58787efeb02a1c3f06569d019ad81fd2efa06end# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7add1372edb1ee95a2c4d1314df4c7567bda7c62jim# or http://www.opensolaris.org/os/licensing.
7add1372edb1ee95a2c4d1314df4c7567bda7c62jim# See the License for the specific language governing permissions
7add1372edb1ee95a2c4d1314df4c7567bda7c62jim# and limitations under the License.
7add1372edb1ee95a2c4d1314df4c7567bda7c62jim#
5a58787efeb02a1c3f06569d019ad81fd2efa06end# When distributing Covered Code, include this CDDL HEADER in each
7add1372edb1ee95a2c4d1314df4c7567bda7c62jim# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
52fff662005b1866a3ff09bb6c902800c5cc6dedjerenkrantz# If applicable, add the following below this CDDL HEADER, with the
7add1372edb1ee95a2c4d1314df4c7567bda7c62jim# fields enclosed by brackets "[]" replaced with your own identifying
7add1372edb1ee95a2c4d1314df4c7567bda7c62jim# information: Portions Copyright [yyyy] [name of copyright owner]
5a58787efeb02a1c3f06569d019ad81fd2efa06end#
7add1372edb1ee95a2c4d1314df4c7567bda7c62jim# CDDL HEADER END
3b3b7fc78d1f5bfc2769903375050048ff41ff26nd#
7add1372edb1ee95a2c4d1314df4c7567bda7c62jim
7f5b59ccc63c0c0e3e678a168f09ee6a2f51f9d0nd#
1ac39787115a288f5e848344b1b1e8dccb1c58f1nd# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
1ac39787115a288f5e848344b1b1e8dccb1c58f1nd#
3b3b7fc78d1f5bfc2769903375050048ff41ff26ndBUILD_BITS= 64
3b3b7fc78d1f5bfc2769903375050048ff41ff26ndinclude ../../make-rules/shared-macros.mk
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen
c68aa7f213d409d464eaa6b963afb28678548f4frbowenCOMPONENT_NAME= R
2df40fa998d3364133c4dd29eb395f5ae70dfc1fsliveCOMPONENT_VERSION= 3.2.3
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenCOMPONENT_PROJECT_URL= http://www.r-project.org/
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenCOMPONENT_ARCHIVE_HASH= \
2df40fa998d3364133c4dd29eb395f5ae70dfc1fslive sha256:b93b7d878138279234160f007cb9b7f81b8a72c012a15566e9ec5395cfd9b6c1
2df40fa998d3364133c4dd29eb395f5ae70dfc1fsliveCOMPONENT_ARCHIVE_URL= http://cran.mtu.edu/src/base/R-3/$(COMPONENT_ARCHIVE)
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenCOMPONENT_BUGDB= utility/r
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen
dd9f0e560e29dc86fba5f5d4fa5e72cda5cefb16sliveTPNO= 26540
7add1372edb1ee95a2c4d1314df4c7567bda7c62jim
2684d5de7d8996ac96df3a37e8f8a49c502f26dfjsl# Need to build the tests before using them.
5a58787efeb02a1c3f06569d019ad81fd2efa06endSYSTEM_TEST_TARGET= build $(SYSTEM_TEST_64)
7add1372edb1ee95a2c4d1314df4c7567bda7c62jiminclude $(WS_MAKE_RULES)/common.mk
cfebc848e619d381e71d40b6f489db4aac180ee5rbowen
7add1372edb1ee95a2c4d1314df4c7567bda7c62jimCOMPONENT_PRE_CONFIGURE_ACTION = \
7add1372edb1ee95a2c4d1314df4c7567bda7c62jim ($(CLONEY) $(SOURCE_DIR) $(@D))
5a58787efeb02a1c3f06569d019ad81fd2efa06end
7add1372edb1ee95a2c4d1314df4c7567bda7c62jim# Get rid of compiler path set in RUNPATH
5a58787efeb02a1c3f06569d019ad81fd2efa06endLDFLAGS += $(studio_NORUNPATH)
7add1372edb1ee95a2c4d1314df4c7567bda7c62jim
7add1372edb1ee95a2c4d1314df4c7567bda7c62jimLDFLAGS += $(CC_BITS)
5a58787efeb02a1c3f06569d019ad81fd2efa06end
7add1372edb1ee95a2c4d1314df4c7567bda7c62jimLDFLAGS += $(studio_PIC)
5a58787efeb02a1c3f06569d019ad81fd2efa06endLDFLAGS += $(LD_DEF_LIBS)
5a58787efeb02a1c3f06569d019ad81fd2efa06end
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenSTUDIO_LIBS_PATH = $(USRLIBDIR)/studio/64
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenR_LIBS_PATH = $(USRLIBDIR64)/R/lib
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenJAVA_LIBS_PATH = $(JAVA8_HOME)/jre/lib/$(MACH64)/server
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenLDFLAGS += -L$(STUDIO_LIBS_PATH) -R$(STUDIO_LIBS_PATH) \
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen -lsunperf -lfsu -lmtsk -lpicl -lkstat
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen
2684d5de7d8996ac96df3a37e8f8a49c502f26dfjsl# Augment the PATH and set CC/CXX/F95 such that the build environment doesn't
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen# leak into usr/lib/64/etc/Makeconf and force consumers to have a setup like
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen# our build environment to build R modules.
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenexport PATH=$(SPRO_VROOT)/bin:$(USRBINDIR):$(GNUBIN)
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenCC = cc
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenCXX = CC
dd9f0e560e29dc86fba5f5d4fa5e72cda5cefb16sliveF95 = f95
181e56d8b348d301d615ccf5465ae600fee2867berikabeleifeq ($(strip $(PARFAIT_BUILD)),yes)
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenexport PATH=$(PARFAIT_TOOLS):$(SPRO_VROOT)/bin:$(USRBINDIR):$(GNUBIN)
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenendif
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenCONFIGURE_ENV += F77="$(F95) $(CC_BITS)"
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenCONFIGURE_ENV += FC="$(F95) $(CC_BITS)"
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen# For now, R is built with a very specific set of optimization flags to match
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen# Oracle-provided builds. These should be re-evaluated when upgrading to
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen# Studio 12.5 or later or when next upgrading R.
dd9f0e560e29dc86fba5f5d4fa5e72cda5cefb16slivestudio_OPT= -xO3
181e56d8b348d301d615ccf5465ae600fee2867berikabelestudio_XBITS=
181e56d8b348d301d615ccf5465ae600fee2867berikabelestudio_XREGS=
dd9f0e560e29dc86fba5f5d4fa5e72cda5cefb16slivestudio_IROPTS=
181e56d8b348d301d615ccf5465ae600fee2867berikabelestudio_C99MODE= $(studio_C99_ENABLE)
dd9f0e560e29dc86fba5f5d4fa5e72cda5cefb16slivestudio_ALIGN=
cfebc848e619d381e71d40b6f489db4aac180ee5rbowenstudio_MT=
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen
2684d5de7d8996ac96df3a37e8f8a49c502f26dfjslCFLAGS.studio += -xlibmieee
2684d5de7d8996ac96df3a37e8f8a49c502f26dfjslCXXFLAGS += -std=c++11
cfebc848e619d381e71d40b6f489db4aac180ee5rbowen# We (the Userland) team don't need -D__MATHERR_RENAME_EXCEPTION for the
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen# creation of the R packages we provide in Solaris. It would be needed by
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen# our customers that try to install R packages that use C++. And they would
2684d5de7d8996ac96df3a37e8f8a49c502f26dfjsl# be using the version of the Studio compilers on their machine(s) to do this.
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen# Studio 12.5 will hopefully automatically provide this definition when C++
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen# code is compiled with "-std=c++11". When that version of the Studio
cfebc848e619d381e71d40b6f489db4aac180ee5rbowen# compilers is released, we should encourage customers to install it, but
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen# for those still using Studio 12.4, this definition will continue to be needed.
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenCXXFLAGS += -D__MATHERR_RENAME_EXCEPTION
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenLDFLAGS += -L$(R_LIBS_PATH) -R$(R_LIBS_PATH)
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenCONFIGURE_ENV += CPICFLAGS="$(studio_PIC)"
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenCONFIGURE_ENV += FPICFLAGS="$(studio_PIC)"
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenCONFIGURE_ENV += FFLAGS="$(studio_OPT) $(CC_BITS)"
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenCONFIGURE_ENV += FCFLAGS="$(studio_OPT) $(CC_BITS)"
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenCONFIGURE_ENV += FCLIBS="-lsunperf -lfsu -lsunmath"
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenCONFIGURE_ENV += FLIBS="-lsunperf -lfsu -lsunmath"
7add1372edb1ee95a2c4d1314df4c7567bda7c62jim# Needed so that R packages using C++ code can link against the standard
5a58787efeb02a1c3f06569d019ad81fd2efa06end# C++ libraries.
cfebc848e619d381e71d40b6f489db4aac180ee5rbowenCONFIGURE_ENV += SHLIB_CXXLDFLAGS="-lCrunG3"
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen# Set the various Java variables otherwise it auto-detects the 32-bit ones.
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenCONFIGURE_ENV += JAVA_CPPFLAGS="-I$(JAVA8_HOME)/jre/../include -I$(JAVA8_HOME)/jre/../include/solaris"
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenCONFIGURE_ENV += JAVA_LIBS="-L$(JAVA_LIBS_PATH) -R$(JAVA_LIBS_PATH) -ljvm"
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen# From Brian Whitney:
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen# You need to define this option on SPARC, otherwise you will get quad
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen# arithmetic on SPARC but not on x86. Really makes some R functions run
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen# very slow on SPARC (COR path).
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenCONFIGURE_OPTIONS.sparc += --disable-long-double
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenCONFIGURE_OPTIONS += --enable-R-shlib
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenCONFIGURE_OPTIONS += --with-blas='-lsunperf'
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenCONFIGURE_OPTIONS += --with-ICU
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenCONFIGURE_OPTIONS += --with-lapack
181e56d8b348d301d615ccf5465ae600fee2867berikabeleCONFIGURE_OPTIONS += --with-recommended-packages
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenCONFIGURE_OPTIONS += --with-tcltk
20189240503ef2c8f5dc6e2248b57faab4b23b5andCONFIGURE_OPTIONS += --enable-prebuilt-html
20189240503ef2c8f5dc6e2248b57faab4b23b5and
cfebc848e619d381e71d40b6f489db4aac180ee5rbowenCOMPONENT_PRE_TEST_ACTION = \
20189240503ef2c8f5dc6e2248b57faab4b23b5and $(RM) $(BUILD_DIR_64)/tests/Examples/*.prev
20189240503ef2c8f5dc6e2248b57faab4b23b5and
20189240503ef2c8f5dc6e2248b57faab4b23b5andCOMPONENT_PRE_SYSTEM_TEST_ACTION = \
20189240503ef2c8f5dc6e2248b57faab4b23b5and $(RM) $(BUILD_DIR_64)/tests/Examples/*.prev
2684d5de7d8996ac96df3a37e8f8a49c502f26dfjsl
181e56d8b348d301d615ccf5465ae600fee2867berikabele# Increase stack limit to allow the "infinite recursion" test to work.
2684d5de7d8996ac96df3a37e8f8a49c502f26dfjslCOMPONENT_TEST_ENV_CMD = ulimit -Ss 32768 ; $(ENV)
dd9f0e560e29dc86fba5f5d4fa5e72cda5cefb16sliveCOMPONENT_SYSTEM_TEST_ENV_CMD = ulimit -Ss 32768 ; $(ENV)
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenCOMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenCOMPONENT_TEST_TRANSFORMS += \
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen '-n ' \
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen '-e "/^Testing examples for package /p" ' \
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen '-e "/^running /p" ' \
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen '-e "/^ expect some differences/p" ' \
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen '-e "/comparing.*datetime.Rout/d" ' \
66356f3436e7f3e5abcdc80495444cfb99ad21a1yoshiki '-e "/comparing.*reg-examples3.Rout/d" ' \
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen '-e "/^ comparing /p" '
dd9f0e560e29dc86fba5f5d4fa5e72cda5cefb16slive
181e56d8b348d301d615ccf5465ae600fee2867berikabele# Use the installed version of R, not the one in the build area.
181e56d8b348d301d615ccf5465ae600fee2867berikabele# These definitions override those found in .../test/Makefile.
181e56d8b348d301d615ccf5465ae600fee2867berikabeleCOMPONENT_SYSTEM_TEST_ARGS += R="LANGUAGE=en LC_ALL=C SRCDIR=$(BUILD_DIR_64)/tests R_DEFAULT_PACKAGES= $(USRBINDIR)/R --vanilla"
181e56d8b348d301d615ccf5465ae600fee2867berikabeleCOMPONENT_SYSTEM_TEST_ARGS += R2="R_DEFAULT_PACKAGES= $(USRBINDIR)/R --vanilla"
181e56d8b348d301d615ccf5465ae600fee2867berikabeleCOMPONENT_SYSTEM_TEST_ARGS += R3="$(USRBINDIR)/R CMD check"
181e56d8b348d301d615ccf5465ae600fee2867berikabeleCOMPONENT_SYSTEM_TEST_ARGS += RDIFF="$(USRBINDIR)/R CMD Rdiff"
181e56d8b348d301d615ccf5465ae600fee2867berikabeleCOMPONENT_SYSTEM_TEST_ARGS += RDCONV="LC_CTYPE=C $(USRBINDIR)/R CMD Rdconv"
181e56d8b348d301d615ccf5465ae600fee2867berikabele
181e56d8b348d301d615ccf5465ae600fee2867berikabeleCOMPONENT_TEST_ARGS = -k -i
181e56d8b348d301d615ccf5465ae600fee2867berikabeleCOMPONENT_SYSTEM_TEST_ARGS += -k -i
181e56d8b348d301d615ccf5465ae600fee2867berikabele
dd9f0e560e29dc86fba5f5d4fa5e72cda5cefb16sliveREQUIRED_PACKAGES += image/library/libjpeg
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenREQUIRED_PACKAGES += image/library/libpng
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenREQUIRED_PACKAGES += image/library/libtiff
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenREQUIRED_PACKAGES += library/desktop/cairo
2684d5de7d8996ac96df3a37e8f8a49c502f26dfjslREQUIRED_PACKAGES += library/desktop/pango
dd9f0e560e29dc86fba5f5d4fa5e72cda5cefb16sliveREQUIRED_PACKAGES += library/glib2
181e56d8b348d301d615ccf5465ae600fee2867berikabeleREQUIRED_PACKAGES += library/icu
181e56d8b348d301d615ccf5465ae600fee2867berikabeleREQUIRED_PACKAGES += library/pcre
181e56d8b348d301d615ccf5465ae600fee2867berikabeleREQUIRED_PACKAGES += library/readline
181e56d8b348d301d615ccf5465ae600fee2867berikabeleREQUIRED_PACKAGES += library/zlib
181e56d8b348d301d615ccf5465ae600fee2867berikabeleREQUIRED_PACKAGES += shell/bash
181e56d8b348d301d615ccf5465ae600fee2867berikabeleREQUIRED_PACKAGES += system/library/fortran-runtime
181e56d8b348d301d615ccf5465ae600fee2867berikabeleREQUIRED_PACKAGES += system/library/iconv
181e56d8b348d301d615ccf5465ae600fee2867berikabeleREQUIRED_PACKAGES += system/library/math
181e56d8b348d301d615ccf5465ae600fee2867berikabeleREQUIRED_PACKAGES += system/library/sunperf
181e56d8b348d301d615ccf5465ae600fee2867berikabeleREQUIRED_PACKAGES += web/curl
181e56d8b348d301d615ccf5465ae600fee2867berikabeleREQUIRED_PACKAGES += x11/library/libx11
181e56d8b348d301d615ccf5465ae600fee2867berikabeleREQUIRED_PACKAGES += x11/library/libxmu
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowenREQUIRED_PACKAGES += x11/library/toolkit/libxt
57d0156f7bbd9ea3a72342cf9912aba61d118702rbowen