Files

51 lines
1.5 KiB
Makefile

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