Makefile revision 6921
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap#
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap# CDDL HEADER START
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap#
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap# The contents of this file are subject to the terms of the
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap# Common Development and Distribution License (the "License").
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap# You may not use this file except in compliance with the License.
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap#
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap# or http://www.opensolaris.org/os/licensing.
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap# See the License for the specific language governing permissions
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap# and limitations under the License.
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap#
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap# When distributing Covered Code, include this CDDL HEADER in each
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap# If applicable, add the following below this CDDL HEADER, with the
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap# fields enclosed by brackets "[]" replaced with your own identifying
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap# information: Portions Copyright [yyyy] [name of copyright owner]
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap#
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap# CDDL HEADER END
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap#
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
bfed486ad8de8b8ebc6345a8e10accae08bf2f45Ali Bahrami#
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlapexport PARFAIT_BUILD=no
bfed486ad8de8b8ebc6345a8e10accae08bf2f45Ali Bahrami
bfed486ad8de8b8ebc6345a8e10accae08bf2f45Ali BahramiBUILD_BITS = 64_and_32
bfed486ad8de8b8ebc6345a8e10accae08bf2f45Ali BahramiCOMPILER = gcc
bfed486ad8de8b8ebc6345a8e10accae08bf2f45Ali Bahrami
bfed486ad8de8b8ebc6345a8e10accae08bf2f45Ali Bahramiinclude ../../make-rules/shared-macros.mk
bfed486ad8de8b8ebc6345a8e10accae08bf2f45Ali Bahrami
bfed486ad8de8b8ebc6345a8e10accae08bf2f45Ali Bahrami# We are using GCC 4.9 with LLVM, use it here too for the time being.
bfed486ad8de8b8ebc6345a8e10accae08bf2f45Ali Bahrami# Switch to GCC 5.3 if/when LLVM can.
bfed486ad8de8b8ebc6345a8e10accae08bf2f45Ali BahramiGCC_ROOT=/usr/gcc/4.9
bfed486ad8de8b8ebc6345a8e10accae08bf2f45Ali Bahrami
bfed486ad8de8b8ebc6345a8e10accae08bf2f45Ali BahramiCOMPONENT_NAME = libomp
bfed486ad8de8b8ebc6345a8e10accae08bf2f45Ali BahramiCOMPONENT_VERSION = 20151009
bfed486ad8de8b8ebc6345a8e10accae08bf2f45Ali BahramiCOMPONENT_SRC = $(COMPONENT_NAME)_$(COMPONENT_VERSION)
bfed486ad8de8b8ebc6345a8e10accae08bf2f45Ali BahramiCOMPONENT_ARCHIVE = $(COMPONENT_SRC)_oss.tgz
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapCOMPONENT_ARCHIVE_HASH= \
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap sha256:d4254420d0081c6844eb05237bab5e731e669a429a9c1c87e2e0221ccf0de6ac
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapCOMPONENT_ARCHIVE_URL = http://www.openmprtl.org/sites/default/files/$(COMPONENT_ARCHIVE)
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapCOMPONENT_PROJECT_URL = http://www.openmprtl.org/
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapCOMPONENT_BUGDB = library/intel-openmp
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapTPNO = 27154
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapBUILD_STYLE = justmake
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap# Uses an ON header file with S12-only features.
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlapifeq ($(BUILD_TYPE), evaluation)
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapBUILD_32_and_64=
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapINSTALL_32_and_64=
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapPUBLISH_STAMP=
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlapendif
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlapinclude $(WS_MAKE_RULES)/common.mk
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlapexport PATH=/usr/gnu/bin:$(GCC_ROOT)/bin:/usr/bin:/usr/perl5/5.22/bin
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapPATCH_LEVEL := 0
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapDEBUG_BUILD := 0
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap# This component uses cmake to generate Makefiles and thus does not
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap# run any configure script
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapCMAKE = /usr/bin/cmake
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapCMAKE_PREFIX = /usr
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapCMAKE_BINDIR.32 = bin/$(MACH32)
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapCMAKE_BINDIR.64 = bin
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapCMAKE_LIBDIR.32 = lib
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapCMAKE_LIBDIR.64 = lib/$(MACH64)
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapISA_CFLAGS.i386 = -fno-omit-frame-pointer -march=opteron -mtune=opteron
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapISA_CFLAGS.sparc = -mptr$(BITS) -mtune=ultrasparc3 -mcpu=ultrasparc3
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapISA_CFLAGS.sparc += -mvis2 -mhard-float -mno-unaligned-doubles
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapISA_CFLAGS.sparc += -mimpure-text
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapISA_CFLAGS = $(ISA_CFLAGS.$(MACH))
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapOMP_STATS = off
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapOFLAG = -O2
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapGFLAG =
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter DunlapDFLAG = -DNDEBUG
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlapifeq ($(DEBUG_BUILD),1)
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap OMP_STATS = on
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap OFLAG = -O0
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap GFLAG = -g3
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap DFLAG =
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlapendif
fcc214c383d20beb968b623b83d851672e174702Charles Ting
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap# Because of the weird way in which libiomp wants to build itself,
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap# we can't pass a -std=<N> on compile line. This is done internally
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap# by the cmake configuration files.
a6d42e7d71324c5193c3b94d57d96ba2925d52e1Peter Dunlap# The Userland default flags for GCC are broken.
CFLAGS = -m$(BITS) $(OFLAG) $(GFLAG) $(ISA_CFLAGS) -Wall
CFLAGS += -fkeep-static-consts -fno-strict-aliasing
CXXFLAGS = -m$(BITS) $(OFLAG) $(GFLAG) $(ISA_CFLAGS) -Wall
CXXFLAGS += -fkeep-static-consts -fno-strict-aliasing
CXXFLAGS += -Wl,-z -Wl,relax=comdat
CPPFLAGS = -D__EXTENSIONS__=1 -DKMP_GOMP_COMPAT=1
CPPFLAGS += -DKMP_TDATA_GTID=1
LDFLAGS += -z ignore -z relax=comdat
LIBIOMP_RUNPATH_32 = /usr/gcc/4.9/lib
LIBIOMP_RUNPATH_64 = /usr/gcc/4.9/lib/$(MACH64)
LIBIOMP_RUNPATH = $(LIBIOMP_RUNPATH_$(BITS))
CFLAGS += -Wl,-R -Wl,$(LIBIOMP_RUNPATH)
CXXFLAGS += -Wl,-R -Wl,$(LIBIOMP_RUNPATH)
LDFLAGS += -R$(LIBIOMP_RUNPATH)
LD_OPTIONS = -z ignore -z relax=comdat
CMAKE_OPTIONS = -DCMAKE_C_COMPILER=$(CC)
CMAKE_OPTIONS += -DCMAKE_CXX_COMPILER=$(CXX)
CMAKE_OPTIONS += -DCFLAGS="$(CPPFLAGS) $(CFLAGS)"
CMAKE_OPTIONS += -DCXXFLAGS="$(CPPFLAGS) $(CXXFLAGS)"
CMAKE_OPTIONS += -DLDFLAGS="$(LDFLAGS)"
CMAKE_OPTIONS += -DCMAKE_INSTALL_PREFIX=$(CMAKE_PREFIX)
CMAKE_OPTIONS += -DINSTALL_LIBDIR:PATH=$(CMAKE_LIBDIR)
CMAKE_OPTIONS += -DCMAKE_INSTALL_LIBDIR:PATH=$(CMAKE_LIBDIR)
CMAKE_OPTIONS += -DCMAKE_MAKE_PROGRAM=$(GMAKE)
CMAKE_OPTIONS += -DCMAKE_SHARED_LIBRARY_SUFFIX=".so.5"
CMAKE_OPTIONS += -DCMAKE_C_FLAGS_RELEASE:STRING="$(OFLAG) $(GFLAG) $(DFLAG)"
CMAKE_OPTIONS += -DCMAKE_CXX_FLAGS_RELEASE:STRING="$(OFLAG) $(GFLAG) $(DFLAG)"
CMAKE_OPTIONS += -DCMAKE_VERBOSE_MAKEFILE=1
CMAKE_OPTIONS += -DCOMPILER_SUPPORTS_QUAD_PRECISION=true
CMAKE_OPTIONS += -DDEBUG_BUILD=false
CMAKE_OPTIONS += -DLIBOMP_OMPT_SUPPORT=on
CMAKE_OPTIONS += -DLIBOMP_USE_ADAPTIVE_LOCKS=true
CMAKE_OPTIONS += -DLIBOMP_STATS=$(OMP_STATS)
CMAKE_OPTIONS += -DLIBOMP_FORTRAN_MODULES=true
CMAKE_OPTIONS += -DLIBOMP_VERSION=5
CMAKE_OPTIONS += -DLIBOMP_OMP_VERSION=41
CMAKE_OPTIONS += -DCMAKE_BUILD_TYPE=release
COMPONENT_BUILD_ENV += LD_OPTIONS="$(LD_OPTIONS)"
# THe tarball extracts to 'libomp_oss' which doesn't match
# the name constructed in $(COMPONENT_SRC). We fix that here.
COMPONENT_POST_UNPACK_ACTION = \
$(MV) libomp_oss $(COMPONENT_SRC)
COMPONENT_PRE_BUILD_ACTION += cd $(@D);
COMPONENT_PRE_BUILD_ACTION += echo Running cmake with $(CMAKE_OPTIONS) ;
COMPONENT_PRE_BUILD_ACTION += /usr/bin/env - $(COMPONENT_BUILD_ENV) \
$(CMAKE) $(CMAKE_OPTIONS) . ;
build: $(BUILD_32_and_64)
install: $(INSTALL_32_and_64)
# There are no tests for this version of the Intel OpenMP Library
# OpenMP tests will be integrated in ${WS_TOP}/components/bots.
test: $(NO_TESTS)
system-test: $(NO_TESTS)
REQUIRED_PACKAGES += developer/build/cmake
REQUIRED_PACKAGES += developer/gcc-4/gcc-common-49
REQUIRED_PACKAGES += system/core-os
REQUIRED_PACKAGES += system/library/gcc/gcc-runtime-49
REQUIRED_PACKAGES += system/library/gcc/gcc-c++-runtime-49
REQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime-49
REQUIRED_PACKAGES += system/library/math