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.
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.
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]
22 # Copyright 2009 Sun Microsystems, Inc. All rights reserved.
23 # Use is subject to license terms.
25 # usr/src/Makefile.psm
27 # Makefile.psm, global definitions for platform specific modules
30 ROOT_PLAT_DIR = $(ROOT)/platform
32 ROOT_PSM_DIR = $(ROOT_PLAT_DIR)/$(PLATFORM)
34 ROOT_PSM_MOD_DIR = $(ROOT_PSM_DIR)/kernel
35 ROOT_PSM_LIB_DIR = $(ROOT_PSM_DIR)/lib
36 ROOT_PSM_LIB64_DIR = $(ROOT_PSM_LIB_DIR)/$(MACH64)
37 ROOT_PSM_SBIN_DIR = $(ROOT_PSM_DIR)/sbin
39 ROOT_PSM_KERN_DIR_32 = $(ROOT_PSM_MOD_DIR)
40 ROOT_PSM_DRV_DIR_32 = $(ROOT_PSM_MOD_DIR)/drv
41 ROOT_PSM_EXEC_DIR_32 = $(ROOT_PSM_MOD_DIR)/exec
42 ROOT_PSM_FS_DIR_32 = $(ROOT_PSM_MOD_DIR)/fs
43 ROOT_PSM_SCHED_DIR_32 = $(ROOT_PSM_MOD_DIR)/sched
44 ROOT_PSM_STRMOD_DIR_32 = $(ROOT_PSM_MOD_DIR)/strmod
45 ROOT_PSM_SYS_DIR_32 = $(ROOT_PSM_MOD_DIR)/sys
46 ROOT_PSM_MISC_DIR_32 = $(ROOT_PSM_MOD_DIR)/misc
47 ROOT_PSM_KGSS_DIR_32 = $(ROOT_PSM_MOD_DIR)/misc/kgss
48 ROOT_PSM_MACH_DIR_32 = $(ROOT_PSM_MOD_DIR)/mach
49 ROOT_PSM_CPU_DIR_32 = $(ROOT_PSM_MOD_DIR)/cpu
50 ROOT_PSM_PLAT_DIR_32 = $(ROOT_PSM_MOD_DIR)/misc
51 ROOT_PSM_TOD_DIR_32 = $(ROOT_PSM_MOD_DIR)/tod
52 ROOT_PSM_MMU_DIR_32 = $(ROOT_PSM_MOD_DIR)/mmu
53 ROOT_PSM_DACF_DIR_32 = $(ROOT_PSM_MOD_DIR)/dacf
54 ROOT_PSM_CRYPTO_DIR_32 = $(ROOT_PSM_MOD_DIR)/crypto
55 ROOT_PSM_PCBE_DIR_32 = $(ROOT_PSM_MOD_DIR)/pcbe
56 ROOT_PSM_BRAND_DIR_32 = $(ROOT_PSM_MOD_DIR)/brand
58 ROOT_PSM_KERN_DIR_64 = $(ROOT_PSM_MOD_DIR)/$(SUBDIR64)
59 ROOT_PSM_DRV_DIR_64 = $(ROOT_PSM_MOD_DIR)/drv/$(SUBDIR64)
60 ROOT_PSM_EXEC_DIR_64 = $(ROOT_PSM_MOD_DIR)/exec/$(SUBDIR64)
61 ROOT_PSM_FS_DIR_64 = $(ROOT_PSM_MOD_DIR)/fs/$(SUBDIR64)
62 ROOT_PSM_SCHED_DIR_64 = $(ROOT_PSM_MOD_DIR)/sched/$(SUBDIR64)
63 ROOT_PSM_STRMOD_DIR_64 = $(ROOT_PSM_MOD_DIR)/strmod/$(SUBDIR64)
64 ROOT_PSM_SYS_DIR_64 = $(ROOT_PSM_MOD_DIR)/sys/$(SUBDIR64)
65 ROOT_PSM_MISC_DIR_64 = $(ROOT_PSM_MOD_DIR)/misc/$(SUBDIR64)
66 ROOT_PSM_KGSS_DIR_64 = $(ROOT_PSM_MOD_DIR)/misc/kgss/$(SUBDIR64)
67 ROOT_PSM_MACH_DIR_64 = $(ROOT_PSM_MOD_DIR)/mach/$(SUBDIR64)
68 ROOT_PSM_CPU_DIR_64 = $(ROOT_PSM_MOD_DIR)/cpu/$(SUBDIR64)
69 ROOT_PSM_PLAT_DIR_64 = $(ROOT_PSM_MOD_DIR)/misc/$(SUBDIR64)
70 ROOT_PSM_TOD_DIR_64 = $(ROOT_PSM_MOD_DIR)/tod/$(SUBDIR64)
71 ROOT_PSM_MMU_DIR_64 = $(ROOT_PSM_MOD_DIR)/mmu/$(SUBDIR64)
72 ROOT_PSM_DACF_DIR_64 = $(ROOT_PSM_MOD_DIR)/dacf/$(SUBDIR64)
73 ROOT_PSM_CRYPTO_DIR_64 = $(ROOT_PSM_MOD_DIR)/crypto/$(SUBDIR64)
74 ROOT_PSM_PCBE_DIR_64 = $(ROOT_PSM_MOD_DIR)/pcbe/$(SUBDIR64)
75 ROOT_PSM_BRAND_DIR_64 = $(ROOT_PSM_MOD_DIR)/brand/$(SUBDIR64)
77 ROOT_PSM_KERN_DIR = $(ROOT_PSM_KERN_DIR_$(CLASS))
78 ROOT_PSM_DRV_DIR = $(ROOT_PSM_DRV_DIR_$(CLASS))
79 ROOT_PSM_EXEC_DIR = $(ROOT_PSM_EXEC_DIR_$(CLASS))
80 ROOT_PSM_FS_DIR = $(ROOT_PSM_FS_DIR_$(CLASS))
81 ROOT_PSM_SCHED_DIR = $(ROOT_PSM_SCHED_DIR_$(CLASS))
82 ROOT_PSM_STRMOD_DIR = $(ROOT_PSM_STRMOD_DIR_$(CLASS))
83 ROOT_PSM_SYS_DIR = $(ROOT_PSM_SYS_DIR_$(CLASS))
84 ROOT_PSM_MISC_DIR = $(ROOT_PSM_MISC_DIR_$(CLASS))
85 ROOT_PSM_KGSS_DIR = $(ROOT_PSM_KGSS_DIR_$(CLASS))
86 ROOT_PSM_MACH_DIR = $(ROOT_PSM_MACH_DIR_$(CLASS))
87 ROOT_PSM_CPU_DIR = $(ROOT_PSM_CPU_DIR_$(CLASS))
88 ROOT_PSM_PLAT_DIR = $(ROOT_PSM_PLAT_DIR_$(CLASS))
89 ROOT_PSM_TOD_DIR = $(ROOT_PSM_TOD_DIR_$(CLASS))
90 ROOT_PSM_MMU_DIR = $(ROOT_PSM_MMU_DIR_$(CLASS))
91 ROOT_PSM_DACF_DIR = $(ROOT_PSM_DACF_DIR_$(CLASS))
92 ROOT_PSM_CRYPTO_DIR = $(ROOT_PSM_CRYPTO_DIR_$(CLASS))
93 ROOT_PSM_PCBE_DIR = $(ROOT_PSM_PCBE_DIR_$(CLASS))
94 ROOT_PSM_BRAND_DIR = $(ROOT_PSM_BRAND_DIR_$(CLASS))
96 ROOT_PSM_MOD_DIRS_32 = $(ROOT_PSM_DRV_DIR_32)
97 ROOT_PSM_MOD_DIRS_32 += $(ROOT_PSM_EXEC_DIR_32) $(ROOT_PSM_FS_DIR_32)
98 ROOT_PSM_MOD_DIRS_32 += $(ROOT_PSM_SCHED_DIR_32) $(ROOT_PSM_STRMOD_DIR_32)
99 ROOT_PSM_MOD_DIRS_32 += $(ROOT_PSM_SYS_DIR_32) $(ROOT_PSM_MISC_DIR_32)
100 ROOT_PSM_MOD_DIRS_32 += $(ROOT_PSM_KGSS_DIR_32)
101 ROOT_PSM_MOD_DIRS_32 += $(ROOT_PSM_MACH_DIR_32) $(ROOT_PSM_CPU_DIR_32)
102 ROOT_PSM_MOD_DIRS_32 += $(ROOT_PSM_TOD_DIR_32)
103 ROOT_PSM_MOD_DIRS_32 += $(ROOT_PSM_MMU_DIR_32)
104 ROOT_PSM_MOD_DIRS_32 += $(ROOT_PSM_DACF_DIR_32)
105 ROOT_PSM_MOD_DIRS_32 += $(ROOT_PSM_CRYPTO_DIR_32)
106 ROOT_PSM_MOD_DIRS_32 += $(ROOT_PSM_PCBE_DIR_32)
107 ROOT_PSM_MOD_DIRS_32 += $(ROOT_PSM_BRAND_DIR_32)
109 ROOT_PSM_LIB_FS_DIR = $(ROOT_PSM_LIB_DIR)/fs
110 ROOT_PSM_LIB_UFS_DIR = $(ROOT_PSM_LIB_FS_DIR)/ufs
111 ROOT_PSM_LIB_NFS_DIR = $(ROOT_PSM_LIB_FS_DIR)/nfs
112 ROOT_PSM_LIB_HSFS_DIR = $(ROOT_PSM_LIB_FS_DIR)/hsfs
113 ROOT_PSM_LIB_ZFS_DIR = $(ROOT_PSM_LIB_FS_DIR)/zfs
115 USR_PLAT_DIR = $(ROOT)/usr/platform
117 USR_PSM_DIR = $(USR_PLAT_DIR)/$(PLATFORM)
119 USR_PSM_MOD_DIR = $(USR_PSM_DIR)/kernel
120 USR_PSM_INCL_DIR = $(USR_PSM_DIR)/include
121 USR_PSM_LIB_DIR = $(USR_PSM_DIR)/lib
122 USR_PSM_LIB64_DIR = $(USR_PSM_LIB_DIR)/$(MACH64)
123 USR_PSM_SBIN_DIR = $(USR_PSM_DIR)/sbin
125 USR_PSM_ISYS_DIR = $(USR_PSM_INCL_DIR)/sys
126 USR_PSM_IVM_DIR = $(USR_PSM_INCL_DIR)/vm
128 USR_PSM_LIB_ABI_DIR = $(USR_PSM_LIB_DIR)/abi
129 USR_PSM_LIB_ABI_DIR_64 = $(USR_PSM_LIB_ABI_DIR)/$(MACH64)
131 USR_PSM_LIB_FS_DIR = $(USR_PSM_LIB_DIR)/fs
132 USR_PSM_LIB_UFS_DIR = $(USR_PSM_LIB_FS_DIR)/ufs
133 USR_PSM_LIB_NFS_DIR = $(USR_PSM_LIB_FS_DIR)/nfs
134 USR_PSM_LIB_HSFS_DIR = $(USR_PSM_LIB_FS_DIR)/hsfs
135 USR_PSM_LIB_ZFS_DIR = $(USR_PSM_LIB_FS_DIR)/zfs
137 USR_PSM_DRV_DIR_32 = $(USR_PSM_MOD_DIR)/drv
138 USR_PSM_EXEC_DIR_32 = $(USR_PSM_MOD_DIR)/exec
139 USR_PSM_FS_DIR_32 = $(USR_PSM_MOD_DIR)/fs
140 USR_PSM_SCHED_DIR_32 = $(USR_PSM_MOD_DIR)/sched
141 USR_PSM_STRMOD_DIR_32 = $(USR_PSM_MOD_DIR)/strmod
142 USR_PSM_SYS_DIR_32 = $(USR_PSM_MOD_DIR)/sys
143 USR_PSM_MISC_DIR_32 = $(USR_PSM_MOD_DIR)/misc
144 USR_PSM_DACF_DIR_32 = $(USR_PSM_MOD_DIR)/dacf
146 USR_PSM_DRV_DIR_64 = $(USR_PSM_MOD_DIR)/drv/$(SUBDIR64)
147 USR_PSM_EXEC_DIR_64 = $(USR_PSM_MOD_DIR)/exec/$(SUBDIR64)
148 USR_PSM_FS_DIR_64 = $(USR_PSM_MOD_DIR)/fs/$(SUBDIR64)
149 USR_PSM_SCHED_DIR_64 = $(USR_PSM_MOD_DIR)/sched/$(SUBDIR64)
150 USR_PSM_STRMOD_DIR_64 = $(USR_PSM_MOD_DIR)/strmod/$(SUBDIR64)
151 USR_PSM_SYS_DIR_64 = $(USR_PSM_MOD_DIR)/sys/$(SUBDIR64)
152 USR_PSM_MISC_DIR_64 = $(USR_PSM_MOD_DIR)/misc/$(SUBDIR64)
153 USR_PSM_DACF_DIR_64 = $(USR_PSM_MOD_DIR)/dacf/$(SUBDIR64)
155 USR_PSM_DRV_DIR = $(USR_PSM_DRV_DIR_$(CLASS))
156 USR_PSM_EXEC_DIR = $(USR_PSM_EXEC_DIR_$(CLASS))
157 USR_PSM_FS_DIR = $(USR_PSM_FS_DIR_$(CLASS))
158 USR_PSM_SCHED_DIR = $(USR_PSM_SCHED_DIR_$(CLASS))
159 USR_PSM_STRMOD_DIR = $(USR_PSM_STRMOD_DIR_$(CLASS))
160 USR_PSM_SYS_DIR = $(USR_PSM_SYS_DIR_$(CLASS))
161 USR_PSM_MISC_DIR = $(USR_PSM_MISC_DIR_$(CLASS))
162 USR_PSM_DACF_DIR = $(USR_PSM_DACF_DIR_$(CLASS))
164 USR_PSM_MOD_DIRS_32 = $(USR_PSM_DRV_DIR_32)
165 USR_PSM_MOD_DIRS_32 += $(USR_PSM_EXEC_DIR_32) $(USR_PSM_FS_DIR_32)
166 USR_PSM_MOD_DIRS_32 += $(USR_PSM_SCHED_DIR_32) $(USR_PSM_STRMOD_DIR_32)
167 USR_PSM_MOD_DIRS_32 += $(USR_PSM_SYS_DIR_32) $(USR_PSM_MISC_DIR_32)
168 USR_PSM_MOD_DIRS_32 += $(USR_PSM_DACF_DIR_32)
171 # UltraSparc III crypto modules
173 ROOT_US3_DIR = $(ROOT_PLAT_DIR)/sun4u-us3
174 ROOT_US3_MOD_DIR = $(ROOT_US3_DIR)/kernel
175 ROOT_US3_CRYPTO_DIR_32 = $(ROOT_US3_MOD_DIR)/crypto
176 ROOT_US3_CRYPTO_DIR_64 = $(ROOT_US3_MOD_DIR)/crypto/$(SUBDIR64)
177 ROOT_US3_CRYPTO_DIR = $(ROOT_US3_CRYPTO_DIR_$(CLASS))
178 ROOT_US3_CRYPTO_LINK = $(ROOT_US3_CRYPTO_DIR_64:$(ROOT_PLAT_DIR)%=../../../..%)
180 ROOT_BOOT_PSM_KERN_DIR = $(ROOT)/boot/platform/$(PLATFORM)/kernel
183 # The following are for the installation of objects in PSM directories.
185 ROOT_PSM_PROG= $(PROG:%=$(ROOT_PSM_DIR)/%)
186 USR_PSM_PROG= $(PROG:%=$(USR_PSM_DIR)/%)
188 ROOT_PSM_SBIN_PROG= $(PROG:%=$(ROOT_PSM_SBIN_DIR)/%)
189 USR_PSM_SBIN_PROG= $(PROG:%=$(USR_PSM_SBIN_DIR)/%)
191 ROOT_PSM_LIBS= $(LIBS:%=$(ROOT_PSM_LIB_DIR)/%)
192 USR_PSM_LIBS= $(LIBS:%=$(USR_PSM_LIB_DIR)/%)
193 USR_PSM_LIBS64= $(LIBS:%=$(USR_PSM_LIB64_DIR)/%)
194 $(ROOT_PSM_LIB_DIR)/$(DYNLIB) := FILEMODE= 755
195 $(ROOT_PSM_LIB64_DIR)/$(DYNLIB) := FILEMODE= 755
196 $(USR_PSM_LIB_DIR)/$(DYNLIB) := FILEMODE= 755
197 $(USR_PSM_LIB64_DIR)/$(DYNLIB) := FILEMODE= 755
200 # The following are used to link objects between platforms (for platforms
201 # which wish to share some objects, but not everything).
203 ROOT_PSM_PROG_LINKS= $(PLATLINKS:%=$(ROOT_PLAT_DIR)/%/$(PROG))
204 USR_PSM_PROG_LINKS= $(PLATLINKS:%=$(USR_PLAT_DIR)/%/$(PROG))
206 ROOT_PSM_SBIN_PROG_LINKS= $(PLATLINKS:%=$(ROOT_PLAT_DIR)/%/sbin/$(PROG))
207 USR_PSM_SBIN_PROG_LINKS= $(PLATLINKS:%=$(USR_PLAT_DIR)/%/sbin/$(PROG))
210 # The following are for the creation of the link between the generic name
211 # of a library and the versioned instance of it.
213 ROOT_PSM_LIB_VERLINKS= $(ROOT_PSM_LIB_DIR)/$(LIBLINKS)
214 USR_PSM_LIB_VERLINKS= $(USR_PSM_LIB_DIR)/$(LIBLINKS)