3 # The contents of this file are subject to the terms of the
4 # Common Development and Distribution License (the "License").
5 # You may not use this file except in compliance with the License.
7 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8 # or http://www.opensolaris.org/os/licensing.
9 # See the License for the specific language governing permissions
10 # and limitations under the License.
12 # When distributing Covered Code, include this CDDL HEADER in each
13 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14 # If applicable, add the following below this CDDL HEADER, with the
15 # fields enclosed by brackets "[]" replaced with your own identifying
16 # information: Portions Copyright [yyyy] [name of copyright owner]
22 # Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
25 include ..
/..
/make-rules
/shared-macros.mk
27 PATH
=$(dir $(CC
)):/usr
/bin
:/usr
/gnu
/bin
30 COMPONENT_VERSION
=5.0.5
31 COMPONENT_PROJECT_URL
= http
://gmplib.org
/
32 COMPONENT_SRC_NAME
= gmp
33 COMPONENT_SRC
= $(COMPONENT_SRC_NAME
)-$(COMPONENT_VERSION
)
34 COMPONENT_ARCHIVE
= $(COMPONENT_SRC
).
tar.bz2
35 COMPONENT_ARCHIVE_HASH
= \
36 sha256
:1f588aaccc41bb9aed946f9fe38521c26d8b290d003c5df807f65690f2aadec9
37 COMPONENT_ARCHIVE_URL
= http
://ftp.gnu.org
/gnu
/gmp
/$(COMPONENT_ARCHIVE
)
38 COMPONENT_BUGDB
= library
/gnump
40 include ..
/..
/make-rules
/prep.mk
41 include ..
/..
/make-rules
/configure.mk
42 include ..
/..
/make-rules
/ips.mk
46 CLOBBER_PATHS
+= libgmp.
pc libgmpxx.
pc
48 CFLAGS
+= $(CPP_C99_EXTENDED_MATH
)
50 CFLAGS
+= -fexceptions
51 CPPFLAGS
+= $(CPP_POSIX
) $(CPP_LARGEFILES
)
52 LDFLAGS
+= $(LD_Z_REDLOCSYM
) $(LD_Z_RESCAN_NOW
)
54 # assembler detection for GNU MP and GNU MPFR is done via MPN_PATH
55 # at ./configure time. GNU MPFR wants to know GNU MP's MPN_PATH.
56 MPN32_i386
= x86
/pentium x86 generic
57 MPN64_i386
= x86_64
/pentium4 x86_64 generic
58 MPN32_sparc
= sparc32
/v9 sparc32 generic
59 MPN64_sparc
= sparc64 generic
60 MPN_32
= $(MPN32_
$(MACH
))
61 MPN_64
= $(MPN64_
$(MACH
))
64 # libgmpxx.so.4 always gets built with unnecessary paths in RUNPATH/RPATH
65 ELFEDIT
= /usr
/bin
/elfedit
67 CONFIGURE_ENV
+= CC
="$(CC)"
68 CONFIGURE_ENV
+= CXX
="$(CXX)"
69 CONFIGURE_ENV
+= CFLAGS
="$(CFLAGS)"
70 CONFIGURE_ENV
+= CPPFLAGS
="$(CPPFLAGS)"
71 CONFIGURE_ENV
+= CXXFLAGS
="$(CC_BITS) $(CXXFLAGS)"
72 CONFIGURE_ENV
+= LD
="$(CC) $(CFLAGS) $(LDFLAGS)"
73 CONFIGURE_ENV
+= LDFLAGS
="$(LDFLAGS)"
74 CONFIGURE_ENV
+= CXXLD
="$(CXX) $(CC_BITS) $(CXXFLAGS) $(LDFLAGS)"
75 CONFIGURE_ENV
+= CPP
="$(CC) $(CPPFLAGS) $(CFLAGS) -E"
76 CONFIGURE_ENV
+= CPP_FOR_BUILD
="$(CC) $(CPPFLAGS) $(CFLAGS) -E"
77 CONFIGURE_ENV
+= CXXCPP
="$(CXX) $(CC_BITS) $(CPPFLAGS) $(CXXFLAGS) -E"
78 CONFIGURE_ENV
+= INSTALL
="$(INSTALL)"
79 CONFIGURE_ENV
+= CC_FOR_BUILD
="$(CC) $(CPPFLAGS) $(CFLAGS)"
80 CONFIGURE_ENV
+= M4
="$(GM4)"
81 CONFIGURE_ENV
+= SED
="$(GSED)"
82 CONFIGURE_ENV
+= ABI
="$(BITS)"
83 CONFIGURE_ENV
+= "MPN_PATH=$(MPN_$(BITS))"
85 CONFIGURE_OPTIONS
+= --includedir=/usr
/include/gmp
86 CONFIGURE_OPTIONS
+= --localstatedir
=/var
87 CONFIGURE_OPTIONS
+= --enable-shared
88 CONFIGURE_OPTIONS
+= --disable-static
89 CONFIGURE_OPTIONS
+= --disable-libtool-lock
90 CONFIGURE_OPTIONS
+= --disable-alloca
91 CONFIGURE_OPTIONS
+= --enable-cxx
92 CONFIGURE_OPTIONS
+= --enable-fft
93 CONFIGURE_OPTIONS
+= --enable-mpbsd
94 CONFIGURE_OPTIONS
+= --disable-fat
95 CONFIGURE_OPTIONS
+= --with-pic
97 PROTOUSRSHAREINFODIR
= $(PROTOUSRSHAREDIR
)/info
98 PROTOUSRSHAREHTMLDIR
= $(PROTOUSRSHAREDIR
)/doc
/gmp
/html
99 PROTOUSRSHAREMAN3DIR
= $(PROTOUSRSHAREDIR
)/man
/man3
100 PROTOUSRINCLUDEDIR
= $(PROTOUSRDIR
)/include
101 PROTOPKGCONFIGDIR
= $(PROTOUSRLIBDIR
)/pkgconfig
102 PROTOPKGCONFIGDIR64
= $(PROTOUSRLIBDIR64
)/pkgconfig
104 COMPONENT_POST_INSTALL_ACTION
= \
105 ( $(MKDIR
) $(PROTOUSRSHAREHTMLDIR
) ; \
106 $(MKDIR
) $(PROTOUSRSHAREMAN3DIR
) ; \
107 $(MKDIR
) $(PROTOPKGCONFIGDIR
) ; \
108 $(MKDIR
) $(PROTOPKGCONFIGDIR64
) ; \
109 $(ELFEDIT
) -e
"dyn:runpath $(USRLIBDIR)" \
110 $(PROTOUSRLIBDIR
)/libgmpxx.so
.4.2.5 ; \
111 $(ELFEDIT
) -e
"dyn:runpath $(USRLIBDIR64)" \
112 $(PROTOUSRLIBDIR64
)/libgmpxx.so
.4.2.5 ; \
113 $(ELFEDIT
) -e
"dyn:rpath $(USRLIBDIR)" \
114 $(PROTOUSRLIBDIR
)/libgmpxx.so
.4.2.5 ; \
115 $(ELFEDIT
) -e
"dyn:rpath $(USRLIBDIR64)" \
116 $(PROTOUSRLIBDIR64
)/libgmpxx.so
.4.2.5 ; \
117 $(GSED
) -e
"s/MACH64/$(MACH64)/g" \
118 $(COMPONENT_DIR
)/Solaris
/libgmp-64.
pc > $(COMPONENT_DIR
)/libgmp.
pc ; \
119 $(GSED
) -e
"s/MACH64/$(MACH64)/g" \
120 $(COMPONENT_DIR
)/Solaris
/libgmpxx-64.
pc > \
121 $(COMPONENT_DIR
)/libgmpxx.
pc ; \
122 $(MV
) $(PROTOUSRINCLUDEDIR
)/gmp.h
$(PROTOUSRINCLUDEDIR
)/gmp
/ ; \
123 $(MV
) $(PROTOUSRINCLUDEDIR
)/mp.h
$(PROTOUSRINCLUDEDIR
)/gmp
/ ; \
124 $(INSTALL
) -m
0644 $(COMPONENT_DIR
)/Solaris
/index.html \
125 $(PROTOUSRSHAREHTMLDIR
)/ ; \
126 $(INSTALL
) -m
0644 $(COMPONENT_DIR
)/Solaris
/libgmp.
pc \
127 $(PROTOPKGCONFIGDIR
) ; \
128 $(INSTALL
) -m
0644 $(COMPONENT_DIR
)/Solaris
/libgmpxx.
pc \
129 $(PROTOPKGCONFIGDIR
) ; \
130 $(INSTALL
) -m
0644 $(COMPONENT_DIR
)/libgmp.
pc \
131 $(PROTOPKGCONFIGDIR64
) ; \
132 $(INSTALL
) -m
0644 $(COMPONENT_DIR
)/libgmpxx.
pc \
133 $(PROTOPKGCONFIGDIR64
) ; \
134 $(INSTALL
) -m
0644 $(COMPONENT_DIR
)/Solaris
/libgmp
.3 \
135 $(PROTOUSRSHAREMAN3DIR
)/ )
138 build
: $(BUILD_32_and_64
)
140 install: $(INSTALL_32_and_64
)
142 test: $(TEST_32_and_64
)
144 BUILD_PKG_DEPENDENCIES
= $(BUILD_TOOLS
)
146 include ..
/..
/make-rules
/depend.mk