.PHONY : all clean sloc lint config vmm bootloader bios

all: vmm bootloader bios

JOBS=$(shell nproc || echo 1)

vmm:
	test -f vmm/.config || cp vmm_config vmm/.config
	make -C vmm -j $(JOBS)
	cp vmm/bitvisor.elf vmm.elf

bootloader:
	make -C bootloader

bios:
	test -f bios/.config || cp bios_config bios/.config
	LC_ALL=C make -C bios
	cp bios/out/bios.bin bios.bin

config:
	test -f vmm/.config || cp vmm_config vmm/.config
	make -C vmm config

biosconfig:
	test -f bios/.config || cp bios_config bios/.config
	LC_ALL=C make -C bios menuconfig

clean:
	make -C vmm clean
	make -C bootloader clean
	LC_ALL=C make -C bios clean

lint:
	make -C vmm lint
	make -C bootloader lint

initquilt:
	./initquilt.sh vmm
	./initquilt.sh bios

# Count source lines of code
# http://www.dwheeler.com/sloccount
sloc :
	sloccount .
