summaryrefslogtreecommitdiffstats
path: root/tools/Rules.in
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>1999-01-10 01:18:32 +0100
committerMartin Mares <mj@ucw.cz>1999-01-10 01:18:32 +0100
commit49e7e5ee0b2848f5bf120a962e2e7eb11b86566a (patch)
tree56e7c215f49ab59792b5cf0194fa5045a66943c7 /tools/Rules.in
parent2f9bcf9713523f6fefecd143cc2aa2a8dda7f27f (diff)
downloadbird-49e7e5ee0b2848f5bf120a962e2e7eb11b86566a.tar
bird-49e7e5ee0b2848f5bf120a962e2e7eb11b86566a.zip
New makefiles. Includes support for out-of-source-tree builds.
Diffstat (limited to 'tools/Rules.in')
-rw-r--r--tools/Rules.in66
1 files changed, 66 insertions, 0 deletions
diff --git a/tools/Rules.in b/tools/Rules.in
new file mode 100644
index 0000000..56c0903
--- /dev/null
+++ b/tools/Rules.in
@@ -0,0 +1,66 @@
+# Makefile fragments for the BIRD Internet Routing Daemon
+# (c) 1999 Martin Mares <mj@ucw.cz>
+
+srcdir=@srcdir_rel_mf@
+objdir=@objdir@
+exedir=@exedir@
+
+protocols=@protocols@
+static-dirs := nest $(addprefix proto/,$(protocols))
+static-dir-paths := $(addprefix $(srcdir)/,$(static-dirs))
+dynamic-dirs := lib conf
+dynamic-dir-paths := $(dynamic-dirs)
+dir-makefiles := $(addsuffix /Makefile,$(static-dir-paths) $(dynamic-dir-paths))
+
+all-dirs:=$(static-dirs) $(dynamic-dirs)
+clean-dirs:=$(all-dirs) proto sysdep
+dir-objs:=$(addprefix $(objdir)/,$(all-dirs))
+
+CPPFLAGS=-I$(root-rel) -I$(srcdir)
+CFLAGS=$(CPPFLAGS) @CFLAGS@
+CC=@CC@
+M4=@M4@
+BISON=@BISON@
+FLEX=@FLEX@
+RANLIB=@RANLIB@
+
+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 $@ $^
+
+endif
+
+%.o: $(src-path)%.c
+ $(CC) $(CFLAGS) -o $@ -c $^
+
+depend:
+ gcc $(CPPFLAGS) -MM $(addprefix $(src-path),$(source)) >depend
+
+ifneq ($(wildcard .depend),)
+include .depend
+endif
+
+endif