components/gcc3/Makefile
author John Beck <John.Beck@Oracle.COM>
Sat, 17 Jan 2015 09:17:37 -0800
branchs11-update
changeset 3661 47545fb8aed4
parent 2434 6c9bb5cf5610
child 3996 20c0f21bbe1e
permissions -rw-r--r--
18978320 Userland components should specify TPNOs in Makefiles instead of pkg manifests
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
246
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     1
#
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     2
# CDDL HEADER START
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     3
#
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     4
# The contents of this file are subject to the terms of the
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     5
# Common Development and Distribution License (the "License").
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     6
# You may not use this file except in compliance with the License.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     7
#
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     8
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     9
# or http://www.opensolaris.org/os/licensing.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    10
# See the License for the specific language governing permissions
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    11
# and limitations under the License.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    12
#
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    13
# When distributing Covered Code, include this CDDL HEADER in each
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    14
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    15
# If applicable, add the following below this CDDL HEADER, with the
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    16
# fields enclosed by brackets "[]" replaced with your own identifying
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    17
# information: Portions Copyright [yyyy] [name of copyright owner]
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    18
#
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    19
# CDDL HEADER END
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    20
#
3661
47545fb8aed4 18978320 Userland components should specify TPNOs in Makefiles instead of pkg manifests
John Beck <John.Beck@Oracle.COM>
parents: 2434
diff changeset
    21
# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
246
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    22
#
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    23
include ../../make-rules/shared-macros.mk
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    24
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    25
COMPONENT_NAME=		gcc
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    26
COMPONENT_VERSION=	3.4.3
609
775168282b2f 7037821 Userland migration of data from Makefile to manifest may have been a little overzealous
Rich Burridge <rich.burridge@oracle.com>
parents: 392
diff changeset
    27
COMPONENT_PROJECT_URL=	http://gcc.gnu.org/
246
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    28
COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    29
COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    30
# unfortunately we have our own "special" tarball and not the community version, so use that.
800
2ad056ed89ec 7163771 sha1 should not be used in userland-fetch and userland component/*/Makefile
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 704
diff changeset
    31
COMPONENT_ARCHIVE_HASH=	\
2ad056ed89ec 7163771 sha1 should not be used in userland-fetch and userland component/*/Makefile
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 704
diff changeset
    32
    sha256:3ab488fe2df01bf54a57acd70e745266e19232edacf77512f77655296748e7a0
313
e30cc0dc4e8b 7053576 canonical source location for beanshell, gcc3, and tidy is changing
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 249
diff changeset
    33
COMPONENT_ARCHIVE_URL=	$(EXTERNAL_ARCHIVE_MIRROR)/$(SOURCE_ARCHIVE)
2434
6c9bb5cf5610 15930486 - Auto-generation of Userland gate list for the Solaris 11 Update Release
Rich Burridge <rich.burridge@oracle.com>
parents: 800
diff changeset
    34
COMPONENT_BUGDB=	utility/gnu-compiler
246
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    35
3661
47545fb8aed4 18978320 Userland components should specify TPNOs in Makefiles instead of pkg manifests
John Beck <John.Beck@Oracle.COM>
parents: 2434
diff changeset
    36
TPNO=			17028
47545fb8aed4 18978320 Userland components should specify TPNOs in Makefiles instead of pkg manifests
John Beck <John.Beck@Oracle.COM>
parents: 2434
diff changeset
    37
246
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    38
include ../../make-rules/prep.mk
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    39
include ../../make-rules/configure.mk
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    40
include ../../make-rules/ips.mk
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    41
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    42
PARCH =		$(MACH:i386=i386-pc)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    43
GNU_ARCH =	$(PARCH:sparc=sparc-sun)-solaris$(SOLARIS_VERSION)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    44
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    45
PKG_MACROS +=	GNU_ARCH="$(GNU_ARCH)"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    46
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    47
# we build gcc with gcc
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    48
COMPILER =	gcc
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    49
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    50
# CC_BITS may get in the way
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    51
CC_BITS=
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    52
392
59cfe0ca65fb 7064504 exception handling -compat=g on Solaris 11 snv_167 or higher
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 378
diff changeset
    53
# enabling this causes libstdc++ to break
59cfe0ca65fb 7064504 exception handling -compat=g on Solaris 11 snv_167 or higher
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 378
diff changeset
    54
LD_B_DIRECT=
59cfe0ca65fb 7064504 exception handling -compat=g on Solaris 11 snv_167 or higher
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 378
diff changeset
    55
246
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    56
CONFIGURE_PREFIX =	/usr/sfw
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    57
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    58
# we need to override CONFIGURE_OPTIONS because GCC uses a configure that
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    59
# can't deal with CC as an argument
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    60
CONFIGURE_OPTIONS =	 --prefix=$(CONFIGURE_PREFIX)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    61
CONFIGURE_OPTIONS +=	 --mandir=$(CONFIGURE_MANDIR)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    62
CONFIGURE_OPTIONS +=	 --infodir=$(CONFIGURE_PREFIX)/share/info
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    63
CONFIGURE_OPTIONS +=	--without-gnu-ld --with-ld=/usr/bin/ld
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    64
CONFIGURE_OPTIONS +=	--enable-languages='c,c++,f77,objc'
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    65
CONFIGURE_OPTIONS +=	--enable-shared
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    66
# sparc and x86 use different assemblers
704
c4fe7d6370ec 7128466 gcc should support FMA4 and XOP instruction sets
George Vasick <george.vasick@oracle.com>
parents: 609
diff changeset
    67
CONFIGURE_OPTIONS.sparc +=	--without-gnu-as --with-as=/usr/bin/as
246
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    68
CONFIGURE_OPTIONS.i386 +=	--with-gnu-as --with-as=/usr/gnu/bin/as
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    69
CONFIGURE_OPTIONS +=	$(CONFIGURE_OPTIONS.$(MACH))
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    70
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    71
CONFIGURE_ENV += 	CC="$(CC)"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    72
CONFIGURE_ENV +=	CFLAGS="$(CFLAGS)"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    73
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    74
COMPONENT_BUILD_ENV += STAGE1_CFLAGS="$(CFLAGS)"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    75
COMPONENT_BUILD_ENV += CFLAGS_FOR_TARGET="$(CFLAGS)"
249
a26c7270b713 7045683 gcc-3, flex, and binutils should move to userland (fix shell confusion)
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 246
diff changeset
    76
COMPONENT_BUILD_ENV += SHELL=$(CONFIG_SHELL)
246
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    77
COMPONENT_BUILD_TARGETS = bootstrap
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    78
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    79
# common targets
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    80
build:		$(BUILD_32)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    81
378
f0b61ed1d10d 7064052 gcc3 delivers incorrect .la files in build 166
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 313
diff changeset
    82
$(PROTO_DIR)/.sedded:	$(INSTALL_32)
f0b61ed1d10d 7064052 gcc3 delivers incorrect .la files in build 166
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 313
diff changeset
    83
	(cd $(@D) ; for file in libstdc++.la libsupc++.la ; do \
f0b61ed1d10d 7064052 gcc3 delivers incorrect .la files in build 166
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 313
diff changeset
    84
		$(MV) usr/sfw/lib/$$file usr/sfw/lib/$$file.orig ; \
f0b61ed1d10d 7064052 gcc3 delivers incorrect .la files in build 166
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 313
diff changeset
    85
		sed -e "s;\\(dependency_libs=\\).*;\\1' -L/usr/sfw/lib -lgcc_s -lm';" usr/sfw/lib/$$file.orig >usr/sfw/lib/$$file ; \
f0b61ed1d10d 7064052 gcc3 delivers incorrect .la files in build 166
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 313
diff changeset
    86
		$(MV) usr/sfw/lib/$(MACH64)/$$file usr/sfw/lib/$(MACH64)/$$file.orig ; \
f0b61ed1d10d 7064052 gcc3 delivers incorrect .la files in build 166
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 313
diff changeset
    87
		sed -e "s;\\(dependency_libs=\\).*;\\1' -L/usr/sfw/lib/$(MACH64) -lgcc_s -lm';" usr/sfw/lib/$(MACH64)/$$file.orig >usr/sfw/lib/$(MACH64)/$$file ; \
f0b61ed1d10d 7064052 gcc3 delivers incorrect .la files in build 166
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 313
diff changeset
    88
	 done)
f0b61ed1d10d 7064052 gcc3 delivers incorrect .la files in build 166
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 313
diff changeset
    89
	$(TOUCH) $@
f0b61ed1d10d 7064052 gcc3 delivers incorrect .la files in build 166
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 313
diff changeset
    90
f0b61ed1d10d 7064052 gcc3 delivers incorrect .la files in build 166
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 313
diff changeset
    91
install:	$(PROTO_DIR)/.sedded
246
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    92
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    93
BUILD_PKG_DEPENDENCIES =	$(BUILD_TOOLS)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    94
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    95
test: $(TEST_32)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    96
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    97
include ../../make-rules/depend.mk