CROSS_COMPILE_PREFIX ?= $(CONFIG_XMEDIA_USR_ARM_TOOLCHAINS)
CC        := $(CROSS_COMPILE_PREFIX)-gcc
CROSS_STRIP := $(CROSS_COMPILE_PREFIX)-strip


UBOOT_ENV_TOOL  := fw_printenv
UBOOTENV_BUILD  := $(ROOTFS_BUILDDIR)/uboot_env

UBOOTENV_INCDIR          := $(ROOTFS_SRCDIR)/uboot_env/include
UBOOTENV_SRCDIR          := $(ROOTFS_SRCDIR)/uboot_env/source

UBOOTENV_SRC_OBJ_DIR := $(ROOTFS_SRCDIR)/uboot_env

CFLAGS  := -Wall -O2 -I$(UBOOTENV_INCDIR)



SRCS := \
	$(UBOOTENV_SRCDIR)/crc32.c \
	$(UBOOTENV_SRCDIR)/fw_env.c \
	$(UBOOTENV_SRCDIR)/fw_env_main.c
OBJS := $(patsubst $(UBOOTENV_SRCDIR)/%.c, $(UBOOTENV_BUILD)/%.o, $(SRCS))

rootfs_unstrip: $(ROOTFS_PREFIX)/bin/$(UBOOT_ENV_TOOL)


$(ROOTFS_PREFIX)/bin/$(UBOOT_ENV_TOOL): $(UBOOTENV_BUILD)/.built
	@mkdir -p $(@D)
	cp -f $(UBOOTENV_BUILD)/$(UBOOT_ENV_TOOL) $(ROOTFS_PREFIX)/bin/
	cd $(@D) && ln -sf $(UBOOT_ENV_TOOL) fw_setenv
	touch $@

$(UBOOTENV_BUILD)/.built: $(OBJS) uboot_env_prepare
	$(CC) $(OBJS) -o $(UBOOTENV_BUILD)/$(UBOOT_ENV_TOOL)
	$(CROSS_STRIP) $(UBOOTENV_BUILD)/$(UBOOT_ENV_TOOL)
	@echo "Link and strip $(UBOOT_ENV_TOOL) to $(UBOOTENV_BUILD)"
	touch $@

uboot_env_prepare:
	mkdir -p $(UBOOTENV_BUILD) >/dev/null 2>&1
	if [ -e $(UBOOTENV_SRC_OBJ_DIR)/*.o ]; then \
		cp -af $(UBOOTENV_SRC_OBJ_DIR)/*.o $(UBOOTENV_BUILD)/; \
	fi
	@echo "Prepare uboot_env build dir: $(UBOOTENV_BUILD)"

$(UBOOTENV_BUILD)/%.o: $(UBOOTENV_SRCDIR)/%.c
	@mkdir -p $(@D)
	$(CC) $(CFLAGS) -c $< -o $@
	@echo "Compiled: $< -> $@"

.PHONY: rootfs_unstrip uboot_env_prepare