xref: /illumos-gate/usr/src/uts/i86pc/Makefile.rules (revision 5d9d9091)
17c478bd9Sstevel@tonic-gate#
27c478bd9Sstevel@tonic-gate# CDDL HEADER START
37c478bd9Sstevel@tonic-gate#
47c478bd9Sstevel@tonic-gate# The contents of this file are subject to the terms of the
54ab75253Smrj# Common Development and Distribution License (the "License").
64ab75253Smrj# You may not use this file except in compliance with the License.
77c478bd9Sstevel@tonic-gate#
87c478bd9Sstevel@tonic-gate# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
97c478bd9Sstevel@tonic-gate# or http://www.opensolaris.org/os/licensing.
107c478bd9Sstevel@tonic-gate# See the License for the specific language governing permissions
117c478bd9Sstevel@tonic-gate# and limitations under the License.
127c478bd9Sstevel@tonic-gate#
137c478bd9Sstevel@tonic-gate# When distributing Covered Code, include this CDDL HEADER in each
147c478bd9Sstevel@tonic-gate# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
157c478bd9Sstevel@tonic-gate# If applicable, add the following below this CDDL HEADER, with the
167c478bd9Sstevel@tonic-gate# fields enclosed by brackets "[]" replaced with your own identifying
177c478bd9Sstevel@tonic-gate# information: Portions Copyright [yyyy] [name of copyright owner]
187c478bd9Sstevel@tonic-gate#
197c478bd9Sstevel@tonic-gate# CDDL HEADER END
207c478bd9Sstevel@tonic-gate#
214ab75253Smrj
227c478bd9Sstevel@tonic-gate#
235cd376e8SJimmy Vetayases# Copyright (c) 1992, 2010, Oracle and/or its affiliates. All rights reserved.
247b07063dSIgor Kozhukhov# Copyright 2015 Igor Kozhukhov <ikozhukhov@gmail.com>
25eb00b1c8SRobert Mustacchi# Copyright 2019 Joyent, Inc.
26fe7a23c8SAndy Fiddaman# Copyright 2019 OmniOS Community Edition (OmniOSce) Association.
279e3aeadeSAndy Fiddaman# Copyright 2022 Oxide Computer Company
287c478bd9Sstevel@tonic-gate#
297c478bd9Sstevel@tonic-gate
307c478bd9Sstevel@tonic-gate#	This Makefile defines the build rules for the directory uts/i86pc
317c478bd9Sstevel@tonic-gate#	and its children. These are the source files which are i86pc
327c478bd9Sstevel@tonic-gate#	"implementation architecture" dependent.
337c478bd9Sstevel@tonic-gate#
347c478bd9Sstevel@tonic-gate#	The following two-level ordering must be maintained in this file.
357c478bd9Sstevel@tonic-gate#	  Lines are sorted first in order of decreasing specificity based on
36eb0cc229Sedp#	  the first directory component.  That is, i86pc rules come before
37eb0cc229Sedp#	  intel rules come before common rules.
387c478bd9Sstevel@tonic-gate#
397c478bd9Sstevel@tonic-gate#	  Lines whose initial directory components are equal are sorted
407c478bd9Sstevel@tonic-gate#	  alphabetically by the remaining components.
417c478bd9Sstevel@tonic-gate
427c478bd9Sstevel@tonic-gate#
437c478bd9Sstevel@tonic-gate#	Section 1a: C object build rules
447c478bd9Sstevel@tonic-gate#
457c478bd9Sstevel@tonic-gate$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/conf/%.c
467c478bd9Sstevel@tonic-gate	$(COMPILE.c) -o $@ $<
477c478bd9Sstevel@tonic-gate	$(CTFCONVERT_O)
487c478bd9Sstevel@tonic-gate
497aec1d6eScindi$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/cpu/amd_opteron/%.c
507aec1d6eScindi	$(COMPILE.c) -o $@ $<
517aec1d6eScindi	$(CTFCONVERT_O)
527aec1d6eScindi
5320c794b3Sgavinm$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/cpu/authenticamd/%.c
5420c794b3Sgavinm	$(COMPILE.c) -o $@ $<
5520c794b3Sgavinm	$(CTFCONVERT_O)
567aec1d6eScindi
577aec1d6eScindi$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/cpu/generic_cpu/%.c
587aec1d6eScindi	$(COMPILE.c) -o $@ $<
597aec1d6eScindi	$(CTFCONVERT_O)
607aec1d6eScindi
6120c794b3Sgavinm$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/cpu/genuineintel/%.c
6220c794b3Sgavinm	$(COMPILE.c) -o $@ $<
6320c794b3Sgavinm	$(CTFCONVERT_O)
6420c794b3Sgavinm
657c478bd9Sstevel@tonic-gate$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/%.c
667c478bd9Sstevel@tonic-gate	$(COMPILE.c) -o $@ $<
677c478bd9Sstevel@tonic-gate	$(CTFCONVERT_O)
687c478bd9Sstevel@tonic-gate
69d2ec54f7Sphitran$(OBJS_DIR)/%.o:                $(UTSBASE)/i86pc/io/acpi_drv/%.c
707b840e52Sphitran	$(COMPILE.c) -o $@ $<
717b840e52Sphitran	$(CTFCONVERT_O)
727b840e52Sphitran
73eca2601cSRandy Fishel$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/fipe/%.c
74eca2601cSRandy Fishel	$(COMPILE.c) -o $@ $<
75eca2601cSRandy Fishel	$(CTFCONVERT_O)
76eca2601cSRandy Fishel
77b72d5b75SMichael Corcoran$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/acpi/acpidev/%.c
78b72d5b75SMichael Corcoran	$(COMPILE.c) -o $@ $<
79b72d5b75SMichael Corcoran	$(CTFCONVERT_O)
80b72d5b75SMichael Corcoran
81b72d5b75SMichael Corcoran$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/acpi/acpinex/%.c
82b72d5b75SMichael Corcoran	$(COMPILE.c) -o $@ $<
83b72d5b75SMichael Corcoran	$(CTFCONVERT_O)
84b72d5b75SMichael Corcoran
85a3114836SGerry LiuSBD_IOCTL	= $(UTSBASE)/i86pc/sys/sbd_ioctl.h
86a3114836SGerry LiuDRMACH_IO	= $(UTSBASE)/i86pc/io/acpi/drmach_acpi
87a3114836SGerry LiuDRMACH_GENERR	= $(DRMACH_IO)/sbdgenerr
88a3114836SGerry LiuDR_IO		= $(UTSBASE)/i86pc/io/dr
89a3114836SGerry LiuDR_GENERR	= $(DR_IO)/sbdgenerr
90a3114836SGerry Liu
91a3114836SGerry Liu$(DRMACH_GENERR):	$(DR_IO)/sbdgenerr.pl
92a3114836SGerry Liu	$(RM) $@
93a3114836SGerry Liu	$(CAT) $(DR_IO)/sbdgenerr.pl > $@
94a3114836SGerry Liu	$(CHMOD) +x $@
95a3114836SGerry Liu
96a3114836SGerry Liu$(DRMACH_IO)/drmach_err.c:	$(DRMACH_GENERR) $(SBD_IOCTL)
97a3114836SGerry Liu	$(RM) $@
98a3114836SGerry Liu	$(DRMACH_GENERR) EX86 < $(SBD_IOCTL) > $(DRMACH_IO)/drmach_err.c
99a3114836SGerry Liu
100a3114836SGerry Liu$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/acpi/drmach_acpi/%.c
101a3114836SGerry Liu	$(COMPILE.c) -o $@ $<
102a3114836SGerry Liu	$(CTFCONVERT_O)
103a3114836SGerry Liu
1046732dbb3SVikram Hegde$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/amd_iommu/%.c
1056732dbb3SVikram Hegde	$(COMPILE.c) -o $@ $<
1066732dbb3SVikram Hegde	$(CTFCONVERT_O)
1076732dbb3SVikram Hegde
108a3114836SGerry Liu$(DR_GENERR):			$(DR_IO)/sbdgenerr.pl
109a3114836SGerry Liu	$(RM) $@
110a3114836SGerry Liu	$(CAT) $(DR_IO)/sbdgenerr.pl > $@
111a3114836SGerry Liu	$(CHMOD) +x $@
112a3114836SGerry Liu
113a3114836SGerry Liu$(DR_IO)/dr_err.c:		$(DR_GENERR) $(SBD_IOCTL)
114a3114836SGerry Liu	$(RM) $@
115a3114836SGerry Liu	$(DR_GENERR) ESBD < $(SBD_IOCTL) > $(DR_IO)/dr_err.c
116a3114836SGerry Liu
117a3114836SGerry Liu$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/dr/%.c
118a3114836SGerry Liu	$(COMPILE.c) -o $@ $<
119a3114836SGerry Liu	$(CTFCONVERT_O)
120a3114836SGerry Liu
12117169044Sbrutus$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/ioat/%.c
12217169044Sbrutus	$(COMPILE.c) -o $@ $<
12317169044Sbrutus	$(CTFCONVERT_O)
12417169044Sbrutus
1257c478bd9Sstevel@tonic-gate$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/pci/%.c
1267c478bd9Sstevel@tonic-gate	$(COMPILE.c) -o $@ $<
1277c478bd9Sstevel@tonic-gate	$(CTFCONVERT_O)
1287c478bd9Sstevel@tonic-gate
12970025d76Sjohnny$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/pciex/%.c
13070025d76Sjohnny	$(COMPILE.c) -o $@ $<
13170025d76Sjohnny	$(CTFCONVERT_O)
13270025d76Sjohnny
13326947304SEvan Yan$(OBJS_DIR)/%.o:		$(UTSBASE)/intel/io/pciex/hotplug/%.c
13426947304SEvan Yan	$(COMPILE.c) -o $@ $<
13526947304SEvan Yan	$(CTFCONVERT_O)
13626947304SEvan Yan
1377c478bd9Sstevel@tonic-gate$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/pcplusmp/%.c
1387c478bd9Sstevel@tonic-gate	$(COMPILE.c) -o $@ $<
1397c478bd9Sstevel@tonic-gate	$(CTFCONVERT_O)
1407c478bd9Sstevel@tonic-gate
141*5d9d9091SRichard Lowe$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/pcplusmp/%.S
1427c478bd9Sstevel@tonic-gate	$(COMPILE.s) -o $@ $<
1437c478bd9Sstevel@tonic-gate
1447ff178cdSJimmy Vetayases$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/apix/%.c
1457ff178cdSJimmy Vetayases	$(COMPILE.c) -o $@ $<
1467ff178cdSJimmy Vetayases	$(CTFCONVERT_O)
1477ff178cdSJimmy Vetayases
1482df1fe9cSrandyf$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/ppm/%.c
1492df1fe9cSrandyf	$(COMPILE.c) -o $@ $<
1502df1fe9cSrandyf	$(CTFCONVERT_O)
1512df1fe9cSrandyf
152*5d9d9091SRichard Lowe$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/ppm/%.S
1532df1fe9cSrandyf	$(COMPILE.s) -o $@ $<
1542df1fe9cSrandyf
1557c478bd9Sstevel@tonic-gate$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/psm/%.c
1567c478bd9Sstevel@tonic-gate	$(COMPILE.c) -o $@ $<
1577c478bd9Sstevel@tonic-gate	$(CTFCONVERT_O)
1587c478bd9Sstevel@tonic-gate
159*5d9d9091SRichard Lowe$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/psm/%.S
1607c478bd9Sstevel@tonic-gate	$(COMPILE.s) -o $@ $<
1617c478bd9Sstevel@tonic-gate
1622bda830bSap$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/tzmon/%.c
1632bda830bSap	$(COMPILE.c) -o $@ $<
1642bda830bSap	$(CTFCONVERT_O)
1652bda830bSap
166*5d9d9091SRichard Lowe$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/ml/%.S
1677c478bd9Sstevel@tonic-gate	$(COMPILE.s) -o $@ $<
1687c478bd9Sstevel@tonic-gate
1697c478bd9Sstevel@tonic-gate$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/os/%.c
1706a59053bSAlex Wilson	$(COMPILE.c) -_gcc=-fno-stack-protector -o $@ $<
1717c478bd9Sstevel@tonic-gate	$(CTFCONVERT_O)
1727c478bd9Sstevel@tonic-gate
1730e751525SEric Saxe$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/os/cpupm/%.c
1740e751525SEric Saxe	$(COMPILE.c) -o $@ $<
1750e751525SEric Saxe	$(CTFCONVERT_O)
1760e751525SEric Saxe
1779e3aeadeSAndy Fiddaman$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/promif/%.c
1789e3aeadeSAndy Fiddaman	$(COMPILE.c) -o $@ $<
1799e3aeadeSAndy Fiddaman	$(CTFCONVERT_O)
1809e3aeadeSAndy Fiddaman
181ae115bc7Smrj$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/boot/%.c
182ae115bc7Smrj	$(COMPILE.c) -o $@ $<
183ae115bc7Smrj	$(CTFCONVERT_O)
184ae115bc7Smrj
1857c478bd9Sstevel@tonic-gate$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/vm/%.c
1867c478bd9Sstevel@tonic-gate	$(COMPILE.c) -o $@ $<
1877c478bd9Sstevel@tonic-gate	$(CTFCONVERT_O)
1887c478bd9Sstevel@tonic-gate
1897c478bd9Sstevel@tonic-gate$(OBJS_DIR)/%.o:		$(UTSBASE)/common/io/%.c
1907c478bd9Sstevel@tonic-gate	$(COMPILE.c) -o $@ $<
1917c478bd9Sstevel@tonic-gate	$(CTFCONVERT_O)
1927c478bd9Sstevel@tonic-gate
1935cff7825Smh$(OBJS_DIR)/%.o:		$(UTSBASE)/common/io/ppm/%.c
1945cff7825Smh	$(COMPILE.c) -o $@ $<
1955cff7825Smh	$(CTFCONVERT_O)
1965cff7825Smh
197c0da6274SZhi-Jun Robin Fu$(OBJS_DIR)/%.o:		$(UTSBASE)/common/io/pciex/%.c
198c0da6274SZhi-Jun Robin Fu	$(COMPILE.c) -o $@ $<
199c0da6274SZhi-Jun Robin Fu	$(CTFCONVERT_O)
200c0da6274SZhi-Jun Robin Fu
2017c478bd9Sstevel@tonic-gate$(OBJS_DIR)/%.o:		$(UTSBASE)/common/os/%.c
2027c478bd9Sstevel@tonic-gate	$(COMPILE.c) -o $@ $<
2037c478bd9Sstevel@tonic-gate	$(CTFCONVERT_O)
2047c478bd9Sstevel@tonic-gate
2057c478bd9Sstevel@tonic-gate$(OBJS_DIR)/%.o:		$(SRC)/common/dis/i386/%.c
2067c478bd9Sstevel@tonic-gate	$(COMPILE.c) -o $@ $<
2077c478bd9Sstevel@tonic-gate	$(CTFCONVERT_O)
2087c478bd9Sstevel@tonic-gate
209fc1821feSrugrat$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/gfx_private/%.c
210fc1821feSrugrat	$(COMPILE.c) -o $@ $<
211fc1821feSrugrat	$(CTFCONVERT_O)
212fc1821feSrugrat
213ae115bc7Smrj$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/io/xsvc/%.c
21460405de4Skz	$(COMPILE.c) -o $@ $<
21560405de4Skz	$(CTFCONVERT_O)
21660405de4Skz
217349b53ddSStuart Maybee$(OBJS_DIR)/%.o:		$(UTSBASE)/common/xen/os/%.c
218349b53ddSStuart Maybee	$(COMPILE.c) -o $@ $<
219349b53ddSStuart Maybee	$(CTFCONVERT_O)
220349b53ddSStuart Maybee
2211738dd6eSToomas Soome$(OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/dboot/%.c
2221738dd6eSToomas Soome	$(COMPILE.c) -o $@ $<
2234c87aefeSPatrick Mooney	$(CTFCONVERT_O)
2244c87aefeSPatrick Mooney
225ae115bc7Smrj#
226ae115bc7Smrj# dboot stuff is always 32 bit, linked to run with phys_addr == virt_addr
227ae115bc7Smrj#
228ae115bc7SmrjDBOOT_OBJS_DIR	= dboot/$(OBJS_DIR)
229ae115bc7SmrjDBOOT_MACH_32	= -D_BOOT_TARGET_i386
230ae115bc7SmrjDBOOT_MACH_64	= -D_BOOT_TARGET_amd64
231ae115bc7SmrjDBOOT_DEFS	= -D_BOOT $(DBOOT_MACH_$(CLASS))
2323c4c5929SGordon RossDBOOT_DEFS	+= -D_MACHDEP -U_KERNEL -D_I32LPx
2339e59ac1cSToomas SoomeDBOOT_FLAGS	= $(CFLAGS_XARCH_32) $(CCVERBOSE) $(CSTD) $(CERRWARN)
2349e59ac1cSToomas SoomeDBOOT_FLAGS	+= $(CCNOAUTOINLINE)
235*5d9d9091SRichard LoweDBOOT_ASFLAGS	= $(ASFLAGS_XARCH_32) -D_ASM
236fd358c0dSmyers
2370181461bSKeith M WesolowskiDBOOT_CC_INCL	= -I$(SRC)/common -I$(SRC)/common/util $(INCLUDE_PATH)
238ae115bc7SmrjDBOOT_AS_INCL	= $(AS_INC_PATH)
2397aec1d6eScindi
240ae115bc7Smrj$(DBOOT_OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/boot/%.c
2416a3e8e86SRichard Lowe	$(i386_CC) $(DBOOT_FLAGS) -O $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
2427c478bd9Sstevel@tonic-gate
243ae115bc7Smrj$(DBOOT_OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/dboot/%.c
2446a3e8e86SRichard Lowe	$(i386_CC) $(DBOOT_FLAGS) -O $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
2457c478bd9Sstevel@tonic-gate
246cbc8e155SToomas Soome$(DBOOT_OBJS_DIR)/%.o:		$(SRC)/common/font/%.c
247898c3fecSToomas Soome	$(i386_CC) $(DBOOT_FLAGS) -O $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
248898c3fecSToomas Soome
249cbc8e155SToomas Soome$(DBOOT_OBJS_DIR)/$(FONT).c:	$(FONT_DIR)/$(FONT_SRC).bdf
250cbc8e155SToomas Soome	$(VTFONTCVT) -f source -o $@ $(FONT_DIR)/$(FONT_SRC).bdf
251898c3fecSToomas Soome
252898c3fecSToomas Soome$(DBOOT_OBJS_DIR)/%.o:		$(DBOOT_OBJS_DIR)/%.c
253898c3fecSToomas Soome	$(i386_CC) $(DBOOT_FLAGS) -O $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
254898c3fecSToomas Soome
255e65d07eeSKeith Wesolowski$(DBOOT_OBJS_DIR)/%.o:		$(COMMONBASE)/crypto/sha1/%.c
2567f11fd00SRichard Lowe	$(i386_CC) $(DBOOT_FLAGS) -O $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
257e65d07eeSKeith Wesolowski
258898c3fecSToomas Soome$(DBOOT_OBJS_DIR)/%.o:		$(DBOOT_OBJS_DIR)/%.c
259898c3fecSToomas Soome	$(i386_CC) $(DBOOT_FLAGS) -O $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
260898c3fecSToomas Soome
261ae115bc7Smrj$(DBOOT_OBJS_DIR)/%.o:		$(COMMONBASE)/util/%.c
2626a3e8e86SRichard Lowe	$(i386_CC) $(DBOOT_FLAGS) -O $(DBOOT_DEFS) $(DBOOT_CC_INCL) -c -o $@ $<
2637c478bd9Sstevel@tonic-gate
264*5d9d9091SRichard Lowe$(DBOOT_OBJS_DIR)/%.o:		$(COMMONBASE)/util/i386/%.S
265*5d9d9091SRichard Lowe	$(AS) $(DBOOT_DEFS) $(DBOOT_ASFLAGS) $(DBOOT_AS_INCL) -c -o $@ $<
2667c478bd9Sstevel@tonic-gate
267*5d9d9091SRichard Lowe$(DBOOT_OBJS_DIR)/%.o:		$(UTSBASE)/i86pc/dboot/%.S
268*5d9d9091SRichard Lowe	$(AS) $(DBOOT_DEFS) $(DBOOT_ASFLAGS) $(DBOOT_AS_INCL) -c -o $@ $<
2697c478bd9Sstevel@tonic-gate
270ae115bc7Smrj#
271ae115bc7Smrj# Stuff to build bios_call.o for the kernel.
272ae115bc7Smrj#
273ae115bc7SmrjMAPFILE_BIOS	= $(UTSBASE)/i86pc/conf/Mapfile.bios
274*5d9d9091SRichard Lowe$(OBJS_DIR)/bios_call.o:    $(UTSBASE)/i86pc/ml/bios_call_src.S
275ae115bc7Smrj	$(COMPILE.s) -o $(OBJS_DIR)/bios_call_src.o \
276*5d9d9091SRichard Lowe		$(UTSBASE)/i86pc/ml/bios_call_src.S
277ae115bc7Smrj	$(LD) -dn -M $(MAPFILE_BIOS)  \
278ae115bc7Smrj		-o $(OBJS_DIR)/bios_call_src $(OBJS_DIR)/bios_call_src.o
279ae115bc7Smrj	@echo "  .data"				> $(OBJS_DIR)/bios_call.s
280ae115bc7Smrj	@echo "  .globl bios_image"		>> $(OBJS_DIR)/bios_call.s
281ae115bc7Smrj	@echo "bios_image:"			>> $(OBJS_DIR)/bios_call.s
282ae115bc7Smrj	$(ELFEXTRACT) $(OBJS_DIR)/bios_call_src	>> $(OBJS_DIR)/bios_call.s
283ae115bc7Smrj	@echo "  .align 4"			>> $(OBJS_DIR)/bios_call.s
284ae115bc7Smrj	@echo "  .globl bios_size"		>> $(OBJS_DIR)/bios_call.s
285ae115bc7Smrj	@echo "bios_size:"			>> $(OBJS_DIR)/bios_call.s
286ae115bc7Smrj	@echo "  .long . - bios_image"		>> $(OBJS_DIR)/bios_call.s
287ae115bc7Smrj	$(COMPILE.s) -o $@ $(OBJS_DIR)/bios_call.s
2887c478bd9Sstevel@tonic-gate
28919397407SSherry Moore#
29019397407SSherry Moore# Stuff to build fb_swtch.o for the kernel.
29119397407SSherry Moore#
29219397407SSherry MooreMAPFILE_FBSWTCH	= $(UTSBASE)/i86pc/conf/Mapfile.fb_swtch
293*5d9d9091SRichard Lowe$(OBJS_DIR)/fb_swtch.o:    $(UTSBASE)/i86pc/ml/fb_swtch_src.S
29419397407SSherry Moore	$(COMPILE.s) -o $(OBJS_DIR)/fb_swtch_src.o \
295*5d9d9091SRichard Lowe		$(UTSBASE)/i86pc/ml/fb_swtch_src.S
29619397407SSherry Moore	$(LD) -dn -M $(MAPFILE_FBSWTCH)  \
29719397407SSherry Moore		-o $(OBJS_DIR)/fb_swtch_src $(OBJS_DIR)/fb_swtch_src.o
29819397407SSherry Moore	@echo "  .data"				> $(OBJS_DIR)/fb_swtch.s
29919397407SSherry Moore	@echo "  .globl fb_swtch_image"		>> $(OBJS_DIR)/fb_swtch.s
30019397407SSherry Moore	@echo "fb_swtch_image:"			>> $(OBJS_DIR)/fb_swtch.s
30119397407SSherry Moore	$(ELFEXTRACT) $(OBJS_DIR)/fb_swtch_src	>> $(OBJS_DIR)/fb_swtch.s
30219397407SSherry Moore	@echo "  .align 4"			>> $(OBJS_DIR)/fb_swtch.s
30319397407SSherry Moore	@echo "  .globl fb_swtch_size"		>> $(OBJS_DIR)/fb_swtch.s
30419397407SSherry Moore	@echo "fb_swtch_size:"			>> $(OBJS_DIR)/fb_swtch.s
30519397407SSherry Moore	@echo "  .long . - fb_swtch_image"	>> $(OBJS_DIR)/fb_swtch.s
30619397407SSherry Moore	$(COMPILE.s) -o $@ $(OBJS_DIR)/fb_swtch.s
30719397407SSherry Moore
308ae115bc7Smrj# ridiculous contortions ---
309ae115bc7SmrjATOMIC_SUBDIR_32	= i386
310ae115bc7SmrjATOMIC_SUBDIR_64	= amd64
311ae115bc7SmrjATOMIC_SUBDIR		= $(ATOMIC_SUBDIR_$(CLASS))
3127c478bd9Sstevel@tonic-gate
313ae115bc7Smrj$(OBJS_DIR)/%.o:		$(SRC)/common/atomic/$(ATOMIC_SUBDIR)/%.s
314ae115bc7Smrj	$(COMPILE.s) -o $@ $<
3157c478bd9Sstevel@tonic-gate
316*5d9d9091SRichard Lowe$(OBJS_DIR)/%.o:		$(SRC)/common/atomic/$(ATOMIC_SUBDIR)/%.S
317*5d9d9091SRichard Lowe	$(COMPILE.s) -o $@ $<
318*5d9d9091SRichard Lowe
319ae115bc7Smrj#
320ae115bc7Smrj# dtrace stubs
321ae115bc7Smrj#
32230082d0cSmyers
3237c478bd9Sstevel@tonic-gate$(OBJS_DIR)/dtracestubs.s:	$(UNIX_O) $(LIBS)
324425251fdSSam Gwydir	$(NM) -u $(UNIX_O) $(LIBS) | \
325425251fdSSam Gwydir	$(EGREP) '(__dtrace_probe_|smap_(disable|enable))' | $(SORT) | \
3267b07063dSIgor Kozhukhov	    $(UNIQ) | $(AWK) '{ \
3277c478bd9Sstevel@tonic-gate	    printf("\t.globl %s\n\t.type %s,@function\n%s:\n", \
3287c478bd9Sstevel@tonic-gate	    $$1, $$1, $$1); }' > $(OBJS_DIR)/dtracestubs.s
3297c478bd9Sstevel@tonic-gate
3307c478bd9Sstevel@tonic-gate$(DTRACESTUBS):	$(DTRACESTUBS_O)
33102e56f3fSwesolows	$(BUILD.SO) $(DTRACESTUBS_O)
332