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