8322ecde12
Restructure client/ subdir. Add two different flavors of client. The full featured birdc client code is in client/birdc/. The new light client birtcl is in client/birdcl/. Common sources of both clients are directly in client/. Rework on-line auto-completion in client/command.c to conditionally turn off ncurses-specific code. Add lightweight client without libreadline and ncurses dependencies - birdcl. The birdcl lacks support of history, on-line auto-completion and there are different implementations of "more" functionality and help on '?' press. New client operates in canonical terminal mode (apart from "more" display) and therefore all commands have to be executed by a return key including help commands (called by '?' character in the end of the line). Apart from these limitations the interaction style should be the same as for the full client - birdc. Build of birdcl is always on (independent on --enable-client parameter).
92 lines
3.1 KiB
Makefile
92 lines
3.1 KiB
Makefile
# Makefile for the BIRD Internet Routing Daemon
|
|
# (c) 1999--2000 Martin Mares <mj@ucw.cz>
|
|
|
|
include Rules
|
|
|
|
.PHONY: all daemon birdci 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/all.o client/all.o lib/birdlib.a
|
|
|
|
$(birdc-dep): sysdep/paths.h .dep-stamp subdir
|
|
|
|
birdcl-dep := client/birdcl/all.o client/all.o lib/birdlib.a
|
|
|
|
$(birdcl-dep): sysdep/paths.h .dep-stamp subdir
|
|
|
|
|
|
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) $(birdcl-dirs) $(birdc-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) $(birdcl-dirs) $(birdc-dirs) ; do $(MAKE) -C $$a -f $(srcdir_abs)/$$a/Makefile $@ ; done
|
|
|
|
$(exedir)/bird: $(bird-dep)
|
|
$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
|
|
|
|
$(exedir)/birdc: $(birdc-dep)
|
|
$(CC) $(LDFLAGS) -o $@ $^ $(LIBS) $(CLIENT_LIBS)
|
|
|
|
$(exedir)/birdcl: $(birdcl-dep)
|
|
$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
|
|
|
|
.dir-stamp: sysdep/paths.h
|
|
mkdir -p $(static-dirs) $(birdcl-dirs) $(birdc-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) -s $(exedir)/bird $(DESTDIR)/$(sbindir)/bird@SUFFIX@
|
|
$(INSTALL_PROGRAM) -s $(exedir)/birdcl $(DESTDIR)/$(sbindir)/birdcl@SUFFIX@
|
|
if test -n "@CLIENT@" ; then \
|
|
$(INSTALL_PROGRAM) -s $(exedir)/birdc $(DESTDIR)/$(sbindir)/birdc@SUFFIX@ ; \
|
|
fi
|
|
if ! test -f $(DESTDIR)/@CONFIG_FILE@ ; then \
|
|
$(INSTALL_DATA) $(srcdir)/doc/bird.conf.example $(DESTDIR)/@CONFIG_FILE@ ; \
|
|
else \
|
|
echo "Not overwriting old bird@SUFFIX@.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)
|