Makefile revision 1258
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews# CDDL HEADER START
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews#
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews# The contents of this file are subject to the terms of the
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews# Common Development and Distribution License (the "License").
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews# You may not use this file except in compliance with the License.
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews#
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews# or http://www.opensolaris.org/os/licensing.
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews# See the License for the specific language governing permissions
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews# and limitations under the License.
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews#
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews# When distributing Covered Code, include this CDDL HEADER in each
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews# If applicable, add the following below this CDDL HEADER, with the
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews# fields enclosed by brackets "[]" replaced with your own identifying
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews# information: Portions Copyright [yyyy] [name of copyright owner]
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews#
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews# CDDL HEADER END
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews#
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews#
f41405d21249e11c1636301b1324ac1937b455aaMark Andrews# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews#
7e8f841d085cbd14b270f7bb9e2a2b7c5bc22565Mark Andrews
7e8f841d085cbd14b270f7bb9e2a2b7c5bc22565Mark Andrewsinclude ../../make-rules/shared-macros.mk
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark AndrewsPATH=$(dir $(CC)):/usr/bin:/usr/gnu/bin
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark AndrewsCOMPONENT_NAME= gnump
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark AndrewsCOMPONENT_VERSION= 4.3.2
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark AndrewsCOMPONENT_PROJECT_URL= http://gmplib.org/
7e8f841d085cbd14b270f7bb9e2a2b7c5bc22565Mark AndrewsCOMPONENT_SRC_NAME= gmp
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark AndrewsCOMPONENT_SRC= $(COMPONENT_SRC_NAME)-$(COMPONENT_VERSION)
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark AndrewsCOMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.gz
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark AndrewsCOMPONENT_ARCHIVE_HASH= \
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews sha256:7be3ad1641b99b17f6a8be6a976f1f954e997c41e919ad7e0c418fe848c13c97
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark AndrewsCOMPONENT_ARCHIVE_URL= http://ftp.gnu.org/gnu/gmp/$(COMPONENT_ARCHIVE)
33518843817dd9cf127eb09c5952227f1972af55Mark AndrewsCOMPONENT_BUGDB= library/gnump
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrewsinclude ../../make-rules/prep.mk
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrewsinclude ../../make-rules/configure.mk
7e8f841d085cbd14b270f7bb9e2a2b7c5bc22565Mark Andrewsinclude ../../make-rules/ips.mk
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrewsinclude ../../make-rules/lint-libraries.mk
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark AndrewsPATCH_LEVEL = 0
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark AndrewsCLOBBER_PATHS += libgmp.pc libgmpxx.pc
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark AndrewsCFLAGS += -features=extinl,extensions
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark AndrewsCFLAGS += -xustr=ascii_utf16_ushort -xcsi
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews# -xthreadvar=%all: allow thread-local storage via __thread
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews# qualifier for all types of variables (global, static and dynamic)
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark AndrewsCFLAGS += -xthreadvar=%all $(CPP_C99_EXTENDED_MATH)
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark AndrewsCFLAGS += $(studio_C99_ENABLE) $(CPP_XPG6MODE)
d39690e5a9b4a9a084d984abd193bed4395db41aDavid LawrenceCFLAGS += $(studio_PIC)
d39690e5a9b4a9a084d984abd193bed4395db41aDavid LawrenceCXXFLAGS = -mt -features=anachronisms,except,rtti,export,extensions,nestedaccess,tmplife,tmplrefstatic
105f5a65b1f680f4cb6f897b8b0f7ee7e09e41ebDavid LawrenceCXXFLAGS += -instances=global -template=geninlinefuncs -verbose=template
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark AndrewsCXXFLAGS += -xbuiltin=%none -xinline=%auto -xlibmil
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark AndrewsCXXFLAGS += -xustr=ascii_utf16_ushort -xlibmopt
88b3bc12b5570aae77e5963204e9111a2875915eAndreas GustafssonCXXFLAGS += $(studio_cplusplus_C99_ENABLE) $(studio_PIC)
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark AndrewsCXXFLAGS += $(CPP_XPG5MODE)
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark Andrews# -Qoption ccfe -features=zla: allow VLA/ZLA in C++ (like in C99)
8886caf5dc3db70638022ddfd5442c0930bd43b5Mark AndrewsCXXFLAGS += -Qoption ccfe -features=zla
ff8fd4d1b6abb0490b5aaf2b1d86555750ae0818Mark AndrewsCXXFLAGS += -xF=%none -xthreadvar=%all
ff8fd4d1b6abb0490b5aaf2b1d86555750ae0818Mark AndrewsCPPFLAGS += $(CPP_POSIX) $(CPP_LARGEFILES)
ff8fd4d1b6abb0490b5aaf2b1d86555750ae0818Mark AndrewsLDFLAGS += $(LD_Z_REDLOCSYM) $(LD_Z_RESCAN_NOW)
9463feb3cb002df10b053f71e21540607c7a48e8Tatuya JINMEI 神明達哉
c05a979fda35c83d7fba16fee7859644e98a7450Mark Andrews# assembler detection for GNU MP and GNU MPFR is done via MPN_PATH
2a313f56e78e19ae6dc2315bb53bd32fad13ae29Mark Andrews# at ./configure time. GNU MPFR wants to know GNU MP's MPN_PATH.
fcb54ce0a4f7377486df5bec83b3aa4711bf4131Mark AndrewsMPN32_i386 = x86/pentium x86 generic
58e0b35a3bbb50d154c36749096f7463dab75a7aMark AndrewsMPN64_i386 = x86_64/pentium4 x86_64 generic
60c2c8814f838f503333da5b2fd7e6792ca39c14Mark AndrewsMPN32_sparc = sparc32/v9 sparc32 generic
c58088e3a0fd9e553db750cd4b08d3e621d0ded4Mark AndrewsMPN64_sparc = sparc64 generic
b9858c2efcee324745a1b8d7b099baf540bc695bMark AndrewsMPN_32 = $(MPN32_$(MACH))
5a020bc04be73df06735da0ec1abb1dd71c755e5Mark AndrewsMPN_64 = $(MPN64_$(MACH))
5a020bc04be73df06735da0ec1abb1dd71c755e5Mark AndrewsGM4 = /usr/bin/gm4
5a020bc04be73df06735da0ec1abb1dd71c755e5Mark AndrewsGSED = /usr/bin/gsed
5a020bc04be73df06735da0ec1abb1dd71c755e5Mark Andrews# libgmpxx.so.4 always gets built with unnecessary paths in RUNPATH/RPATH
58e0b35a3bbb50d154c36749096f7463dab75a7aMark AndrewsELFEDIT = /usr/bin/elfedit
a69a77ddfef58e93036cf6173dc7f91ed864d103Mark Andrews
f4545143206d918a7f6ee53cd4fb9788c534c0c7Mark AndrewsCONFIGURE_ENV += CC="$(CC)"
09233633dadbd7878e60dd383a814e24e5eda1c6Mark AndrewsCONFIGURE_ENV += CXX="$(CXX)"
09233633dadbd7878e60dd383a814e24e5eda1c6Mark AndrewsCONFIGURE_ENV += CFLAGS="$(CFLAGS)"
09233633dadbd7878e60dd383a814e24e5eda1c6Mark AndrewsCONFIGURE_ENV += CPPFLAGS="$(CPPFLAGS)"
ea37c1a7780311cc7076ff54f09774b2296aebe5Mark AndrewsCONFIGURE_ENV += CXXFLAGS="$(CC_BITS) $(CXXFLAGS)"
de90c0b2efac159580365beaa761a14bdb74330cMark AndrewsCONFIGURE_ENV += LD="$(CC) $(CFLAGS) $(LDFLAGS)"
49aa1303a7cf1ec2a06cde11e46a039dddfca8feMark AndrewsCONFIGURE_ENV += LDFLAGS="$(LDFLAGS)"
e20eae14fc554bae394f535067e80884b59d0684Mark AndrewsCONFIGURE_ENV += CXXLD="$(CXX) $(CC_BITS) $(CXXFLAGS) $(LDFLAGS)"
e03d4ecce3b62bb0a02d2f5e2cc1a9549df08498Mark AndrewsCONFIGURE_ENV += CPP="$(CC) $(CPPFLAGS) $(CFLAGS) -E"
e03d4ecce3b62bb0a02d2f5e2cc1a9549df08498Mark AndrewsCONFIGURE_ENV += CPP_FOR_BUILD="$(CC) $(CPPFLAGS) $(CFLAGS) -E"
1c8c1aa1c6a103a6495109069cca518c9f475f39Mark AndrewsCONFIGURE_ENV += CXXCPP="$(CXX) $(CC_BITS) $(CPPFLAGS) $(CXXFLAGS) -E"
d4ae7d9200ebad7700e8e85886cabe93ab24afd8Mark AndrewsCONFIGURE_ENV += INSTALL="$(INSTALL)"
b6f837397dadf6b296ee1825c95e90235ee5b5ffMark AndrewsCONFIGURE_ENV += CC_FOR_BUILD="$(CC) $(CPPFLAGS) $(CFLAGS)"
b6f837397dadf6b296ee1825c95e90235ee5b5ffMark AndrewsCONFIGURE_ENV += M4="$(GM4)"
d4cefad19e32879e6847df043e62ad8f9cbfa06bMark AndrewsCONFIGURE_ENV += SED="$(GSED)"
2984f8f7bf213642e47affe710851ff0d6580083Mark AndrewsCONFIGURE_ENV += ABI="$(BITS)"
666bae3ccc9d50d840dd6b7b13731f7653f74e77Mark AndrewsCONFIGURE_ENV += "MPN_PATH=$(MPN_$(BITS))"
a14a8a963a407d636f76e223704f62440bd10176Mark Andrews
fd6574dbc551faac89ae2ce6f3549fed51c24e49Mark AndrewsCONFIGURE_OPTIONS += --includedir=/usr/include/gmp
fd6574dbc551faac89ae2ce6f3549fed51c24e49Mark AndrewsCONFIGURE_OPTIONS += --localstatedir=/var
fd6574dbc551faac89ae2ce6f3549fed51c24e49Mark AndrewsCONFIGURE_OPTIONS += --enable-shared
cb6fe566ff051ade7b99f5ca9fca897193d1bd4fMark AndrewsCONFIGURE_OPTIONS += --disable-static
d3e93aac7a6a647b1a2905bfdbdd5ce1b9e46a73Mark AndrewsCONFIGURE_OPTIONS += --disable-libtool-lock
245bce4ef1e9b3e7e802141dba7c2ca878e4768bMark AndrewsCONFIGURE_OPTIONS += --disable-alloca
00b872e4f76587584a2359e9001e9cf08b195ccfMark AndrewsCONFIGURE_OPTIONS += --enable-cxx
aacfb65e0ae7087bdb4f76fb72b7ee3b46893440Mark AndrewsCONFIGURE_OPTIONS += --enable-fft
85f5fe1a722626b33eb9a490def709d02a35e65dMark AndrewsCONFIGURE_OPTIONS += --enable-mpbsd
b26014a1945864a54464b413279faad7dad6d772Mark AndrewsCONFIGURE_OPTIONS += --disable-fat
886fff19f145c93c64967a87e1ff5a9ce18503a6Mark AndrewsCONFIGURE_OPTIONS += --with-pic
bda34793bb9f407390fd54cef8e5846c357e55c6Mark Andrews
bda34793bb9f407390fd54cef8e5846c357e55c6Mark AndrewsPROTOUSRSHAREINFODIR = $(PROTOUSRSHAREDIR)/info
cdd28dc017ce03d208cdfbe7d55fb76377c85accMark AndrewsPROTOUSRSHAREHTMLDIR = $(PROTOUSRSHAREDIR)/doc/gmp/html
PROTOUSRSHAREMAN3DIR = $(PROTOUSRSHAREDIR)/man/man3
PROTOUSRINCLUDEDIR = $(PROTOUSRDIR)/include
PROTOPKGCONFIGDIR = $(PROTOUSRLIBDIR)/pkgconfig
PROTOPKGCONFIGDIR64 = $(PROTOUSRLIBDIR64)/pkgconfig
COMPONENT_POST_INSTALL_ACTION = \
( $(MKDIR) $(PROTOUSRSHAREHTMLDIR) ; \
$(MKDIR) $(PROTOUSRSHAREMAN3DIR) ; \
$(MKDIR) $(PROTOPKGCONFIGDIR) ; \
$(MKDIR) $(PROTOPKGCONFIGDIR64) ; \
$(ELFEDIT) -e "dyn:runpath $(USRLIBDIR)" \
$(PROTOUSRLIBDIR)/libgmpxx.so.4.1.2 ; \
$(ELFEDIT) -e "dyn:runpath $(USRLIBDIR64)" \
$(PROTOUSRLIBDIR64)/libgmpxx.so.4.1.2 ; \
$(ELFEDIT) -e "dyn:rpath $(USRLIBDIR)" \
$(PROTOUSRLIBDIR)/libgmpxx.so.4.1.2 ; \
$(ELFEDIT) -e "dyn:rpath $(USRLIBDIR64)" \
$(PROTOUSRLIBDIR64)/libgmpxx.so.4.1.2 ; \
$(GSED) -e "s/MACH64/$(MACH64)/g" \
$(COMPONENT_DIR)/Solaris/libgmp-64.pc > $(COMPONENT_DIR)/libgmp.pc ; \
$(GSED) -e "s/MACH64/$(MACH64)/g" \
$(COMPONENT_DIR)/Solaris/libgmpxx-64.pc > \
$(COMPONENT_DIR)/libgmpxx.pc ; \
$(MV) $(PROTOUSRINCLUDEDIR)/gmp.h $(PROTOUSRINCLUDEDIR)/gmp/ ; \
$(MV) $(PROTOUSRINCLUDEDIR)/mp.h $(PROTOUSRINCLUDEDIR)/gmp/ ; \
$(INSTALL) -m 0644 $(COMPONENT_DIR)/Solaris/index.html \
$(PROTOUSRSHAREHTMLDIR)/ ; \
$(INSTALL) -m 0644 $(COMPONENT_DIR)/Solaris/libgmp.pc \
$(PROTOPKGCONFIGDIR) ; \
$(INSTALL) -m 0644 $(COMPONENT_DIR)/Solaris/libgmpxx.pc \
$(PROTOPKGCONFIGDIR) ; \
$(INSTALL) -m 0644 $(COMPONENT_DIR)/libgmp.pc \
$(PROTOPKGCONFIGDIR64) ; \
$(INSTALL) -m 0644 $(COMPONENT_DIR)/libgmpxx.pc \
$(PROTOPKGCONFIGDIR64) ; \
$(INSTALL) -m 0644 $(COMPONENT_DIR)/Solaris/libgmp.3 \
$(PROTOUSRSHAREMAN3DIR)/ )
# common targets
build: $(BUILD_32_and_64)
install: $(INSTALL_32_and_64)
test: $(TEST_32_and_64)
BUILD_PKG_DEPENDENCIES = $(BUILD_TOOLS)
include ../../make-rules/depend.mk