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 |