51 lines
1.2 KiB
Makefile
51 lines
1.2 KiB
Makefile
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 $^
|