include ../../Config.mk

SUBDIRS  = 
PRG	 = eric
ifeq ($(PP_FEAT_PURE_C_ONLY),1)
PRGSRCS  = main.c xdefs.c
else
PRGSRCS  = main.cpp xdefs.c
# use c++ for linking
LINK     = $(CXX)
endif

DEPLIBS  = $(DESTDIR)/lib/liberic_pthread.a \
	   $(DESTDIR)/lib/liberic_config_prg.a \
	   $(DESTDIR)/lib/libget_config.a \
	   $(DESTDIR)/lib/libconfig_rtceep.a \
	   $(DESTDIR)/lib/libsmbmount.so \
	   $(DESTDIR)/lib/libdhcpcd.so \
	   $(DESTDIR)/lib/libradius.a \
	   $(DESTDIR)/lib/libldap_r.a \
	   $(DESTDIR)/lib/liblber.a \
	   $(DESTDIR)/lib/libesmtp.a \
	   $(DESTDIR)/lib/libssl.a \
	   $(DESTDIR)/lib/libcrypto.a \
	   $(DESTDIR)/lib/libjpeg.a \
	   $(DESTDIR)/lib/libipq.a \
	   $(DESTDIR)/lib/libbb.a \
           $(DESTDIR)/lib/liblutil.a \


ifneq ($(PP_BOARD),kxng)
ifneq ($(PP_PRODUCT),kx2)
DEPLIBS += $(DESTDIR)/lib/libz.a
endif           
endif           

           
SNMPDEPLIBS +=	$(DESTDIR)/lib/libsnmpd.so \
		$(DESTDIR)/lib/libsnmptrap.so \
		$(DESTDIR)/lib/libsnmp.a

# mind the else! - this is a hack to avoid specifiing the libs more than once
ifeq ($(PP_FEAT_SNMP_AGENT),1)
DEPLIBS += $(SNMPDEPLIBS)
else
ifeq ($(PP_FEAT_SNMP_TRAP),1)
DEPLIBS += $(SNMPDEPLIBS)
else
ifeq ($(PP_FEAT_SNMP_TRAPD),1)
DEPLIBS += $(SNMPDEPLIBS)
endif
endif
endif

NETSNMPDEPLIBS +=	$(DESTDIR)/lib/libnetsnmpd.so \
		$(DESTDIR)/lib/libnetsnmphelpers.a \
		$(DESTDIR)/lib/libnetsnmptrap.so \
		$(DESTDIR)/lib/libnetsnmp.a

# mind the else! - this is a hack to avoid specifiing the libs more than once
ifeq ($(PP_FEAT_NETSNMP_AGENT),1)
DEPLIBS += $(NETSNMPDEPLIBS)
else
ifeq ($(PP_FEAT_NETSNMP_TRAP),1)
DEPLIBS += $(NETSNMPDEPLIBS)
else
ifeq ($(PP_FEAT_NETSNMP_TRAPD),1)
DEPLIBS += $(NETSNMPDEPLIBS)
endif
endif
endif

ifeq ($(PP_FEAT_SSH),1)
DEPLIBS += $(DESTDIR)/lib/libdropbear.so
endif
           
DEVLIBS =
DEVLIBS2 =

ifeq ($(PP_FEAT_WLAN),1)
DEPLIBS += $(DESTDIR)/lib/libwpa.so
DEVLIBS += -lwpa
endif

ifeq ($(PP_FEAT_SIMPLERFB_SUPPORT),1)
DEVLIBS += -lpp_simplerfb
endif

ifeq ($(PP_FEAT_AD_ATMEL),1)
DEVLIBS += -lpp_sense
endif

ifeq ($(PP_FEAT_PCI_ADC),1)
DEVLIBS += -lpp_sense
endif

ifeq ($(PP_FEAT_CIM),1)
DEVLIBS += -lpp_cim
endif

ifeq ($(PP_FEAT_NETEVENT),1)
DEVLIBS += -lpp_netevent
endif

ifeq ($(PP_FEAT_CLP),1)
DEVLIBS += -lpp_clp
endif

ifeq ($(PP_PRODUCT),smartipc)
DEVLIBS += -lpp_minicom
endif

ifeq ($(PP_PRODUCT),flashx4)
DEVLIBS += -lpp_flashprog
endif

ifeq ($(PP_PRODUCT),ripckimxn)
DEVLIBS += -lpp_rpc
endif

ifeq ($(PP_FEAT_WS_MANAGEMENT),1)
DEVLIBS += -lpp_wsman
endif

ifeq ($(PP_FEAT_IPMI_SERVER),1)
DEVLIBS += -lpp_bmc_core \
	   -lpp_bmc_loopi \
	   -lpp_bmc_lanserv

ifneq ($(PP_FEAT_BMC_OEMCMDS_ONLY),1)	   
DEVLIBS += -lpp_bmc_hardware \
	   -lpp_bmc_sensor
endif	   
ifeq ($(PP_FEAT_IPMI_SERVER_SMI_CHAN),1)
DEVLIBS += -lpp_bmc_smi
endif
ifeq ($(PP_FEAT_IPMI_SERVER_SER_CHAN),1)
DEVLIBS += -lpp_bmc_serial
endif
ifeq ($(PP_FEAT_IPMI_SERVER_SCSI_CHAN),1)
DEVLIBS += -lpp_bmc_scsi_ipmi
endif
endif

ifeq ($(PP_FEAT_REMOTE_CONSOLE), 1)
DEVLIBS += -lpp_km -lpp_grab -lpp_kvm -lpp_usb -lpp_vsc -lpp_rfb
endif


ifeq ($(PP_FEAT_POWERSWITCH),1)
DEVLIBS += -lpp_powerswitch
endif

ifeq ($(PP_FEAT_TERMINAL_CONSOLE),1)
DEVLIBS += -leric_term
endif

ifeq ($(PP_FEAT_BAYTECH_2_IPMI),1)
DEVLIBS += -lpp_baytech
endif

ifeq ($(PP_FEAT_IPMI_SERVER_PRIMARY_IPMB_CHAN), 1)
DEVLIBS += -lpp_bmc_ipmb
endif

ifeq ($(PP_FEAT_RDM_SUPPORT), 1)
DEVLIBS += -lpp_rdm_eric -lpp_CSC2 -lpp_CC -lpp_Network -lpp_RDM -lpp_SXML -lpp_Timer -lpp_SIO -lpp_OS_Port -lpp_Utility 
endif

ifeq ($(PP_FEAT_DIAGNOS),1)
DEVLIBS += -lpp_diag
endif

DEVLIBS += -lpp_intl

SNMPDEVLIBS = -lsnmpd -lsnmptrap -lsnmp
#
# mind the else! - this is a hack to avoid specifiing the libs more than once
ifeq ($(PP_FEAT_SNMP_AGENT),1)
DEVLIBS2 += $(SNMPDEVLIBS)
else
ifeq ($(PP_FEAT_SNMP_TRAP),1)
DEVLIBS2 += $(SNMPDEVLIBS)
else
ifeq ($(PP_FEAT_SNMP_TRAPD),1)
DEVLIBS2 += $(SNMPDEVLIBS)
endif
endif
endif

NETSNMPDEVLIBS = -lnetsnmpd -lnetsnmphelpers -lnetsnmptrap -lnetsnmp
#
# mind the else! - this is a hack to avoid specifiing the libs more than once
ifeq ($(PP_FEAT_NETSNMP_AGENT),1)
DEVLIBS2 += $(NETSNMPDEVLIBS)
else
ifeq ($(PP_FEAT_NETSNMP_TRAP),1)
DEVLIBS2 += $(NETSNMPDEVLIBS)
else
ifeq ($(PP_FEAT_NETSNMP_TRAPD),1)
DEVLIBS2 += $(NETSNMPDEVLIBS)
endif
endif
endif

ifeq ($(PP_FEAT_SSH),1)
DEVLIBS2 += -ldropbear
endif

# Some libs are specified more than once - this is required on arm I think.
# Maybe we should fix the linker.
LIBS     = -L$(DESTDIR)/lib \
	   -ldl \
	   -leric_session -leric_webs -lpp_serial -leric_cert \
	   -leric_net -lpp_firmware -leric_cron \
	   -leric_notify -leric_misc -leric_config -lpp_hal -lpp_ipc \
	   -lpp_bio -lpp_setup_proto -lpp_disconf -lpp_ldap -lpp_smtp \
	   -lintl -lpp_intl -lpp_ipmi -lm \
	   -lpp_um -lpp_cfg -lpp_cd -lpp_fa -lpp_base -lpp_zip \
	   $(DEVLIBS) \
	   -lintl -lutil -lcrypt -ldl -lpthread \
	   -leric_config_prg -lget_config -lconfig_rtceep -lcfg_conv \
	   -leric_pthread \
	   $(DEVLIBS2) \
	   -lsmbmount -ldhcpcd -lradius -lldap_r -llber \
	   -lesmtp -lssl -lcrypto -ljpeg -lz -lipq -lbb -llutil

ifeq ($(PP_PRODUCT),kx2)
LIBS += -lpp_cim_proto -lpp_Utility -lpp_OS_Port -lpp_portmgr
endif

ifeq ($(PP_FEAT_PDU),1)
LIBS += -lgd
DEPLIBS += $(DESTDIR)/lib/libgd.a 
endif

ifeq ($(PP_BUILD_TYPE), dmalloc)
DEPLIBS += $(DESTDIR)/lib/libdmallocth.a
LIBS += -ldmallocth
endif

include $(PP_BUILD_SYS_DIR)/Top.mk

install-local::
	rm -f $(DESTDIR)$(BINDIR)/eric_config
	ln -s $(PRG) $(DESTDIR)$(BINDIR)/eric_config
	rm -f $(DESTDIR)$(BINDIR)/get_config
	ln -s $(PRG) $(DESTDIR)$(BINDIR)/get_config
	rm -f $(DESTDIR)$(BINDIR)/config_rtceep
	ln -s $(PRG) $(DESTDIR)$(BINDIR)/config_rtceep
	rm -f $(DESTDIR)$(BINDIR)/snmptrap
	ln -s $(PRG) $(DESTDIR)$(BINDIR)/snmptrap
	rm -f $(DESTDIR)$(BINDIR)/snmptrapd
	ln -s $(PRG) $(DESTDIR)$(BINDIR)/snmptrapd
	rm -f $(DESTDIR)$(BINDIR)/snmpd
	ln -s $(PRG) $(DESTDIR)$(BINDIR)/snmpd
	rm -f $(DESTDIR)$(BINDIR)/dropbear
	ln -s $(PRG) $(DESTDIR)$(BINDIR)/dropbear
	rm -f $(DESTDIR)$(BINDIR)/dropbearkey
	ln -s $(PRG) $(DESTDIR)$(BINDIR)/dropbearkey
	rm -f $(DESTDIR)$(BINDIR)/dhcpcd
	ln -s $(PRG) $(DESTDIR)$(BINDIR)/dhcpcd
	rm -f $(DESTDIR)$(BINDIR)/smbmnt
	ln -s $(PRG) $(DESTDIR)$(BINDIR)/smbmnt
	rm -f $(DESTDIR)$(BINDIR)/smbmount
	ln -s $(PRG) $(DESTDIR)$(BINDIR)/smbmount
ifeq ($(PP_FEAT_WLAN),1)
	rm -f $(DESTDIR)$(BINDIR)/wpa_supplicant
	ln -s $(PRG) $(DESTDIR)$(BINDIR)/wpa_supplicant
	rm -f $(DESTDIR)$(BINDIR)/wpa_cli
	ln -s $(PRG) $(DESTDIR)$(BINDIR)/wpa_cli
endif
ifeq ($(PP_FEAT_BAYTECH_2_IPMI),1)
	rm -f $(DESTDIR)$(BINDIR)/baytech
	ln -s $(PRG) $(DESTDIR)$(BINDIR)/baytech
endif

clean-local::
	rm -f main.c
	
ifeq ($(PP_FEAT_PURE_C_ONLY),1)
main.c:
	ln -s main.cpp main.c
endif
