6622N/A#
6622N/A# CDDL HEADER START
6622N/A#
6622N/A# The contents of this file are subject to the terms of the
6622N/A# Common Development and Distribution License (the "License").
6622N/A# You may not use this file except in compliance with the License.
6622N/A#
6622N/A# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
6622N/A# or http://www.opensolaris.org/os/licensing.
6622N/A# See the License for the specific language governing permissions
6622N/A# and limitations under the License.
6622N/A#
6622N/A# When distributing Covered Code, include this CDDL HEADER in each
6622N/A# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
6622N/A# If applicable, add the following below this CDDL HEADER, with the
6622N/A# fields enclosed by brackets "[]" replaced with your own identifying
6622N/A# information: Portions Copyright [yyyy] [name of copyright owner]
6622N/A#
6622N/A# CDDL HEADER END
6622N/A#
6622N/A# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
6622N/A#
6622N/A
6622N/Aexport PARFAIT_BUILD=no
6622N/A
6622N/ABUILD_BITS = 64_and_32
6622N/ACOMPILER = gcc
6622N/A
6622N/Ainclude ../../make-rules/shared-macros.mk
6622N/A
6921N/A# We are using GCC 4.9 with LLVM, use it here too for the time being.
6921N/A# Switch to GCC 5.3 if/when LLVM can.
6921N/AGCC_ROOT=/usr/gcc/4.9
6921N/A
6622N/ACOMPONENT_NAME = libomp
6622N/ACOMPONENT_VERSION = 20151009
6622N/ACOMPONENT_SRC = $(COMPONENT_NAME)_$(COMPONENT_VERSION)
6622N/ACOMPONENT_ARCHIVE = $(COMPONENT_SRC)_oss.tgz
6622N/ACOMPONENT_ARCHIVE_HASH= \
6622N/A sha256:d4254420d0081c6844eb05237bab5e731e669a429a9c1c87e2e0221ccf0de6ac
6622N/ACOMPONENT_ARCHIVE_URL = http://www.openmprtl.org/sites/default/files/$(COMPONENT_ARCHIVE)
6622N/ACOMPONENT_PROJECT_URL = http://www.openmprtl.org/
6622N/ACOMPONENT_BUGDB = library/intel-openmp
6622N/A
6622N/ATPNO = 27154
6622N/A
6622N/ABUILD_STYLE = justmake
6622N/A
6638N/A# Uses an ON header file with S12-only features.
6638N/Aifeq ($(BUILD_TYPE), evaluation)
6638N/ABUILD_32_and_64=
6638N/AINSTALL_32_and_64=
6638N/APUBLISH_STAMP=
6638N/Aendif
6638N/A
6622N/Ainclude $(WS_MAKE_RULES)/common.mk
6622N/A
6921N/Aexport PATH=/usr/gnu/bin:$(GCC_ROOT)/bin:/usr/bin:/usr/perl5/5.22/bin
6622N/A
6622N/APATCH_LEVEL := 0
6622N/ADEBUG_BUILD := 0
6622N/A
6622N/A# This component uses cmake to generate Makefiles and thus does not
6622N/A# run any configure script
6622N/ACMAKE = /usr/bin/cmake
6622N/ACMAKE_PREFIX = /usr
6622N/A
6622N/ACMAKE_BINDIR.32 = bin/$(MACH32)
6622N/ACMAKE_BINDIR.64 = bin
6622N/ACMAKE_LIBDIR.32 = lib
6622N/ACMAKE_LIBDIR.64 = lib/$(MACH64)
6622N/A
6622N/AISA_CFLAGS.i386 = -fno-omit-frame-pointer -march=opteron -mtune=opteron
6622N/AISA_CFLAGS.sparc = -mptr$(BITS) -mtune=ultrasparc3 -mcpu=ultrasparc3
6622N/AISA_CFLAGS.sparc += -mvis2 -mhard-float -mno-unaligned-doubles
6622N/AISA_CFLAGS.sparc += -mimpure-text
6622N/AISA_CFLAGS = $(ISA_CFLAGS.$(MACH))
6622N/A
6622N/AOMP_STATS = off
6622N/AOFLAG = -O2
6622N/AGFLAG =
6622N/ADFLAG = -DNDEBUG
6622N/A
6622N/Aifeq ($(DEBUG_BUILD),1)
6622N/A OMP_STATS = on
6622N/A OFLAG = -O0
6622N/A GFLAG = -g3
6622N/A DFLAG =
6622N/Aendif
6622N/A
6622N/A# Because of the weird way in which libiomp wants to build itself,
6622N/A# we can't pass a -std=<N> on compile line. This is done internally
6622N/A# by the cmake configuration files.
6622N/A# The Userland default flags for GCC are broken.
6622N/ACFLAGS = -m$(BITS) $(OFLAG) $(GFLAG) $(ISA_CFLAGS) -Wall
6622N/ACFLAGS += -fkeep-static-consts -fno-strict-aliasing
6622N/A
6622N/ACXXFLAGS = -m$(BITS) $(OFLAG) $(GFLAG) $(ISA_CFLAGS) -Wall
6622N/ACXXFLAGS += -fkeep-static-consts -fno-strict-aliasing
6622N/ACXXFLAGS += -Wl,-z -Wl,relax=comdat
6622N/A
6622N/ACPPFLAGS = -D__EXTENSIONS__=1 -DKMP_GOMP_COMPAT=1
6622N/ACPPFLAGS += -DKMP_TDATA_GTID=1
6622N/ALDFLAGS += -z ignore -z relax=comdat
6622N/A
6622N/ALIBIOMP_RUNPATH_32 = /usr/gcc/4.9/lib
6622N/ALIBIOMP_RUNPATH_64 = /usr/gcc/4.9/lib/$(MACH64)
6622N/ALIBIOMP_RUNPATH = $(LIBIOMP_RUNPATH_$(BITS))
6622N/A
6622N/ACFLAGS += -Wl,-R -Wl,$(LIBIOMP_RUNPATH)
6622N/ACXXFLAGS += -Wl,-R -Wl,$(LIBIOMP_RUNPATH)
6622N/ALDFLAGS += -R$(LIBIOMP_RUNPATH)
6622N/ALD_OPTIONS = -z ignore -z relax=comdat
6622N/A
6622N/ACMAKE_OPTIONS = -DCMAKE_C_COMPILER=$(CC)
6622N/ACMAKE_OPTIONS += -DCMAKE_CXX_COMPILER=$(CXX)
6622N/ACMAKE_OPTIONS += -DCFLAGS="$(CPPFLAGS) $(CFLAGS)"
6622N/ACMAKE_OPTIONS += -DCXXFLAGS="$(CPPFLAGS) $(CXXFLAGS)"
6622N/ACMAKE_OPTIONS += -DLDFLAGS="$(LDFLAGS)"
6622N/ACMAKE_OPTIONS += -DCMAKE_INSTALL_PREFIX=$(CMAKE_PREFIX)
6622N/ACMAKE_OPTIONS += -DINSTALL_LIBDIR:PATH=$(CMAKE_LIBDIR)
6622N/ACMAKE_OPTIONS += -DCMAKE_INSTALL_LIBDIR:PATH=$(CMAKE_LIBDIR)
6622N/ACMAKE_OPTIONS += -DCMAKE_MAKE_PROGRAM=$(GMAKE)
6622N/ACMAKE_OPTIONS += -DCMAKE_SHARED_LIBRARY_SUFFIX=".so.5"
6622N/A
6622N/ACMAKE_OPTIONS += -DCMAKE_C_FLAGS_RELEASE:STRING="$(OFLAG) $(GFLAG) $(DFLAG)"
6622N/ACMAKE_OPTIONS += -DCMAKE_CXX_FLAGS_RELEASE:STRING="$(OFLAG) $(GFLAG) $(DFLAG)"
6622N/A
6622N/ACMAKE_OPTIONS += -DCMAKE_VERBOSE_MAKEFILE=1
6622N/ACMAKE_OPTIONS += -DCOMPILER_SUPPORTS_QUAD_PRECISION=true
6622N/ACMAKE_OPTIONS += -DDEBUG_BUILD=false
6622N/ACMAKE_OPTIONS += -DLIBOMP_OMPT_SUPPORT=on
6622N/A
6622N/ACMAKE_OPTIONS += -DLIBOMP_USE_ADAPTIVE_LOCKS=true
6622N/ACMAKE_OPTIONS += -DLIBOMP_STATS=$(OMP_STATS)
6622N/ACMAKE_OPTIONS += -DLIBOMP_FORTRAN_MODULES=true
6622N/ACMAKE_OPTIONS += -DLIBOMP_VERSION=5
6622N/ACMAKE_OPTIONS += -DLIBOMP_OMP_VERSION=41
6622N/ACMAKE_OPTIONS += -DCMAKE_BUILD_TYPE=release
6622N/A
6622N/ACOMPONENT_BUILD_ENV += LD_OPTIONS="$(LD_OPTIONS)"
6622N/A
6622N/A# THe tarball extracts to 'libomp_oss' which doesn't match
6622N/A# the name constructed in $(COMPONENT_SRC). We fix that here.
6622N/ACOMPONENT_POST_UNPACK_ACTION = \
6622N/A $(MV) libomp_oss $(COMPONENT_SRC)
6622N/A
6622N/ACOMPONENT_PRE_BUILD_ACTION += cd $(@D);
6622N/ACOMPONENT_PRE_BUILD_ACTION += echo Running cmake with $(CMAKE_OPTIONS) ;
6622N/ACOMPONENT_PRE_BUILD_ACTION += /usr/bin/env - $(COMPONENT_BUILD_ENV) \
6622N/A $(CMAKE) $(CMAKE_OPTIONS) . ;
6622N/A
6622N/Abuild: $(BUILD_32_and_64)
6622N/A
6622N/Ainstall: $(INSTALL_32_and_64)
6622N/A
6622N/A# There are no tests for this version of the Intel OpenMP Library
6622N/A# OpenMP tests will be integrated in ${WS_TOP}/components/bots.
6622N/Atest: $(NO_TESTS)
6622N/A
6622N/Asystem-test: $(NO_TESTS)
6622N/A
6622N/AREQUIRED_PACKAGES += developer/build/cmake
6622N/AREQUIRED_PACKAGES += developer/gcc-4/gcc-common-49
6622N/AREQUIRED_PACKAGES += system/core-os
6622N/AREQUIRED_PACKAGES += system/library/gcc/gcc-runtime-49
6622N/AREQUIRED_PACKAGES += system/library/gcc/gcc-c++-runtime-49
6622N/AREQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime-49
6622N/AREQUIRED_PACKAGES += system/library/math