Annotation of embedaddon/pimd/Makefile, revision 1.1.1.1
1.1 misho 1: # -*-Makefile-*-
2: #
3: # Note: We use .gz for distribution archives for the sake of
4: # OpenBSD not having bzip2 in the base distribution.
5: #
6:
7: #VERSION = $(shell git tag -l | tail -1)
8: VERSION = 2.3.2
9: EXEC = pimd
10: CONFIG = $(EXEC).conf
11: PKG = $(EXEC)-$(VERSION)
12: ARCHTOOL = `which git-archive-all`
13: ARCHIVE = $(PKG).tar
14: ARCHIVEZ = ../$(ARCHIVE).gz
15:
16: ROOTDIR ?= $(dir $(shell pwd))
17: RM = rm -f
18: CC := $(CROSS)$(CC)
19: CHECK := cppcheck $(CPPFLAGS) --quiet --enable=all
20:
21: IGMP_OBJS = igmp.o igmp_proto.o trace.o
22: ROUTER_OBJS = inet.o kern.o main.o config.o debug.o vers.o callout.o
23: PIM_OBJS = route.o vif.o timer.o mrt.o pim.o pim_proto.o rp.o
24: DVMRP_OBJS = dvmrp_proto.o
25:
26: # This magic trick looks like a comment, but works on BSD PMake
27: #include <config.mk>
28: include config.mk
29:
30: prefix ?= /usr/local
31: sysconfdir ?= /etc
32: datadir = $(prefix)/share/doc/pimd
33: mandir = $(prefix)/share/man/man8
34:
35: ## Common
36: CPPFLAGS += -D_PATH_SYSCONF=\"$(sysconfdir)\"
37: CFLAGS += $(INCLUDES) $(DEFS) $(USERCOMPILE)
38: CFLAGS += -W -Wall -Wextra -fno-strict-aliasing
39: LDLIBS = $(EXTRA_LIBS)
40: OBJS = $(IGMP_OBJS) $(ROUTER_OBJS) $(PIM_OBJS) $(DVMRP_OBJS) $(EXTRA_OBJS)
41: SRCS = $(OBJS:.o=.c)
42: MANS = $(EXEC).8
43: DISTFILES = README.md README-config.md README.config.jp README-debug.md ChangeLog.org \
44: CONTRIBUTING.md CODE-OF-CONDUCT.md INSTALL.md LICENSE LICENSE.mrouted \
45: TODO.org CREDITS FAQ.md AUTHORS
46:
47:
48: all: $(EXEC)
49:
50: .c.o:
51: @printf " CC $@\n"
52: @$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
53:
54: $(EXEC): $(OBJS)
55: @printf " LINK $@\n"
56: @$(CC) $(CFLAGS) $(LDFLAGS) -Wl,-Map,$@.map -o $@ $(OBJS) $(LDLIBS)
57:
58: vers.c:
59: @echo $(VERSION) | sed -e 's/.*/char todaysversion[]="&";/' > vers.c
60:
61: install: $(EXEC)
62: @install -d $(DESTDIR)$(prefix)/sbin
63: @install -d $(DESTDIR)$(sysconfdir)
64: @install -d $(DESTDIR)$(datadir)
65: @install -d $(DESTDIR)$(mandir)
66: @install -m 0755 $(EXEC) $(DESTDIR)$(prefix)/sbin/$(EXEC)
67: @install -b -m 0644 $(CONFIG) $(DESTDIR)$(sysconfdir)/$(CONFIG)
68: @for file in $(DISTFILES); do \
69: install -m 0644 $$file $(DESTDIR)$(datadir)/$$file; \
70: done
71: @for file in $(MANS); do \
72: install -m 0644 $$file $(DESTDIR)$(mandir)/$$file; \
73: done
74:
75: uninstall:
76: -@$(RM) $(DESTDIR)$(prefix)/sbin/$(EXEC)
77: -@$(RM) $(DESTDIR)$(sysconfdir)/$(CONFIG)
78: -@$(RM) -r $(DESTDIR)$(datadir)
79: @for file in $(DISTFILES); do \
80: $(RM) $(DESTDIR)$(datadir)/$$file; \
81: done
82: -@for file in $(MANS); do \
83: $(RM) $(DESTDIR)$(mandir)/$$file; \
84: done
85:
86: clean:
87: -@$(RM) $(OBJS) $(EXEC)
88:
89: distclean:
90: -@$(RM) $(OBJS) core $(EXEC) vers.c config.mk tags TAGS *.o *.map .*.d *.out tags
91:
92: dist:
93: @if [ x"$(ARCHTOOL)" = x"" ]; then \
94: echo "Missing git-archive-all from https://github.com/Kentzo/git-archive-all"; \
95: exit 1; \
96: fi
97: @if [ -e $(ARCHIVEZ) ]; then \
98: echo "Distribution $(ARCHIVEZ) already exists."; \
99: exit 1; \
100: fi
101: @echo "Building gz tarball of $(PKG) in parent dir ..."
102: @$(ARCHTOOL) ../$(ARCHIVE)
103: @gzip ../$(ARCHIVE)
104: @md5sum $(ARCHIVEZ) | sed 's/..\///' | tee $(ARCHIVEZ).md5
105:
106: build-deb:
107: @echo "Building .deb if $(PKG)..."
108: git-buildpackage --git-ignore-new --git-upstream-branch=master
109:
110: check lint:
111: $(CHECK) *.c *.h
112:
113: tags: $(SRCS)
114: @ctags $(SRCS)
115:
116: cflow:
117: @cflow $(MCAST_INCLUDE) $(SRCS) > cflow.out
118:
119: cflow2:
120: @cflow -ix $(MCAST_INCLUDE) $(SRCS) > cflow2.out
121:
122: rcflow:
123: @cflow -r $(MCAST_INCLUDE) $(SRCS) > rcflow.out
124:
125: rcflow2:
126: @cflow -r -ix $(MCAST_INCLUDE) $(SRCS) > rcflow2.out
127:
128: TAGS:
129: @etags $(SRCS)
130:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>