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 -DM88100 -DMAX_CPUS="4" -DERRATA__XXX_USR -DWSDISPLAY_COMPAT_RAWKBD
PARAM=-DMAXUSERS=64
S=	/usr/src/sys
_mach=luna88k
_arch=m88k
#	$OpenBSD: Makefile.luna88k,v 1.84 2021/01/28 17:39:03 deraadt 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

# 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-main -Wno-uninitialized \
		-Wframe-larger-than=2047

CMACHFLAGS=	-mno-check-zero-division -mmemcpy
CMACHFLAGS+=	-fno-builtin-printf -fno-builtin-snprintf \
		-fno-builtin-vsnprintf -fno-builtin-log \
		-fno-builtin-log2 -fno-builtin-malloc 
SORTR=		sort -R
.if ${IDENT:M-DNO_PROPOLICE}
CMACHFLAGS+=	-fno-stack-protector
.endif
.if ${IDENT:M-DSMALL_KERNEL}
SORTR=		cat
COPTIMIZE?=	-Oz
.endif

DEBUG?=		-g
COPTIMIZE?=	-O2
CFLAGS=		${DEBUG} ${CWARNFLAGS} ${CMACHFLAGS} ${COPTIMIZE} ${COPTS} ${PIPE}
AFLAGS=		-D_LOCORE -x assembler-with-cpp ${CWARNFLAGS} ${CMACHFLAGS}
LINKFLAGS=	-T ld.script -Ttext 0x80000 -e __start -X -N --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 $<
PROFILE_C=	${CC} -S -c ${CFLAGS} ${CPPFLAGS} $<; \
		sed -e s/_mcount/mcount/ -e s/subrmcount/subr_mcount/ <$*.s | \
		${AS} -o $@; \
		rm -f $*.s

OBJS=	am7990.o lance.o vscsi.o softraid.o softraid_concat.o \
	softraid_crypto.o softraid_raid0.o softraid_raid1.o \
	softraid_raid5.o softraid_raid6.o softraid_raid1c.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_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_etherbridge.o if_veb.o if_vlan.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 \
	toeplitz.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 hmac.o \
	gmac.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 db_disasm.o db_interface.o db_sstep.o \
	db_trace.o fpu.o in_cksum.o m88100_fp.o m88100_machdep.o \
	m8820x_machdep.o m88k_machdep.o mem.o mutex.o pmap.o \
	process.o process_machdep.o sig_machdep.o softintr.o subr.o \
	trap.o vectors_88100.o vm_machdep.o softfloat.o divsi3.o \
	modsi3.o udivsi3.o umodsi3.o adddi3.o anddi3.o ashldi3.o \
	ashrdi3.o cmpdi2.o divdi3.o iordi3.o lshldi3.o lshrdi3.o \
	moddi3.o muldi3.o negdi2.o notdi2.o qdivrem.o subdi3.o \
	ucmpdi2.o udivdi3.o umoddi3.o xordi3.o mainbus.o \
	timekeeper.o lcd.o if_le.o sio.o siotty.o xp.o lunaws.o \
	omkbdmap.o lunafb.o omrasops.o omrasops1.o rasops.o \
	rasops_masks.o rasops1.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 scsi_base.o \
	scsi_ioctl.o scsiconf.o cd.o ch.o sd.o st.o uk.o safte.o \
	ses.o spc.o mb89352.o cbus.o pcex.o clock.o autoconf.o \
	conf.o m8820x.o disksubr.o eh.o isr.o locore.o machdep.o \
	pmap_table.o romcons.o

CFILES=	$S/dev/ic/am7990.c $S/dev/ic/lance.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/softraid_raid1c.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_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_etherbridge.c $S/net/if_veb.c \
	$S/net/if_vlan.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/net/toeplitz.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/hmac.c $S/crypto/gmac.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/bcmp.c $S/lib/libkern/ffs.c $S/lib/libkern/fls.c \
	$S/lib/libkern/flsl.c $S/lib/libkern/memset.c \
	$S/lib/libkern/strcmp.c $S/lib/libkern/strlcat.c \
	$S/lib/libkern/strlcpy.c $S/lib/libkern/strlen.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/htonl.c \
	$S/lib/libkern/htons.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/m88k/m88k/db_disasm.c $S/arch/m88k/m88k/db_interface.c \
	$S/arch/m88k/m88k/db_sstep.c $S/arch/m88k/m88k/db_trace.c \
	$S/arch/m88k/m88k/fpu.c $S/arch/m88k/m88k/in_cksum.c \
	$S/arch/m88k/m88k/m88100_fp.c $S/arch/m88k/m88k/m88100_machdep.c \
	$S/arch/m88k/m88k/m8820x_machdep.c \
	$S/arch/m88k/m88k/m88k_machdep.c $S/arch/m88k/m88k/mem.c \
	$S/arch/m88k/m88k/mutex.c $S/arch/m88k/m88k/pmap.c \
	$S/arch/m88k/m88k/process_machdep.c \
	$S/arch/m88k/m88k/sig_machdep.c $S/arch/m88k/m88k/softintr.c \
	$S/arch/m88k/m88k/trap.c $S/arch/m88k/m88k/vm_machdep.c \
	$S/lib/libkern/softfloat.c $S/lib/libkern/adddi3.c \
	$S/lib/libkern/anddi3.c $S/lib/libkern/ashldi3.c \
	$S/lib/libkern/ashrdi3.c $S/lib/libkern/cmpdi2.c \
	$S/lib/libkern/divdi3.c $S/lib/libkern/iordi3.c \
	$S/lib/libkern/lshldi3.c $S/lib/libkern/lshrdi3.c \
	$S/lib/libkern/moddi3.c $S/lib/libkern/muldi3.c \
	$S/lib/libkern/negdi2.c $S/lib/libkern/notdi2.c \
	$S/lib/libkern/qdivrem.c $S/lib/libkern/subdi3.c \
	$S/lib/libkern/ucmpdi2.c $S/lib/libkern/udivdi3.c \
	$S/lib/libkern/umoddi3.c $S/lib/libkern/xordi3.c \
	$S/arch/luna88k/luna88k/mainbus.c \
	$S/arch/luna88k/dev/timekeeper.c $S/arch/luna88k/dev/lcd.c \
	$S/arch/luna88k/dev/if_le.c $S/arch/luna88k/dev/sio.c \
	$S/arch/luna88k/dev/siotty.c $S/arch/luna88k/dev/xp.c \
	$S/arch/luna88k/dev/lunaws.c $S/arch/luna88k/dev/omkbdmap.c \
	$S/arch/luna88k/dev/lunafb.c $S/arch/luna88k/dev/omrasops.c \
	$S/arch/luna88k/dev/omrasops1.c $S/dev/rasops/rasops.c \
	$S/dev/rasops/rasops_masks.c $S/dev/rasops/rasops1.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/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/arch/luna88k/dev/spc.c \
	$S/arch/luna88k/dev/mb89352.c $S/arch/luna88k/cbus/cbus.c \
	$S/arch/luna88k/cbus/pcex.c $S/arch/luna88k/luna88k/clock.c \
	$S/arch/luna88k/luna88k/autoconf.c $S/arch/luna88k/luna88k/conf.c \
	$S/arch/luna88k/luna88k/m8820x.c \
	$S/arch/luna88k/luna88k/disksubr.c $S/arch/luna88k/luna88k/isr.c \
	$S/arch/luna88k/luna88k/machdep.c \
	$S/arch/luna88k/luna88k/pmap_table.c \
	$S/arch/luna88k/luna88k/romcons.c

SFILES=	$S/lib/libkern/arch/m88k/bzero.S $S/lib/libkern/arch/m88k/bcopy.S \
	$S/lib/libkern/arch/m88k/memcpy.S \
	$S/lib/libkern/arch/m88k/memmove.S $S/arch/m88k/m88k/process.S \
	$S/arch/m88k/m88k/subr.S $S/arch/m88k/m88k/vectors_88100.S \
	$S/lib/libkern/arch/m88k/divsi3.S \
	$S/lib/libkern/arch/m88k/modsi3.S \
	$S/lib/libkern/arch/m88k/udivsi3.S \
	$S/lib/libkern/arch/m88k/umodsi3.S $S/arch/luna88k/luna88k/eh.S \
	$S/arch/luna88k/luna88k/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 /usr/share/relink/kernel.tgz
	mkdir /usr/share/relink/kernel/GENERIC
	tar -chf - Makefile makegap.sh ld.script *.o | \
	    tar -C /usr/share/relink/kernel/GENERIC -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 $@

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

MAKE_GAP = LD="${LD}" sh makegap.sh 0x00000000

gap.o:	Makefile makegap.sh 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 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
locore.o eh.o mutex.o process.o subr.o: assym.h

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

newinstall:
	install -F -m 700 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}

am7990.o: $S/dev/ic/am7990.c
lance.o: $S/dev/ic/lance.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
softraid_raid1c.o: $S/dev/softraid_raid1c.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_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_etherbridge.o: $S/net/if_etherbridge.c
if_veb.o: $S/net/if_veb.c
if_vlan.o: $S/net/if_vlan.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
toeplitz.o: $S/net/toeplitz.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
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
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/bcmp.c
bzero.o: $S/lib/libkern/arch/m88k/bzero.S
bcopy.o: $S/lib/libkern/arch/m88k/bcopy.S
memcpy.o: $S/lib/libkern/arch/m88k/memcpy.S
memmove.o: $S/lib/libkern/arch/m88k/memmove.S
ffs.o: $S/lib/libkern/ffs.c
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/strcmp.c
strlcat.o: $S/lib/libkern/strlcat.c
strlcpy.o: $S/lib/libkern/strlcpy.c
strlen.o: $S/lib/libkern/strlen.c
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/htonl.c
htons.o: $S/lib/libkern/htons.c
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
db_disasm.o: $S/arch/m88k/m88k/db_disasm.c
db_interface.o: $S/arch/m88k/m88k/db_interface.c
db_sstep.o: $S/arch/m88k/m88k/db_sstep.c
db_trace.o: $S/arch/m88k/m88k/db_trace.c
fpu.o: $S/arch/m88k/m88k/fpu.c
in_cksum.o: $S/arch/m88k/m88k/in_cksum.c
m88100_fp.o: $S/arch/m88k/m88k/m88100_fp.c
m88100_machdep.o: $S/arch/m88k/m88k/m88100_machdep.c
m8820x_machdep.o: $S/arch/m88k/m88k/m8820x_machdep.c
m88k_machdep.o: $S/arch/m88k/m88k/m88k_machdep.c
mem.o: $S/arch/m88k/m88k/mem.c
mutex.o: $S/arch/m88k/m88k/mutex.c
pmap.o: $S/arch/m88k/m88k/pmap.c
process.o: $S/arch/m88k/m88k/process.S
process_machdep.o: $S/arch/m88k/m88k/process_machdep.c
sig_machdep.o: $S/arch/m88k/m88k/sig_machdep.c
softintr.o: $S/arch/m88k/m88k/softintr.c
subr.o: $S/arch/m88k/m88k/subr.S
trap.o: $S/arch/m88k/m88k/trap.c
vectors_88100.o: $S/arch/m88k/m88k/vectors_88100.S
vm_machdep.o: $S/arch/m88k/m88k/vm_machdep.c
softfloat.o: $S/lib/libkern/softfloat.c
divsi3.o: $S/lib/libkern/arch/m88k/divsi3.S
modsi3.o: $S/lib/libkern/arch/m88k/modsi3.S
udivsi3.o: $S/lib/libkern/arch/m88k/udivsi3.S
umodsi3.o: $S/lib/libkern/arch/m88k/umodsi3.S
adddi3.o: $S/lib/libkern/adddi3.c
anddi3.o: $S/lib/libkern/anddi3.c
ashldi3.o: $S/lib/libkern/ashldi3.c
ashrdi3.o: $S/lib/libkern/ashrdi3.c
cmpdi2.o: $S/lib/libkern/cmpdi2.c
divdi3.o: $S/lib/libkern/divdi3.c
iordi3.o: $S/lib/libkern/iordi3.c
lshldi3.o: $S/lib/libkern/lshldi3.c
lshrdi3.o: $S/lib/libkern/lshrdi3.c
moddi3.o: $S/lib/libkern/moddi3.c
muldi3.o: $S/lib/libkern/muldi3.c
negdi2.o: $S/lib/libkern/negdi2.c
notdi2.o: $S/lib/libkern/notdi2.c
qdivrem.o: $S/lib/libkern/qdivrem.c
subdi3.o: $S/lib/libkern/subdi3.c
ucmpdi2.o: $S/lib/libkern/ucmpdi2.c
udivdi3.o: $S/lib/libkern/udivdi3.c
umoddi3.o: $S/lib/libkern/umoddi3.c
xordi3.o: $S/lib/libkern/xordi3.c
mainbus.o: $S/arch/luna88k/luna88k/mainbus.c
timekeeper.o: $S/arch/luna88k/dev/timekeeper.c
lcd.o: $S/arch/luna88k/dev/lcd.c
if_le.o: $S/arch/luna88k/dev/if_le.c
sio.o: $S/arch/luna88k/dev/sio.c
siotty.o: $S/arch/luna88k/dev/siotty.c
xp.o: $S/arch/luna88k/dev/xp.c
lunaws.o: $S/arch/luna88k/dev/lunaws.c
omkbdmap.o: $S/arch/luna88k/dev/omkbdmap.c
lunafb.o: $S/arch/luna88k/dev/lunafb.c
omrasops.o: $S/arch/luna88k/dev/omrasops.c
omrasops1.o: $S/arch/luna88k/dev/omrasops1.c
rasops.o: $S/dev/rasops/rasops.c
rasops_masks.o: $S/dev/rasops/rasops_masks.c
rasops1.o: $S/dev/rasops/rasops1.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
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
spc.o: $S/arch/luna88k/dev/spc.c
mb89352.o: $S/arch/luna88k/dev/mb89352.c
cbus.o: $S/arch/luna88k/cbus/cbus.c
pcex.o: $S/arch/luna88k/cbus/pcex.c
clock.o: $S/arch/luna88k/luna88k/clock.c
autoconf.o: $S/arch/luna88k/luna88k/autoconf.c
conf.o: $S/arch/luna88k/luna88k/conf.c
m8820x.o: $S/arch/luna88k/luna88k/m8820x.c
disksubr.o: $S/arch/luna88k/luna88k/disksubr.c
eh.o: $S/arch/luna88k/luna88k/eh.S
isr.o: $S/arch/luna88k/luna88k/isr.c
locore.o: $S/arch/luna88k/luna88k/locore.S
machdep.o: $S/arch/luna88k/luna88k/machdep.c
pmap_table.o: $S/arch/luna88k/luna88k/pmap_table.c
romcons.o: $S/arch/luna88k/luna88k/romcons.c

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