IDENT=-DDDB -DDIAGNOSTIC -DKTRACE -DACCOUNTING -DKMEMSTATS -DPTRACE -DCRYPTO -DSYSVMSG -DSYSVSEM -DSYSVSHM -DUVM_SWAP_ENCRYPT -DFFS -DFFS2 -DFFS_SOFTUPDATES -DUFS_DIRHASH -DQUOTA -DEXT2FS -DMFS -DNFSCLIENT -DNFSSERVER -DCD9660 -DUDF -DMSDOSFS -DFIFO -DFUSE -DSOCKET_SPLICE -DTCP_ECN -DTCP_SIGNATURE -DINET6 -DIPSEC -DPPP_BSDCOMP -DPPP_DEFLATE -DPIPEX -DMROUTING -DMPLS -DBOOT_CONFIG -DKERNBASE="0xa800000020000000" -DPCIVERBOSE -DUSER_PCICONF -DUSBVERBOSE -DTGT_OCTANE -DTGT_COHERENT -DARCBIOS -DCPU_R10000 -DONEWIREVERBOSE
PARAM=-DMAXUSERS=32
S=	/usr/src/sys
_mach=sgi
_arch=mips64
LINK_ADDRESS=0xa800000020020000
#	$OpenBSD: Makefile.sgi,v 1.100 2019/11/07 20:42:28 guenther Exp $

# For instructions on building kernels consult the config(8) and options(4)
# manual pages.
#
# N.B.: NO DEPENDENCIES ON FOLLOWING FLAGS ARE VISIBLE TO MAKEFILE
#	IF YOU CHANGE THE DEFINITION OF ANY OF THESE RECOMPILE EVERYTHING
# DEBUG is set to -g by config if debugging is requested (config -g).
# PROF is set to -pg by config if profiling is requested (config -p).

.include <bsd.own.mk>

SIZE?=	size
STRIP?=	ctfstrip
AS?=	as
CC?=	cc
LD?=	ld ${ENDIAN}

AS+=${ENDIAN}
CC+=${ENDIAN}
LD+=${ENDIAN}

# source tree is located via $S relative to the compilation directory
.ifndef S
S!=	cd ../../../..; pwd
.endif

_machdir?=	$S/arch/${_mach}
_archdir?=	$S/arch/${_arch}

INCLUDES=	-nostdinc -I$S -I${.OBJDIR} -I$S/arch
CPPFLAGS=	${INCLUDES} ${IDENT} ${PARAM} -D_KERNEL -D__${_mach}__ -MD -MP
CWARNFLAGS=	-Werror -Wall -Wimplicit-function-declaration \
		-Wno-uninitialized -Wno-pointer-sign \
		-Wframe-larger-than=2047

CMACHFLAGS=	-mno-abicalls ${ABI} -msoft-float -G 0
CMACHFLAGS+=	-ffreestanding ${NOPIE_FLAGS}
SORTR=		sort -R
.if ${IDENT:M-DNO_PROPOLICE}
CMACHFLAGS+=	-fno-stack-protector
.endif
.if ${IDENT:M-DSMALL_KERNEL}
SORTR=		cat
COPTS?=		-Oz
.endif

DEBUG?=		-g
COPTS?=		-O2
CFLAGS=		${DEBUG} ${CWARNFLAGS} ${CMACHFLAGS} ${COPTS} ${PIPE}
AFLAGS=		-D_LOCORE -x assembler-with-cpp ${CWARNFLAGS} ${CMACHFLAGS}
LINKFLAGS=	-e start -T ld.script -Ttext=${LINK_ADDRESS} --warn-common -nopie

HOSTCC?=	${CC}
HOSTED_CPPFLAGS=${CPPFLAGS:S/^-nostdinc$//}
HOSTED_CFLAGS=	${CFLAGS}
HOSTED_C=	${HOSTCC} ${HOSTED_CFLAGS} ${HOSTED_CPPFLAGS} -c $<

NORMAL_C_NOP=	${CC} ${CFLAGS} ${CPPFLAGS} -c $<
NORMAL_C=	${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c $<
NORMAL_S=	${CC} ${AFLAGS} ${CPPFLAGS} ${PROF} -c $<

OBJS=	smc93cx6.o edid.o vesagtf.o videomode.o mii_bitbang.o \
	aic7xxx.o aic7xxx_openbsd.o aic7xxx_seeprom.o qlw.o qla.o \
	mpi.o siop_common.o siop.o elink3.o if_wi.o if_wi_hostap.o \
	xl.o fxp.o mtd8xx.o rtl81x9.o re.o dc.o smc83c170.o \
	ne2000.o dl10019.o ax88190.o gem.o ti.o com.o ac97.o \
	rtwn.o acx.o acx111.o acx100.o aic6915.o malo.o uhci.o \
	ohci.o ehci.o vscsi.o softraid.o softraid_concat.o \
	softraid_crypto.o softraid_raid0.o softraid_raid1.o \
	softraid_raid5.o softraid_raid6.o ksyms.o fuse_device.o \
	fuse_file.o fuse_lookup.o fuse_vfsops.o fuse_vnops.o \
	fusebuf.o pf.o pf_norm.o pf_ruleset.o pf_ioctl.o pf_table.o \
	pf_osfp.o pf_if.o pf_lb.o pf_syncookies.o hfsc.o fq_codel.o \
	if_pflog.o if_pfsync.o if_pflow.o bio.o hotplug.o \
	if_pppoe.o db_access.o db_break.o db_command.o db_ctf.o \
	db_dwarf.o db_elf.o db_examine.o db_expr.o db_hangman.o \
	db_input.o db_lex.o db_output.o db_run.o db_sym.o db_trap.o \
	db_variables.o db_watch.o db_usrreq.o audio.o cons.o \
	diskmap.o firmload.o dp8390.o rtl80x9.o midi.o mulaw.o \
	vnd.o rnd.o video.o cd9660_bmap.o cd9660_lookup.o \
	cd9660_node.o cd9660_rrip.o cd9660_util.o cd9660_vfsops.o \
	cd9660_vnops.o udf_subr.o udf_vfsops.o udf_vnops.o \
	clock_subr.o exec_conf.o exec_elf.o exec_script.o \
	exec_subr.o init_main.o init_sysent.o kern_acct.o \
	kern_bufq.o kern_clock.o kern_descrip.o kern_event.o \
	kern_exec.o kern_exit.o kern_fork.o kern_kthread.o \
	kern_ktrace.o kern_lock.o kern_malloc.o kern_rwlock.o \
	kern_physio.o kern_proc.o kern_prot.o kern_resource.o \
	kern_pledge.o kern_unveil.o kern_sched.o kern_sensors.o \
	kern_sig.o kern_smr.o kern_subr.o kern_sysctl.o kern_synch.o \
	kern_tc.o kern_time.o kern_timeout.o kern_uuid.o \
	kern_watchdog.o kern_task.o kern_srp.o kern_xxx.o \
	sched_bsd.o subr_autoconf.o subr_disk.o subr_evcount.o \
	subr_extent.o subr_log.o subr_percpu.o subr_poison.o \
	subr_pool.o subr_tree.o dma_alloc.o subr_prf.o subr_prof.o \
	subr_userconf.o subr_xxx.o sys_futex.o sys_generic.o \
	sys_pipe.o sys_process.o sys_socket.o sysv_ipc.o sysv_msg.o \
	sysv_sem.o sysv_shm.o tty.o tty_conf.o tty_pty.o tty_nmea.o \
	tty_msts.o tty_endrun.o tty_subr.o tty_tty.o uipc_domain.o \
	uipc_mbuf.o uipc_mbuf2.o uipc_proto.o uipc_socket.o \
	uipc_socket2.o uipc_syscalls.o uipc_usrreq.o vfs_bio.o \
	vfs_biomem.o vfs_cache.o vfs_default.o vfs_init.o \
	vfs_lockf.o vfs_lookup.o vfs_subr.o vfs_sync.o \
	vfs_syscalls.o vfs_vops.o vfs_vnops.o vfs_getcwd.o \
	spec_vnops.o dead_vnops.o fifo_vnops.o msdosfs_conv.o \
	msdosfs_denode.o msdosfs_fat.o msdosfs_lookup.o \
	msdosfs_vfsops.o msdosfs_vnops.o art.o bpf.o bpf_filter.o \
	if.o ifq.o if_ethersubr.o if_etherip.o if_spppsubr.o \
	if_loop.o if_media.o if_ppp.o ppp_tty.o bsd-comp.o \
	ppp-deflate.o if_tun.o if_bridge.o bridgectl.o bridgestp.o \
	if_vlan.o if_switch.o switchctl.o switchofp.o pipex.o \
	radix.o rtable.o route.o rtsock.o slcompress.o if_enc.o \
	if_gre.o if_trunk.o trunklacp.o if_aggr.o if_tpmr.o \
	if_mpe.o if_mpw.o if_mpip.o if_bpe.o if_vether.o if_pair.o \
	if_pppx.o if_vxlan.o if_wg.o wg_noise.o wg_cookie.o \
	ieee80211.o ieee80211_amrr.o ieee80211_crypto.o \
	ieee80211_crypto_bip.o ieee80211_crypto_ccmp.o \
	ieee80211_crypto_tkip.o ieee80211_crypto_wep.o \
	ieee80211_input.o ieee80211_ioctl.o ieee80211_mira.o \
	ieee80211_node.o ieee80211_output.o ieee80211_pae_input.o \
	ieee80211_pae_output.o ieee80211_proto.o ieee80211_rssadapt.o \
	ieee80211_regdomain.o if_ether.o igmp.o in.o in_pcb.o \
	in_proto.o inet_nat64.o inet_ntop.o ip_divert.o ip_icmp.o \
	ip_id.o ip_input.o ip_mroute.o ip_output.o raw_ip.o \
	tcp_debug.o tcp_input.o tcp_output.o tcp_subr.o tcp_timer.o \
	tcp_usrreq.o udp_usrreq.o ip_gre.o ip_ipsp.o ip_spd.o \
	ip_ipip.o ipsec_input.o ipsec_output.o ip_esp.o ip_ah.o \
	ip_carp.o ip_ipcomp.o aes.o rijndael.o md5.o rmd160.o \
	sha1.o sha2.o blf.o cast.o ecb_enc.o set_key.o ecb3_enc.o \
	crypto.o criov.o cryptosoft.o xform.o xform_ipcomp.o arc4.o \
	michael.o cmac.o hmac.o gmac.o key_wrap.o idgen.o \
	chachapoly.o poly1305.o siphash.o blake2s.o curve25519.o \
	mpls_input.o mpls_output.o mpls_proto.o mpls_raw.o \
	mpls_shim.o krpc_subr.o nfs_bio.o nfs_boot.o nfs_debug.o \
	nfs_node.o nfs_kq.o nfs_serv.o nfs_socket.o nfs_srvcache.o \
	nfs_subs.o nfs_syscalls.o nfs_vfsops.o nfs_vnops.o \
	ffs_alloc.o ffs_balloc.o ffs_inode.o ffs_subr.o \
	ffs_softdep_stub.o ffs_tables.o ffs_vfsops.o ffs_vnops.o \
	ffs_softdep.o mfs_vfsops.o mfs_vnops.o ufs_bmap.o \
	ufs_dirhash.o ufs_ihash.o ufs_inode.o ufs_lookup.o \
	ufs_quota.o ufs_quota_stub.o ufs_vfsops.o ufs_vnops.o \
	ext2fs_alloc.o ext2fs_balloc.o ext2fs_bmap.o ext2fs_bswap.o \
	ext2fs_extents.o ext2fs_inode.o ext2fs_lookup.o \
	ext2fs_readwrite.o ext2fs_subr.o ext2fs_vfsops.o \
	ext2fs_vnops.o uvm_addr.o uvm_amap.o uvm_anon.o uvm_aobj.o \
	uvm_device.o uvm_fault.o uvm_glue.o uvm_init.o uvm_io.o \
	uvm_km.o uvm_map.o uvm_meter.o uvm_mmap.o uvm_object.o \
	uvm_page.o uvm_pager.o uvm_pdaemon.o uvm_pmemrange.o \
	uvm_swap.o uvm_swap_encrypt.o uvm_unix.o uvm_vnode.o \
	if_gif.o ip_ecn.o in6_pcb.o in6.o ip6_divert.o \
	in6_ifattach.o in6_cksum.o in6_src.o in6_proto.o dest6.o \
	frag6.o icmp6.o ip6_id.o ip6_input.o ip6_forward.o \
	ip6_mroute.o ip6_output.o route6.o mld6.o nd6.o nd6_nbr.o \
	nd6_rtr.o raw_ip6.o udp6_output.o pfkeyv2.o \
	pfkeyv2_parsemessage.o pfkeyv2_convert.o getsn.o random.o \
	explicit_bzero.o timingsafe_bcmp.o strchr.o strrchr.o imax.o \
	imin.o lmax.o lmin.o max.o min.o ulmax.o ulmin.o memchr.o \
	memcmp.o bcmp.o bzero.o bcopy.o memcpy.o memmove.o ffs.o \
	fls.o flsl.o memset.o strcmp.o strlcat.o strlcpy.o \
	strlen.o strncmp.o strncpy.o strnlen.o scanc.o skpc.o \
	htonl.o htons.o strncasecmp.o adler32.o crc32.o infback.o \
	inffast.o inflate.o inftrees.o deflate.o zutil.o zopenbsd.o \
	trees.o compress.o arcbios.o clock.o cpu.o interrupt.o \
	mem.o mips64_machdep.o pmap.o process_machdep.o sendsig.o \
	softintr.o sys_machdep.o trap.o vm_machdep.o cache_r10k.o \
	context.o cp0access.o exception.o fp_emulate.o \
	lcore_access.o lcore_float.o tlbhandler.o db_disasm.o \
	db_machdep.o lcore_ddb.o in_cksum.o in4_cksum.o softfloat.o \
	cninit.o autoconf.o bus_dma.o conf.o disksubr.o \
	ip30_machdep.o ip30_nmi.o locore.o machdep.o mainbus.o \
	wscons_machdep.o mii.o mii_physubr.o ukphy_subr.o nsphy.o \
	nsphyter.o gentbi.o qsphy.o inphy.o iophy.o eephy.o \
	exphy.o rlphy.o lxtphy.o luphy.o mtdphy.o icsphy.o sqphy.o \
	tqphy.o ukphy.o dcphy.o bmtphy.o brgphy.o xmphy.o amphy.o \
	acphy.o nsgphy.o urlphy.o rgephy.o ciphy.o ipgphy.o \
	pckbd.o wskbdmap_mfii.o pms.o impact.o xbow.o xheart.o \
	xbridge.o odyssey.o impact_xbow.o onewire.o onewire_subr.o \
	scsi_base.o scsi_ioctl.o scsiconf.o cd.o ch.o sd.o st.o \
	uk.o safte.o ses.o pci.o pci_map.o pci_quirks.o pci_subr.o \
	ahc_pci.o eap.o envy.o emuxki.o qlw_pci.o qla_pci.o qle.o \
	mpi_pci.o if_de.o if_ep_pci.o if_pcn.o siop_pci_common.o \
	siop_pci.o ppb.o if_mtd_pci.o if_rl_pci.o if_re_pci.o \
	if_vr.o if_xl_pci.o if_fxp_pci.o if_em.o if_em_hw.o \
	if_em_soc.o if_dc_pci.o if_epic_pci.o if_ti_pci.o \
	if_ne_pci.o if_gem_pci.o if_cas.o hifn7751.o ubsec.o \
	if_sf_pci.o if_sis.o uhci_pci.o ohci_pci.o ehci_pci.o \
	pccbb.o if_sk.o if_msk.o puc.o pucdata.o com_puc.o \
	if_wi_pci.o cmpci.o if_bge.o if_bnx.o if_vge.o if_stge.o \
	if_acx_pci.o if_malo_pci.o pci_machdep.o hme.o if_hme_pci.o \
	ioc.o com_ioc.o if_iec.o iockbc.o dsrtc.o power.o rasops.o \
	rasops15.o rasops32.o wsfont.o wsdisplay.o wsevent.o \
	wskbd.o wskbdutil.o wsmouse.o wstpad.o wsmux.o wsemulconf.o \
	wsemul_subr.o wsemul_vt100.o wsemul_vt100_subr.o \
	wsemul_vt100_chars.o wsemul_vt100_keys.o cardslot.o cardbus.o \
	cardbus_map.o cardbus_exrom.o rbus.o com_cardbus.o \
	if_xl_cardbus.o if_dc_cardbus.o if_fxp_cardbus.o \
	if_rl_cardbus.o if_re_cardbus.o if_acx_cardbus.o \
	ehci_cardbus.o ohci_cardbus.o uhci_cardbus.o pcmcia.o \
	pcmcia_cis.o pcmcia_cis_quirks.o if_ep_pcmcia.o \
	if_ne_pcmcia.o com_pcmcia.o if_wi_pcmcia.o hid.o hidkbd.o \
	hidms.o usb.o usbdi.o usbdi_util.o usb_mem.o usb_subr.o \
	usb_quirks.o uhub.o uaudio.o uvideo.o utvfu.o udl.o ucom.o \
	ugen.o uhidev.o uhid.o fido.o ukbdmap.o ukbd.o ums.o \
	uslhcom.o ulpt.o umass.o umass_quirks.o umass_scsi.o \
	uthum.o ugold.o uonerng.o urng.o utwitch.o if_aue.o \
	if_axe.o if_axen.o if_smsc.o if_cue.o if_kue.o if_cdce.o \
	if_mos.o if_udav.o if_upl.o if_ugl.o if_url.o if_ure.o \
	umodem.o uvscom.o ubsa.o if_wi_usb.o if_atu.o if_ral.o \
	if_rum.o if_run.o if_zyd.o if_upgt.o if_urtw.o if_urtwn.o \
	if_rsu.o if_otus.o if_uath.o owmac.o owserial.o \
	owmem_subr.o

CFILES=	$S/dev/ic/smc93cx6.c $S/dev/videomode/edid.c \
	$S/dev/videomode/vesagtf.c $S/dev/videomode/videomode.c \
	$S/dev/mii/mii_bitbang.c $S/dev/ic/aic7xxx.c \
	$S/dev/ic/aic7xxx_openbsd.c $S/dev/ic/aic7xxx_seeprom.c \
	$S/dev/ic/qlw.c $S/dev/ic/qla.c $S/dev/ic/mpi.c \
	$S/dev/ic/siop_common.c $S/dev/ic/siop.c $S/dev/ic/elink3.c \
	$S/dev/ic/if_wi.c $S/dev/ic/if_wi_hostap.c $S/dev/ic/xl.c \
	$S/dev/ic/fxp.c $S/dev/ic/mtd8xx.c $S/dev/ic/rtl81x9.c \
	$S/dev/ic/re.c $S/dev/ic/dc.c $S/dev/ic/smc83c170.c \
	$S/dev/ic/ne2000.c $S/dev/ic/dl10019.c $S/dev/ic/ax88190.c \
	$S/dev/ic/gem.c $S/dev/ic/ti.c $S/dev/ic/com.c $S/dev/ic/ac97.c \
	$S/dev/ic/rtwn.c $S/dev/ic/acx.c $S/dev/ic/acx111.c \
	$S/dev/ic/acx100.c $S/dev/ic/aic6915.c $S/dev/ic/malo.c \
	$S/dev/usb/uhci.c $S/dev/usb/ohci.c $S/dev/usb/ehci.c \
	$S/dev/vscsi.c $S/dev/softraid.c $S/dev/softraid_concat.c \
	$S/dev/softraid_crypto.c $S/dev/softraid_raid0.c \
	$S/dev/softraid_raid1.c $S/dev/softraid_raid5.c \
	$S/dev/softraid_raid6.c $S/dev/ksyms.c \
	$S/miscfs/fuse/fuse_device.c $S/miscfs/fuse/fuse_file.c \
	$S/miscfs/fuse/fuse_lookup.c $S/miscfs/fuse/fuse_vfsops.c \
	$S/miscfs/fuse/fuse_vnops.c $S/miscfs/fuse/fusebuf.c $S/net/pf.c \
	$S/net/pf_norm.c $S/net/pf_ruleset.c $S/net/pf_ioctl.c \
	$S/net/pf_table.c $S/net/pf_osfp.c $S/net/pf_if.c $S/net/pf_lb.c \
	$S/net/pf_syncookies.c $S/net/hfsc.c $S/net/fq_codel.c \
	$S/net/if_pflog.c $S/net/if_pfsync.c $S/net/if_pflow.c \
	$S/dev/bio.c $S/dev/hotplug.c $S/net/if_pppoe.c \
	$S/ddb/db_access.c $S/ddb/db_break.c $S/ddb/db_command.c \
	$S/ddb/db_ctf.c $S/ddb/db_dwarf.c $S/ddb/db_elf.c \
	$S/ddb/db_examine.c $S/ddb/db_expr.c $S/ddb/db_hangman.c \
	$S/ddb/db_input.c $S/ddb/db_lex.c $S/ddb/db_output.c \
	$S/ddb/db_run.c $S/ddb/db_sym.c $S/ddb/db_trap.c \
	$S/ddb/db_variables.c $S/ddb/db_watch.c $S/ddb/db_usrreq.c \
	$S/dev/audio.c $S/dev/cons.c $S/dev/diskmap.c $S/dev/firmload.c \
	$S/dev/ic/dp8390.c $S/dev/ic/rtl80x9.c $S/dev/midi.c \
	$S/dev/mulaw.c $S/dev/vnd.c $S/dev/rnd.c $S/dev/video.c \
	$S/isofs/cd9660/cd9660_bmap.c $S/isofs/cd9660/cd9660_lookup.c \
	$S/isofs/cd9660/cd9660_node.c $S/isofs/cd9660/cd9660_rrip.c \
	$S/isofs/cd9660/cd9660_util.c $S/isofs/cd9660/cd9660_vfsops.c \
	$S/isofs/cd9660/cd9660_vnops.c $S/isofs/udf/udf_subr.c \
	$S/isofs/udf/udf_vfsops.c $S/isofs/udf/udf_vnops.c \
	$S/kern/clock_subr.c $S/kern/exec_conf.c $S/kern/exec_elf.c \
	$S/kern/exec_script.c $S/kern/exec_subr.c $S/kern/init_main.c \
	$S/kern/init_sysent.c $S/kern/kern_acct.c $S/kern/kern_bufq.c \
	$S/kern/kern_clock.c $S/kern/kern_descrip.c $S/kern/kern_event.c \
	$S/kern/kern_exec.c $S/kern/kern_exit.c $S/kern/kern_fork.c \
	$S/kern/kern_kthread.c $S/kern/kern_ktrace.c $S/kern/kern_lock.c \
	$S/kern/kern_malloc.c $S/kern/kern_rwlock.c $S/kern/kern_physio.c \
	$S/kern/kern_proc.c $S/kern/kern_prot.c $S/kern/kern_resource.c \
	$S/kern/kern_pledge.c $S/kern/kern_unveil.c $S/kern/kern_sched.c \
	$S/kern/kern_sensors.c $S/kern/kern_sig.c $S/kern/kern_smr.c \
	$S/kern/kern_subr.c $S/kern/kern_sysctl.c $S/kern/kern_synch.c \
	$S/kern/kern_tc.c $S/kern/kern_time.c $S/kern/kern_timeout.c \
	$S/kern/kern_uuid.c $S/kern/kern_watchdog.c $S/kern/kern_task.c \
	$S/kern/kern_srp.c $S/kern/kern_xxx.c $S/kern/sched_bsd.c \
	$S/kern/subr_autoconf.c $S/kern/subr_disk.c \
	$S/kern/subr_evcount.c $S/kern/subr_extent.c $S/kern/subr_log.c \
	$S/kern/subr_percpu.c $S/kern/subr_poison.c $S/kern/subr_pool.c \
	$S/kern/subr_tree.c $S/kern/dma_alloc.c $S/kern/subr_prf.c \
	$S/kern/subr_prof.c $S/kern/subr_userconf.c $S/kern/subr_xxx.c \
	$S/kern/sys_futex.c $S/kern/sys_generic.c $S/kern/sys_pipe.c \
	$S/kern/sys_process.c $S/kern/sys_socket.c $S/kern/sysv_ipc.c \
	$S/kern/sysv_msg.c $S/kern/sysv_sem.c $S/kern/sysv_shm.c \
	$S/kern/tty.c $S/kern/tty_conf.c $S/kern/tty_pty.c \
	$S/kern/tty_nmea.c $S/kern/tty_msts.c $S/kern/tty_endrun.c \
	$S/kern/tty_subr.c $S/kern/tty_tty.c $S/kern/uipc_domain.c \
	$S/kern/uipc_mbuf.c $S/kern/uipc_mbuf2.c $S/kern/uipc_proto.c \
	$S/kern/uipc_socket.c $S/kern/uipc_socket2.c \
	$S/kern/uipc_syscalls.c $S/kern/uipc_usrreq.c $S/kern/vfs_bio.c \
	$S/kern/vfs_biomem.c $S/kern/vfs_cache.c $S/kern/vfs_default.c \
	$S/kern/vfs_init.c $S/kern/vfs_lockf.c $S/kern/vfs_lookup.c \
	$S/kern/vfs_subr.c $S/kern/vfs_sync.c $S/kern/vfs_syscalls.c \
	$S/kern/vfs_vops.c $S/kern/vfs_vnops.c $S/kern/vfs_getcwd.c \
	$S/kern/spec_vnops.c $S/miscfs/deadfs/dead_vnops.c \
	$S/miscfs/fifofs/fifo_vnops.c $S/msdosfs/msdosfs_conv.c \
	$S/msdosfs/msdosfs_denode.c $S/msdosfs/msdosfs_fat.c \
	$S/msdosfs/msdosfs_lookup.c $S/msdosfs/msdosfs_vfsops.c \
	$S/msdosfs/msdosfs_vnops.c $S/net/art.c $S/net/bpf.c \
	$S/net/bpf_filter.c $S/net/if.c $S/net/ifq.c \
	$S/net/if_ethersubr.c $S/net/if_etherip.c $S/net/if_spppsubr.c \
	$S/net/if_loop.c $S/net/if_media.c $S/net/if_ppp.c \
	$S/net/ppp_tty.c $S/net/bsd-comp.c $S/net/ppp-deflate.c \
	$S/net/if_tun.c $S/net/if_bridge.c $S/net/bridgectl.c \
	$S/net/bridgestp.c $S/net/if_vlan.c $S/net/if_switch.c \
	$S/net/switchctl.c $S/net/switchofp.c $S/net/pipex.c \
	$S/net/radix.c $S/net/rtable.c $S/net/route.c $S/net/rtsock.c \
	$S/net/slcompress.c $S/net/if_enc.c $S/net/if_gre.c \
	$S/net/if_trunk.c $S/net/trunklacp.c $S/net/if_aggr.c \
	$S/net/if_tpmr.c $S/net/if_mpe.c $S/net/if_mpw.c $S/net/if_mpip.c \
	$S/net/if_bpe.c $S/net/if_vether.c $S/net/if_pair.c \
	$S/net/if_pppx.c $S/net/if_vxlan.c $S/net/if_wg.c \
	$S/net/wg_noise.c $S/net/wg_cookie.c $S/net80211/ieee80211.c \
	$S/net80211/ieee80211_amrr.c $S/net80211/ieee80211_crypto.c \
	$S/net80211/ieee80211_crypto_bip.c \
	$S/net80211/ieee80211_crypto_ccmp.c \
	$S/net80211/ieee80211_crypto_tkip.c \
	$S/net80211/ieee80211_crypto_wep.c $S/net80211/ieee80211_input.c \
	$S/net80211/ieee80211_ioctl.c $S/net80211/ieee80211_mira.c \
	$S/net80211/ieee80211_node.c $S/net80211/ieee80211_output.c \
	$S/net80211/ieee80211_pae_input.c \
	$S/net80211/ieee80211_pae_output.c $S/net80211/ieee80211_proto.c \
	$S/net80211/ieee80211_rssadapt.c \
	$S/net80211/ieee80211_regdomain.c $S/netinet/if_ether.c \
	$S/netinet/igmp.c $S/netinet/in.c $S/netinet/in_pcb.c \
	$S/netinet/in_proto.c $S/netinet/inet_nat64.c \
	$S/netinet/inet_ntop.c $S/netinet/ip_divert.c \
	$S/netinet/ip_icmp.c $S/netinet/ip_id.c $S/netinet/ip_input.c \
	$S/netinet/ip_mroute.c $S/netinet/ip_output.c $S/netinet/raw_ip.c \
	$S/netinet/tcp_debug.c $S/netinet/tcp_input.c \
	$S/netinet/tcp_output.c $S/netinet/tcp_subr.c \
	$S/netinet/tcp_timer.c $S/netinet/tcp_usrreq.c \
	$S/netinet/udp_usrreq.c $S/netinet/ip_gre.c $S/netinet/ip_ipsp.c \
	$S/netinet/ip_spd.c $S/netinet/ip_ipip.c $S/netinet/ipsec_input.c \
	$S/netinet/ipsec_output.c $S/netinet/ip_esp.c $S/netinet/ip_ah.c \
	$S/netinet/ip_carp.c $S/netinet/ip_ipcomp.c $S/crypto/aes.c \
	$S/crypto/rijndael.c $S/crypto/md5.c $S/crypto/rmd160.c \
	$S/crypto/sha1.c $S/crypto/sha2.c $S/crypto/blf.c \
	$S/crypto/cast.c $S/crypto/ecb_enc.c $S/crypto/set_key.c \
	$S/crypto/ecb3_enc.c $S/crypto/crypto.c $S/crypto/criov.c \
	$S/crypto/cryptosoft.c $S/crypto/xform.c $S/crypto/xform_ipcomp.c \
	$S/crypto/arc4.c $S/crypto/michael.c $S/crypto/cmac.c \
	$S/crypto/hmac.c $S/crypto/gmac.c $S/crypto/key_wrap.c \
	$S/crypto/idgen.c $S/crypto/chachapoly.c $S/crypto/poly1305.c \
	$S/crypto/siphash.c $S/crypto/blake2s.c $S/crypto/curve25519.c \
	$S/netmpls/mpls_input.c $S/netmpls/mpls_output.c \
	$S/netmpls/mpls_proto.c $S/netmpls/mpls_raw.c \
	$S/netmpls/mpls_shim.c $S/nfs/krpc_subr.c $S/nfs/nfs_bio.c \
	$S/nfs/nfs_boot.c $S/nfs/nfs_debug.c $S/nfs/nfs_node.c \
	$S/nfs/nfs_kq.c $S/nfs/nfs_serv.c $S/nfs/nfs_socket.c \
	$S/nfs/nfs_srvcache.c $S/nfs/nfs_subs.c $S/nfs/nfs_syscalls.c \
	$S/nfs/nfs_vfsops.c $S/nfs/nfs_vnops.c $S/ufs/ffs/ffs_alloc.c \
	$S/ufs/ffs/ffs_balloc.c $S/ufs/ffs/ffs_inode.c \
	$S/ufs/ffs/ffs_subr.c $S/ufs/ffs/ffs_softdep_stub.c \
	$S/ufs/ffs/ffs_tables.c $S/ufs/ffs/ffs_vfsops.c \
	$S/ufs/ffs/ffs_vnops.c $S/ufs/ffs/ffs_softdep.c \
	$S/ufs/mfs/mfs_vfsops.c $S/ufs/mfs/mfs_vnops.c \
	$S/ufs/ufs/ufs_bmap.c $S/ufs/ufs/ufs_dirhash.c \
	$S/ufs/ufs/ufs_ihash.c $S/ufs/ufs/ufs_inode.c \
	$S/ufs/ufs/ufs_lookup.c $S/ufs/ufs/ufs_quota.c \
	$S/ufs/ufs/ufs_quota_stub.c $S/ufs/ufs/ufs_vfsops.c \
	$S/ufs/ufs/ufs_vnops.c $S/ufs/ext2fs/ext2fs_alloc.c \
	$S/ufs/ext2fs/ext2fs_balloc.c $S/ufs/ext2fs/ext2fs_bmap.c \
	$S/ufs/ext2fs/ext2fs_bswap.c $S/ufs/ext2fs/ext2fs_extents.c \
	$S/ufs/ext2fs/ext2fs_inode.c $S/ufs/ext2fs/ext2fs_lookup.c \
	$S/ufs/ext2fs/ext2fs_readwrite.c $S/ufs/ext2fs/ext2fs_subr.c \
	$S/ufs/ext2fs/ext2fs_vfsops.c $S/ufs/ext2fs/ext2fs_vnops.c \
	$S/uvm/uvm_addr.c $S/uvm/uvm_amap.c $S/uvm/uvm_anon.c \
	$S/uvm/uvm_aobj.c $S/uvm/uvm_device.c $S/uvm/uvm_fault.c \
	$S/uvm/uvm_glue.c $S/uvm/uvm_init.c $S/uvm/uvm_io.c \
	$S/uvm/uvm_km.c $S/uvm/uvm_map.c $S/uvm/uvm_meter.c \
	$S/uvm/uvm_mmap.c $S/uvm/uvm_object.c $S/uvm/uvm_page.c \
	$S/uvm/uvm_pager.c $S/uvm/uvm_pdaemon.c $S/uvm/uvm_pmemrange.c \
	$S/uvm/uvm_swap.c $S/uvm/uvm_swap_encrypt.c $S/uvm/uvm_unix.c \
	$S/uvm/uvm_vnode.c $S/net/if_gif.c $S/netinet/ip_ecn.c \
	$S/netinet6/in6_pcb.c $S/netinet6/in6.c $S/netinet6/ip6_divert.c \
	$S/netinet6/in6_ifattach.c $S/netinet6/in6_cksum.c \
	$S/netinet6/in6_src.c $S/netinet6/in6_proto.c $S/netinet6/dest6.c \
	$S/netinet6/frag6.c $S/netinet6/icmp6.c $S/netinet6/ip6_id.c \
	$S/netinet6/ip6_input.c $S/netinet6/ip6_forward.c \
	$S/netinet6/ip6_mroute.c $S/netinet6/ip6_output.c \
	$S/netinet6/route6.c $S/netinet6/mld6.c $S/netinet6/nd6.c \
	$S/netinet6/nd6_nbr.c $S/netinet6/nd6_rtr.c $S/netinet6/raw_ip6.c \
	$S/netinet6/udp6_output.c $S/net/pfkeyv2.c \
	$S/net/pfkeyv2_parsemessage.c $S/net/pfkeyv2_convert.c \
	$S/lib/libkern/getsn.c $S/lib/libkern/random.c \
	$S/lib/libkern/explicit_bzero.c $S/lib/libkern/timingsafe_bcmp.c \
	$S/lib/libkern/strchr.c $S/lib/libkern/strrchr.c \
	$S/lib/libkern/imax.c $S/lib/libkern/imin.c $S/lib/libkern/lmax.c \
	$S/lib/libkern/lmin.c $S/lib/libkern/max.c $S/lib/libkern/min.c \
	$S/lib/libkern/ulmax.c $S/lib/libkern/ulmin.c \
	$S/lib/libkern/memchr.c $S/lib/libkern/memcmp.c \
	$S/lib/libkern/fls.c $S/lib/libkern/flsl.c \
	$S/lib/libkern/memset.c $S/lib/libkern/strlcat.c \
	$S/lib/libkern/strlcpy.c $S/lib/libkern/strncmp.c \
	$S/lib/libkern/strncpy.c $S/lib/libkern/strnlen.c \
	$S/lib/libkern/scanc.c $S/lib/libkern/skpc.c \
	$S/lib/libkern/strncasecmp.c $S/lib/libz/adler32.c \
	$S/lib/libz/crc32.c $S/lib/libz/infback.c $S/lib/libz/inffast.c \
	$S/lib/libz/inflate.c $S/lib/libz/inftrees.c \
	$S/lib/libz/deflate.c $S/lib/libz/zutil.c $S/lib/libz/zopenbsd.c \
	$S/lib/libz/trees.c $S/lib/libz/compress.c \
	$S/arch/mips64/mips64/arcbios.c $S/arch/mips64/mips64/clock.c \
	$S/arch/mips64/mips64/cpu.c $S/arch/mips64/mips64/interrupt.c \
	$S/arch/mips64/mips64/mem.c \
	$S/arch/mips64/mips64/mips64_machdep.c \
	$S/arch/mips64/mips64/pmap.c \
	$S/arch/mips64/mips64/process_machdep.c \
	$S/arch/mips64/mips64/sendsig.c $S/arch/mips64/mips64/softintr.c \
	$S/arch/mips64/mips64/sys_machdep.c $S/arch/mips64/mips64/trap.c \
	$S/arch/mips64/mips64/vm_machdep.c \
	$S/arch/mips64/mips64/cache_r10k.c \
	$S/arch/mips64/mips64/fp_emulate.c \
	$S/arch/mips64/mips64/db_disasm.c \
	$S/arch/mips64/mips64/db_machdep.c $S/netinet/in_cksum.c \
	$S/netinet/in4_cksum.c $S/lib/libkern/softfloat.c $S/dev/cninit.c \
	$S/arch/sgi/sgi/autoconf.c $S/arch/sgi/sgi/bus_dma.c \
	$S/arch/sgi/sgi/conf.c $S/arch/sgi/sgi/disksubr.c \
	$S/arch/sgi/sgi/ip30_machdep.c $S/arch/sgi/sgi/machdep.c \
	$S/arch/sgi/sgi/mainbus.c $S/arch/sgi/sgi/wscons_machdep.c \
	$S/dev/mii/mii.c $S/dev/mii/mii_physubr.c $S/dev/mii/ukphy_subr.c \
	$S/dev/mii/nsphy.c $S/dev/mii/nsphyter.c $S/dev/mii/gentbi.c \
	$S/dev/mii/qsphy.c $S/dev/mii/inphy.c $S/dev/mii/iophy.c \
	$S/dev/mii/eephy.c $S/dev/mii/exphy.c $S/dev/mii/rlphy.c \
	$S/dev/mii/lxtphy.c $S/dev/mii/luphy.c $S/dev/mii/mtdphy.c \
	$S/dev/mii/icsphy.c $S/dev/mii/sqphy.c $S/dev/mii/tqphy.c \
	$S/dev/mii/ukphy.c $S/dev/mii/dcphy.c $S/dev/mii/bmtphy.c \
	$S/dev/mii/brgphy.c $S/dev/mii/xmphy.c $S/dev/mii/amphy.c \
	$S/dev/mii/acphy.c $S/dev/mii/nsgphy.c $S/dev/mii/urlphy.c \
	$S/dev/mii/rgephy.c $S/dev/mii/ciphy.c $S/dev/mii/ipgphy.c \
	$S/dev/pckbc/pckbd.c $S/dev/pckbc/wskbdmap_mfii.c \
	$S/dev/pckbc/pms.c $S/arch/sgi/dev/impact.c \
	$S/arch/sgi/xbow/xbow.c $S/arch/sgi/xbow/xheart.c \
	$S/arch/sgi/xbow/xbridge.c $S/arch/sgi/xbow/odyssey.c \
	$S/arch/sgi/xbow/impact_xbow.c $S/dev/onewire/onewire.c \
	$S/dev/onewire/onewire_subr.c $S/scsi/scsi_base.c \
	$S/scsi/scsi_ioctl.c $S/scsi/scsiconf.c $S/scsi/cd.c $S/scsi/ch.c \
	$S/scsi/sd.c $S/scsi/st.c $S/scsi/uk.c $S/scsi/safte.c \
	$S/scsi/ses.c $S/dev/pci/pci.c $S/dev/pci/pci_map.c \
	$S/dev/pci/pci_quirks.c $S/dev/pci/pci_subr.c \
	$S/dev/pci/ahc_pci.c $S/dev/pci/eap.c $S/dev/pci/envy.c \
	$S/dev/pci/emuxki.c $S/dev/pci/qlw_pci.c $S/dev/pci/qla_pci.c \
	$S/dev/pci/qle.c $S/dev/pci/mpi_pci.c $S/dev/pci/if_de.c \
	$S/dev/pci/if_ep_pci.c $S/dev/pci/if_pcn.c \
	$S/dev/pci/siop_pci_common.c $S/dev/pci/siop_pci.c \
	$S/dev/pci/ppb.c $S/dev/pci/if_mtd_pci.c $S/dev/pci/if_rl_pci.c \
	$S/dev/pci/if_re_pci.c $S/dev/pci/if_vr.c $S/dev/pci/if_xl_pci.c \
	$S/dev/pci/if_fxp_pci.c $S/dev/pci/if_em.c $S/dev/pci/if_em_hw.c \
	$S/dev/pci/if_em_soc.c $S/dev/pci/if_dc_pci.c \
	$S/dev/pci/if_epic_pci.c $S/dev/pci/if_ti_pci.c \
	$S/dev/pci/if_ne_pci.c $S/dev/pci/if_gem_pci.c \
	$S/dev/pci/if_cas.c $S/dev/pci/hifn7751.c $S/dev/pci/ubsec.c \
	$S/dev/pci/if_sf_pci.c $S/dev/pci/if_sis.c $S/dev/pci/uhci_pci.c \
	$S/dev/pci/ohci_pci.c $S/dev/pci/ehci_pci.c $S/dev/pci/pccbb.c \
	$S/dev/pci/if_sk.c $S/dev/pci/if_msk.c $S/dev/pci/puc.c \
	$S/dev/pci/pucdata.c $S/dev/puc/com_puc.c $S/dev/pci/if_wi_pci.c \
	$S/dev/pci/cmpci.c $S/dev/pci/if_bge.c $S/dev/pci/if_bnx.c \
	$S/dev/pci/if_vge.c $S/dev/pci/if_stge.c $S/dev/pci/if_acx_pci.c \
	$S/dev/pci/if_malo_pci.c $S/arch/sgi/pci/pci_machdep.c \
	$S/dev/ic/hme.c $S/dev/pci/if_hme_pci.c $S/arch/sgi/pci/ioc.c \
	$S/arch/sgi/dev/com_ioc.c $S/arch/sgi/dev/if_iec.c \
	$S/arch/sgi/dev/iockbc.c $S/arch/sgi/dev/dsrtc.c \
	$S/arch/sgi/dev/power.c $S/dev/rasops/rasops.c \
	$S/dev/rasops/rasops15.c $S/dev/rasops/rasops32.c \
	$S/dev/wsfont/wsfont.c $S/dev/wscons/wsdisplay.c \
	$S/dev/wscons/wsevent.c $S/dev/wscons/wskbd.c \
	$S/dev/wscons/wskbdutil.c $S/dev/wscons/wsmouse.c \
	$S/dev/wscons/wstpad.c $S/dev/wscons/wsmux.c \
	$S/dev/wscons/wsemulconf.c $S/dev/wscons/wsemul_subr.c \
	$S/dev/wscons/wsemul_vt100.c $S/dev/wscons/wsemul_vt100_subr.c \
	$S/dev/wscons/wsemul_vt100_chars.c \
	$S/dev/wscons/wsemul_vt100_keys.c $S/dev/cardbus/cardslot.c \
	$S/dev/cardbus/cardbus.c $S/dev/cardbus/cardbus_map.c \
	$S/dev/cardbus/cardbus_exrom.c $S/dev/cardbus/rbus.c \
	$S/dev/cardbus/com_cardbus.c $S/dev/cardbus/if_xl_cardbus.c \
	$S/dev/cardbus/if_dc_cardbus.c $S/dev/cardbus/if_fxp_cardbus.c \
	$S/dev/cardbus/if_rl_cardbus.c $S/dev/cardbus/if_re_cardbus.c \
	$S/dev/cardbus/if_acx_cardbus.c $S/dev/cardbus/ehci_cardbus.c \
	$S/dev/cardbus/ohci_cardbus.c $S/dev/cardbus/uhci_cardbus.c \
	$S/dev/pcmcia/pcmcia.c $S/dev/pcmcia/pcmcia_cis.c \
	$S/dev/pcmcia/pcmcia_cis_quirks.c $S/dev/pcmcia/if_ep_pcmcia.c \
	$S/dev/pcmcia/if_ne_pcmcia.c $S/dev/pcmcia/com_pcmcia.c \
	$S/dev/pcmcia/if_wi_pcmcia.c $S/dev/hid/hid.c $S/dev/hid/hidkbd.c \
	$S/dev/hid/hidms.c $S/dev/usb/usb.c $S/dev/usb/usbdi.c \
	$S/dev/usb/usbdi_util.c $S/dev/usb/usb_mem.c \
	$S/dev/usb/usb_subr.c $S/dev/usb/usb_quirks.c $S/dev/usb/uhub.c \
	$S/dev/usb/uaudio.c $S/dev/usb/uvideo.c $S/dev/usb/utvfu.c \
	$S/dev/usb/udl.c $S/dev/usb/ucom.c $S/dev/usb/ugen.c \
	$S/dev/usb/uhidev.c $S/dev/usb/uhid.c $S/dev/usb/fido.c \
	$S/dev/usb/ukbdmap.c $S/dev/usb/ukbd.c $S/dev/usb/ums.c \
	$S/dev/usb/uslhcom.c $S/dev/usb/ulpt.c $S/dev/usb/umass.c \
	$S/dev/usb/umass_quirks.c $S/dev/usb/umass_scsi.c \
	$S/dev/usb/uthum.c $S/dev/usb/ugold.c $S/dev/usb/uonerng.c \
	$S/dev/usb/urng.c $S/dev/usb/utwitch.c $S/dev/usb/if_aue.c \
	$S/dev/usb/if_axe.c $S/dev/usb/if_axen.c $S/dev/usb/if_smsc.c \
	$S/dev/usb/if_cue.c $S/dev/usb/if_kue.c $S/dev/usb/if_cdce.c \
	$S/dev/usb/if_mos.c $S/dev/usb/if_udav.c $S/dev/usb/if_upl.c \
	$S/dev/usb/if_ugl.c $S/dev/usb/if_url.c $S/dev/usb/if_ure.c \
	$S/dev/usb/umodem.c $S/dev/usb/uvscom.c $S/dev/usb/ubsa.c \
	$S/dev/usb/if_wi_usb.c $S/dev/usb/if_atu.c $S/dev/usb/if_ral.c \
	$S/dev/usb/if_rum.c $S/dev/usb/if_run.c $S/dev/usb/if_zyd.c \
	$S/dev/usb/if_upgt.c $S/dev/usb/if_urtw.c $S/dev/usb/if_urtwn.c \
	$S/dev/usb/if_rsu.c $S/dev/usb/if_otus.c $S/dev/usb/if_uath.c \
	$S/arch/sgi/dev/owmac.c $S/arch/sgi/dev/owserial.c \
	$S/arch/sgi/dev/owmem_subr.c

SFILES=	$S/lib/libkern/arch/mips64/bcmp.S \
	$S/lib/libkern/arch/mips64/bzero.S \
	$S/lib/libkern/arch/mips64/bcopy.S \
	$S/lib/libkern/arch/mips64/memcpy.S \
	$S/lib/libkern/arch/mips64/memmove.S \
	$S/lib/libkern/arch/mips64/ffs.S \
	$S/lib/libkern/arch/mips64/strcmp.S \
	$S/lib/libkern/arch/mips64/strlen.S \
	$S/lib/libkern/arch/mips64/htonl.S \
	$S/lib/libkern/arch/mips64/htons.S \
	$S/arch/mips64/mips64/context.S $S/arch/mips64/mips64/cp0access.S \
	$S/arch/mips64/mips64/exception.S \
	$S/arch/mips64/mips64/lcore_access.S \
	$S/arch/mips64/mips64/lcore_float.S \
	$S/arch/mips64/mips64/tlbhandler.S \
	$S/arch/mips64/mips64/lcore_ddb.S $S/arch/sgi/sgi/ip30_nmi.S \
	$S/arch/sgi/sgi/locore.S

# load lines for config "xxx" will be emitted as:
# xxx: ${SYSTEM_DEP} swapxxx.o
#	${SYSTEM_LD_HEAD}
#	${SYSTEM_LD} swapxxx.o
#	${SYSTEM_LD_TAIL}
SYSTEM_HEAD=	locore0.o gap.o
SYSTEM_OBJ=	${SYSTEM_HEAD} ${OBJS} param.o ioconf.o
SYSTEM_DEP=	Makefile ${SYSTEM_OBJ} ld.script
SYSTEM_LD_HEAD=	@rm -f $@
SYSTEM_LD=	@echo ${LD} ${LINKFLAGS} -o $@ '$${SYSTEM_HEAD} vers.o $${OBJS}'; \
		umask 007; \
		echo ${OBJS} param.o ioconf.o vers.o | tr " " "\n" | ${SORTR} > lorder; \
		${LD} ${LINKFLAGS} -o $@ ${SYSTEM_HEAD} `cat lorder`
SYSTEM_LD_TAIL=	@${SIZE} $@

.if ${DEBUG} == "-g"
STRIPFLAGS=	-S
SYSTEM_LD_TAIL+=; umask 007; \
		echo mv $@ $@.gdb; rm -f $@.gdb; mv $@ $@.gdb; \
		echo ${STRIP} ${STRIPFLAGS} -o $@ $@.gdb; \
		${STRIP} ${STRIPFLAGS} -o $@ $@.gdb
.else
LINKFLAGS+=	-S
.endif

all: bsd

bsd: ${SYSTEM_DEP} swapgeneric.o vers.o
	${SYSTEM_LD_HEAD}
	${SYSTEM_LD} swapgeneric.o
	${SYSTEM_LD_TAIL}

swapgeneric.o: $S/conf/swapgeneric.c
	${NORMAL_C}

newbsd:
	${MAKE_GAP}
	${SYSTEM_LD_HEAD}
	${SYSTEM_LD} swapgeneric.o
	${SYSTEM_LD_TAIL}
	rm -f bsd.gdb
	mv -f newbsd bsd

update-link:
	mkdir -p -m 700 /usr/share/relink/kernel
	rm -rf /usr/share/relink/kernel/GENERIC-IP30 /usr/share/relink/kernel.tgz
	mkdir /usr/share/relink/kernel/GENERIC-IP30
	tar -chf - Makefile makegap.sh ld.script *.o | \
	    tar -C /usr/share/relink/kernel/GENERIC-IP30 -xf -


# cc's -MD puts the source and output paths in the dependency file;
# since those are temp files here we need to fix it up.  It also
# puts the file in /tmp, so we use -MF to put it in the current
# directory as assym.P and then generate assym.d from it with a
# good target name
assym.h: $S/kern/genassym.sh Makefile \
	 ${_archdir}/${_arch}/genassym.cf ${_machdir}/${_mach}/genassym.cf
	cat ${_archdir}/${_arch}/genassym.cf ${_machdir}/${_mach}/genassym.cf | \
	    sh $S/kern/genassym.sh ${CC} ${CFLAGS} ${CPPFLAGS} -MF assym.P > assym.h.tmp
	sed '1s/.*/assym.h: \\/' assym.P > assym.d
	sort -u assym.h.tmp > assym.h

param.c: $S/conf/param.c
	rm -f param.c
	cp $S/conf/param.c .

param.o: param.c Makefile
	${NORMAL_C}

mcount.o: $S/lib/libkern/mcount.c Makefile
	${NORMAL_C_NOP}

ioconf.o: ioconf.c
	${NORMAL_C}

ld.script: ${_machdir}/conf/ld.script
	cp ${_machdir}/conf/ld.script $@

gapdummy.o:
	echo '__asm(".section .rodata,\"a\"");' > gapdummy.c
	${CC} -c ${CFLAGS} ${CPPFLAGS} gapdummy.c -o $@

makegap.sh:
	cp $S/conf/makegap.sh $@

MAKE_GAP = LD="${LD}" sh makegap.sh 0xefefefef gapdummy.o

gap.o:	Makefile makegap.sh gapdummy.o vers.o
	${MAKE_GAP}

vers.o: ${SYSTEM_DEP:Ngap.o}
	sh $S/conf/newvers.sh
	${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c vers.c

clean:
	rm -f *bsd *bsd.gdb *.[dio] [a-z]*.s assym.* \
	    gap.link gapdummy.c ld.script lorder makegap.sh param.c

cleandir: clean
	rm -f Makefile *.h ioconf.c options machine ${_mach} vers.c

depend obj:

locore0.o: ${_machdir}/${_mach}/locore0.S assym.h
context.o cp0access.o exception.o exception_tfp.o: assym.h
lcore_access.o lcore_ddb.o lcore_float.o locore.o: assym.h
tlb_tfp.o tlbhandler.o: assym.h
cache_tfp_subr.o ip30_nmi.o: assym.h

hardlink-obsd:
	[[ ! -f /bsd ]] || cmp -s bsd /bsd || ln -f /bsd /obsd

newinstall:
	install -m 700 -F bsd /bsd && sha256 -h /var/db/kernel.SHA256 /bsd

install: update-link hardlink-obsd newinstall

# pull in the dependency information
.ifnmake clean
. for o in ${SYSTEM_OBJ:Ngap.o} assym.h
.  if exists(${o:R}.d)
.   include "${o:R}.d"
.  elif exists($o)
    .PHONY: $o
.  endif
. endfor
.endif

.SUFFIXES:
.SUFFIXES: .s .S .c .o

.PHONY: depend all install clean tags newbsd update-link

.c.o:
	${NORMAL_C}

.s.o:
	${NORMAL_S}

.S.o:
	${NORMAL_S}

smc93cx6.o: $S/dev/ic/smc93cx6.c
edid.o: $S/dev/videomode/edid.c
vesagtf.o: $S/dev/videomode/vesagtf.c
videomode.o: $S/dev/videomode/videomode.c
mii_bitbang.o: $S/dev/mii/mii_bitbang.c
aic7xxx.o: $S/dev/ic/aic7xxx.c
aic7xxx_openbsd.o: $S/dev/ic/aic7xxx_openbsd.c
aic7xxx_seeprom.o: $S/dev/ic/aic7xxx_seeprom.c
qlw.o: $S/dev/ic/qlw.c
qla.o: $S/dev/ic/qla.c
mpi.o: $S/dev/ic/mpi.c
siop_common.o: $S/dev/ic/siop_common.c
siop.o: $S/dev/ic/siop.c
elink3.o: $S/dev/ic/elink3.c
if_wi.o: $S/dev/ic/if_wi.c
if_wi_hostap.o: $S/dev/ic/if_wi_hostap.c
xl.o: $S/dev/ic/xl.c
fxp.o: $S/dev/ic/fxp.c
mtd8xx.o: $S/dev/ic/mtd8xx.c
rtl81x9.o: $S/dev/ic/rtl81x9.c
re.o: $S/dev/ic/re.c
dc.o: $S/dev/ic/dc.c
smc83c170.o: $S/dev/ic/smc83c170.c
ne2000.o: $S/dev/ic/ne2000.c
dl10019.o: $S/dev/ic/dl10019.c
ax88190.o: $S/dev/ic/ax88190.c
gem.o: $S/dev/ic/gem.c
ti.o: $S/dev/ic/ti.c
com.o: $S/dev/ic/com.c
ac97.o: $S/dev/ic/ac97.c
rtwn.o: $S/dev/ic/rtwn.c
acx.o: $S/dev/ic/acx.c
acx111.o: $S/dev/ic/acx111.c
acx100.o: $S/dev/ic/acx100.c
aic6915.o: $S/dev/ic/aic6915.c
malo.o: $S/dev/ic/malo.c
uhci.o: $S/dev/usb/uhci.c
ohci.o: $S/dev/usb/ohci.c
ehci.o: $S/dev/usb/ehci.c
vscsi.o: $S/dev/vscsi.c
softraid.o: $S/dev/softraid.c
softraid_concat.o: $S/dev/softraid_concat.c
softraid_crypto.o: $S/dev/softraid_crypto.c
softraid_raid0.o: $S/dev/softraid_raid0.c
softraid_raid1.o: $S/dev/softraid_raid1.c
softraid_raid5.o: $S/dev/softraid_raid5.c
softraid_raid6.o: $S/dev/softraid_raid6.c
ksyms.o: $S/dev/ksyms.c
fuse_device.o: $S/miscfs/fuse/fuse_device.c
fuse_file.o: $S/miscfs/fuse/fuse_file.c
fuse_lookup.o: $S/miscfs/fuse/fuse_lookup.c
fuse_vfsops.o: $S/miscfs/fuse/fuse_vfsops.c
fuse_vnops.o: $S/miscfs/fuse/fuse_vnops.c
fusebuf.o: $S/miscfs/fuse/fusebuf.c
pf.o: $S/net/pf.c
pf_norm.o: $S/net/pf_norm.c
pf_ruleset.o: $S/net/pf_ruleset.c
pf_ioctl.o: $S/net/pf_ioctl.c
pf_table.o: $S/net/pf_table.c
pf_osfp.o: $S/net/pf_osfp.c
pf_if.o: $S/net/pf_if.c
pf_lb.o: $S/net/pf_lb.c
pf_syncookies.o: $S/net/pf_syncookies.c
hfsc.o: $S/net/hfsc.c
fq_codel.o: $S/net/fq_codel.c
if_pflog.o: $S/net/if_pflog.c
if_pfsync.o: $S/net/if_pfsync.c
if_pflow.o: $S/net/if_pflow.c
bio.o: $S/dev/bio.c
hotplug.o: $S/dev/hotplug.c
if_pppoe.o: $S/net/if_pppoe.c
db_access.o: $S/ddb/db_access.c
db_break.o: $S/ddb/db_break.c
db_command.o: $S/ddb/db_command.c
db_ctf.o: $S/ddb/db_ctf.c
db_dwarf.o: $S/ddb/db_dwarf.c
db_elf.o: $S/ddb/db_elf.c
db_examine.o: $S/ddb/db_examine.c
db_expr.o: $S/ddb/db_expr.c
db_hangman.o: $S/ddb/db_hangman.c
db_input.o: $S/ddb/db_input.c
db_lex.o: $S/ddb/db_lex.c
db_output.o: $S/ddb/db_output.c
db_run.o: $S/ddb/db_run.c
db_sym.o: $S/ddb/db_sym.c
db_trap.o: $S/ddb/db_trap.c
db_variables.o: $S/ddb/db_variables.c
db_watch.o: $S/ddb/db_watch.c
db_usrreq.o: $S/ddb/db_usrreq.c
audio.o: $S/dev/audio.c
cons.o: $S/dev/cons.c
diskmap.o: $S/dev/diskmap.c
firmload.o: $S/dev/firmload.c
dp8390.o: $S/dev/ic/dp8390.c
rtl80x9.o: $S/dev/ic/rtl80x9.c
midi.o: $S/dev/midi.c
mulaw.o: $S/dev/mulaw.c
vnd.o: $S/dev/vnd.c
rnd.o: $S/dev/rnd.c
video.o: $S/dev/video.c
cd9660_bmap.o: $S/isofs/cd9660/cd9660_bmap.c
cd9660_lookup.o: $S/isofs/cd9660/cd9660_lookup.c
cd9660_node.o: $S/isofs/cd9660/cd9660_node.c
cd9660_rrip.o: $S/isofs/cd9660/cd9660_rrip.c
cd9660_util.o: $S/isofs/cd9660/cd9660_util.c
cd9660_vfsops.o: $S/isofs/cd9660/cd9660_vfsops.c
cd9660_vnops.o: $S/isofs/cd9660/cd9660_vnops.c
udf_subr.o: $S/isofs/udf/udf_subr.c
udf_vfsops.o: $S/isofs/udf/udf_vfsops.c
udf_vnops.o: $S/isofs/udf/udf_vnops.c
clock_subr.o: $S/kern/clock_subr.c
exec_conf.o: $S/kern/exec_conf.c
exec_elf.o: $S/kern/exec_elf.c
exec_script.o: $S/kern/exec_script.c
exec_subr.o: $S/kern/exec_subr.c
init_main.o: $S/kern/init_main.c
init_sysent.o: $S/kern/init_sysent.c
kern_acct.o: $S/kern/kern_acct.c
kern_bufq.o: $S/kern/kern_bufq.c
kern_clock.o: $S/kern/kern_clock.c
kern_descrip.o: $S/kern/kern_descrip.c
kern_event.o: $S/kern/kern_event.c
kern_exec.o: $S/kern/kern_exec.c
kern_exit.o: $S/kern/kern_exit.c
kern_fork.o: $S/kern/kern_fork.c
kern_kthread.o: $S/kern/kern_kthread.c
kern_ktrace.o: $S/kern/kern_ktrace.c
kern_lock.o: $S/kern/kern_lock.c
kern_malloc.o: $S/kern/kern_malloc.c
kern_rwlock.o: $S/kern/kern_rwlock.c
kern_physio.o: $S/kern/kern_physio.c
kern_proc.o: $S/kern/kern_proc.c
kern_prot.o: $S/kern/kern_prot.c
kern_resource.o: $S/kern/kern_resource.c
kern_pledge.o: $S/kern/kern_pledge.c
kern_unveil.o: $S/kern/kern_unveil.c
kern_sched.o: $S/kern/kern_sched.c
kern_sensors.o: $S/kern/kern_sensors.c
kern_sig.o: $S/kern/kern_sig.c
kern_smr.o: $S/kern/kern_smr.c
kern_subr.o: $S/kern/kern_subr.c
kern_sysctl.o: $S/kern/kern_sysctl.c
kern_synch.o: $S/kern/kern_synch.c
kern_tc.o: $S/kern/kern_tc.c
kern_time.o: $S/kern/kern_time.c
kern_timeout.o: $S/kern/kern_timeout.c
kern_uuid.o: $S/kern/kern_uuid.c
kern_watchdog.o: $S/kern/kern_watchdog.c
kern_task.o: $S/kern/kern_task.c
kern_srp.o: $S/kern/kern_srp.c
kern_xxx.o: $S/kern/kern_xxx.c
sched_bsd.o: $S/kern/sched_bsd.c
subr_autoconf.o: $S/kern/subr_autoconf.c
subr_disk.o: $S/kern/subr_disk.c
subr_evcount.o: $S/kern/subr_evcount.c
subr_extent.o: $S/kern/subr_extent.c
subr_log.o: $S/kern/subr_log.c
subr_percpu.o: $S/kern/subr_percpu.c
subr_poison.o: $S/kern/subr_poison.c
subr_pool.o: $S/kern/subr_pool.c
subr_tree.o: $S/kern/subr_tree.c
dma_alloc.o: $S/kern/dma_alloc.c
subr_prf.o: $S/kern/subr_prf.c
subr_prof.o: $S/kern/subr_prof.c
subr_userconf.o: $S/kern/subr_userconf.c
subr_xxx.o: $S/kern/subr_xxx.c
sys_futex.o: $S/kern/sys_futex.c
sys_generic.o: $S/kern/sys_generic.c
sys_pipe.o: $S/kern/sys_pipe.c
sys_process.o: $S/kern/sys_process.c
sys_socket.o: $S/kern/sys_socket.c
sysv_ipc.o: $S/kern/sysv_ipc.c
sysv_msg.o: $S/kern/sysv_msg.c
sysv_sem.o: $S/kern/sysv_sem.c
sysv_shm.o: $S/kern/sysv_shm.c
tty.o: $S/kern/tty.c
tty_conf.o: $S/kern/tty_conf.c
tty_pty.o: $S/kern/tty_pty.c
tty_nmea.o: $S/kern/tty_nmea.c
tty_msts.o: $S/kern/tty_msts.c
tty_endrun.o: $S/kern/tty_endrun.c
tty_subr.o: $S/kern/tty_subr.c
tty_tty.o: $S/kern/tty_tty.c
uipc_domain.o: $S/kern/uipc_domain.c
uipc_mbuf.o: $S/kern/uipc_mbuf.c
uipc_mbuf2.o: $S/kern/uipc_mbuf2.c
uipc_proto.o: $S/kern/uipc_proto.c
uipc_socket.o: $S/kern/uipc_socket.c
uipc_socket2.o: $S/kern/uipc_socket2.c
uipc_syscalls.o: $S/kern/uipc_syscalls.c
uipc_usrreq.o: $S/kern/uipc_usrreq.c
vfs_bio.o: $S/kern/vfs_bio.c
vfs_biomem.o: $S/kern/vfs_biomem.c
vfs_cache.o: $S/kern/vfs_cache.c
vfs_default.o: $S/kern/vfs_default.c
vfs_init.o: $S/kern/vfs_init.c
vfs_lockf.o: $S/kern/vfs_lockf.c
vfs_lookup.o: $S/kern/vfs_lookup.c
vfs_subr.o: $S/kern/vfs_subr.c
vfs_sync.o: $S/kern/vfs_sync.c
vfs_syscalls.o: $S/kern/vfs_syscalls.c
vfs_vops.o: $S/kern/vfs_vops.c
vfs_vnops.o: $S/kern/vfs_vnops.c
vfs_getcwd.o: $S/kern/vfs_getcwd.c
spec_vnops.o: $S/kern/spec_vnops.c
dead_vnops.o: $S/miscfs/deadfs/dead_vnops.c
fifo_vnops.o: $S/miscfs/fifofs/fifo_vnops.c
msdosfs_conv.o: $S/msdosfs/msdosfs_conv.c
msdosfs_denode.o: $S/msdosfs/msdosfs_denode.c
msdosfs_fat.o: $S/msdosfs/msdosfs_fat.c
msdosfs_lookup.o: $S/msdosfs/msdosfs_lookup.c
msdosfs_vfsops.o: $S/msdosfs/msdosfs_vfsops.c
msdosfs_vnops.o: $S/msdosfs/msdosfs_vnops.c
art.o: $S/net/art.c
bpf.o: $S/net/bpf.c
bpf_filter.o: $S/net/bpf_filter.c
if.o: $S/net/if.c
ifq.o: $S/net/ifq.c
if_ethersubr.o: $S/net/if_ethersubr.c
if_etherip.o: $S/net/if_etherip.c
if_spppsubr.o: $S/net/if_spppsubr.c
if_loop.o: $S/net/if_loop.c
if_media.o: $S/net/if_media.c
if_ppp.o: $S/net/if_ppp.c
ppp_tty.o: $S/net/ppp_tty.c
bsd-comp.o: $S/net/bsd-comp.c
ppp-deflate.o: $S/net/ppp-deflate.c
if_tun.o: $S/net/if_tun.c
if_bridge.o: $S/net/if_bridge.c
bridgectl.o: $S/net/bridgectl.c
bridgestp.o: $S/net/bridgestp.c
if_vlan.o: $S/net/if_vlan.c
if_switch.o: $S/net/if_switch.c
switchctl.o: $S/net/switchctl.c
switchofp.o: $S/net/switchofp.c
pipex.o: $S/net/pipex.c
radix.o: $S/net/radix.c
rtable.o: $S/net/rtable.c
route.o: $S/net/route.c
rtsock.o: $S/net/rtsock.c
slcompress.o: $S/net/slcompress.c
if_enc.o: $S/net/if_enc.c
if_gre.o: $S/net/if_gre.c
if_trunk.o: $S/net/if_trunk.c
trunklacp.o: $S/net/trunklacp.c
if_aggr.o: $S/net/if_aggr.c
if_tpmr.o: $S/net/if_tpmr.c
if_mpe.o: $S/net/if_mpe.c
if_mpw.o: $S/net/if_mpw.c
if_mpip.o: $S/net/if_mpip.c
if_bpe.o: $S/net/if_bpe.c
if_vether.o: $S/net/if_vether.c
if_pair.o: $S/net/if_pair.c
if_pppx.o: $S/net/if_pppx.c
if_vxlan.o: $S/net/if_vxlan.c
if_wg.o: $S/net/if_wg.c
wg_noise.o: $S/net/wg_noise.c
wg_cookie.o: $S/net/wg_cookie.c
ieee80211.o: $S/net80211/ieee80211.c
ieee80211_amrr.o: $S/net80211/ieee80211_amrr.c
ieee80211_crypto.o: $S/net80211/ieee80211_crypto.c
ieee80211_crypto_bip.o: $S/net80211/ieee80211_crypto_bip.c
ieee80211_crypto_ccmp.o: $S/net80211/ieee80211_crypto_ccmp.c
ieee80211_crypto_tkip.o: $S/net80211/ieee80211_crypto_tkip.c
ieee80211_crypto_wep.o: $S/net80211/ieee80211_crypto_wep.c
ieee80211_input.o: $S/net80211/ieee80211_input.c
ieee80211_ioctl.o: $S/net80211/ieee80211_ioctl.c
ieee80211_mira.o: $S/net80211/ieee80211_mira.c
ieee80211_node.o: $S/net80211/ieee80211_node.c
ieee80211_output.o: $S/net80211/ieee80211_output.c
ieee80211_pae_input.o: $S/net80211/ieee80211_pae_input.c
ieee80211_pae_output.o: $S/net80211/ieee80211_pae_output.c
ieee80211_proto.o: $S/net80211/ieee80211_proto.c
ieee80211_rssadapt.o: $S/net80211/ieee80211_rssadapt.c
ieee80211_regdomain.o: $S/net80211/ieee80211_regdomain.c
if_ether.o: $S/netinet/if_ether.c
igmp.o: $S/netinet/igmp.c
in.o: $S/netinet/in.c
in_pcb.o: $S/netinet/in_pcb.c
in_proto.o: $S/netinet/in_proto.c
inet_nat64.o: $S/netinet/inet_nat64.c
inet_ntop.o: $S/netinet/inet_ntop.c
ip_divert.o: $S/netinet/ip_divert.c
ip_icmp.o: $S/netinet/ip_icmp.c
ip_id.o: $S/netinet/ip_id.c
ip_input.o: $S/netinet/ip_input.c
ip_mroute.o: $S/netinet/ip_mroute.c
ip_output.o: $S/netinet/ip_output.c
raw_ip.o: $S/netinet/raw_ip.c
tcp_debug.o: $S/netinet/tcp_debug.c
tcp_input.o: $S/netinet/tcp_input.c
tcp_output.o: $S/netinet/tcp_output.c
tcp_subr.o: $S/netinet/tcp_subr.c
tcp_timer.o: $S/netinet/tcp_timer.c
tcp_usrreq.o: $S/netinet/tcp_usrreq.c
udp_usrreq.o: $S/netinet/udp_usrreq.c
ip_gre.o: $S/netinet/ip_gre.c
ip_ipsp.o: $S/netinet/ip_ipsp.c
ip_spd.o: $S/netinet/ip_spd.c
ip_ipip.o: $S/netinet/ip_ipip.c
ipsec_input.o: $S/netinet/ipsec_input.c
ipsec_output.o: $S/netinet/ipsec_output.c
ip_esp.o: $S/netinet/ip_esp.c
ip_ah.o: $S/netinet/ip_ah.c
ip_carp.o: $S/netinet/ip_carp.c
ip_ipcomp.o: $S/netinet/ip_ipcomp.c
aes.o: $S/crypto/aes.c
rijndael.o: $S/crypto/rijndael.c
md5.o: $S/crypto/md5.c
rmd160.o: $S/crypto/rmd160.c
sha1.o: $S/crypto/sha1.c
sha2.o: $S/crypto/sha2.c
blf.o: $S/crypto/blf.c
cast.o: $S/crypto/cast.c
ecb_enc.o: $S/crypto/ecb_enc.c
set_key.o: $S/crypto/set_key.c
ecb3_enc.o: $S/crypto/ecb3_enc.c
crypto.o: $S/crypto/crypto.c
criov.o: $S/crypto/criov.c
cryptosoft.o: $S/crypto/cryptosoft.c
xform.o: $S/crypto/xform.c
xform_ipcomp.o: $S/crypto/xform_ipcomp.c
arc4.o: $S/crypto/arc4.c
michael.o: $S/crypto/michael.c
cmac.o: $S/crypto/cmac.c
hmac.o: $S/crypto/hmac.c
gmac.o: $S/crypto/gmac.c
key_wrap.o: $S/crypto/key_wrap.c
idgen.o: $S/crypto/idgen.c
chachapoly.o: $S/crypto/chachapoly.c
poly1305.o: $S/crypto/poly1305.c
siphash.o: $S/crypto/siphash.c
blake2s.o: $S/crypto/blake2s.c
curve25519.o: $S/crypto/curve25519.c
mpls_input.o: $S/netmpls/mpls_input.c
mpls_output.o: $S/netmpls/mpls_output.c
mpls_proto.o: $S/netmpls/mpls_proto.c
mpls_raw.o: $S/netmpls/mpls_raw.c
mpls_shim.o: $S/netmpls/mpls_shim.c
krpc_subr.o: $S/nfs/krpc_subr.c
nfs_bio.o: $S/nfs/nfs_bio.c
nfs_boot.o: $S/nfs/nfs_boot.c
nfs_debug.o: $S/nfs/nfs_debug.c
nfs_node.o: $S/nfs/nfs_node.c
nfs_kq.o: $S/nfs/nfs_kq.c
nfs_serv.o: $S/nfs/nfs_serv.c
nfs_socket.o: $S/nfs/nfs_socket.c
nfs_srvcache.o: $S/nfs/nfs_srvcache.c
nfs_subs.o: $S/nfs/nfs_subs.c
nfs_syscalls.o: $S/nfs/nfs_syscalls.c
nfs_vfsops.o: $S/nfs/nfs_vfsops.c
nfs_vnops.o: $S/nfs/nfs_vnops.c
ffs_alloc.o: $S/ufs/ffs/ffs_alloc.c
ffs_balloc.o: $S/ufs/ffs/ffs_balloc.c
ffs_inode.o: $S/ufs/ffs/ffs_inode.c
ffs_subr.o: $S/ufs/ffs/ffs_subr.c
ffs_softdep_stub.o: $S/ufs/ffs/ffs_softdep_stub.c
ffs_tables.o: $S/ufs/ffs/ffs_tables.c
ffs_vfsops.o: $S/ufs/ffs/ffs_vfsops.c
ffs_vnops.o: $S/ufs/ffs/ffs_vnops.c
ffs_softdep.o: $S/ufs/ffs/ffs_softdep.c
mfs_vfsops.o: $S/ufs/mfs/mfs_vfsops.c
mfs_vnops.o: $S/ufs/mfs/mfs_vnops.c
ufs_bmap.o: $S/ufs/ufs/ufs_bmap.c
ufs_dirhash.o: $S/ufs/ufs/ufs_dirhash.c
ufs_ihash.o: $S/ufs/ufs/ufs_ihash.c
ufs_inode.o: $S/ufs/ufs/ufs_inode.c
ufs_lookup.o: $S/ufs/ufs/ufs_lookup.c
ufs_quota.o: $S/ufs/ufs/ufs_quota.c
ufs_quota_stub.o: $S/ufs/ufs/ufs_quota_stub.c
ufs_vfsops.o: $S/ufs/ufs/ufs_vfsops.c
ufs_vnops.o: $S/ufs/ufs/ufs_vnops.c
ext2fs_alloc.o: $S/ufs/ext2fs/ext2fs_alloc.c
ext2fs_balloc.o: $S/ufs/ext2fs/ext2fs_balloc.c
ext2fs_bmap.o: $S/ufs/ext2fs/ext2fs_bmap.c
ext2fs_bswap.o: $S/ufs/ext2fs/ext2fs_bswap.c
ext2fs_extents.o: $S/ufs/ext2fs/ext2fs_extents.c
ext2fs_inode.o: $S/ufs/ext2fs/ext2fs_inode.c
ext2fs_lookup.o: $S/ufs/ext2fs/ext2fs_lookup.c
ext2fs_readwrite.o: $S/ufs/ext2fs/ext2fs_readwrite.c
ext2fs_subr.o: $S/ufs/ext2fs/ext2fs_subr.c
ext2fs_vfsops.o: $S/ufs/ext2fs/ext2fs_vfsops.c
ext2fs_vnops.o: $S/ufs/ext2fs/ext2fs_vnops.c
uvm_addr.o: $S/uvm/uvm_addr.c
uvm_amap.o: $S/uvm/uvm_amap.c
uvm_anon.o: $S/uvm/uvm_anon.c
uvm_aobj.o: $S/uvm/uvm_aobj.c
uvm_device.o: $S/uvm/uvm_device.c
uvm_fault.o: $S/uvm/uvm_fault.c
uvm_glue.o: $S/uvm/uvm_glue.c
uvm_init.o: $S/uvm/uvm_init.c
uvm_io.o: $S/uvm/uvm_io.c
uvm_km.o: $S/uvm/uvm_km.c
uvm_map.o: $S/uvm/uvm_map.c
uvm_meter.o: $S/uvm/uvm_meter.c
uvm_mmap.o: $S/uvm/uvm_mmap.c
uvm_object.o: $S/uvm/uvm_object.c
uvm_page.o: $S/uvm/uvm_page.c
uvm_pager.o: $S/uvm/uvm_pager.c
uvm_pdaemon.o: $S/uvm/uvm_pdaemon.c
uvm_pmemrange.o: $S/uvm/uvm_pmemrange.c
uvm_swap.o: $S/uvm/uvm_swap.c
uvm_swap_encrypt.o: $S/uvm/uvm_swap_encrypt.c
uvm_unix.o: $S/uvm/uvm_unix.c
uvm_vnode.o: $S/uvm/uvm_vnode.c
if_gif.o: $S/net/if_gif.c
ip_ecn.o: $S/netinet/ip_ecn.c
in6_pcb.o: $S/netinet6/in6_pcb.c
in6.o: $S/netinet6/in6.c
ip6_divert.o: $S/netinet6/ip6_divert.c
in6_ifattach.o: $S/netinet6/in6_ifattach.c
in6_cksum.o: $S/netinet6/in6_cksum.c
in6_src.o: $S/netinet6/in6_src.c
in6_proto.o: $S/netinet6/in6_proto.c
dest6.o: $S/netinet6/dest6.c
frag6.o: $S/netinet6/frag6.c
icmp6.o: $S/netinet6/icmp6.c
ip6_id.o: $S/netinet6/ip6_id.c
ip6_input.o: $S/netinet6/ip6_input.c
ip6_forward.o: $S/netinet6/ip6_forward.c
ip6_mroute.o: $S/netinet6/ip6_mroute.c
ip6_output.o: $S/netinet6/ip6_output.c
route6.o: $S/netinet6/route6.c
mld6.o: $S/netinet6/mld6.c
nd6.o: $S/netinet6/nd6.c
nd6_nbr.o: $S/netinet6/nd6_nbr.c
nd6_rtr.o: $S/netinet6/nd6_rtr.c
raw_ip6.o: $S/netinet6/raw_ip6.c
udp6_output.o: $S/netinet6/udp6_output.c
pfkeyv2.o: $S/net/pfkeyv2.c
pfkeyv2_parsemessage.o: $S/net/pfkeyv2_parsemessage.c
pfkeyv2_convert.o: $S/net/pfkeyv2_convert.c
getsn.o: $S/lib/libkern/getsn.c
random.o: $S/lib/libkern/random.c
explicit_bzero.o: $S/lib/libkern/explicit_bzero.c
timingsafe_bcmp.o: $S/lib/libkern/timingsafe_bcmp.c
strchr.o: $S/lib/libkern/strchr.c
strrchr.o: $S/lib/libkern/strrchr.c
imax.o: $S/lib/libkern/imax.c
imin.o: $S/lib/libkern/imin.c
lmax.o: $S/lib/libkern/lmax.c
lmin.o: $S/lib/libkern/lmin.c
max.o: $S/lib/libkern/max.c
min.o: $S/lib/libkern/min.c
ulmax.o: $S/lib/libkern/ulmax.c
ulmin.o: $S/lib/libkern/ulmin.c
memchr.o: $S/lib/libkern/memchr.c
memcmp.o: $S/lib/libkern/memcmp.c
bcmp.o: $S/lib/libkern/arch/mips64/bcmp.S
bzero.o: $S/lib/libkern/arch/mips64/bzero.S
bcopy.o: $S/lib/libkern/arch/mips64/bcopy.S
memcpy.o: $S/lib/libkern/arch/mips64/memcpy.S
memmove.o: $S/lib/libkern/arch/mips64/memmove.S
ffs.o: $S/lib/libkern/arch/mips64/ffs.S
fls.o: $S/lib/libkern/fls.c
flsl.o: $S/lib/libkern/flsl.c
memset.o: $S/lib/libkern/memset.c
strcmp.o: $S/lib/libkern/arch/mips64/strcmp.S
strlcat.o: $S/lib/libkern/strlcat.c
strlcpy.o: $S/lib/libkern/strlcpy.c
strlen.o: $S/lib/libkern/arch/mips64/strlen.S
strncmp.o: $S/lib/libkern/strncmp.c
strncpy.o: $S/lib/libkern/strncpy.c
strnlen.o: $S/lib/libkern/strnlen.c
scanc.o: $S/lib/libkern/scanc.c
skpc.o: $S/lib/libkern/skpc.c
htonl.o: $S/lib/libkern/arch/mips64/htonl.S
htons.o: $S/lib/libkern/arch/mips64/htons.S
strncasecmp.o: $S/lib/libkern/strncasecmp.c
adler32.o: $S/lib/libz/adler32.c
crc32.o: $S/lib/libz/crc32.c
infback.o: $S/lib/libz/infback.c
inffast.o: $S/lib/libz/inffast.c
inflate.o: $S/lib/libz/inflate.c
inftrees.o: $S/lib/libz/inftrees.c
deflate.o: $S/lib/libz/deflate.c
zutil.o: $S/lib/libz/zutil.c
zopenbsd.o: $S/lib/libz/zopenbsd.c
trees.o: $S/lib/libz/trees.c
compress.o: $S/lib/libz/compress.c
arcbios.o: $S/arch/mips64/mips64/arcbios.c
clock.o: $S/arch/mips64/mips64/clock.c
cpu.o: $S/arch/mips64/mips64/cpu.c
interrupt.o: $S/arch/mips64/mips64/interrupt.c
mem.o: $S/arch/mips64/mips64/mem.c
mips64_machdep.o: $S/arch/mips64/mips64/mips64_machdep.c
pmap.o: $S/arch/mips64/mips64/pmap.c
process_machdep.o: $S/arch/mips64/mips64/process_machdep.c
sendsig.o: $S/arch/mips64/mips64/sendsig.c
softintr.o: $S/arch/mips64/mips64/softintr.c
sys_machdep.o: $S/arch/mips64/mips64/sys_machdep.c
trap.o: $S/arch/mips64/mips64/trap.c
vm_machdep.o: $S/arch/mips64/mips64/vm_machdep.c
cache_r10k.o: $S/arch/mips64/mips64/cache_r10k.c
context.o: $S/arch/mips64/mips64/context.S
cp0access.o: $S/arch/mips64/mips64/cp0access.S
exception.o: $S/arch/mips64/mips64/exception.S
fp_emulate.o: $S/arch/mips64/mips64/fp_emulate.c
lcore_access.o: $S/arch/mips64/mips64/lcore_access.S
lcore_float.o: $S/arch/mips64/mips64/lcore_float.S
tlbhandler.o: $S/arch/mips64/mips64/tlbhandler.S
db_disasm.o: $S/arch/mips64/mips64/db_disasm.c
db_machdep.o: $S/arch/mips64/mips64/db_machdep.c
lcore_ddb.o: $S/arch/mips64/mips64/lcore_ddb.S
in_cksum.o: $S/netinet/in_cksum.c
in4_cksum.o: $S/netinet/in4_cksum.c
softfloat.o: $S/lib/libkern/softfloat.c
cninit.o: $S/dev/cninit.c
autoconf.o: $S/arch/sgi/sgi/autoconf.c
bus_dma.o: $S/arch/sgi/sgi/bus_dma.c
conf.o: $S/arch/sgi/sgi/conf.c
disksubr.o: $S/arch/sgi/sgi/disksubr.c
ip30_machdep.o: $S/arch/sgi/sgi/ip30_machdep.c
ip30_nmi.o: $S/arch/sgi/sgi/ip30_nmi.S
locore.o: $S/arch/sgi/sgi/locore.S
machdep.o: $S/arch/sgi/sgi/machdep.c
mainbus.o: $S/arch/sgi/sgi/mainbus.c
wscons_machdep.o: $S/arch/sgi/sgi/wscons_machdep.c
mii.o: $S/dev/mii/mii.c
mii_physubr.o: $S/dev/mii/mii_physubr.c
ukphy_subr.o: $S/dev/mii/ukphy_subr.c
nsphy.o: $S/dev/mii/nsphy.c
nsphyter.o: $S/dev/mii/nsphyter.c
gentbi.o: $S/dev/mii/gentbi.c
qsphy.o: $S/dev/mii/qsphy.c
inphy.o: $S/dev/mii/inphy.c
iophy.o: $S/dev/mii/iophy.c
eephy.o: $S/dev/mii/eephy.c
exphy.o: $S/dev/mii/exphy.c
rlphy.o: $S/dev/mii/rlphy.c
lxtphy.o: $S/dev/mii/lxtphy.c
luphy.o: $S/dev/mii/luphy.c
mtdphy.o: $S/dev/mii/mtdphy.c
icsphy.o: $S/dev/mii/icsphy.c
sqphy.o: $S/dev/mii/sqphy.c
tqphy.o: $S/dev/mii/tqphy.c
ukphy.o: $S/dev/mii/ukphy.c
dcphy.o: $S/dev/mii/dcphy.c
bmtphy.o: $S/dev/mii/bmtphy.c
brgphy.o: $S/dev/mii/brgphy.c
xmphy.o: $S/dev/mii/xmphy.c
amphy.o: $S/dev/mii/amphy.c
acphy.o: $S/dev/mii/acphy.c
nsgphy.o: $S/dev/mii/nsgphy.c
urlphy.o: $S/dev/mii/urlphy.c
rgephy.o: $S/dev/mii/rgephy.c
ciphy.o: $S/dev/mii/ciphy.c
ipgphy.o: $S/dev/mii/ipgphy.c
pckbd.o: $S/dev/pckbc/pckbd.c
wskbdmap_mfii.o: $S/dev/pckbc/wskbdmap_mfii.c
pms.o: $S/dev/pckbc/pms.c
impact.o: $S/arch/sgi/dev/impact.c
xbow.o: $S/arch/sgi/xbow/xbow.c
xheart.o: $S/arch/sgi/xbow/xheart.c
xbridge.o: $S/arch/sgi/xbow/xbridge.c
odyssey.o: $S/arch/sgi/xbow/odyssey.c
impact_xbow.o: $S/arch/sgi/xbow/impact_xbow.c
onewire.o: $S/dev/onewire/onewire.c
onewire_subr.o: $S/dev/onewire/onewire_subr.c
scsi_base.o: $S/scsi/scsi_base.c
scsi_ioctl.o: $S/scsi/scsi_ioctl.c
scsiconf.o: $S/scsi/scsiconf.c
cd.o: $S/scsi/cd.c
ch.o: $S/scsi/ch.c
sd.o: $S/scsi/sd.c
st.o: $S/scsi/st.c
uk.o: $S/scsi/uk.c
safte.o: $S/scsi/safte.c
ses.o: $S/scsi/ses.c
pci.o: $S/dev/pci/pci.c
pci_map.o: $S/dev/pci/pci_map.c
pci_quirks.o: $S/dev/pci/pci_quirks.c
pci_subr.o: $S/dev/pci/pci_subr.c
ahc_pci.o: $S/dev/pci/ahc_pci.c
eap.o: $S/dev/pci/eap.c
envy.o: $S/dev/pci/envy.c
emuxki.o: $S/dev/pci/emuxki.c
qlw_pci.o: $S/dev/pci/qlw_pci.c
qla_pci.o: $S/dev/pci/qla_pci.c
qle.o: $S/dev/pci/qle.c
mpi_pci.o: $S/dev/pci/mpi_pci.c
if_de.o: $S/dev/pci/if_de.c
if_ep_pci.o: $S/dev/pci/if_ep_pci.c
if_pcn.o: $S/dev/pci/if_pcn.c
siop_pci_common.o: $S/dev/pci/siop_pci_common.c
siop_pci.o: $S/dev/pci/siop_pci.c
ppb.o: $S/dev/pci/ppb.c
if_mtd_pci.o: $S/dev/pci/if_mtd_pci.c
if_rl_pci.o: $S/dev/pci/if_rl_pci.c
if_re_pci.o: $S/dev/pci/if_re_pci.c
if_vr.o: $S/dev/pci/if_vr.c
if_xl_pci.o: $S/dev/pci/if_xl_pci.c
if_fxp_pci.o: $S/dev/pci/if_fxp_pci.c
if_em.o: $S/dev/pci/if_em.c
if_em_hw.o: $S/dev/pci/if_em_hw.c
if_em_soc.o: $S/dev/pci/if_em_soc.c
if_dc_pci.o: $S/dev/pci/if_dc_pci.c
if_epic_pci.o: $S/dev/pci/if_epic_pci.c
if_ti_pci.o: $S/dev/pci/if_ti_pci.c
if_ne_pci.o: $S/dev/pci/if_ne_pci.c
if_gem_pci.o: $S/dev/pci/if_gem_pci.c
if_cas.o: $S/dev/pci/if_cas.c
hifn7751.o: $S/dev/pci/hifn7751.c
ubsec.o: $S/dev/pci/ubsec.c
if_sf_pci.o: $S/dev/pci/if_sf_pci.c
if_sis.o: $S/dev/pci/if_sis.c
uhci_pci.o: $S/dev/pci/uhci_pci.c
ohci_pci.o: $S/dev/pci/ohci_pci.c
ehci_pci.o: $S/dev/pci/ehci_pci.c
pccbb.o: $S/dev/pci/pccbb.c
if_sk.o: $S/dev/pci/if_sk.c
if_msk.o: $S/dev/pci/if_msk.c
puc.o: $S/dev/pci/puc.c
pucdata.o: $S/dev/pci/pucdata.c
com_puc.o: $S/dev/puc/com_puc.c
if_wi_pci.o: $S/dev/pci/if_wi_pci.c
cmpci.o: $S/dev/pci/cmpci.c
if_bge.o: $S/dev/pci/if_bge.c
if_bnx.o: $S/dev/pci/if_bnx.c
if_vge.o: $S/dev/pci/if_vge.c
if_stge.o: $S/dev/pci/if_stge.c
if_acx_pci.o: $S/dev/pci/if_acx_pci.c
if_malo_pci.o: $S/dev/pci/if_malo_pci.c
pci_machdep.o: $S/arch/sgi/pci/pci_machdep.c
hme.o: $S/dev/ic/hme.c
if_hme_pci.o: $S/dev/pci/if_hme_pci.c
ioc.o: $S/arch/sgi/pci/ioc.c
com_ioc.o: $S/arch/sgi/dev/com_ioc.c
if_iec.o: $S/arch/sgi/dev/if_iec.c
iockbc.o: $S/arch/sgi/dev/iockbc.c
dsrtc.o: $S/arch/sgi/dev/dsrtc.c
power.o: $S/arch/sgi/dev/power.c
rasops.o: $S/dev/rasops/rasops.c
rasops15.o: $S/dev/rasops/rasops15.c
rasops32.o: $S/dev/rasops/rasops32.c
wsfont.o: $S/dev/wsfont/wsfont.c
wsdisplay.o: $S/dev/wscons/wsdisplay.c
wsevent.o: $S/dev/wscons/wsevent.c
wskbd.o: $S/dev/wscons/wskbd.c
wskbdutil.o: $S/dev/wscons/wskbdutil.c
wsmouse.o: $S/dev/wscons/wsmouse.c
wstpad.o: $S/dev/wscons/wstpad.c
wsmux.o: $S/dev/wscons/wsmux.c
wsemulconf.o: $S/dev/wscons/wsemulconf.c
wsemul_subr.o: $S/dev/wscons/wsemul_subr.c
wsemul_vt100.o: $S/dev/wscons/wsemul_vt100.c
wsemul_vt100_subr.o: $S/dev/wscons/wsemul_vt100_subr.c
wsemul_vt100_chars.o: $S/dev/wscons/wsemul_vt100_chars.c
wsemul_vt100_keys.o: $S/dev/wscons/wsemul_vt100_keys.c
cardslot.o: $S/dev/cardbus/cardslot.c
cardbus.o: $S/dev/cardbus/cardbus.c
cardbus_map.o: $S/dev/cardbus/cardbus_map.c
cardbus_exrom.o: $S/dev/cardbus/cardbus_exrom.c
rbus.o: $S/dev/cardbus/rbus.c
com_cardbus.o: $S/dev/cardbus/com_cardbus.c
if_xl_cardbus.o: $S/dev/cardbus/if_xl_cardbus.c
if_dc_cardbus.o: $S/dev/cardbus/if_dc_cardbus.c
if_fxp_cardbus.o: $S/dev/cardbus/if_fxp_cardbus.c
if_rl_cardbus.o: $S/dev/cardbus/if_rl_cardbus.c
if_re_cardbus.o: $S/dev/cardbus/if_re_cardbus.c
if_acx_cardbus.o: $S/dev/cardbus/if_acx_cardbus.c
ehci_cardbus.o: $S/dev/cardbus/ehci_cardbus.c
ohci_cardbus.o: $S/dev/cardbus/ohci_cardbus.c
uhci_cardbus.o: $S/dev/cardbus/uhci_cardbus.c
pcmcia.o: $S/dev/pcmcia/pcmcia.c
pcmcia_cis.o: $S/dev/pcmcia/pcmcia_cis.c
pcmcia_cis_quirks.o: $S/dev/pcmcia/pcmcia_cis_quirks.c
if_ep_pcmcia.o: $S/dev/pcmcia/if_ep_pcmcia.c
if_ne_pcmcia.o: $S/dev/pcmcia/if_ne_pcmcia.c
com_pcmcia.o: $S/dev/pcmcia/com_pcmcia.c
if_wi_pcmcia.o: $S/dev/pcmcia/if_wi_pcmcia.c
hid.o: $S/dev/hid/hid.c
hidkbd.o: $S/dev/hid/hidkbd.c
hidms.o: $S/dev/hid/hidms.c
usb.o: $S/dev/usb/usb.c
usbdi.o: $S/dev/usb/usbdi.c
usbdi_util.o: $S/dev/usb/usbdi_util.c
usb_mem.o: $S/dev/usb/usb_mem.c
usb_subr.o: $S/dev/usb/usb_subr.c
usb_quirks.o: $S/dev/usb/usb_quirks.c
uhub.o: $S/dev/usb/uhub.c
uaudio.o: $S/dev/usb/uaudio.c
uvideo.o: $S/dev/usb/uvideo.c
utvfu.o: $S/dev/usb/utvfu.c
udl.o: $S/dev/usb/udl.c
ucom.o: $S/dev/usb/ucom.c
ugen.o: $S/dev/usb/ugen.c
uhidev.o: $S/dev/usb/uhidev.c
uhid.o: $S/dev/usb/uhid.c
fido.o: $S/dev/usb/fido.c
ukbdmap.o: $S/dev/usb/ukbdmap.c
ukbd.o: $S/dev/usb/ukbd.c
ums.o: $S/dev/usb/ums.c
uslhcom.o: $S/dev/usb/uslhcom.c
ulpt.o: $S/dev/usb/ulpt.c
umass.o: $S/dev/usb/umass.c
umass_quirks.o: $S/dev/usb/umass_quirks.c
umass_scsi.o: $S/dev/usb/umass_scsi.c
uthum.o: $S/dev/usb/uthum.c
ugold.o: $S/dev/usb/ugold.c
uonerng.o: $S/dev/usb/uonerng.c
urng.o: $S/dev/usb/urng.c
utwitch.o: $S/dev/usb/utwitch.c
if_aue.o: $S/dev/usb/if_aue.c
if_axe.o: $S/dev/usb/if_axe.c
if_axen.o: $S/dev/usb/if_axen.c
if_smsc.o: $S/dev/usb/if_smsc.c
if_cue.o: $S/dev/usb/if_cue.c
if_kue.o: $S/dev/usb/if_kue.c
if_cdce.o: $S/dev/usb/if_cdce.c
if_mos.o: $S/dev/usb/if_mos.c
if_udav.o: $S/dev/usb/if_udav.c
if_upl.o: $S/dev/usb/if_upl.c
if_ugl.o: $S/dev/usb/if_ugl.c
if_url.o: $S/dev/usb/if_url.c
if_ure.o: $S/dev/usb/if_ure.c
umodem.o: $S/dev/usb/umodem.c
uvscom.o: $S/dev/usb/uvscom.c
ubsa.o: $S/dev/usb/ubsa.c
if_wi_usb.o: $S/dev/usb/if_wi_usb.c
if_atu.o: $S/dev/usb/if_atu.c
if_ral.o: $S/dev/usb/if_ral.c
if_rum.o: $S/dev/usb/if_rum.c
if_run.o: $S/dev/usb/if_run.c
if_zyd.o: $S/dev/usb/if_zyd.c
if_upgt.o: $S/dev/usb/if_upgt.c
if_urtw.o: $S/dev/usb/if_urtw.c
if_urtwn.o: $S/dev/usb/if_urtwn.c
if_rsu.o: $S/dev/usb/if_rsu.c
if_otus.o: $S/dev/usb/if_otus.c
if_uath.o: $S/dev/usb/if_uath.c
owmac.o: $S/arch/sgi/dev/owmac.c
owserial.o: $S/arch/sgi/dev/owserial.c
owmem_subr.o: $S/arch/sgi/dev/owmem_subr.c

.PHONY: config
config:
	cd /usr/obj/src/sys/arch/sgi/compile/GENERIC-IP30 && config -s /usr/src/sys -b /usr/src/sys/arch/sgi/compile/GENERIC-IP30/obj /usr/src/sys/arch/sgi/conf/GENERIC-IP30
