4136N/A#
4136N/A# CDDL HEADER START
4136N/A#
4136N/A# The contents of this file are subject to the terms of the
4136N/A# Common Development and Distribution License (the "License").
4136N/A# You may not use this file except in compliance with the License.
4136N/A#
4136N/A# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4136N/A# or http://www.opensolaris.org/os/licensing.
4136N/A# See the License for the specific language governing permissions
4136N/A# and limitations under the License.
4136N/A#
4136N/A# When distributing Covered Code, include this CDDL HEADER in each
4136N/A# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4136N/A# If applicable, add the following below this CDDL HEADER, with the
4136N/A# fields enclosed by brackets "[]" replaced with your own identifying
4136N/A# information: Portions Copyright [yyyy] [name of copyright owner]
4136N/A#
4136N/A# CDDL HEADER END
4136N/A#
5481N/A# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
4136N/A#
4136N/A
4136N/Ainclude ../../make-rules/shared-macros.mk
4136N/A
4136N/ACOMPONENT_NAME= gsl
4136N/ACOMPONENT_VERSION= 1.16
4136N/ACOMPONENT_PROJECT_URL= http://www.gnu.org/software/gsl/
4136N/ACOMPONENT_SRC= $(COMPONENT_NAME)-$(COMPONENT_VERSION)
4136N/ACOMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.gz
4136N/ACOMPONENT_ARCHIVE_HASH= \
4136N/A sha256:73bc2f51b90d2a780e6d266d43e487b3dbd78945dd0b04b14ca5980fe28d2f53
4136N/ACOMPONENT_ARCHIVE_URL= http://ftp.gnu.org/gnu/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
4136N/ACOMPONENT_BUGDB= library/libgsl
4136N/A
4136N/ATPNO= 21884
4136N/A
4136N/Ainclude $(WS_MAKE_RULES)/prep.mk
4561N/A
4561N/A# requires Studio sunperf library integrated into S11.3 and later
4561N/Aifeq ($(BUILD_TYPE), evaluation)
4561N/ABUILD_32_and_64=
4561N/AINSTALL_32_and_64=
4561N/APUBLISH_STAMP=
4561N/Aendif
4561N/A
4136N/Ainclude $(WS_MAKE_RULES)/configure.mk
4136N/Ainclude $(WS_MAKE_RULES)/ips.mk
4136N/A
5481N/A# NOTE:
5481N/A# The libgsl package on Solaris is getting GSL CBLAS routines from
5481N/A# libsunperf.so. Programs wishing to use this functionality should use the
5481N/A# /usr/include/sunperf.h header file for the associated definitions and
5481N/A# function prototypes and link against -lsunperf.
5481N/A#
5481N/A# To retain compatibility with libgsl on other platforms, and to require
5481N/A# no changes to FOSS software being ported to Solaris, the libgsl package
5481N/A# manifest will also include the /usr/include/gsl/gsl_cblas.h header file
5481N/A# and provide links from /usr/lib/libgslcblas.so and
5481N/A# /usr/lib/$(MACH64)/libgslcblas.so to their equivalent libsunperf.so
5481N/A# library files.
5481N/A
4175N/A# By default, tests in each GSL sub-directory are linked statically against
4175N/A# a set of .la files. We don't deliver those in the GSL package, so we
4175N/A# adjust all the tests to link against the dynamic GSL library instead.
4175N/ACOMPONENT_POST_UNPACK_ACTION = \
4175N/A (cd $(COMPONENT_SRC); \
4175N/A for f in `ls */Makefile.am` ; do \
4175N/A $(GSED) -i -e \
4175N/A 's|^test_LDADD.*$$|test_LDFLAGS = -L`pwd`/../.libs/ -R`pwd`/../.libs/\ntest_LDADD = -lgsl|' \
4175N/A $$f ; \
4175N/A done)
4175N/A
4175N/A# Recreate configure and top-level Makefile to pickup libsunperf changes.
4136N/ACOMPONENT_PREP_ACTION = \
4136N/A (cd $(@D) ; ACLOCAL=aclocal-1.11 AUTOMAKE=automake-1.11 autoreconf -f)
4136N/A
4136N/ALDFLAGS += $(CC_BITS)
4136N/ALDFLAGS += $(studio_PIC)
4136N/ALDFLAGS += $(studio_OPT)
4136N/ALDFLAGS += $(LD_Z_TEXT)
4136N/ALDFLAGS += $(LD_Z_DEFS)
4136N/ALDFLAGS += $(LD_DEF_LIBS)
4136N/A
4136N/ASTUDIO_LIBS_PATH.32 = /usr/lib/studio
4136N/ASTUDIO_LIBS_PATH.64 = /usr/lib/studio/64
4136N/A
4136N/ALDFLAGS += -L$(STUDIO_LIBS_PATH.$(BITS)) -R$(STUDIO_LIBS_PATH.$(BITS)) \
4136N/A -lsunperf -lfsu -lmtsk -lpicl -lkstat
4136N/A
4136N/ACONFIGURE_ENV += CFLAGS="$(CFLAGS)"
4136N/ACONFIGURE_ENV += LDFLAGS="$(LDFLAGS)"
4136N/A
4136N/ACOMPONENT_BUILD_ARGS += CFLAGS="$(CFLAGS)"
4136N/ACOMPONENT_BUILD_ARGS += LDFLAGS="$(LDFLAGS)"
4136N/A
4136N/ACC += $(CC_BITS)
4136N/A
4136N/ACOMPONENT_TEST_ARGS = -k -i
4136N/A
4136N/A# Master test results are different not only between 32-bit and 64-bit, but
4136N/A# also between x86 and SPARC (different # of tests run).
4136N/ACOMPONENT_TEST_MASTER = \
4136N/A $(COMPONENT_TEST_RESULTS_DIR)/results-$(MACH)-$(BITS).master
4136N/A
4136N/ACOMPONENT_TEST_TRANSFORMS += \
4136N/A '-e "s|^.*$(CC).*$$|XXX_CC_XXX|g" ' \
4136N/A '-e "s|^.*source=.*libtool=no.*$$|XXX_CC_XXX|g" ' \
4136N/A '-e "s|^.*DEPDIR=.deps.*$$|XXX_CC_XXX|g" ' \
4136N/A '-e "/^XXX_CC_XXX$$/d" '
4136N/A
4136N/A# Needed for "gmake test" to work successfully.
4136N/A# If SHELLOPTS is exported (as it is by the userland makefiles),
4136N/A# then all shell options get exported to child invocations of bash,
4136N/A# which results in test failures due to nounset and xtrace being
4136N/A# set unexpectedly, and errors such as "$1: unbound variable" and
4136N/A# diffs failing due to script tracing in output files.
4136N/Aunexport SHELLOPTS
4136N/A
4136N/AASLR_MODE = $(ASLR_ENABLE)
4136N/A
4136N/Aconfigure: $(CONFIGURE_32_and_64)
4136N/A
4136N/Abuild: $(BUILD_32_and_64)
4136N/A
4136N/Ainstall: $(INSTALL_32_and_64)
4136N/A
4175N/A# There is a known problem in libsunperf that is causing a GSL test failure
4175N/A# in Solaris 11.3 with Studio 12.1 just on the x86 platform:
4175N/A# linalg: FAIL: LQ_update m(5,3) [88] (32-bit)
4175N/A# The problem still exists on Solaris 12 with Studio 12.4 for which:
4175N/A# 20914954 cblas_gemm differences between x86 and sparcv7
4175N/A# has been filed.
4136N/Atest: $(TEST_32_and_64)
4136N/A
4136N/AREQUIRED_PACKAGES += shell/ksh93
4136N/AREQUIRED_PACKAGES += system/library
4136N/AREQUIRED_PACKAGES += system/library/math
4136N/AREQUIRED_PACKAGES += system/library/openmp
4136N/AREQUIRED_PACKAGES += system/library/sunperf