2 # This file and its contents are supplied under the terms of the
3 # Common Development and Distribution License ("CDDL"), version 1.0.
4 # You may only use this file in accordance with the terms of version
7 # A full copy of the text of the CDDL should have accompanied this
8 # source. A copy of the CDDL is also available via the Internet at
9 # http://www.illumos.org/license/CDDL.
13 # Copyright 2013 Andrzej Szeszo. All rights reserved.
14 # Copyright 2016 Jim Klimov
17 include ..
/..
/..
/make-rules
/shared-macros.mk
20 COMPONENT_VERSION
= 4.9.4
28 COMPONENT_SUMMARY
= GNU Compiler Collection
29 COMPONENT_SRC
= $(COMPONENT_NAME
)-$(COMPONENT_VERSION
)
30 COMPONENT_ARCHIVE
= $(COMPONENT_SRC
).
tar.bz2
31 COMPONENT_ARCHIVE_HASH
= \
32 sha256
:6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092
33 COMPONENT_ARCHIVE_URL
= \
34 http
://ftp.gnu.org
/gnu
/gcc
/gcc-
$(COMPONENT_VERSION
)/$(COMPONENT_ARCHIVE
)
35 COMPONENT_SIG_URL
= $(COMPONENT_ARCHIVE_URL
).sig
36 COMPONENT_PROJECT_URL
= http
://gcc.gnu.org
/
38 PATCHDIR_PATCHES
= $(shell find
$(PATCH_DIR
) $(PARFAIT_PATCH_DIR
) -type f
-name
'$(PATCH_PATTERN)' \
39 2>/dev
/null |
sort) $(EXTRA_PATCHES
)
41 # do not replace config.{sub,guess}; there are more than one under SOURCE_DIR
44 COMPONENT_SRC_1
= $(MPFR_NAME
)-$(MPFR_VERSION
)
45 COMPONENT_ARCHIVE_1
= $(COMPONENT_SRC_1
).
tar.bz2
46 COMPONENT_ARCHIVE_URL_1
= http
://www.mpfr.org
/$(COMPONENT_SRC_1
)/$(COMPONENT_ARCHIVE_1
)
47 COMPONENT_SIG_URL_1
= $(COMPONENT_ARCHIVE_URL_1
).asc
48 COMPONENT_ARCHIVE_HASH_1
= \
49 sha256
:f63bb459157cacd223caac545cb816bcdb5a0de28b809e7748b82e9eb89b0afd
50 CLEAN_PATHS
+= $(COMPONENT_SRC_1
)
51 COMPONENT_POST_UNPACK_ACTION_1
+= ( $(RM
) -r
$(COMPONENT_SRC
)/$(MPFR_NAME
) && $(CP
) -pr
$(COMPONENT_SRC_1
) $(COMPONENT_SRC
)/$(MPFR_NAME
) )
53 COMPONENT_SRC_2
= $(MPC_NAME
)-$(MPC_VERSION
)
54 COMPONENT_ARCHIVE_2
= $(COMPONENT_SRC_2
).
tar.gz
55 COMPONENT_ARCHIVE_URL_2
= https
://ftp.gnu.org
/gnu
/mpc
/$(COMPONENT_ARCHIVE_2
)
56 COMPONENT_SIG_URL_2
= $(COMPONENT_ARCHIVE_URL_2
).sig
57 COMPONENT_ARCHIVE_HASH_2
= \
58 sha256
:617decc6ea09889fb08ede330917a00b16809b8db88c29c31bfbb49cbf88ecc3
59 CLEAN_PATHS
+= $(COMPONENT_SRC_2
)
60 COMPONENT_POST_UNPACK_ACTION_2
+= ( $(RM
) -r
$(COMPONENT_SRC
)/$(MPC_NAME
) && $(CP
) -pr
$(COMPONENT_SRC_2
) $(COMPONENT_SRC
)/$(MPC_NAME
) )
62 COMPONENT_SRC_3
= $(GMP_NAME
)-$(GMP_VERSION
)
63 COMPONENT_ARCHIVE_3
= $(COMPONENT_SRC_3
).
tar.bz2
64 COMPONENT_ARCHIVE_URL_3
= http
://ftp.gnu.org
/gnu
/gmp
/$(COMPONENT_ARCHIVE_3
)
65 COMPONENT_SIG_URL_3
= $(COMPONENT_ARCHIVE_URL_3
).sig
66 COMPONENT_ARCHIVE_HASH_3
= \
67 sha256
:1f588aaccc41bb9aed946f9fe38521c26d8b290d003c5df807f65690f2aadec9
68 CLEAN_PATHS
+= $(COMPONENT_SRC_3
)
69 COMPONENT_POST_UNPACK_ACTION_3
+= ( $(RM
) -r
$(COMPONENT_SRC
)/$(GMP_NAME
) && $(CP
) -pr
$(COMPONENT_SRC_3
) $(COMPONENT_SRC
)/$(GMP_NAME
) )
73 include $(WS_MAKE_RULES
)/prep.mk
74 include $(WS_MAKE_RULES
)/configure.mk
75 include $(WS_MAKE_RULES
)/ips.mk
76 -include .local-
$(HOSTNAME
).mk
81 CONFIGURE_PREFIX
= /usr
/gcc
/4.9
83 PARCH
= $(MACH
:i386
=i386-pc
)
84 GNU_ARCH
= $(PARCH
:sparc
=sparc-sun
)-solaris
$(SOLARIS_VERSION
)
85 PKG_MACROS
+= GNU_ARCH
="$(GNU_ARCH)"
87 # Build recipe borrowed from OmniOS
89 COMMON_ENV
= LD_OPTIONS
="-zignore -zcombreloc -i"
90 COMMON_ENV
+= LD_FOR_TARGET
=/usr
/bin
/ld
91 COMMON_ENV
+= LD_FOR_HOST
=/usr
/bin
/ld
92 COMMON_ENV
+= LD
=/usr
/bin
/ld
93 COMMON_ENV
+= UNAME_LEGACY
=
96 CONFIGURE_ENV
+= $(COMMON_ENV
)
97 COMPONENT_BUILD_ENV
+= $(COMMON_ENV
)
98 COMPONENT_INSTALL_ENV
+= $(COMMON_ENV
)
100 CONFIGURE_OPTIONS
+= --sbindir
=$(CONFIGURE_BINDIR.
$(BITS
))
101 CONFIGURE_OPTIONS
+= --libdir=$(CONFIGURE_LIBDIR.
$(BITS
))
102 CONFIGURE_OPTIONS
+= --libexecdir
=$(CONFIGURE_LIBDIR.
$(BITS
))
103 CONFIGURE_OPTIONS
+= --host
$(GNU_ARCH
)
104 CONFIGURE_OPTIONS
+= --build
$(GNU_ARCH
)
105 CONFIGURE_OPTIONS
+= --target
$(GNU_ARCH
)
106 CONFIGURE_OPTIONS
+= --with-boot-ldflags
=-R
$(CONFIGURE_PREFIX
)/lib
107 CONFIGURE_OPTIONS
+= --enable-plugins
108 CONFIGURE_OPTIONS
+= --enable-objc-gc
109 CONFIGURE_OPTIONS
+= --enable-languages
=c
,c
++,fortran
,lto
,objc
110 CONFIGURE_OPTIONS
+= --without-gnu-ld
111 CONFIGURE_OPTIONS
+= --with-ld
=/usr
/bin
/ld
112 CONFIGURE_OPTIONS
+= --with-build-time-tools
=/usr
/gnu
/$(GNU_ARCH
)/bin
113 CONFIGURE_OPTIONS
+= --disable-libitm
114 CONFIGURE_OPTIONS
+= --enable-install-libiberty
116 # On SPARC systems, use Sun Assembler
117 CONFIGURE_OPTIONS.sparc
+= --without-gnu-as
--with-as
=/usr
/bin
/as
118 CONFIGURE_OPTIONS.i386
+= --with-gnu-as
--with-as
=/usr
/bin
/gas
119 CONFIGURE_OPTIONS
+= $(CONFIGURE_OPTIONS.
$(MACH
))
121 CONFIGURE_OPTIONS
+= LDFLAGS
="-R$(CONFIGURE_PREFIX)/lib"
123 COMPONENT_POST_INSTALL_ACTION
= \
124 for file in
$(PROTO_DIR
)$(CONFIGURE_PREFIX
)/lib
/libgfortran.so
.3.0.0 $(PROTO_DIR
)$(CONFIGURE_PREFIX
)/lib
/$(MACH64
)/libgfortran.so
.3.0.0; do \
125 elfedit
-e
'dyn:delete RUNPATH' $$file ; \
126 elfedit
-e
'dyn:delete RPATH' $$file ; \
128 $(RM
) -r
$(PROTO_DIR
)$(CONFIGURE_PREFIX
)/lib
/gcc
/$(GNU_ARCH
)/$(COMPONENT_VERSION
)/include-fixed
132 install: $(INSTALL_32
)
134 # GCC uses installed runtime libraries
135 REQUIRED_PACKAGES
+= SUNWcs
136 REQUIRED_PACKAGES
+= system
/library
137 REQUIRED_PACKAGES
+= system
/library
/g
++-6-runtime
138 REQUIRED_PACKAGES
+= system
/library
/gcc-6-runtime
139 REQUIRED_PACKAGES
+= system
/library
/gfortran-6-runtime
140 REQUIRED_PACKAGES
+= system
/library
/gobjc-6-runtime
141 REQUIRED_PACKAGES
+= system
/library
/math