components/ilmbase/Makefile
author Rich Burridge <rich.burridge@oracle.com>
Tue, 02 May 2017 17:33:26 -0700
changeset 7964 d9801318ed3d
parent 7887 2143681d78e2
permissions -rw-r--r--
25981468 Build ilmbase and openexr with the GNU compilers

#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#

#
# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
#
BUILD_BITS= 64_and_32
COMPILER= gcc
include ../../make-rules/shared-macros.mk

COMPONENT_NAME=         ilmbase
COMPONENT_VERSION=      2.2.0
COMPONENT_PROJECT_URL=  http://www.openexr.com/
COMPONENT_ARCHIVE_HASH= \
    sha256:ecf815b60695555c1fbc73679e84c7c9902f4e8faa6e8000d2f905b8b86cedc7
COMPONENT_ARCHIVE_URL=  http://download.savannah.nongnu.org/releases/openexr/$(COMPONENT_ARCHIVE)
COMPONENT_BUGDB=	library/openexr
COMPONENT_ANITYA_ID=	13285

TPNO=			32620

include $(WS_MAKE_RULES)/common.mk

PATCH_LEVEL = 0

# All C++ code should be built with -std=c++11 from now on.
CXXFLAGS += -std=c++11

# To allow the 32-bit version of IexMath/IexMathFpu.cpp to compile as there is
# only a 64-bit definition of the typedef struct fpu { ... } fpregset_t;
# definition in /usr/include/sys/regset.h
CXXFLAGS += -U__i386__

# Needed to get the tests to work correctly. For more information see:
# https://github.com/openexr/openexr/issues/67
CXXFLAGS += -ffloat-store

# there seems to be no other way to enable large files support
CXXFLAGS += $(CPP_LARGEFILES)

CONFIGURE_OPTIONS  +=           --disable-static
CONFIGURE_OPTIONS  +=           --enable-threading
CONFIGURE_OPTIONS  +=           --enable-posix-sem
CONFIGURE_OPTIONS  +=           --with-pic
CONFIGURE_OPTIONS  +=           --enable-large-stack

COMPONENT_TEST_MASTER =	$(COMPONENT_TEST_RESULTS_DIR)/results-all.master
# Strip compilation lines from test output
COMPONENT_TEST_TRANSFORMS += \
	'-e "s|^.*$(CC).*$$|XXX_CC_XXX|g" ' \
	'-e "s|^.*$(CXX).*$$|XXX_CC_XXX|g" ' \
	'-e "s|^.*source=.*libtool=no.*$$|XXX_CC_XXX|g" ' \
	'-e "s|^.*DEPDIR=.deps.*$$|XXX_CC_XXX|g" ' \
	'-e "s|^config.status: .*$$|XXX_CC_XXX|g" ' \
	'-e "s|^mv -f .*$$|XXX_CC_XXX|g" ' \
	'-e "s|^.*matrices took .* clocks.*$$|XXX_CC_XXX|g" ' \
	'-e "s|^.*speed up.*$$|XXX_CC_XXX|g" ' \
	'-e "/is up to date/d"' \
	'-e "/Nothing to be done/d"' \
	'-e "/Leaving directory/d"' \
	'-e "/Entering directory/d"' \
	'-e "/^XXX_CC_XXX$$/d" '

REQUIRED_PACKAGES += system/library/gcc/gcc-c++-runtime
REQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime
REQUIRED_PACKAGES += system/library/math