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="0xffffffff88000000" -DPAGE_SHIFT="14" -DWSDISPLAY_COMPAT_RAWKBD -DEISAVERBOSE -DPCIVERBOSE -DUSER_PCICONF -DTGT_INDIGO -DTGT_INDIGO2 -DTGT_INDY -DARCBIOS -DCPU_R4000 -DCPU_R4600 -DCPU_R5000
PARAM=-DMAXUSERS=32
S=	/usr/src/sys
_mach=sgi
_arch=mips64
LINK_ADDRESS=0xffffffff88800000
#	$OpenBSD: Makefile.sgi,v 1.95 2018/09/14 13:49:01 naddy 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
.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} -c $<

OBJS=	smc93cx6.o wd33c93.o pckbc.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 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 cons.o diskmap.o vnd.o rnd.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_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_mobileip.o if_trunk.o trunklacp.o \
	if_mpe.o if_mpw.o if_vether.o if_pair.o if_pppx.o \
	if_vxlan.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 \
	ip_ether.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 \
	hmac.o gmac.o idgen.o chachapoly.o poly1305.o siphash.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_stat.o uvm_swap.o uvm_swap_encrypt.o uvm_unix.o \
	uvm_user.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 \
	__main.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_r4k.o cache_r5k.o context.o cp0access.o exception.o \
	fp_emulate.o lcore_access.o lcore_float.o r4000_errata.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 ip22_machdep.o locore.o machdep.o \
	mainbus.o wscons_machdep.o pckbd.o wskbdmap_mfii.o pms.o \
	impact.o imc.o int.o gio.o hpc.o newport.o grtwo.o \
	light.o impact_gio.o pci_gio.o dpclock.o dsclock.o if_sq.o \
	hpcdma.o wdsc.o zs.o z8530sc.o z8530tty.o z8530kbd.o \
	wskbdmap_sgi.o z8530ms.o pckbc_hpc.o panel.o scsi_base.o \
	scsi_ioctl.o scsiconf.o cd.o ch.o sd.o st.o uk.o safte.o \
	ses.o eisa.o eisa_machdep.o pci.o pci_map.o pci_quirks.o \
	pci_subr.o pci_machdep.o rasops.o rasops8.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

CFILES=	$S/dev/ic/smc93cx6.c $S/dev/ic/wd33c93.c $S/dev/ic/pckbc.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/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/cons.c \
	$S/dev/diskmap.c $S/dev/vnd.c $S/dev/rnd.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_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_mobileip.c $S/net/if_trunk.c $S/net/trunklacp.c \
	$S/net/if_mpe.c $S/net/if_mpw.c $S/net/if_vether.c \
	$S/net/if_pair.c $S/net/if_pppx.c $S/net/if_vxlan.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/ip_ether.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/hmac.c $S/crypto/gmac.c $S/crypto/idgen.c \
	$S/crypto/chachapoly.c $S/crypto/poly1305.c $S/crypto/siphash.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_stat.c $S/uvm/uvm_swap.c $S/uvm/uvm_swap_encrypt.c \
	$S/uvm/uvm_unix.c $S/uvm/uvm_user.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/__main.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_r4k.c \
	$S/arch/mips64/mips64/cache_r5k.c \
	$S/arch/mips64/mips64/fp_emulate.c \
	$S/arch/mips64/mips64/r4000_errata.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/ip22_machdep.c $S/arch/sgi/sgi/machdep.c \
	$S/arch/sgi/sgi/mainbus.c $S/arch/sgi/sgi/wscons_machdep.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/localbus/imc.c $S/arch/sgi/localbus/int.c \
	$S/arch/sgi/gio/gio.c $S/arch/sgi/hpc/hpc.c \
	$S/arch/sgi/gio/newport.c $S/arch/sgi/gio/grtwo.c \
	$S/arch/sgi/gio/light.c $S/arch/sgi/gio/impact_gio.c \
	$S/arch/sgi/gio/pci_gio.c $S/arch/sgi/hpc/dpclock.c \
	$S/arch/sgi/hpc/dsclock.c $S/arch/sgi/hpc/if_sq.c \
	$S/arch/sgi/hpc/hpcdma.c $S/arch/sgi/hpc/wdsc.c \
	$S/arch/sgi/hpc/zs.c $S/dev/ic/z8530sc.c $S/dev/ic/z8530tty.c \
	$S/arch/sgi/hpc/z8530kbd.c $S/arch/sgi/hpc/wskbdmap_sgi.c \
	$S/arch/sgi/hpc/z8530ms.c $S/arch/sgi/hpc/pckbc_hpc.c \
	$S/arch/sgi/hpc/panel.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/eisa/eisa.c $S/arch/sgi/sgi/eisa_machdep.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/arch/sgi/pci/pci_machdep.c \
	$S/dev/rasops/rasops.c $S/dev/rasops/rasops8.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

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/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}
	mv -f newbsd bsd

update-link:
	mkdir -p -m 700 /usr/share/relink/kernel
	rm -rf /usr/share/relink/kernel/GENERIC-IP22 /usr/share/relink/kernel.tgz
	mkdir /usr/share/relink/kernel/GENERIC-IP22
	tar -chf - Makefile makegap.sh ld.script *.o | \
	    tar -C /usr/share/relink/kernel/GENERIC-IP22 -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 'const char gapdummy;' > 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

symbols.sort: ${_machdir}/${_mach}/symbols.raw
	grep -v '^#' ${_machdir}/${_mach}/symbols.raw \
	    | sed 's/^	//' | sort -u > symbols.sort

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:
	umask 077 && cp bsd /nbsd && mv /nbsd /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
wd33c93.o: $S/dev/ic/wd33c93.c
pckbc.o: $S/dev/ic/pckbc.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
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
cons.o: $S/dev/cons.c
diskmap.o: $S/dev/diskmap.c
vnd.o: $S/dev/vnd.c
rnd.o: $S/dev/rnd.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_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_mobileip.o: $S/net/if_mobileip.c
if_trunk.o: $S/net/if_trunk.c
trunklacp.o: $S/net/trunklacp.c
if_mpe.o: $S/net/if_mpe.c
if_mpw.o: $S/net/if_mpw.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_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
ip_ether.o: $S/netinet/ip_ether.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
hmac.o: $S/crypto/hmac.c
gmac.o: $S/crypto/gmac.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
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_stat.o: $S/uvm/uvm_stat.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_user.o: $S/uvm/uvm_user.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
__main.o: $S/lib/libkern/__main.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_r4k.o: $S/arch/mips64/mips64/cache_r4k.c
cache_r5k.o: $S/arch/mips64/mips64/cache_r5k.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
r4000_errata.o: $S/arch/mips64/mips64/r4000_errata.c
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
ip22_machdep.o: $S/arch/sgi/sgi/ip22_machdep.c
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
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
imc.o: $S/arch/sgi/localbus/imc.c
int.o: $S/arch/sgi/localbus/int.c
gio.o: $S/arch/sgi/gio/gio.c
hpc.o: $S/arch/sgi/hpc/hpc.c
newport.o: $S/arch/sgi/gio/newport.c
grtwo.o: $S/arch/sgi/gio/grtwo.c
light.o: $S/arch/sgi/gio/light.c
impact_gio.o: $S/arch/sgi/gio/impact_gio.c
pci_gio.o: $S/arch/sgi/gio/pci_gio.c
dpclock.o: $S/arch/sgi/hpc/dpclock.c
dsclock.o: $S/arch/sgi/hpc/dsclock.c
if_sq.o: $S/arch/sgi/hpc/if_sq.c
hpcdma.o: $S/arch/sgi/hpc/hpcdma.c
wdsc.o: $S/arch/sgi/hpc/wdsc.c
zs.o: $S/arch/sgi/hpc/zs.c
z8530sc.o: $S/dev/ic/z8530sc.c
z8530tty.o: $S/dev/ic/z8530tty.c
z8530kbd.o: $S/arch/sgi/hpc/z8530kbd.c
wskbdmap_sgi.o: $S/arch/sgi/hpc/wskbdmap_sgi.c
z8530ms.o: $S/arch/sgi/hpc/z8530ms.c
pckbc_hpc.o: $S/arch/sgi/hpc/pckbc_hpc.c
panel.o: $S/arch/sgi/hpc/panel.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
eisa.o: $S/dev/eisa/eisa.c
eisa_machdep.o: $S/arch/sgi/sgi/eisa_machdep.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
pci_machdep.o: $S/arch/sgi/pci/pci_machdep.c
rasops.o: $S/dev/rasops/rasops.c
rasops8.o: $S/dev/rasops/rasops8.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

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