summaryrefslogtreecommitdiff
path: root/Makefile
blob: 172f4507bf631c193533607a78faa49ce60b9856 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
include config-host.mak

all: requirements info build

requirements:
	@which xsltproc &>/dev/null || ( echo ; echo "Please install libxslt2"; \
			echo; exit 1 )

info:
	@echo "Building OpenBIOS for $(TARGETS)"

clean:
	@echo "Cleaning up..."
	@for dir in $(ODIRS); do \
		$(MAKE) -C $$dir clean; \
	done

build: start-build
	@for dir in $(ODIRS); do \
		$(MAKE) -C $$dir > $$dir/build.log 2>&1 && echo "ok." || \
		( echo "error:"; tail -15 $$dir/build.log; exit 1 ) \
	done

SUBDIR_RULES=$(patsubst %,subdir-%, $(TARGETS))
SUBDIR_MAKEFLAGS=$(if $(V),,--no-print-directory)

quiet-command = $(if $(V),$1,$(if $(2),@echo $2 && $1, @$1))

build-verbose: start-build $(SUBDIR_RULES)

subdir-%:
	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C obj-$* V="$(V)" all,)

start-build:
	@echo "Building..."

run:
	@echo "Running..."
	@for dir in $(ODIRS); do \
		$$dir/openbios-unix $$dir/openbios-unix.dict; \
	done


# The following two targets will only work on x86 so far.
# 
$(ODIR)/openbios.iso: $(ODIR)/openbios.multiboot $(ODIR)/openbios-x86.dict
	@mkisofs -input-charset UTF-8 -r -b boot/grub/stage2_eltorito -no-emul-boot \
	-boot-load-size 4 -boot-info-table -o $@ utils/iso $^

runiso: $(ODIR)/openbios.iso
	qemu -cdrom $^