Makefile revision 970
d6fa26d0adaec6c910115be34fe7a5a5f402c14fMark Andrews#
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews# CDDL HEADER START
71cef386fae61275b03e203825680b39fedaa8c6Tinderbox User#
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews# The contents of this file are subject to the terms of the
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User# Common Development and Distribution License (the "License").
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User# You may not use this file except in compliance with the License.
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User#
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
d6fa26d0adaec6c910115be34fe7a5a5f402c14fMark Andrews# or http://www.opensolaris.org/os/licensing.
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews# See the License for the specific language governing permissions
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews# and limitations under the License.
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# When distributing Covered Code, include this CDDL HEADER in each
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
cd32f419a8a5432fbb139f56ee73cbf68b9350ccTinderbox User# If applicable, add the following below this CDDL HEADER, with the
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews# fields enclosed by brackets "[]" replaced with your own identifying
9b469e3c59015b1a4899c9d8395168126fe094fdAutomatic Updater# information: Portions Copyright [yyyy] [name of copyright owner]
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews#
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews# CDDL HEADER END
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews#
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews#
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrewsinclude ../../make-rules/shared-macros.mk
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark AndrewsPATH=$(dir $(CC)):/usr/bin:/usr/gnu/bin
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews
9b469e3c59015b1a4899c9d8395168126fe094fdAutomatic Updater# I want to override PERL_VERSION and PERL_ARCH because when building
9b469e3c59015b1a4899c9d8395168126fe094fdAutomatic Updater# a new version of perl it probably isn't installed so shared-macros.mk
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews# can't call it.
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark AndrewsCOMPONENT_NAME= perl
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark AndrewsCOMPONENT_VERSION= 5.12.4
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserPERL_VERSION= 5.12
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark AndrewsCOMPONENT_PROJECT_URL= http://www.perl.org/
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox UserCOMPONENT_SRC= $(COMPONENT_NAME)-$(COMPONENT_VERSION)
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox UserCOMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.bz2
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox UserCOMPONENT_ARCHIVE_HASH= \
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User sha256:c920fa01a34b7752e8cbbc99c6921b908df60611d84a29c4377e4a798604767e
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox UserCOMPONENT_ARCHIVE_URL= http://www.cpan.org/src/5.0/$(COMPONENT_ARCHIVE)
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrewsinclude ../../make-rules/prep.mk
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox Userinclude ../../make-rules/justmake.mk
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox Userinclude ../../make-rules/ips.mk
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User#
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews# Override these compiler settings because they are causing problems
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User# in the ON build of the contrib components.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User# ON doesn't use or need these settings or the compiler has some of them
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User# on by default.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User# This also produces a perl more inline with past perl's. For better
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews# or worse.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User#
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox Userstudio_XBITS=
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox Userstudio_XREGS=
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox Userstudio_IROPTS=
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox Userstudio_C99MODE=
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox Userstudio_ALIGN=
7e71f05d8643aca84914437c900cb716444507e4Tinderbox Userstudio_MT=
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# The extra Configure parameters (cf_email, cf_by, myhostname) and
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews# the gawk and sed that follow are attempting to sanatize the
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews# resulting config.sh of values from our build environment that
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews# are discoverable in perl's config via "perl -V".
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews# I'm assuming our compilers live on a path that contains "SUNWspro".
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews# If that changes the sed filter needs to change.
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews#
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews# That last bit re-runs bison to regenerate perly.h.
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox UserCOMPONENT_PRE_BUILD_ACTION= \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews (cd $(@D); $(ENV) -i \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews MAKE=$(GMAKE) \
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User PATH=$(dir $(CC.studio.32)):$(PATH) \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $(CONFIG_SHELL) ./Configure \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews -Dprefix=/usr/perl5/$(PERL_VERSION) \
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User -Dprivlib=/usr/perl5/$(PERL_VERSION)/lib \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews -Dsitelib=/usr/perl5/site_perl/$(PERL_VERSION) \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews -Dvendorprefix=/usr/perl5/$(PERL_VERSION) \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews -Dvendorlib=/usr/perl5/vendor_perl/$(PERL_VERSION) \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews -Dlibperl=libperl.so \
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User -Duseshrplib \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews -Dusedtrace \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews -Duse64bitint \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews -Dcc="cc" \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews -Doptimize="$(CFLAGS.studio)" \
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt -Dcf_email="userland-discuss@opensolaris.org" \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews -Dcf_by="perl-bugs" \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews -Dmyhostname="localhost" \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews -O \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews -de ) ; \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews (cd $(@D); \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews cp config.sh config.sh_orig ; \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews gawk \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews '/^myuname=/{print $$1" localhost "$$3" "$$5" "$$6" "$$7"\047"} ; \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews !/^myuname=/ {print}' config.sh_orig \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews | \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews sed -e 's/[^ ]*SUNWspro[^ ]*//g' > config.sh ) ; \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews ( $(RM) $(@D)/perly.act $(@D)/perly.tab $(@D)/perly.h; \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews cd $(@D) ; $(GMAKE) regen_perly )
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark AndrewsCOMPONENT_INSTALL_ENV += DESTDIR="$(PROTO_DIR)"
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews#
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews# perl's install path for sparc is based off the value of the
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User# "arch" command. So we must package that way also.
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews#
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark AndrewsPKG_MACROS += PERL_ARCH=$(shell arch)
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark AndrewsPKG_MACROS += PERL_VERSION=$(PERL_VERSION)
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews#
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews# Put studio compilers in PATH so we can tell Configure and gmake just
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews# use cc. Trying to avoid the full path so it doesn't end up in
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews# perl's config.
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews#
f6da30bb5447c23d880b09f601441e70c5313557Mark AndrewsCOMPONENT_BUILD_ENV += PATH=$(dir $(CC.studio.32)):$(PATH)
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrewsbuild: $(BUILD_32)
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrewsinstall: $(INSTALL_32)
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrewstest: $(TEST_32)
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews #
b2f07642fd712c8fda81a116bcdde229ab291f33Tinderbox User # 2 expected failures because of the use of cloney in this build.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # Without cloney all tests pass.
b2f07642fd712c8fda81a116bcdde229ab291f33Tinderbox User #
b2f07642fd712c8fda81a116bcdde229ab291f33Tinderbox User # Failed 2 tests out of 1697, 99.88% okay.
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews # ../cpan/Archive-Tar/t/02_methods.t
b2f07642fd712c8fda81a116bcdde229ab291f33Tinderbox User # ../lib/File/stat.t
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews #
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox UserBUILD_PKG_DEPENDENCIES = $(BUILD_TOOLS)
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntinclude ../../make-rules/depend.mk
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews