Annotation of embedaddon/mrouted/Makefile, revision 1.1.1.1

1.1       misho       1: # Makefile for mrouted, a multicast router, and its auxiliary   -*-Makefile-*-
                      2: # programs: map-mbone, mrinfo and mtrace.
                      3: #
                      4: 
                      5: # VERSION       ?= $(shell git tag -l | tail -1)
                      6: VERSION      ?= 3.9.5
                      7: NAME          = mrouted
                      8: CONFIG        = $(NAME).conf
                      9: EXECS         = mrouted map-mbone mrinfo mtrace
                     10: PKG           = $(NAME)-$(VERSION)
                     11: ARCHIVE       = $(PKG).tar.bz2
                     12: 
                     13: ROOTDIR      ?= $(dir $(shell pwd))
                     14: RM           ?= rm -f
                     15: CC           ?= $(CROSS)gcc
                     16: 
                     17: prefix       ?= /usr/local
                     18: sysconfdir   ?= /etc
                     19: datadir       = $(prefix)/share/doc/mrouted
                     20: mandir        = $(prefix)/share/man/man8
                     21: 
                     22: # Uncomment the following three lines if you want to use RSRR (Routing
                     23: # Support for Resource Reservations), currently used by RSVP.
                     24: RSRRDEF       = -DRSRR
                     25: RSRR_OBJS     = rsrr.o
                     26: 
                     27: IGMP_SRCS     = igmp.c inet.c kern.c
                     28: IGMP_OBJS     = igmp.o inet.o kern.o
                     29: 
                     30: # This magic trick looks like a comment, but works on BSD PMake
                     31: #include <config.mk>
                     32: include config.mk
                     33: #include <snmp.mk>
                     34: include snmp.mk
                     35: 
                     36: ROUTER_OBJS   = config.o cfparse.o main.o route.o vif.o prune.o callout.o \
                     37:                icmp.o ipip.o vers.o $(RSRR_OBJS) $(EXTRA_OBJS)
                     38: ROUTER_SRCS   = $(ROUTER_OBJS:.o=.c)
                     39: MAPPER_OBJS   = mapper.o $(EXTRA_OBJS)
                     40: MRINFO_OBJS   = mrinfo.o $(EXTRA_OBJS)
                     41: MTRACE_OBJS   = mtrace.o $(EXTRA_OBJS)
                     42: #MSTAT_OBJS    = mstat.o $(EXTRA_OBJS)
                     43: 
                     44: ## Common
                     45: CFLAGS        = $(MCAST_INCLUDE) $(SNMPDEF) $(RSRRDEF) $(INCLUDES) $(DEFS) $(USERCOMPILE)
                     46: CFLAGS       += -O2 -W -Wall -Werror
                     47: #CFLAGS       += -O -g
                     48: LDLIBS        = $(SNMPLIBDIR) $(SNMPLIBS) $(EXTRA_LIBS)
                     49: LDFLAGS      += -Wl,-Map,$@.map
                     50: OBJS          = $(IGMP_OBJS) $(ROUTER_OBJS) $(MAPPER_OBJS) $(MRINFO_OBJS) \
                     51:                $(MTRACE_OBJS) $(MSTAT_OBJS)
                     52: SRCS          = $(OBJS:.o=.c)
                     53: MANS          = $(addsuffix .8,$(EXECS))
                     54: DISTFILES     = README AUTHORS LICENSE ChangeLog
                     55: 
                     56: LINT          = splint
                     57: LINTFLAGS     = $(MCAST_INCLUDE) $(filter-out -W -Wall -Werror, $(CFLAGS)) -posix-lib -weak -skipposixheaders
                     58: 
                     59: all: $(EXECS) $(MSTAT)
                     60: 
                     61: .y.c:
                     62:        @printf "  YACC    $@\n"
                     63:        @$(YACC) $<
                     64:        -@mv y.tab.c $@ || mv $(<:.y=.tab.c) $@
                     65: 
                     66: .c.o:
                     67:        @printf "  CC      $@\n"
                     68:        @$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
                     69: 
                     70: install: $(EXECS)
                     71:        @install -d $(DESTDIR)$(prefix)/sbin
                     72:        @install -d $(DESTDIR)$(sysconfdir)
                     73:        @install -d $(DESTDIR)$(datadir)
                     74:        @install -d $(DESTDIR)$(mandir)
                     75:        @for file in $(EXECS); do \
                     76:                install -m 0755 $$file $(DESTDIR)$(prefix)/sbin/$$file; \
                     77:        done
                     78:        @install -b -m 0644 $(CONFIG) $(DESTDIR)$(sysconfdir)/$(CONFIG)
                     79:        @for file in $(DISTFILES); do \
                     80:                install -m 0644 $$file $(DESTDIR)$(datadir)/$$file; \
                     81:        done
                     82:        @for file in $(MANS); do \
                     83:                install -m 0644 $$file $(DESTDIR)$(mandir)/$$file; \
                     84:        done
                     85: 
                     86: uninstall:
                     87:        -@for file in $(EXECS); do \
                     88:                $(RM) $(DESTDIR)$(prefix)/sbin/$$file; \
                     89:        done
                     90:        -@$(RM) $(DESTDIR)$(sysconfdir)/$(CONFIG)
                     91:        -@$(RM) -r $(DESTDIR)$(datadir)
                     92:        -@for file in $(MANS); do \
                     93:                $(RM) $(DESTDIR)$(mandir)/$$file; \
                     94:        done
                     95: 
                     96: mrouted: $(IGMP_OBJS) $(ROUTER_OBJS) $(CMULIBS)
                     97:        @printf "  LINK    $@\n"
                     98:        @$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(IGMP_OBJS) $(ROUTER_OBJS) $(LDLIBS)
                     99: 
                    100: vers.c: Makefile
                    101:        @echo $(VERSION) | sed -e 's/.*/char todaysversion[]="&";/' > vers.c
                    102: 
                    103: map-mbone: $(IGMP_OBJS) $(MAPPER_OBJS)
                    104:        @printf "  LINK    $@\n"
                    105:        @$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(IGMP_OBJS) $(MAPPER_OBJS) $(LDLIBS)
                    106: 
                    107: mrinfo: $(IGMP_OBJS) $(MRINFO_OBJS)
                    108:        @printf "  LINK    $@\n"
                    109:        @$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(IGMP_OBJS) $(MRINFO_OBJS) $(LDLIBS)
                    110: 
                    111: mtrace: $(IGMP_OBJS) $(MTRACE_OBJS)
                    112:        @printf "  LINK    $@\n"
                    113:        @$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(IGMP_OBJS) $(MTRACE_OBJS) $(LDLIBS)
                    114: 
                    115: mstat: $(MSTAT_OBJS) $(CMULIBS)
                    116:        @printf "  LINK    $@\n"
                    117:        @$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(MSTAT_OBJS) $(LDLIBS)
                    118: 
                    119: clean: $(SNMPCLEAN)
                    120:        -@$(RM) $(OBJS) $(EXECS)
                    121: 
                    122: distclean:
                    123:        -@$(RM) $(OBJS) core $(EXECS) vers.c cfparse.c *.o *.map .*.d *.out tags TAGS
                    124: 
                    125: dist:
                    126:        @echo "Building bzip2 tarball of $(PKG) in parent dir..."
                    127:        git archive --format=tar --prefix=$(PKG)/ $(VERSION) | bzip2 >../$(ARCHIVE)
                    128:        @(cd ..; md5sum $(ARCHIVE) | tee $(ARCHIVE).md5)
                    129: 
                    130: build-deb:
                    131:        git-buildpackage --git-ignore-new --git-upstream-branch=master
                    132: 
                    133: lint: 
                    134:        @$(LINT) $(LINTFLAGS) $(SRCS)
                    135: 
                    136: tags: $(IGMP_SRCS) $(ROUTER_SRCS)
                    137:        @ctags $(IGMP_SRCS) $(ROUTER_SRCS)
                    138: 
                    139: cflow:
                    140:        @cflow $(MCAST_INCLUDE) $(IGMP_SRCS) $(ROUTER_SRCS) > cflow.out
                    141: 
                    142: cflow2:
                    143:        @cflow -ix $(MCAST_INCLUDE) $(IGMP_SRCS) $(ROUTER_SRCS) > cflow2.out
                    144: 
                    145: rcflow:
                    146:        @cflow -r $(MCAST_INCLUDE) $(IGMP_SRCS) $(ROUTER_SRCS) > rcflow.out
                    147: 
                    148: rcflow2:
                    149:        @cflow -r -ix $(MCAST_INCLUDE) $(IGMP_SRCS) $(ROUTER_SRCS) > rcflow2.out
                    150: 
                    151: TAGS:
                    152:        @etags $(SRCS)
                    153: 
                    154: snmpclean:
                    155:        -(cd snmpd; make clean)
                    156:        -(cd snmplib; make clean)

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