pkg/Makefile
author Niveditha Rau <Niveditha.Rau@Oracle.COM>
Fri, 07 Apr 2017 15:26:24 -0700
changeset 1704 4c67bc06f3ac
parent 1610 77a2e608a1ff
permissions -rw-r--r--
25862952 publisher change and prep for moving to github
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     1
###############################################################################
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     2
#
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     3
# Makefile for X Consolidation packages
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     4
#
1704
4c67bc06f3ac 25862952 publisher change and prep for moving to github
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents: 1610
diff changeset
     5
# Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     6
#
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     7
# Permission is hereby granted, free of charge, to any person obtaining a
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     8
# copy of this software and associated documentation files (the "Software"),
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     9
# to deal in the Software without restriction, including without limitation
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    10
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    11
# and/or sell copies of the Software, and to permit persons to whom the
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    12
# Software is furnished to do so, subject to the following conditions:
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    13
#
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    14
# The above copyright notice and this permission notice (including the next
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    15
# paragraph) shall be included in all copies or substantial portions of the
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    16
# Software.
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    17
#
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    18
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    19
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    20
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    21
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    22
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    23
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    24
# DEALINGS IN THE SOFTWARE.
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    25
#
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    26
###############################################################################
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    27
# Heavily inspired by / borrowed from the ON usr/src/pkg/Makefile
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    28
# Please read the comments in it and the accompanying README in ON for many
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    29
# details omitted here.
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    30
# Major differences in the X implementation:
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    31
# - X only supports building one repo, not redist + extra
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    32
# - X only supports building packages on the same platform as the binaries,
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    33
#	no cross-platform packaging
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    34
# - X has no bfu legacy to deal with
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    35
# - ON has all manifests in one directory, X splits into current & legacy
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    36
# - Integrates with X consolidation makefile/build system instead of ON's
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    37
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    38
PWD:sh=pwd
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    39
TOP=$(PWD)/..
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    40
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    41
### Include common definitions
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    42
include $(TOP)/open-src/common/Makefile.init
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    43
1105
515c6398d9df 7010836 Package manifests in X gate should use .p5m naming convention
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1072
diff changeset
    44
.SUFFIXES: .p5m .mog .dep .res .pub
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    45
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    46
# We don't yet support building packages cross-architecture, but would
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    47
# need this if we ever did.   (See "Cross platform packaging notes" in
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    48
# the ON usr/src/pkg/Makefile for what we'd have to do.)
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    49
PKGMACH = $(MACH)
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    50
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    51
# Map X makefile names to the ones used in the rules copied from ON
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    52
# More to be updated if we ever decide to support building cross-platform
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    53
PKGROOT = $(PROTODIR)
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    54
PKGDEST = $(PROTOTOP)/pkg_$(PKGMACH)
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    55
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    56
# Map the V=1 style of enabling more verbose build messages used in the
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    57
# X.Org/automake builds to the macro used in the rules copied from ON
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    58
#
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    59
# You can enable verbose output with either V=1 or PKGDEBUG=""
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    60
PKGDEBUG_V_0 = @
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    61
PKGDEBUG_V_1 = 
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    62
PKGDEBUG_V_ = $(PKGDEBUG_V_0)
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    63
PKGDEBUG = $(PKGDEBUG_V_$(V))
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    64
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    65
# Commands used in rules copied from ON
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    66
CP=             /usr/bin/cp -f
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    67
LN=             /usr/bin/ln
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    68
MV=             /usr/bin/mv -f
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    69
RM=             /usr/bin/rm -f
1130
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
    70
SED=	        /usr/bin/sed
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    71
TOUCH=          /usr/bin/touch
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    72
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    73
#
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    74
# To suppress package dependency generation on any system, regardless
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    75
# of how it was installed, set SUPPRESSPKGDEP=true in the build
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    76
# environment.
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    77
#
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    78
SUPPRESSPKGDEP= false
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    79
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    80
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    81
#
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    82
# The packages directory will contain the processed manifests as
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    83
# direct build targets and subdirectories for package metadata extracted
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    84
# incidentally during manifest processing.
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    85
#
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    86
# Nothing underneath $(PDIR) should ever be managed by SCM.
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    87
#
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    88
PDIR= build-$(PKGMACH)
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    89
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    90
$(PDIR):
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    91
	mkdir -p $@
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    92
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    93
#
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    94
# By default, PKGS will list all manifests.  To build and/or publish a
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    95
# subset of packages, override this on the command line or in the
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    96
# build environment and then reference (implicitly or explicitly) the all
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    97
# or install targets.
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    98
#
1105
515c6398d9df 7010836 Package manifests in X gate should use .p5m naming convention
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1072
diff changeset
    99
CURRENT_MANIFESTS :sh= (cd manifests; print *.p5m)
515c6398d9df 7010836 Package manifests in X gate should use .p5m naming convention
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1072
diff changeset
   100
LEGACY_MANIFESTS :sh= (cd legacy; print *.p5m)
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   101
MANIFESTS = $(CURRENT_MANIFESTS) $(LEGACY_MANIFESTS)
1105
515c6398d9df 7010836 Package manifests in X gate should use .p5m naming convention
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1072
diff changeset
   102
PKGS= $(MANIFESTS:%.p5m=%)
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   103
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   104
#
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   105
# Track the synthetic manifests separately so we can properly express
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   106
# build rules and dependencies.  The synthetic and real packages use
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   107
# different sets of transforms and macros for pkgmogrify.
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   108
#
1527
8d7ff887ce09 20817603 Obsolete X-all package
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1500
diff changeset
   109
SYNTH_PKGS= X-incorporation
1152
6cf0f98f6d5f 6979433 several X packages missing dependencies on ogl-select package
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1147
diff changeset
   110
SYNTH_MANIFESTS = $(SYNTH_PKGS:%=%.p5m)
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   111
1172
4597acbe535f 7041659 X packages should not deliver dir actions for directories defined elsewhere
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1161
diff changeset
   112
# Special manifest for exceptions to pass to pkglint & validate_pkg
4597acbe535f 7041659 X packages should not deliver dir actions for directories defined elsewhere
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1161
diff changeset
   113
EXCEPTION_MANIFESTS = exceptions-validate_pkg.p5m
4597acbe535f 7041659 X packages should not deliver dir actions for directories defined elsewhere
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1161
diff changeset
   114
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   115
# Manifests are in either manifests or legacy directory - merge in $(PDIR)
1105
515c6398d9df 7010836 Package manifests in X gate should use .p5m naming convention
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1072
diff changeset
   116
$(PDIR)/%.p5m: manifests/%.p5m
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   117
	$(PKGDEBUG)$(LN) -s ../$< $@
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   118
1105
515c6398d9df 7010836 Package manifests in X gate should use .p5m naming convention
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1072
diff changeset
   119
$(PDIR)/%.p5m: legacy/%.p5m
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   120
	$(PKGDEBUG)$(LN) -s ../$< $@
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   121
1120
cc8eb3f69227 7041658 X packages should not deliver dir actions for mdb directories
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1105
diff changeset
   122
$(PDIR)/%.p5m: %.p5m
cc8eb3f69227 7041658 X packages should not deliver dir actions for mdb directories
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1105
diff changeset
   123
	$(PKGDEBUG)$(LN) -s ../$< $@
cc8eb3f69227 7041658 X packages should not deliver dir actions for mdb directories
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1105
diff changeset
   124
1479
4a76cf532c2c 19978574 Need an automated, repeatable way to generate X's FOSS required source releases
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1443
diff changeset
   125
ALL_MANIFEST_SRCS = $(MANIFESTS) $(SYNTH_MANIFESTS) $(EXCEPTION_MANIFESTS)
4a76cf532c2c 19978574 Need an automated, repeatable way to generate X's FOSS required source releases
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1443
diff changeset
   126
ALL_MANIFESTS = $(ALL_MANIFEST_SRCS:%=$(PDIR)/%)
1172
4597acbe535f 7041659 X packages should not deliver dir actions for directories defined elsewhere
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1161
diff changeset
   127
manifests: $(ALL_MANIFESTS)
4597acbe535f 7041659 X packages should not deliver dir actions for directories defined elsewhere
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1161
diff changeset
   128
$(ALL_MANIFESTS): $(PDIR)
1153
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   129
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   130
### Additional metadata generation
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   131
1356
73c3eb360de2 16167547 Update copyright & license display & metadata in X packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1316
diff changeset
   132
$(PROTOMETA)/%/:
73c3eb360de2 16167547 Update copyright & license display & metadata in X packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1316
diff changeset
   133
	$(PKGDEBUG)mkdir -p $@
73c3eb360de2 16167547 Update copyright & license display & metadata in X packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1316
diff changeset
   134
73c3eb360de2 16167547 Update copyright & license display & metadata in X packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1316
diff changeset
   135
# Generate default copyright notice for packages without contents
73c3eb360de2 16167547 Update copyright & license display & metadata in X packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1316
diff changeset
   136
$(PROTOMETA)/%/cr_Oracle: $(PDIR)/%.p5m $(PROTOMETA)/%/
73c3eb360de2 16167547 Update copyright & license display & metadata in X packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1316
diff changeset
   137
	$(PKGDEBUG)gsed -n -e '/# Copyright .* Oracle/ {' \
73c3eb360de2 16167547 Update copyright & license display & metadata in X packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1316
diff changeset
   138
	 -e 's/^# //' -e 'p' -e 'q' -e'}' $< > $@
73c3eb360de2 16167547 Update copyright & license display & metadata in X packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1316
diff changeset
   139
73c3eb360de2 16167547 Update copyright & license display & metadata in X packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1316
diff changeset
   140
SYNTH_LICENSES = $(SYNTH_PKGS:%=$(PROTOMETA)/%/cr_Oracle)
73c3eb360de2 16167547 Update copyright & license display & metadata in X packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1316
diff changeset
   141
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   142
# This should eventually move into pkg publication
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   143
1105
515c6398d9df 7010836 Package manifests in X gate should use .p5m naming convention
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1072
diff changeset
   144
FONT_MANIFESTS :sh= (cd manifests; print system-font-*.p5m)
515c6398d9df 7010836 Package manifests in X gate should use .p5m naming convention
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1072
diff changeset
   145
FONT_METADATA = $(FONT_MANIFESTS:%.p5m=$(PDIR)/%.font)
515c6398d9df 7010836 Package manifests in X gate should use .p5m naming convention
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1072
diff changeset
   146
FONT_ATTRS = $(FONT_MANIFESTS:%.p5m=$(PDIR)/%.attr)
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   147
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   148
$(FONT_ATTRS): $(FONT_METADATA)
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   149
1610
77a2e608a1ff 22807351 X gate makefiles no longer need to carry around $(X11_DIR) baggage
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1533
diff changeset
   150
FONT_LIBS_PATH=$(PROTODIR)$(X11_SERVERLIBS_DIR)$(LIBSUBDIR_64):$(PROTODIR)/usr/lib$(LIBSUBDIR_64)
1479
4a76cf532c2c 19978574 Need an automated, repeatable way to generate X's FOSS required source releases
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1443
diff changeset
   151
1105
515c6398d9df 7010836 Package manifests in X gate should use .p5m naming convention
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1072
diff changeset
   152
$(PDIR)/%.font: $(PDIR)/%.p5m
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   153
	@print "## Generating font metadata in $(@F)"
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   154
	$(PKGDEBUG)$(RM) $(@)
1479
4a76cf532c2c 19978574 Need an automated, repeatable way to generate X's FOSS required source releases
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1443
diff changeset
   155
	$(PKGDEBUG)LD_LIBRARY_PATH=$(FONT_LIBS_PATH) \
4a76cf532c2c 19978574 Need an automated, repeatable way to generate X's FOSS required source releases
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1443
diff changeset
   156
		$(PERL) generate_font_metadata.pl \
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   157
		-p $(PROTODIR) -m $< > $@ || ( rm $@ ; exit 1 )
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   158
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   159
### Manifest mogrification
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   160
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   161
PKGMOGRIFY = pkgmogrify
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   162
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   163
# RELEASE = uname -r for the target release
1316
35498bf7aa6c changes in pkg version scheme for S12
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents: 1298
diff changeset
   164
RELEASE = 5.12
1189
f3178ba616ba 7073616 X package build versions: six dots are better than one
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1172
diff changeset
   165
PKGVERS_BUILTON = $(RELEASE)
f3178ba616ba 7073616 X package build versions: six dots are better than one
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1172
diff changeset
   166
f3178ba616ba 7073616 X package build versions: six dots are better than one
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1172
diff changeset
   167
# The PKGVERS_BRANCH is determined by the values in the Makefile.buildnum
1316
35498bf7aa6c changes in pkg version scheme for S12
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents: 1298
diff changeset
   168
# PSARC 2012/240 for package version scheme
1189
f3178ba616ba 7073616 X package build versions: six dots are better than one
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1172
diff changeset
   169
include Makefile.buildnum
1316
35498bf7aa6c changes in pkg version scheme for S12
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents: 1298
diff changeset
   170
PKGVERS_BRANCH_MAIN = 5.12.$(UPDATENUM).$(SRUNUM).$(PLATNUM)
1189
f3178ba616ba 7073616 X package build versions: six dots are better than one
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1172
diff changeset
   171
PKGVERS_BRANCH = $(PKGVERS_BRANCH_MAIN).$(BUILDID).$(NIGHTLYID)
f3178ba616ba 7073616 X package build versions: six dots are better than one
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1172
diff changeset
   172
f3178ba616ba 7073616 X package build versions: six dots are better than one
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1172
diff changeset
   173
PKGVERS_BUILD = $(PKGVERS_BUILTON)-$(PKGVERS_BRANCH)
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   174
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   175
# Generate pkgmogrify transform file with correct build version info in
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   176
# Build number is derived from last nv_XXX tag in hg log
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   177
$(PDIR)/versions: transforms/versions.tmpl $(PDIR)
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   178
	@print "## Substituting build info in versions transformation template"
1189
f3178ba616ba 7073616 X package build versions: six dots are better than one
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1172
diff changeset
   179
	$(PKGDEBUG) HG_ID="$$(hg id)" ; \
f3178ba616ba 7073616 X package build versions: six dots are better than one
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1172
diff changeset
   180
	$(PERL) -p -e "s{_PKGVERS_BUILD_}{$(PKGVERS_BUILD)};" \
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   181
		-e "s{_HG_ID_}{$${HG_ID}}" transforms/versions.tmpl > $@
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   182
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   183
# Set variables used by pkgmogrify 
1132
d9f96853a754 7047456 X could do better at building & packaging python bits
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1130
diff changeset
   184
# These are the macros that may be used in package manifests
d9f96853a754 7047456 X could do better at building & packaging python bits
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1130
diff changeset
   185
PKGMOG_DEFINES = 
d9f96853a754 7047456 X could do better at building & packaging python bits
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1130
diff changeset
   186
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   187
# Most upstream packages provide specific version numbers instead of using
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   188
# the default of $(OSPKGVERS)
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   189
# Some use $(X11PKGVERS) to refer to the X11 katamari version since they
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   190
# bundle together components from multiple upstream packages with individual
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   191
# version numbers
1276
52f85727ce94 7161868 Update X.Org modules to X11R7.7 RC1
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1261
diff changeset
   192
PKGMOG_DEFINES += X11PKGVERS=7.7
1316
35498bf7aa6c changes in pkg version scheme for S12
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents: 1298
diff changeset
   193
PKGMOG_DEFINES += OSPKGVERS=$(RELEASE)
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   194
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   195
# Base URL for ARC cases used in opensolaris.arc_url metadata
1132
d9f96853a754 7047456 X could do better at building & packaging python bits
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1130
diff changeset
   196
PKGMOG_DEFINES += ARC_URL='http://arc.opensolaris.org/caselog/'
d9f96853a754 7047456 X could do better at building & packaging python bits
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1130
diff changeset
   197
d9f96853a754 7047456 X could do better at building & packaging python bits
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1130
diff changeset
   198
# Platform specific choices
d9f96853a754 7047456 X could do better at building & packaging python bits
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1130
diff changeset
   199
PKGMOG_DEFINES += i386_ONLY=$(POUND_SIGN) sparc_ONLY=$(POUND_SIGN)
d9f96853a754 7047456 X could do better at building & packaging python bits
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1130
diff changeset
   200
PKGMOG_DEFINES += $(PKGMACH)_ONLY= 
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   201
1132
d9f96853a754 7047456 X could do better at building & packaging python bits
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1130
diff changeset
   202
# Architecture specific directory names
d9f96853a754 7047456 X could do better at building & packaging python bits
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1130
diff changeset
   203
PKGMOG_DEFINES += ARCH=$(PKGMACH)
d9f96853a754 7047456 X could do better at building & packaging python bits
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1130
diff changeset
   204
PKGMOG_DEFINES += ARCH32=$(SUBDIR32_$(PKGMACH))
d9f96853a754 7047456 X could do better at building & packaging python bits
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1130
diff changeset
   205
PKGMOG_DEFINES += ARCH64=$(SUBDIR64_$(PKGMACH))
d9f96853a754 7047456 X could do better at building & packaging python bits
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1130
diff changeset
   206
1147
54bcc6a673bf 7054723 X consolidation should move to perl 5.12
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1139
diff changeset
   207
# Perl version string used in package names, such as pkg:/runtime/perl-512
54bcc6a673bf 7054723 X consolidation should move to perl 5.12
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1139
diff changeset
   208
PERL_PKG_VERSION_CMD = print $(PERL_VERSION) | tr -d '.'
54bcc6a673bf 7054723 X consolidation should move to perl 5.12
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1139
diff changeset
   209
PKGMOG_DEFINES += PERL_PKG_VERSION=$(PERL_PKG_VERSION_CMD:sh)
54bcc6a673bf 7054723 X consolidation should move to perl 5.12
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1139
diff changeset
   210
1132
d9f96853a754 7047456 X could do better at building & packaging python bits
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1130
diff changeset
   211
# Python version string used in path names, such as /usr/lib/python2.6
d9f96853a754 7047456 X could do better at building & packaging python bits
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1130
diff changeset
   212
PKGMOG_DEFINES += PYTHON_PATH_VERSION=$(PYTHON_VERSION)
d9f96853a754 7047456 X could do better at building & packaging python bits
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1130
diff changeset
   213
# Python version string used in package names, such as pkg:/runtime/python-26
d9f96853a754 7047456 X could do better at building & packaging python bits
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1130
diff changeset
   214
PYTHON_PKG_VERSION_CMD = print $(PYTHON_VERSION) | tr -d '.'
d9f96853a754 7047456 X could do better at building & packaging python bits
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1130
diff changeset
   215
PKGMOG_DEFINES += PYTHON_PKG_VERSION=$(PYTHON_PKG_VERSION_CMD:sh)
d9f96853a754 7047456 X could do better at building & packaging python bits
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1130
diff changeset
   216
1298
ab0ddcc3ce3c 7174068 X gate should use automake 1.11
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1276
diff changeset
   217
# automake version needed for build dependencies
ab0ddcc3ce3c 7174068 X gate should use automake 1.11
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1276
diff changeset
   218
AUTOMAKE_PKG_VERSION_CMD = print $(AUTOMAKE_VERSION) | tr -d '.'
ab0ddcc3ce3c 7174068 X gate should use automake 1.11
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1276
diff changeset
   219
PKGMOG_DEFINES += AUTOMAKE_PKG_VERSION=$(AUTOMAKE_PKG_VERSION_CMD:sh)
ab0ddcc3ce3c 7174068 X gate should use automake 1.11
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1276
diff changeset
   220
1479
4a76cf532c2c 19978574 Need an automated, repeatable way to generate X's FOSS required source releases
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1443
diff changeset
   221
# gcc version needed for build dependencies
4a76cf532c2c 19978574 Need an automated, repeatable way to generate X's FOSS required source releases
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1443
diff changeset
   222
GCC_PKG_VERSION_CMD = print $(GCC_VERSION) | tr -d '.'
4a76cf532c2c 19978574 Need an automated, repeatable way to generate X's FOSS required source releases
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1443
diff changeset
   223
PKGMOG_DEFINES += GCC_PKG_VERSION=$(GCC_PKG_VERSION_CMD:sh)
1298
ab0ddcc3ce3c 7174068 X gate should use automake 1.11
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1276
diff changeset
   224
1153
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   225
PROC_PKGS = $(PKGS:%=$(PDIR)/%.mog)
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   226
PROC_CURRENT_PKGS = $(CURRENT_MANIFESTS:%.p5m=$(PDIR)/%.mog)
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   227
PROC_LEGACY_PKGS = $(LEGACY_MANIFESTS:%.p5m=$(PDIR)/%.mog)
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   228
PROC_SYNTH_PKGS = $(SYNTH_MANIFESTS:%.p5m=$(PDIR)/%.mog)
1172
4597acbe535f 7041659 X packages should not deliver dir actions for directories defined elsewhere
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1161
diff changeset
   229
PROC_EXCEPTIONS = $(EXCEPTION_MANIFESTS:%.p5m=$(PDIR)/%.mog)
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   230
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   231
# Default transformations to apply
1003
a4d17d6bc179 6980773 X gate needs branding options
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 982
diff changeset
   232
PM_TRANSFORMS = $(PKG_BRANDING_TRANSFORMS) \
a4d17d6bc179 6980773 X gate needs branding options
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 982
diff changeset
   233
		common_actions publish restart_fmri facets \
1392
fa8ecde31cf5 17251350 X needs more TPNO's
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1356
diff changeset
   234
		$(PDIR)/versions
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   235
PM_INC = transforms
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   236
1153
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   237
# Additional transforms for specific types of packages
1172
4597acbe535f 7041659 X packages should not deliver dir actions for directories defined elsewhere
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1161
diff changeset
   238
$(PROC_CURRENT_PKGS) $(PROC_SYNTH_PKGS) $(PROC_EXCEPTIONS) := \
4597acbe535f 7041659 X packages should not deliver dir actions for directories defined elsewhere
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1161
diff changeset
   239
	EXTRA_TRANSFORMS = defaults
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   240
1172
4597acbe535f 7041659 X packages should not deliver dir actions for directories defined elsewhere
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1161
diff changeset
   241
mogrify: $(PROC_PKGS) $(PROC_EXCEPTIONS)
1154
941fbafb8c39 7034214 X-redistributable should become X-all and use depend type=group
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1153
diff changeset
   242
$(PROC_PKGS) $(PROC_SYNTH_PKGS): $(PDIR)/versions
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   243
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   244
# Combine & uniq metadata & license attributes generated during build
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   245
$(PDIR)/%.attr:
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   246
	@print "## Gathering metadata from build for $(@F)"
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   247
	$(PKGDEBUG)case '$(@F)' in \
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   248
		system-font-*) ADDITIONAL_ATTRS="$(@:%.attr=%.font)" ;; \
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   249
	esac ; \
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   250
	$(PERL) merge-metadata.pl $${ADDITIONAL_ATTRS} \
1105
515c6398d9df 7010836 Package manifests in X gate should use .p5m naming convention
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1072
diff changeset
   251
		~(N)$(PROTOMETA)/$(@F:.attr=)/attributes_*.p5m \
515c6398d9df 7010836 Package manifests in X gate should use .p5m naming convention
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1072
diff changeset
   252
		~(N)$(PROTOMETA)/$(@F:.attr=)/license_*.p5m /dev/null > $@
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   253
1105
515c6398d9df 7010836 Package manifests in X gate should use .p5m naming convention
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1072
diff changeset
   254
$(PDIR)/%.mog: $(PDIR)/%.p5m $(PDIR)/%.attr
515c6398d9df 7010836 Package manifests in X gate should use .p5m naming convention
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1072
diff changeset
   255
	@print "## Processing manifest $(@F:.mog=.p5m)"
1153
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   256
	$(PKGDEBUG)$(RM) $(@) $(@:%.mog=%) \
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   257
		$(@:%.mog=%.metadata.*) $(@:%.mog=%.synth)
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   258
	$(PKGDEBUG)$(PKGMOGRIFY) $(PKGMOG_VERBOSE) $(PM_INC:%= -I %) \
1153
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   259
		$(PKGMOG_DEFINES:%=-D %) -O $(@) \
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   260
		$(@:%.mog=%.p5m) $(@:%.mog=%.attr) \
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   261
		$(PM_TRANSFORMS) $(EXTRA_TRANSFORMS)
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   262
	$(PKGDEBUG)$(TOUCH) $(@)
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   263
1479
4a76cf532c2c 19978574 Need an automated, repeatable way to generate X's FOSS required source releases
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1443
diff changeset
   264
# List of all packages we build, used in open source code release zip files
4a76cf532c2c 19978574 Need an automated, repeatable way to generate X's FOSS required source releases
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1443
diff changeset
   265
$(TOP)/pkglist.txt:
4a76cf532c2c 19978574 Need an automated, repeatable way to generate X's FOSS required source releases
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1443
diff changeset
   266
	@print "## Generating pkglist.txt"
4a76cf532c2c 19978574 Need an automated, repeatable way to generate X's FOSS required source releases
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1443
diff changeset
   267
	$(PKGDEBUG)$(PKGMOGRIFY) $(PKGMOG_VERBOSE) $(PM_INC:%= -I %) \
4a76cf532c2c 19978574 Need an automated, repeatable way to generate X's FOSS required source releases
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1443
diff changeset
   268
		$(PKGMOG_DEFINES:%=-D %) -O /dev/null \
4a76cf532c2c 19978574 Need an automated, repeatable way to generate X's FOSS required source releases
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1443
diff changeset
   269
		-I manifests -I legacy $(ALL_MANIFEST_SRCS) extract_names \
4a76cf532c2c 19978574 Need an automated, repeatable way to generate X's FOSS required source releases
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1443
diff changeset
   270
		| LC_ALL=C sort -u > $(@)
4a76cf532c2c 19978574 Need an automated, repeatable way to generate X's FOSS required source releases
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1443
diff changeset
   271
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   272
### Dependency detection
1261
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   273
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   274
# Package manifest containing list of packages to use in dependency
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   275
# resolution, and not containing any dependencies to be detected/resolved.
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   276
DEP_LIST_PKG = developer-opensolaris-X
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   277
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   278
DEP_PKGS= $(PKGS:%=$(PDIR)/%.dep)
1261
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   279
DEP_CURRENT_PKGS_1 = $(CURRENT_MANIFESTS:%.p5m=$(PDIR)/%.dep)
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   280
DEP_CURRENT_PKGS = $(DEP_CURRENT_PKGS_1:$(PDIR)/$(DEP_LIST_PKG).dep=)
1152
6cf0f98f6d5f 6979433 several X packages missing dependencies on ogl-select package
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1147
diff changeset
   281
DEP_LEGACY_PKGS = $(LEGACY_MANIFESTS:%.p5m=$(PDIR)/%.dep)
1261
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   282
DEP_LEGACY_PKGS += $(DEP_LIST_PKG:%=$(PDIR)/%.dep)
1152
6cf0f98f6d5f 6979433 several X packages missing dependencies on ogl-select package
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1147
diff changeset
   283
DEP_SYNTH_PKGS = $(SYNTH_MANIFESTS:%.p5m=$(PDIR)/%.dep)
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   284
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   285
PKGDEP_TOKENS_i386= \
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   286
	'PLATFORM=i86hvm' \
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   287
	'PLATFORM=i86pc' \
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   288
	'PLATFORM=i86xpv' \
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   289
	'ISALIST=amd64' \
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   290
	'ISALIST=i386'
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   291
PKGDEP_TOKENS_sparc= \
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   292
	'PLATFORM=sun4u' \
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   293
	'PLATFORM=sun4v' \
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   294
	'ISALIST=sparcv9' \
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   295
	'ISALIST=sparc'
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   296
PKGDEP_TOKENS= $(PKGDEP_TOKENS_$(PKGMACH))
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   297
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   298
$(PDIR)/%.dep: $(PDIR)/%.mog
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   299
	@print "## Generating dependencies for $(<F)"
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   300
	$(PKGDEBUG)$(RM) $(@)
1153
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   301
	$(PKGDEBUG)if [[ "$(SUPPRESSPKGDEP)" != "true" ]]; then \
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   302
		pkgdepend generate -m $(PKGDEP_TOKENS:%=-D %) $(<) \
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   303
			$(PKGROOT) > $(@); \
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   304
	else \
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   305
		$(CP) $(<) $(@); \
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   306
	fi
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   307
1152
6cf0f98f6d5f 6979433 several X packages missing dependencies on ogl-select package
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1147
diff changeset
   308
$(DEP_SYNTH_PKGS) $(DEP_LEGACY_PKGS): $$(@:%.dep=%.mog)
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   309
	@print "## Skipping dependency generation for $(@F:%.dep=%)"
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   310
	$(PKGDEBUG)$(CP) $(@:%.dep=%.mog) $(@)
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   311
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   312
### Dependency resolution
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   313
1261
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   314
DEP_RES_PKGS = $(DEP_PKGS:%=%.res)
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   315
DEP_RES_CURRENT_PKGS = $(DEP_CURRENT_PKGS:%=%.res)
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   316
DEP_RES_LEGACY_PKGS = $(DEP_LEGACY_PKGS:%=%.res)
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   317
DEP_RES_SYNTH_PKGS = $(DEP_SYNTH_PKGS:%=%.res)
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   318
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   319
PKGDEP_VERBOSE_FLAG_0 =
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   320
PKGDEP_VERBOSE_FLAG_1 = -v
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   321
PKGDEP_VERBOSE_FLAG = $(PKGDEP_VERBOSE_FLAG_$(V))
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   322
1046
ecba5d6aaf2e 7002412 X builds using build 153 pkg bits will fail to generate automatic dependencies
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1009
diff changeset
   323
# Root of pkg image to use for dependency resolution
ecba5d6aaf2e 7002412 X builds using build 153 pkg bits will fail to generate automatic dependencies
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1009
diff changeset
   324
# Normally / on the machine used to build the binaries
ecba5d6aaf2e 7002412 X builds using build 153 pkg bits will fail to generate automatic dependencies
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1009
diff changeset
   325
PKGDEP_RESOLVE_IMAGE = /
ecba5d6aaf2e 7002412 X builds using build 153 pkg bits will fail to generate automatic dependencies
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1009
diff changeset
   326
1261
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   327
# File listing packages to consider in dependency resolution.
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   328
# Automatically generated from the developer package to ensure they
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   329
# stay in sync.
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   330
PKGDEP_RESOLVE_LIST = $(PDIR)/resolve.deps
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   331
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   332
$(PKGDEP_RESOLVE_LIST): $(PDIR)/$(DEP_LIST_PKG).mog
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   333
	@print "## Generating package list for dependency resolution"
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   334
	$(PKGDEBUG)$(PKGMOGRIFY) $(PKGMOG_VERBOSE) $(PM_INC:%= -I %) \
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   335
	    -O /dev/null -P $(@) $(PDIR)/$(DEP_LIST_PKG).mog extract_depends
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   336
1152
6cf0f98f6d5f 6979433 several X packages missing dependencies on ogl-select package
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1147
diff changeset
   337
# This rule resolves dependencies across all manifests for packages
6cf0f98f6d5f 6979433 several X packages missing dependencies on ogl-select package
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1147
diff changeset
   338
# currently delivering files.
1261
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   339
$(PDIR)/gendeps: $(DEP_CURRENT_PKGS) $(PKGDEP_RESOLVE_LIST)
1152
6cf0f98f6d5f 6979433 several X packages missing dependencies on ogl-select package
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1147
diff changeset
   340
	$(PKGDEBUG)if [[ "$(SUPPRESSPKGDEP)" = "true" ]]; then \
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   341
		print "## Suppressing dependency resolution"; \
1152
6cf0f98f6d5f 6979433 several X packages missing dependencies on ogl-select package
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1147
diff changeset
   342
		for p in $(DEP_CURRENT_PKGS:%.dep=%); do \
6cf0f98f6d5f 6979433 several X packages missing dependencies on ogl-select package
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1147
diff changeset
   343
			$(CP) $$p.dep $$p.dep.res; \
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   344
		done; \
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   345
	else \
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   346
		print "## Resolving dependencies"; \
1261
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   347
		pkgdepend -R $(PKGDEP_RESOLVE_IMAGE) resolve -E \
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   348
		    $(PKGDEP_VERBOSE_FLAG) -e $(PKGDEP_RESOLVE_LIST) \
3b92d1254188 7155045 X builds should provide pkgdepend resolve a limited list via -e
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1207
diff changeset
   349
		    -m $(DEP_CURRENT_PKGS) ; \
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   350
	fi
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   351
	$(PKGDEBUG)$(TOUCH) $(@)
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   352
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   353
gendeps: $(PDIR)/gendeps
1152
6cf0f98f6d5f 6979433 several X packages missing dependencies on ogl-select package
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1147
diff changeset
   354
$(DEP_RES_CURRENT_PKGS): $(PDIR)/gendeps
6cf0f98f6d5f 6979433 several X packages missing dependencies on ogl-select package
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1147
diff changeset
   355
6cf0f98f6d5f 6979433 several X packages missing dependencies on ogl-select package
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1147
diff changeset
   356
$(DEP_RES_SYNTH_PKGS) $(DEP_RES_LEGACY_PKGS): $$(@:%.dep.res=%.dep)
6cf0f98f6d5f 6979433 several X packages missing dependencies on ogl-select package
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1147
diff changeset
   357
	@print "## Skipping dependency generation for $(@F:%.dep.res=%)"
6cf0f98f6d5f 6979433 several X packages missing dependencies on ogl-select package
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1147
diff changeset
   358
	$(PKGDEBUG)$(CP) $(@:%.dep.res=%.dep) $(@)
6cf0f98f6d5f 6979433 several X packages missing dependencies on ogl-select package
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1147
diff changeset
   359
6cf0f98f6d5f 6979433 several X packages missing dependencies on ogl-select package
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1147
diff changeset
   360
# Post-processing of manifests after dependency resolution
1153
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   361
RES_PKGS = $(PKGS:%=$(PDIR)/%.res)
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   362
RES_CURRENT_PKGS = $(CURRENT_MANIFESTS:%.p5m=$(PDIR)/%.res)
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   363
RES_LEGACY_PKGS = $(LEGACY_MANIFESTS:%.p5m=$(PDIR)/%.res)
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   364
RES_SYNTH_PKGS = $(SYNTH_MANIFESTS:%.p5m=$(PDIR)/%.res)
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   365
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   366
POST_TRANSFORMS = post-pkgdepend extract_metadata
1152
6cf0f98f6d5f 6979433 several X packages missing dependencies on ogl-select package
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1147
diff changeset
   367
$(PDIR)/%.res: $(PDIR)/%.dep.res
1153
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   368
	@print "## Post-processing manifest for $(@F:%.res=%)"
1152
6cf0f98f6d5f 6979433 several X packages missing dependencies on ogl-select package
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1147
diff changeset
   369
	$(PKGDEBUG)if [[ -s $< ]] ; then \
6cf0f98f6d5f 6979433 several X packages missing dependencies on ogl-select package
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1147
diff changeset
   370
		$(PKGMOGRIFY) $(PKGMOG_VERBOSE) $(PM_INC:%= -I %) \
1153
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   371
		 -O $@ -P $(@:%.res=%.synth) $< $(POST_TRANSFORMS) ; \
1152
6cf0f98f6d5f 6979433 several X packages missing dependencies on ogl-select package
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1147
diff changeset
   372
	else \
6cf0f98f6d5f 6979433 several X packages missing dependencies on ogl-select package
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1147
diff changeset
   373
		$(CP) $< $@ ; \
6cf0f98f6d5f 6979433 several X packages missing dependencies on ogl-select package
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1147
diff changeset
   374
	fi
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   375
1153
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   376
# Generate info for synthetic manifests
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   377
$(RES_SYNTH_PKGS): $(RES_PKGS) $$(@:%.res=%.dep.res)
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   378
	@print "## Gathering package lists for synthetic package $(@F:%.res=%)"
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   379
	$(PKGDEBUG)$(PKGMOGRIFY) $(PKGMOG_VERBOSE) $(PM_INC:%= -I %) \
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   380
		-O $(@) -P $(@:%.res=%.synth.sed) \
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   381
		$(@:%.res=%.dep.res) synthetic
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   382
	$(PKGDEBUG)$(SED) -n -f $(@:%.res=%.synth.sed) $(PDIR)/*.synth >> $(@)
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   383
912dd58dfc72 7059188 simplify and mogrify X meta-package synthesis
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1152
diff changeset
   384
1130
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   385
### pkglint checking (pre-publication)
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   386
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   387
PKGLINT = pkglint
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   388
PKGLINTRC = prepub-pkglintrc
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   389
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   390
#
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   391
# This rule runs pkglint across all manifests to be published.
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   392
#
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   393
# We require that packages be free from lint ERRORs before allowing them
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   394
# to be published.  Lint WARNINGs are acceptable (though unpleasant)
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   395
# The list of packages is the list of packages that did not resolve to
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   396
# 0-byte files, $CHECK_PKGS
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   397
#
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   398
$(PDIR)/checkmf: $(PDIR)/gendeps $(DEP_SYNTH_PKGS) $(DEP_PKGS)
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   399
	@print "## Checking packages"
1161
92cb0ee2804d 7061971 X builds shouldn't re-run pkglint when processed manifests haven't changed
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1154
diff changeset
   400
	@$(RM) $@
1130
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   401
	@$(TOUCH) $(PDIR)/pkglint-output.txt
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   402
	-$(PKGDEBUG)for p in $(DEP_SYNTH_PKGS:%.dep=%) $(DEP_PKGS:%.dep=%); do \
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   403
		if [[ -s $$p.res ]]; then \
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   404
			CHECK_PKGS="$$p.res $${CHECK_PKGS}"; \
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   405
		fi; \
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   406
	done; \
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   407
	if [[ -n "$${CHECK_PKGS}" ]]; then \
1172
4597acbe535f 7041659 X packages should not deliver dir actions for directories defined elsewhere
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1161
diff changeset
   408
		$(PKGLINT) -f $(PKGLINTRC) $${CHECK_PKGS} $(PROC_EXCEPTIONS) \
1130
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   409
		    2> $(PDIR)/pkglint-output.txt; \
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   410
	fi ; \
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   411
	if grep '^ERROR' $(PDIR)/pkglint-output.txt; then \
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   412
		return 1; \
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   413
	fi
1161
92cb0ee2804d 7061971 X builds shouldn't re-run pkglint when processed manifests haven't changed
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1154
diff changeset
   414
	@$(TOUCH) $@
1130
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   415
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   416
### Repo setup
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   417
1704
4c67bc06f3ac 25862952 publisher change and prep for moving to github
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents: 1610
diff changeset
   418
PKGPUBLISHER = nightly
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   419
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   420
# Initialize the empty on-disk repositories
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   421
$(PKGDEST):
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   422
	@print "## Initializing $(@F)"
1139
5625f8498d99 7048514 X gate should use pkgrepo command
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1132
diff changeset
   423
	$(PKGDEBUG)pkgrepo create --version 4 $(@)
5625f8498d99 7048514 X gate should use pkgrepo command
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1132
diff changeset
   424
	$(PKGDEBUG)pkgrepo add-publisher -s $(@) $(PKGPUBLISHER)
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   425
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   426
clean-repo:
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   427
	$(RM) -r $(PKGDEST)
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   428
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   429
### Package publication to repo
1356
73c3eb360de2 16167547 Update copyright & license display & metadata in X packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1316
diff changeset
   430
PUB_PKGS = $(SYNTH_PKGS:%=$(PDIR)/%.pub) $(PKGS:%=$(PDIR)/%.pub)
73c3eb360de2 16167547 Update copyright & license display & metadata in X packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1316
diff changeset
   431
PUB_SYNTH_PKGS = $(SYNTH_MANIFESTS:%.p5m=$(PDIR)/%.pub)
1130
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   432
publish_pkgs: $(PKGDEST) $(PDIR)/gendeps $(PDIR)/checkmf $(PUB_PKGS)
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   433
1130
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   434
$(PUB_PKGS): $(PKGDEST) $(PDIR)/gendeps $(PDIR)/checkmf
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   435
1356
73c3eb360de2 16167547 Update copyright & license display & metadata in X packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1316
diff changeset
   436
$(PDIR)/%.pub: $(PKGDEST) $(PDIR)/gendeps $(PDIR)/%.res
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   437
	$(PKGDEBUG) if [ -s $(@:%.pub=%.res) ]; then \
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   438
		print "## Publishing $(@F:%.pub=%) to proto repository"; \
1139
5625f8498d99 7048514 X gate should use pkgrepo command
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1132
diff changeset
   439
		pkgsend -s $(PKGDEST) publish -d $(PKGROOT) \
1356
73c3eb360de2 16167547 Update copyright & license display & metadata in X packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1316
diff changeset
   440
		    -d $(PROTOMETA)/$(@F:%.pub=%) \
1132
d9f96853a754 7047456 X could do better at building & packaging python bits
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1130
diff changeset
   441
		    --fmri-in-manifest --no-index --no-catalog -T '*.py' \
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   442
		    $(@:%.pub=%.res) > /dev/null; \
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   443
	fi; \
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   444
	$(TOUCH) $(@)
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   445
1356
73c3eb360de2 16167547 Update copyright & license display & metadata in X packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1316
diff changeset
   446
$(PUB_SYNTH_PKGS): $(SYNTH_LICENSES)
73c3eb360de2 16167547 Update copyright & license display & metadata in X packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1316
diff changeset
   447
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   448
### Repo finalization
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   449
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   450
install: repository-metadata
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   451
default: install
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   452
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   453
repository-metadata: $(PUB_PKGS)
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   454
	@print "## Creating repository metadata"
1139
5625f8498d99 7048514 X gate should use pkgrepo command
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1132
diff changeset
   455
	$(PKGDEBUG)pkgrepo refresh -s $(PKGDEST)
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   456
1130
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   457
### pkglint checking (post-publication)
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   458
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   459
LINT_PKGLINTRC = postpub-pkglintrc
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   460
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   461
#
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   462
# Perform a pkglint run on the published repositories.  We remove package
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   463
# version information from the lint output so that it is comparable across
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   464
# lint runs.
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   465
#
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   466
lint:
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   467
	@print "## Running pkglint on the $(PKGPUBLISHER) repository"
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   468
	-$(PKGDEBUG)$(PKGLINT) -f $(LINT_PKGLINTRC) \
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   469
	    -l file://$(PKGDEST) -c /tmp/pkglint_cache.$$$$ \
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   470
	    $(PKGLINT_REFERENCE_REPO:%=-r %) \
1139
5625f8498d99 7048514 X gate should use pkgrepo command
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1132
diff changeset
   471
	    > $(PDIR)/pkglint.out 2> $(PDIR)/pkglint.lint ; \
5625f8498d99 7048514 X gate should use pkgrepo command
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1132
diff changeset
   472
	grep '^Error:' $(PDIR)/pkglint.out ; \
1130
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   473
	$(RM) -rf /tmp/pkglint_cache.$$$$
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   474
	$(PKGDEBUG)$(SED) -e 's/@[0-9TZ.:,-]*//g' $(PDIR)/pkglint.lint
e9cbce844ef6 7041591 duplicate and missing dependencies in x11 IPS packages
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1120
diff changeset
   475
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   476
### Overall rules
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   477
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   478
all: $(PROC_PKGS) $(PROC_SYNTH_PKGS) $(DEP_PKGS) $(DEP_SYNTH_PKGS) \
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   479
	$(PDIR)/gendeps
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   480
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   481
clean:
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   482
	-$(RM) -r $(PDIR)
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   483
1479
4a76cf532c2c 19978574 Need an automated, repeatable way to generate X's FOSS required source releases
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1443
diff changeset
   484
clobber: clean clean-repo
4a76cf532c2c 19978574 Need an automated, repeatable way to generate X's FOSS required source releases
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1443
diff changeset
   485
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   486
.PARALLEL: $(PKGS) $(PROC_PKGS) $(DEP_PKGS) \
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   487
	$(PROC_SYNTH_PKGS) $(DEP_SYNTH_PKGS) $(PUB_PKGS)
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   488
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   489
#
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   490
# rules to validate proto area against manifests, and check for safe
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   491
# file permission modes
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   492
#
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   493
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   494
EXCEPTIONS= $(PWD)/../exception_lists/packaging $(PDIR)/generated-exceptions
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   495
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   496
# Automatically exclude all pkg-config uninstalled.pc files, since those
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   497
# should never be packaged
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   498
$(PDIR)/generated-exceptions:
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   499
	$(PKGDEBUG)(cd $(PKGROOT) ; find . -name '*-uninstalled.pc') > $@
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   500
1172
4597acbe535f 7041659 X packages should not deliver dir actions for directories defined elsewhere
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1161
diff changeset
   501
protocmp: $(PROC_PKGS) $(EXCEPTIONS) $(PROC_EXCEPTIONS) fix_perms
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   502
	$(PKGDEBUG)validate_pkg -a $(PKGMACH) -v $(EXCEPTIONS:%=-e %) \
1443
a5b16a4d7253 18453161 X pkg build fails on the s12_43 based shared build servers because of 18419497
Niveditha Rau <Niveditha.Rau@Oracle.COM>
parents: 1427
diff changeset
   503
		-m $(PDIR) -p $(PKGROOT) || true
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   504
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   505
pmodes: $(PROC_PKGS) fix_perms
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   506
	$(PKGDEBUG)validate_pkg -a $(PKGMACH) -M -m $(PDIR)
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   507
1207
996eb6e88a18 7086641 X package manifests should move to pkgfmt version 2
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1189
diff changeset
   508
check-pkgfmt: $(ALL_MANIFESTS)
996eb6e88a18 7086641 X package manifests should move to pkgfmt version 2
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1189
diff changeset
   509
	@print "## Checking for manifests not in pkgfmt expected form"
996eb6e88a18 7086641 X package manifests should move to pkgfmt version 2
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1189
diff changeset
   510
	$(PKGDEBUG)$(PKGFMT) -c $(ALL_MANIFESTS) || true
996eb6e88a18 7086641 X package manifests should move to pkgfmt version 2
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1189
diff changeset
   511
	@print ""
996eb6e88a18 7086641 X package manifests should move to pkgfmt version 2
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1189
diff changeset
   512
996eb6e88a18 7086641 X package manifests should move to pkgfmt version 2
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1189
diff changeset
   513
check: protocmp pmodes lint check-pkgfmt
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   514
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   515
# Instead of fixing all the upstream packages to follow our permission rules
1500
f21b42287315 20484350 cleanup assorted build & check warnings
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1479
diff changeset
   516
# just fix the files in these subdirs of the proto area to match our rules.
f21b42287315 20484350 cleanup assorted build & check warnings
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1479
diff changeset
   517
FIX_PERMS_IN = /usr /lib /etc/X11 /etc/fonts /etc/hal
970
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   518
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   519
fix_perms: 
272328fe1b4a 6941932 X should be able to build IPS packages natively
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
   520
	@print "## Fixing proto area permissions"
1500
f21b42287315 20484350 cleanup assorted build & check warnings
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1479
diff changeset
   521
	$(PKGDEBUG)find $(FIX_PERMS_IN:%=$(PKGROOT)%) -type f -exec chmod a-w \{\} \+
1533
ad1b269b27ae 21029553 "make source" fails in freshly checked out X gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1527
diff changeset
   522
ad1b269b27ae 21029553 "make source" fails in freshly checked out X gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1527
diff changeset
   523
# Nothing to do for "make source", but avoid error when run at top-level
ad1b269b27ae 21029553 "make source" fails in freshly checked out X gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1527
diff changeset
   524
source:
ad1b269b27ae 21029553 "make source" fails in freshly checked out X gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1527
diff changeset
   525
	@true