components/mpfr/Makefile
changeset 7813 d18938ebcb0d
parent 7812 ffe9ca8c9421
equal deleted inserted replaced
7812:ffe9ca8c9421 7813:d18938ebcb0d
    20 
    20 
    21 #
    21 #
    22 # Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
    22 # Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
    23 #
    23 #
    24 BUILD_BITS= 64_and_32
    24 BUILD_BITS= 64_and_32
       
    25 COMPILER=	gcc
    25 include ../../make-rules/shared-macros.mk
    26 include ../../make-rules/shared-macros.mk
    26 
    27 
    27 PATH=$(dir $(CC)):$(USRBINDIR):$(GNUBIN)
    28 PATH=$(dir $(CC)):$(USRBINDIR):$(GNUBIN)
    28 
    29 
    29 COMPONENT_NAME=         mpfr
    30 COMPONENT_NAME=         mpfr
    30 COMPONENT_VERSION=      2.4.2
    31 COMPONENT_VERSION=      3.1.5
    31 COMPONENT_PROJECT_URL=	http://www.mpfr.org/
    32 COMPONENT_PROJECT_URL=	http://www.mpfr.org/
    32 COMPONENT_ARCHIVE_HASH= \
    33 COMPONENT_ARCHIVE_HASH= \
    33     sha256:246d7e184048b1fc48d3696dd302c9774e24e921204221540745e5464022b637
    34     sha256:f4eb5070883aee3fd8b927751ea63ff95aebe24418cde852439ce74c3dd2513c
    34 COMPONENT_ARCHIVE_URL=  $(COMPONENT_PROJECT_URL)$(COMPONENT_SRC)/$(COMPONENT_ARCHIVE)
    35 COMPONENT_ARCHIVE_URL=  $(COMPONENT_PROJECT_URL)$(COMPONENT_SRC)/$(COMPONENT_ARCHIVE)
    35 COMPONENT_BUGDB=	library/libmpfr
    36 COMPONENT_BUGDB=	library/libmpfr
    36 COMPONENT_ANITYA_ID=	2019
    37 COMPONENT_ANITYA_ID=	2019
    37 
    38 
    38 TPNO=			17709
    39 TPNO=			33316
       
    40 TPNO_2.4.2=		17709
       
    41 
       
    42 COMPONENT_VERSION_1=      2.4.2
       
    43 COMPONENT_SRC_1=          $(COMPONENT_NAME)-$(COMPONENT_VERSION_1)
       
    44 COMPONENT_ARCHIVE_1=      $(COMPONENT_SRC_1).tar.gz
       
    45 COMPONENT_ARCHIVE_HASH_1= \
       
    46     sha256:246d7e184048b1fc48d3696dd302c9774e24e921204221540745e5464022b637
       
    47 COMPONENT_ARCHIVE_URL_1=  $(COMPONENT_PROJECT_URL)$(COMPONENT_SRC)/$(COMPONENT_ARCHIVE_1)
       
    48 
    39 
    49 
    40 include $(WS_MAKE_RULES)/common.mk
    50 include $(WS_MAKE_RULES)/common.mk
    41 
    51 
    42 CLEAN_PATHS += libmpfr.pc
    52 # When gmp.h is installed in the default path, this can be removed.
    43 PATCH_LEVEL = 0
    53 CFLAGS +=	$(shell pkg-config --cflags libgmp)
       
    54 LINT_FLAGS +=	$(shell pkg-config --cflags libgmp)
    44 
    55 
    45 CFLAGS += -features=extinl,extensions
    56 # Macros to configure, build, and install the old version so we can contiune
    46 CFLAGS += -xustr=ascii_utf16_ushort -xcsi
    57 # to deliver runtime support for GCC until a newer build of GCC built against
    47 # -xthreadvar=%all: allow thread-local storage via __thread
    58 # the new GNU MPFR is part of the CBE.  Once the newer GCC packages are 
    48 #  qualifier for all types of variables (global, static and dynamic)
    59 # on the build systems, we can stop building and delivering the old version.
    49 CFLAGS += -xthreadvar=%all -mt $(CPP_C99_EXTENDED_MATH)
    60 BUILD_OLD_DIR_32 = $(COMPONENT_DIR)/build/$(COMPONENT_VERSION_1)-$(MACH32)
    50 CFLAGS += $(studio_C99_ENABLE) $(CPP_XPG6MODE)
    61 BUILD_OLD_DIR_64 = $(COMPONENT_DIR)/build/$(COMPONENT_VERSION_1)-$(MACH64)
    51 CFLAGS += $(studio_PIC)
       
    52 LDFLAGS += $(LD_Z_REDLOCSYM) $(LD_Z_RESCAN_NOW)
       
    53 
    62 
    54 MPN32_i386 = x86/pentium x86 generic
    63 $(BUILD_OLD_DIR_32)/.configured: CONFIGURE_SCRIPT = $(SOURCE_DIR_1)/configure
    55 MPN64_i386 = x86_64/pentium4 x86_64 generic
    64 $(BUILD_OLD_DIR_64)/.configured: CONFIGURE_SCRIPT = $(SOURCE_DIR_1)/configure
    56 MPN32_sparc = sparc32/v9 sparc32 generic
    65 $(BUILD_OLD_DIR_32)/.configured:        BITS=32
    57 MPN64_sparc = sparc64 generic
    66 $(BUILD_OLD_DIR_64)/.configured:        BITS=64
    58 MPN32 = $(MPN32_$(MACH))
    67 # GNU MP removed their workaround for pre-ANSI C compilers that didn't support
    59 MPN64 = $(MPN64_$(MACH))
    68 # 'const' in GMP 5.1 MPFR 2.4.2 still expects to find the workaround.
       
    69 $(BUILD_OLD_DIR_32)/.configured:        CFLAGS += -D__gmp_const=const
       
    70 $(BUILD_OLD_DIR_64)/.configured:        CFLAGS += -D__gmp_const=const
    60 
    71 
    61 GMPINCDIR = $(USRINCDIR)/gmp
    72 CONFIGURE_32 += $(BUILD_OLD_DIR_32)/.configured
       
    73 CONFIGURE_64 += $(BUILD_OLD_DIR_64)/.configured
       
    74 
       
    75 BUILD_32 += $(BUILD_OLD_DIR_32)/.built
       
    76 BUILD_64 += $(BUILD_OLD_DIR_64)/.built
       
    77 
       
    78 INSTALL_32 += $(BUILD_OLD_DIR_32)/.installed
       
    79 INSTALL_64 += $(BUILD_OLD_DIR_64)/.installed
       
    80 
       
    81 # install the old version first
       
    82 $(BUILD_DIR_32)/.installed:     $(BUILD_OLD_DIR_32)/.installed
       
    83 $(BUILD_DIR_64)/.installed:     $(BUILD_OLD_DIR_64)/.installed
       
    84 #
       
    85 # End old version
       
    86 
    62 MPFRMULHIGH = 2048
    87 MPFRMULHIGH = 2048
    63 
    88 
    64 COMPONENT_TEST_TRANSFORMS += \
       
    65      '-e "/libtool/d"' \
       
    66      '-e "/-m32/d"' \
       
    67      '-e "/-m64/d"' \
       
    68      '-e "/DEPDIR=/d"' \
       
    69      '-e "s/^make\[[0-9]\{1,\}\]/make/g"'
       
    70 
       
    71 CONFIGURE_ENV += LD="$(CC) $(CFLAGS) $(LDFLAGS)"
       
    72 CONFIGURE_ENV += CPP="$(CC) $(CPPFLAGS) $(CFLAGS) -E"
       
    73 CONFIGURE_ENV += INSTALL="$(INSTALL)"
       
    74 CONFIGURE_ENV += SED="$(GSED)"
       
    75 CONFIGURE_ENV += ABI="$(BITS)"
       
    76 CONFIGURE_ENV += "MPN_PATH=$(MPN_$(BITS))"
       
    77 
       
    78 CONFIGURE_OPTIONS += --includedir=$(USRINCDIR)/mpfr
       
    79 CONFIGURE_OPTIONS += --localstatedir=$(VARDIR)
    89 CONFIGURE_OPTIONS += --localstatedir=$(VARDIR)
    80 CONFIGURE_OPTIONS += --enable-shared
    90 CONFIGURE_OPTIONS += --enable-shared
    81 CONFIGURE_OPTIONS += --disable-static
    91 CONFIGURE_OPTIONS += --disable-static
    82 CONFIGURE_OPTIONS += --disable-libtool-lock
    92 CONFIGURE_OPTIONS += --disable-libtool-lock
    83 CONFIGURE_OPTIONS += --enable-thread-safe
    93 CONFIGURE_OPTIONS += --enable-thread-safe
    84 CONFIGURE_OPTIONS += --enable-tests-timeout=0
    94 CONFIGURE_OPTIONS += --enable-tests-timeout=0
    85 CONFIGURE_OPTIONS += --with-gmp-include=$(shell pkg-config --variable=includedir libgmp)
    95 CONFIGURE_OPTIONS += --with-gmp-include=$(shell pkg-config --variable=includedir libgmp)
    86 CONFIGURE_OPTIONS += --with-mulhigh-size=$(MPFRMULHIGH)
    96 CONFIGURE_OPTIONS += --with-mulhigh-size=$(MPFRMULHIGH)
    87 CONFIGURE_OPTIONS += --with-pic
    97 CONFIGURE_OPTIONS += --with-pic
    88 
    98 
    89 LINT_FLAGS += -I$(GMPINCDIR)
    99 COMPONENT_PREP_ACTION = (cd $(@D) ; $(AUTORECONF) -fiv)
    90 
   100 
    91 PROTOUSRSHAREHTMLDIR = $(PROTOUSRSHAREDOCDIR)/mpfr/html
   101 # so lint can find the header
       
   102 LINT_FLAGS += -I$(SOURCE_DIR)/src
    92 
   103 
    93 COMPONENT_POST_INSTALL_ACTION = \
   104 COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
    94     ( $(MKDIR) $(PROTOUSRSHAREHTMLDIR) ; \
   105 
    95       $(MKDIR) $(PROTOUSRSHAREMAN3DIR) ; \
   106 COMPONENT_TEST_TRANSFORMS += \
    96       $(MKDIR) $(PROTOPKGCONFIGDIR) ; \
   107 	'-e "s/^make\[[0-9]\{1,\}\]/make/g"' \
    97       $(MKDIR) $(PROTOPKGCONFIGDIR64) ; \
   108 	'-e "s/.*MPFR tuning.*//g"' \
    98       $(GSED) -e "s^\#include <gmp.h>^\#include <gmp/gmp.h>^g" \
   109 	'-n ' \
    99 	$(PROTOUSRINCDIR)/mpfr/mpfr.h > \
   110 	'-e "/make:.*directory/p" ' \
   100 	$(PROTOUSRINCDIR)/mpfr/mpfr.h.sed ; \
   111 	'-e "/Testsuite /p" ' \
   101       $(CP) -fp $(PROTOUSRINCDIR)/mpfr/mpfr.h.sed \
   112 	'-e "/PASS/p" ' \
   102 	$(PROTOUSRINCDIR)/mpfr/mpfr.h ; \
   113 	'-e "/FAIL/p" ' \
   103       $(RM) -f $(PROTOUSRINCDIR)/mpfr/mpfr.h.sed ; \
   114 	'-e "/SKIP/p" ' \
   104       $(GSED) -e "s/MACH64/$(MACH64)/g" \
   115 	'-e "/ERROR/p" ' \
   105 	$(COMPONENT_DIR)/Solaris/libmpfr-64.pc > $(COMPONENT_DIR)/libmpfr.pc ; \
   116 	'-e "/=====/p" ' \
   106       $(INSTALL) -m 0644 $(COMPONENT_DIR)/Solaris/index.html \
   117 	'-e "/TOTAL/p" '
   107 	$(PROTOUSRSHAREHTMLDIR)/ ; \
       
   108       $(INSTALL) -m 0644 $(COMPONENT_DIR)/Solaris/libmpfr.pc \
       
   109 	$(PROTOPKGCONFIGDIR) ; \
       
   110       $(INSTALL) -m 0644 $(COMPONENT_DIR)/libmpfr.pc \
       
   111 	$(PROTOPKGCONFIGDIR64) ; \
       
   112       $(INSTALL) -m 0644 $(COMPONENT_DIR)/Solaris/libmpfr.3 \
       
   113 	$(PROTOUSRSHAREMAN3DIR)/ )
       
   114 
   118 
   115 REQUIRED_PACKAGES += library/gmp
   119 REQUIRED_PACKAGES += library/gmp