include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk

TARGET_CFLAGS += -fpie
PKG_NAME:=ntgr_nvram
PKG_RELEASE:=1

include $(INCLUDE_DIR)/local-development.mk
ifeq ($(DUMP)$(PKG_VERSION),)
PKG_REV:=
PKG_VERSION:=
endif

PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)

include $(INCLUDE_DIR)/package.mk

define Package/ntgr_nvram
  SECTION:=NETGEAR
  CATEGORY:=NETGEAR Proprietary software
  TITLE:= NETGEAR NVRAM Utility
  DEPENDS:=+ntgr_wrapper_debug +librpc +ntgr_ss_lib +libuci
endef

define Package/ntgr_nvram/description
  NETGEAR NVRAM utility to get, set, unset and commit the config parameters in NVRAM partition
endef

define Build/Prepare
	echo $(PKG_BUILD_DIR) $(PWD)
	mkdir -p $(PKG_BUILD_DIR)
	$(CP) ./src/* $(PKG_BUILD_DIR)/
	$(LN) $(STAGING_DIR)/ntgr_utils/debug.c $(PKG_BUILD_DIR)/debug.c
	$(LN) $(STAGING_DIR)/ntgr_utils/debug.h $(PKG_BUILD_DIR)/debug.h
endef

define Build/Configure
endef

define Build/Compile
	$(MAKE) -C $(PKG_BUILD_DIR) \
		CC="$(TARGET_CC)" \
		CFLAGS="$(TARGET_CFLAGS) -Wall" \
		LDFLAGS="$(TARGET_LDFLAGS) -lnvram -lrpc -lntgrnvram -lntgrsslb -luci"
endef

INSTALL_IPK_HEADERS=ntgr_nvram.h

define Package/ntgr_nvram/install
	$(INSTALL_DIR) $(1)/usr/sbin
	$(INSTALL_DIR) $(1)/usr/lib
	$(CP) $(PKG_BUILD_DIR)/libnvram.so $(1)/usr/lib
	$(CP) $(PKG_BUILD_DIR)/libntgrnvram.so $(1)/usr/lib
	$(INSTALL_BIN) $(PKG_BUILD_DIR)/nvram $(1)/usr/sbin
	$(INSTALL_DIR) $(1)/usr/include/nvram
	$(if $(INSTALL_IPK_HEADERS),$(CP) $(foreach header,$(INSTALL_IPK_HEADERS),$(PKG_BUILD_DIR)/$(header)) $(1)/usr/include/nvram)
endef

INSTALL_LIBS:=libnvram libntgrnvram 
INSTALL_HEADERS=nvram_func.h uthash.h debug.h ntgr_nvram.h ntgr_nvram_params.h 

define Build/InstallDev
	$(INSTALL_DIR) $(1)/usr/lib
	$(INSTALL_DIR) $(1)/usr/include/nvram
	$(if $(INSTALL_LIBS),$(CP) $(foreach lib,$(INSTALL_LIBS),$(PKG_BUILD_DIR)/$(lib).so) $(1)/usr/lib)
	$(if $(INSTALL_HEADERS),$(CP) $(foreach header,$(INSTALL_HEADERS),$(PKG_BUILD_DIR)/$(header)) $(1)/usr/include/nvram)
endef

$(eval $(call BuildPackage,ntgr_nvram))
