File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / pimdd / Makefile
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Mon Jun 12 07:58:55 2017 UTC (7 years, 6 months ago) by misho
Branches: pimdd, MAIN
CVS tags: v0_2_1p0, v0_2_1, HEAD
pimdd-dense 0.2.1.0_2

#
# Makefile for the Daemon part of PIM-SMv2.0,
# Protocol Independent Multicast, Sparse-Mode version 2.0
#
#
#  Questions concerning this software should be directed to 
#  Kurt Windisch (kurtw@antc.uoregon.edu)
#
#  $Id: Makefile,v 1.1.1.1 2017/06/12 07:58:55 misho Exp $
#
# XXX: SEARCH FOR "CONFIGCONFIGCONFIG" (without the quotas) for the lines
# that might need configuration

PROG_NAME=pimdd

#CONFIGCONFIGCONFIG
#
# flags:
#	-DSAVE_MEMORY: saves 4 bytes per unconfigured interface
#		per routing entry. If set, configuring such interface
#		will restart the daemon and will flush the routing
#		table.
#
MISCDEFS=	# -DSAVE_MEMORY

#
# Version control stuff. Nothing should be changed
#
VERSION = `cat VERSION`
CVS_VERSION = `cat VERSION | sed 'y/./_/' | sed 'y/-/_/'`
CVS_LAST_VERSION=`cat CVS_LAST_VERSION`
PROG_VERSION =  ${PROG_NAME}-${VERSION}
PROG_CVS_VERSION = ${PROG_NAME}_${CVS_VERSION}
PROG_CVS_LAST_VERSION = ${PROG_NAME}_${CVS_LAST_VERSION}

# TODO: XXX: CURRENTLY SNMP NOT SUPPORTED!!!!
#
# Uncomment the following eight lines if you want to use David Thaler's
# CMU SNMP daemon support.
#
#SNMPDEF=	-DSNMP
#SNMPLIBDIR=	-Lsnmpd -Lsnmplib
#SNMPLIBS=	-lsnmpd -lsnmp
#CMULIBS=	snmpd/libsnmpd.a snmplib/libsnmp.a
#MSTAT=		mstat
#SNMP_SRCS=	snmp.c
#SNMP_OBJS=	snmp.o
#SNMPCLEAN=	snmpclean
# End SNMP support

#CONFIGCONFIGCONFIG
# Uncomment the following line if you want to use RSRR (Routing
# Support for Resource Reservations), currently used by RSVP.
RSRRDEF=	-DRSRR

CC =		gcc
MCAST_INCLUDE=	-Iinclude
LDFLAGS=

#CONFIGCONFIGCONFIG
PURIFY=		purify -cache-dir=/tmp -collector=/import/pkgs/gcc/lib/gcc-lib/sparc-sun-sunos4.1.3_U1/2.7.2.2/ld

#CONFIGCONFIGCONFIG
### Compilation flags for different platforms. Uncomment only one of them
## FreeBSD
CFLAGS= -Wall -g	-Iinclude/freebsd ${MCAST_INCLUDE} ${SNMPDEF} ${RSRRDEF} ${MISCDEFS} -DFreeBSD -DPIM

## NetBSD   -DNetBSD is done by OS
#CFLAGS= -Wall -g	-Iinclude/netbsd ${MCAST_INCLUDE} ${SNMPDEF} ${RSRRDEF} ${MISCDEFS} -DPIM

## BSDI
#CFLAGS=  -g	 ${MCAST_INCLUDE} ${SNMPDEF} ${RSRRDEF} ${MISCDEFS} -DBSDI -DPIM

## SunOS, OSF1, gcc
#CFLAGS= -Wall -g	-Iinclude/sunos-gcc ${MCAST_INCLUDE} ${SNMPDEF} ${RSRRDEF} ${MISCDEFS} -DSunOS=43 -DPIM
## SunOS, OSF1, cc
#CFLAGS= -g		-Iinclude/sunos-cc ${MCAST_INCLUDE} ${SNMPDEF} ${RSRRDEF} ${MISCDEFS} -DSunOS=43 -DPIM

## IRIX
#CFLAGS= -Wall -g	 ${MCAST_INCLUDE} ${SNMPDEF} ${RSRRDEF} ${MISCDEFS} -D_BSD_SIGNALS -DIRIX -DPIM

## Solaris 2.5, gcc
#CFLAGS= -Wall	-g ${MCAST_INCLUDE} ${SNMPDEF} ${RSRRDEF} ${MISCDEFS} -DSYSV -DSunOS=55 -DPIM
## Solaris 2.5, cc
#CFLAGS= 	-g ${MCAST_INCLUDE} ${SNMPDEF} ${RSRRDEF} ${MISCDEFS} -DSYSV -DSunOS=55 -DPIM
## Solaris 2.6
#CFLAGS=	-g ${MCAST_INCLUDE} ${SNMPDEF} ${RSRRDEF} ${MISCDEFS} -DSYSV -DSunOS=56 -DPIM
## Solaris 2.x
#LIB2=		-L/usr/ucblib -lucb -L/usr/lib -lsocket -lnsl

## Linux
#CFLAGS= -Wall -g ${MCAST_INCLUDE} ${SNMPDEF} ${RSRRDEF} ${MISCDEFS} -D__BSD_SOURCE -DRAW_INPUT_IS_RAW -DRAW_OUTPUT_IS_RAW -DIOCTL_OK_ON_RAW_SOCKET -DLinux -DPIM


LIBS=		${SNMPLIBDIR} ${SNMPLIBS} ${LIB2}
LINTFLAGS=	${MCAST_INCLUDE} ${CFLAGS}

IGMP_SRCS=	igmp.c igmp_proto.c trace.c
IGMP_OBJS=	igmp.o igmp_proto.o trace.o
ROUTER_SRCS=	inet.c kern.c main.c config.c debug.c routesock.c \
		vers.c callout.c	
ROUTER_OBJS=	inet.o kern.o main.o config.o debug.o routesock.o \
		vers.o callout.o
PIM_SRCS=	route.c vif.c timer.c mrt.c pim.c pim_proto.c
PIM_OBJS=	route.o vif.o timer.o mrt.o pim.o pim_proto.o 
DVMRP_SRCS=	dvmrp_proto.c
DVMRP_OBJS=	dvmrp_proto.o
RSRR_SRCS=	rsrr.c
RSRR_OBJS=	rsrr.o
RSRR_HDRS=      rsrr.h rsrr_var.h
HDRS=		debug.h defs.h dvmrp.h igmpv2.h mrt.h pathnames.h pimdd.h \
		trace.h vif.h  ${RSRR_HDRS}
SRCS=		${IGMP_SRCS} ${ROUTER_SRCS} ${PIM_SRCS} ${DVMRP_SRCS} \
		${SNMP_SRCS} ${RSRR_SRCS}
OBJS=		${IGMP_OBJS} ${ROUTER_OBJS} ${PIM_OBJS} ${DVMRP_OBJS} \
		${SNMP_OBJS} ${RSRR_OBJS}
DISTFILES=	README CHANGES ${SRCS} ${HDRS} VERSION LICENSE \
		LICENSE.mrouted Makefile pimdd.conf BUGS.TODO include

all: ${PROG_NAME}

${PROG_NAME}: ${IGMP_OBJS} ${ROUTER_OBJS} ${PIM_OBJS} ${DVMRP_OBJS} \
		${RSRR_OBJS} ${CMULIBS}
	rm -f $@
	${CC} ${LDFLAGS} -o $@ ${CFLAGS} ${IGMP_OBJS} ${ROUTER_OBJS} \
	${PIM_OBJS} ${DVMRP_OBJS} ${RSRR_OBJS} ${LIBS}

purify: ${OBJS}
	${PURIFY} ${CC} ${LDFLAGS} -o ${PROG_NAME} ${CFLAGS} \
	${IGMP_OBJS} ${ROUTER_OBJS} ${PIM_OBJS} ${DVMRP_OBJS} ${RSRR_OBJS}  \
	${LIBS}


vers.c:	VERSION
	rm -f $@
	sed -e 's/.*/char todaysversion[]="&";/' < VERSION > vers.c

snmpd/libsnmpd.a:
	cd snmpd; make)

snmplib/libsnmp.a:
	(cd snmplib; make)

release: cvs-commit cvs-tag last-dist

re-release: cvs-commit cvs-retag last-dist

cvs-commit:
	cvs commit -m "make cvs-commit   VERSION=${PROG_VERSION}"

cvs-tag:
	cvs tag ${PROG_CVS_VERSION}
	`cat VERSION | sed 'y/./_/' | sed 'y/-/_/' > CVS_LAST_VERSION`

cvs-retag:
	cvs tag -F ${PROG_CVS_VERSION}
	`cat VERSION | sed 'y/./_/' | sed 'y/-/_/' > CVS_LAST_VERSION`

last-dist:
	- mv ${PROG_NAME} _${PROG_NAME}.SAVE_
	- rm -rf ${PROG_VERSION}
	- rm -rf ${PROG_VERSION}.tar.gz
	- rm -rf ${PROG_VERSION}.tar.gz.formail
	cvs export -r ${PROG_CVS_LAST_VERSION} ${PROG_NAME}
	mv ${PROG_NAME} ${PROG_VERSION}
	tar cvf - ${PROG_VERSION} | gzip > ${PROG_VERSION}.tar.gz
	uuencode ${PROG_VERSION}.tar.gz ${PROG_VERSION}.tar.gz > ${PROG_VERSION}.tar.gz.formail
	rm -rf ${PROG_VERSION}
	- mv _${PROG_NAME}.SAVE_ ${PROG_NAME}

curr-dist:
	- mv ${PROG_NAME} _${PROG_NAME}.SAVE_
	cvs commit -m "make curr-dist   VERSION=${PROG_VERSION}"
	- rm -rf ${PROG_NAME}-current
	- rm -rf ${PROG_NAME}-current.tar.gz
	- rm -rf ${PROG_NAME}-current.tar.gz.formail
	cvs checkout ${PROG_NAME}
	mv ${PROG_NAME} ${PROG_NAME}-current
	tar cvf - ${PROG_NAME}-current | gzip > ${PROG_NAME}-current.tar.gz
	uuencode ${PROG_NAME}-current.tar.gz ${PROG_NAME}-current.tar.gz > ${PROG_NAME}-current.tar.gz.formail
	rm -rf ${PROG_NAME}-current
	- mv _${PROG_NAME}.SAVE_ ${PROG_NAME}

curr-diff:
	cvs commit -m "make curr-diff   VERSION=${PROG_VERSION}"
	cvs rdiff -kk -u -r ${PROG_CVS_LAST_VERSION} ${PROG_NAME} > ${PROG_NAME}-current.diff


install:	${PROG_NAME}
	install -d /usr/local/bin
	install -m 0755 -f /usr/local/bin ${PROG_NAME}
	- mv /etc/pimdd.conf /etc/pimdd.conf.old
	cp pimdd.conf /etc
	echo "Don't forget to check/edit /etc/pimdd.conf!!!"

clean:	FRC ${SNMPCLEAN}
	rm -f ${OBJS} core ${PROG_NAME} tags TAGS

snmpclean:	FRC
	-(cd snmpd; make clean)
	-(cd snmplib; make clean)

depend:	FRC
	mkdep ${CFLAGS} ${SRCS}

lint:	FRC
	lint ${LINTFLAGS} ${SRCS}

tags:	${IGMP_SRCS} ${ROUTER_SRCS}
	ctags ${IGMP_SRCS} ${ROUTER_SRCS}

cflow:	FRC
	cflow ${MCAST_INCLUDE} ${IGMP_SRCS} ${ROUTER_SRCS} > cflow.out

cflow2:	FRC
	cflow -ix ${MCAST_INCLUDE} ${IGMP_SRCS} ${ROUTER_SRCS} > cflow2.out

rcflow:	FRC
	cflow -r ${MCAST_INCLUDE} ${IGMP_SRCS} ${ROUTER_SRCS} > rcflow.out

rcflow2: FRC
	cflow -r -ix ${MCAST_INCLUDE} ${IGMP_SRCS} ${ROUTER_SRCS} > rcflow2.out

TAGS:	FRC
	etags ${SRCS}

FRC:



# DO NOT DELETE THIS LINE -- mkdep uses it.

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>