Print this page
lib: move compat links from targetdirs to proper makefiles
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/lib/libc/Makefile
+++ new/usr/src/lib/libc/Makefile
1 1 #
2 2 # CDDL HEADER START
3 3 #
4 4 # The contents of this file are subject to the terms of the
5 5 # Common Development and Distribution License (the "License").
6 6 # You may not use this file except in compliance with the License.
7 7 #
8 8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 9 # or http://www.opensolaris.org/os/licensing.
10 10 # See the License for the specific language governing permissions
11 11 # and limitations under the License.
12 12 #
13 13 # When distributing Covered Code, include this CDDL HEADER in each
14 14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 15 # If applicable, add the following below this CDDL HEADER, with the
16 16 # fields enclosed by brackets "[]" replaced with your own identifying
17 17 # information: Portions Copyright [yyyy] [name of copyright owner]
18 18 #
19 19 # CDDL HEADER END
20 20 #
21 21 #
22 22 # Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
23 23 #
24 24 # Copyright 2010 Nexenta Systems, Inc. All rights reserved.
25 25 # Use is subject to license terms.
26 26 # Copyright 2019 OmniOS Community Edition (OmniOSce) Association.
27 27 #
28 28
29 29 LIBBASENAME= libc
30 30 LIBRARY= $(LIBBASENAME:%=%.a)
31 31 VERS= .1
32 32
33 33 # Note that we build libc_pic.a for the benefit of building
34 34 # ld.so.1, but we do not install it. Only ld.so.1 needs it
35 35 # and it must be built in the same workspace as libc.
36 36 LIB_PIC= libc_pic.a
37 37
↓ open down ↓ |
37 lines elided |
↑ open up ↑ |
38 38 ROOTLIB= $(ROOT)/usr/lib
39 39 ROOTFS_LIB= $(ROOT)/lib
40 40 ROOTLIB64= $(ROOTLIB)/$(MACH64)
41 41 ROOTFS_LIB64= $(ROOTFS_LIB)/$(MACH64)
42 42
43 43 ROOTVARIANTDIR= $(ROOTLIB)/libc
44 44 ROOTVARIANTDIR64= $(ROOTLIB64)/libc
45 45
46 46 # include common library definitions
47 47 include ../Makefile.lib
48 +include ../Makefile.rootfs
48 49
49 50 #
50 51 # on some architectures, we build multiple libc variants
51 52 #
52 53 VAR1 = hwcap1
53 54 VAR2 = hwcap2
54 55 VAR3 = hwcap3
55 56
56 57 VARBLD_1= $(MACH:sparc=sparc)
57 58 VARBLD= $(VARBLD_1:i386=)
58 59
59 60 VARBLD64_1= $(MACH:sparc=sparcv9)
60 61 VARBLD64= $(VARBLD64_1:i386=)
61 62
62 63 VAR1_DYNLIB = $(LIBRARY:%.a=%_$(VAR1).so$(VERS))
63 64 VAR1_BLDDIR = $(MACH)_$(VAR1)/$(VARBLD)
64 65 VAR2_DYNLIB = $(LIBRARY:%.a=%_$(VAR2).so$(VERS))
65 66 VAR2_BLDDIR = $(MACH)_$(VAR2)/$(VARBLD)
66 67 VAR3_DYNLIB = $(LIBRARY:%.a=%_$(VAR3).so$(VERS))
67 68 VAR3_BLDDIR = $(MACH)_$(VAR3)/$(VARBLD)
68 69
69 70 VAR1_DYNLIB64 = $(LIBRARY:%.a=%_$(VAR1).so$(VERS))
70 71 VAR1_BLDDIR64 = $(MACH)_$(VAR1)/$(VARBLD64)
71 72
72 73 i386_VARIANTS= $(VAR1) $(VAR2) $(VAR3)
73 74 sparc_VARIANTS=
74 75 sparcv9_VARIANTS=
75 76
76 77 i386_COMP=
77 78 sparc_COMP= capabilities
78 79
79 80 MACH_COMP= $($(MACH)_COMP)
80 81
81 82 i386_ETC= $(MACH)/etc
82 83 sparc_ETC=
83 84
84 85 VARIANTS= $($(MACH)_VARIANTS)
↓ open down ↓ |
27 lines elided |
↑ open up ↑ |
85 86 VARIANT_SUBDIRS = $(VARIANTS:%=$(MACH)_%/$(VARBLD))
86 87
87 88 VARIANTS64= $($(MACH64)_VARIANTS)
88 89 VARIANT_SUBDIRS64 = $(VARIANTS64:%=$(MACH)_%/$(VARBLD64))
89 90
90 91 SUBDIRS= $(MACH_CAP) $(MACH) $(MACH_ETC) $(VARIANT_SUBDIRS)
91 92 $(BUILD64)SUBDIRS += $(MACH64) $(VARIANT_SUBDIRS64)
92 93
93 94 LIBS = $(DYNLIB)
94 95
95 -ROOTLIBS64= $(ROOTLIBDIR64)/$(DYNLIB)
96 +ROOTLIBS64= $(ROOTLIB64)/$(DYNLIB)
96 97 MACHLIBS64= $(MACH64)/$(DYNLIB)
97 98 VARIANTLIBS= $(VARIANTS:%=$(MACH)_%/$(VARBLD)/$(LIBBASENAME)_%.so.1)
98 99 VARIANTLIBS64= $(VARIANTS64:%=$(MACH)_%/$(VARBLD64)/$(LIBBASENAME)_%.so.1)
99 100 ROOTVARIANTLIBS= $(VARIANTS:%=$(ROOTVARIANTDIR)/$(LIBBASENAME)_%.so.1)
100 101 ROOTVARIANTLIBS64= $(VARIANTS64:%=$(ROOTVARIANTDIR64)/$(LIBBASENAME)_%.so.1)
101 102
102 103 # definitions for install_h target
103 104 BASEHDRS= getxby_door.h
104 105 CHECKHDRS= $(BASEHDRS:%.h=port/gen/%.check)
105 106 HDRS= $(BASEHDRS)
106 107
107 108 CLOBBERFILES += THIRDPARTYLICENSE extract-copyright
108 109
109 110 # install rules for install_h target
110 111 $(ROOTHDRDIR)/%: port/gen/%
111 112 $(INS.file)
112 113
113 -$(ROOTLIBDIR)/$(DYNLIB) := FILEMODE = 755
114 -$(ROOTLIBDIR64)/$(DYNLIB) := FILEMODE = 755
114 +$(ROOTLIB)/$(DYNLIB) := FILEMODE = 755
115 +$(ROOTLIB64)/$(DYNLIB) := FILEMODE = 755
115 116 $(ROOTFS_LIBDIR)/$(DYNLIB) := FILEMODE = 755
116 117 $(ROOTFS_LIBDIR64)/$(DYNLIB) := FILEMODE = 755
117 118
118 119 $(ROOTVARIANTDIR) := FILEMODE= 755
119 120 $(ROOTVARIANTDIR)/$(VAR1_DYNLIB) := FILEMODE= 755
120 121 $(ROOTVARIANTDIR)/$(VAR2_DYNLIB) := FILEMODE= 755
121 122 $(ROOTVARIANTDIR)/$(VAR3_DYNLIB) := FILEMODE= 755
122 123
123 124 $(ROOTVARIANTDIR64) := FILEMODE= 755
124 125 $(ROOTVARIANTDIR64)/$(VAR1_DYNLIB64) := FILEMODE= 755
125 126
126 127 .KEEP_STATE:
127 128
128 129 all: all_h lib32 $(BUILD64) .WAIT lib64 .WAIT etc THIRDPARTYLICENSE
129 130
130 131 THIRDPARTYLICENSE: extract-copyright
131 132 $(RM) $@
132 133 ./extract-copyright . > $@
133 134
134 135 etc: $($(MACH)_ETC)
135 136
136 137 lib32: $(MACH_COMP) $(MACHLIBS) $(MACH)/$(LIB_PIC) $(VARIANTLIBS)
137 138 @if $(ELFDUMP) -r $(MACH)/$(DYNLIB) | $(GREP) -w environ ; then \
138 139 $(ECHO) "Error: Invalid reference to environ" ; \
139 140 $(ECHO) "Error: See comments in port/gen/env_data.c" ; \
140 141 exit 1; \
141 142 fi
142 143
143 144 lib64: $(MACH_COMP) $(MACHLIBS64) $(MACH64)/$(LIB_PIC) $(VARIANTLIBS64)
144 145 @if $(ELFDUMP) -r $(MACH64)/$(DYNLIB) | $(GREP) -w environ ; then \
145 146 $(ECHO) "Error: Invalid reference to environ" ; \
146 147 $(ECHO) "Error: See comments in port/gen/env_data.c" ; \
147 148 exit 1; \
148 149 fi
149 150
150 151 $(MACH)/assym.h $(MACH64)/assym.h:
151 152 @cd $(@D); $(MAKE) assym.h
152 153
153 154 $(VARIANTLIBS): FRC
154 155 @cd $(@D); pwd; VERSION='$(VERSION)' $(MAKE) $(@F)
155 156
156 157 $(VARIANTLIBS64): FRC
157 158 @cd $(@D); pwd; VERSION='$(VERSION)' $(MAKE) $(@F)
↓ open down ↓ |
33 lines elided |
↑ open up ↑ |
158 159
159 160 $($(MACH)_ETC): FRC
160 161 @cd $(@); pwd; $(MAKE) $(TARGET)
161 162
162 163 $($(MACH)_COMP): FRC
163 164 @cd $(@); pwd; $(MAKE) $(TARGET)
164 165
165 166 install: all \
166 167 etc \
167 168 inslib32 \
168 - $(BUILD64) inslib64
169 + $(ROOTCOMPATLINKS)
170 +
171 +$(BUILD64)install: inslib64 $(ROOTCOMPATLINKS64)
169 172
170 173 inslib32: $(ROOTFS_LIBS) $(ROOTFS_LINKS) $(ROOTVARIANTLIBS)
171 174
172 175 inslib64: $(ROOTFS_LIBS64) $(ROOTFS_LINKS64) $(ROOTVARIANTLIBS64)
173 176
174 177 install_h: all_h $(ROOTHDRS)
175 178
176 179 all_h: $(MACH)/assym.h $(MACH64)/assym.h
177 180
178 181 check: $(CHECKHDRS)
179 182
180 -$(ROOTFS_LIB)/%: $(MACH)/%
181 - $(INS.file)
182 -$(ROOTFS_LIBDIR)/$(LIBLINKS): $(ROOTFS_LIBDIR)/$(LIBLINKS)$(VERS)
183 - $(INS.liblink)
184 -$(ROOTFS_LIB64)/%: $(MACH64)/%
185 - $(INS.file)
186 -$(ROOTFS_LIBDIR64)/$(LIBLINKS): $(ROOTFS_LIBDIR64)/$(LIBLINKS)$(VERS)
187 - $(INS.liblink)
188 -
189 183 $(ROOTVARIANTDIR): $(ROOTLIB)
190 184 $(INS.dir)
191 185 $(ROOTVARIANTDIR)/%: $(ROOTVARIANTDIR) $(VAR1_BLDDIR)/%
192 186 $(INS.file)
193 187 $(ROOTVARIANTDIR)/%: $(ROOTVARIANTDIR) $(VAR2_BLDDIR)/%
194 188 $(INS.file)
195 189 $(ROOTVARIANTDIR)/%: $(ROOTVARIANTDIR) $(VAR3_BLDDIR)/%
196 190 $(INS.file)
197 191
198 192 $(ROOTVARIANTDIR64): $(ROOTLIB64)
199 193 $(INS.dir)
200 194 $(ROOTVARIANTDIR64)/%: $(ROOTVARIANTDIR64) $(VAR1_BLDDIR64)/%
201 195 $(INS.file)
202 196
203 197 $(MACH)/$(LIB_PIC): FRC
204 198 @cd $(MACH); pwd; VERSION='$(VERSION)' $(MAKE) $(LIB_PIC)
205 199 $(MACH64)/$(LIB_PIC): FRC
206 200 @cd $(MACH64); pwd; VERSION='$(VERSION)' $(MAKE) $(LIB_PIC)
207 201
208 202 all := TARGET= all
209 203 install := TARGET= install
210 204 clean := TARGET= clean
211 205 clobber := TARGET= clobber
212 206 lint := TARGET= lint
213 207
214 208 .PARALLEL: $(SUBDIRS)
215 209
216 210 $(SUBDIRS): FRC
217 211 @cd $@; pwd; VERSION='$(VERSION)' $(MAKE) $(TARGET)
218 212
219 213 clean: $(SUBDIRS)
220 214 clobber: $(SUBDIRS) etc clobber_local
221 215 clobber_local:
222 216 $(RM) $(CLOBBERFILES)
223 217
224 218 lint:
225 219
226 220 _msg: $(MSGDOMAIN) catalog
227 221
↓ open down ↓ |
29 lines elided |
↑ open up ↑ |
228 222 catalog:
229 223 sh ./makelibccatalog.sh $(MSGDOMAIN)
230 224
231 225 $(MSGDOMAIN):
232 226 $(INS.dir)
233 227
234 228 cscope.out tags: FRC
235 229 $(XREF) -x $@
236 230
237 231 FRC:
232 +
238 233 # include MACH-specific library targets
239 234 include ../Makefile.mach
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX