#
# Makefile for snmpd
#

top_builddir	= ..
mysubdir=agent

# use GNU vpath, if available, to only set a path for source and headers
# VPATH will pick up objects too, which is bad if you are sharing a
# source dir...
@GNU_vpath@ %.h $(srcdir)
@GNU_vpath@ %.c $(srcdir)
# fallback to regular VPATH for non-gnu...
@NON_GNU_VPATH@ $(srcdir)

#
# what to install
#
SUBDIRS=helpers mibgroup
FTSUBDIRS=mibgroup helpers

INSTALLSBINPROGS= @SNMPD@
INSTALLLIBS	= libnetsnmpagent.$(LIB_EXTENSION)$(LIB_VERSION)
INSTALLPOSTLIBS	= libnetsnmpmibs.$(LIB_EXTENSION)$(LIB_VERSION)

INCLUDESUBDIR=agent
HEADERS=\
	agent_read_config.h \
	agent_registry.h \
	agent_index.h \
	agent_sysORTable.h \
	agent_trap.h \
	auto_nlist.h \
	ds_agent.h \
	snmp_agent.h \
	snmp_vars.h \
	var_struct.h \
	agent_handler.h \
	net-snmp-agent-includes.h \
	mib_modules.h \
	agent_callbacks.h \
	sysORTable.h \
	all_helpers.h \
	baby_steps.h \
	bulk_to_next.h \
	cache_handler.h \
	debug_handler.h \
	instance.h \
	mode_end_call.h \
	multiplexer.h \
	null.h \
	old_api.h \
	read_only.h \
	row_merge.h \
	scalar.h \
	scalar_group.h \
	serialize.h \
	snmp_get_statistic.h \
	stash_cache.h \
	stash_to_next.h \
	table_array.h \
	table_container.h \
	table.h \
	table_data.h \
	table_dataset.h \
	table_tdata.h \
	table_iterator.h \
	watcher.h

HEADERSONLY=mfd.h set_helper.h

INCLUDESUBDIRHEADERS=$(HEADERS) $(HEADERSONLY)

INSTALLBUILTSUBDIRHEADERS=../include/net-snmp/agent/mib_module_config.h \
			  ../include/net-snmp/agent/agent_module_config.h \
			mibgroup/mib_module_includes.h
INSTALLBUILTSUBDIR=agent

INCLUDEMIBGROUPDIR=agent/mibgroup
INCLUDEMIBGROUPDIRHEADERS=struct.h util_funcs.h util_funcs/header_generic.h \
	util_funcs/header_simple_table.h util_funcs/MIB_STATS_CACHE_TIMEOUT.h

OTHERINSTALL=installmibgroupheaders @EMBEDPERLINSTALL@
OTHERUNINSTALL=@EMBEDPERLUNINSTALL@

# XXX: need to install these  They're really UCD specific, however.
BROKEINSTALL= \
	mibgroup/struct.h \
	mibgroup/util_funcs.h \
	mibgroup/mibincl.h \
	mibgroup/ucd-snmp/dlmod.h \
	mibgroup/utilities/execute.h \
	mibgroup/header_complex.h

INSTALLUCDHEADERS= \
	agent_index.h	\
	agent_read_config.h \
	agent_registry.h \
	agent_sysORTable.h \
	agent_trap.h	\
	auto_nlist.h	\
	ds_agent.h	\
	header_complex.h \
	mibincl.h	\
	snmp_agent.h	\
	ucd-snmp-includes.h	\
	ucd-snmp-agent-includes.h \
	util_funcs.h	\
	var_struct.h

#
# how to build it info
#
USELIBS		= ../snmplib/libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION)
AGENTLIB	= libnetsnmpagent.$(LIB_EXTENSION)$(LIB_VERSION)
MIBLIB		= libnetsnmpmibs.$(LIB_EXTENSION)$(LIB_VERSION)

LAGENTLIBS	= @LAGENTLIBS@
LMIBLIBS	= @LMIBLIBS@
VAL_LIBS	= @VAL_LIBS@
PERLLDOPTS_FOR_APPS = @PERLLDOPTS_FOR_APPS@
PERLLDOPTS_FOR_LIBS = @PERLLDOPTS_FOR_LIBS@
LIBS		= $(USELIBS) @AGENTLIBS@ $(PERLLDOPTS_FOR_APPS) $(VAL_LIBS)
OUR_AGENT_LIBS	= $(AGENTLIB) $(MIBLIB) $(LIBS) @DLLIBS@
CPPFLAGS	= $(TOP_INCLUDES) -I. $(AGENT_INCLUDES) $(MIBGROUP_INCLUDES) \
		  $(SNMPLIB_INCLUDES) @CPPFLAGS@ 


#
# Objects
#

# libnetsnmpmibs objects.
@mibgroup_list_lo@
@mibgroup_list_ft@
@mibgroup_list_o@
@agentgroup_list_lo@
@agentgroup_list_ft@
@agentgroup_list_o@
FTMIBOBJS	= $(mibgroup_list_ft) mib_modules.ft auto_nlist.ft
LMIBOBJS	= $(mibgroup_list_lo) mib_modules.lo auto_nlist.lo
MIBOBJS		= $(mibgroup_list_o) mib_modules.o auto_nlist.o

# libnetsnmpagent objects
LIBAGENTOBJS= \
	helpers/all_helpers.o \
	helpers/baby_steps.o \
	helpers/bulk_to_next.o \
	helpers/cache_handler.o \
	helpers/debug_handler.o \
	helpers/instance.o \
	helpers/mode_end_call.o \
	helpers/multiplexer.o \
	helpers/null.o \
	helpers/old_api.o \
	helpers/read_only.o \
	helpers/row_merge.o \
	helpers/scalar.o \
	helpers/scalar_group.o \
	helpers/serialize.o \
	helpers/snmp_get_statistic.o \
	helpers/stash_cache.o \
	helpers/stash_to_next.o \
	helpers/table.o \
	helpers/table_array.o \
	helpers/table_container.o \
	helpers/table_data.o \
	helpers/table_dataset.o \
	helpers/table_iterator.o \
	helpers/table_row.o \
	helpers/table_tdata.o \
	helpers/watcher.o \
	agent_handler.o \
	agent_index.o \
	agent_read_config.o \
	agent_registry.o \
	agent_sysORTable.o \
	agent_trap.o \
	kernel.o \
	snmp_agent.o \
	snmp_vars.o \
	$(agentgroup_list_o) \
	@OTHERAGENTLIBOBJS@

LLIBAGENTOBJS= \
	helpers/all_helpers.lo \
	helpers/baby_steps.lo \
	helpers/bulk_to_next.lo \
	helpers/cache_handler.lo \
	helpers/debug_handler.lo \
	helpers/instance.lo \
	helpers/mode_end_call.lo \
	helpers/multiplexer.lo \
	helpers/null.lo \
	helpers/old_api.lo \
	helpers/read_only.lo \
	helpers/row_merge.lo \
	helpers/scalar.lo \
	helpers/scalar_group.lo \
	helpers/serialize.lo \
	helpers/snmp_get_statistic.lo \
	helpers/stash_cache.lo \
	helpers/stash_to_next.lo \
	helpers/table.lo \
	helpers/table_array.lo \
	helpers/table_container.lo \
	helpers/table_data.lo \
	helpers/table_dataset.lo \
	helpers/table_iterator.lo \
	helpers/table_row.lo \
	helpers/table_tdata.lo \
	helpers/watcher.lo \
	agent_handler.lo \
	agent_index.lo \
	agent_read_config.lo \
	agent_registry.lo \
	agent_sysORTable.lo \
	agent_trap.lo \
	kernel.lo \
	snmp_agent.lo \
	snmp_vars.lo \
	$(agentgroup_list_lo) \
	@OTHERAGENTLIBLOBJS@

LLIBAGENTFTS= \
	helpers/all_helpers.ft \
	helpers/baby_steps.ft \
	helpers/bulk_to_next.ft \
	helpers/cache_handler.ft \
	helpers/debug_handler.ft \
	helpers/instance.ft \
	helpers/mode_end_call.ft \
	helpers/multiplexer.ft \
	helpers/null.ft \
	helpers/old_api.ft \
	helpers/read_only.ft \
	helpers/row_merge.ft \
	helpers/scalar.ft \
	helpers/scalar_group.ft \
	helpers/serialize.ft \
	helpers/snmp_get_statistic.ft \
	helpers/stash_cache.ft \
	helpers/stash_to_next.ft \
	helpers/table.ft \
	helpers/table_array.ft \
	helpers/table_container.ft \
	helpers/table_data.ft \
	helpers/table_dataset.ft \
	helpers/table_iterator.ft \
	helpers/table_row.ft \
	helpers/table_tdata.ft \
	helpers/watcher.ft \
	agent_handler.ft \
	agent_index.ft \
	agent_read_config.ft \
	agent_registry.ft \
	agent_sysORTable.ft \
	agent_trap.ft \
	kernel.ft \
	snmp_agent.ft \
	snmp_vars.ft \
	$(agentgroup_list_ft) \
	@OTHERAGENTLIBLFTS@

# The agent objects.
AGENTOBJS=snmpd.o @other_agentobjs@
LAGENTOBJS=snmpd.lo @other_lagentobjs@
FTAGENTOBJS=snmpd.ft @other_ftagentobjs@

#
# Define OBJS and LOBJS for clean target (just this directory)
#
OBJS		= $(LIBAGENTOBJS)  $(AGENTOBJS)  mib_modules.o  auto_nlist.o
LOBJS		= $(LLIBAGENTOBJS) $(LAGENTOBJS) mib_modules.lo auto_nlist.lo
FTOBJS		= $(LLIBAGENTFTS) $(FTAGENTOBJS) mib_modules.ft auto_nlist.ft

FEATUREFILE     = $(top_builddir)/include/net-snmp/agent/features.h

all: agentlib subdirs miblib $(INSTALLBINPROGS) $(INSTALLSBINPROGS)

#
# build stuff targets
#
getkstat: getkstat.o
	$(CC) $(CFLAGS) -o $@ $? $(LIBS)

getkstat.o: mibgroup/kernel_sunos5.c
	$(CC) $(CFLAGS) -o $@ -D_GETKSTAT_TEST -DDODEBUG -c $? 

getmibstat: getmibstat.o
	$(CC) $(CFLAGS) -o $@ $? $(LIBS)

getmibstat.o: mibgroup/kernel_sunos5.c
	$(CC) $(CFLAGS) -o $@ -D_GETMIBSTAT_TEST -DDODEBUG -c $? 

snmpd$(EXEEXT):	${LAGENTOBJS} $(USELIBS) $(AGENTLIB) $(HELPERLIB) $(MIBLIB) $(LIBTARG) 
	$(LINK) $(CFLAGS) -o $@ ${LAGENTOBJS} ${LDFLAGS} ${OUR_AGENT_LIBS}

libnetsnmpagent.$(LIB_EXTENSION)$(LIB_VERSION):    ${LLIBAGENTOBJS} $(USELIBS)
	$(LIB_LD_CMD) $(AGENTLIB) ${LLIBAGENTOBJS} $(USELIBS) ${LAGENTLIBS} @LD_NO_UNDEFINED@ $(LDFLAGS) $(PERLLDOPTS_FOR_LIBS) $(LIB_LD_LIBS) @AGENTLIBS@
	$(RANLIB) $(AGENTLIB)

libnetsnmpmibs.$(LIB_EXTENSION)$(LIB_VERSION): ${LMIBOBJS} $(AGENTLIB) $(USELIBS)
	$(LIB_LD_CMD) $(MIBLIB) ${LMIBOBJS} $(AGENTLIB) $(USELIBS) @LD_NO_UNDEFINED@ $(LDFLAGS) ${LMIBLIBS} $(PERLLDOPTS_FOR_LIBS) $(LIB_LD_LIBS) @AGENTLIBS@
	$(RANLIB) $(MIBLIB)

agentlib: $(AGENTLIB)

miblib: $(MIBLIB)

libs: $(AGENTLIB) $(MIBLIB)

embedperlinstall:
	  @$(SHELL) $(srcdir)/../mkinstalldirs $(INSTALL_PREFIX)$(snmplibdir)
	  @$(INSTALL_DATA) $(srcdir)/snmp_perl.pl $(INSTALL_PREFIX)$(snmplibdir)/snmp_perl.pl
	  @echo "install:  installed snmp_perl.pl in $(INSTALL_PREFIX)$(snmplibdir)"

embedperluninstall:
	  @rm -f $(INSTALL_PREFIX)$(snmplibdir)/snmp_perl.pl
	  @echo "removed snmp_perl.pl from $(INSTALL_PREFIX)$(snmplibdir)"

installmibgroupheaders:
	@for it in $(INCLUDEMIBGROUPDIRHEADERS) ; do \
		itd=`dirname "$(INSTALL_PREFIX)$(includedir)/agent/$$it"` ; \
		if [ ! -d "$$itd" ] ; then \
			echo "creating directory $$itd" ; \
			$(SHELL) "$(top_srcdir)/mkinstalldirs" "$$itd" ; \
		fi ; \
		$(INSTALL_DATA) "$(top_srcdir)/$(INCLUDEMIBGROUPDIR)/$$it" \
			"$$itd" ; \
		echo "installing $$it in $$itd" ; \
	done

@module_list_deps@
@agent_module_list_deps@
@mib_module_list_deps@

mib_modules.lo: mibgroup/mib_module_inits.h
#
# dependency for snmplib object. it's here because the headers listed
# are relative to the agent directory.

subdirs: agentlib
# wait for agentlib before building 'subdirs' target

