# 
# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
# 
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
#ident	"$Id$"
#
# This required package information file contains a list of package contents.
# The 'pkgmk' command uses this file to identify the contents of a package
# and their location on the development machine when building the package.
# Can be created via a text editor or through use of the 'pkgproto' command.

#!search <pathname pathname ...>	# where to find pkg objects
#!include <filename>			# include another 'prototype' file
#!default <mode> <owner> <group>	# default used if not specified on entry
#!<param>=<value>			# puts parameter in pkg environment

#
# Include ISA independent files (prototype_com)
#
!include prototype_com
#
#
#
# List files which are SPARC specific here
#
# source locations relative to the prototype file
#
#
# SUNWpr
#
d none usr/lib/mps/cpu 755 root bin
d none usr/lib/mps/cpu/sparcv8plus 755 root bin
d none usr/lib/mps/secv1/cpu 755 root bin
d none usr/lib/mps/secv1/cpu/sparcv8plus 755 root bin
f none usr/lib/mps/cpu/sparcv8plus/libnspr_flt4.so 755 root bin
s none usr/lib/mps/secv1/cpu/sparcv8plus/libnspr_flt4.so=../../../cpu/sparcv8plus/libnspr_flt4.so
#64#s none usr/lib/mps/64=sparcv9
#64#s none usr/lib/mps/secv1/64=sparcv9
#64#d none usr/lib/mps/sparcv9 755 root bin
#64#d none usr/lib/mps/secv1/sparcv9 755 root bin
#64#f none usr/lib/mps/sparcv9/libnspr4.so 755 root bin
#64#f none usr/lib/mps/sparcv9/libplc4.so 755 root bin
#64#f none usr/lib/mps/sparcv9/libplds4.so 755 root bin
#64#s none usr/lib/mps/secv1/sparcv9/libnspr4.so=../../sparcv9/libnspr4.so
#64#s none usr/lib/mps/secv1/sparcv9/libplc4.so=../../sparcv9/libplc4.so
#64#s none usr/lib/mps/secv1/sparcv9/libplds4.so=../../sparcv9/libplds4.so

