# SPDX-License-Identifier: GPL-2.0+
#
# (C) Copyright 2002-2006
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.

# fw_printenv is supposed to run on the target system, which means it should be
# built with cross tools. Although it may look weird, we only replace "HOSTCC"
# with "CC" here for the maximum code reuse of scripts/Makefile.host.
override HOSTCC = $(CC)

# Compile for a hosted environment on the target
HOST_EXTRACFLAGS  = -I$(srctree)/tools \
		$(patsubst -I%,-idirafter%, $(filter -I%, $(UBOOTINCLUDE))) \
		-idirafter $(srctree)/tools/env \
		-DUSE_HOSTCC \
		-DTEXT_BASE=$(TEXT_BASE)

ifeq ($(CONFIG_ARCH_NOVATEK),y)
include $(NVT_PRJCFG_MODEL_CFG)

HOST_EXTRACFLAGS += -D_BOARD_DRAM_ADDR_=$(BOARD_DRAM_ADDR) \
		    -D_BOARD_DRAM_SIZE_=$(BOARD_DRAM_SIZE) \
		    -D_BOARD_SHMEM_ADDR_=$(BOARD_SHMEM_ADDR) \
		    -D_BOARD_SHMEM_SIZE_=$(BOARD_SHMEM_SIZE) \
		    -D_BOARD_FDT_ADDR_=$(BOARD_FDT_ADDR) \
		    -D_BOARD_FDT_SIZE_=$(BOARD_FDT_SIZE) \
		    -D_BOARD_LINUXTMP_ADDR_=$(BOARD_LINUXTMP_ADDR) \
		    -D_BOARD_LINUXTMP_SIZE_=$(BOARD_LINUXTMP_SIZE) \
		    -D_BOARD_LINUX_MAXBLK_ADDR_=$(BOARD_LINUX_MAXBLK_ADDR) \
		    -D_BOARD_LINUX_MAXBLK_SIZE_=$(BOARD_LINUX_MAXBLK_SIZE) \
		    -D_BOARD_UBOOT_ADDR_=$(BOARD_UBOOT_ADDR) \
		    -D_BOARD_UBOOT_SIZE_=$(BOARD_UBOOT_SIZE) \
		    -D_BOARD_LOADER_ADDR_=$(BOARD_LOADER_ADDR) \
		    -D_BOARD_LOADER_SIZE_=$(BOARD_LOADER_SIZE) \
		    -D_BOARD_EXTDRAM_ADDR_=$(BOARD_EXTDRAM_ADDR) \
		    -D_BOARD_EXTDRAM_SIZE_=$(BOARD_EXTDRAM_SIZE) \
		    -D_BOARD_LINUX_ADDR_=$(BOARD_LINUX_ADDR) \
		    -D_BOARD_LINUX_SIZE_=$(BOARD_LINUX_SIZE) \
		    -D_BIN_NAME_='"$(BIN_NAME)"' \
		    -D_BIN_NAME_T_='"$(BIN_NAME_T)"' \
		    -D_CHIP_$(CHIP)_ \
		    -D_CHIP_NAME_='"NT$(CHIP)"' \
		    -D_$(EMBMEM)_ \
		    -D_EMBMEM_BLK_SIZE_=$(EMBMEM_BLK_SIZE) \
		    -D_$(NVT_ROOTFS_TYPE)_ \
		    -D_$(NVT_LINUX_SMP)_ \
		    -D_$(NVT_UBOOT_ENV_IN_STORG_SUPPORT)_
endif

ifeq ($(MTD_VERSION),old)
HOST_EXTRACFLAGS += -DMTD_OLD
endif

always := fw_printenv
hostprogs-y := fw_printenv

lib-y += fw_env.o \
	crc32.o ctype.o linux_string.o \
	env_attr.o env_flags.o

fw_printenv-objs := fw_env_main.o $(lib-y)

quiet_cmd_crosstools_strip = STRIP   $^
      cmd_crosstools_strip = $(STRIP) $^; touch $@

$(obj)/.strip: $(obj)/fw_printenv
	$(call cmd,crosstools_strip)

always += .strip
