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