top ?= $(abspath ../..)
objutil ?= $(top)/util

CONFIG_FMD_GENPARSER ?= n

HOSTCC ?= $(CC)
PREFIX ?= /usr/local
BINDIR ?= $(PREFIX)/bin
INSTALL ?= /usr/bin/env install
OBJCOPY ?= objcopy

VBOOT_SOURCE ?= $(top)/3rdparty/vboot

.PHONY: all
all: cbfstool fmaptool rmodtool ifwitool cbfs-compression-tool

cbfstool: $(objutil)/cbfstool/cbfstool

fmaptool: $(objutil)/cbfstool/fmaptool

rmodtool: $(objutil)/cbfstool/rmodtool

ifwitool: $(objutil)/cbfstool/ifwitool

cbfs-compression-tool: $(objutil)/cbfstool/cbfs-compression-tool

.PHONY: clean cbfstool fmaptool rmodtool ifwitool cbfs-compression-tool
clean:
	$(RM) fmd_parser.c fmd_parser.h fmd_scanner.c fmd_scanner.h
	$(RM) $(objutil)/cbfstool/cbfstool $(cbfsobj)
	$(RM) $(objutil)/cbfstool/fmaptool $(fmapobj)
	$(RM) $(objutil)/cbfstool/rmodtool $(rmodobj)
	$(RM) $(objutil)/cbfstool/ifwitool $(ifwiobj)
	$(RM) $(objutil)/cbfstool/cbfs-compression-tool $(cbfscompobj)

linux_trampoline.c: linux_trampoline.S
	rm -f linux_trampoline.c
	$(CC) -m32 -o linux_trampoline linux_trampoline.S -ffreestanding -nostdlib -nostdinc -Wl,--defsym=_start=0
	$(OBJCOPY) -Obinary -j .data linux_trampoline trampoline
	echo "/* This file is automatically generated. Do not manually change */" > trampoline.c
	xxd -c 16 -i trampoline >> trampoline.c
	mv trampoline.c linux_trampoline.c
	rm linux_trampoline trampoline

.PHONY: install
install: all
	mkdir -p $(DESTDIR)$(BINDIR)
	$(INSTALL) cbfstool $(DESTDIR)$(BINDIR)
	$(INSTALL) fmaptool $(DESTDIR)$(BINDIR)
	$(INSTALL) rmodtool $(DESTDIR)$(BINDIR)
	$(INSTALL) ifwitool $(DESTDIR)$(BINDIR)
	$(INSTALL) cbfs-compression-tool $(DESTDIR)$(BINDIR)

ifneq ($(V),1)
.SILENT:
endif

include Makefile.inc
