Makefile revision 1.284
1#	$NetBSD: Makefile,v 1.284 2024/03/21 02:36:02 riastradh Exp $
2
3.include <bsd.own.mk>
4
5.if !make(includes)
6# For all platforms
7
8# Modules for compatibility with earlier versions of NetBSD
9
10SUBDIR+=	compat_util
11SUBDIR+=	compat_43   compat_sysctl_09_43
12SUBDIR+=	compat_09   compat_10   compat_12   compat_13   compat_14
13SUBDIR+=	compat_16   compat_20   compat_30   compat_40   compat_50
14SUBDIR+=	compat_60   compat_70   compat_80   compat_90   compat_100
15
16SUBDIR+=	compat_sysv_10 compat_sysv_14 compat_sysv_50
17
18SUBDIR+=	compat_50_quota
19
20SUBDIR+=	compat_raid_50
21SUBDIR+=	compat_raid_80
22
23SUBDIR+=	compat_crypto_50
24
25SUBDIR+=	accf_dataready
26SUBDIR+=	accf_httpready
27SUBDIR+=	adosfs
28SUBDIR+=	adiantum
29SUBDIR+=	aht20temp
30SUBDIR+=	aio
31SUBDIR+=	audio
32SUBDIR+=	autofs
33SUBDIR+=	blake2s
34SUBDIR+=	blowfish
35SUBDIR+=	bpf
36SUBDIR+=	bpf_filter
37SUBDIR+=	bmx280thp
38SUBDIR+=	bmx280thpi2c
39SUBDIR+=	bufq_disksort
40SUBDIR+=	bufq_fcfs
41SUBDIR+=	bufq_priocscan
42SUBDIR+=	bufq_readprio
43SUBDIR+=	camellia
44SUBDIR+=	cast128
45SUBDIR+=	ccd
46SUBDIR+=	cd9660
47SUBDIR+=	cgd
48SUBDIR+=	chfs
49SUBDIR+=	clockctl
50SUBDIR+=	compat_ossaudio
51SUBDIR+=	crypto
52SUBDIR+=	coda
53SUBDIR+=	coda5
54SUBDIR+=	coredump
55SUBDIR+=	dbcool
56SUBDIR+=	des
57SUBDIR+=	dk_subr
58SUBDIR+=	drvctl
59SUBDIR+=	efs
60SUBDIR+=	ext2fs
61SUBDIR+=	exec_script
62SUBDIR+=	fdesc
63SUBDIR+=	ffs
64SUBDIR+=	filecore
65SUBDIR+=	flash
66SUBDIR+=	fss
67SUBDIR+=	gpio
68SUBDIR+=	gpioiic
69SUBDIR+=	gpioow
70SUBDIR+=	gpiosim
71SUBDIR+=	gpioirq
72SUBDIR+=	gpiopps
73SUBDIR+=	hfs
74SUBDIR+=	hythygtemp
75SUBDIR+=	am2315temp
76SUBDIR+=	i2cexec
77SUBDIR+=	i2c_bitbang
78SUBDIR+=	i2c_subr
79SUBDIR+=	if_agr
80SUBDIR+=	if_aue
81SUBDIR+=	if_axe
82SUBDIR+=	if_axen
83SUBDIR+=	if_cdce
84SUBDIR+=	if_cue
85SUBDIR+=	if_faith
86SUBDIR+=	if_gif
87SUBDIR+=	if_gre
88SUBDIR+=	if_kue
89SUBDIR+=	if_l2tp
90SUBDIR+=	if_lagg
91SUBDIR+=	if_loop
92SUBDIR+=	if_mpls
93SUBDIR+=	if_mue
94SUBDIR+=	if_npflog
95SUBDIR+=	if_ppp
96SUBDIR+=	if_pppoe
97SUBDIR+=	if_run
98SUBDIR+=	if_sl
99SUBDIR+=	if_smsc
100SUBDIR+=	if_srt srt
101SUBDIR+=	if_stf
102SUBDIR+=	if_tap tap
103SUBDIR+=	if_tun tun
104SUBDIR+=	if_udav
105SUBDIR+=	if_upl
106SUBDIR+=	if_ure
107SUBDIR+=	if_url
108SUBDIR+=	if_urndis
109SUBDIR+=	if_vlan
110SUBDIR+=	if_wg
111SUBDIR+=	iic
112SUBDIR+=	ip_ecn
113SUBDIR+=	ipl
114SUBDIR+=	kernfs
115SUBDIR+=	layerfs
116SUBDIR+=	lfs
117SUBDIR+=	lua
118SUBDIR+=	luasystm
119SUBDIR+=	luapmf
120SUBDIR+=	mfs
121SUBDIR+=	midi
122SUBDIR+=	midi_seq
123SUBDIR+=	miiverbose
124SUBDIR+=	miniroot
125SUBDIR+=	mqueue
126SUBDIR+=	msdos
127SUBDIR+=	nand
128SUBDIR+=	nandemulator
129SUBDIR+=	nfs
130SUBDIR+=	nfsserver
131SUBDIR+=	nilfs
132SUBDIR+=	npf
133SUBDIR+=	npf_alg_icmp
134SUBDIR+=	npf_ext_log
135SUBDIR+=	npf_ext_normalize
136SUBDIR+=	npf_ext_rndblock
137SUBDIR+=	ntfs
138SUBDIR+=	null
139SUBDIR+=	onewire
140SUBDIR+=	opencrypto
141SUBDIR+=	overlay
142SUBDIR+=	owtemp
143SUBDIR+=	pad
144SUBDIR+=	pciverbose
145SUBDIR+=	pf
146SUBDIR+=	ppp_bsdcomp
147SUBDIR+=	ppp_deflate
148SUBDIR+=	procfs
149SUBDIR+=	ptrace
150SUBDIR+=	ptrace_common
151SUBDIR+=	ptyfs
152SUBDIR+=	puffs
153SUBDIR+=	putter
154SUBDIR+=	raid
155SUBDIR+=	scmd
156SUBDIR+=	scmdi2c
157SUBDIR+=	scsi_subr
158SUBDIR+=	scsiverbose
159SUBDIR+=	sdtemp
160SUBDIR+=	secmodel_bsd44
161SUBDIR+=	secmodel_extensions
162SUBDIR+=	secmodel_overlay
163SUBDIR+=	securelevel
164SUBDIR+=	sequencer
165SUBDIR+=	sgp40mox
166SUBDIR+=	sht3xtemp
167SUBDIR+=	sht4xtemp
168SUBDIR+=	si70xxtemp
169SUBDIR+=	skipjack
170SUBDIR+=	slcompress
171SUBDIR+=	spdmem
172SUBDIR+=	spkr
173SUBDIR+=	sppp_subr
174SUBDIR+=	sysmon
175SUBDIR+=	sysmon_envsys
176SUBDIR+=	sysmon_power
177SUBDIR+=	sysmon_taskq
178SUBDIR+=	sysmon_wdog
179SUBDIR+=	sysvbfs
180SUBDIR+=	sysv_ipc
181SUBDIR+=	suser
182SUBDIR+=	swcrypto
183SUBDIR+=	swsensor
184SUBDIR+=	swwdog
185SUBDIR+=	tmpfs
186SUBDIR+=	ualea
187SUBDIR+=	uatp
188SUBDIR+=	udf
189SUBDIR+=	ufs
190SUBDIR+=	umap
191SUBDIR+=	union
192SUBDIR+=	usbnet
193SUBDIR+=	usbverbose
194SUBDIR+=	vcoda
195SUBDIR+=	v7fs
196SUBDIR+=	vnd
197SUBDIR+=	wapbl
198SUBDIR+=	wsbell
199SUBDIR+=	zlib
200SUBDIR+=	tprof
201.if (defined(NOTYET))
202SUBDIR+=	unionfs
203.endif
204.if ${MKBINUTILS} != "no"
205SUBDIR+=	xldscripts
206.endif
207
208# Machine dependent section
209.if ${MACHINE_ARCH} == "i386" || \
210    ${MACHINE_CPU} == "m68k"
211SUBDIR+=	exec_aout
212.endif
213
214.if ${MACHINE_ARCH} != "alpha" && \
215    ${MACHINE_ARCH} != "ia64"
216SUBDIR+=	exec_elf32
217.endif
218
219.if ${MACHINE_CPU} == "aarch64" || \
220    ${MACHINE_ARCH} == "alpha" || \
221    ${MACHINE_ARCH} == "ia64" || \
222    ${MACHINE_ARCH} == "riscv64" || \
223    ${MACHINE_ARCH} == "sparc64" || \
224    ${MACHINE_ARCH} == "x86_64"
225SUBDIR+=	exec_elf64
226.endif
227
228.if ${MACHINE_ARCH} == "i386" || \
229    ${MACHINE_ARCH} == "x86_64"
230SUBDIR+=	amdsmn
231SUBDIR+=	amdtemp
232SUBDIR+=	amdzentemp
233SUBDIR+=	coretemp
234SUBDIR+=	est
235SUBDIR+=	hdafg
236SUBDIR+=	hdaudio
237SUBDIR+=	hdaudio_pci
238SUBDIR+=	hdaudioverbose
239SUBDIR+=	hpet
240SUBDIR+=	ichsmb
241SUBDIR+=	odcm
242SUBDIR+=	powernow
243SUBDIR+=	tco
244SUBDIR+=	tprof_x86
245SUBDIR+=	vmt
246.endif
247
248.if ${HAVE_NVMM:Uno} == "yes"
249SUBDIR+=	nvmm
250.endif
251
252# Builds on architectures with PCI bus
253.if \
254     ${MACHINE} == "evbarm" || \
255     ${MACHINE_ARCH} == "i386" || \
256     ${MACHINE_ARCH} == "x86_64"
257#SUBDIR+=	hifn
258SUBDIR+=	if_iavf
259SUBDIR+=	if_ixl
260SUBDIR+=	ubsec
261.endif
262
263.if ${MKSLJIT} != "no"
264# No modules for 32-bit arm, mips and powerpc yet.
265.if ${MACHINE_ARCH} == "aarch64" || \
266    ${MACHINE_ARCH} == "i386"    || \
267    ${MACHINE_ARCH} == "sparc"   || \
268    ${MACHINE_ARCH} == "x86_64"
269SUBDIR+=	bpfjit
270SUBDIR+=	sljit
271.endif
272.endif
273
274#
275# ACPI modules
276#
277.if ${MACHINE_ARCH} == "i386" || \
278    ${MACHINE_ARCH} == "ia64" || \
279    ${MACHINE_ARCH} == "x86_64"
280SUBDIR+=	acpiverbose
281.endif
282
283.if ${MACHINE_ARCH} == "i386" || \
284    ${MACHINE_ARCH} == "x86_64"
285SUBDIR+=	acpiacad
286SUBDIR+=	acpibat
287SUBDIR+=	acpibut
288SUBDIR+=	acpicpu
289SUBDIR+=	acpidalb
290SUBDIR+=	acpifan
291SUBDIR+=	acpihed
292SUBDIR+=	acpilid
293SUBDIR+=	acpipmtr
294SUBDIR+=	acpitz
295SUBDIR+=	acpivga
296SUBDIR+=	acpiwdrt
297SUBDIR+=	acpiwmi
298SUBDIR+=	aibs
299SUBDIR+=	apei
300SUBDIR+=	asus
301SUBDIR+=	fujbp
302SUBDIR+=	fujhk
303SUBDIR+=	hpacel
304SUBDIR+=	hpqlb
305SUBDIR+=	thinkpad
306SUBDIR+=	wmidell
307SUBDIR+=	wmieeepc
308SUBDIR+=	wmihp
309SUBDIR+=	wmimsi
310.endif
311
312.include "${.CURDIR}/../compat/netbsd32/netbsd32.mk"
313.if ${COMPAT_USE_NETBSD32} != "no"
314
315SUBDIR+=	compat_netbsd32
316SUBDIR+=	compat_netbsd32_09	compat_netbsd32_12
317SUBDIR+=	compat_netbsd32_13	compat_netbsd32_16
318SUBDIR+=	compat_netbsd32_20	compat_netbsd32_30
319SUBDIR+=	compat_netbsd32_40	compat_netbsd32_50
320SUBDIR+=	compat_netbsd32_60	compat_netbsd32_80
321SUBDIR+=	compat_netbsd32_90	compat_netbsd32_100
322SUBDIR+=	compat_netbsd32_43
323SUBDIR+=	compat_netbsd32_coredump
324SUBDIR+=	compat_netbsd32_mqueue
325SUBDIR+=	compat_netbsd32_nfssrv
326SUBDIR+=	compat_netbsd32_ptrace
327SUBDIR+=	compat_netbsd32_quota
328SUBDIR+=	compat_netbsd32_quota_50
329SUBDIR+=	compat_netbsd32_raid
330SUBDIR+=	compat_netbsd32_sysvipc
331SUBDIR+=	compat_netbsd32_sysvipc_10
332SUBDIR+=	compat_netbsd32_sysvipc_14
333SUBDIR+=	compat_netbsd32_sysvipc_50
334
335.if ${MACHINE_ARCH} == "x86_64"
336SUBDIR+=	compat_linux32
337.endif
338
339.endif
340
341.if ${MACHINE_ARCH} == "i386"
342SUBDIR+=	ati_pcigart
343SUBDIR+=	compat_freebsd
344SUBDIR+=	mach64drm
345SUBDIR+=	mgadrm
346SUBDIR+=	nsclpcsio
347SUBDIR+=	padlock
348SUBDIR+=	r128drm
349#SUBDIR+=	radeondrm
350SUBDIR+=	savagedrm
351SUBDIR+=	sisdrm
352SUBDIR+=	tdfxdrm
353SUBDIR+=	viac7temp
354.endif
355
356.if ${MACHINE_ARCH} == "i386" || \
357    ${MACHINE_ARCH} == "x86_64" || \
358    ${MACHINE_CPU} == "aarch64"
359SUBDIR+=	amdgpu
360SUBDIR+=	drmkms
361SUBDIR+=	drmkms_linux
362SUBDIR+=	drmkms_pci
363SUBDIR+=	drmkms_sched
364SUBDIR+=	drmkms_ttm
365.endif
366
367.if ${MACHINE_ARCH} == "i386" || \
368    ${MACHINE_ARCH} == "x86_64"
369SUBDIR+=	drm
370SUBDIR+=	compat_linux
371SUBDIR+=	drmkms_agp
372SUBDIR+=	i915drm
373SUBDIR+=	i915drmkms
374SUBDIR+=	viadrmums
375#
376# ISA modules
377#
378SUBDIR+=	aps
379SUBDIR+=	finsio
380SUBDIR+=	itesio
381SUBDIR+=	lm
382SUBDIR+=	lm_isa
383SUBDIR+=	lm_isa_common
384SUBDIR+=	lm_wbsio
385SUBDIR+=	wbsio
386.endif
387
388.if ${MACHINE_CPU} == "aarch64"
389SUBDIR+=	compat_linux
390SUBDIR+=	compat_linux32
391.endif
392
393.if ${MACHINE_CPU} == "m68k"
394SUBDIR+=	compat_aoutm68k
395#SUBDIR+=	compat_linux
396#SUBDIR+=	compat_sunos
397.endif
398
399.if ${MACHINE_ARCH} == "i386" || \
400    ${MACHINE_ARCH} == "x86_64" || \
401    ${MACHINE_ARCH} == "sparc64"
402SUBDIR+=	pwdog
403.endif
404
405.include <bsd.own.mk>
406
407#
408# NetBSD/usermode support
409#
410.if ${MACHINE_ARCH} == "i386" || \
411    ${MACHINE_ARCH} == "x86_64"
412SUBDIR+=	../arch/usermode/modules/syscallemu
413.endif
414
415# we need our device mapper for LVM
416.if (${MKLVM} != "no")
417SUBDIR+= 	dm
418.endif
419
420.if (${MKDTRACE} != "no")
421SUBDIR+=	cyclic
422SUBDIR+=	dtrace
423.endif
424
425SUBDIR+=        sodium
426
427# we need solaris for the dtrace and zfs modules
428.if (${MKDTRACE} != "no" || ${MKZFS} != "no")
429SUBDIR+=        solaris
430.endif
431
432.if (${MKZFS} != "no")
433SUBDIR+=	zfs
434.endif
435
436.if (${MKCOMPATMODULES} != "no")
437SUBDIR+=	arch
438.endif
439
440#
441# DTV modules
442#
443SUBDIR+=	dtv
444SUBDIR+=	dtv_math
445.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64"
446# tuners/demods
447SUBDIR+=	au8522
448SUBDIR+=	cx24227
449SUBDIR+=	lg3303
450SUBDIR+=	mt2131
451SUBDIR+=	nxt2k
452SUBDIR+=	tvpll
453SUBDIR+=	xc3028
454SUBDIR+=	xc5k
455SUBDIR+=	zl10353
456# hardware drivers
457SUBDIR+=	auvitek
458SUBDIR+=	coram
459SUBDIR+=	cxdtv
460SUBDIR+=	emdtv
461
462# Intel Integrated Memory Controller and associated SMBus
463# (Experimental)
464SUBDIR+=	imc
465SUBDIR+=	imcsmb
466
467.endif
468
469.if (${MKISCSI} != "no")
470SUBDIR+=	iscsi
471.endif
472
473# For now, all of these are disabled, pending resolution of how to deal
474# with attachment-specific modules and bus-specific modules (as opposed
475# to machine- or architecture-specific modules)
476
477.if 0
478SUBDIR+=	aac
479SUBDIR+=	amr
480SUBDIR+=	ataraid
481SUBDIR+=	cac
482SUBDIR+=	cac_eisa
483SUBDIR+=	cac_pci
484SUBDIR+=	emuxki
485SUBDIR+=	if_aq
486SUBDIR+=	if_vioif
487SUBDIR+=	if_vmx
488SUBDIR+=	ld
489SUBDIR+=	ld_aac
490SUBDIR+=	ld_amr
491SUBDIR+=	ld_ataraid
492SUBDIR+=	ld_cac
493SUBDIR+=	ld_icp
494SUBDIR+=	ld_mlx
495SUBDIR+=	ld_sdmmc
496SUBDIR+=	ld_twa
497SUBDIR+=	ld_twe
498SUBDIR+=	ld_virtio
499SUBDIR+=	mlx
500SUBDIR+=	mlx_eisa
501SUBDIR+=	mlx_pci
502SUBDIR+=	ld_nvme
503SUBDIR+=	nvme
504SUBDIR+=	twa
505SUBDIR+=	twe
506SUBDIR+=	vio9p
507SUBDIR+=	viomb
508SUBDIR+=	virtio
509SUBDIR+=	virtio_pci
510SUBDIR+=	vioscsi
511.endif
512
513SUBDIR+=	examples	# build these regularly to avoid bit-rot
514
515.endif
516
517.include <bsd.subdir.mk>
518