components/gcc3/Makefile
author Norm Jacobs <Norm.Jacobs@Oracle.COM>
Thu, 07 Jul 2011 19:05:29 -0700
changeset 378 f0b61ed1d10d
parent 313 e30cc0dc4e8b
child 392 59cfe0ca65fb
permissions -rw-r--r--
7064052 gcc3 delivers incorrect .la files in build 166
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
#
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    21
# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
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
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    27
COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    28
COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    29
# unfortunately we have our own "special" tarball and not the community version, so use that.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    30
COMPONENT_ARCHIVE_HASH=	sha1:f7a27d5aeb07748eb6e924abfcfcf469c378b13e
313
e30cc0dc4e8b 7053576 canonical source location for beanshell, gcc3, and tidy is changing
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 249
diff changeset
    31
COMPONENT_ARCHIVE_URL=	$(EXTERNAL_ARCHIVE_MIRROR)/$(SOURCE_ARCHIVE)
246
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    32
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    33
include ../../make-rules/prep.mk
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    34
include ../../make-rules/configure.mk
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    35
include ../../make-rules/ips.mk
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    36
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    37
PARCH =		$(MACH:i386=i386-pc)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    38
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
    39
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    40
PKG_MACROS +=	GNU_ARCH="$(GNU_ARCH)"
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
# we build gcc with gcc
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    43
COMPILER =	gcc
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
# 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
    46
CC_BITS=
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    47
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    48
CONFIGURE_PREFIX =	/usr/sfw
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
# 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
    51
# 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
    52
CONFIGURE_OPTIONS =	 --prefix=$(CONFIGURE_PREFIX)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    53
CONFIGURE_OPTIONS +=	 --mandir=$(CONFIGURE_MANDIR)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    54
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
    55
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
    56
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
    57
CONFIGURE_OPTIONS +=	--enable-shared
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    58
# sparc and x86 use different assemblers
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    59
CONFIGURE_OPTIONS.sparc +=	--without-gnu-as --with-as=/usr/ccs/bin/as
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    60
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
    61
CONFIGURE_OPTIONS +=	$(CONFIGURE_OPTIONS.$(MACH))
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    62
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    63
CONFIGURE_ENV += 	CC="$(CC)"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    64
CONFIGURE_ENV +=	CFLAGS="$(CFLAGS)"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    65
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    66
COMPONENT_BUILD_ENV += STAGE1_CFLAGS="$(CFLAGS)"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    67
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
    68
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
    69
COMPONENT_BUILD_TARGETS = bootstrap
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
# common targets
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    72
build:		$(BUILD_32)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    73
378
f0b61ed1d10d 7064052 gcc3 delivers incorrect .la files in build 166
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 313
diff changeset
    74
$(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
    75
	(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
    76
		$(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
    77
		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
    78
		$(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
    79
		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
    80
	 done)
f0b61ed1d10d 7064052 gcc3 delivers incorrect .la files in build 166
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 313
diff changeset
    81
	$(TOUCH) $@
f0b61ed1d10d 7064052 gcc3 delivers incorrect .la files in build 166
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 313
diff changeset
    82
f0b61ed1d10d 7064052 gcc3 delivers incorrect .la files in build 166
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 313
diff changeset
    83
install:	$(PROTO_DIR)/.sedded
246
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    84
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    85
BUILD_PKG_DEPENDENCIES =	$(BUILD_TOOLS)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    86
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    87
test: $(TEST_32)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    88
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    89
include ../../make-rules/depend.mk