blob: a6448f842fa67ce20a86b9e99fe0b5ec26882ebd [file] [log] [blame]
#
# Makefile for snmpd
#
top_builddir = ..
# 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
INSTALLSBINPROGS= @SNMPD@
INSTALLLIBS = libnetsnmpagent.$(LIB_EXTENSION)$(LIB_VERSION)
INSTALLPOSTLIBS = libnetsnmpmibs.$(LIB_EXTENSION)$(LIB_VERSION)
INCLUDESUBDIR=agent
INCLUDESUBDIRHEADERS=agent_read_config.h \
agent_registry.h \
agent_index.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
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=util_funcs.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_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)
HELPERLIB = helpers/libnetsnmphelpers.$(LIB_EXTENSION)$(LIB_VERSION)
AGENTLIB = libnetsnmpagent.$(LIB_EXTENSION)$(LIB_VERSION)
MIBLIB = libnetsnmpmibs.$(LIB_EXTENSION)$(LIB_VERSION)
LAGENTLIBS = @LAGENTLIBS@
LMIBLIBS = @LMIBLIBS@
PERLLDOPTS_FOR_APPS = @PERLLDOPTS_FOR_APPS@
PERLLDOPTS_FOR_LIBS = @PERLLDOPTS_FOR_LIBS@
LIBS = $(USELIBS) @AGENTLIBS@ $(PERLLDOPTS_FOR_APPS)
OUR_AGENT_LIBS = $(AGENTLIB) $(HELPERLIB) $(MIBLIB) $(LIBS) @DLLIBS@
CPPFLAGS = $(TOP_INCLUDES) -I. $(AGENT_INCLUDES) $(MIBGROUP_INCLUDES) \
$(SNMPLIB_INCLUDES) @CPPFLAGS@
#
# Objects
#
# libnetsnmpmibs objects.
@mibgroup_list_lo@
@mibgroup_list_o@
@agentgroup_list_lo@
@agentgroup_list_o@
LMIBOBJS = $(mibgroup_list_lo) mib_modules.lo auto_nlist.lo
MIBOBJS = $(mibgroup_list_o) mib_modules.o auto_nlist.o
# libnetsnmpagent objects
LIBAGENTOBJS=snmp_agent.o snmp_vars.o agent_read_config.o \
agent_registry.o agent_index.o agent_trap.o kernel.o \
agent_handler.o $(agentgroup_list_o) @OTHERAGENTLIBOBJS@
LLIBAGENTOBJS=snmp_agent.lo snmp_vars.lo agent_read_config.lo \
agent_registry.lo agent_index.lo agent_trap.lo kernel.lo \
agent_handler.lo $(agentgroup_list_lo) @OTHERAGENTLIBLOBJS@
# The agent objects.
AGENTOBJS=snmpd.o @other_agentobjs@
LAGENTOBJS=snmpd.lo @other_lagentobjs@
#
# 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
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} $(LDFLAGS) $(PERLLDOPTS_FOR_LIBS) $(LIB_LD_LIBS)
$(RANLIB) $(AGENTLIB)
libnetsnmpmibs.$(LIB_EXTENSION)$(LIB_VERSION): ${LMIBOBJS} $(HELPERLIB) $(AGENTLIB) $(USELIBS)
$(LIB_LD_CMD) $(MIBLIB) ${LMIBOBJS} $(HELPERLIB) $(AGENTLIB) $(USELIBS) ${LMIBLIBS} $(LDFLAGS) $(LIB_LD_LIBS)
$(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:
@if test "$(INCLUDEMIBGROUPDIRHEADERS)" != "" ; then \
echo creating directory $(INSTALL_PREFIX)$(includedir)/agent ; \
it="$(INCLUDEMIBGROUPDIRHEADERS)" ; \
$(SHELL) $(top_srcdir)/mkinstalldirs $(INSTALL_PREFIX)$(includedir)/agent ; \
for i in $$it ; do \
$(INSTALL_DATA) $(top_srcdir)/$(INCLUDEMIBGROUPDIR)/$$i $(INSTALL_PREFIX)$(includedir)/agent ; \
echo "installing $$i in $(INSTALL_PREFIX)$(includedir)/agent" ; \
done \
fi
@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.
$(HELPERLIB): subdirs
# the above is needed when building with '-j' argument - everything what needs
# helper lib must wait until 'subdirs' target is finished
subdirs: agentlib
# wait for agentlib before building 'subdirs' target