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>
5 # Disable build-in rules
9 CPPFLAGS
=-I
$(objdir
) -I
$(srcdir) @CPPFLAGS@
10 CFLAGS
=$(CPPFLAGS
) @CFLAGS@
13 CLIENT_LIBS
=@CLIENT_LIBS@
20 INSTALL_PROGRAM
=@INSTALL_PROGRAM@
21 INSTALL_DATA
=@INSTALL_DATA@
23 client
=$(addprefix $(exedir
)/,@CLIENT@
)
25 protocols
= @protocols@
28 exec_prefix=@
exec_prefix@
31 sysconfdir
=@sysconfdir@
32 localstatedir
=@localstatedir@
40 objdir
:= $(realpath .
)
52 cleangoals
:= clean distclean
53 docgoals
:= docs userdocs progdocs
54 .PHONY
: all daemon cli
$(cleangoals
) $(docgoals
) tags
61 dirs
:= client conf doc
filter lib nest
$(addprefix proto
/,$(protocols
)) @sysdep_dirs@
63 conf-y-targets
:= $(addprefix $(objdir
)/conf
/,cf-parse.y keywords.h commands.h
)
64 cf-local
= $(conf-y-targets
): $(s
)config.Y
66 src-o-files
= $(patsubst %.c
,$(o
)%.o
,$(src
))
68 all-daemon
= $(exedir
)/bird
: $(obj
)
69 all-client
= $(exedir
)/birdc
$(exedir
)/birdcl
: $(obj
)
71 s
= $(dir $(lastword
$(MAKEFILE_LIST
)))
75 o
= $(patsubst $(srcdir)%,$(objdir
)%,$(s
))
80 rm -f
$(addprefix $(o
),$(1))
83 clean = $(eval
$(call clean_in
,$(1)))
85 include $(addsuffix /Makefile
,$(addprefix $(srcdir)/,$(dirs
)))
89 $(objdir
)/%.o
: $(srcdir)/%.c
$(objdir
)/.dir-stamp
$(objdir
)/sysdep
/paths.h
90 $(E
)echo CC
-o
$@
-c
$<
91 $(Q
)$(CC
) $(CFLAGS
) -MMD
-MP
-o
$@
-c
$<
93 $(objdir
)/%.o
: $(objdir
)/%.c
$(objdir
)/.dir-stamp
$(objdir
)/sysdep
/paths.h
94 $(E
)echo CC
-o
$@
-c
$<
95 $(Q
)$(CC
) $(CFLAGS
) -MMD
-MP
-o
$@
-c
$<
98 $(E
)echo MKDIR
-p
$(addprefix $(objdir
)/,$(dirs
) doc
)
99 $(Q
)mkdir
-p
$(addprefix $(objdir
)/,$(dirs
) doc
)
103 $(E
)echo LD
$(LDFLAGS
) -o
$@
$^
$(LIBS
)
104 $(Q
)$(CC
) $(LDFLAGS
) -o
$@
$^
$(LIBS
)
106 $(objdir
)/sysdep
/paths.h
: Makefile
107 echo
>$@
"/* Generated by Makefile, don't edit manually! */"
108 echo
>>$@
"#define PATH_CONFIG_FILE \"@CONFIG_FILE@\""
109 echo
>>$@
"#define PATH_CONTROL_SOCKET \"@CONTROL_SOCKET@\""
110 if
test -n
"@iproutedir@" ; then echo
>>$@
"#define PATH_IPROUTE_DIR \"@iproutedir@\"" ; fi
112 # Finally include the computed dependencies
114 ifneq ($(filter-out $(cleangoals
),$(MAKECMDGOALS
)),)
115 -include $(shell find
$(objdir
) -name
"*.d")
118 ifeq ($(MAKECMDGOALS
),)
119 -include $(shell find
$(objdir
) -name
"*.d")
123 cd
$(srcdir) ; etags
-lc
`find $(dirs) -name *.[chY]`
128 $(INSTALL
) -d
$(DESTDIR
)/$(sbindir
) $(DESTDIR
)/$(sysconfdir
) $(DESTDIR
)/@runtimedir@
129 $(INSTALL_PROGRAM
) $(exedir
)/bird
$(DESTDIR
)/$(sbindir
)/bird
130 $(INSTALL_PROGRAM
) $(exedir
)/birdcl
$(DESTDIR
)/$(sbindir
)/birdcl
131 if
test -n
"@CLIENT@" ; then \
132 $(INSTALL_PROGRAM
) $(exedir
)/birdc
$(DESTDIR
)/$(sbindir
)/birdc
; \
134 if
! test -f
$(DESTDIR
)/@CONFIG_FILE@
; then \
135 $(INSTALL_DATA
) $(srcdir)/doc
/bird.conf.example
$(DESTDIR
)/@CONFIG_FILE@
; \
137 echo
"Not overwriting old bird.conf" ; \
141 $(INSTALL
) -d
$(DESTDIR
)/$(docdir
)
142 $(INSTALL_DATA
) $(objdir
)/doc
/{bird
,prog
}{,-*}.html
$(DESTDIR
)/$(docdir
)/
146 rm -f
$(objdir
)/sysdep
/paths.h
147 rm -f
$(addprefix $(exedir
)/,bird birdc birdcl
)
148 find
$(objdir
) -name
"*.[od]" -exec
rm -f
'{}' '+'
153 rm -f config.log config.status configure Makefile
157 rm -f config.log config.status configure Makefile