.PHONY : all clean sloc lint config vmm bootloader uefiloader bios

all: vmm bootloader uefiloader 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

uefiloader:
	if which x86_64-w64-mingw32-gcc; then make -C uefiloader; fi

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
	make -C uefiloader clean
	LC_ALL=C make -C bios clean

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

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