make-rules/ips.mk
author Rich Burridge <rich.burridge@oracle.com>
Tue, 31 Dec 2013 09:16:32 -0800
branchs11-update
changeset 2881 8cae3c148a42
parent 2855 576d5a7857b7
child 2910 f8b8cbc43356
permissions -rw-r--r--
PSARC 2013/337 unittest2 version 0.5.1 PSARC 2013/352 pytest version 2.3.5 PSARC 2013/354 py version 1.4.15 PSARC 2013/357 pyflakes version 0.7.2 PSARC 2013/359 nose-cover3 version 0.0.4 PSARC 2013/361 tox version 1.4.3 PSARC 2013/362 virtualenv version 1.9.1 PSARC 2013/366 beautifulsoup4 version 4.2.1 PSARC 2013/368 pycountry version 0.17 PSARC 2013/370 pytest-codecheckers version 0.2 PSARC 2013/371 pytest-capturelog version 0.7 PSARC 2013/373 pyDNS version 2.3.6 PSARC 2013/375 cov-core version 1.7 PSARC 2013/376 pytest-cov version 1.6 PSARC 2013/379 waitress version 0.8.5 PSARC 2013/380 webtest version 2.0.6 17599568 The Python pytest module needs to be added to Userland 17599569 The Python pytest-capturelog module needs to be added to Userland 17599570 The Python pytest-codecheckers module needs to be added to Userland 17599571 The Python pytest-cov module needs to be added to Userland 17599575 The Python cov-core module needs to be added to Userland 17599577 The Python unittest2 module needs to be added to Userland 17599582 The Python nose-cover3 module needs to be added to Userland 17599586 The Python webtest module needs to be added to Userland 17599591 The Python tox module needs to be added to Userland 17599592 The Python pyDNS module needs to be added to Userland 17599593 The Python pycountry module needs to be added to Userland 17599594 The Python pyflakes module needs to be added to Userland 17599596 The Python beautifulsoup4 module needs to be added to Userland 17599598 The Python waitress module needs to be added to Userland 17599599 The Python py module needs to be added to Userland 17720389 The Python virtualenv module needs to be added to Userland
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     1
#
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     2
# CDDL HEADER START
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     3
#
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     4
# The contents of this file are subject to the terms of the
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     5
# Common Development and Distribution License (the "License").
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     6
# You may not use this file except in compliance with the License.
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     7
#
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     8
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     9
# or http://www.opensolaris.org/os/licensing.
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    10
# See the License for the specific language governing permissions
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    11
# and limitations under the License.
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    12
#
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    13
# When distributing Covered Code, include this CDDL HEADER in each
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    14
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    15
# If applicable, add the following below this CDDL HEADER, with the
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    16
# fields enclosed by brackets "[]" replaced with your own identifying
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    17
# information: Portions Copyright [yyyy] [name of copyright owner]
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    18
#
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    19
# CDDL HEADER END
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    20
#
2551
0391c5c3b137 16431724 Adjust how license text and Oracle internal tracking numbers are propagated
Rich Burridge <rich.burridge@oracle.com>
parents: 827
diff changeset
    21
# Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    22
#
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    23
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    24
#
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    25
# Rules and Macros for generating an IPS package manifest and publishing an
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    26
# IPS package to a pkg depot.
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    27
#
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    28
# To use these rules, include ../make-rules/ips.mk in your Makefile
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    29
# and define an "install" target appropriate to building your component.
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    30
# Ex:
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    31
#
59
7500d63edb42 7012375 userland build and proto areas should be outside of unpacked source dirs
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 53
diff changeset
    32
#	install:	$(BUILD_DIR)/build/$(MACH32)/.installed \
7500d63edb42 7012375 userland build and proto areas should be outside of unpacked source dirs
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 53
diff changeset
    33
#	 		$(BUILD_DIR)/build/$(MACH64)/.installed
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    34
#
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    35
# This set of rules makes the "publish" target the default target for make(1)
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    36
#
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    37
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    38
PKGDEPEND =	/usr/bin/pkgdepend
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    39
PKGFMT =	/usr/bin/pkgfmt
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    40
PKGMOGRIFY =	/usr/bin/pkgmogrify
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    41
PKGSEND =	/usr/bin/pkgsend
2855
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2732
diff changeset
    42
ifeq   ($(strip $(PKGLINT_COMPONENT)),)
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
    43
PKGLINT =	/usr/bin/pkglint
2855
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2732
diff changeset
    44
else
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2732
diff changeset
    45
PKGLINT =	${WS_TOOLS}/pkglint
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2732
diff changeset
    46
endif
181
87e11e685b1f 7003927 userland should postprocess packaged files
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 166
diff changeset
    47
PKGMANGLE =	$(WS_TOOLS)/userland-mangler
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    48
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    49
# Package headers should all pretty much follow the same format
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    50
METADATA_TEMPLATE =		$(WS_TOP)/transforms/manifest-metadata-template
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    51
COPYRIGHT_TEMPLATE =		$(WS_TOP)/transforms/copyright-template
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    52
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    53
# order is important
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    54
GENERATE_TRANSFORMS +=		$(WS_TOP)/transforms/generate-cleanup
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    55
683
c613b3449c36 7079363 gcc-3.p5m package manifest file shouldn't deliver .la files
Rich Burridge <rich.burridge@oracle.com>
parents: 582
diff changeset
    56
PKGMOGRIFY_TRANSFORMS +=	$(WS_TOP)/transforms/libtool-drop
c613b3449c36 7079363 gcc-3.p5m package manifest file shouldn't deliver .la files
Rich Burridge <rich.burridge@oracle.com>
parents: 582
diff changeset
    57
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    58
COMPARISON_TRANSFORMS +=	$(WS_TOP)/transforms/comparison-cleanup
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    59
COMPARISON_TRANSFORMS +=	$(PKGMOGRIFY_TRANSFORMS)
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    60
2551
0391c5c3b137 16431724 Adjust how license text and Oracle internal tracking numbers are propagated
Rich Burridge <rich.burridge@oracle.com>
parents: 827
diff changeset
    61
LICENSE_TRANSFORMS =		$(WS_TOP)/transforms/license-changes
0391c5c3b137 16431724 Adjust how license text and Oracle internal tracking numbers are propagated
Rich Burridge <rich.burridge@oracle.com>
parents: 827
diff changeset
    62
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    63
# order is important
2551
0391c5c3b137 16431724 Adjust how license text and Oracle internal tracking numbers are propagated
Rich Burridge <rich.burridge@oracle.com>
parents: 827
diff changeset
    64
PUBLISH_TRANSFORMS +=	$(LICENSE_TRANSFORMS)
151
f9e42a3f7095 7030982 hgk is delivered 444, breaks 'hg view'
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 145
diff changeset
    65
PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/variant-cleanup
206
a4474882bf60 7010355 python needs to be packaged to separate out non-core dependencies
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 197
diff changeset
    66
PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/autopyc
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    67
PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/defaults
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    68
PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/actuators
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    69
PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/devel
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    70
PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/docs
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    71
PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/locale
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    72
PUBLISH_TRANSFORMS +=	$(PKGMOGRIFY_TRANSFORMS)
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    73
PUBLISH_TRANSFORMS +=	$(WS_TOP)/transforms/publish-cleanup
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    74
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    75
PKG_MACROS +=		MACH=$(MACH)
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    76
PKG_MACROS +=		MACH32=$(MACH32)
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    77
PKG_MACROS +=		MACH64=$(MACH64)
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    78
PKG_MACROS +=		PUBLISHER=$(PUBLISHER)
827
0944d8c0158b 7169052 Integrate Visual Panels into Userland
Dan Labrecque <dan.labrecque@oracle.com>
parents: 683
diff changeset
    79
PKG_MACROS +=		PUBLISHER_LOCALIZABLE=$(PUBLISHER_LOCALIZABLE)
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    80
PKG_MACROS +=		CONSOLIDATION=$(CONSOLIDATION)
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    81
PKG_MACROS +=		BUILD_VERSION=$(BUILD_VERSION)
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    82
PKG_MACROS +=		SOLARIS_VERSION=$(SOLARIS_VERSION)
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    83
PKG_MACROS +=		OS_VERSION=$(OS_VERSION)
582
f788d69e0553 7085723 use pkg.human-version
Rich Burridge <rich.burridge@oracle.com>
parents: 379
diff changeset
    84
PKG_MACROS +=		HUMAN_VERSION=$(HUMAN_VERSION)
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    85
PKG_MACROS +=		IPS_COMPONENT_VERSION=$(IPS_COMPONENT_VERSION)
93
b579c7b1bb44 7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents: 84
diff changeset
    86
PKG_MACROS +=		COMPONENT_VERSION=$(COMPONENT_VERSION)
166
db8a55996482 6979538 /usr/share/gettext/po/Rules-quot contains garbage
Marcel Telka <marcel.telka@oracle.com>
parents: 152
diff changeset
    87
PKG_MACROS +=		COMPONENT_PROJECT_URL=$(COMPONENT_PROJECT_URL)
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    88
PKG_MACROS +=		COMPONENT_ARCHIVE_URL=$(COMPONENT_ARCHIVE_URL)
379
c6a17bba1da3 7038754 vim 7.3
Danek Duvall <danek.duvall@oracle.com>
parents: 369
diff changeset
    89
PKG_MACROS +=		COMPONENT_HG_URL=$(COMPONENT_HG_URL)
c6a17bba1da3 7038754 vim 7.3
Danek Duvall <danek.duvall@oracle.com>
parents: 369
diff changeset
    90
PKG_MACROS +=		COMPONENT_HG_REV=$(COMPONENT_HG_REV)
2551
0391c5c3b137 16431724 Adjust how license text and Oracle internal tracking numbers are propagated
Rich Burridge <rich.burridge@oracle.com>
parents: 827
diff changeset
    91
PKG_MACROS +=		COMPONENT_NAME=$(COMPONENT_NAME)
0391c5c3b137 16431724 Adjust how license text and Oracle internal tracking numbers are propagated
Rich Burridge <rich.burridge@oracle.com>
parents: 827
diff changeset
    92
PKG_MACROS +=		TPNO=$(TPNO)
2881
8cae3c148a42 PSARC 2013/337 unittest2 version 0.5.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2855
diff changeset
    93
PKG_MACROS +=		PYTHON_2.6_ONLY=\#
8cae3c148a42 PSARC 2013/337 unittest2 version 0.5.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2855
diff changeset
    94
PKG_MACROS +=		PYTHON_2.7_ONLY=\#
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    95
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    96
PKG_OPTIONS +=		$(PKG_MACROS:%=-D %)
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
    97
181
87e11e685b1f 7003927 userland should postprocess packaged files
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 166
diff changeset
    98
MANGLED_DIR =	$(PROTO_DIR)/mangled
87e11e685b1f 7003927 userland should postprocess packaged files
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 166
diff changeset
    99
87e11e685b1f 7003927 userland should postprocess packaged files
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 166
diff changeset
   100
PKG_PROTO_DIRS += $(MANGLED_DIR) $(PROTO_DIR) $(@D) $(COMPONENT_DIR) $(COMPONENT_SRC)
99
c15c9099bb44 6841644 OpenSolaris Python should support gdbm
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 93
diff changeset
   101
59
7500d63edb42 7012375 userland build and proto areas should be outside of unpacked source dirs
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 53
diff changeset
   102
MANIFEST_BASE =		$(BUILD_DIR)/manifest-$(MACH)
12
41aeb1fd8c2d Fix MACH32/MACH64 so more than one architecture can build in the same workspace
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 7
diff changeset
   103
30
440b6ca0641d Removed $(PUBLISHER) from pkg.fmri package attributes. Renamed package
Danek Duvall <danek.duvall@oracle.com>
parents: 27
diff changeset
   104
CANONICAL_MANIFESTS =	$(wildcard *.p5m)
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   105
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   106
# Look for manifests which need to be duplicated for each version of python.
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   107
ifeq ($(findstring -PYVER,$(CANONICAL_MANIFESTS)),-PYVER)
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   108
UNVERSIONED_MANIFESTS = $(filter-out %-GENFRAG.p5m,$(filter-out %-PYVER.p5m,$(CANONICAL_MANIFESTS)))
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   109
PY_MANIFESTS = $(filter %-PYVER.p5m,$(CANONICAL_MANIFESTS))
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   110
PYV_MANIFESTS = $(foreach v,$(shell echo $(PYTHON_VERSIONS) | tr -d .),$(shell echo $(PY_MANIFESTS) | sed -e 's/-PYVER.p5m/-$(v).p5m/g'))
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   111
PYNV_MANIFESTS = $(shell echo $(PY_MANIFESTS) | sed -e 's/-PYVER//')
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   112
else
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   113
UNVERSIONED_MANIFESTS = $(CANONICAL_MANIFESTS)
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   114
endif
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   115
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   116
# Look for manifests which need to be duplicated for each version of perl.
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   117
ifeq ($(findstring -PERLVER,$(UNVERSIONED_MANIFESTS)),-PERLVER)
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   118
NOPERL_MANIFESTS = $(filter-out %-GENFRAG.p5m,$(filter-out %-PERLVER.p5m,$(UNVERSIONED_MANIFESTS)))
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   119
PERL_MANIFESTS = $(filter %-PERLVER.p5m,$(UNVERSIONED_MANIFESTS))
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   120
PERLV_MANIFESTS = $(foreach v,$(shell echo $(PERL_VERSIONS) | tr -d .),$(shell echo $(PERL_MANIFESTS) | sed -e 's/-PERLVER.p5m/-$(v).p5m/g'))
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   121
PERLNV_MANIFESTS = $(shell echo $(PERL_MANIFESTS) | sed -e 's/-PERLVER//')
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   122
else
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   123
NOPERL_MANIFESTS = $(UNVERSIONED_MANIFESTS)
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   124
endif
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   125
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   126
VERSIONED_MANIFESTS = \
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   127
	$(PYV_MANIFESTS) $(PYNV_MANIFESTS) \
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   128
	$(PERLV_MANIFESTS) $(PERLNV_MANIFESTS) \
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   129
	$(NOPERL_MANIFESTS)
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   130
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   131
GENERATED =		$(MANIFEST_BASE)-generated
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   132
COMBINED =		$(MANIFEST_BASE)-combined
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   133
MANIFESTS =		$(VERSIONED_MANIFESTS:%=$(MANIFEST_BASE)-%)
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
   134
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   135
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   136
DEPENDED=$(VERSIONED_MANIFESTS:%.p5m=$(MANIFEST_BASE)-%.depend)
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   137
RESOLVED=$(VERSIONED_MANIFESTS:%.p5m=$(MANIFEST_BASE)-%.depend.res)
185
773dda89f186 7036473 dependency resolution should happen in one step for all component's packages
Danek Duvall <danek.duvall@oracle.com>
parents: 181
diff changeset
   138
PUBLISHED=$(RESOLVED:%.depend.res=%.published)
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
   139
255
52abf74b9323 7037058 Move fetchmail to Userland
Marcel Telka <marcel.telka@oracle.com>
parents: 206
diff changeset
   140
COPYRIGHT_FILE ?=	$(COMPONENT_NAME)-$(COMPONENT_VERSION).copyright
145
1e2390f5555e 7020836 revert workaround in 7014413 now that pkglint doesn't complain
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 117
diff changeset
   141
IPS_COMPONENT_VERSION ?=	$(COMPONENT_VERSION)
7
d42300cb8715 add license/copyright info for ips generation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 4
diff changeset
   142
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   143
.DEFAULT:		publish
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   144
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   145
.SECONDARY:
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   146
197
fd801ec0737c 7038707 move acpidump to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 196
diff changeset
   147
# allow publishing to be overridden, such as when
fd801ec0737c 7038707 move acpidump to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 196
diff changeset
   148
# a package is for one architecture only.
fd801ec0737c 7038707 move acpidump to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 196
diff changeset
   149
PUBLISH_STAMP ?= $(BUILD_DIR)/.published-$(MACH)
fd801ec0737c 7038707 move acpidump to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 196
diff changeset
   150
fd801ec0737c 7038707 move acpidump to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 196
diff changeset
   151
publish:		build install $(PUBLISH_STAMP)
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   152
30
440b6ca0641d Removed $(PUBLISHER) from pkg.fmri package attributes. Renamed package
Danek Duvall <danek.duvall@oracle.com>
parents: 27
diff changeset
   153
sample-manifest:	$(GENERATED).p5m
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   154
46
d4d60962c33f generate detectable dependencies at build time
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 38
diff changeset
   155
$(GENERATED).p5m:	install
d4d60962c33f generate detectable dependencies at build time
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 38
diff changeset
   156
	$(PKGSEND) generate $(PKG_HARDLINKS:%=--target %) $(PROTO_DIR) | \
d4d60962c33f generate detectable dependencies at build time
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 38
diff changeset
   157
	$(PKGMOGRIFY) $(PKG_OPTIONS) /dev/fd/0 $(GENERATE_TRANSFORMS) | \
64
a4b12971cf99 7014330 has userland lost its mapfile mind?
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 59
diff changeset
   158
		sed -e '/^$$/d' -e '/^#.*$$/d' | $(PKGFMT) | \
a4b12971cf99 7014330 has userland lost its mapfile mind?
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 59
diff changeset
   159
		cat $(METADATA_TEMPLATE) - >[email protected]
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   160
46
d4d60962c33f generate detectable dependencies at build time
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 38
diff changeset
   161
# copy the canonical manifest(s) to the build tree
d4d60962c33f generate detectable dependencies at build time
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 38
diff changeset
   162
$(MANIFEST_BASE)-%.generate:	%.p5m canonical-manifests
d4d60962c33f generate detectable dependencies at build time
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 38
diff changeset
   163
	cat $(METADATA_TEMPLATE) $< >[email protected]
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
   164
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   165
# The text of a transform that will emit a dependency conditional on the
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   166
# presence of a particular version of a runtime, which will then draw in the
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   167
# runtime-version-specific version of the package we're operating on.  $(1) is
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   168
# the name of the runtime package, and $(2) is the version suffix.
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   169
mkgeneric = \
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   170
	echo "<transform set name=pkg.fmri value=(?:pkg:/)?(.+)-\#\#\#@(.*)" \
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   171
		"-> emit depend nodrop=true type=conditional" \
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   172
		"predicate=$(1)-$(2) fmri=%<1>-$(2)@%<2>>" >> [email protected];
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   173
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   174
# Define and execute a macro that generates a rule to create a manifest for a
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   175
# python module specific to a particular version of the python runtime.
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   176
define python-manifest-rule
2881
8cae3c148a42 PSARC 2013/337 unittest2 version 0.5.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2855
diff changeset
   177
$(MANIFEST_BASE)-%-$(shell echo $(1) | tr -d .).mogrified: PKG_MACROS += PYTHON_$(1)_ONLY=
8cae3c148a42 PSARC 2013/337 unittest2 version 0.5.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2855
diff changeset
   178
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   179
$(MANIFEST_BASE)-%-$(shell echo $(1) | tr -d .).p5m: %-PYVER.p5m
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   180
	$(PKGMOGRIFY) -D PYVER=$(1) -D PYV=$(shell echo $(1) | tr -d .) $$< > [email protected]
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   181
endef
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   182
$(foreach ver,$(PYTHON_VERSIONS),$(eval $(call python-manifest-rule,$(ver))))
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   183
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   184
# A rule to create a helper transform package for python, that will insert the
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   185
# appropriate conditional dependencies into a python library's
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   186
# runtime-version-generic package to pull in the version-specific bits when the
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   187
# corresponding version of python is on the system.
2732
1a65a9df6f2e 17300973 ips.mk is a little racey
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2710
diff changeset
   188
$(BUILD_DIR)/mkgeneric-python: $(WS_TOP)/make-rules/shared-macros.mk
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   189
	$(RM) [email protected]
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   190
	$(foreach ver,$(shell echo $(PYTHON_VERSIONS) | tr -d .), \
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   191
		$(call mkgeneric,runtime/python,$(ver)))
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   192
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   193
# Build Python version-wrapping manifests from the generic version.
2732
1a65a9df6f2e 17300973 ips.mk is a little racey
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2710
diff changeset
   194
$(MANIFEST_BASE)-%.p5m: %-PYVER.p5m $(BUILD_DIR)/mkgeneric-python
1a65a9df6f2e 17300973 ips.mk is a little racey
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2710
diff changeset
   195
	$(PKGMOGRIFY) -D PYV=### $(BUILD_DIR)/mkgeneric-python \
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   196
		$(WS_TOP)/transforms/mkgeneric $< > [email protected]
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   197
	if [ -f $*-GENFRAG.p5m ]; then cat $*-GENFRAG.p5m >> [email protected]; fi
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   198
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   199
# Define and execute a macro that generates a rule to create a manifest for a
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   200
# perl module specific to a particular version of the perl runtime.
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   201
define perl-manifest-rule
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   202
$(MANIFEST_BASE)-%-$(shell echo $(1) | tr -d .).p5m: %-PERLVER.p5m
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   203
	$(PKGMOGRIFY) -D PERLVER=$(1) -D PLV=$(shell echo $(1) | tr -d .) \
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   204
		-D PERL_ARCH=$(call PERL_ARCH_FUNC,$(PERL.$(1))) $$< > [email protected]
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   205
endef
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   206
$(foreach ver,$(PERL_VERSIONS),$(eval $(call perl-manifest-rule,$(ver))))
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   207
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   208
# A rule to create a helper transform package for perl, that will insert the
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   209
# appropriate conditional dependencies into a perl library's
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   210
# runtime-version-generic package to pull in the version-specific bits when the
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   211
# corresponding version of perl is on the system.
2732
1a65a9df6f2e 17300973 ips.mk is a little racey
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2710
diff changeset
   212
$(BUILD_DIR)/mkgeneric-perl: $(WS_TOP)/make-rules/shared-macros.mk
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   213
	$(RM) [email protected]
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   214
	$(foreach ver,$(shell echo $(PERL_VERSIONS) | tr -d .), \
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   215
		$(call mkgeneric,runtime/perl,$(ver)))
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   216
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   217
# Build Perl version-wrapping manifests from the generic version.
2732
1a65a9df6f2e 17300973 ips.mk is a little racey
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2710
diff changeset
   218
$(MANIFEST_BASE)-%.p5m: %-PERLVER.p5m $(BUILD_DIR)/mkgeneric-perl
1a65a9df6f2e 17300973 ips.mk is a little racey
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2710
diff changeset
   219
	$(PKGMOGRIFY) -D PLV=### $(BUILD_DIR)/mkgeneric-perl \
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   220
		$(WS_TOP)/transforms/mkgeneric $< > [email protected]
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   221
	if [ -f $*-GENFRAG.p5m ]; then cat $*-GENFRAG.p5m >> [email protected]; fi
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   222
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   223
# mogrify non-parameterized manifests
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   224
$(MANIFEST_BASE)-%.mogrified:	%.p5m $(BUILD_DIR)
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   225
	$(PKGMOGRIFY) $(PKG_OPTIONS) $< \
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   226
		$(PUBLISH_TRANSFORMS) | \
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   227
		sed -e '/^$$/d' -e '/^#.*$$/d' | uniq >[email protected]
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   228
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   229
# mogrify parameterized manifests
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   230
$(MANIFEST_BASE)-%.mogrified:	$(MANIFEST_BASE)-%.p5m $(BUILD_DIR)
53
e398cb2c4b45 7004049 SUNWa2ps should move to userland with a2ps
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 49
diff changeset
   231
	$(PKGMOGRIFY) $(PKG_OPTIONS) $< \
46
d4d60962c33f generate detectable dependencies at build time
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 38
diff changeset
   232
		$(PUBLISH_TRANSFORMS) | \
d4d60962c33f generate detectable dependencies at build time
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 38
diff changeset
   233
		sed -e '/^$$/d' -e '/^#.*$$/d' | uniq >[email protected]
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   234
181
87e11e685b1f 7003927 userland should postprocess packaged files
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 166
diff changeset
   235
# mangle the file contents
369
cc8c00719da9 PSARC 2011/165 OFUV update of existing components
Boris Chiu <Boris.Chiu@Sun.COM>
parents: 255
diff changeset
   236
$(BUILD_DIR) $(MANGLED_DIR):
181
87e11e685b1f 7003927 userland should postprocess packaged files
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 166
diff changeset
   237
	$(MKDIR) [email protected]
87e11e685b1f 7003927 userland should postprocess packaged files
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 166
diff changeset
   238
87e11e685b1f 7003927 userland should postprocess packaged files
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 166
diff changeset
   239
PKGMANGLE_OPTIONS = -D $(MANGLED_DIR) $(PKG_PROTO_DIRS:%=-d %)
87e11e685b1f 7003927 userland should postprocess packaged files
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 166
diff changeset
   240
$(MANIFEST_BASE)-%.mangled:	$(MANIFEST_BASE)-%.mogrified $(MANGLED_DIR)
87e11e685b1f 7003927 userland should postprocess packaged files
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 166
diff changeset
   241
	$(PKGMANGLE) $(PKGMANGLE_OPTIONS) -m $< >[email protected]
87e11e685b1f 7003927 userland should postprocess packaged files
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 166
diff changeset
   242
76
a084497ff237 7016379 migrate elinks to userland (fix pkglint)
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 75
diff changeset
   243
# generate dependencies
99
c15c9099bb44 6841644 OpenSolaris Python should support gdbm
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 93
diff changeset
   244
PKGDEPEND_GENERATE_OPTIONS = -m $(PKG_PROTO_DIRS:%=-d %)
181
87e11e685b1f 7003927 userland should postprocess packaged files
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 166
diff changeset
   245
$(MANIFEST_BASE)-%.depend:	$(MANIFEST_BASE)-%.mangled
99
c15c9099bb44 6841644 OpenSolaris Python should support gdbm
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 93
diff changeset
   246
	$(PKGDEPEND) generate $(PKGDEPEND_GENERATE_OPTIONS) $< >[email protected]
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   247
2584
ad7971db6ec0 15960689 pkgdepend resolve takes longer than it might
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2576
diff changeset
   248
# These files should contain a list of packages that the component is known to
ad7971db6ec0 15960689 pkgdepend resolve takes longer than it might
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2576
diff changeset
   249
# depend on.  Using resolve.deps is not required, but significantly speeds up
ad7971db6ec0 15960689 pkgdepend resolve takes longer than it might
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2576
diff changeset
   250
# the "pkg resolve" step.
2855
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2732
diff changeset
   251
EXTDEPFILES ?= $(wildcard $(sort $(addsuffix ../resolve.deps, $(dir $(DEPENDED)))))
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2732
diff changeset
   252
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2732
diff changeset
   253
# If the package contains no automatically discoverable dependencies, then
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2732
diff changeset
   254
# we can speed up resolution by providing a dummy resolve.deps to skip loading
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2732
diff changeset
   255
# all the possible packages for resolution.  Unfortunately, pkgdepend does not
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2732
diff changeset
   256
# accept a completely empty resolve.deps, so we pass the userland-incorporation
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2732
diff changeset
   257
# as a quick, content-free placeholder.
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2732
diff changeset
   258
NULLDEPFILE = $(BUILD_DIR)/null-resolve.deps
2584
ad7971db6ec0 15960689 pkgdepend resolve takes longer than it might
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2576
diff changeset
   259
ad7971db6ec0 15960689 pkgdepend resolve takes longer than it might
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2576
diff changeset
   260
# This is a target that should only be run by hand, and not something that
ad7971db6ec0 15960689 pkgdepend resolve takes longer than it might
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2576
diff changeset
   261
# .resolved-$(MACH) should depend on.
ad7971db6ec0 15960689 pkgdepend resolve takes longer than it might
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2576
diff changeset
   262
sample-resolve.deps:
ad7971db6ec0 15960689 pkgdepend resolve takes longer than it might
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2576
diff changeset
   263
	@echo "<transform depend type=(require|require-any) -> print %(fmri)>" > rd-trans
ad7971db6ec0 15960689 pkgdepend resolve takes longer than it might
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2576
diff changeset
   264
	@for i in build/*.depend; do \
ad7971db6ec0 15960689 pkgdepend resolve takes longer than it might
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2576
diff changeset
   265
		$(PKGMOGRIFY) -O /dev/null $$i rd-trans | tr " " "\n" | sort -u > m1; \
ad7971db6ec0 15960689 pkgdepend resolve takes longer than it might
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2576
diff changeset
   266
		$(PKGMOGRIFY) -O /dev/null $$i.res rd-trans | tr " " "\n" | sort -u > m2; \
ad7971db6ec0 15960689 pkgdepend resolve takes longer than it might
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2576
diff changeset
   267
		comm -13 m1 m2; \
ad7971db6ec0 15960689 pkgdepend resolve takes longer than it might
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2576
diff changeset
   268
	done | sed -e 's/@[^ ]*//g' -e 's,pkg:/,,g' | sort -u > resolve.deps
ad7971db6ec0 15960689 pkgdepend resolve takes longer than it might
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2576
diff changeset
   269
	@$(RM) rd-trans m1 m2
ad7971db6ec0 15960689 pkgdepend resolve takes longer than it might
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2576
diff changeset
   270
	@if [[ ! -s resolve.deps ]]; then \
ad7971db6ec0 15960689 pkgdepend resolve takes longer than it might
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2576
diff changeset
   271
		echo "No computed dependencies found; removing empty resolve.deps."; \
ad7971db6ec0 15960689 pkgdepend resolve takes longer than it might
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2576
diff changeset
   272
		$(RM) resolve.deps; \
ad7971db6ec0 15960689 pkgdepend resolve takes longer than it might
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2576
diff changeset
   273
	fi
ad7971db6ec0 15960689 pkgdepend resolve takes longer than it might
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2576
diff changeset
   274
185
773dda89f186 7036473 dependency resolution should happen in one step for all component's packages
Danek Duvall <danek.duvall@oracle.com>
parents: 181
diff changeset
   275
# resolve the dependencies all at once
773dda89f186 7036473 dependency resolution should happen in one step for all component's packages
Danek Duvall <danek.duvall@oracle.com>
parents: 181
diff changeset
   276
$(BUILD_DIR)/.resolved-$(MACH):	$(DEPENDED)
2855
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2732
diff changeset
   277
	if [[ "$(EXTDEPFILES)" == "$(NULLDEPFILE)" ]] ; then \
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2732
diff changeset
   278
	  echo 'consolidation/userland/userland-incorporation' > $(NULLDEPFILE) ; \
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2732
diff changeset
   279
	fi
2584
ad7971db6ec0 15960689 pkgdepend resolve takes longer than it might
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 2576
diff changeset
   280
	$(PKGDEPEND) resolve $(EXTDEPFILES:%=-e %) -m $(DEPENDED)
145
1e2390f5555e 7020836 revert workaround in 7014413 now that pkglint doesn't complain
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 117
diff changeset
   281
	$(TOUCH) [email protected]
1e2390f5555e 7020836 revert workaround in 7014413 now that pkglint doesn't complain
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 117
diff changeset
   282
1e2390f5555e 7020836 revert workaround in 7014413 now that pkglint doesn't complain
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 117
diff changeset
   283
# lint the manifests all at once
1e2390f5555e 7020836 revert workaround in 7014413 now that pkglint doesn't complain
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 117
diff changeset
   284
$(BUILD_DIR)/.linted-$(MACH):	$(BUILD_DIR)/.resolved-$(MACH)
1e2390f5555e 7020836 revert workaround in 7014413 now that pkglint doesn't complain
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 117
diff changeset
   285
	@echo "VALIDATING MANIFEST CONTENT: $(RESOLVED)"
117
8f634eb6f66b 7023683 userland pkglint checks should look in more places for content
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 99
diff changeset
   286
	$(ENV) PYTHONPATH=$(WS_TOOLS)/python PROTO_PATH="$(PKG_PROTO_DIRS)"\
84
b80cfd4e0a16 7000952 Userland package validation needs some love
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 76
diff changeset
   287
		$(PKGLINT) $(CANONICAL_REPO:%=-c $(WS_LINT_CACHE)) \
145
1e2390f5555e 7020836 revert workaround in 7014413 now that pkglint doesn't complain
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 117
diff changeset
   288
			-f $(WS_TOOLS)/pkglintrc $(RESOLVED)
1e2390f5555e 7020836 revert workaround in 7014413 now that pkglint doesn't complain
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 117
diff changeset
   289
	$(TOUCH) [email protected]
1e2390f5555e 7020836 revert workaround in 7014413 now that pkglint doesn't complain
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 117
diff changeset
   290
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   291
46
d4d60962c33f generate detectable dependencies at build time
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 38
diff changeset
   292
# published
99
c15c9099bb44 6841644 OpenSolaris Python should support gdbm
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 93
diff changeset
   293
PKGSEND_PUBLISH_OPTIONS = -s $(PKG_REPO) publish --fmri-in-manifest
2710
3c5579720afc 17231570 full userland build sporadically fails during 'pkgsend publish'
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2584
diff changeset
   294
PKGSEND_PUBLISH_OPTIONS += --no-catalog
99
c15c9099bb44 6841644 OpenSolaris Python should support gdbm
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 93
diff changeset
   295
PKGSEND_PUBLISH_OPTIONS += $(PKG_PROTO_DIRS:%=-d %)
196
816e398e992c 6907515 mercurial 1.8.2
Danek Duvall <danek.duvall@oracle.com>
parents: 185
diff changeset
   296
PKGSEND_PUBLISH_OPTIONS += -T \*.py
185
773dda89f186 7036473 dependency resolution should happen in one step for all component's packages
Danek Duvall <danek.duvall@oracle.com>
parents: 181
diff changeset
   297
$(MANIFEST_BASE)-%.published:	$(MANIFEST_BASE)-%.depend.res $(BUILD_DIR)/.linted-$(MACH)
99
c15c9099bb44 6841644 OpenSolaris Python should support gdbm
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 93
diff changeset
   298
	$(PKGSEND) $(PKGSEND_PUBLISH_OPTIONS) $<
46
d4d60962c33f generate detectable dependencies at build time
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 38
diff changeset
   299
	$(PKGFMT) <$< >[email protected]
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
   300
145
1e2390f5555e 7020836 revert workaround in 7014413 now that pkglint doesn't complain
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 117
diff changeset
   301
$(BUILD_DIR)/.published-$(MACH):	$(PUBLISHED)
2710
3c5579720afc 17231570 full userland build sporadically fails during 'pkgsend publish'
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2584
diff changeset
   302
ifndef DISABLE_IPS_CATALOG_AND_INDEX_UPDATES
3c5579720afc 17231570 full userland build sporadically fails during 'pkgsend publish'
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2584
diff changeset
   303
	$(PKGREPO) refresh -s $(PKG_REPO)
3c5579720afc 17231570 full userland build sporadically fails during 'pkgsend publish'
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2584
diff changeset
   304
endif
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   305
	$(TOUCH) [email protected]
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
   306
32
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   307
print-package-names:	canonical-manifests
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   308
	@cat $(VERSIONED_MANIFESTS) $(WS_TOP)/transforms/print-pkgs | \
32
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   309
		$(PKGMOGRIFY) $(PKG_OPTIONS) /dev/fd/0 | \
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   310
 		sed -e '/^$$/d' -e '/^#.*$$/d' | sort -u
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   311
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   312
print-package-paths:	canonical-manifests
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   313
	@cat $(VERSIONED_MANIFESTS) $(WS_TOP)/transforms/print-paths | \
32
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   314
		$(PKGMOGRIFY) $(PKG_OPTIONS) /dev/fd/0 | \
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   315
 		sed -e '/^$$/d' -e '/^#.*$$/d' | sort -u
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   316
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   317
install-packages:	publish
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   318
	@if [ $(IS_GLOBAL_ZONE) = 0 -o x$(ROOT) != x ]; then \
2576
f1b6ecbb2d1e 16433531 Update Nose to 1.2.1
Rich Burridge <rich.burridge@oracle.com>
parents: 2551
diff changeset
   319
	    cat $(VERSIONED_MANIFESTS) $(WS_TOP)/transforms/print-paths | \
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   320
		$(PKGMOGRIFY) $(PKG_OPTIONS) /dev/fd/0 | \
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   321
 		sed -e '/^$$/d' -e '/^#.*$$/d' -e 's;/;;' | sort -u | \
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   322
		(cd $(PROTO_DIR) ; pfexec /bin/cpio -dump $(ROOT)) ; \
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   323
	else ; \
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   324
	    echo "unsafe to install package(s) automatically" ; \
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   325
        fi
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   326
145
1e2390f5555e 7020836 revert workaround in 7014413 now that pkglint doesn't complain
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 117
diff changeset
   327
$(RESOLVED):	install
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   328
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   329
canonical-manifests:	$(CANONICAL_MANIFESTS) Makefile $(PATCHES)
26
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   330
ifeq	($(strip $(CANONICAL_MANIFESTS)),)
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   331
	# If there were no canonical manifests in the workspace, nothing will
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   332
	# be published and we should fail.  A sample manifest can be generated
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   333
	# with
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   334
	#   $ gmake sample-manifest
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   335
	# Once created, it will need to be reviewed, edited, and added to the
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   336
	# workspace.
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   337
	$(error Missing canonical manifest(s))
8a9f4e791832 packaging changes including canonical manifest support with manifest validation
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 22
diff changeset
   338
endif
32
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   339
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   340
# This converts required paths to containing package names for be able to
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   341
# properly setup the build environment for a component.
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   342
required-pkgs.mk:	Makefile
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   343
	@echo "generating [email protected] from Makefile REQUIRED_* data"
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   344
	@pkg search -H -l '<$(DEPENDS:%=% OR) /bin/true>' \
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   345
		| sed -e 's/pkg:\/\(.*\)@.*/REQUIRED_PKGS += \1/g' >[email protected]
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   346
38
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   347
pre-prep:	required-pkgs.mk
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   348
cd00ea74156e package audits should pass pkglint
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 32
diff changeset
   349
32
280a7444e782 automatically generate intercomponent dependencies for build ordering
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 30
diff changeset
   350
CLEAN_PATHS +=	required-pkgs.mk