#
#  Netgear System Software : Package Make File for SOAP AGENT 
#
#  Copyright 2019 Netgear Inc.
#  All Rights Reserved.
#
#  NETGEAR WIRELESS SYSTEM SOFTWARE @ NETGEAR
#  THIS SOFTWARE CONTAINS CONFIDENTIAL INFORMATION AND
#  TRADE SECRETS OF NETGEAR INC.
#  USE, DISCLOSURE OR REPRODUCTION IS PROHIBITED WITHOUT
#  THE PRIOR EXPRESS WRITTEN PERMISSION OF NETGEAR INC.
#


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

TARGET_CFLAGS += -fpie
PKG_NAME:=ntgr_soapagent
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_soapagent
  SECTION:=NETGEAR
  CATEGORY:=NETGEAR Proprietary software
  TITLE:= NETGEAR Soap Agent
  DEPENDS:= +librpc +mxml +d2 +libopenssl +libcrypto
endef

define Package/ntgr_soapagent/description
  NETGEAR Soap Agent to process and respond to router soap requests
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) -lrpc -lmxml -ld2lib -lcrypto"
endef

INSTALL_HEADERS=data_types.h orbi_error.h soap_agent.h rpc.h

define Build/InstallDev
	$(INSTALL_DIR) $(1)/usr/include/soapagent
	$(if $(INSTALL_HEADERS),$(CP) $(foreach header,$(INSTALL_HEADERS),$(PKG_BUILD_DIR)/$(header)) $(1)/usr/include/soapagent)
endef

define Package/ntgr_soapagent/install
	$(INSTALL_DIR) $(1)/usr/sbin/cgi-bin
	$(INSTALL_DIR) $(1)/www/soap/
	$(INSTALL_BIN) $(PKG_BUILD_DIR)/soap_agent $(1)/usr/sbin/cgi-bin
	$(LN) ../../usr/sbin/cgi-bin/soap_agent $(1)/www/soap/server_sa
	$(INSTALL_DIR) $(1)/usr/local/bin/
	$(INSTALL_BIN) ./files/TZ.sh $(1)/usr/local/bin/
endef

$(eval $(call BuildPackage,ntgr_soapagent))
