1 #
   2 # CDDL HEADER START
   3 #
   4 # The contents of this file are subject to the terms of the
   5 # Common Development and Distribution License (the "License").
   6 # You may not use this file except in compliance with the License.
   7 #
   8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9 # or http://www.opensolaris.org/os/licensing.
  10 # See the License for the specific language governing permissions
  11 # and limitations under the License.
  12 #
  13 # When distributing Covered Code, include this CDDL HEADER in each
  14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15 # If applicable, add the following below this CDDL HEADER, with the
  16 # fields enclosed by brackets "[]" replaced with your own identifying
  17 # information: Portions Copyright [yyyy] [name of copyright owner]
  18 #
  19 # CDDL HEADER END
  20 #
  21 
  22 #
  23 # Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
  24 # Use is subject to license terms.
  25 #
  26 
  27 #set default
  28 ARCH=i386
  29 NATIVE_ARCH:sh = uname -p
  30 PROTO_AREA=../../../proto/root_$(NATIVE_ARCH)
  31 
  32 #
  33 # Needs to point to filesystem on Solaris install dvd
  34 # replace as needed with a local solaris install image
  35 #
  36 WOS_PKGS=/net/netinstall.sfbay/export/nv/x/$(BUILDID)/Solaris_11/Product
  37 NONWOS_DOCK=nv_osoldev
  38 NONWOS_PKGS=/net/paradise.sfbay/export/integrate_dock/nv/$(NONWOS_DOCK)/all \
  39             /net/paradise.sfbay/export/integrate_dock/nv/$(NONWOS_DOCK)/$(ARCH)
  40 
  41 TEST_PKGS=
  42 REPO=http://localhost:10000
  43 JUST_THESE_PKGS=
  44 
  45 ALL_PKGS=       ../../../packages/$(ARCH)       \
  46                 $(TEST_PKGS)                    \
  47                 $(NONWOS_PKGS)                  \
  48                 $(WOS_PKGS) .
  49 
  50 POUND_SIGN:sh=                          echo \\043
  51 
  52 i386_DEFINES=           \
  53         ARCH=i386       \
  54         ARCH32=i86      \
  55         ARCH64=amd64    \
  56         i386_ONLY=''    \
  57         sparc_ONLY=$(POUND_SIGN)
  58 
  59 sparc_DEFINES=          \
  60         ARCH=sparc      \
  61         ARCH32=sparcv7  \
  62         ARCH64=sparcv9  \
  63         i386_ONLY=$(POUND_SIGN) \
  64         sparc_ONLY=''
  65 
  66 ARCH_DEFINES=$($(ARCH)_DEFINES)
  67 
  68 TMPPKGS=SUNWfixes
  69 EXTRA_OPTIONS=
  70 
  71 GLOBAL_CHATTRS_BASE=    \
  72         reboot          \
  73         smf_manifests
  74 
  75 GLOBAL_CHATTRS_86 = $(GLOBAL_CHATTRS_BASE)
  76 GLOBAL_CHATTRS_89 = $(GLOBAL_CHATTRS_BASE)
  77 GLOBAL_CHATTRS_90 = $(GLOBAL_CHATTRS_BASE)
  78 GLOBAL_CHATTRS_91 = $(GLOBAL_CHATTRS_BASE)
  79 GLOBAL_CHATTRS_92 = $(GLOBAL_CHATTRS_BASE)
  80 GLOBAL_CHATTRS_93 = $(GLOBAL_CHATTRS_BASE)
  81 GLOBAL_CHATTRS_94 = $(GLOBAL_CHATTRS_BASE)
  82 GLOBAL_CHATTRS_95 = $(GLOBAL_CHATTRS_BASE)
  83 GLOBAL_CHATTRS_96 = $(GLOBAL_CHATTRS_BASE)
  84 GLOBAL_CHATTRS_97 = $(GLOBAL_CHATTRS_BASE)
  85 GLOBAL_CHATTRS_98 = $(GLOBAL_CHATTRS_BASE)
  86 GLOBAL_CHATTRS_99 = $(GLOBAL_CHATTRS_BASE)
  87 GLOBAL_CHATTRS_100a = $(GLOBAL_CHATTRS_BASE)
  88 GLOBAL_CHATTRS_101 = $(GLOBAL_CHATTRS_BASE) fonts gnome
  89 GLOBAL_CHATTRS_101a = $(GLOBAL_CHATTRS_101)
  90 GLOBAL_CHATTRS_105 = $(GLOBAL_CHATTRS_101)
  91 GLOBAL_CHATTRS_106 = $(GLOBAL_CHATTRS_101) variants
  92 GLOBAL_CHATTRS_107 = $(GLOBAL_CHATTRS_106)
  93 GLOBAL_CHATTRS_108 = $(GLOBAL_CHATTRS_106)
  94 GLOBAL_CHATTRS_109 = $(GLOBAL_CHATTRS_106)
  95 GLOBAL_CHATTRS_110 = $(GLOBAL_CHATTRS_106)
  96 GLOBAL_CHATTRS_111 = $(GLOBAL_CHATTRS_106)
  97 GLOBAL_CHATTRS_111a = $(GLOBAL_CHATTRS_106)
  98 GLOBAL_CHATTRS_116 = $(GLOBAL_CHATTRS_106)
  99 GLOBAL_CHATTRS_117 = $(GLOBAL_CHATTRS_106)
 100 GLOBAL_CHATTRS_118 = $(GLOBAL_CHATTRS_106) attrs
 101 GLOBAL_CHATTRS = $(GLOBAL_CHATTRS_$(BUILDID))
 102 
 103 SOLARIS.PY=PYTHONPATH=$(PROTO_AREA)/usr/lib/python2.4/vendor-packages \
 104         ./solaris.py -b 0.$(BUILDID) $(EXTRA_OPTIONS) -T \*.py \
 105         $(GLOBAL_CHATTRS:%= -G %) $(ARCH_DEFINES:%= -m %) \
 106         -p $(PROTO_AREA)
 107 
 108 #
 109 # always remove the following (editable) files from packages we bulk import;
 110 # we're doing this until the necessary actions are available.  For now,
 111 # cache as-installed versions.
 112 #
 113 ELIDED_FILES_BASE= \
 114         boot/solaris/devicedb/master    \
 115         etc/hba.conf                    \
 116         etc/ima.conf                    \
 117         etc/inet/services               \
 118         etc/mpapi.conf
 119 
 120 ELIDED_FILES_ATTR =     \
 121         etc/security/auth_attr          \
 122         etc/security/exec_attr          \
 123         etc/security/prof_attr          \
 124         etc/user_attr
 125 
 126 
 127 ELIDED_FILES_86 = $(ELIDED_FILES_BASE) $(ELIDED_FILES_ATTR) etc/devlink.tab
 128 ELIDED_FILES_89 = $(ELITED_FILES_86) kernel/drv/sd.conf
 129 ELIDED_FILES_90 = $(ELIDED_FILES_89)
 130 ELIDED_FILES_91 = $(ELIDED_FILES_89)
 131 ELIDED_FILES_92 = $(ELIDED_FILES_89)
 132 ELIDED_FILES_93 = $(ELIDED_FILES_89)
 133 ELIDED_FILES_94 = $(ELIDED_FILES_89)
 134 ELIDED_FILES_95 = $(ELIDED_FILES_89)
 135 ELIDED_FILES_96 = $(ELIDED_FILES_89)
 136 ELIDED_FILES_97 = $(ELIDED_FILES_89)
 137 ELIDED_FILES_98 = $(ELIDED_FILES_89)
 138 ELIDED_FILES_99 = $(ELIDED_FILES_89)
 139 ELIDED_FILES_100a = $(ELIDED_FILES_BASE) $(ELIDED_FILES_ATTR) kernel/drv/sd.conf
 140 ELIDED_FILES_101 = $(ELIDED_FILES_100a)
 141 ELIDED_FILES_101a = $(ELIDED_FILES_100a)
 142 ELIDED_FILES_105 = $(ELIDED_FILES_100a)
 143 ELIDED_FILES_106 = $(ELIDED_FILES_BASE) $(ELIDED_FILES_ATTR)
 144 ELIDED_FILES_107 = $(ELIDED_FILES_106)
 145 ELIDED_FILES_108 = $(ELIDED_FILES_106)
 146 ELIDED_FILES_109 = $(ELIDED_FILES_106)
 147 ELIDED_FILES_110 = $(ELIDED_FILES_106)
 148 ELIDED_FILES_111 = $(ELIDED_FILES_106)
 149 ELIDED_FILES_111a = $(ELIDED_FILES_106)
 150 ELIDED_FILES_116 = $(ELIDED_FILES_106)
 151 ELIDED_FILES_117 = $(ELIDED_FILES_106)
 152 ELIDED_FILES_118 = $(ELIDED_FILES_BASE)
 153 ELIDED_FILES = $(ELIDED_FILES_$(BUILDID))
 154 
 155 #
 156 # these files get placed into proto area from per-build cached versions
 157 #
 158 CACHED_FILES_BASE=                                                      \
 159         $(ELIDED_FILES)                                                 \
 160         boot/grub/menu.lst                                              \
 161         boot/grub/splash.xpm.gz                                         \
 162         etc/inet/hosts                                                  \
 163         etc/zones/SUNWblank.xml                                         \
 164         etc/zones/SUNWdefault.xml                                       \
 165         lib/svc/method/fs-usr                                           \
 166         lib/svc/method/sshd                                             \
 167         lib/svc/method/svc-coreadm                                      \
 168         lib/svc/method/svc-dlmgmtd                                      \
 169         usr/jdk/instances/jdk1.6.0/jre/lib/fontconfig.properties        \
 170         usr/lib/vp-services                                             \
 171         usr/lib/vp-shares                                               \
 172         var/svc/manifest/system/coreadm.xml                             \
 173         var/svc/profile/generic_limited_net.xml                         \
 174         var/svc/profile/generic_open.xml
 175 
 176 CACHED_FILES_86 = $(CACHED_FILES_BASE)
 177 CACHED_FILES_89 = $(CACHED_FILES_BASE)
 178 CACHED_FILES_90 = $(CACHED_FILES_BASE)
 179 CACHED_FILES_91 = $(CACHED_FILES_BASE)
 180 CACHED_FILES_92 = $(CACHED_FILES_BASE)
 181 CACHED_FILES_93 = $(CACHED_FILES_BASE)
 182 CACHED_FILES_94 = $(CACHED_FILES_BASE)
 183 CACHED_FILES_95 = $(CACHED_FILES_BASE)
 184 CACHED_FILES_96 = $(CACHED_FILES_BASE)
 185 CACHED_FILES_97 = $(CACHED_FILES_BASE)
 186 CACHED_FILES_98 = $(CACHED_FILES_BASE)
 187 CACHED_FILES_99 = $(CACHED_FILES_BASE)                                  \
 188         etc/security/policy.conf                                        \
 189         root/.bashrc                                                    \
 190         root/.profile
 191 CACHED_FILES_100a = $(CACHED_FILES_99)
 192 CACHED_FILES_101 = $(CACHED_FILES_99)                                   \
 193         etc/mailcap                                                     \
 194         etc/mime.types
 195 CACHED_FILES_101a = $(CACHED_FILES_101)                                 \
 196         boot/solaris.xpm                                                \
 197         etc/skel/.bashrc                                                \
 198         etc/skel/.profile                                               \
 199         lib/svc/method/svc-ipagent                                      \
 200         lib/svc/method/xvm-vnc-config                                   \
 201         kernel/drv/nvidia.conf                                          \
 202         usr/lib/xen/bin/ipagent                                         \
 203         usr/X11/lib/xscreensaver/config/opensolaris-logo.png            \
 204         var/svc/manifest/application/graphical-login/gdm.xml            \
 205         var/svc/manifest/system/ipagent.xml                             \
 206         var/svc/manifest/system/xvm/vnc-config.xml
 207 CACHED_FILES_105 = $(CACHED_FILES_101a)
 208 CACHED_FILES_106 = $(CACHED_FILES_101a)
 209 CACHED_FILES_107 = $(CACHED_FILES_101a)                                 \
 210         var/svc/manifest/application/x11/x11-server.xml
 211 CACHED_FILES_108 = $(CACHED_FILES_107)
 212 CACHED_FILES_109 = $(CACHED_FILES_107)
 213 CACHED_FILES_110 = $(CACHED_FILES_107)
 214 CACHED_FILES_111 = $(CACHED_FILES_107)
 215 CACHED_FILES_111a = $(CACHED_FILES_107)                                 \
 216         etc/zones/SUNWtsoldef.xml                                       \
 217         usr/jdk/instances/jdk1.6.0/jre/lib/fontconfig.OpenSolaris.bfc   \
 218         usr/jdk/instances/jdk1.6.0/jre/lib/fontconfig.OpenSolaris.properties.src \
 219         usr/lib/brand/labeled/config.xml                                \
 220         usr/lib/brand/labeled/platform.xml
 221 CACHED_FILES_116 =
 222 CACHED_FILES_117 =
 223 CACHED_FILES_118 = 
 224 
 225 CACHED_FILES = $(CACHED_FILES_$(BUILDID))
 226 
 227 FIX_FILES_BASE =                                \
 228         $(CACHED_FILES)                         \
 229         etc/driver_aliases                      \
 230         etc/name_to_major                       \
 231         etc/nsswitch.conf                       \
 232         etc/pam.conf                            \
 233         etc/passwd                              \
 234         etc/power.conf                          \
 235         etc/shadow                              \
 236         usr/bin/ksh                             \
 237         usr/has/bin/sh                          \
 238         usr/has/bin/vi                          \
 239         usr/jdk/instances/jdk1.6.0/LICENSE      \
 240         usr/jdk/instances/jdk1.6.0/README.html  \
 241         usr/jdk/instances/jdk1.6.0/jre/LICENSE  \
 242         usr/jdk/instances/jdk1.6.0/jre/README   \
 243         usr/share/applications/services.desktop \
 244         usr/share/applications/shares.desktop
 245 
 246 FIX_FILES_86 =                          \
 247         $(FIX_FILES_BASE)               \
 248         boot/solaris/filelist.ramdisk   \
 249         etc/X11/gdm/custom.conf         \
 250         etc/release                     \
 251         etc/svc/global_repo.db          \
 252         etc/svc/nonglobal_repo.db       \
 253         etc/user_attr.cdonly            \
 254         usr/share/man/man.cf            \
 255         usr/share/man/missing.man
 256 FIX_FILES_89 = $(FIX_FILES_86)
 257 FIX_FILES_90 = $(FIX_FILES_86)
 258 FIX_FILES_91 = $(FIX_FILES_86)
 259 FIX_FILES_92 = $(FIX_FILES_86)
 260 FIX_FILES_93 = $(FIX_FILES_86)
 261 FIX_FILES_94 = $(FIX_FILES_86)
 262 FIX_FILES_95 = $(FIX_FILES_86)
 263 FIX_FILES_96 = $(FIX_FILES_86)
 264 FIX_FILES_97 = $(FIX_FILES_BASE)        \
 265         boot/solaris/filelist.ramdisk   \
 266         etc/release                     \
 267         etc/svc/global_repo.db          \
 268         etc/svc/nonglobal_repo.db       \
 269         usr/share/man/man.cf            \
 270         usr/share/man/missing.man
 271 FIX_FILES_98 = $(FIX_FILES_BASE)        \
 272         usr/share/man/man.cf
 273 FIX_FILES_99 = $(FIX_FILES_98)
 274 FIX_FILES_100a = $(FIX_FILES_98)        \
 275         lib/svc/method/svc-hostid       \
 276         usr/sbin/extract_hostid
 277 FIX_FILES_101 = $(FIX_FILES_99)
 278 FIX_FILES_101a = $(FIX_FILES_99)
 279 FIX_FILES_105 = $(FIX_FILES_BASE)
 280 FIX_FILES_106 = $(FIX_FILES_BASE)
 281 FIX_FILES_107 = $(FIX_FILES_BASE)
 282 FIX_FILES_108 = $(FIX_FILES_BASE)
 283 FIX_FILES_109 = $(FIX_FILES_BASE)
 284 FIX_FILES_110 = $(FIX_FILES_BASE)
 285 FIX_FILES_111 = $(FIX_FILES_BASE)
 286 FIX_FILES_111a = $(FIX_FILES_BASE)
 287 FIX_FILES_116 = $(FIX_FILES_BASE)
 288 FIX_FILES_117 = $(FIX_FILES_BASE)
 289 FIX_FILES_118 = $(FIX_FILES_BASE)
 290 FIX_FILES = $(FIX_FILES_$(BUILDID))
 291 
 292 JDKFILES = LICENSE README.html
 293 JREFILES = LICENSE README
 294 
 295 PROG=   ksh-wrapper
 296 
 297 OBJS=   ksh-wrapper.o
 298 
 299 SRCS=   $(OBJS:%.o=%.c)
 300 
 301 CFLAGS=         -g -v
 302 
 303 LINTFLAGS=      -axsm
 304 
 305 UNBUNDLED_TARGETS=              \
 306         ClusterTools.import     \
 307         ClusterTools8.import    \
 308         DTraceGUI.import        \
 309         Eclipse.import          \
 310         ExuberantCTags.import   \
 311         GlassFishV2.import      \
 312         GnuDevTools.import      \
 313         LDomsManager.import     \
 314         MessageQueue41.import   \
 315         NetBeans.import         \
 316         OpenDS.import           \
 317         OpenJDK7.import         \
 318         OpenOffice.import       \
 319         Studio.import           \
 320         Webstackui.import
 321 
 322 UNBUNDLED_CLUSTERS=             \
 323         Clusters.import
 324 
 325 BUILDS= 75a                     \
 326         79b                     \
 327         86                      \
 328         89                      \
 329         90                      \
 330         91                      \
 331         92                      \
 332         93                      \
 333         94                      \
 334         95                      \
 335         96                      \
 336         97                      \
 337         98                      \
 338         99                      \
 339         100a                    \
 340         101                     \
 341         101a                    \
 342         105                     \
 343         106                     \
 344         107                     \
 345         108                     \
 346         109                     \
 347         110                     \
 348         111                     \
 349         111a                    \
 350         116                     \
 351         117                     \
 352         118
 353 
 354 #
 355 # Starting in build 80, filelist.ramdisk began moving between various
 356 # packages.
 357 #
 358 FILELIST_RAMDISK_PKG_$(BUILDID) = SUNWckr
 359 FILELIST_RAMDISK_PKG_79b        = SUNWcakr.i
 360 FILELIST_RAMDISK_PKG_75a        = SUNWcakr.i
 361 FILELIST_RAMDISK_PKG_74         = SUNWcakr.i
 362 FILELIST_RAMDISK_PKG_72         = SUNWcakr.i
 363 FILELIST_RAMDISK_PKG_71         = SUNWcakr.i
 364 
 365 default:        117/slim_import
 366 
 367 cluster.import: $(WOS_PKGS)/.clustertoc Makefile
 368         ./clustertoc2import.py $(WOS_PKGS)/.clustertoc | \
 369         sed "s/version 2.2.1a/version 2.2.1.1/" > $@
 370 
 371 proto/etc/user_attr.cdonly: proto $(BUILDID)/user_attr
 372         ( cat $(BUILDID)/user_attr; \
 373           echo "jack::::profiles=Primary Administrator;roles=root") > $@
 374 
 375 proto/etc/driver_aliases:       proto $(BUILDID)/redist_cluster cluster.import
 376         ./get_file_from_pkg.py $(WOS_PKGS)/SUNWcsd etc/driver_aliases | \
 377         ./driver_names.py $(INCLUDE_PATH_$(BUILDID)) \
 378         $(BUILDID)/redist_cluster > $@
 379 
 380 proto/etc/name_to_major:        proto $(BUILDID)/redist_cluster cluster.import
 381         ./get_file_from_pkg.py $(WOS_PKGS)/SUNWcsd etc/name_to_major | \
 382         ./driver_names.py $(INCLUDE_PATH_$(BUILDID)) \
 383         $(BUILDID)/redist_cluster > $@
 384 
 385 proto/etc/nsswitch.conf:        proto Makefile
 386         ./get_file_from_pkg.py  $(WOS_PKGS)/SUNWcsr etc/nsswitch.files > $@
 387 
 388 proto/etc/X11/gdm/custom.conf:  proto Makefile
 389         ./get_file_from_pkg.py $(WOS_PKGS)/SUNWgnome-display-mgr-root   \
 390         etc/X11/gdm/custom.conf | nawk '/^\[daemon\]/ { print $$0;      \
 391                             print "AutomaticLoginEnable=true";          \
 392                             print "AutomaticLogin=jack";                \
 393                             print "GdmXserverTimeout=30";               \
 394                             continue }  { print $$0 }' > $@
 395 
 396 proto/etc/power.conf:   proto Makefile
 397         ./get_file_from_pkg.py  $(WOS_PKGS)/SUNWpmr etc/power.conf | nawk \
 398         '/^autoshutdown/{gsub("unconfigured","default");} {print $$0}' > $@
 399 
 400 proto/boot/solaris/filelist.ramdisk:    proto
 401         (./get_file_from_pkg.py $(WOS_PKGS)/$(FILELIST_RAMDISK_PKG_$(BUILDID)) \
 402             boot/solaris/filelist.ramdisk; \
 403         echo etc/zfs/zpool.cache) > $@
 404 
 405 proto/etc/pam.conf:     proto
 406         (./get_file_from_pkg.py $(WOS_PKGS)/SUNWcsr etc/pam.conf;       \
 407         echo "gdm-autologin auth  required    pam_unix_cred.so.1";      \
 408         echo "gdm-autologin auth  sufficient  pam_allow.so.1";          \
 409         echo "gdm-autologin account  sufficient  pam_allow.so.1";       \
 410         echo "gdm-autologin session  sufficient  pam_allow.so.1";       \
 411         echo "gdm-autologin password  sufficient  pam_allow.so.1"       \
 412         ) > $@
 413 
 414 proto/etc/svc/global_repo.db:   proto
 415         ./get_file_from_pkg.py $(WOS_PKGS)/SUNWcsr lib/svc/seed/global.db > $@
 416 
 417 proto/etc/svc/nonglobal_repo.db:        proto
 418         ./get_file_from_pkg.py $(WOS_PKGS)/SUNWcsr lib/svc/seed/nonglobal.db > $@
 419 
 420 # fix booting on non-sse capable cpus until 6332924 gets fixed
 421 proto/lib/libc.so.1: proto
 422         ./get_file_from_pkg.py $(WOS_PKGS)/SUNWcslr lib/libc.so.1 > $@
 423         /usr/bin/elfedit -e 'cap:hw1 -and -cmp sse' $@
 424 
 425 proto/lib/svc/method/svc-hostid: proto 100a/svc-hostid
 426         cp 100a/svc-hostid $@
 427 
 428 proto/usr/share/man/missing.man:        proto   missing.man
 429         cp missing.man $@
 430 
 431 proto/etc/release:      proto
 432         ./get_file_from_pkg.py $(WOS_PKGS)/SUNWsolnm etc/release | head -1 | \
 433         sed 's/.*snv_/                  OpenSolaris 2008.05 snv_/' \
 434         > $@
 435         cat release.figlet >> $@
 436 
 437 proto/usr/share/man/man.cf:     proto
 438         ./get_file_from_pkg.py $(WOS_PKGS)/SUNWman usr/share/man/man.cf | \
 439         sed \
 440         '/MANSECTS/s/$$/,1openssl,3openssl,5openssl,7openssl/' \
 441         > $@
 442 
 443 proto/usr/bin/ksh:      proto $(PROG)
 444         cp $(PROG) $@
 445 
 446 proto/usr/share/applications/shares.desktop: proto
 447         ./get_file_from_pkg.py $(WOS_PKGS)/SUNWgnome-system-tools \
 448         usr/share/applications/shares.desktop | \
 449         ./desktop_exec.sh /usr/lib/vp-shares > $@
 450 
 451 proto/usr/share/applications/services.desktop: proto
 452         ./get_file_from_pkg.py $(WOS_PKGS)/SUNWgnome-system-tools \
 453         usr/share/applications/services.desktop | \
 454         ./desktop_exec.sh /usr/lib/vp-services > $@
 455 
 456 #
 457 # change root's default shell, homedir, password
 458 #
 459 proto/etc/passwd:       proto Makefile
 460         (./get_file_from_pkg.py $(WOS_PKGS)/SUNWcsr etc/passwd | nawk -F:                       \
 461         '/^root/{ print "root:x:0:0:Super-User:/root:/usr/bin/bash";continue} {print $$0}') > $@
 462 
 463 proto/etc/shadow:       proto Makefile
 464         (./get_file_from_pkg.py $(WOS_PKGS)/SUNWcsr etc/shadow | nawk -F:               \
 465         '/^root/{ print "root:$$5$$VgppCOxA$$ycFmYW4ObRRHhtsGEygDdexk5bugqgSiaSR9niNCouC:14146::::::";continue} {print $$0}') > $@
 466 
 467 proto/usr/has/bin/sh:   proto Makefile
 468         ./get_file_from_pkg.py $(WOS_PKGS)/SUNWcsr sbin/sh > $@
 469 
 470 proto/usr/has/bin/vi:   proto Makefile
 471         ./get_file_from_pkg.py $(WOS_PKGS)/SUNWcsu usr/bin/edit > $@
 472 
 473 proto/usr/sbin/extract_hostid:  proto ../misc/extract_hostid
 474         cp ../misc/extract_hostid $@
 475 
 476 $(JDKFILES:%=proto/usr/jdk/instances/jdk1.6.0/%):       proto DLJ/$(@F)
 477         cp DLJ/$(@F) $@
 478 
 479 $(JREFILES:%=proto/usr/jdk/instances/jdk1.6.0/jre/%):   proto DLJ/$(@F)
 480         cp DLJ/$(@F) $@
 481 
 482 $(CACHED_FILES:%=proto/%):      proto $(BUILDID)/$(@F) Makefile
 483         cat $(BUILDID)/$(@F) > $@
 484 
 485 proto:  Makefile
 486         mkdir -p proto/boot/grub
 487         mkdir -p proto/boot/solaris/devicedb
 488         mkdir -p proto/etc/X11/gdm
 489         mkdir -p proto/etc/inet
 490         mkdir -p proto/etc/security
 491         mkdir -p proto/etc/skel
 492         mkdir -p proto/etc/svc
 493         mkdir -p proto/etc/zones
 494         mkdir -p proto/kernel/drv
 495         mkdir -p proto/lib/svc/method
 496         mkdir -p proto/root
 497         mkdir -p proto/usr/X11/lib/xscreensaver/config
 498         mkdir -p proto/usr/bin
 499         mkdir -p proto/usr/has/bin
 500         mkdir -p proto/usr/jdk/instances/jdk1.6.0/jre/lib
 501         mkdir -p proto/usr/lib/brand/labeled
 502         mkdir -p proto/usr/lib/xen/bin
 503         mkdir -p proto/usr/sbin
 504         mkdir -p proto/usr/share/applications
 505         mkdir -p proto/usr/share/man
 506         mkdir -p proto/var/svc/manifest/application/graphical-login
 507         mkdir -p proto/var/svc/manifest/application/x11
 508         mkdir -p proto/var/svc/manifest/system/xvm
 509         mkdir -p proto/var/svc/profile
 510 
 511 %/$(TMPPKGS):
 512         $(MAKE) BUILDID=$(@D) $(@F)
 513 
 514 %:      $(BUILDID)/%.prototype $(BUILDID)/%.pkginfo $(FIX_FILES:%=proto/%)
 515         pkgmk -b ./proto -r . -f $(BUILDID)/$@.prototype -d `pwd` -o
 516 
 517 INCLUDE_PATH_75a = 75a:73:72:71:00
 518 INCLUDE_PATH_79b = 79b:78:77:76:$(INCLUDE_PATH_75a)
 519 INCLUDE_PATH_84 = 84:83:82:81:80:$(INCLUDE_PATH_79b)
 520 INCLUDE_PATH_85 = 85:$(INCLUDE_PATH_84)
 521 INCLUDE_PATH_86 = 86:$(INCLUDE_PATH_85)
 522 INCLUDE_PATH_89 = 89:88:87:$(INCLUDE_PATH_86)
 523 INCLUDE_PATH_90 = 90:$(INCLUDE_PATH_89)
 524 INCLUDE_PATH_91 = 91:$(INCLUDE_PATH_90)
 525 INCLUDE_PATH_92 = 92:$(INCLUDE_PATH_91)
 526 INCLUDE_PATH_93 = 93:$(INCLUDE_PATH_92)
 527 INCLUDE_PATH_94 = 94:$(INCLUDE_PATH_93)
 528 INCLUDE_PATH_95 = 95:$(INCLUDE_PATH_94)
 529 INCLUDE_PATH_96 = 96:$(INCLUDE_PATH_95)
 530 INCLUDE_PATH_97 = 97:$(INCLUDE_PATH_96)
 531 INCLUDE_PATH_98 = 98:$(INCLUDE_PATH_97)
 532 INCLUDE_PATH_99 = 99:$(INCLUDE_PATH_98)
 533 INCLUDE_PATH_100a = 100a:$(INCLUDE_PATH_99)
 534 INCLUDE_PATH_101 = 101:$(INCLUDE_PATH_100a)
 535 INCLUDE_PATH_101a = 101a:$(INCLUDE_PATH_101)
 536 INCLUDE_PATH_105 = 105:104:103:102:$(INCLUDE_PATH_101a)
 537 INCLUDE_PATH_106 = 106:$(INCLUDE_PATH_105)
 538 INCLUDE_PATH_107 = 107:$(INCLUDE_PATH_106)
 539 INCLUDE_PATH_108 = 108:$(INCLUDE_PATH_107)
 540 INCLUDE_PATH_109 = 109:$(INCLUDE_PATH_108)
 541 INCLUDE_PATH_110 = 110:$(INCLUDE_PATH_109)
 542 INCLUDE_PATH_111 = 111:$(INCLUDE_PATH_110)
 543 INCLUDE_PATH_111a = 111a:$(INCLUDE_PATH_111)
 544 INCLUDE_PATH_116 = 116:$(INCLUDE_PATH_111a)
 545 INCLUDE_PATH_117 = 117:$(INCLUDE_PATH_116)
 546 INCLUDE_PATH_118 = 118:$(INCLUDE_PATH_117)
 547 
 548 import: cluster.import $(TMPPKGS)
 549         $(SOLARIS.PY) -s $(REPO) -w $(WOS_PKGS) $(ELIDED_FILES:%=-D %) \
 550                 $(INCLUDE_PATH_$(BUILDID):%=-I %) $(BUILDID)/all.i386
 551 
 552 %/import:
 553         $(MAKE) BUILDID=$(@:%/import=%) import
 554 
 555 slim_import:    $(BUILDID)/slim_cluster $(TMPPKGS)
 556         $(SOLARIS.PY) -s $(REPO) $(ALL_PKGS:%=-w %) $(ELIDED_FILES:%=-D %) \
 557                 $(JUST_THESE_PKGS:%=-j %) $(INCLUDE_PATH_$(BUILDID):%=-I %) \
 558                 $(BUILDID)/slim_cluster
 559 
 560 %/slim_import:
 561         if test -z "$(JUST_THESE_PKGS)"; then \
 562                 $(MAKE) clobber; \
 563         fi
 564         $(MAKE) BUILDID=$(@:%/slim_import=%) slim_import
 565 
 566 redist_import:  $(BUILDID)/redist_cluster $(TMPPKGS)
 567         $(SOLARIS.PY) -s $(REPO) $(ALL_PKGS:%=-w %) $(ELIDED_FILES:%=-D %) \
 568                 $(JUST_THESE_PKGS:%=-j %) $(INCLUDE_PATH_$(BUILDID):%=-I %) \
 569                 $(BUILDID)/redist_cluster
 570         $(MAKE) $(BUILDID)/entire
 571 
 572 %/redist_import:
 573         if test -z "$(JUST_THESE_PKGS)"; then \
 574                 $(MAKE) clobber; \
 575         fi
 576         $(MAKE) BUILDID=$(@:%/redist_import=%) redist_import
 577 
 578 %/entire:
 579         $(MAKE) BUILDID=$(@:%/entire=%) entire
 580 
 581 $(BUILDID)/entire.incorporation: FRC
 582         REPO=$(REPO) ./build_entire_incorporation $(BUILDID) > $@
 583 
 584 entire: $(BUILDID)/entire.incorporation
 585         PKG_REPO=$(REPO) ./import_manifest_file \
 586                 entire@0.5.11,5.11-0.`echo $(BUILDID) | tr -d '[a-z]'` \
 587                 $(BUILDID)/entire.incorporation
 588 
 589 $(UNBUNDLED_TARGETS:%=$(BUILDS)/%) $(UNBUNDLED_CLUSTERS:%=$(BUILDS)/%):
 590         $(MAKE) BUILDID=$(@D) $(@F)
 591 
 592 $(UNBUNDLED_TARGETS): unbundleds/$$(@:%.import=%)
 593         rm -f redist_cluster; ln -s $(BUILDID)/redist_cluster redist_cluster
 594         $(SOLARIS.PY) -s $(REPO) $(ALL_PKGS:%=-w %) $(ELIDED_FILES:%=-D %) \
 595                 `$(SOLARIS.PY) -N $(INCLUDE_PATH_$(BUILDID):%=-I %) unbundleds/$(@:%.import=%)` \
 596                 $(INCLUDE_PATH_$(BUILDID):%=-I %) unbundleds/$(@:%.import=%) \
 597                 redist_cluster
 598 
 599 $(UNBUNDLED_CLUSTERS): unbundleds/$$(@:%.import=%)
 600         rm -f redist_cluster; ln -s $(BUILDID)/redist_cluster redist_cluster
 601         $(SOLARIS.PY) -s $(REPO) $(ALL_PKGS:%=-w %) $(ELIDED_FILES:%=-D %) \
 602                 `$(SOLARIS.PY) -N $(INCLUDE_PATH_$(BUILDID):%=-I %) unbundleds/$(@:%.import=%)` \
 603                 $(INCLUDE_PATH_$(BUILDID):%=-I %) unbundleds/$(@:%.import=%) \
 604                 $(UNBUNDLED_TARGETS:%.import=unbundleds/%) redist_cluster
 605 
 606 %/all_unbundleds:
 607         $(MAKE) BUILDID=$(@D) $(@F)
 608 
 609 all_unbundleds: $(UNBUNDLED_TARGETS:%=$(BUILDID)/%)
 610         $(MAKE) $(BUILDID)/$(UNBUNDLED_CLUSTERS)
 611 
 612 
 613 #
 614 # Used to generate the GUI Package Manager classification files from the
 615 # current package classifications.
 616 #
 617 guiclassification:
 618         ./gen_os_files.py
 619 
 620 %/SUNWipkg %/backpublish:
 621         $(MAKE) BUILDID=$(@D) $(@F)
 622 
 623 SUNWipkg:
 624         PKG_REPO=$(REPO) ./publish_ips $(BUILDID) SUNWipkg
 625 
 626 backpublish:
 627         PKG_REPO=$(REPO) ./publish_ips $(BUILDID) SUNWipkg
 628         PKG_REPO=$(REPO) ./publish_ips $(BUILDID) SUNWipkg-gui
 629         PKG_REPO=$(REPO) ./publish_ips $(BUILDID) SUNWipkg-gui-l10n
 630         PKG_REPO=$(REPO) ./publish_ips $(BUILDID) SUNWpython-cherrypy
 631         PKG_REPO=$(REPO) ./publish_ips $(BUILDID) SUNWpython-pyopenssl
 632 
 633 clean:
 634         rm -f $(OBJS)
 635         rm -rf proto
 636 
 637 clobber: clean
 638         rm -f $(PROG)
 639         rm -rf $(TMPPKGS)
 640 
 641 lint:
 642         $(LINT) $(LINTFLAGS) $(SRCS)
 643 
 644 .KEEP_STATE:
 645 
 646 FRC: