OpenSolaris_b135/Makefile.psm

#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
# usr/src/Makefile.psm
#
# Makefile.psm, global definitions for platform specific modules


ROOT_PLAT_DIR		 = $(ROOT)/platform

ROOT_PSM_DIR		 = $(ROOT_PLAT_DIR)/$(PLATFORM)

ROOT_PSM_MOD_DIR	 = $(ROOT_PSM_DIR)/kernel
ROOT_PSM_LIB_DIR	 = $(ROOT_PSM_DIR)/lib
ROOT_PSM_LIB64_DIR	 = $(ROOT_PSM_LIB_DIR)/$(MACH64)
ROOT_PSM_SBIN_DIR	 = $(ROOT_PSM_DIR)/sbin

ROOT_PSM_KERN_DIR_32	 = $(ROOT_PSM_MOD_DIR)
ROOT_PSM_DRV_DIR_32	 = $(ROOT_PSM_MOD_DIR)/drv
ROOT_PSM_EXEC_DIR_32	 = $(ROOT_PSM_MOD_DIR)/exec
ROOT_PSM_FS_DIR_32	 = $(ROOT_PSM_MOD_DIR)/fs
ROOT_PSM_SCHED_DIR_32	 = $(ROOT_PSM_MOD_DIR)/sched
ROOT_PSM_STRMOD_DIR_32	 = $(ROOT_PSM_MOD_DIR)/strmod
ROOT_PSM_SYS_DIR_32	 = $(ROOT_PSM_MOD_DIR)/sys
ROOT_PSM_MISC_DIR_32	 = $(ROOT_PSM_MOD_DIR)/misc
ROOT_PSM_KGSS_DIR_32	 = $(ROOT_PSM_MOD_DIR)/misc/kgss
ROOT_PSM_MACH_DIR_32	 = $(ROOT_PSM_MOD_DIR)/mach
ROOT_PSM_CPU_DIR_32	 = $(ROOT_PSM_MOD_DIR)/cpu
ROOT_PSM_PLAT_DIR_32	 = $(ROOT_PSM_MOD_DIR)/misc
ROOT_PSM_TOD_DIR_32	 = $(ROOT_PSM_MOD_DIR)/tod
ROOT_PSM_MMU_DIR_32	 = $(ROOT_PSM_MOD_DIR)/mmu
ROOT_PSM_DACF_DIR_32	 = $(ROOT_PSM_MOD_DIR)/dacf
ROOT_PSM_CRYPTO_DIR_32	 = $(ROOT_PSM_MOD_DIR)/crypto
ROOT_PSM_PCBE_DIR_32	 = $(ROOT_PSM_MOD_DIR)/pcbe
ROOT_PSM_BRAND_DIR_32	 = $(ROOT_PSM_MOD_DIR)/brand

ROOT_PSM_KERN_DIR_64	 = $(ROOT_PSM_MOD_DIR)/$(SUBDIR64)
ROOT_PSM_DRV_DIR_64	 = $(ROOT_PSM_MOD_DIR)/drv/$(SUBDIR64)
ROOT_PSM_EXEC_DIR_64	 = $(ROOT_PSM_MOD_DIR)/exec/$(SUBDIR64)
ROOT_PSM_FS_DIR_64	 = $(ROOT_PSM_MOD_DIR)/fs/$(SUBDIR64)
ROOT_PSM_SCHED_DIR_64	 = $(ROOT_PSM_MOD_DIR)/sched/$(SUBDIR64)
ROOT_PSM_STRMOD_DIR_64	 = $(ROOT_PSM_MOD_DIR)/strmod/$(SUBDIR64)
ROOT_PSM_SYS_DIR_64	 = $(ROOT_PSM_MOD_DIR)/sys/$(SUBDIR64)
ROOT_PSM_MISC_DIR_64	 = $(ROOT_PSM_MOD_DIR)/misc/$(SUBDIR64)
ROOT_PSM_KGSS_DIR_64	 = $(ROOT_PSM_MOD_DIR)/misc/kgss/$(SUBDIR64)
ROOT_PSM_MACH_DIR_64	 = $(ROOT_PSM_MOD_DIR)/mach/$(SUBDIR64)
ROOT_PSM_CPU_DIR_64	 = $(ROOT_PSM_MOD_DIR)/cpu/$(SUBDIR64)
ROOT_PSM_PLAT_DIR_64	 = $(ROOT_PSM_MOD_DIR)/misc/$(SUBDIR64)
ROOT_PSM_TOD_DIR_64	 = $(ROOT_PSM_MOD_DIR)/tod/$(SUBDIR64)
ROOT_PSM_MMU_DIR_64	 = $(ROOT_PSM_MOD_DIR)/mmu/$(SUBDIR64)
ROOT_PSM_DACF_DIR_64	 = $(ROOT_PSM_MOD_DIR)/dacf/$(SUBDIR64)
ROOT_PSM_CRYPTO_DIR_64	 = $(ROOT_PSM_MOD_DIR)/crypto/$(SUBDIR64)
ROOT_PSM_PCBE_DIR_64	 = $(ROOT_PSM_MOD_DIR)/pcbe/$(SUBDIR64)
ROOT_PSM_BRAND_DIR_64	 = $(ROOT_PSM_MOD_DIR)/brand/$(SUBDIR64)

ROOT_PSM_KERN_DIR	 = $(ROOT_PSM_KERN_DIR_$(CLASS))
ROOT_PSM_DRV_DIR	 = $(ROOT_PSM_DRV_DIR_$(CLASS))
ROOT_PSM_EXEC_DIR	 = $(ROOT_PSM_EXEC_DIR_$(CLASS))
ROOT_PSM_FS_DIR		 = $(ROOT_PSM_FS_DIR_$(CLASS))
ROOT_PSM_SCHED_DIR	 = $(ROOT_PSM_SCHED_DIR_$(CLASS))
ROOT_PSM_STRMOD_DIR	 = $(ROOT_PSM_STRMOD_DIR_$(CLASS))
ROOT_PSM_SYS_DIR	 = $(ROOT_PSM_SYS_DIR_$(CLASS))
ROOT_PSM_MISC_DIR	 = $(ROOT_PSM_MISC_DIR_$(CLASS))
ROOT_PSM_KGSS_DIR	 = $(ROOT_PSM_KGSS_DIR_$(CLASS))
ROOT_PSM_MACH_DIR	 = $(ROOT_PSM_MACH_DIR_$(CLASS))
ROOT_PSM_CPU_DIR	 = $(ROOT_PSM_CPU_DIR_$(CLASS))
ROOT_PSM_PLAT_DIR	 = $(ROOT_PSM_PLAT_DIR_$(CLASS))
ROOT_PSM_TOD_DIR	 = $(ROOT_PSM_TOD_DIR_$(CLASS))
ROOT_PSM_MMU_DIR	 = $(ROOT_PSM_MMU_DIR_$(CLASS))
ROOT_PSM_DACF_DIR	 = $(ROOT_PSM_DACF_DIR_$(CLASS))
ROOT_PSM_CRYPTO_DIR	 = $(ROOT_PSM_CRYPTO_DIR_$(CLASS))
ROOT_PSM_PCBE_DIR	 = $(ROOT_PSM_PCBE_DIR_$(CLASS))
ROOT_PSM_BRAND_DIR	 = $(ROOT_PSM_BRAND_DIR_$(CLASS))

ROOT_PSM_MOD_DIRS_32	 = $(ROOT_PSM_DRV_DIR_32)
ROOT_PSM_MOD_DIRS_32 	+= $(ROOT_PSM_EXEC_DIR_32) $(ROOT_PSM_FS_DIR_32)
ROOT_PSM_MOD_DIRS_32 	+= $(ROOT_PSM_SCHED_DIR_32) $(ROOT_PSM_STRMOD_DIR_32)
ROOT_PSM_MOD_DIRS_32 	+= $(ROOT_PSM_SYS_DIR_32) $(ROOT_PSM_MISC_DIR_32)
ROOT_PSM_MOD_DIRS_32	+= $(ROOT_PSM_KGSS_DIR_32)
ROOT_PSM_MOD_DIRS_32 	+= $(ROOT_PSM_MACH_DIR_32) $(ROOT_PSM_CPU_DIR_32)
ROOT_PSM_MOD_DIRS_32 	+= $(ROOT_PSM_TOD_DIR_32)
ROOT_PSM_MOD_DIRS_32 	+= $(ROOT_PSM_MMU_DIR_32)
ROOT_PSM_MOD_DIRS_32	+= $(ROOT_PSM_DACF_DIR_32)
ROOT_PSM_MOD_DIRS_32	+= $(ROOT_PSM_CRYPTO_DIR_32)
ROOT_PSM_MOD_DIRS_32	+= $(ROOT_PSM_PCBE_DIR_32)
ROOT_PSM_MOD_DIRS_32	+= $(ROOT_PSM_BRAND_DIR_32)

ROOT_PSM_LIB_FS_DIR	 = $(ROOT_PSM_LIB_DIR)/fs
ROOT_PSM_LIB_UFS_DIR	 = $(ROOT_PSM_LIB_FS_DIR)/ufs
ROOT_PSM_LIB_NFS_DIR	 = $(ROOT_PSM_LIB_FS_DIR)/nfs
ROOT_PSM_LIB_HSFS_DIR	 = $(ROOT_PSM_LIB_FS_DIR)/hsfs
ROOT_PSM_LIB_ZFS_DIR	 = $(ROOT_PSM_LIB_FS_DIR)/zfs

USR_PLAT_DIR		 = $(ROOT)/usr/platform

USR_PSM_DIR		 = $(USR_PLAT_DIR)/$(PLATFORM)

USR_PSM_MOD_DIR		 = $(USR_PSM_DIR)/kernel
USR_PSM_INCL_DIR	 = $(USR_PSM_DIR)/include
USR_PSM_LIB_DIR		 = $(USR_PSM_DIR)/lib
USR_PSM_LIB64_DIR	 = $(USR_PSM_LIB_DIR)/$(MACH64)
USR_PSM_SBIN_DIR	 = $(USR_PSM_DIR)/sbin

USR_PSM_ISYS_DIR	 = $(USR_PSM_INCL_DIR)/sys
USR_PSM_IVM_DIR		 = $(USR_PSM_INCL_DIR)/vm

USR_PSM_LIB_ABI_DIR	= $(USR_PSM_LIB_DIR)/abi 
USR_PSM_LIB_ABI_DIR_64	= $(USR_PSM_LIB_ABI_DIR)/$(MACH64) 

USR_PSM_LIB_FS_DIR	 = $(USR_PSM_LIB_DIR)/fs
USR_PSM_LIB_UFS_DIR	 = $(USR_PSM_LIB_FS_DIR)/ufs
USR_PSM_LIB_NFS_DIR	 = $(USR_PSM_LIB_FS_DIR)/nfs
USR_PSM_LIB_HSFS_DIR	 = $(USR_PSM_LIB_FS_DIR)/hsfs
USR_PSM_LIB_ZFS_DIR	 = $(USR_PSM_LIB_FS_DIR)/zfs

USR_PSM_DRV_DIR_32	 = $(USR_PSM_MOD_DIR)/drv
USR_PSM_EXEC_DIR_32	 = $(USR_PSM_MOD_DIR)/exec
USR_PSM_FS_DIR_32	 = $(USR_PSM_MOD_DIR)/fs
USR_PSM_SCHED_DIR_32	 = $(USR_PSM_MOD_DIR)/sched
USR_PSM_STRMOD_DIR_32	 = $(USR_PSM_MOD_DIR)/strmod
USR_PSM_SYS_DIR_32	 = $(USR_PSM_MOD_DIR)/sys
USR_PSM_MISC_DIR_32	 = $(USR_PSM_MOD_DIR)/misc
USR_PSM_DACF_DIR_32	 = $(USR_PSM_MOD_DIR)/dacf

USR_PSM_DRV_DIR_64	 = $(USR_PSM_MOD_DIR)/drv/$(SUBDIR64)
USR_PSM_EXEC_DIR_64	 = $(USR_PSM_MOD_DIR)/exec/$(SUBDIR64)
USR_PSM_FS_DIR_64	 = $(USR_PSM_MOD_DIR)/fs/$(SUBDIR64)
USR_PSM_SCHED_DIR_64	 = $(USR_PSM_MOD_DIR)/sched/$(SUBDIR64)
USR_PSM_STRMOD_DIR_64	 = $(USR_PSM_MOD_DIR)/strmod/$(SUBDIR64)
USR_PSM_SYS_DIR_64	 = $(USR_PSM_MOD_DIR)/sys/$(SUBDIR64)
USR_PSM_MISC_DIR_64	 = $(USR_PSM_MOD_DIR)/misc/$(SUBDIR64)
USR_PSM_DACF_DIR_64	 = $(USR_PSM_MOD_DIR)/dacf/$(SUBDIR64)

USR_PSM_DRV_DIR		 = $(USR_PSM_DRV_DIR_$(CLASS))
USR_PSM_EXEC_DIR	 = $(USR_PSM_EXEC_DIR_$(CLASS))
USR_PSM_FS_DIR		 = $(USR_PSM_FS_DIR_$(CLASS))
USR_PSM_SCHED_DIR	 = $(USR_PSM_SCHED_DIR_$(CLASS))
USR_PSM_STRMOD_DIR	 = $(USR_PSM_STRMOD_DIR_$(CLASS))
USR_PSM_SYS_DIR		 = $(USR_PSM_SYS_DIR_$(CLASS))
USR_PSM_MISC_DIR	 = $(USR_PSM_MISC_DIR_$(CLASS))
USR_PSM_DACF_DIR	 = $(USR_PSM_DACF_DIR_$(CLASS))

USR_PSM_MOD_DIRS_32	 = $(USR_PSM_DRV_DIR_32)
USR_PSM_MOD_DIRS_32 	+= $(USR_PSM_EXEC_DIR_32) $(USR_PSM_FS_DIR_32)
USR_PSM_MOD_DIRS_32 	+= $(USR_PSM_SCHED_DIR_32) $(USR_PSM_STRMOD_DIR_32)
USR_PSM_MOD_DIRS_32 	+= $(USR_PSM_SYS_DIR_32) $(USR_PSM_MISC_DIR_32)
USR_PSM_MOD_DIRS_32	+= $(USR_PSM_DACF_DIR_32)

#
# UltraSparc III crypto modules
#
ROOT_US3_DIR		= $(ROOT_PLAT_DIR)/sun4u-us3
ROOT_US3_MOD_DIR	= $(ROOT_US3_DIR)/kernel
ROOT_US3_CRYPTO_DIR_32	= $(ROOT_US3_MOD_DIR)/crypto
ROOT_US3_CRYPTO_DIR_64	= $(ROOT_US3_MOD_DIR)/crypto/$(SUBDIR64)
ROOT_US3_CRYPTO_DIR	= $(ROOT_US3_CRYPTO_DIR_$(CLASS))
ROOT_US3_CRYPTO_LINK	= $(ROOT_US3_CRYPTO_DIR_64:$(ROOT_PLAT_DIR)%=../../../..%)

ROOT_BOOT_PSM_KERN_DIR	= $(ROOT)/boot/platform/$(PLATFORM)/kernel

#
# The following are for the installation of objects in PSM directories.
#
ROOT_PSM_PROG=			$(PROG:%=$(ROOT_PSM_DIR)/%)
USR_PSM_PROG=			$(PROG:%=$(USR_PSM_DIR)/%)

ROOT_PSM_SBIN_PROG=		$(PROG:%=$(ROOT_PSM_SBIN_DIR)/%)
USR_PSM_SBIN_PROG=		$(PROG:%=$(USR_PSM_SBIN_DIR)/%)

ROOT_PSM_LIBS=			$(LIBS:%=$(ROOT_PSM_LIB_DIR)/%)
USR_PSM_LIBS=			$(LIBS:%=$(USR_PSM_LIB_DIR)/%)
USR_PSM_LIBS64=			$(LIBS:%=$(USR_PSM_LIB64_DIR)/%)
$(ROOT_PSM_LIB_DIR)/$(DYNLIB)	:= FILEMODE= 755
$(ROOT_PSM_LIB64_DIR)/$(DYNLIB)	:= FILEMODE= 755
$(USR_PSM_LIB_DIR)/$(DYNLIB)	:= FILEMODE= 755
$(USR_PSM_LIB64_DIR)/$(DYNLIB)	:= FILEMODE= 755

#
# The following are used to link objects between platforms (for platforms
# which wish to share some objects, but not everything).
#
ROOT_PSM_PROG_LINKS=		$(PLATLINKS:%=$(ROOT_PLAT_DIR)/%/$(PROG))
USR_PSM_PROG_LINKS=		$(PLATLINKS:%=$(USR_PLAT_DIR)/%/$(PROG))

ROOT_PSM_SBIN_PROG_LINKS=	$(PLATLINKS:%=$(ROOT_PLAT_DIR)/%/sbin/$(PROG))
USR_PSM_SBIN_PROG_LINKS=	$(PLATLINKS:%=$(USR_PLAT_DIR)/%/sbin/$(PROG))

#
# The following are for the creation of the link between the generic name
# of a library and the versioned instance of it.
#
ROOT_PSM_LIB_VERLINKS=		$(ROOT_PSM_LIB_DIR)/$(LIBLINKS)
USR_PSM_LIB_VERLINKS=		$(USR_PSM_LIB_DIR)/$(LIBLINKS)