diff -r ebafad4abba7 -r 94088715b2bf components/perl/perl516/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/components/perl/perl516/Makefile Thu Feb 07 08:47:14 2013 -0800 @@ -0,0 +1,142 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. +# +include ../../../make-rules/shared-macros.mk + +# +# Note this perl is 64-bit only. +# + +# I want to override PERL_VERSION and PERL_ARCH because when building +# a new version of perl it probably isn't installed so shared-macros.mk +# can't call it. + +COMPONENT_NAME= perl +COMPONENT_VERSION= 5.16.2 +PERL_VERSION= 5.16 +COMPONENT_PROJECT_URL= http://www.perl.org/ +COMPONENT_SRC= $(COMPONENT_NAME)-$(COMPONENT_VERSION) +COMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.bz2 +COMPONENT_ARCHIVE_HASH= \ + sha256:5ba91d9aa40220c615b644bb48fa5df7fbca4afb1c9e911bdc0ce2a93f072d7d +COMPONENT_ARCHIVE_URL= http://www.cpan.org/src/5.0/$(COMPONENT_ARCHIVE) +COMPONENT_BUGDB= utility/perl + +include $(WS_TOP)/make-rules/prep.mk +include $(WS_TOP)/make-rules/configure.mk +include $(WS_TOP)/make-rules/ips.mk + +# +# Override these compiler settings because they are causing problems +# in the ON build of the contrib components. +# ON doesn't use or need these settings or the compiler has some of them +# on by default. +# This also produces a perl more inline with past perl's. For better +# or worse. +# +studio_XBITS= +studio_XREGS= +studio_IROPTS= +studio_C99MODE= +studio_ALIGN= +studio_MT= + +CONFIGURE_SCRIPT = $(SOURCE_DIR)/Configure +CONFIGURE_ENV += MAKE=$(GMAKE) +CONFIGURE_ENV += PATH=$(dir $(CC)):$(PATH) + +# -Dperl_static_inline="static" turns OFF "static inline". +# This was added because Configure probes +# for static inline (C99 feature) and finds it in our default Studio +# compiler. But in the ON build of the perl add-ons, sun-solaris, the +# shadow build with gcc 3.4.3 doesn't understand static inline so errors. +# +CONFIGURE_OPTIONS = \ + -de \ + -Dmksymlinks \ + -Ulocincpth= \ + -Uloclibpth= \ + -Dbin=/usr/perl5/$(PERL_VERSION)/bin \ + -Dcc="cc" \ + -Dcf_email="userland-discuss@opensolaris.org" \ + -Dcf_by="perl-bugs" \ + -Dlibperl=libperl.so \ + -Dmyhostname="localhost" \ + -Dperl_static_inline="static" \ + -Dprefix=/usr/perl5/$(PERL_VERSION) \ + -Dprivlib=/usr/perl5/$(PERL_VERSION)/lib \ + -Dsitelib=/usr/perl5/site_perl/$(PERL_VERSION) \ + -Dsiteprefix=/usr/perl5/$(PERL_VERSION) \ + -Dvendorlib=/usr/perl5/vendor_perl/$(PERL_VERSION) \ + -Dvendorprefix=/usr/perl5/$(PERL_VERSION) \ + -Duseshrplib \ + -Dusedtrace \ + -Duse64bitall \ + -Doptimize="$(CFLAGS.studio)" + +# The extra Configure parameters (cf_email, cf_by, myhostname) and +# the gawk and sed that follow are attempting to sanatize the +# resulting config.sh of values from our build environment that +# are discoverable in perl's config via "perl -V". +# I'm assuming our compilers live on a path that contains "SUNWspro". +# If that changes the sed filter needs to change. +# +COMPONENT_POST_CONFIGURE_ACTION = \ + (cd $(@D); \ + cp config.sh config.sh_orig ; \ + gawk \ + '/^myuname=/{print $$1" localhost "$$3" "$$5" "$$6" "$$7"\047"} ; \ + !/^myuname=/ {print}' config.sh_orig \ + | \ + sed -e "s/[^ ']*SUNWspro[^ ']*//g" > config.sh ) + + +# +# Put studio compilers in PATH so we can tell Configure and gmake just +# use cc. Trying to avoid the full path so it doesn't end up in +# perl's config. +# +COMPONENT_BUILD_ENV += PATH=$(dir $(CC)):$(PATH) +COMPONENT_INSTALL_ENV += PATH=$(dir $(CC)):$(PATH) +COMPONENT_INSTALL_ENV += DESTDIR="$(PROTO_DIR)" +COMPONENT_TEST_ENV += PATH=$(dir $(CC)):$(PATH) + +# +# perl's install path for sparc is based off the value of the +# "arch" command. So we must package that way also. +# +PKG_MACROS += P_ARCH=$(shell arch) + +build: $(BUILD_64) + +install: $(INSTALL_64) + +test: $(TEST_64) + # + # + # All tests should pass. + # + # + +BUILD_PKG_DEPENDENCIES = $(BUILD_TOOLS) + +include $(WS_TOP)/make-rules/depend.mk