summaryrefslogtreecommitdiffstats
path: root/tools/Rules.in
blob: 6e786266ec2028d7f5d0b248aa9703c9f381df4d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# 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=
LIBS=@LIBS@
CLIENT_LIBS=@CLIENT_LIBS@
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:
	$(CC) $(CPPFLAGS) -MM $(addprefix $(src-path),$(source)) >depend

ifneq ($(wildcard depend),)
include depend
endif

endif