Build system reworked to one global Makefile with includes and no nesting
Also removed the lib-dir merging with sysdep. Updated #include's accordingly. Fixed make doc on recent Debian together with moving generated doc into objdir. Moved Makefile.in into root dir Retired all.o and birdlib.a Linking the final binaries directly from all the .o files.
This commit is contained in:
parent
4bdf1881dc
commit
7152e5efbb
58 changed files with 371 additions and 508 deletions
2
Doc
2
Doc
|
@ -1,3 +1,4 @@
|
|||
D doc/prog-head.sgml
|
||||
C doc
|
||||
C nest
|
||||
C conf
|
||||
|
@ -5,3 +6,4 @@ C filter
|
|||
C proto
|
||||
C sysdep
|
||||
C lib
|
||||
D doc/prog-foot.sgml
|
||||
|
|
156
Makefile.in
Normal file
156
Makefile.in
Normal file
|
@ -0,0 +1,156 @@
|
|||
# Makefile for the BIRD Internet Routing Daemon
|
||||
# (c) 1999--2000 Martin Mares <mj@ucw.cz>
|
||||
# (c) 2016 Jan Moskyto Matejka <mq@ucw.cz>
|
||||
|
||||
# Disable build-in rules
|
||||
MAKEFLAGS += -r
|
||||
|
||||
# Variable definitions
|
||||
CPPFLAGS=-I$(objdir) -I$(srcdir) @CPPFLAGS@
|
||||
CFLAGS=$(CPPFLAGS) @CFLAGS@
|
||||
LDFLAGS=@LDFLAGS@
|
||||
LIBS=@LIBS@
|
||||
CLIENT_LIBS=@CLIENT_LIBS@
|
||||
CC=@CC@
|
||||
M4=@M4@
|
||||
BISON=@BISON@
|
||||
FLEX=@FLEX@
|
||||
RANLIB=@RANLIB@
|
||||
INSTALL=@INSTALL@
|
||||
INSTALL_PROGRAM=@INSTALL_PROGRAM@
|
||||
INSTALL_DATA=@INSTALL_DATA@
|
||||
|
||||
client=$(addprefix $(exedir)/,@CLIENT@)
|
||||
daemon=$(exedir)/bird
|
||||
protocols = @protocols@
|
||||
|
||||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
bindir=@bindir@
|
||||
sbindir=@sbindir@
|
||||
sysconfdir=@sysconfdir@
|
||||
localstatedir=@localstatedir@
|
||||
docdir=@prefix@/doc
|
||||
|
||||
srcdir := @srcdir@
|
||||
objdir := @objdir@
|
||||
exedir := @exedir@
|
||||
|
||||
ifeq ($(objdir),.)
|
||||
objdir := $(realpath .)
|
||||
endif
|
||||
|
||||
ifeq ($(VERBOSE),)
|
||||
Q:=@
|
||||
else
|
||||
Q:=
|
||||
endif
|
||||
|
||||
# Meta rules
|
||||
cleangoals := clean distclean
|
||||
docgoals := docs userdocs progdocs
|
||||
.PHONY: all daemon cli $(cleangoals) $(docgoals) tags
|
||||
all: daemon cli
|
||||
|
||||
daemon: $(daemon)
|
||||
cli: $(client)
|
||||
|
||||
# Include directories
|
||||
dirs := client conf doc filter lib nest $(addprefix proto/,$(protocols)) @sysdep_dirs@
|
||||
|
||||
conf-y-targets := $(addprefix $(objdir)/conf/,cf-parse.y keywords.h commands.h)
|
||||
cf-local = $(conf-y-targets): $(s)config.Y
|
||||
|
||||
src-o-files = $(patsubst %.c,$(o)%.o,$(src))
|
||||
|
||||
all-daemon = $(exedir)/bird: $(obj)
|
||||
all-client = $(exedir)/birdc $(exedir)/birdcl: $(obj)
|
||||
|
||||
s = $(dir $(lastword $(MAKEFILE_LIST)))
|
||||
ifeq ($(srcdir),.)
|
||||
o = $(objdir)/$(s)
|
||||
else
|
||||
o = $(patsubst $(srcdir)%,$(objdir)%,$(s))
|
||||
endif
|
||||
|
||||
define clean_in =
|
||||
clean::
|
||||
rm -f $(addprefix $(o),$(1))
|
||||
endef
|
||||
|
||||
clean = $(eval $(call clean_in,$(1)))
|
||||
|
||||
include $(addsuffix /Makefile,$(addprefix $(srcdir)/,$(dirs)))
|
||||
|
||||
# Generic rules
|
||||
|
||||
$(objdir)/%.o: $(srcdir)/%.c $(objdir)/.dir-stamp $(objdir)/sysdep/paths.h
|
||||
$(Q)echo CC -o $@ -c $<
|
||||
$(Q)$(CC) $(CFLAGS) -MMD -MP -o $@ -c $<
|
||||
|
||||
$(objdir)/%.o: $(objdir)/%.c $(objdir)/.dir-stamp $(objdir)/sysdep/paths.h
|
||||
$(Q)echo CC -o $@ -c $<
|
||||
$(Q)$(CC) $(CFLAGS) -MMD -MP -o $@ -c $<
|
||||
|
||||
$(objdir)/.dir-stamp:
|
||||
$(Q)echo MKDIR -p $(addprefix $(objdir)/,$(dirs) doc)
|
||||
$(Q)mkdir -p $(addprefix $(objdir)/,$(dirs) doc)
|
||||
$(Q)touch $@
|
||||
|
||||
$(client) $(daemon):
|
||||
$(Q)echo LD $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
$(Q)$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
|
||||
$(objdir)/sysdep/paths.h: Makefile
|
||||
echo >$@ "/* Generated by Makefile, don't edit manually! */"
|
||||
echo >>$@ "#define PATH_CONFIG_FILE \"@CONFIG_FILE@\""
|
||||
echo >>$@ "#define PATH_CONTROL_SOCKET \"@CONTROL_SOCKET@\""
|
||||
if test -n "@iproutedir@" ; then echo >>$@ "#define PATH_IPROUTE_DIR \"@iproutedir@\"" ; fi
|
||||
|
||||
# Finally include the computed dependencies
|
||||
|
||||
ifneq ($(filter-out $(cleangoals),$(MAKECMDGOALS)),)
|
||||
-include $(shell find $(objdir) -name "*.d")
|
||||
endif
|
||||
|
||||
ifeq ($(MAKECMDGOALS),)
|
||||
-include $(shell find $(objdir) -name "*.d")
|
||||
endif
|
||||
|
||||
tags:
|
||||
cd $(srcdir) ; etags -lc `find $(dirs) -name *.[chY]`
|
||||
|
||||
# Install
|
||||
|
||||
install: all
|
||||
$(INSTALL) -d $(DESTDIR)/$(sbindir) $(DESTDIR)/$(sysconfdir) $(DESTDIR)/@runtimedir@
|
||||
$(INSTALL_PROGRAM) $(exedir)/bird $(DESTDIR)/$(sbindir)/bird
|
||||
$(INSTALL_PROGRAM) $(exedir)/birdcl $(DESTDIR)/$(sbindir)/birdcl
|
||||
if test -n "@CLIENT@" ; then \
|
||||
$(INSTALL_PROGRAM) $(exedir)/birdc $(DESTDIR)/$(sbindir)/birdc ; \
|
||||
fi
|
||||
if ! test -f $(DESTDIR)/@CONFIG_FILE@ ; then \
|
||||
$(INSTALL_DATA) $(srcdir)/doc/bird.conf.example $(DESTDIR)/@CONFIG_FILE@ ; \
|
||||
else \
|
||||
echo "Not overwriting old bird.conf" ; \
|
||||
fi
|
||||
|
||||
install-docs:
|
||||
$(INSTALL) -d $(DESTDIR)/$(docdir)
|
||||
$(INSTALL_DATA) $(objdir)/doc/{bird,prog}{,-*}.html $(DESTDIR)/$(docdir)/
|
||||
|
||||
# Cleanup
|
||||
clean::
|
||||
rm -f $(objdir)/sysdep/paths.h
|
||||
rm -f $(addprefix $(exedir)/,bird birdc birdcl)
|
||||
find $(objdir) -name "*.[od]" -exec rm -f '{}' '+'
|
||||
|
||||
ifeq ($(objdir),obj)
|
||||
distclean: clean
|
||||
rm -rf $(objdir)
|
||||
rm -f config.log config.status configure Makefile
|
||||
else
|
||||
distclean: clean
|
||||
rm -rf * .dir-stamp
|
||||
rm -f config.log config.status configure Makefile
|
||||
endif
|
|
@ -1,11 +1,11 @@
|
|||
source=commands.c util.c client.c
|
||||
root-rel=../
|
||||
dir-name=client
|
||||
src := commands.c util.c client.c
|
||||
obj := $(src-o-files)
|
||||
|
||||
clients := $(client) birdcl
|
||||
$(all-client)
|
||||
|
||||
source-dep := $(source) $(addsuffix .c,$(clients))
|
||||
$(o)commands.c.dep: $(objdir)/conf/commands.h
|
||||
|
||||
subdir: $(addsuffix .o,$(clients))
|
||||
$(exedir)/birdc: $(o)birdc.o
|
||||
$(exedir)/birdc: LIBS += $(CLIENT_LIBS)
|
||||
|
||||
include ../Rules
|
||||
$(exedir)/birdcl: $(o)birdcl.o
|
||||
|
|
|
@ -1,31 +1,29 @@
|
|||
source=cf-parse.tab.c cf-lex.c conf.c
|
||||
root-rel=../
|
||||
src := cf-parse.tab.c cf-lex.c conf.c
|
||||
obj := $(src-o-files)
|
||||
|
||||
include ../Rules
|
||||
|
||||
conf-src=$(srcdir)/conf
|
||||
conf-fragments=$(conf-src)/confbase.Y @CONFS@ $(addsuffix /config.Y,$(static-dir-paths))
|
||||
$(all-daemon)
|
||||
|
||||
ifdef DEBUG
|
||||
BISON_DEBUG=-t
|
||||
#FLEX_DEBUG=-d
|
||||
endif
|
||||
|
||||
cf-parse.tab.h: cf-parse.tab.c
|
||||
$(o)cf-parse.tab.h: $(o)cf-parse.tab.c
|
||||
|
||||
cf-parse.tab.c: cf-parse.y
|
||||
$(BISON) -bcf-parse -dv -pcf_ $(BISON_DEBUG) cf-parse.y
|
||||
$(o)cf-parse.tab.c: $(o)cf-parse.y
|
||||
echo $< $@ $(o)
|
||||
$(BISON) -b$(@:.tab.c=) -dv -pcf_ $(BISON_DEBUG) $<
|
||||
|
||||
cf-parse.y: $(conf-fragments) $(conf-src)/gen_parser.m4
|
||||
$(M4) -P $(conf-src)/gen_parser.m4 $(conf-fragments) >cf-parse.y
|
||||
$(conf-y-targets): $(s)confbase.Y
|
||||
$(M4) -P $| $^ >$@
|
||||
|
||||
keywords.h: $(conf-fragments) $(conf-src)/gen_keywords.m4
|
||||
$(M4) -P $(conf-src)/gen_keywords.m4 $(conf-fragments) >keywords.h
|
||||
$(o)cf-parse.y: | $(s)gen_parser.m4
|
||||
$(o)keywords.h: | $(s)gen_keywords.m4
|
||||
$(o)commands.h: | $(s)gen_commands.m4 $(srcdir)/client/cmds.m4
|
||||
|
||||
commands.h: $(conf-fragments) $(conf-src)/gen_commands.m4 $(srcdir)/client/cmds.m4
|
||||
$(M4) -P $(conf-src)/gen_commands.m4 $(srcdir)/client/cmds.m4 $(conf-fragments) | sort >commands.h
|
||||
$(o)cf-lex.c: $(s)cf-lex.l $(o)cf-parse.tab.h $(o)keywords.h $(o)commands.h
|
||||
$(FLEX) $(FLEX_DEBUG) -s -B -8 -o$@ -Pcf_ $<
|
||||
|
||||
cf-lex.c: cf-lex.l
|
||||
$(FLEX) $(FLEX_DEBUG) -s -B -8 -ocf-lex.c -Pcf_ cf-lex.l
|
||||
$(addprefix $(o),cf-parse.tab.h cf-parse.tab.c cf-parse.y keywords.h commands.h cf-lex.c): $(objdir)/.dir-stamp
|
||||
|
||||
depend: keywords.h commands.h cf-parse.tab.c cf-lex.c
|
||||
$(call clean,cf-parse.tab.h cf-parse.tab.c cf-parse.y keywords.h commands.h cf-lex.c cf-parse.output)
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
#include "lib/resource.h"
|
||||
#include "lib/string.h"
|
||||
#include "lib/event.h"
|
||||
#include "lib/timer.h"
|
||||
#include "sysdep/unix/timer.h"
|
||||
#include "conf/conf.h"
|
||||
#include "filter/filter.h"
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
#define _BIRD_CONF_H_
|
||||
|
||||
#include "lib/resource.h"
|
||||
#include "lib/timer.h"
|
||||
#include "sysdep/unix/timer.h"
|
||||
|
||||
|
||||
/* Configuration structure */
|
||||
|
|
|
@ -14,7 +14,7 @@ CF_HDR
|
|||
#include "conf/conf.h"
|
||||
#include "lib/resource.h"
|
||||
#include "lib/socket.h"
|
||||
#include "lib/timer.h"
|
||||
#include "sysdep/unix/timer.h"
|
||||
#include "lib/string.h"
|
||||
#include "nest/protocol.h"
|
||||
#include "nest/iface.h"
|
||||
|
|
32
configure.in
32
configure.in
|
@ -23,24 +23,16 @@ AC_ARG_VAR([M4], [location of the M4 program])
|
|||
if test "$srcdir" = . ; then
|
||||
# Building in current directory => create obj directory holding all objects
|
||||
objdir=obj
|
||||
mkdir -p obj
|
||||
srcdir_rel=..
|
||||
makefiles="Makefile:tools/Makefile-top.in obj/Makefile:tools/Makefile.in obj/Rules:tools/Rules.in"
|
||||
exedir=..
|
||||
else
|
||||
# Building in separate directory
|
||||
objdir=.
|
||||
srcdir_rel=$srcdir
|
||||
makefiles="Makefile:tools/Makefile.in Rules:tools/Rules.in"
|
||||
exedir=.
|
||||
fi
|
||||
case $srcdir_rel in
|
||||
/*) srcdir_rel_mf=$srcdir_rel ;;
|
||||
*) srcdir_rel_mf="\$(root-rel)$srcdir_rel" ;;
|
||||
esac
|
||||
|
||||
exedir=.
|
||||
|
||||
AC_SUBST(objdir)
|
||||
AC_SUBST(exedir)
|
||||
AC_SUBST(srcdir_rel_mf)
|
||||
AC_SUBST(srcdir)
|
||||
AC_SUBST(runtimedir)
|
||||
|
||||
|
||||
|
@ -162,7 +154,7 @@ sysname=`echo $sysdesc | sed 's/\.h$//'`
|
|||
AC_DEFINE_UNQUOTED(SYSCONF_INCLUDE, "$sysdesc")
|
||||
|
||||
AC_MSG_CHECKING([system-dependent directories])
|
||||
sysdep_dirs="`sed <$sysdesc '/^Link: /!d;s/^Link: \(.*\)$/\1/' | tr '\012' ' '` lib"
|
||||
sysdep_dirs="`sed <$sysdesc '/^Link: /!d;s/^Link: \(.*\)$/\1/' | tr '\012' ' '`"
|
||||
AC_MSG_RESULT($sysdep_dirs)
|
||||
AC_SUBST(sysdep_dirs)
|
||||
|
||||
|
@ -234,10 +226,10 @@ if test "$enable_debug" = yes ; then
|
|||
fi
|
||||
fi
|
||||
|
||||
CLIENT=
|
||||
CLIENT=birdcl
|
||||
CLIENT_LIBS=
|
||||
if test "$enable_client" = yes ; then
|
||||
CLIENT=birdc
|
||||
CLIENT="$CLIENT birdc"
|
||||
AC_CHECK_LIB(history, add_history, CLIENT_LIBS="-lhistory")
|
||||
AC_CHECK_LIB(ncurses, tgetent, USE_TERMCAP_LIB=-lncurses,
|
||||
AC_CHECK_LIB(curses, tgetent, USE_TERMCAP_LIB=-lcurses,
|
||||
|
@ -255,17 +247,9 @@ AC_SUBST(CLIENT_LIBS)
|
|||
|
||||
mkdir -p $objdir/sysdep
|
||||
AC_CONFIG_HEADERS([$objdir/sysdep/autoconf.h:sysdep/autoconf.h.in])
|
||||
AC_CONFIG_COMMANDS([merge],[[export CPP="$CPP"
|
||||
$srcdir/tools/mergedirs $srcdir $srcdir_rel $objdir $sysdep_dirs]],
|
||||
[[srcdir=$srcdir]
|
||||
[srcdir_rel=$srcdir_rel]
|
||||
[objdir=$objdir]
|
||||
[sysdep_dirs="$sysdep_dirs"]])
|
||||
AC_CONFIG_FILES($makefiles)
|
||||
AC_CONFIG_FILES(Makefile:Makefile.in)
|
||||
AC_OUTPUT
|
||||
|
||||
rm -f $objdir/sysdep/paths.h
|
||||
|
||||
cat >&AC_FD_MSG <<EOF
|
||||
|
||||
BIRD was configured with the following options:
|
||||
|
|
|
@ -372,6 +372,8 @@ sub process_file
|
|||
}
|
||||
}
|
||||
#
|
||||
|
||||
local $ENV{PATH} = "$ENV{PATH}:/usr/lib/linuxdoc-tools";
|
||||
my($precmd) = "|sgmlpre output=$global->{format} $global->{define}";
|
||||
|
||||
#
|
||||
|
|
68
doc/Makefile
68
doc/Makefile
|
@ -1,46 +1,48 @@
|
|||
root-rel=../
|
||||
dir-name=doc
|
||||
|
||||
ifneq ($(wildcard ../Rules),)
|
||||
include ../Rules
|
||||
else
|
||||
srcdir=$(shell cd $(root-rel) ; pwd)
|
||||
srcdir_abs=$(srcdir)
|
||||
endif
|
||||
|
||||
# Force rebuilds
|
||||
.PHONY: prog.sgml bird.sgml
|
||||
.PHONY: progspell docs progdocs userdocs
|
||||
|
||||
doc-srcdir := $(shell cd $(s) && pwd)
|
||||
sgml2 := $(doc-srcdir)/sgml2
|
||||
|
||||
docs: progdocs userdocs
|
||||
progdocs: prog.html prog.ps
|
||||
userdocs: bird.html bird.ps
|
||||
|
||||
prog.sgml:
|
||||
$(srcdir)/tools/progdoc $(srcdir_abs)
|
||||
doc-fmt = $(1): $(o)prog.$(1) $(o)bird.$(1)
|
||||
$(call doc-fmt,html)
|
||||
$(call doc-fmt,dvi)
|
||||
$(call doc-fmt,ps)
|
||||
$(call doc-fmt,pdf)
|
||||
|
||||
%.html: %.sgml
|
||||
./sgml2html $<
|
||||
progdocs: $(o)prog.html $(o)prog.pdf
|
||||
userdocs: $(o)bird.html $(o)bird.pdf
|
||||
progspell: $(o)prog.spell
|
||||
|
||||
%.dvi: %.tex
|
||||
latex $<
|
||||
latex $<
|
||||
$(o)prog.sgml: $(srcdir)/tools/progdoc $(objdir)/.dir-stamp
|
||||
$(srcdir)/tools/progdoc $(srcdir) $@
|
||||
|
||||
%.ps: %.dvi
|
||||
$(o)%.sgml: $(s)%.sgml $(objdir)/.dir-stamp
|
||||
cp $< $@
|
||||
|
||||
$(o)%.html: $(o)%.sgml
|
||||
cd $(dir $@) && $(sgml2)html $(notdir $<)
|
||||
|
||||
$(o)%.dvi: $(o)%.tex
|
||||
cd $(dir $@) && TEXINPUTS=$(TEXINPUTS):$(doc-srcdir)/tex latex $(notdir $<)
|
||||
cd $(dir $@) && TEXINPUTS=$(TEXINPUTS):$(doc-srcdir)/tex latex $(notdir $<)
|
||||
|
||||
$(o)%.ps: $(o)%.dvi
|
||||
dvips -D600 -ta4 -o $@ $<
|
||||
|
||||
%.tex: %.sgml
|
||||
./sgml2latex --output=tex $<
|
||||
$(o)%.pdf: $(o)%.ps
|
||||
ps2pdf $< $@
|
||||
|
||||
%.txt: %.sgml
|
||||
./sgml2txt $<
|
||||
$(o)%.tex: $(o)%.sgml
|
||||
cd $(dir $@) && $(sgml2)latex --output=tex $(notdir $<)
|
||||
|
||||
progspell: prog.sgml
|
||||
sed -f prog-spell.sed <prog.sgml >prog.spell
|
||||
ispell prog.spell
|
||||
$(o)%.txt: $(o)%.sgml
|
||||
cd $(dir $@) && $(sgml2)txt $(notdir $<)
|
||||
|
||||
clean:
|
||||
rm -f *.tex *.dvi *.log *.txt *.aux *.toc *.spell
|
||||
rm -f prog.sgml
|
||||
$(o)prog.spell: $(o)prog.sgml $(s)prog-spell.sed
|
||||
sed -f $(lastword $^) <$< >$@
|
||||
ispell $@
|
||||
|
||||
distclean: clean
|
||||
rm -f *.html *.ps
|
||||
$(call clean,prog.spell $(addprefix *.,html dvi ps pdf sgml tex txt aux log toc))
|
||||
|
|
|
@ -17,8 +17,10 @@ use strict;
|
|||
|
||||
use vars qw($prefix $DataDir $BinDir $progs);
|
||||
|
||||
use FindBin;
|
||||
|
||||
$prefix = "/usr";
|
||||
$DataDir = "sbase";
|
||||
$DataDir = "$FindBin::Bin/sbase";
|
||||
$BinDir = "/usr/bin";
|
||||
|
||||
use lib "/usr/share/linuxdoc-tools";
|
||||
|
@ -32,9 +34,9 @@ $progs = {
|
|||
"GROFFMACRO" => "-ms",
|
||||
"AWK" => "/usr/share/linuxdoc-tools/awkwhich"
|
||||
};
|
||||
$ENV{"SGML_CATALOG_FILES"} = "sbase/dtd/catalog";
|
||||
$ENV{"SGML_CATALOG_FILES"} = "$DataDir/dtd/catalog";
|
||||
|
||||
require "./LinuxDocTools.pm";
|
||||
require "$FindBin::Bin/LinuxDocTools.pm";
|
||||
&LinuxDocTools::init;
|
||||
|
||||
my @FileList = LinuxDocTools::process_options ("html", @ARGV);
|
||||
|
|
|
@ -17,8 +17,10 @@ use strict;
|
|||
|
||||
use vars qw($prefix $DataDir $BinDir $progs);
|
||||
|
||||
use FindBin;
|
||||
|
||||
$prefix = "/usr";
|
||||
$DataDir = "sbase";
|
||||
$DataDir = "$FindBin::Bin/sbase";
|
||||
$BinDir = "/usr/bin";
|
||||
|
||||
use lib "/usr/share/linuxdoc-tools";
|
||||
|
@ -32,9 +34,9 @@ $progs = {
|
|||
"GROFFMACRO" => "-ms",
|
||||
"AWK" => "/usr/share/linuxdoc-tools/awkwhich"
|
||||
};
|
||||
$ENV{"SGML_CATALOG_FILES"} = "sbase/dtd/catalog";
|
||||
$ENV{"SGML_CATALOG_FILES"} = "$DataDir/dtd/catalog";
|
||||
|
||||
require "./LinuxDocTools.pm";
|
||||
require "$FindBin::Bin/LinuxDocTools.pm";
|
||||
&LinuxDocTools::init;
|
||||
|
||||
my @FileList = LinuxDocTools::process_options ("latex", @ARGV);
|
||||
|
|
|
@ -17,8 +17,10 @@ use strict;
|
|||
|
||||
use vars qw($prefix $DataDir $BinDir $progs);
|
||||
|
||||
use FindBin;
|
||||
|
||||
$prefix = "/usr";
|
||||
$DataDir = "sbase";
|
||||
$DataDir = "$FindBin::Bin/sbase";
|
||||
$BinDir = "/usr/bin";
|
||||
|
||||
use lib "/usr/share/linuxdoc-tools";
|
||||
|
@ -32,9 +34,9 @@ $progs = {
|
|||
"GROFFMACRO" => "-ms",
|
||||
"AWK" => "/usr/share/linuxdoc-tools/awkwhich"
|
||||
};
|
||||
$ENV{"SGML_CATALOG_FILES"} = "sbase/dtd/catalog";
|
||||
$ENV{"SGML_CATALOG_FILES"} = "$DataDir/dtd/catalog";
|
||||
|
||||
require "./LinuxDocTools.pm";
|
||||
require "$FindBin::Bin/LinuxDocTools.pm";
|
||||
&LinuxDocTools::init;
|
||||
|
||||
my @FileList = LinuxDocTools::process_options ("txt", @ARGV);
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
source=f-util.c filter.c tree.c trie.c
|
||||
root-rel=../
|
||||
dir-name=filter
|
||||
|
||||
include ../Rules
|
||||
src := filter.c f-util.c tree.c trie.c
|
||||
obj := $(src-o-files)
|
||||
$(all-daemon)
|
||||
$(cf-local)
|
||||
|
|
2
lib/Doc
2
lib/Doc
|
@ -1,5 +1,5 @@
|
|||
H Library functions
|
||||
S ip.c ipv4.c ipv6.c
|
||||
S ip.c
|
||||
S lists.c
|
||||
S checksum.c bitops.c patmatch.c printf.c xmalloc.c tbf.c
|
||||
D resource.sgml
|
||||
|
|
7
lib/Makefile
Normal file
7
lib/Makefile
Normal file
|
@ -0,0 +1,7 @@
|
|||
src := bitops.c checksum.c ip.c lists.c md5.c net.c patmatch.c printf.c sha1.c sha256.c sha512.c slists.c xmalloc.c
|
||||
obj := $(src-o-files)
|
||||
$(all-client)
|
||||
|
||||
src := bitops.c checksum.c event.c idm.c ip.c lists.c md5.c mempool.c net.c patmatch.c printf.c resource.c sha1.c sha256.c sha512.c slab.c slists.c tbf.c xmalloc.c
|
||||
obj := $(src-o-files)
|
||||
$(all-daemon)
|
36
lib/Modules
36
lib/Modules
|
@ -1,36 +0,0 @@
|
|||
sha256.c
|
||||
sha256.h
|
||||
sha512.c
|
||||
sha512.h
|
||||
sha1.c
|
||||
sha1.h
|
||||
birdlib.h
|
||||
bitops.c
|
||||
bitops.h
|
||||
idm.c
|
||||
idm.h
|
||||
ip.c
|
||||
ip.h
|
||||
lists.c
|
||||
lists.h
|
||||
md5.c
|
||||
md5.h
|
||||
mempool.c
|
||||
resource.c
|
||||
resource.h
|
||||
slab.c
|
||||
socket.h
|
||||
tbf.c
|
||||
unaligned.h
|
||||
xmalloc.c
|
||||
printf.c
|
||||
string.h
|
||||
patmatch.c
|
||||
slists.c
|
||||
slists.h
|
||||
event.c
|
||||
event.h
|
||||
checksum.c
|
||||
checksum.h
|
||||
alloca.h
|
||||
net.c
|
|
@ -9,8 +9,8 @@
|
|||
#ifndef _BIRD_BIRDLIB_H_
|
||||
#define _BIRD_BIRDLIB_H_
|
||||
|
||||
#include "timer.h"
|
||||
#include "alloca.h"
|
||||
#include "sysdep/unix/timer.h"
|
||||
#include "lib/alloca.h"
|
||||
|
||||
/* Ugly structure offset handling macros */
|
||||
|
||||
|
|
2
lib/ip.h
2
lib/ip.h
|
@ -9,7 +9,7 @@
|
|||
#ifndef _BIRD_IP_H_
|
||||
#define _BIRD_IP_H_
|
||||
|
||||
#include "lib/endian.h"
|
||||
#include "sysdep/unix/endian.h"
|
||||
#include "lib/string.h"
|
||||
#include "lib/bitops.h"
|
||||
#include "lib/unaligned.h"
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
* if possible.
|
||||
*/
|
||||
|
||||
#include "lib/endian.h"
|
||||
#include "sysdep/unix/endian.h"
|
||||
#include "lib/string.h"
|
||||
|
||||
static inline u16
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
source=rt-table.c rt-fib.c rt-attr.c proto.c iface.c rt-dev.c password.c cli.c locks.c cmds.c neighbor.c \
|
||||
a-path.c a-set.c
|
||||
root-rel=../
|
||||
dir-name=nest
|
||||
|
||||
include ../Rules
|
||||
src := a-path.c a-set.c cli.c cmds.c iface.c locks.c neighbor.c password.c proto.c rt-attr.c rt-dev.c rt-fib.c rt-table.c
|
||||
obj := $(src-o-files)
|
||||
$(all-daemon)
|
||||
$(cf-local)
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
#ifndef PASSWORD_H
|
||||
#define PASSWORD_H
|
||||
#include "lib/timer.h"
|
||||
#include "sysdep/unix/timer.h"
|
||||
|
||||
struct password_item {
|
||||
node n;
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
#include "lib/lists.h"
|
||||
#include "lib/resource.h"
|
||||
#include "lib/event.h"
|
||||
#include "lib/timer.h"
|
||||
#include "sysdep/unix/timer.h"
|
||||
#include "nest/route.h"
|
||||
#include "conf/conf.h"
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
#include "lib/lists.h"
|
||||
#include "lib/resource.h"
|
||||
#include "lib/timer.h"
|
||||
#include "sysdep/unix/timer.h"
|
||||
//#include "nest/protocol.h"
|
||||
|
||||
struct ea_list;
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
source=bfd.c packets.c io.c
|
||||
root-rel=../../
|
||||
dir-name=proto/bfd
|
||||
|
||||
include ../../Rules
|
||||
src := bfd.c io.c packets.c
|
||||
obj := $(src-o-files)
|
||||
$(all-daemon)
|
||||
$(cf-local)
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
#include "lib/resource.h"
|
||||
#include "lib/event.h"
|
||||
#include "lib/socket.h"
|
||||
// #include "lib/timer.h"
|
||||
// #include "sysdep/unix/timer.h"
|
||||
|
||||
|
||||
typedef struct timer2
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
source=bgp.c attrs.c packets.c
|
||||
root-rel=../../
|
||||
dir-name=proto/bgp
|
||||
|
||||
include ../../Rules
|
||||
src := attrs.c bgp.c packets.c
|
||||
obj := $(src-o-files)
|
||||
$(all-daemon)
|
||||
$(cf-local)
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
source=ospf.c topology.c packet.c hello.c neighbor.c iface.c dbdes.c lsreq.c lsupd.c lsack.c lsalib.c rt.c
|
||||
root-rel=../../
|
||||
dir-name=proto/ospf
|
||||
|
||||
include ../../Rules
|
||||
src := dbdes.c hello.c iface.c lsack.c lsalib.c lsreq.c lsupd.c neighbor.c ospf.c packet.c rt.c topology.c
|
||||
obj := $(src-o-files)
|
||||
$(all-daemon)
|
||||
$(cf-local)
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
#include "lib/lists.h"
|
||||
#include "lib/slists.h"
|
||||
#include "lib/socket.h"
|
||||
#include "lib/timer.h"
|
||||
#include "sysdep/unix/timer.h"
|
||||
#include "lib/resource.h"
|
||||
#include "nest/protocol.h"
|
||||
#include "nest/iface.h"
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
source=pipe.c
|
||||
root-rel=../../
|
||||
dir-name=proto/pipe
|
||||
|
||||
include ../../Rules
|
||||
|
||||
src := pipe.c
|
||||
obj := $(src-o-files)
|
||||
$(all-daemon)
|
||||
$(cf-local)
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
source=radv.c packets.c
|
||||
root-rel=../../
|
||||
dir-name=proto/radv
|
||||
|
||||
include ../../Rules
|
||||
src := packets.c radv.c
|
||||
obj := $(src-o-files)
|
||||
$(all-daemon)
|
||||
$(cf-local)
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
#include "lib/ip.h"
|
||||
#include "lib/lists.h"
|
||||
#include "lib/socket.h"
|
||||
#include "lib/timer.h"
|
||||
#include "sysdep/unix/timer.h"
|
||||
#include "lib/resource.h"
|
||||
#include "nest/protocol.h"
|
||||
#include "nest/iface.h"
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
source=rip.c packets.c
|
||||
root-rel=../../
|
||||
dir-name=proto/rip
|
||||
|
||||
include ../../Rules
|
||||
src := packets.c rip.c
|
||||
obj := $(src-o-files)
|
||||
$(all-daemon)
|
||||
$(cf-local)
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
#include "lib/resource.h"
|
||||
#include "lib/socket.h"
|
||||
#include "lib/string.h"
|
||||
#include "lib/timer.h"
|
||||
#include "sysdep/unix/timer.h"
|
||||
|
||||
|
||||
#define RIP_V1 1
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
source=static.c
|
||||
root-rel=../../
|
||||
dir-name=proto/static
|
||||
|
||||
include ../../Rules
|
||||
|
||||
src := static.c
|
||||
obj := $(src-o-files)
|
||||
$(all-daemon)
|
||||
$(cf-local)
|
||||
|
|
5
sysdep/bsd/Makefile
Normal file
5
sysdep/bsd/Makefile
Normal file
|
@ -0,0 +1,5 @@
|
|||
src := krt-sock.c
|
||||
obj := $(src-o-files)
|
||||
$(all-daemon)
|
||||
$(conf-y-targets): $(s)krt-sock.Y
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
krt-sock.c
|
||||
krt-sock.Y
|
||||
krt-sys.h
|
||||
sysio.h
|
|
@ -28,9 +28,9 @@
|
|||
#include "nest/route.h"
|
||||
#include "nest/protocol.h"
|
||||
#include "nest/iface.h"
|
||||
#include "lib/timer.h"
|
||||
#include "lib/unix.h"
|
||||
#include "lib/krt.h"
|
||||
#include "sysdep/unix/timer.h"
|
||||
#include "sysdep/unix/unix.h"
|
||||
#include "sysdep/unix/krt.h"
|
||||
#include "lib/string.h"
|
||||
#include "lib/socket.h"
|
||||
|
||||
|
|
|
@ -15,6 +15,9 @@
|
|||
#define CONFIG_NO_IFACE_BIND
|
||||
#define CONFIG_USE_HDRINCL
|
||||
|
||||
#define CONFIG_INCLUDE_SYSIO_H "sysdep/bsd/sysio.h"
|
||||
#define CONFIG_INCLUDE_KRTSYS_H "sysdep/bsd/krt-sys.h"
|
||||
|
||||
/*
|
||||
Link: sysdep/unix
|
||||
Link: sysdep/bsd
|
||||
|
|
|
@ -14,7 +14,12 @@
|
|||
#define CONFIG_MC_PROPER_SRC
|
||||
#define CONFIG_UNIX_DONTROUTE
|
||||
|
||||
#define CONFIG_INCLUDE_SYSIO_H "sysdep/linux/sysio.h"
|
||||
#define CONFIG_INCLUDE_KRTSYS_H "sysdep/linux/krt-sys.h"
|
||||
|
||||
#define CONFIG_RESTRICTED_PRIVILEGES
|
||||
#define CONFIG_INCLUDE_SYSPRIV_H "sysdep/linux/syspriv.h"
|
||||
|
||||
|
||||
/*
|
||||
Link: sysdep/linux
|
||||
|
|
4
sysdep/linux/Makefile
Normal file
4
sysdep/linux/Makefile
Normal file
|
@ -0,0 +1,4 @@
|
|||
src := netlink.c
|
||||
obj := $(src-o-files)
|
||||
$(all-daemon)
|
||||
$(conf-y-targets): $(s)netlink.Y
|
|
@ -1,5 +0,0 @@
|
|||
krt-sys.h
|
||||
netlink.c
|
||||
netlink.Y
|
||||
sysio.h
|
||||
syspriv.h
|
|
@ -20,9 +20,9 @@
|
|||
#include "nest/protocol.h"
|
||||
#include "nest/iface.h"
|
||||
#include "lib/alloca.h"
|
||||
#include "lib/timer.h"
|
||||
#include "lib/unix.h"
|
||||
#include "lib/krt.h"
|
||||
#include "sysdep/unix/timer.h"
|
||||
#include "sysdep/unix/unix.h"
|
||||
#include "sysdep/unix/krt.h"
|
||||
#include "lib/socket.h"
|
||||
#include "lib/string.h"
|
||||
#include "lib/hash.h"
|
||||
|
|
5
sysdep/unix/Makefile
Normal file
5
sysdep/unix/Makefile
Normal file
|
@ -0,0 +1,5 @@
|
|||
src := io.c krt.c log.c main.c random.c
|
||||
obj := $(src-o-files)
|
||||
$(all-daemon)
|
||||
$(cf-local)
|
||||
$(conf-y-targets): $(s)krt.Y
|
|
@ -1,12 +0,0 @@
|
|||
log.c
|
||||
main.c
|
||||
timer.h
|
||||
io.c
|
||||
unix.h
|
||||
endian.h
|
||||
config.Y
|
||||
random.c
|
||||
|
||||
krt.c
|
||||
krt.h
|
||||
krt.Y
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
CF_HDR
|
||||
|
||||
#include "lib/unix.h"
|
||||
#include "sysdep/unix/unix.h"
|
||||
#include <stdio.h>
|
||||
|
||||
CF_DECLS
|
||||
|
|
|
@ -31,14 +31,14 @@
|
|||
#include "nest/bird.h"
|
||||
#include "lib/lists.h"
|
||||
#include "lib/resource.h"
|
||||
#include "lib/timer.h"
|
||||
#include "sysdep/unix/timer.h"
|
||||
#include "lib/socket.h"
|
||||
#include "lib/event.h"
|
||||
#include "lib/string.h"
|
||||
#include "nest/iface.h"
|
||||
|
||||
#include "lib/unix.h"
|
||||
#include "lib/sysio.h"
|
||||
#include "sysdep/unix/unix.h"
|
||||
#include CONFIG_INCLUDE_SYSIO_H
|
||||
|
||||
/* Maximum number of calls of tx handler for one socket in one
|
||||
* select iteration. Should be small enough to not monopolize CPU by
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
CF_HDR
|
||||
|
||||
#include "lib/krt.h"
|
||||
#include "sysdep/unix/krt.h"
|
||||
|
||||
CF_DEFINES
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@
|
|||
#include "nest/route.h"
|
||||
#include "nest/protocol.h"
|
||||
#include "filter/filter.h"
|
||||
#include "lib/timer.h"
|
||||
#include "sysdep/unix/timer.h"
|
||||
#include "conf/conf.h"
|
||||
#include "lib/string.h"
|
||||
|
||||
|
|
|
@ -15,7 +15,8 @@ struct krt_proto;
|
|||
struct kif_config;
|
||||
struct kif_proto;
|
||||
|
||||
#include "lib/krt-sys.h"
|
||||
#include "sysdep/config.h"
|
||||
#include CONFIG_INCLUDE_KRTSYS_H
|
||||
|
||||
/* Flags stored in net->n.flags, rest are in nest/route.h */
|
||||
|
||||
|
@ -111,7 +112,7 @@ struct kif_proto {
|
|||
struct kif_state sys; /* Sysdep state */
|
||||
};
|
||||
|
||||
struct kif_proto *kif_proto;
|
||||
extern struct kif_proto *kif_proto;
|
||||
|
||||
#define KIF_CF ((struct kif_config *)p->p.cf)
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#include "nest/mrtdump.h"
|
||||
#include "lib/string.h"
|
||||
#include "lib/lists.h"
|
||||
#include "lib/unix.h"
|
||||
#include "sysdep/unix/unix.h"
|
||||
|
||||
static FILE *dbgf;
|
||||
static list *current_log_list;
|
||||
|
|
|
@ -69,7 +69,7 @@ async_dump(void)
|
|||
*/
|
||||
|
||||
#ifdef CONFIG_RESTRICTED_PRIVILEGES
|
||||
#include "lib/syspriv.h"
|
||||
#include CONFIG_INCLUDE_SYSPRIV_H
|
||||
#else
|
||||
|
||||
static inline void
|
||||
|
@ -567,6 +567,10 @@ sysdep_shutdown_done(void)
|
|||
* Signals
|
||||
*/
|
||||
|
||||
volatile int async_config_flag;
|
||||
volatile int async_dump_flag;
|
||||
volatile int async_shutdown_flag;
|
||||
|
||||
static void
|
||||
handle_sighup(int sig UNUSED)
|
||||
{
|
||||
|
|
|
@ -91,9 +91,9 @@ int sockaddr_read(sockaddr *sa, int af, ip_addr *a, struct iface **ifa, uint *po
|
|||
#define SUN_LEN(ptr) ((size_t) (((struct sockaddr_un *) 0)->sun_path) + strlen ((ptr)->sun_path))
|
||||
#endif
|
||||
|
||||
volatile int async_config_flag;
|
||||
volatile int async_dump_flag;
|
||||
volatile int async_shutdown_flag;
|
||||
extern volatile int async_config_flag;
|
||||
extern volatile int async_dump_flag;
|
||||
extern volatile int async_shutdown_flag;
|
||||
|
||||
void io_init(void);
|
||||
void io_loop(void);
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
# Makefile for in place build of BIRD
|
||||
# (c) 1999--2000 Martin Mares <mj@ucw.cz>
|
||||
|
||||
objdir=@objdir@
|
||||
|
||||
all depend tags install install-docs:
|
||||
$(MAKE) -C $(objdir) $@
|
||||
|
||||
docs userdocs progdocs:
|
||||
$(MAKE) -C doc $@
|
||||
|
||||
clean:
|
||||
$(MAKE) -C $(objdir) clean
|
||||
find . -name "*~" -or -name "*.[oa]" -or -name "\#*\#" -or -name TAGS -or -name core -or -name depend -or -name ".#*" | xargs rm -f
|
||||
|
||||
distclean: clean
|
||||
$(MAKE) -C doc distclean
|
||||
rm -rf $(objdir) autom4te.cache
|
||||
rm -f config.* configure sysdep/autoconf.h sysdep/paths.h Makefile
|
||||
|
|
@ -1,97 +0,0 @@
|
|||
# Makefile for the BIRD Internet Routing Daemon
|
||||
# (c) 1999--2000 Martin Mares <mj@ucw.cz>
|
||||
|
||||
include Rules
|
||||
|
||||
.PHONY: all daemon birdc birdcl subdir depend clean distclean tags docs userdocs progdocs
|
||||
|
||||
all: sysdep/paths.h .dep-stamp subdir daemon birdcl @CLIENT@
|
||||
|
||||
daemon: $(exedir)/bird
|
||||
|
||||
birdc: $(exedir)/birdc
|
||||
|
||||
birdcl: $(exedir)/birdcl
|
||||
|
||||
bird-dep := $(addsuffix /all.o, $(static-dirs)) conf/all.o lib/birdlib.a
|
||||
|
||||
$(bird-dep): sysdep/paths.h .dep-stamp subdir
|
||||
|
||||
birdc-dep := client/birdc.o client/all.o lib/birdlib.a
|
||||
|
||||
$(birdc-dep): sysdep/paths.h .dep-stamp subdir
|
||||
|
||||
birdcl-dep := client/birdcl.o client/all.o lib/birdlib.a
|
||||
|
||||
$(birdcl-dep): sysdep/paths.h .dep-stamp subdir
|
||||
|
||||
|
||||
export client := @CLIENT@
|
||||
|
||||
depend: sysdep/paths.h .dir-stamp
|
||||
set -e ; for a in $(dynamic-dirs) ; do $(MAKE) -C $$a $@ ; done
|
||||
set -e ; for a in $(static-dirs) $(client-dirs) ; do $(MAKE) -C $$a -f $(srcdir_abs)/$$a/Makefile $@ ; done
|
||||
|
||||
subdir: sysdep/paths.h .dir-stamp .dep-stamp
|
||||
set -e ; for a in $(dynamic-dirs) ; do $(MAKE) -C $$a $@ ; done
|
||||
set -e ; for a in $(static-dirs) $(client-dirs) ; do $(MAKE) -C $$a -f $(srcdir_abs)/$$a/Makefile $@ ; done
|
||||
|
||||
$(exedir)/bird: $(bird-dep)
|
||||
@echo LD $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
@$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
|
||||
$(exedir)/birdc: $(birdc-dep)
|
||||
@echo LD $(LDFLAGS) -o $@ $^ $(LIBS) $(CLIENT_LIBS)
|
||||
@$(CC) $(LDFLAGS) -o $@ $^ $(LIBS) $(CLIENT_LIBS)
|
||||
|
||||
$(exedir)/birdcl: $(birdcl-dep)
|
||||
@echo LD $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
@$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
|
||||
.dir-stamp: sysdep/paths.h
|
||||
mkdir -p $(static-dirs) $(client-dirs) $(doc-dirs)
|
||||
touch .dir-stamp
|
||||
|
||||
.dep-stamp:
|
||||
$(MAKE) depend
|
||||
touch .dep-stamp
|
||||
|
||||
docs: userdocs progdocs
|
||||
|
||||
userdocs progdocs: .dir-stamp
|
||||
$(MAKE) -C doc -f $(srcdir_abs)/doc/Makefile $@
|
||||
|
||||
sysdep/paths.h:
|
||||
echo >sysdep/paths.h "/* Generated by Makefile, don't edit manually! */"
|
||||
echo >>sysdep/paths.h "#define PATH_CONFIG_FILE \"@CONFIG_FILE@\""
|
||||
echo >>sysdep/paths.h "#define PATH_CONTROL_SOCKET \"@CONTROL_SOCKET@\""
|
||||
if test -n "@iproutedir@" ; then echo >>sysdep/paths.h "#define PATH_IPROUTE_DIR \"@iproutedir@\"" ; fi
|
||||
|
||||
tags:
|
||||
cd $(srcdir) ; etags -lc `find $(static-dirs) $(addprefix $(objdir)/,$(dynamic-dirs)) $(client-dirs) -name *.[chY]`
|
||||
|
||||
install: all
|
||||
$(INSTALL) -d $(DESTDIR)/$(sbindir) $(DESTDIR)/$(sysconfdir) $(DESTDIR)/@runtimedir@
|
||||
$(INSTALL_PROGRAM) $(exedir)/bird $(DESTDIR)/$(sbindir)/bird
|
||||
$(INSTALL_PROGRAM) $(exedir)/birdcl $(DESTDIR)/$(sbindir)/birdcl
|
||||
if test -n "@CLIENT@" ; then \
|
||||
$(INSTALL_PROGRAM) $(exedir)/birdc $(DESTDIR)/$(sbindir)/birdc ; \
|
||||
fi
|
||||
if ! test -f $(DESTDIR)/@CONFIG_FILE@ ; then \
|
||||
$(INSTALL_DATA) $(srcdir)/doc/bird.conf.example $(DESTDIR)/@CONFIG_FILE@ ; \
|
||||
else \
|
||||
echo "Not overwriting old bird.conf" ; \
|
||||
fi
|
||||
|
||||
install-docs:
|
||||
$(INSTALL) -d $(DESTDIR)/$(docdir)
|
||||
$(INSTALL_DATA) $(srcdir)/doc/{bird,prog}{,-*}.html $(DESTDIR)/$(docdir)/
|
||||
|
||||
clean:
|
||||
find . -name "*.[oa]" -o -name core -o -name depend -o -name "*.html" | xargs rm -f
|
||||
rm -f conf/cf-lex.c conf/cf-parse.* conf/commands.h conf/keywords.h
|
||||
rm -f $(exedir)/bird $(exedir)/birdcl $(exedir)/birdc $(exedir)/bird.ctl $(exedir)/bird6.ctl .dep-stamp
|
||||
|
||||
distclean: clean
|
||||
rm -f config.* configure sysdep/autoconf.h sysdep/paths.h Makefile Rules
|
||||
rm -rf .dir-stamp $(clean-dirs)
|
|
@ -1,91 +0,0 @@
|
|||
# Makefile fragments for the BIRD Internet Routing Daemon
|
||||
# (c) 1999--2000 Martin Mares <mj@ucw.cz>
|
||||
|
||||
srcdir=@srcdir_rel_mf@
|
||||
srcdir_abs := $(shell cd $(srcdir) ; pwd)
|
||||
objdir=@objdir@
|
||||
exedir=@exedir@
|
||||
|
||||
protocols=@protocols@
|
||||
static-dirs := nest filter $(addprefix proto/,$(protocols))
|
||||
static-dir-paths := $(addprefix $(srcdir)/,$(static-dirs))
|
||||
dynamic-dirs := lib conf
|
||||
dynamic-dir-paths := $(dynamic-dirs)
|
||||
client-dirs := client
|
||||
client-dir-paths := $(client-dirs)
|
||||
doc-dirs := doc
|
||||
doc-dir-paths := $(doc-dirs)
|
||||
|
||||
all-dirs:=$(static-dirs) $(dynamic-dirs) $(client-dirs) $(doc-dirs)
|
||||
clean-dirs:=$(all-dirs) proto sysdep
|
||||
|
||||
CPPFLAGS=-I$(root-rel) -I$(srcdir) @CPPFLAGS@
|
||||
CFLAGS=$(CPPFLAGS) @CFLAGS@
|
||||
LDFLAGS=@LDFLAGS@
|
||||
LIBS=@LIBS@
|
||||
CLIENT_LIBS=@CLIENT_LIBS@
|
||||
CC=@CC@
|
||||
M4=@M4@
|
||||
BISON=@BISON@
|
||||
FLEX=@FLEX@
|
||||
RANLIB=@RANLIB@
|
||||
INSTALL=@INSTALL@
|
||||
INSTALL_PROGRAM=@INSTALL_PROGRAM@
|
||||
INSTALL_DATA=@INSTALL_DATA@
|
||||
|
||||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
bindir=@bindir@
|
||||
sbindir=@sbindir@
|
||||
sysconfdir=@sysconfdir@
|
||||
localstatedir=@localstatedir@
|
||||
docdir=@prefix@/doc
|
||||
|
||||
ifdef source
|
||||
|
||||
objs := $(subst .c,.o,$(source))
|
||||
|
||||
ifdef dir-name
|
||||
src-path := $(srcdir)/$(dir-name)/
|
||||
endif
|
||||
|
||||
all:
|
||||
cd $(root-rel) && make
|
||||
|
||||
ifdef lib-dest
|
||||
|
||||
subdir: $(lib-dest)
|
||||
|
||||
$(lib-dest): $(objs)
|
||||
rm -f $@
|
||||
ar rcs $@ $^
|
||||
$(RANLIB) $@
|
||||
|
||||
else
|
||||
|
||||
subdir: all.o
|
||||
|
||||
all.o: $(objs)
|
||||
# $(LD) -r -o $@ $^
|
||||
# Changed to $(CC) because $(LD) has problems with crosscompiling
|
||||
@echo LD -r -o $@ $^
|
||||
@$(CC) -nostdlib -r -o $@ $^
|
||||
|
||||
endif
|
||||
|
||||
%.o: $(src-path)%.c
|
||||
@echo CC -o $@ -c $<
|
||||
@$(CC) $(CFLAGS) -o $@ -c $<
|
||||
|
||||
ifndef source-dep
|
||||
source-dep := $(source)
|
||||
endif
|
||||
|
||||
depend:
|
||||
$(CC) $(CPPFLAGS) -MM $(addprefix $(src-path),$(source-dep)) >depend
|
||||
|
||||
ifneq ($(wildcard depend),)
|
||||
include depend
|
||||
endif
|
||||
|
||||
endif
|
|
@ -1,63 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
if [ -z "$4" ] ; then
|
||||
echo "Usage: mergedirs <src-dir> <src-dir-rel> <obj-dir> <list-of-dirs>"
|
||||
exit 1
|
||||
fi
|
||||
cpp=${CPP:-cc -E}
|
||||
SRCDIR=$1
|
||||
shift
|
||||
SRCREL=$1
|
||||
case $SRCDIR in
|
||||
/*) ;;
|
||||
*) SRCREL="../$SRCREL" ;;
|
||||
esac
|
||||
shift
|
||||
OBJDIR=$1
|
||||
LIBDIR=$OBJDIR/lib
|
||||
CONFDIR=$OBJDIR/conf
|
||||
shift
|
||||
|
||||
echo "Merging system-dependent modules ($@)"
|
||||
MODULES=`for a in $@ ; do
|
||||
cat $SRCDIR/sysdep/config.h $SRCDIR/$a/Modules |
|
||||
$cpp -U unix -D MACROS_ONLY -I $OBJDIR - |
|
||||
sed "/^[ ]*\$/d;/^#/d;s@\\(.*\\)@\\1 $a/\\1@"
|
||||
done |
|
||||
sort -k1,1 -u |
|
||||
cut -d ' ' -f 2`
|
||||
rm -rf $LIBDIR $CONFDIR
|
||||
mkdir -p $LIBDIR $CONFDIR
|
||||
for a in $MODULES ; do
|
||||
b=`basename $a`
|
||||
case $b in
|
||||
*.h) ln -s $SRCREL/$a $LIBDIR/$b
|
||||
;;
|
||||
*.c) OBJ=`echo $b | sed 's/\.c$/\.o/'`
|
||||
OBJS="$OBJS $OBJ"
|
||||
SRCS="$SRCS \\
|
||||
$b"
|
||||
ln -s $SRCREL/$a $LIBDIR/$b
|
||||
;;
|
||||
*.Y) CONFS="$CONFS\$(srcdir)/$a "
|
||||
ln -s $SRCREL/$a $CONFDIR/$b
|
||||
;;
|
||||
*) echo "$b: Unknown file type"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
cat >$LIBDIR/Makefile <<EOF
|
||||
source=$SRCS
|
||||
lib-dest=birdlib.a
|
||||
root-rel=../
|
||||
|
||||
include ../Rules
|
||||
EOF
|
||||
|
||||
sed <$SRCDIR/conf/Makefile >$CONFDIR/Makefile "s|@CONFS@|$CONFS|"
|
||||
CONFS=`cd $SRCDIR ; ls conf/*.[chl]`
|
||||
for a in $CONFS ; do
|
||||
ln -s $SRCREL/$a $CONFDIR/
|
||||
done
|
|
@ -1,17 +1,18 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
$srcdir = $ARGV[0];
|
||||
$out = $ARGV[1];
|
||||
|
||||
open(OUT, ">prog.sgml") || die "Cannot create output file";
|
||||
include("doc/prog-head.sgml");
|
||||
process("");
|
||||
include("doc/prog-foot.sgml");
|
||||
open(OUT, ">", $out) || die "Cannot create output file";
|
||||
process($srcdir);
|
||||
close OUT;
|
||||
gen_deps();
|
||||
exit 0;
|
||||
|
||||
sub include {
|
||||
my $f = shift @_;
|
||||
open(IN, "$srcdir/$f") || die "Unable to find $f";
|
||||
open(IN, "$f") || die "Unable to find $f";
|
||||
push(@deps, "$f");
|
||||
while (<IN>) {
|
||||
print OUT;
|
||||
}
|
||||
|
@ -21,7 +22,8 @@ sub include {
|
|||
sub process {
|
||||
my $dir = shift @_;
|
||||
print "$dir/Doc\n";
|
||||
open(IN, "$srcdir/$dir/Doc") || die "Unable to read $dir/Doc";
|
||||
open(IN, "$dir/Doc") || die "Unable to read $dir/Doc";
|
||||
push(@deps, "$dir/Doc");
|
||||
my @docfile = <IN>;
|
||||
close IN;
|
||||
foreach $_ (@docfile) {
|
||||
|
@ -36,7 +38,10 @@ sub process {
|
|||
print OUT "<chapt>$arg\n";
|
||||
} elsif ($cmd eq "S") {
|
||||
print " $arg\n";
|
||||
open(DOC, "cd $srcdir/$dir ; $srcdir/doc/kernel-doc -bird $arg |") || die "Unable to start kernel-doc";
|
||||
my @files = map("$dir/$_", split(' ', $arg));
|
||||
my $fargs = join(' ', @files);
|
||||
open(DOC, "$srcdir/doc/kernel-doc -bird $fargs |") || die "Unable to start kernel-doc";
|
||||
push(@deps, @files);
|
||||
while (<DOC>) { print OUT; }
|
||||
close DOC;
|
||||
} elsif ($cmd eq "D") {
|
||||
|
@ -45,3 +50,17 @@ sub process {
|
|||
} else { die "Unknown command: $cmd"; }
|
||||
}
|
||||
}
|
||||
|
||||
sub gen_deps {
|
||||
open(DEP, ">", "$out.d");
|
||||
print DEP "$out:";
|
||||
foreach $f (@deps) {
|
||||
print DEP " \\\n $f";
|
||||
}
|
||||
print DEP "\n\n";
|
||||
|
||||
foreach $f (@deps) {
|
||||
print DEP "$f:\n\n";
|
||||
}
|
||||
close DEP;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue