net-snmp/Makefile.rules

476 lines
15 KiB
Makefile

#
# standard target definitions. Set appropriate variables to make use of them.
#
# note: the strange use of the "it" variable is for shell parsing when
# there is no targets to install for that rule.
#
# the standard items to build: libraries, bins, and sbins
STANDARDTARGETS =$(INSTALLLIBS) $(INSTALLBINPROGS) $(INSTALLSBINPROGS)
STANDARDCLEANTARGETS=$(INSTALLLIBS) $(INSTALLPOSTLIBS) $(INSTALLBINPROGS) $(INSTALLSBINPROGS) $(INSTALLUCDLIBS)
standardall: subdirs $(STANDARDTARGETS)
objs: ${OBJS} ${LOBJS}
# features require that subdirs be made *first* to get dependency
# collection processed in the right order
.PHONY: features ftobjs ftsubdirs
features: $(FTOTHERTARGS) ftsubdirs ftobjs $(FEATUREFILE)
ftobjs: $(FTOBJS)
$(FEATUREFILE): $(FTOBJS) $(top_builddir)/include/net-snmp/feature-details.h
cat $(FTOBJS) > $(FEATUREFILE).in
$(FEATUREPROCESS) $(FEATUREFILE) $(top_builddir)/include/net-snmp/feature-details.h @FEATURE_REMOVE_FLAGS@ @FEATURE_ADD_FLAGS@
ftsubdirs:
@if test "$(FTSUBDIRS)" != ""; then \
SUBDIRS="$(FTSUBDIRS)" ; \
else \
SUBDIRS="$(SUBDIRS)" ; \
fi ; \
if test "$$SUBDIRS" != ""; then \
it="$$SUBDIRS" ; \
for i in $$it ; do \
echo "making features in `pwd`/$$i"; \
( cd $$i ; $(MAKE) features ) ; \
if test $$? != 0 ; then \
exit 1 ; \
fi \
done \
fi
.PHONY: cleanfeatures cleanfeaturessubdirs
cleanfeatures: cleanfeaturessubdirs
rm -f $(FTOBJS)
rm -f $(FEATUREFILE)
rm -f $(top_builddir)/include/net-snmp/feature-details.h
cleanfeaturessubdirs:
@if test "$(FTSUBDIRS)" != ""; then \
SUBDIRS="$(FTSUBDIRS)" ; \
else \
SUBDIRS="$(SUBDIRS)" ; \
fi ; \
if test "$$SUBDIRS" != ""; then \
it="$$SUBDIRS" ; \
for i in $$it ; do \
echo "making cleanfeatures in `pwd`/$$i"; \
( cd $$i ; $(MAKE) cleanfeatures ) ; \
if test $$? != 0 ; then \
exit 1 ; \
fi \
done \
fi
# feature-check definitions
.SUFFIXES: .ft
.c.ft:
@test -f $(top_builddir)/include/net-snmp/feature-details.h || \
echo "/* Generated by make. Do not modify directly */" \
> $(top_builddir)/include/net-snmp/feature-details.h
$(FEATURECHECK) --feature-global $(top_builddir)/include/net-snmp/feature-details.h $(mysubdir) $< $@ $(CC) -E $(CPPFLAGS) $(CFLAGS) -c
subdirs:
@if test "$(SUBDIRS)" != ""; then \
it="$(SUBDIRS)" ; \
for i in $$it ; do \
echo "making all in `pwd`/$$i"; \
( cd $$i ; $(MAKE) ) ; \
if test $$? != 0 ; then \
exit 1 ; \
fi \
done \
fi
# installlibs handles local, ucd and subdir libs. need to do subdir libs
# before bins, sinze those libs may be needed for successful linking
install: installlocalheaders @installucdheaders@ \
installlibs \
installlocalbin installlocalsbin \
installsubdirs $(OTHERINSTALL)
uninstall: uninstalllibs uninstallbin uninstallsbin uninstallheaders \
uninstallsubdirs $(OTHERUNINSTALL)
installprogs: installbin installsbin
#
# headers
#
# set INSTALLHEADERS to a list of things to install in each makefile.
# set INSTALLBUILTINCLUDEHEADERS a list built and placed into include/net-snmp/
# set INSTALLBUILTHEADERS to a list of things to install from builddir
# set INSTALLSUBDIRHEADERS and INSTALLSUBDIR to subdirectory headers
# set INSTALLSUBDIRHEADERS2 and INSTALLSUBDIR2 to more subdirectory headers
# set INSTALLBUILTSUBDIRHEADERS and INSTALLBUILTSUBDIR to a list from builddir
#
installheaders: installlocalheaders @installucdheaders@ installsubdirheaders
installlocalheaders:
@if test "$(INSTALLBUILTINCLUDEHEADERS)" != "" ; then \
echo creating directory $(INSTALL_PREFIX)$(includedir) ; \
it="$(INSTALLBUILTINCLUDEHEADERS)" ; \
$(SHELL) $(top_srcdir)/mkinstalldirs $(INSTALL_PREFIX)$(includedir)/library ; \
$(SHELL) $(top_srcdir)/mkinstalldirs $(INSTALL_PREFIX)$(includedir)/agent ; \
for i in $$it ; do \
$(INSTALL_DATA) include/net-snmp/$$i $(INSTALL_PREFIX)$(includedir)/$$i ; \
echo "installing $$i in $(INSTALL_PREFIX)$(includedir)/$$i" ; \
done \
fi
@if test "$(INSTALLHEADERS)" != "" ; then \
echo creating directory $(INSTALL_PREFIX)$(includedir) ; \
it="$(INSTALLHEADERS)" ; \
$(SHELL) $(top_srcdir)/mkinstalldirs $(INSTALL_PREFIX)$(includedir) ; \
for i in $$it ; do \
$(INSTALL_DATA) $(top_srcdir)/include/net-snmp/$$i $(INSTALL_PREFIX)$(includedir) ; \
echo "installing $$i in $(INSTALL_PREFIX)$(includedir)" ; \
done \
fi
@if test "$(INSTALLBUILTHEADERS)" != "" ; then \
echo creating directory $(INSTALL_PREFIX)$(includedir) ; \
it="$(INSTALLBUILTHEADERS)" ; \
$(SHELL) $(top_srcdir)/mkinstalldirs $(INSTALL_PREFIX)$(includedir) ; \
for i in $$it ; do \
$(INSTALL_DATA) $$i $(INSTALL_PREFIX)$(includedir) ; \
echo "installing $$i in $(INSTALL_PREFIX)$(includedir)" ; \
done \
fi
@if test "$(INCLUDESUBDIRHEADERS)" != "" ; then \
echo creating directory $(INSTALL_PREFIX)$(includedir)/$(INCLUDESUBDIR) ; \
it="$(INCLUDESUBDIRHEADERS)" ; \
$(SHELL) $(top_srcdir)/mkinstalldirs $(INSTALL_PREFIX)$(includedir)/$(INCLUDESUBDIR) ; \
for i in $$it ; do \
$(INSTALL_DATA) $(top_srcdir)/include/net-snmp/$(INCLUDESUBDIR)/$$i $(INSTALL_PREFIX)$(includedir)/$(INCLUDESUBDIR) ; \
echo "installing $$i in $(INSTALL_PREFIX)$(includedir)/$(INCLUDESUBDIR)" ; \
done \
fi
@if test "$(INCLUDESUBDIRHEADERS2)" != "" ; then \
echo creating directory $(INSTALL_PREFIX)$(includedir)/$(INCLUDESUBDIR2) ; \
it="$(INCLUDESUBDIRHEADERS2)" ; \
$(SHELL) $(top_srcdir)/mkinstalldirs $(INSTALL_PREFIX)$(includedir)/$(INCLUDESUBDIR2) ; \
for i in $$it ; do \
$(INSTALL_DATA) $(top_srcdir)/include/net-snmp/$(INCLUDESUBDIR2)/$$i $(INSTALL_PREFIX)$(includedir)/$(INCLUDESUBDIR2) ; \
echo "installing $$i in $(INSTALL_PREFIX)$(includedir)/$(INCLUDESUBDIR2)" ; \
done \
fi
@if test "$(INSTALLBUILTSUBDIRHEADERS)" != "" ; then \
echo creating directory $(INSTALL_PREFIX)$(includedir)/$(INSTALLBUILTSUBDIR) ; \
it="$(INSTALLBUILTSUBDIRHEADERS)" ; \
$(SHELL) $(top_srcdir)/mkinstalldirs $(INSTALL_PREFIX)$(includedir)/$(INSTALLBUILTSUBDIR) ; \
for i in $$it ; do \
$(INSTALL_DATA) $$i $(INSTALL_PREFIX)$(includedir)/$(INSTALLBUILTSUBDIR) ; \
echo "installing $$i in $(INSTALL_PREFIX)$(includedir)/$(INSTALLBUILTSUBDIR)" ; \
done \
fi
installucdheaders:
@if test "$(INSTALLUCDHEADERS)" != "" ; then \
echo creating directory $(INSTALL_PREFIX)$(ucdincludedir) ; \
it="$(INSTALLUCDHEADERS)" ; \
$(SHELL) $(top_srcdir)/mkinstalldirs $(INSTALL_PREFIX)$(ucdincludedir) ; \
for i in $$it ; do \
$(INSTALL_DATA) $(top_srcdir)/include/ucd-snmp/$$i $(INSTALL_PREFIX)$(ucdincludedir) ; \
echo "installing $$i in $(INSTALL_PREFIX)$(ucdincludedir)" ; \
done \
fi
installsubdirheaders:
@if test "$(SUBDIRS)" != ""; then \
it="$(SUBDIRS)" ; \
for i in $$it ; do \
echo "making installheaders in `pwd`/$$i"; \
( cd $$i ; $(MAKE) installheaders) ; \
if test $$? != 0 ; then \
exit 1 ; \
fi \
done \
fi
uninstallheaders:
@if test "$(INSTALLHEADERS)" != "" ; then \
it="$(INSTALLHEADERS)" ; \
for i in $$it ; do \
rm -f $(INSTALL_PREFIX)$(includedir)/$$i ; \
echo "removing $$i from $(INSTALL_PREFIX)$(includedir)" ; \
done \
fi
@if test "$(INSTALLBUILTHEADERS)" != "" ; then \
it="$(INSTALLBUILTHEADERS)" ; \
for i in $$it ; do \
rm -f $(INSTALL_PREFIX)$(includedir)/`basename $$i` ; \
echo "removing $$i from $(INSTALL_PREFIX)$(includedir)" ; \
done \
fi
@if test "$(INCLUDESUBDIRHEADERS)" != "" ; then \
it="$(INCLUDESUBDIRHEADERS)" ; \
for i in $$it ; do \
rm -f $(INSTALL_PREFIX)$(includedir)/$(INCLUDESUBDIR)/$$i ; \
echo "removing $$i from $(INSTALL_PREFIX)$(includedir)/$(INCLUDESUBDIR)" ; \
done \
fi
@if test "$(INCLUDESUBDIRHEADERS2)" != "" ; then \
it="$(INCLUDESUBDIRHEADERS2)" ; \
for i in $$it ; do \
rm -f $(INSTALL_PREFIX)$(includedir)/$(INCLUDESUBDIR2)/$$i ; \
echo "removing $$i from $(INSTALL_PREFIX)$(includedir)/$(INCLUDESUBDIR2)" ; \
done \
fi
@if test "$(INSTALLBUILTSUBDIRHEADERS)" != "" ; then \
it="$(INSTALLBUILTSUBDIRHEADERS)" ; \
for i in $$it ; do \
rm -f $(INSTALL_PREFIX)$(includedir)/$(INSTALLBUILTSUBDIR)/`basename $$i` ; \
echo "removing $$i from $(INSTALL_PREFIX)$(includedir)/$(INSTALLBUILTSUBDIR)" ; \
done \
fi
#
# libraries
#
# set INSTALLLIBS to a list of things to install in each makefile.
#
installlibs: installlocallibs @installucdlibs@ installsubdirlibs installpostlibs
installlocallibs: $(INSTALLLIBS)
@if test "$(INSTALLLIBS)" != ""; then \
it="$(INSTALLLIBS)" ; \
$(SHELL) $(top_srcdir)/mkinstalldirs $(INSTALL_PREFIX)$(libdir) ; \
$(INSTALL) $(INSTALLLIBS) $(INSTALL_PREFIX)$(libdir) ; \
for i in $$it ; do \
echo "installing $$i in $(INSTALL_PREFIX)$(libdir)"; \
$(RANLIB) $(INSTALL_PREFIX)$(libdir)/$$i ; \
done ; \
$(LIB_LDCONFIG_CMD) ; \
fi
installpostlibs: $(INSTALLPOSTLIBS)
@if test "$(INSTALLPOSTLIBS)" != ""; then \
it="$(INSTALLPOSTLIBS)" ; \
$(SHELL) $(top_srcdir)/mkinstalldirs $(INSTALL_PREFIX)$(libdir) ; \
$(INSTALL) $(INSTALLPOSTLIBS) $(INSTALL_PREFIX)$(libdir) ; \
for i in $$it ; do \
echo "installing $$i in $(INSTALL_PREFIX)$(libdir)"; \
$(RANLIB) $(INSTALL_PREFIX)$(libdir)/$$i ; \
done ; \
$(LIB_LDCONFIG_CMD) ; \
fi
installucdlibs: $(INSTALLUCDLIBS)
@if test "$(INSTALLUCDLIBS)" != ""; then \
it="$(INSTALLUCDLIBS)" ; \
$(SHELL) $(top_srcdir)/mkinstalldirs $(INSTALL_PREFIX)$(libdir) ; \
$(INSTALL) $(INSTALLUCDLIBS) $(INSTALL_PREFIX)$(libdir) ; \
for i in $$it ; do \
echo "installing $$i in $(INSTALL_PREFIX)$(libdir)"; \
$(RANLIB) $(INSTALL_PREFIX)$(libdir)/$$i ; \
done ; \
$(LIB_LDCONFIG_CMD) ; \
fi
installsubdirlibs:
@if test "$(SUBDIRS)" != ""; then \
it="$(SUBDIRS)" ; \
for i in $$it ; do \
echo "making installlibs in `pwd`/$$i"; \
( cd $$i ; $(MAKE) installlibs) ; \
if test $$? != 0 ; then \
exit 1 ; \
fi \
done \
fi
uninstalllibs:
@if test "$(INSTALLLIBS)" != ""; then \
it="$(INSTALLLIBS)" ; \
for i in $$it ; do \
$(UNINSTALL) $(INSTALL_PREFIX)$(libdir)/$$i ; \
echo "removing $$i from $(INSTALL_PREFIX)$(libdir)"; \
done \
fi
#
# normal bin binaries
#
# set INSTALLBINPROGS to a list of things to install in each makefile.
#
installbin: installlocalbin installsubdirbin
installlocalbin: $(INSTALLBINPROGS)
@if test "$(INSTALLBINPROGS) $(INSTALLBINSCRIPTS)" != " "; then \
$(SHELL) $(top_srcdir)/mkinstalldirs $(INSTALL_PREFIX)$(bindir) ; \
it="$(INSTALLBINPROGS) $(INSTALLBINSCRIPTS)" ; \
$(INSTALL) $(INSTALLBINPROGS) $(INSTALLBINSCRIPTS) $(INSTALL_PREFIX)$(bindir) ; \
for i in $$it ; do \
echo "installing $$i in $(INSTALL_PREFIX)$(bindir)"; \
done \
fi
installsubdirbin:
@if test "$(SUBDIRS)" != ""; then \
it="$(SUBDIRS)" ; \
for i in $$it ; do \
echo "making installbin in `pwd`/$$i"; \
( cd $$i ; $(MAKE) installbin) ; \
if test $$? != 0 ; then \
exit 1 ; \
fi \
done \
fi
uninstallbin:
@if test "$(INSTALLBINPROGS) $(INSTALLBINSCRIPTS)" != " "; then \
it="$(INSTALLBINPROGS) $(INSTALLBINSCRIPTS)" ; \
for i in $$it ; do \
$(UNINSTALL) $(INSTALL_PREFIX)$(bindir)/$$i ; \
echo "removing $$i from $(INSTALL_PREFIX)$(bindir)"; \
done \
fi
#
# sbin binaries
#
# set INSTALLSBINPROGS to a list of things to install in each makefile.
#
installsbin: installlocalsbin installsubdirsbin
installlocalsbin: $(INSTALLSBINPROGS)
@if test "$(INSTALLSBINPROGS)" != ""; then \
it="$(INSTALLSBINPROGS)" ; \
$(SHELL) $(top_srcdir)/mkinstalldirs $(INSTALL_PREFIX)$(sbindir) ; \
$(INSTALL) $(INSTALLSBINPROGS) $(INSTALL_PREFIX)$(sbindir) ; \
for i in $$it ; do \
echo "installing $$i in $(INSTALL_PREFIX)$(sbindir)"; \
done \
fi
installsubdirsbin:
@if test "$(SUBDIRS)" != ""; then \
it="$(SUBDIRS)" ; \
for i in $$it ; do \
echo "making installsbin in `pwd`/$$i"; \
( cd $$i ; $(MAKE) installsbin) ; \
if test $$? != 0 ; then \
exit 1 ; \
fi \
done \
fi
uninstallsbin:
@if test "$(INSTALLSBINPROGS)" != ""; then \
it="$(INSTALLSBINPROGS)" ; \
for i in $$it ; do \
$(UNINSTALL) $(INSTALL_PREFIX)$(sbindir)/$$i ; \
echo "removing $$i from $(INSTALL_PREFIX)$(sbindir)"; \
done \
fi
#
# general make install target for subdirs
#
installsubdirs:
@if test "$(SUBDIRS)" != ""; then \
it="$(SUBDIRS)" ; \
for i in $$it ; do \
echo "making install in `pwd`/$$i"; \
( cd $$i ; $(MAKE) install) ; \
if test $$? != 0 ; then \
exit 1 ; \
fi \
done \
fi
uninstallsubdirs:
@if test "$(SUBDIRS)" != ""; then \
it="$(SUBDIRS)" ; \
for i in $$it ; do \
echo "making uninstall in `pwd`/$$i"; \
( cd $$i ; $(MAKE) uninstall) ; \
if test $$? != 0 ; then \
exit 1 ; \
fi \
done \
fi
#
# cleaning targets
#
clean: cleansubdirs $(OTHERCLEANTODOS)
$(LIBTOOLCLEAN) ${OBJS} ${LOBJS} ${FTOBJS} core $(STANDARDCLEANTARGETS) $(OTHERCLEANTARGETS)
cleansubdirs:
@if test "$(SUBDIRS)" != ""; then \
it="$(SUBDIRS)" ; \
for i in $$it ; do \
echo "making clean in `pwd`/$$i"; \
( cd $$i ; $(MAKE) clean) ; \
if test $$? != 0 ; then \
exit 1 ; \
fi \
done \
fi
lint:
lint -nhx $(CSRCS)
#
# wacky dependency building.
#
depend: dependdirs
@if test -f Makefile.depend ; then \
makedepend `echo $(CPPFLAGS) | sed 's/-f[-a-z]*//g'` -o .lo $(srcdir)/*.c $(srcdir)/*/*.c ; \
fi
nosysdepend: nosysdependdirs
@if test -f Makefile.depend ; then \
makedepend `echo $(CPPFLAGS) | sed 's/-f[-a-z]*//g'` -o .lo $(srcdir)/*.c $(srcdir)/*/*.c ; \
$(PERL) -n -i.bak $(top_srcdir)/makenosysdepend.pl Makefile ; \
fi
distdepend: nosysdepend distdependdirs
@if test -f Makefile.depend ; then \
$(PERL) $(top_srcdir)/makefileindepend.pl ; \
fi
dependdirs:
@if test "$(SUBDIRS)" != ""; then \
it="$(SUBDIRS)" ; \
for i in $$it ; do \
echo "making depend in `pwd`/$$i"; \
( cd $$i ; $(MAKE) depend) ; \
if test $$? != 0 ; then \
exit 1 ; \
fi \
done \
fi
nosysdependdirs:
@if test "$(SUBDIRS)" != ""; then \
it="$(SUBDIRS)" ; \
for i in $$it ; do \
echo "making nosysdepend in `pwd`/$$i"; \
( cd $$i ; $(MAKE) nosysdepend) ; \
if test $$? != 0 ; then \
exit 1 ; \
fi \
done \
fi
distdependdirs:
@if test "$(SUBDIRS)" != ""; then \
it="$(SUBDIRS)" ; \
for i in $$it ; do \
echo "making distdepend in `pwd`/$$i"; \
( cd $$i ; $(MAKE) distdepend) ; \
if test $$? != 0 ; then \
exit 1 ; \
fi \
done \
fi
# These aren't real targets, let gnu's make know that.
.PHONY: clean cleansubdirs lint \
install installprogs installheaders installlibs \
installbin installsbin installsubdirs \
all subdirs standardall objs features \
depend nosysdepend distdepend dependdirs nosysdependdirs distdependdirs