Makefile revision 5450
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
1fdd2470b625a58b57d0b155e6caf8c4fc0afe8aAutomatic Updater# CDDL HEADER START
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# The contents of this file are subject to the terms of the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Common Development and Distribution License (the "License").
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# You may not use this file except in compliance with the License.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# or http://www.opensolaris.org/os/licensing.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# See the License for the specific language governing permissions
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# and limitations under the License.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# When distributing Covered Code, include this CDDL HEADER in each
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# If applicable, add the following below this CDDL HEADER, with the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# fields enclosed by brackets "[]" replaced with your own identifying
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater# information: Portions Copyright [yyyy] [name of copyright owner]
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# CDDL HEADER END
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininclude ../../make-rules/shared-macros.mk
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_NAME= R
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_VERSION= 3.2.3
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_PROJECT_URL= http://www.r-project.org/
71c66a876ecca77923638d3f94cc0783152b2f03Mark AndrewsCOMPONENT_SRC= $(COMPONENT_NAME)-$(COMPONENT_VERSION)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.gz
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_ARCHIVE_HASH= \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein sha256:b93b7d878138279234160f007cb9b7f81b8a72c012a15566e9ec5395cfd9b6c1
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_ARCHIVE_URL= http://cran.mtu.edu/src/base/R-3/$(COMPONENT_ARCHIVE)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_BUGDB= utility/r
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinTPNO= 26540
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininclude $(WS_MAKE_RULES)/prep.mk
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininclude $(WS_MAKE_RULES)/configure.mk
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininclude $(WS_MAKE_RULES)/ips.mk
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
71c66a876ecca77923638d3f94cc0783152b2f03Mark AndrewsCOMPONENT_PRE_CONFIGURE_ACTION = \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ($(CLONEY) $(SOURCE_DIR) $(@D))
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Get rid of compiler path set in RUNPATH
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinLDFLAGS += $(studio_NORUNPATH)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinLDFLAGS += $(CC_BITS)
cbf7f1435f332b31f51a98611ccbfcd07c42c032Automatic Updater
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinLDFLAGS += $(studio_PIC)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinLDFLAGS += $(LD_DEF_LIBS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
cbf7f1435f332b31f51a98611ccbfcd07c42c032Automatic UpdaterSTUDIO_LIBS_PATH = /usr/lib/studio/64
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinR_LIBS_PATH = /usr/lib/$(MACH64)/R/lib
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinJAVA_LIBS_PATH = $(JAVA8_HOME)/jre/lib/$(MACH64)/server
cbf7f1435f332b31f51a98611ccbfcd07c42c032Automatic Updater
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinLDFLAGS += -L$(STUDIO_LIBS_PATH) -R$(STUDIO_LIBS_PATH) \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein -lsunperf -lfsu -lmtsk -lpicl -lkstat
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater
ac93437301f55ed69bf85883a497a75598c628f9Automatic UpdaterF95 = $(SPRO_VROOT)/bin/f95
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
ac93437301f55ed69bf85883a497a75598c628f9Automatic UpdaterCONFIGURE_ENV += F77="$(F95) $(CC_BITS)"
ac93437301f55ed69bf85883a497a75598c628f9Automatic UpdaterCONFIGURE_ENV += FC="$(F95) $(CC_BITS)"
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater
ac93437301f55ed69bf85883a497a75598c628f9Automatic UpdaterCONFIGURE_ENV += CPICFLAGS="$(studio_PIC)"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCONFIGURE_ENV += CFLAGS="-xO3 -xc99 -xlibmieee $(CC_BITS)"
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater# Needed to successfully compile R packages using C++ code.
ac93437301f55ed69bf85883a497a75598c628f9Automatic UpdaterCONFIGURE_ENV += CXXFLAGS="-xO3 $(CC_BITS) -std=c++03"
ac93437301f55ed69bf85883a497a75598c628f9Automatic UpdaterCONFIGURE_ENV += CXX1FLAGS="-xO3 $(CC_BITS) -std=c++11"
ac93437301f55ed69bf85883a497a75598c628f9Automatic UpdaterCONFIGURE_ENV += FPICFLAGS="$(studio_PIC)"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCONFIGURE_ENV += FFLAGS="-xO3 $(CC_BITS)"
ac93437301f55ed69bf85883a497a75598c628f9Automatic UpdaterCONFIGURE_ENV += FCFLAGS="-xO3 $(CC_BITS)"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCONFIGURE_ENV += FCLIBS="-lsunperf -lfsu -lsunmath"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCONFIGURE_ENV += FLIBS="-lsunperf -lfsu -lsunmath"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCONFIGURE_ENV += LDFLAGS="$(LDFLAGS) -L$(R_LIBS_PATH) -R$(R_LIBS_PATH)"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Needed so that R packages using C++ code can link against the standard
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# C++ libraries.
a1ad6695ed6f988406cf155aa26376f84f73bcb9Automatic UpdaterCONFIGURE_ENV += SHLIB_CXXLDFLAGS="-G -lstdc++ -lgcc_s -lCrunG3 -lrt -lm -lc"
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater
a1ad6695ed6f988406cf155aa26376f84f73bcb9Automatic Updater# Set the various Java variables otherwise it auto-detects the 32-bit ones.
ac93437301f55ed69bf85883a497a75598c628f9Automatic UpdaterCONFIGURE_ENV += JAVA_CPPFLAGS="-I$(JAVA8_HOME)/jre/../include -I$(JAVA8_HOME)/jre/../include/solaris"
ac93437301f55ed69bf85883a497a75598c628f9Automatic UpdaterCONFIGURE_ENV += JAVA_LIBS="-L$(JAVA_LIBS_PATH) -R$(JAVA_LIBS_PATH) -ljvm"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# From Brian Whitney:
ac93437301f55ed69bf85883a497a75598c628f9Automatic Updater# You need to define this option on SPARC, otherwise you will get quad
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# arithmetic on SPARC but not on x86. Really makes some R functions run
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# very slow on SPARC (COR path).
ac93437301f55ed69bf85883a497a75598c628f9Automatic UpdaterCONFIGURE_OPTIONS.i386 =
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCONFIGURE_OPTIONS.sparc = --disable-long-double
ac93437301f55ed69bf85883a497a75598c628f9Automatic UpdaterCONFIGURE_OPTIONS += $(CONFIGURE_OPTIONS.$(MACH))
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCONFIGURE_OPTIONS += --enable-R-shlib
ac93437301f55ed69bf85883a497a75598c628f9Automatic UpdaterCONFIGURE_OPTIONS += --with-blas='-lsunperf'
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCONFIGURE_OPTIONS += --with-ICU
ac93437301f55ed69bf85883a497a75598c628f9Automatic UpdaterCONFIGURE_OPTIONS += --with-lapack
ac93437301f55ed69bf85883a497a75598c628f9Automatic UpdaterCONFIGURE_OPTIONS += --with-recommended-packages
ac93437301f55ed69bf85883a497a75598c628f9Automatic UpdaterCONFIGURE_OPTIONS += --with-tcltk
7208386cd37a2092c70eddf80cf29519b16c4c80Mark AndrewsCONFIGURE_OPTIONS += --enable-prebuilt-html
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
507151045be68c671ffd4e2f37e17cdfa0376fc4Automatic UpdaterCOMPONENT_PRE_TEST_ACTION = \
507151045be68c671ffd4e2f37e17cdfa0376fc4Automatic Updater $(RM) $(BUILD_DIR_64)/tests/Examples/*.prev
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_PRE_SYSTEM_TEST_ACTION = \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) $(BUILD_DIR_64)/tests/Examples/*.prev
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews# Increase stack limit to allow the "infinite recursion" test to work.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_TEST_ENV_CMD = ulimit -Ss 32768 ; $(ENV)
71c66a876ecca77923638d3f94cc0783152b2f03Mark AndrewsCOMPONENT_SYSTEM_TEST_ENV_CMD = ulimit -Ss 32768 ; $(ENV)
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
71c66a876ecca77923638d3f94cc0783152b2f03Mark AndrewsCOMPONENT_TEST_TRANSFORMS += \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein '-n ' \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein '-e "/^Testing examples for package /p" ' \
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews '-e "/^running /p" ' \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein '-e "/^ expect some differences/p" ' \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein '-e "/comparing.*datetime.Rout/d" ' \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein '-e "/comparing.*reg-examples3.Rout/d" ' \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein '-e "/^ comparing /p" '
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinASLR_MODE = $(ASLR_ENABLE)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Use the installed version of R, not the one in the build area.
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews# These definitions override those found in .../test/Makefile.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_SYSTEM_TEST_ARGS += R="LANGUAGE=en LC_ALL=C SRCDIR=$(BUILD_DIR_64)/tests R_DEFAULT_PACKAGES= /usr/bin/R --vanilla"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_SYSTEM_TEST_ARGS += R2="R_DEFAULT_PACKAGES= /usr/bin/R --vanilla"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_SYSTEM_TEST_ARGS += R3="/usr/bin/R CMD check"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_SYSTEM_TEST_ARGS += RDIFF="/usr/bin/R CMD Rdiff"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_SYSTEM_TEST_ARGS += RDCONV="LC_CTYPE=C /usr/bin/R CMD Rdconv"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_TEST_ARGS = -k -i
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_SYSTEM_TEST_ARGS += -k -i
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinconfigure: $(CONFIGURE_64)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinbuild: $(BUILD_64)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininstall: $(INSTALL_64)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeintest: $(TEST_64)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Need to build the tests before use them.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinsystem-test: build $(SYSTEM_TEST_64)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinREQUIRED_PACKAGES += image/library/libjpeg
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinREQUIRED_PACKAGES += image/library/libpng
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinREQUIRED_PACKAGES += image/library/libtiff
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinREQUIRED_PACKAGES += library/desktop/cairo
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinREQUIRED_PACKAGES += library/desktop/pango
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinREQUIRED_PACKAGES += library/glib2
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinREQUIRED_PACKAGES += library/icu
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinREQUIRED_PACKAGES += library/pcre
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinREQUIRED_PACKAGES += library/readline
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinREQUIRED_PACKAGES += library/zlib
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinREQUIRED_PACKAGES += shell/bash
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinREQUIRED_PACKAGES += system/library
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinREQUIRED_PACKAGES += system/library/fortran-runtime
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinREQUIRED_PACKAGES += system/library/iconv
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinREQUIRED_PACKAGES += system/library/math
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinREQUIRED_PACKAGES += system/library/sunperf
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinREQUIRED_PACKAGES += web/curl
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinREQUIRED_PACKAGES += x11/library/libx11
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark AndrewsREQUIRED_PACKAGES += x11/library/libxmu
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark AndrewsREQUIRED_PACKAGES += x11/library/toolkit/libxt
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews