Annotation of embedaddon/bird2/Makefile.in, revision 1.1

1.1     ! misho       1: # Makefile for the BIRD Internet Routing Daemon
        !             2: # (c) 1999--2000 Martin Mares <mj@ucw.cz>
        !             3: # (c) 2016       Jan Moskyto Matejka <mq@ucw.cz>
        !             4: 
        !             5: # Disable build-in rules
        !             6: MAKEFLAGS += -r
        !             7: 
        !             8: # Variable definitions
        !             9: CPPFLAGS=-I$(objdir) -I$(srcdir) @CPPFLAGS@
        !            10: CFLAGS=$(CPPFLAGS) @CFLAGS@
        !            11: LDFLAGS=@LDFLAGS@
        !            12: M4FLAGS=@M4FLAGS@
        !            13: BISONFLAGS=@BISONFLAGS@
        !            14: LIBS=@LIBS@
        !            15: DAEMON_LIBS=@DAEMON_LIBS@
        !            16: CLIENT_LIBS=@CLIENT_LIBS@
        !            17: CC=@CC@
        !            18: M4=@M4@
        !            19: BISON=@BISON@
        !            20: FLEX=@FLEX@
        !            21: RANLIB=@RANLIB@
        !            22: INSTALL=@INSTALL@
        !            23: INSTALL_PROGRAM=@INSTALL_PROGRAM@
        !            24: INSTALL_DATA=@INSTALL_DATA@
        !            25: 
        !            26: client=$(addprefix $(exedir)/,@CLIENT@)
        !            27: daemon=$(exedir)/bird
        !            28: protocols=@protocols@
        !            29: 
        !            30: prefix=@prefix@
        !            31: exec_prefix=@exec_prefix@
        !            32: bindir=@bindir@
        !            33: sbindir=@sbindir@
        !            34: sysconfdir=@sysconfdir@
        !            35: localstatedir=@localstatedir@
        !            36: runstatedir=@runstatedir@
        !            37: docdir=@prefix@/doc
        !            38: 
        !            39: srcdir := @srcdir@
        !            40: objdir := @objdir@
        !            41: exedir := @exedir@
        !            42: 
        !            43: git-label:=$(strip $(shell cd $(srcdir) && [ "$$(git rev-parse --show-toplevel)" = "$$(readlink -f .)" ] && git describe --always --dirty=-x 2>/dev/null))
        !            44: ifneq ($(git-label),)
        !            45:         CFLAGS += -DGIT_LABEL="$(git-label)"
        !            46: endif
        !            47: 
        !            48: ifeq ($(objdir),.)
        !            49:   objdir := $(realpath .)
        !            50: endif
        !            51: 
        !            52: ifeq ($(VERBOSE),)
        !            53:   E:=@
        !            54:   Q:=@
        !            55: else
        !            56:   E:=@\#
        !            57:   Q:=
        !            58: endif
        !            59: 
        !            60: ifneq ($(COLOR),)
        !            61:   CFLAGS += -fdiagnostics-color=always
        !            62: endif
        !            63: 
        !            64: # Meta rules
        !            65: docgoals := docs userdocs progdocs
        !            66: testgoals := check test tests tests_run
        !            67: cleangoals := clean distclean testsclean
        !            68: .PHONY: all daemon cli $(docgoals) $(testgoals) $(cleangoals) tags cscope prepare
        !            69: 
        !            70: all: daemon cli
        !            71: 
        !            72: daemon: $(daemon)
        !            73: cli: $(client)
        !            74: 
        !            75: $(daemon): LIBS += $(DAEMON_LIBS)
        !            76: 
        !            77: # Include directories
        !            78: dirs := client conf doc filter lib nest test $(addprefix proto/,$(protocols)) @sysdep_dirs@
        !            79: 
        !            80: # conf/Makefile declarations needed for all other modules
        !            81: conf-lex-targets := $(addprefix $(objdir)/conf/,cf-lex.o)
        !            82: conf-y-targets := $(addprefix $(objdir)/conf/,cf-parse.y keywords.h commands.h)
        !            83: cf-local = $(conf-y-targets): $(s)config.Y
        !            84: 
        !            85: src-o-files = $(patsubst %.c,$(o)%.o,$(src))
        !            86: tests-target-files = $(patsubst %.c,$(o)%,$(tests_src))
        !            87: 
        !            88: all-daemon = $(daemon): $(obj)
        !            89: all-client = $(client): $(obj)
        !            90: 
        !            91: s = $(dir $(lastword $(MAKEFILE_LIST)))
        !            92: ifeq ($(srcdir),.)
        !            93:   o = $(objdir)/$(s)
        !            94: else
        !            95:   o = $(patsubst $(srcdir)%,$(objdir)%,$(s))
        !            96: endif
        !            97: 
        !            98: define clean_in =
        !            99: clean::
        !           100:        rm -f $(addprefix $(o),$(1))
        !           101: endef
        !           102: 
        !           103: clean = $(eval $(call clean_in,$(1)))
        !           104: 
        !           105: # Include main Makefiles of the directories
        !           106: include $(addsuffix /Makefile,$(addprefix $(srcdir)/,$(dirs)))
        !           107: 
        !           108: # Generic rules
        !           109: # Object file rules
        !           110: $(objdir)/%.o: $(srcdir)/%.c | prepare
        !           111:        $(E)echo CC -o $@ -c $<
        !           112:        $(Q)$(CC) $(CFLAGS) -MMD -MP -o $@ -c $<
        !           113: 
        !           114: $(objdir)/%.o: $(objdir)/%.c | prepare
        !           115:        $(E)echo CC -o $@ -c $<
        !           116:        $(Q)$(CC) $(CFLAGS) -MMD -MP -o $@ -c $<
        !           117: 
        !           118: # Debug: Preprocessed source rules
        !           119: $(objdir)/%.E: $(srcdir)/%.c | prepare
        !           120:        $(E)echo CC -o $@ -E $<
        !           121:        $(Q)$(CC) $(CFLAGS) -MMD -MP -o $@ -E $<
        !           122: 
        !           123: $(objdir)/%.E: $(objdir)/%.c | prepare
        !           124:        $(E)echo CC -o $@ -E $<
        !           125:        $(Q)$(CC) $(CFLAGS) -MMD -MP -o $@ -E $<
        !           126: 
        !           127: # Debug: Assembler object rules
        !           128: $(objdir)/%.S: $(srcdir)/%.c | prepare
        !           129:        $(E)echo CC -o $@ -S $<
        !           130:        $(Q)$(CC) $(CFLAGS) -MMD -MP -o $@ -S $<
        !           131: 
        !           132: $(objdir)/%.S: $(objdir)/%.c | prepare
        !           133:        $(E)echo CC -o $@ -S $<
        !           134:        $(Q)$(CC) $(CFLAGS) -MMD -MP -o $@ -S $<
        !           135: 
        !           136: # Finally include the computed dependencies:
        !           137: DEPS = $(shell find $(objdir) -name '*.d')
        !           138: 
        !           139: # ## if there is at least one non-clean goal
        !           140: ifneq ($(filter-out $(cleangoals),$(MAKECMDGOALS)),)
        !           141: -include $(DEPS)
        !           142: endif
        !           143: 
        !           144: # ## if the implicit goal is called
        !           145: ifeq ($(MAKECMDGOALS),)
        !           146: -include $(DEPS)
        !           147: endif
        !           148: 
        !           149: # Rule for pre-generating all generated includables
        !           150: # before compiling any C file
        !           151: prepare: $(objdir)/sysdep/paths.h | $(objdir)/.dir-stamp
        !           152: 
        !           153: $(objdir)/.dir-stamp: Makefile
        !           154:        $(E)echo MKDIR -p $(addprefix $(objdir)/,$(dirs) doc)
        !           155:        $(Q)mkdir -p $(addprefix $(objdir)/,$(dirs) doc)
        !           156:        $(Q)touch $@
        !           157: 
        !           158: $(client) $(daemon):
        !           159:        $(E)echo LD $(LDFLAGS) -o $@ $^ $(LIBS)
        !           160:        $(Q)$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
        !           161: 
        !           162: $(objdir)/sysdep/paths.h: Makefile
        !           163:        echo  >$@ "/* Generated by Makefile, don't edit manually! */"
        !           164:        echo >>$@ "#define PATH_CONFIG_FILE \"@CONFIG_FILE@\""
        !           165:        echo >>$@ "#define PATH_CONTROL_SOCKET \"@CONTROL_SOCKET@\""
        !           166:        if test -n "@iproutedir@" ; then echo >>$@ "#define PATH_IPROUTE_DIR \"@iproutedir@\"" ; fi
        !           167: 
        !           168: # Unit tests rules
        !           169: 
        !           170: tests_targets_ok = $(addsuffix .ok,$(tests_targets))
        !           171: 
        !           172: $(tests_targets): %: %.o $(tests_objs) | prepare
        !           173:        $(E)echo LD $(LDFLAGS) -o $@ $< "..." $(LIBS)
        !           174:        $(Q)$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
        !           175: 
        !           176: # Hack to avoid problems with tests linking everything
        !           177: $(tests_targets): LIBS += $(DAEMON_LIBS)
        !           178: 
        !           179: $(tests_targets_ok): %.ok: %
        !           180:        $(Q)$* 2>/dev/null && touch $*.ok
        !           181: 
        !           182: test: testsclean check
        !           183: check: tests tests_run
        !           184: tests: $(tests_targets)
        !           185: tests_run: $(tests_targets_ok)
        !           186: 
        !           187: tags:
        !           188:        cd $(srcdir) ; etags -lc `find $(dirs) -name *.[chY]`
        !           189: 
        !           190: cscope:
        !           191:        cd $(srcdir) ; find $(dirs) -name *.[chY] > cscope.files ; cscope -b
        !           192: 
        !           193: # Install
        !           194: 
        !           195: install: all
        !           196:        $(INSTALL) -d $(DESTDIR)/$(sbindir) $(DESTDIR)/$(sysconfdir) $(DESTDIR)/$(runstatedir)
        !           197:        for BIN in bird @CLIENT@ ; do                                                           \
        !           198:                $(INSTALL_PROGRAM) $(exedir)/$$BIN $(DESTDIR)/$(sbindir)/$$BIN ;                \
        !           199:        done
        !           200:        $(INSTALL_DATA) $(srcdir)/doc/bird.conf.example $(DESTDIR)/@CONFIG_FILE@.sample ;       \
        !           201: 
        !           202: install-docs:
        !           203:        $(INSTALL) -d $(DESTDIR)/$(docdir)
        !           204:        $(INSTALL_DATA) $(objdir)/doc/{bird,prog}{,-*}.html $(DESTDIR)/$(docdir)/
        !           205: 
        !           206: # Cleanup
        !           207: clean::
        !           208:        rm -f $(objdir)/sysdep/paths.h
        !           209:        rm -f $(addprefix $(exedir)/,bird birdc birdcl)
        !           210:        find $(objdir) -name "*.[od]" -exec rm -f '{}' '+'
        !           211: 
        !           212: testsclean:
        !           213:        rm -f $(tests_targets_ok)
        !           214: 
        !           215: ifeq ($(objdir),obj)
        !           216: distclean: clean
        !           217:        rm -rf $(objdir)
        !           218:        rm -f config.log config.status configure Makefile
        !           219: else
        !           220: distclean: clean
        !           221:        rm -rf * .dir-stamp
        !           222:        rm -f config.log config.status configure Makefile
        !           223: endif

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