components/openexr/Makefile
author Rich Burridge <rich.burridge@oracle.com>
Tue, 02 May 2017 17:33:26 -0700
changeset 7964 d9801318ed3d
parent 7697 8a41b565423d
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=         openexr
COMPONENT_VERSION=      2.2.0
COMPONENT_PROJECT_URL=  http://www.openexr.com/
COMPONENT_ARCHIVE_HASH= \
    sha256:36a012f6c43213f840ce29a8b182700f6cf6b214bea0d5735594136b44914231
COMPONENT_ARCHIVE_URL=  http://download.savannah.nongnu.org/releases/openexr/$(COMPONENT_ARCHIVE)
COMPONENT_BUGDB=	library/openexr
COMPONENT_ANITYA_ID=	13289

TPNO=			33075

include $(WS_MAKE_RULES)/common.mk

PATCH_LEVEL = 0

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

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

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

# it seems that --with-pic doesn't get PIC flags to the C++ compiler
CXXFLAGS += $(CC_PIC)

# START: remove this section (and the depend.mk file) when build servers are
# installed with the new ilmbase.
ILMBASE_PROTO =		$(WS_COMPONENTS)/ilmbase/build/prototype/$(MACH)
ILMBASE_LIBDIR.32 =	$(ILMBASE_PROTO)$(USRLIBDIR)
ILMBASE_LIBDIR.64 =	$(ILMBASE_PROTO)$(USRLIBDIR64)
ILMBASE_LIBDIR =	$(ILMBASE_LIBDIR.$(BITS))
CONFIGURE_ENV +=	LD_LIBRARY_PATH=$(ILMBASE_LIBDIR)
CONFIGURE_ENV +=	LDFLAGS="$(LDFLAGS) -L$(ILMBASE_LIBDIR)"
CONFIGURE_OPTIONS +=	--with-ilmbase-prefix=$(ILMBASE_PROTO)$(USRDIR)

# Remove ilmbase .la files to allow openexr libtool usage to work correctly.
COMPONENT_PRE_CONFIGURE_ACTION = \
	(cd $(ILMBASE_PROTO) ; \
        mlist=`/usr/bin/find . -name '*.la'` ; \
        for f in $$mlist ; do \
                $(RM) $$f ; \
        done)

# Needed to successfully run various binaries (such as b44ExpLogTable) during
# the build process.
COMPONENT_BUILD_ENV +=	LD_LIBRARY_PATH=$(ILMBASE_LIBDIR)

# Needed to successfully run the various test programs.
COMPONENT_TEST_ENV +=	LD_LIBRARY_PATH=$(ILMBASE_LIBDIR)

# END: remove this section (and the depend.mk file) when build servers are
# installed with the new ilmbase.

COMPONENT_TEST_TRANSFORMS += \
     '-e "s^-L$(CONFIGURE_LIBDIR.$(BITS))^^g"' \
     '-e "/libtool/d"' \
     '-e "/-m32/d"' \
     '-e "/-m64/d"' \
     '-e "/Nothing to be done/d"' \
     '-e "/Leaving directory/d"' \
     '-e "/Entering directory/d"' \
     '-e "/mv -f /d"' \
     '-e "/mkdir .libs/d"' \
     '-e "/is up to date/d"' \
     '-e "/creating IlmImfTest/d"' \
     '-e "/DEPDIR=/d"' \
     '-e "/\/var\/tmp/d"' \
     '-e "/Generating headers and data/d"'

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

PROTOPKGCONFIGDIR.32 = $(PROTOPKGCONFIGDIR)
PROTOPKGCONFIGDIR.64 = $(PROTOPKGCONFIGDIR64)

# Delete /usr/lib/amd64 in libIlmImfUtil.la before install to prevent it
# using old library there when relinking.
COMPONENT_PRE_INSTALL_ACTION = \
	( cd $(BUILD_DIR_$(BITS))/IlmImfUtil ; \
	$(GSED) -i "s^-L$(CONFIGURE_LIBDIR.$(BITS))^^g" libIlmImfUtil.la )

COMPONENT_POST_INSTALL_ACTION = \
	( cd $(PROTOPKGCONFIGDIR.$(BITS)) ; \
	$(GSED) -i "s^-L$(CONFIGURE_LIBDIR.$(BITS))^^g" OpenEXR.pc )

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