#
# SellaNMS
# Id: Makefile.in,v 2.6 2002/03/25 10:18:29 sella Exp 
# Copyright (c) 2001,2002 Digital Genesis Software, LLC. All Rights Reserved.
# Released under the GPL Version 2 License.
# http://www.digitalgenesis.com
#

# --------------------------------------
#                Source
# --------------------------------------

OBJS				= daemon.o bgp.o
EXTOBJS			= ../../main.o ../../libs/common/libcommon.a ../../libs/configuration/libconfiguration.a ../../libs/storage/libstorage.a ../../libs/policy_framework/libpolicy.a 
SUBDIRS			=
TARGET			= mon.bgpd
LIBRARY			=
LIBRARY_MAJOR	=

# --------------------------------------
#                Programs
# --------------------------------------

CC					= gcc
CXX				= g++
CPP				= gcc -E
AR					= ar
RANLIB			= ranlib
INSTALL			= /usr/bin/install -c
SHELL				= /bin/sh
LN_S				= ln -s
SED				= /bin/sed
STRIP				= /usr/bin/strip

# --------------------------------------
#                Paths
# --------------------------------------

root				=
prefix			= /usr/local/sella_nms
exec_prefix		= ${prefix}
bindir			= ${exec_prefix}/bin
sbindir			= ${exec_prefix}/sbin
libexecdir		= ${exec_prefix}/libexec
mandir			= ${prefix}/man
sysconfdir		= ${prefix}/etc
datadir			= ${prefix}/share
htmldir			= ${prefix}/html
includedir		= ${prefix}/include
localstatedir	= ${prefix}/var

# --------------------------------------
#                Flags
# --------------------------------------

MFLAGS			= SRCDIR=$(SRCDIR)/..
EX_DEFS			= -DDEFAULT_CONFIG_DSO="\"${libexecdir}/libconfiguration.so.0\"" -DDEFAULT_CONFIG_FILE="\"${sysconfdir}/sella_nms.conf\"" -DDEFAULT_PID_FILE="\"${localstatedir}/mon.bgpd.pid\"" -DDEFAULT_STAT_FILE="\"${localstatedir}/mon.bgpd.stat\""
DEFINES			= -pipe   -DHAVE_CONFIG_H $(EX_DEFS) -I$(SRCDIR) -I$(SRCDIR)/include -I$(SRCDIR)/libs  -I/usr/local/include
CPPFLAGS			=  -fPIC -DPIC -D_REENTRANT
CFLAGS			=  -O3 -s -w $(CPPFLAGS)
CXXFLAGS			=  -w -O3 -s $(CPPFLAGS)
LDFLAGS			= -Wl,-export-dynamic 
LIBS				= -lpthread -ldl  -L/usr/local/lib -lnetsnmp -lcrypto -lm -L/usr/local/lib -ldbi
VPATH				= .

# --------------------------------------
#                Targets
# --------------------------------------

.SUFFIXES: .c .cc .cxx .c++ .cpp .o
 
.c.o:
	$(CC) $(DEFINES) -c $(CFLAGS) $<
.cc.o:
	$(CXX) $(DEFINES) -c $(CXXFLAGS) $<
.cxx.o:
	$(CXX) $(DEFINES) -c $(CXXFLAGS) $<
.c++.o:
	$(CXX) $(DEFINES) -c $(CXXFLAGS) $<
.cpp.o:
	$(CPP) $(DEFINES) -c $(CPPFLAGS) $<

all: build

build: sanity $(OBJS) $(LIBRARY) $(TARGET)
	@SUBDIRS="$(SUBDIRS)"; \
	for DIR in $${SUBDIRS}; do \
		echo "[1m==> $${DIR}[m"; \
		(cd $${DIR} && $(MAKE) $(MFLAGS) build) || exit 1; \
		echo "[1m<== $${DIR}[m"; \
	done

$(TARGET): $(OBJS) $(EXTOBJS)
	$(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(EXTOBJS) $(LIBS)
 
$(LIBRARY): $(LIBRARY).so
 
$(LIBRARY).so: $(LIBRARY).so.$(LIBRARY_MAJOR)
 
$(LIBRARY).so.$(LIBRARY_MAJOR): $(OBJS) $(EXTOBJS)
	$(CXX) -shared -Wall -Wl,-soname,$@ -o $@ $(OBJS) $(EXTOBJS) $(LIBS)
 
$(LIBRARY).a: $(OBJS) $(EXTOBJS)
	$(AR) cr $@ $(OBJS) $(EXTOBJS)
	$(RANLIB) $@

sanity:
	@test -z "$(SRCDIR)" && echo "Please build from the 'src' directory." && exit 1 || exit 0

docs:
	@echo "Not done yet.."

clean:
	rm -f $(TARGET) *.so.* *.a *.o
	-@SUBDIRS="$(SUBDIRS)"; \
	for DIR in $${SUBDIRS}; do \
		echo "[1m==> $${DIR}[m"; \
		(cd $${DIR} && $(MAKE) $(MFLAGS) clean) || exit 1; \
		echo "[1m<== $${DIR}[m"; \
	done

distclean:
	rm -f $(TARGET) *.so.* *.o Makefile
	-@SUBDIRS="$(SUBDIRS)"; \
	for DIR in $${SUBDIRS}; do \
		echo "[1m==> $${DIR}[m"; \
		(cd $${DIR} && $(MAKE) $(MFLAGS) distclean) || exit 1; \
		echo "[1m<== $${DIR}[m"; \
	done

depend:
	$(SED) -ne '1,/^# DEPENDENCIES/p' Makefile.in > Makefile.depend && \
	$(CXX) -MM ${OBJS:.o=.c*} $(DEFINES) >> Makefile.depend && \
	echo -e "\n#\n# Local Variables:\n# c-basic-offset: 3\n# vim: noet ts=3 sw=3\n#" >> Makefile.depend && \
	mv -f Makefile.depend Makefile.in || rm Makefile.depend
	-@SUBDIRS="$(SUBDIRS)"; \
	for DIR in $${SUBDIRS}; do \
		echo "[1m==> $${DIR}[m"; \
		(cd $${DIR} && $(MAKE) $(MFLAGS) depend) || exit 1; \
		echo "[1m<== $${DIR}[m"; \
	done

# --------------------------------------
#              Dependencies
# --------------------------------------

# DEPENDENCIES - DO NOT EDIT MANUALLY

#
# Local Variables:
# c-basic-offset: 3
# vim:
# vim: noet ts=3 sw=3
#
